LCOV - code coverage report
Current view: top level - flamenco/types - fd_types.h (source / functions) Hit Total Coverage
Test: cov.lcov Lines: 90 1293 7.0 %
Date: 2025-08-05 05:04:49 Functions: 34 100596 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         525 : #define FD_ACCOUNT_META_MAGIC 9823
       9             : 
      10             : /* sdk/program/src/feature.rs#L22 */
      11             : /* Encoded Size: Dynamic */
      12             : struct fd_feature {
      13             :   ulong activated_at;
      14             :   uchar has_activated_at;
      15             : };
      16             : typedef struct fd_feature fd_feature_t;
      17           0 : #define FD_FEATURE_ALIGN alignof(fd_feature_t)
      18             : 
      19             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/fee_calculator.rs#L9 */
      20             : /* Encoded Size: Fixed (8 bytes) */
      21             : struct fd_fee_calculator {
      22             :   ulong lamports_per_signature;
      23             : };
      24             : typedef struct fd_fee_calculator fd_fee_calculator_t;
      25             : #define FD_FEE_CALCULATOR_ALIGN alignof(fd_fee_calculator_t)
      26             : 
      27             : /* Encoded Size: Fixed (24 bytes) */
      28             : struct fd_hash_age {
      29             :   fd_fee_calculator_t fee_calculator;
      30             :   ulong hash_index;
      31             :   ulong timestamp;
      32             : };
      33             : typedef struct fd_hash_age fd_hash_age_t;
      34             : #define FD_HASH_AGE_ALIGN alignof(fd_hash_age_t)
      35             : 
      36             : /* Encoded Size: Fixed (56 bytes) */
      37             : struct fd_hash_hash_age_pair {
      38             :   fd_hash_t key;
      39             :   fd_hash_age_t val;
      40             : };
      41             : typedef struct fd_hash_hash_age_pair fd_hash_hash_age_pair_t;
      42           0 : #define FD_HASH_HASH_AGE_PAIR_ALIGN alignof(fd_hash_hash_age_pair_t)
      43             : 
      44             : /* Encoded Size: Dynamic */
      45             : struct fd_block_hash_vec {
      46             :   ulong last_hash_index;
      47             :   fd_hash_t * last_hash;
      48             :   ulong ages_len;
      49             :   fd_hash_hash_age_pair_t * ages;
      50             :   ulong max_age;
      51             : };
      52             : typedef struct fd_block_hash_vec fd_block_hash_vec_t;
      53             : #define FD_BLOCK_HASH_VEC_ALIGN alignof(fd_block_hash_vec_t)
      54             : 
      55             : struct fd_block_hash_vec_global {
      56             :   ulong last_hash_index;
      57             :   ulong last_hash_offset;
      58             :   ulong ages_len;
      59             :   ulong ages_offset;
      60             :   ulong max_age;
      61             : };
      62             : typedef struct fd_block_hash_vec_global fd_block_hash_vec_global_t;
      63             : #define FD_BLOCK_HASH_VEC_GLOBAL_ALIGN alignof(fd_block_hash_vec_global_t)
      64             : 
      65           0 : FD_FN_UNUSED static fd_hash_t * fd_block_hash_vec_last_hash_join( fd_block_hash_vec_global_t const * struct_mem ) {
      66           0 :   return struct_mem->last_hash_offset ? (fd_hash_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->last_hash_offset ) : NULL;
      67           0 : }
      68           0 : FD_FN_UNUSED static fd_hash_hash_age_pair_t * fd_block_hash_vec_ages_join( fd_block_hash_vec_global_t const * struct_mem ) { // vector
      69           0 :   return struct_mem->ages_offset ? (fd_hash_hash_age_pair_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->ages_offset ) : NULL;
      70           0 : }
      71           0 : FD_FN_UNUSED static void fd_block_hash_vec_ages_update( fd_block_hash_vec_global_t * struct_mem, fd_hash_hash_age_pair_t * vec ) {
      72           0 :   struct_mem->ages_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
      73           0 : }
      74             : /* Encoded Size: Fixed (33 bytes) */
      75             : struct fd_fee_rate_governor {
      76             :   ulong target_lamports_per_signature;
      77             :   ulong target_signatures_per_slot;
      78             :   ulong min_lamports_per_signature;
      79             :   ulong max_lamports_per_signature;
      80             :   uchar burn_percent;
      81             : };
      82             : typedef struct fd_fee_rate_governor fd_fee_rate_governor_t;
      83             : #define FD_FEE_RATE_GOVERNOR_ALIGN alignof(fd_fee_rate_governor_t)
      84             : 
      85             : /* Encoded Size: Fixed (16 bytes) */
      86             : struct fd_slot_pair {
      87             :   ulong slot;
      88             :   ulong val;
      89             : };
      90             : typedef struct fd_slot_pair fd_slot_pair_t;
      91           0 : #define FD_SLOT_PAIR_ALIGN alignof(fd_slot_pair_t)
      92             : 
      93             : /* Encoded Size: Dynamic */
      94             : struct fd_hard_forks {
      95             :   ulong hard_forks_len;
      96             :   fd_slot_pair_t * hard_forks;
      97             : };
      98             : typedef struct fd_hard_forks fd_hard_forks_t;
      99             : #define FD_HARD_FORKS_ALIGN alignof(fd_hard_forks_t)
     100             : 
     101             : struct fd_hard_forks_global {
     102             :   ulong hard_forks_len;
     103             :   ulong hard_forks_offset;
     104             : };
     105             : typedef struct fd_hard_forks_global fd_hard_forks_global_t;
     106             : #define FD_HARD_FORKS_GLOBAL_ALIGN alignof(fd_hard_forks_global_t)
     107             : 
     108           0 : FD_FN_UNUSED static fd_slot_pair_t * fd_hard_forks_hard_forks_join( fd_hard_forks_global_t const * struct_mem ) { // vector
     109           0 :   return struct_mem->hard_forks_offset ? (fd_slot_pair_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->hard_forks_offset ) : NULL;
     110           0 : }
     111           0 : FD_FN_UNUSED static void fd_hard_forks_hard_forks_update( fd_hard_forks_global_t * struct_mem, fd_slot_pair_t * vec ) {
     112           0 :   struct_mem->hard_forks_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
     113           0 : }
     114             : /* Encoded Size: Fixed (48 bytes) */
     115             : struct fd_inflation {
     116             :   double initial;
     117             :   double terminal;
     118             :   double taper;
     119             :   double foundation;
     120             :   double foundation_term;
     121             :   double unused;
     122             : };
     123             : typedef struct fd_inflation fd_inflation_t;
     124             : #define FD_INFLATION_ALIGN alignof(fd_inflation_t)
     125             : 
     126             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/rent.rs#L11 */
     127             : /* Encoded Size: Fixed (17 bytes) */
     128             : struct fd_rent {
     129             :   ulong lamports_per_uint8_year;
     130             :   double exemption_threshold;
     131             :   uchar burn_percent;
     132             : };
     133             : typedef struct fd_rent fd_rent_t;
     134           3 : #define FD_RENT_ALIGN alignof(fd_rent_t)
     135             : 
     136             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/epoch_schedule.rs#L26 */
     137             : /* Encoded Size: Fixed (33 bytes) */
     138             : struct fd_epoch_schedule {
     139             :   ulong slots_per_epoch;
     140             :   ulong leader_schedule_slot_offset;
     141             :   uchar warmup;
     142             :   ulong first_normal_epoch;
     143             :   ulong first_normal_slot;
     144             : };
     145             : typedef struct fd_epoch_schedule fd_epoch_schedule_t;
     146           3 : #define FD_EPOCH_SCHEDULE_ALIGN alignof(fd_epoch_schedule_t)
     147             : 
     148             : /* Encoded Size: Fixed (66 bytes) */
     149             : struct fd_rent_collector {
     150             :   ulong epoch;
     151             :   fd_epoch_schedule_t epoch_schedule;
     152             :   double slots_per_year;
     153             :   fd_rent_t rent;
     154             : };
     155             : typedef struct fd_rent_collector fd_rent_collector_t;
     156             : #define FD_RENT_COLLECTOR_ALIGN alignof(fd_rent_collector_t)
     157             : 
     158             : /* https://github.com/solana-program/stake/blob/330d89c6246ab3fd35d02803386fa700be0455d6/interface/src/stake_history.rs#L17 */
     159             : /* Encoded Size: Fixed (24 bytes) */
     160             : struct fd_stake_history_entry {
     161             :   ulong effective;
     162             :   ulong activating;
     163             :   ulong deactivating;
     164             : };
     165             : typedef struct fd_stake_history_entry fd_stake_history_entry_t;
     166             : #define FD_STAKE_HISTORY_ENTRY_ALIGN alignof(fd_stake_history_entry_t)
     167             : 
     168             : /* https://github.com/solana-program/stake/blob/330d89c6246ab3fd35d02803386fa700be0455d6/interface/src/stake_history.rs#L66 */
     169             : /* Encoded Size: Fixed (32 bytes) */
     170             : struct fd_epoch_stake_history_entry_pair {
     171             :   ulong epoch;
     172             :   fd_stake_history_entry_t entry;
     173             : };
     174             : typedef struct fd_epoch_stake_history_entry_pair fd_epoch_stake_history_entry_pair_t;
     175             : #define FD_EPOCH_STAKE_HISTORY_ENTRY_PAIR_ALIGN alignof(fd_epoch_stake_history_entry_pair_t)
     176             : 
     177             : /* https://github.com/solana-program/stake/blob/330d89c6246ab3fd35d02803386fa700be0455d6/interface/src/stake_history.rs#L66 */
     178             : /* Encoded Size: Fixed (16392 bytes) */
     179             : struct fd_stake_history {
     180             :   ulong fd_stake_history_len;
     181             :   ulong fd_stake_history_size;
     182             :   ulong fd_stake_history_offset;
     183             :   fd_epoch_stake_history_entry_pair_t fd_stake_history[512];
     184             : };
     185             : typedef struct fd_stake_history fd_stake_history_t;
     186           9 : #define FD_STAKE_HISTORY_ALIGN alignof(fd_stake_history_t)
     187             : 
     188             : /* https://github.com/anza-xyz/agave/blob/6ac4fe32e28d8ceb4085072b61fa0c6cb09baac1/sdk/src/account.rs#L37 */
     189             : /* Encoded Size: Dynamic */
     190             : struct fd_solana_account {
     191             :   ulong lamports;
     192             :   ulong data_len;
     193             :   uchar* data;
     194             :   fd_pubkey_t owner;
     195             :   uchar executable;
     196             :   ulong rent_epoch;
     197             : };
     198             : typedef struct fd_solana_account fd_solana_account_t;
     199           0 : #define FD_SOLANA_ACCOUNT_ALIGN alignof(fd_solana_account_t)
     200             : 
     201             : struct fd_solana_account_global {
     202             :   ulong lamports;
     203             :   ulong data_len;
     204             :   ulong data_offset;
     205             :   fd_pubkey_t owner;
     206             :   uchar executable;
     207             :   ulong rent_epoch;
     208             : };
     209             : typedef struct fd_solana_account_global fd_solana_account_global_t;
     210             : #define FD_SOLANA_ACCOUNT_GLOBAL_ALIGN alignof(fd_solana_account_global_t)
     211             : 
     212           0 : FD_FN_UNUSED static uchar * fd_solana_account_data_join( fd_solana_account_global_t const * struct_mem ) { // vector
     213           0 :   return struct_mem->data_offset ? (uchar *)fd_type_pun( (uchar *)struct_mem + struct_mem->data_offset ) : NULL;
     214           0 : }
     215           0 : FD_FN_UNUSED static void fd_solana_account_data_update( fd_solana_account_global_t * struct_mem, uchar * vec ) {
     216           0 :   struct_mem->data_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
     217           0 : }
     218             : /* Encoded Size: Fixed (48 bytes) */
     219             : struct __attribute__((packed)) fd_solana_account_stored_meta {
     220             :   ulong write_version_obsolete;
     221             :   ulong data_len;
     222             :   uchar pubkey[32];
     223             : };
     224             : typedef struct fd_solana_account_stored_meta fd_solana_account_stored_meta_t;
     225             : #define FD_SOLANA_ACCOUNT_STORED_META_ALIGN (8UL)
     226             : 
     227             : /* Encoded Size: Fixed (52 bytes) */
     228             : struct __attribute__((packed)) fd_solana_account_meta {
     229             :   ulong lamports;
     230             :   ulong rent_epoch;
     231             :   uchar owner[32];
     232             :   uchar executable;
     233             :   uchar padding[3];
     234             : };
     235             : typedef struct fd_solana_account_meta fd_solana_account_meta_t;
     236             : #define FD_SOLANA_ACCOUNT_META_ALIGN (8UL)
     237             : 
     238             : /* Encoded Size: Fixed (136 bytes) */
     239             : struct __attribute__((packed)) fd_solana_account_hdr {
     240             :   fd_solana_account_stored_meta_t meta;
     241             :   fd_solana_account_meta_t info;
     242             :   uchar padding[4];
     243             :   fd_hash_t hash;
     244             : };
     245             : typedef struct fd_solana_account_hdr fd_solana_account_hdr_t;
     246             : #define FD_SOLANA_ACCOUNT_HDR_ALIGN (8UL)
     247             : 
     248             : /* Encoded Size: Fixed (104 bytes) */
     249             : struct __attribute__((packed)) fd_account_meta {
     250             :   ushort magic;
     251             :   ushort hlen;
     252             :   ulong dlen;
     253             :   uchar hash[32];
     254             :   ulong slot;
     255             :   fd_solana_account_meta_t info;
     256             : };
     257             : typedef struct fd_account_meta fd_account_meta_t;
     258             : #define FD_ACCOUNT_META_ALIGN (8UL)
     259             : 
     260             : /* https://github.com/firedancer-io/agave/blob/540d5bc56cd44e3cc61b179bd52e9a782a2c99e4/vote/src/vote_account.rs#L323 */
     261             : /* Encoded Size: Dynamic */
     262             : struct fd_vote_accounts_pair {
     263             :   fd_pubkey_t key;
     264             :   ulong stake;
     265             :   fd_solana_account_t value;
     266             : };
     267             : typedef struct fd_vote_accounts_pair fd_vote_accounts_pair_t;
     268             : #define FD_VOTE_ACCOUNTS_PAIR_ALIGN alignof(fd_vote_accounts_pair_t)
     269             : 
     270             : struct fd_vote_accounts_pair_global {
     271             :   fd_pubkey_t key;
     272             :   ulong stake;
     273             :   fd_solana_account_global_t value;
     274             : };
     275             : typedef struct fd_vote_accounts_pair_global fd_vote_accounts_pair_global_t;
     276             : #define FD_VOTE_ACCOUNTS_PAIR_GLOBAL_ALIGN alignof(fd_vote_accounts_pair_global_t)
     277             : 
     278             : typedef struct fd_vote_accounts_pair_t_mapnode fd_vote_accounts_pair_t_mapnode_t;
     279             : #define REDBLK_T fd_vote_accounts_pair_t_mapnode_t
     280             : #define REDBLK_NAME fd_vote_accounts_pair_t_map
     281             : #define REDBLK_IMPL_STYLE 1
     282             : #include "../../util/tmpl/fd_redblack.c"
     283             : struct fd_vote_accounts_pair_t_mapnode {
     284             :     fd_vote_accounts_pair_t elem;
     285             :     ulong redblack_parent;
     286             :     ulong redblack_left;
     287             :     ulong redblack_right;
     288             :     int redblack_color;
     289             : };
     290             : static inline fd_vote_accounts_pair_t_mapnode_t *
     291           0 : fd_vote_accounts_pair_t_map_join_new( void * * alloc_mem, ulong len ) {
     292           0 :   if( FD_UNLIKELY( 0 == len ) ) len = 1; // prevent underflow
     293           0 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_vote_accounts_pair_t_map_align() );
     294           0 :   void * map_mem = *alloc_mem;
     295           0 :   *alloc_mem = (uchar *)*alloc_mem + fd_vote_accounts_pair_t_map_footprint( len );
     296           0 :   return fd_vote_accounts_pair_t_map_join( fd_vote_accounts_pair_t_map_new( map_mem, len ) );
     297           0 : }
     298             : typedef struct fd_vote_accounts_pair_global_t_mapnode fd_vote_accounts_pair_global_t_mapnode_t;
     299             : #define REDBLK_T fd_vote_accounts_pair_global_t_mapnode_t
     300             : #define REDBLK_NAME fd_vote_accounts_pair_global_t_map
     301             : #define REDBLK_IMPL_STYLE 1
     302             : #include "../../util/tmpl/fd_redblack.c"
     303             : struct fd_vote_accounts_pair_global_t_mapnode {
     304             :     fd_vote_accounts_pair_global_t elem;
     305             :     ulong redblack_parent;
     306             :     ulong redblack_left;
     307             :     ulong redblack_right;
     308             :     int redblack_color;
     309             : };
     310             : static inline fd_vote_accounts_pair_global_t_mapnode_t *
     311           0 : fd_vote_accounts_pair_global_t_map_join_new( void * * alloc_mem, ulong len ) {
     312           0 :   if( FD_UNLIKELY( 0 == len ) ) len = 1; // prevent underflow
     313           0 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_vote_accounts_pair_global_t_map_align() );
     314           0 :   void * map_mem = *alloc_mem;
     315           0 :   *alloc_mem = (uchar *)*alloc_mem + fd_vote_accounts_pair_global_t_map_footprint( len );
     316           0 :   return fd_vote_accounts_pair_global_t_map_join( fd_vote_accounts_pair_global_t_map_new( map_mem, len ) );
     317           0 : }
     318             : /* https://github.com/firedancer-io/agave/blob/540d5bc56cd44e3cc61b179bd52e9a782a2c99e4/vote/src/vote_account.rs#L46 */
     319             : /* Encoded Size: Dynamic */
     320             : struct fd_vote_accounts {
     321             :   fd_vote_accounts_pair_t_mapnode_t * vote_accounts_pool;
     322             :   fd_vote_accounts_pair_t_mapnode_t * vote_accounts_root;
     323             : };
     324             : typedef struct fd_vote_accounts fd_vote_accounts_t;
     325             : #define FD_VOTE_ACCOUNTS_ALIGN alignof(fd_vote_accounts_t)
     326             : 
     327             : struct fd_vote_accounts_global {
     328             :   ulong vote_accounts_pool_offset;
     329             :   ulong vote_accounts_root_offset;
     330             : };
     331             : typedef struct fd_vote_accounts_global fd_vote_accounts_global_t;
     332             : #define FD_VOTE_ACCOUNTS_GLOBAL_ALIGN alignof(fd_vote_accounts_global_t)
     333             : 
     334           0 : static FD_FN_UNUSED fd_vote_accounts_pair_global_t_mapnode_t * fd_vote_accounts_vote_accounts_pool_join( fd_vote_accounts_global_t const * type ) {
     335           0 :   if( FD_UNLIKELY( !type ) ) return NULL;
     336           0 :   return !!type->vote_accounts_pool_offset ? (fd_vote_accounts_pair_global_t_mapnode_t *)fd_vote_accounts_pair_global_t_map_join( fd_type_pun( (uchar *)type + type->vote_accounts_pool_offset ) ) : NULL;
     337           0 : }
     338           0 : static FD_FN_UNUSED fd_vote_accounts_pair_global_t_mapnode_t * fd_vote_accounts_vote_accounts_root_join( fd_vote_accounts_global_t const * type ) {
     339           0 :   if( FD_UNLIKELY( !type ) ) return NULL;
     340           0 :   return !!type->vote_accounts_root_offset ? (fd_vote_accounts_pair_global_t_mapnode_t *)fd_type_pun( (uchar *)type + type->vote_accounts_root_offset ) : NULL;
     341           0 : }
     342           0 : static FD_FN_UNUSED void fd_vote_accounts_vote_accounts_pool_update( fd_vote_accounts_global_t * type, fd_vote_accounts_pair_global_t_mapnode_t * pool ) {
     343           0 :   type->vote_accounts_pool_offset = !!pool ? (ulong)fd_vote_accounts_pair_global_t_map_leave( pool ) - (ulong)type : 0UL;
     344           0 : }
     345           0 : static FD_FN_UNUSED void fd_vote_accounts_vote_accounts_root_update( fd_vote_accounts_global_t * type, fd_vote_accounts_pair_global_t_mapnode_t * root ) {
     346           0 :   type->vote_accounts_root_offset = !!root ? (ulong)root - (ulong)type : 0UL;
     347           0 : }
     348             : /* Encoded Size: Fixed (33 bytes) */
     349             : struct fd_account_keys_pair {
     350             :   fd_pubkey_t key;
     351             :   uchar exists;
     352             : };
     353             : typedef struct fd_account_keys_pair fd_account_keys_pair_t;
     354             : #define FD_ACCOUNT_KEYS_PAIR_ALIGN alignof(fd_account_keys_pair_t)
     355             : 
     356             : typedef struct fd_account_keys_pair_t_mapnode fd_account_keys_pair_t_mapnode_t;
     357             : #define REDBLK_T fd_account_keys_pair_t_mapnode_t
     358             : #define REDBLK_NAME fd_account_keys_pair_t_map
     359             : #define REDBLK_IMPL_STYLE 1
     360             : #include "../../util/tmpl/fd_redblack.c"
     361             : struct fd_account_keys_pair_t_mapnode {
     362             :     fd_account_keys_pair_t elem;
     363             :     ulong redblack_parent;
     364             :     ulong redblack_left;
     365             :     ulong redblack_right;
     366             :     int redblack_color;
     367             : };
     368             : static inline fd_account_keys_pair_t_mapnode_t *
     369           0 : fd_account_keys_pair_t_map_join_new( void * * alloc_mem, ulong len ) {
     370           0 :   if( FD_UNLIKELY( 0 == len ) ) len = 1; // prevent underflow
     371           0 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_account_keys_pair_t_map_align() );
     372           0 :   void * map_mem = *alloc_mem;
     373           0 :   *alloc_mem = (uchar *)*alloc_mem + fd_account_keys_pair_t_map_footprint( len );
     374           0 :   return fd_account_keys_pair_t_map_join( fd_account_keys_pair_t_map_new( map_mem, len ) );
     375           0 : }
     376             : /* Encoded Size: Dynamic */
     377             : struct fd_account_keys {
     378             :   fd_account_keys_pair_t_mapnode_t * account_keys_pool;
     379             :   fd_account_keys_pair_t_mapnode_t * account_keys_root;
     380             : };
     381             : typedef struct fd_account_keys fd_account_keys_t;
     382             : #define FD_ACCOUNT_KEYS_ALIGN alignof(fd_account_keys_t)
     383             : 
     384             : struct fd_account_keys_global {
     385             :   ulong account_keys_pool_offset;
     386             :   ulong account_keys_root_offset;
     387             : };
     388             : typedef struct fd_account_keys_global fd_account_keys_global_t;
     389             : #define FD_ACCOUNT_KEYS_GLOBAL_ALIGN alignof(fd_account_keys_global_t)
     390             : 
     391           0 : static FD_FN_UNUSED fd_account_keys_pair_t_mapnode_t * fd_account_keys_account_keys_pool_join( fd_account_keys_global_t const * type ) {
     392           0 :   if( FD_UNLIKELY( !type ) ) return NULL;
     393           0 :   return !!type->account_keys_pool_offset ? (fd_account_keys_pair_t_mapnode_t *)fd_account_keys_pair_t_map_join( fd_type_pun( (uchar *)type + type->account_keys_pool_offset ) ) : NULL;
     394           0 : }
     395           0 : static FD_FN_UNUSED fd_account_keys_pair_t_mapnode_t * fd_account_keys_account_keys_root_join( fd_account_keys_global_t const * type ) {
     396           0 :   if( FD_UNLIKELY( !type ) ) return NULL;
     397           0 :   return !!type->account_keys_root_offset ? (fd_account_keys_pair_t_mapnode_t *)fd_type_pun( (uchar *)type + type->account_keys_root_offset ) : NULL;
     398           0 : }
     399           0 : static FD_FN_UNUSED void fd_account_keys_account_keys_pool_update( fd_account_keys_global_t * type, fd_account_keys_pair_t_mapnode_t * pool ) {
     400           0 :   type->account_keys_pool_offset = !!pool ? (ulong)fd_account_keys_pair_t_map_leave( pool ) - (ulong)type : 0UL;
     401           0 : }
     402           0 : static FD_FN_UNUSED void fd_account_keys_account_keys_root_update( fd_account_keys_global_t * type, fd_account_keys_pair_t_mapnode_t * root ) {
     403           0 :   type->account_keys_root_offset = !!root ? (ulong)root - (ulong)type : 0UL;
     404           0 : }
     405             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/state.rs#L303 */
     406             : /* Encoded Size: Fixed (64 bytes) */
     407             : struct fd_delegation {
     408             :   fd_pubkey_t voter_pubkey;
     409             :   ulong stake;
     410             :   ulong activation_epoch;
     411             :   ulong deactivation_epoch;
     412             :   double warmup_cooldown_rate;
     413             : };
     414             : typedef struct fd_delegation fd_delegation_t;
     415             : #define FD_DELEGATION_ALIGN alignof(fd_delegation_t)
     416             : 
     417             : /* Encoded Size: Fixed (96 bytes) */
     418             : struct fd_delegation_pair {
     419             :   fd_pubkey_t account;
     420             :   fd_delegation_t delegation;
     421             : };
     422             : typedef struct fd_delegation_pair fd_delegation_pair_t;
     423             : #define FD_DELEGATION_PAIR_ALIGN alignof(fd_delegation_pair_t)
     424             : 
     425             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/state.rs#L539 */
     426             : /* Encoded Size: Fixed (72 bytes) */
     427             : struct fd_stake {
     428             :   fd_delegation_t delegation;
     429             :   ulong credits_observed;
     430             : };
     431             : typedef struct fd_stake fd_stake_t;
     432             : #define FD_STAKE_ALIGN alignof(fd_stake_t)
     433             : 
     434             : /* Encoded Size: Fixed (104 bytes) */
     435             : struct fd_stake_pair {
     436             :   fd_pubkey_t account;
     437             :   fd_stake_t stake;
     438             : };
     439             : typedef struct fd_stake_pair fd_stake_pair_t;
     440             : #define FD_STAKE_PAIR_ALIGN alignof(fd_stake_pair_t)
     441             : 
     442             : typedef struct fd_delegation_pair_t_mapnode fd_delegation_pair_t_mapnode_t;
     443             : #define REDBLK_T fd_delegation_pair_t_mapnode_t
     444             : #define REDBLK_NAME fd_delegation_pair_t_map
     445             : #define REDBLK_IMPL_STYLE 1
     446             : #include "../../util/tmpl/fd_redblack.c"
     447             : struct fd_delegation_pair_t_mapnode {
     448             :     fd_delegation_pair_t elem;
     449             :     ulong redblack_parent;
     450             :     ulong redblack_left;
     451             :     ulong redblack_right;
     452             :     int redblack_color;
     453             : };
     454             : static inline fd_delegation_pair_t_mapnode_t *
     455           0 : fd_delegation_pair_t_map_join_new( void * * alloc_mem, ulong len ) {
     456           0 :   if( FD_UNLIKELY( 0 == len ) ) len = 1; // prevent underflow
     457           0 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_delegation_pair_t_map_align() );
     458           0 :   void * map_mem = *alloc_mem;
     459           0 :   *alloc_mem = (uchar *)*alloc_mem + fd_delegation_pair_t_map_footprint( len );
     460           0 :   return fd_delegation_pair_t_map_join( fd_delegation_pair_t_map_new( map_mem, len ) );
     461           0 : }
     462             : /* https://github.com/anza-xyz/agave/blob/3e1c3a2f85b5b1d34031f2710d609347cfb77dfd/runtime/src/stakes.rs#L159 */
     463             : /* Encoded Size: Dynamic */
     464             : struct __attribute__((aligned(128UL))) fd_stakes {
     465             :   fd_vote_accounts_t vote_accounts;
     466             :   fd_delegation_pair_t_mapnode_t * stake_delegations_pool;
     467             :   fd_delegation_pair_t_mapnode_t * stake_delegations_root;
     468             :   ulong unused;
     469             :   ulong epoch;
     470             :   fd_stake_history_t stake_history;
     471             : };
     472             : typedef struct fd_stakes fd_stakes_t;
     473             : #define FD_STAKES_ALIGN (128UL)
     474             : 
     475             : struct __attribute__((aligned(128UL))) fd_stakes_global {
     476             :   fd_vote_accounts_global_t vote_accounts;
     477             :   ulong stake_delegations_pool_offset;
     478             :   ulong stake_delegations_root_offset;
     479             :   ulong unused;
     480             :   ulong epoch;
     481             :   fd_stake_history_t stake_history;
     482             : };
     483             : typedef struct fd_stakes_global fd_stakes_global_t;
     484             : #define FD_STAKES_GLOBAL_ALIGN (128UL)
     485             : 
     486           0 : static FD_FN_UNUSED fd_delegation_pair_t_mapnode_t * fd_stakes_stake_delegations_pool_join( fd_stakes_global_t const * type ) {
     487           0 :   if( FD_UNLIKELY( !type ) ) return NULL;
     488           0 :   return !!type->stake_delegations_pool_offset ? (fd_delegation_pair_t_mapnode_t *)fd_delegation_pair_t_map_join( fd_type_pun( (uchar *)type + type->stake_delegations_pool_offset ) ) : NULL;
     489           0 : }
     490           0 : static FD_FN_UNUSED fd_delegation_pair_t_mapnode_t * fd_stakes_stake_delegations_root_join( fd_stakes_global_t const * type ) {
     491           0 :   if( FD_UNLIKELY( !type ) ) return NULL;
     492           0 :   return !!type->stake_delegations_root_offset ? (fd_delegation_pair_t_mapnode_t *)fd_type_pun( (uchar *)type + type->stake_delegations_root_offset ) : NULL;
     493           0 : }
     494           0 : static FD_FN_UNUSED void fd_stakes_stake_delegations_pool_update( fd_stakes_global_t * type, fd_delegation_pair_t_mapnode_t * pool ) {
     495           0 :   type->stake_delegations_pool_offset = !!pool ? (ulong)fd_delegation_pair_t_map_leave( pool ) - (ulong)type : 0UL;
     496           0 : }
     497           0 : static FD_FN_UNUSED void fd_stakes_stake_delegations_root_update( fd_stakes_global_t * type, fd_delegation_pair_t_mapnode_t * root ) {
     498           0 :   type->stake_delegations_root_offset = !!root ? (ulong)root - (ulong)type : 0UL;
     499           0 : }
     500             : typedef struct fd_stake_pair_t_mapnode fd_stake_pair_t_mapnode_t;
     501             : #define REDBLK_T fd_stake_pair_t_mapnode_t
     502             : #define REDBLK_NAME fd_stake_pair_t_map
     503             : #define REDBLK_IMPL_STYLE 1
     504             : #include "../../util/tmpl/fd_redblack.c"
     505             : struct fd_stake_pair_t_mapnode {
     506             :     fd_stake_pair_t elem;
     507             :     ulong redblack_parent;
     508             :     ulong redblack_left;
     509             :     ulong redblack_right;
     510             :     int redblack_color;
     511             : };
     512             : static inline fd_stake_pair_t_mapnode_t *
     513           0 : fd_stake_pair_t_map_join_new( void * * alloc_mem, ulong len ) {
     514           0 :   if( FD_UNLIKELY( 0 == len ) ) len = 1; // prevent underflow
     515           0 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_stake_pair_t_map_align() );
     516           0 :   void * map_mem = *alloc_mem;
     517           0 :   *alloc_mem = (uchar *)*alloc_mem + fd_stake_pair_t_map_footprint( len );
     518           0 :   return fd_stake_pair_t_map_join( fd_stake_pair_t_map_new( map_mem, len ) );
     519           0 : }
     520             : /* https://github.com/anza-xyz/agave/blob/436f7333a8465739df65c2534654102896e09eb5/runtime/src/stakes.rs#L160 */
     521             : /* Encoded Size: Dynamic */
     522             : struct fd_stakes_stake {
     523             :   fd_vote_accounts_t vote_accounts;
     524             :   fd_stake_pair_t_mapnode_t * stake_delegations_pool;
     525             :   fd_stake_pair_t_mapnode_t * stake_delegations_root;
     526             :   ulong unused;
     527             :   ulong epoch;
     528             :   fd_stake_history_t stake_history;
     529             : };
     530             : typedef struct fd_stakes_stake fd_stakes_stake_t;
     531             : #define FD_STAKES_STAKE_ALIGN alignof(fd_stakes_stake_t)
     532             : 
     533             : struct fd_stakes_stake_global {
     534             :   fd_vote_accounts_global_t vote_accounts;
     535             :   ulong stake_delegations_pool_offset;
     536             :   ulong stake_delegations_root_offset;
     537             :   ulong unused;
     538             :   ulong epoch;
     539             :   fd_stake_history_t stake_history;
     540             : };
     541             : typedef struct fd_stakes_stake_global fd_stakes_stake_global_t;
     542             : #define FD_STAKES_STAKE_GLOBAL_ALIGN alignof(fd_stakes_stake_global_t)
     543             : 
     544           0 : static FD_FN_UNUSED fd_stake_pair_t_mapnode_t * fd_stakes_stake_stake_delegations_pool_join( fd_stakes_stake_global_t const * type ) {
     545           0 :   if( FD_UNLIKELY( !type ) ) return NULL;
     546           0 :   return !!type->stake_delegations_pool_offset ? (fd_stake_pair_t_mapnode_t *)fd_stake_pair_t_map_join( fd_type_pun( (uchar *)type + type->stake_delegations_pool_offset ) ) : NULL;
     547           0 : }
     548           0 : static FD_FN_UNUSED fd_stake_pair_t_mapnode_t * fd_stakes_stake_stake_delegations_root_join( fd_stakes_stake_global_t const * type ) {
     549           0 :   if( FD_UNLIKELY( !type ) ) return NULL;
     550           0 :   return !!type->stake_delegations_root_offset ? (fd_stake_pair_t_mapnode_t *)fd_type_pun( (uchar *)type + type->stake_delegations_root_offset ) : NULL;
     551           0 : }
     552           0 : static FD_FN_UNUSED void fd_stakes_stake_stake_delegations_pool_update( fd_stakes_stake_global_t * type, fd_stake_pair_t_mapnode_t * pool ) {
     553           0 :   type->stake_delegations_pool_offset = !!pool ? (ulong)fd_stake_pair_t_map_leave( pool ) - (ulong)type : 0UL;
     554           0 : }
     555           0 : static FD_FN_UNUSED void fd_stakes_stake_stake_delegations_root_update( fd_stakes_stake_global_t * type, fd_stake_pair_t_mapnode_t * root ) {
     556           0 :   type->stake_delegations_root_offset = !!root ? (ulong)root - (ulong)type : 0UL;
     557           0 : }
     558             : /* Encoded Size: Fixed (88 bytes) */
     559             : struct fd_bank_incremental_snapshot_persistence {
     560             :   ulong full_slot;
     561             :   fd_hash_t full_hash;
     562             :   ulong full_capitalization;
     563             :   fd_hash_t incremental_hash;
     564             :   ulong incremental_capitalization;
     565             : };
     566             : typedef struct fd_bank_incremental_snapshot_persistence fd_bank_incremental_snapshot_persistence_t;
     567           0 : #define FD_BANK_INCREMENTAL_SNAPSHOT_PERSISTENCE_ALIGN alignof(fd_bank_incremental_snapshot_persistence_t)
     568             : 
     569             : /* https://github.com/anza-xyz/agave/blob/de6ce29e1a7ecbdc6dc39527fce80beea404d314/runtime/src/epoch_stakes.rs#L16 */
     570             : /* Encoded Size: Dynamic */
     571             : struct fd_node_vote_accounts {
     572             :   ulong vote_accounts_len;
     573             :   fd_pubkey_t * vote_accounts;
     574             :   ulong total_stake;
     575             : };
     576             : typedef struct fd_node_vote_accounts fd_node_vote_accounts_t;
     577             : #define FD_NODE_VOTE_ACCOUNTS_ALIGN alignof(fd_node_vote_accounts_t)
     578             : 
     579             : struct fd_node_vote_accounts_global {
     580             :   ulong vote_accounts_len;
     581             :   ulong vote_accounts_offset;
     582             :   ulong total_stake;
     583             : };
     584             : typedef struct fd_node_vote_accounts_global fd_node_vote_accounts_global_t;
     585             : #define FD_NODE_VOTE_ACCOUNTS_GLOBAL_ALIGN alignof(fd_node_vote_accounts_global_t)
     586             : 
     587           0 : FD_FN_UNUSED static fd_pubkey_t * fd_node_vote_accounts_vote_accounts_join( fd_node_vote_accounts_global_t const * struct_mem ) { // vector
     588           0 :   return struct_mem->vote_accounts_offset ? (fd_pubkey_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->vote_accounts_offset ) : NULL;
     589           0 : }
     590           0 : FD_FN_UNUSED static void fd_node_vote_accounts_vote_accounts_update( fd_node_vote_accounts_global_t * struct_mem, fd_pubkey_t * vec ) {
     591           0 :   struct_mem->vote_accounts_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
     592           0 : }
     593             : /* https://github.com/anza-xyz/agave/blob/de6ce29e1a7ecbdc6dc39527fce80beea404d314/runtime/src/epoch_stakes.rs#L10 */
     594             : /* Encoded Size: Dynamic */
     595             : struct fd_pubkey_node_vote_accounts_pair {
     596             :   fd_pubkey_t key;
     597             :   fd_node_vote_accounts_t value;
     598             : };
     599             : typedef struct fd_pubkey_node_vote_accounts_pair fd_pubkey_node_vote_accounts_pair_t;
     600             : #define FD_PUBKEY_NODE_VOTE_ACCOUNTS_PAIR_ALIGN alignof(fd_pubkey_node_vote_accounts_pair_t)
     601             : 
     602             : struct fd_pubkey_node_vote_accounts_pair_global {
     603             :   fd_pubkey_t key;
     604             :   fd_node_vote_accounts_global_t value;
     605             : };
     606             : typedef struct fd_pubkey_node_vote_accounts_pair_global fd_pubkey_node_vote_accounts_pair_global_t;
     607             : #define FD_PUBKEY_NODE_VOTE_ACCOUNTS_PAIR_GLOBAL_ALIGN alignof(fd_pubkey_node_vote_accounts_pair_global_t)
     608             : 
     609             : /* Encoded Size: Fixed (64 bytes) */
     610             : struct fd_pubkey_pubkey_pair {
     611             :   fd_pubkey_t key;
     612             :   fd_pubkey_t value;
     613             : };
     614             : typedef struct fd_pubkey_pubkey_pair fd_pubkey_pubkey_pair_t;
     615             : #define FD_PUBKEY_PUBKEY_PAIR_ALIGN alignof(fd_pubkey_pubkey_pair_t)
     616             : 
     617             : typedef struct fd_pubkey_node_vote_accounts_pair_t_mapnode fd_pubkey_node_vote_accounts_pair_t_mapnode_t;
     618             : #define REDBLK_T fd_pubkey_node_vote_accounts_pair_t_mapnode_t
     619             : #define REDBLK_NAME fd_pubkey_node_vote_accounts_pair_t_map
     620             : #define REDBLK_IMPL_STYLE 1
     621             : #include "../../util/tmpl/fd_redblack.c"
     622             : struct fd_pubkey_node_vote_accounts_pair_t_mapnode {
     623             :     fd_pubkey_node_vote_accounts_pair_t elem;
     624             :     ulong redblack_parent;
     625             :     ulong redblack_left;
     626             :     ulong redblack_right;
     627             :     int redblack_color;
     628             : };
     629             : static inline fd_pubkey_node_vote_accounts_pair_t_mapnode_t *
     630           0 : fd_pubkey_node_vote_accounts_pair_t_map_join_new( void * * alloc_mem, ulong len ) {
     631           0 :   if( FD_UNLIKELY( 0 == len ) ) len = 1; // prevent underflow
     632           0 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_pubkey_node_vote_accounts_pair_t_map_align() );
     633           0 :   void * map_mem = *alloc_mem;
     634           0 :   *alloc_mem = (uchar *)*alloc_mem + fd_pubkey_node_vote_accounts_pair_t_map_footprint( len );
     635           0 :   return fd_pubkey_node_vote_accounts_pair_t_map_join( fd_pubkey_node_vote_accounts_pair_t_map_new( map_mem, len ) );
     636           0 : }
     637             : typedef struct fd_pubkey_node_vote_accounts_pair_global_t_mapnode fd_pubkey_node_vote_accounts_pair_global_t_mapnode_t;
     638             : #define REDBLK_T fd_pubkey_node_vote_accounts_pair_global_t_mapnode_t
     639             : #define REDBLK_NAME fd_pubkey_node_vote_accounts_pair_global_t_map
     640             : #define REDBLK_IMPL_STYLE 1
     641             : #include "../../util/tmpl/fd_redblack.c"
     642             : struct fd_pubkey_node_vote_accounts_pair_global_t_mapnode {
     643             :     fd_pubkey_node_vote_accounts_pair_global_t elem;
     644             :     ulong redblack_parent;
     645             :     ulong redblack_left;
     646             :     ulong redblack_right;
     647             :     int redblack_color;
     648             : };
     649             : static inline fd_pubkey_node_vote_accounts_pair_global_t_mapnode_t *
     650           0 : fd_pubkey_node_vote_accounts_pair_global_t_map_join_new( void * * alloc_mem, ulong len ) {
     651           0 :   if( FD_UNLIKELY( 0 == len ) ) len = 1; // prevent underflow
     652           0 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_pubkey_node_vote_accounts_pair_global_t_map_align() );
     653           0 :   void * map_mem = *alloc_mem;
     654           0 :   *alloc_mem = (uchar *)*alloc_mem + fd_pubkey_node_vote_accounts_pair_global_t_map_footprint( len );
     655           0 :   return fd_pubkey_node_vote_accounts_pair_global_t_map_join( fd_pubkey_node_vote_accounts_pair_global_t_map_new( map_mem, len ) );
     656           0 : }
     657             : typedef struct fd_pubkey_pubkey_pair_t_mapnode fd_pubkey_pubkey_pair_t_mapnode_t;
     658             : #define REDBLK_T fd_pubkey_pubkey_pair_t_mapnode_t
     659             : #define REDBLK_NAME fd_pubkey_pubkey_pair_t_map
     660             : #define REDBLK_IMPL_STYLE 1
     661             : #include "../../util/tmpl/fd_redblack.c"
     662             : struct fd_pubkey_pubkey_pair_t_mapnode {
     663             :     fd_pubkey_pubkey_pair_t elem;
     664             :     ulong redblack_parent;
     665             :     ulong redblack_left;
     666             :     ulong redblack_right;
     667             :     int redblack_color;
     668             : };
     669             : static inline fd_pubkey_pubkey_pair_t_mapnode_t *
     670           0 : fd_pubkey_pubkey_pair_t_map_join_new( void * * alloc_mem, ulong len ) {
     671           0 :   if( FD_UNLIKELY( 0 == len ) ) len = 1; // prevent underflow
     672           0 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_pubkey_pubkey_pair_t_map_align() );
     673           0 :   void * map_mem = *alloc_mem;
     674           0 :   *alloc_mem = (uchar *)*alloc_mem + fd_pubkey_pubkey_pair_t_map_footprint( len );
     675           0 :   return fd_pubkey_pubkey_pair_t_map_join( fd_pubkey_pubkey_pair_t_map_new( map_mem, len ) );
     676           0 : }
     677             : /* https://github.com/anza-xyz/agave/blob/de6ce29e1a7ecbdc6dc39527fce80beea404d314/runtime/src/epoch_stakes.rs#L23 */
     678             : /* Encoded Size: Dynamic */
     679             : struct fd_epoch_stakes {
     680             :   fd_stakes_t stakes;
     681             :   ulong total_stake;
     682             :   fd_pubkey_node_vote_accounts_pair_t_mapnode_t * node_id_to_vote_accounts_pool;
     683             :   fd_pubkey_node_vote_accounts_pair_t_mapnode_t * node_id_to_vote_accounts_root;
     684             :   fd_pubkey_pubkey_pair_t_mapnode_t * epoch_authorized_voters_pool;
     685             :   fd_pubkey_pubkey_pair_t_mapnode_t * epoch_authorized_voters_root;
     686             : };
     687             : typedef struct fd_epoch_stakes fd_epoch_stakes_t;
     688             : #define FD_EPOCH_STAKES_ALIGN alignof(fd_epoch_stakes_t)
     689             : 
     690             : struct fd_epoch_stakes_global {
     691             :   fd_stakes_global_t stakes;
     692             :   ulong total_stake;
     693             :   ulong node_id_to_vote_accounts_pool_offset;
     694             :   ulong node_id_to_vote_accounts_root_offset;
     695             :   ulong epoch_authorized_voters_pool_offset;
     696             :   ulong epoch_authorized_voters_root_offset;
     697             : };
     698             : typedef struct fd_epoch_stakes_global fd_epoch_stakes_global_t;
     699             : #define FD_EPOCH_STAKES_GLOBAL_ALIGN alignof(fd_epoch_stakes_global_t)
     700             : 
     701           0 : static FD_FN_UNUSED fd_pubkey_node_vote_accounts_pair_global_t_mapnode_t * fd_epoch_stakes_node_id_to_vote_accounts_pool_join( fd_epoch_stakes_global_t const * type ) {
     702           0 :   if( FD_UNLIKELY( !type ) ) return NULL;
     703           0 :   return !!type->node_id_to_vote_accounts_pool_offset ? (fd_pubkey_node_vote_accounts_pair_global_t_mapnode_t *)fd_pubkey_node_vote_accounts_pair_global_t_map_join( fd_type_pun( (uchar *)type + type->node_id_to_vote_accounts_pool_offset ) ) : NULL;
     704           0 : }
     705           0 : static FD_FN_UNUSED fd_pubkey_node_vote_accounts_pair_global_t_mapnode_t * fd_epoch_stakes_node_id_to_vote_accounts_root_join( fd_epoch_stakes_global_t const * type ) {
     706           0 :   if( FD_UNLIKELY( !type ) ) return NULL;
     707           0 :   return !!type->node_id_to_vote_accounts_root_offset ? (fd_pubkey_node_vote_accounts_pair_global_t_mapnode_t *)fd_type_pun( (uchar *)type + type->node_id_to_vote_accounts_root_offset ) : NULL;
     708           0 : }
     709           0 : static FD_FN_UNUSED void fd_epoch_stakes_node_id_to_vote_accounts_pool_update( fd_epoch_stakes_global_t * type, fd_pubkey_node_vote_accounts_pair_global_t_mapnode_t * pool ) {
     710           0 :   type->node_id_to_vote_accounts_pool_offset = !!pool ? (ulong)fd_pubkey_node_vote_accounts_pair_global_t_map_leave( pool ) - (ulong)type : 0UL;
     711           0 : }
     712           0 : static FD_FN_UNUSED void fd_epoch_stakes_node_id_to_vote_accounts_root_update( fd_epoch_stakes_global_t * type, fd_pubkey_node_vote_accounts_pair_global_t_mapnode_t * root ) {
     713           0 :   type->node_id_to_vote_accounts_root_offset = !!root ? (ulong)root - (ulong)type : 0UL;
     714           0 : }
     715           0 : static FD_FN_UNUSED fd_pubkey_pubkey_pair_t_mapnode_t * fd_epoch_stakes_epoch_authorized_voters_pool_join( fd_epoch_stakes_global_t const * type ) {
     716           0 :   if( FD_UNLIKELY( !type ) ) return NULL;
     717           0 :   return !!type->epoch_authorized_voters_pool_offset ? (fd_pubkey_pubkey_pair_t_mapnode_t *)fd_pubkey_pubkey_pair_t_map_join( fd_type_pun( (uchar *)type + type->epoch_authorized_voters_pool_offset ) ) : NULL;
     718           0 : }
     719           0 : static FD_FN_UNUSED fd_pubkey_pubkey_pair_t_mapnode_t * fd_epoch_stakes_epoch_authorized_voters_root_join( fd_epoch_stakes_global_t const * type ) {
     720           0 :   if( FD_UNLIKELY( !type ) ) return NULL;
     721           0 :   return !!type->epoch_authorized_voters_root_offset ? (fd_pubkey_pubkey_pair_t_mapnode_t *)fd_type_pun( (uchar *)type + type->epoch_authorized_voters_root_offset ) : NULL;
     722           0 : }
     723           0 : static FD_FN_UNUSED void fd_epoch_stakes_epoch_authorized_voters_pool_update( fd_epoch_stakes_global_t * type, fd_pubkey_pubkey_pair_t_mapnode_t * pool ) {
     724           0 :   type->epoch_authorized_voters_pool_offset = !!pool ? (ulong)fd_pubkey_pubkey_pair_t_map_leave( pool ) - (ulong)type : 0UL;
     725           0 : }
     726           0 : static FD_FN_UNUSED void fd_epoch_stakes_epoch_authorized_voters_root_update( fd_epoch_stakes_global_t * type, fd_pubkey_pubkey_pair_t_mapnode_t * root ) {
     727           0 :   type->epoch_authorized_voters_root_offset = !!root ? (ulong)root - (ulong)type : 0UL;
     728           0 : }
     729             : /* Encoded Size: Dynamic */
     730             : struct fd_epoch_epoch_stakes_pair {
     731             :   ulong key;
     732             :   fd_epoch_stakes_t value;
     733             : };
     734             : typedef struct fd_epoch_epoch_stakes_pair fd_epoch_epoch_stakes_pair_t;
     735           0 : #define FD_EPOCH_EPOCH_STAKES_PAIR_ALIGN alignof(fd_epoch_epoch_stakes_pair_t)
     736             : 
     737             : struct fd_epoch_epoch_stakes_pair_global {
     738             :   ulong key;
     739             :   fd_epoch_stakes_global_t value;
     740             : };
     741             : typedef struct fd_epoch_epoch_stakes_pair_global fd_epoch_epoch_stakes_pair_global_t;
     742             : #define FD_EPOCH_EPOCH_STAKES_PAIR_GLOBAL_ALIGN alignof(fd_epoch_epoch_stakes_pair_global_t)
     743             : 
     744             : /* Encoded Size: Fixed (40 bytes) */
     745             : struct fd_pubkey_u64_pair {
     746             :   fd_pubkey_t _0;
     747             :   ulong _1;
     748             : };
     749             : typedef struct fd_pubkey_u64_pair fd_pubkey_u64_pair_t;
     750           0 : #define FD_PUBKEY_U64_PAIR_ALIGN alignof(fd_pubkey_u64_pair_t)
     751             : 
     752             : /* Encoded Size: Dynamic */
     753             : struct fd_unused_accounts {
     754             :   ulong unused1_len;
     755             :   fd_pubkey_t * unused1;
     756             :   ulong unused2_len;
     757             :   fd_pubkey_t * unused2;
     758             :   ulong unused3_len;
     759             :   fd_pubkey_u64_pair_t * unused3;
     760             : };
     761             : typedef struct fd_unused_accounts fd_unused_accounts_t;
     762             : #define FD_UNUSED_ACCOUNTS_ALIGN alignof(fd_unused_accounts_t)
     763             : 
     764             : struct fd_unused_accounts_global {
     765             :   ulong unused1_len;
     766             :   ulong unused1_offset;
     767             :   ulong unused2_len;
     768             :   ulong unused2_offset;
     769             :   ulong unused3_len;
     770             :   ulong unused3_offset;
     771             : };
     772             : typedef struct fd_unused_accounts_global fd_unused_accounts_global_t;
     773             : #define FD_UNUSED_ACCOUNTS_GLOBAL_ALIGN alignof(fd_unused_accounts_global_t)
     774             : 
     775           0 : FD_FN_UNUSED static fd_pubkey_t * fd_unused_accounts_unused1_join( fd_unused_accounts_global_t const * struct_mem ) { // vector
     776           0 :   return struct_mem->unused1_offset ? (fd_pubkey_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->unused1_offset ) : NULL;
     777           0 : }
     778           0 : FD_FN_UNUSED static void fd_unused_accounts_unused1_update( fd_unused_accounts_global_t * struct_mem, fd_pubkey_t * vec ) {
     779           0 :   struct_mem->unused1_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
     780           0 : }
     781           0 : FD_FN_UNUSED static fd_pubkey_t * fd_unused_accounts_unused2_join( fd_unused_accounts_global_t const * struct_mem ) { // vector
     782           0 :   return struct_mem->unused2_offset ? (fd_pubkey_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->unused2_offset ) : NULL;
     783           0 : }
     784           0 : FD_FN_UNUSED static void fd_unused_accounts_unused2_update( fd_unused_accounts_global_t * struct_mem, fd_pubkey_t * vec ) {
     785           0 :   struct_mem->unused2_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
     786           0 : }
     787           0 : FD_FN_UNUSED static fd_pubkey_u64_pair_t * fd_unused_accounts_unused3_join( fd_unused_accounts_global_t const * struct_mem ) { // vector
     788           0 :   return struct_mem->unused3_offset ? (fd_pubkey_u64_pair_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->unused3_offset ) : NULL;
     789           0 : }
     790           0 : FD_FN_UNUSED static void fd_unused_accounts_unused3_update( fd_unused_accounts_global_t * struct_mem, fd_pubkey_u64_pair_t * vec ) {
     791           0 :   struct_mem->unused3_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
     792           0 : }
     793             : /* https://github.com/solana-labs/solana/blob/88aeaa82a856fc807234e7da0b31b89f2dc0e091/runtime/src/bank.rs#L967 */
     794             : /* Encoded Size: Dynamic */
     795             : struct fd_versioned_bank {
     796             :   fd_block_hash_vec_t blockhash_queue;
     797             :   ulong ancestors_len;
     798             :   fd_slot_pair_t * ancestors;
     799             :   fd_hash_t hash;
     800             :   fd_hash_t parent_hash;
     801             :   ulong parent_slot;
     802             :   fd_hard_forks_t hard_forks;
     803             :   ulong transaction_count;
     804             :   ulong tick_height;
     805             :   ulong signature_count;
     806             :   ulong capitalization;
     807             :   ulong max_tick_height;
     808             :   ulong* hashes_per_tick;
     809             :   ulong ticks_per_slot;
     810             :   uint128 ns_per_slot;
     811             :   ulong genesis_creation_time;
     812             :   double slots_per_year;
     813             :   ulong accounts_data_len;
     814             :   ulong slot;
     815             :   ulong epoch;
     816             :   ulong block_height;
     817             :   fd_pubkey_t collector_id;
     818             :   ulong collector_fees;
     819             :   fd_fee_calculator_t fee_calculator;
     820             :   fd_fee_rate_governor_t fee_rate_governor;
     821             :   ulong collected_rent;
     822             :   fd_rent_collector_t rent_collector;
     823             :   fd_epoch_schedule_t epoch_schedule;
     824             :   fd_inflation_t inflation;
     825             :   fd_stakes_t stakes;
     826             :   fd_unused_accounts_t unused_accounts;
     827             :   ulong epoch_stakes_len;
     828             :   fd_epoch_epoch_stakes_pair_t * epoch_stakes;
     829             :   uchar is_delta;
     830             : };
     831             : typedef struct fd_versioned_bank fd_versioned_bank_t;
     832             : #define FD_VERSIONED_BANK_ALIGN alignof(fd_versioned_bank_t)
     833             : 
     834             : struct fd_versioned_bank_global {
     835             :   fd_block_hash_vec_global_t blockhash_queue;
     836             :   ulong ancestors_len;
     837             :   ulong ancestors_offset;
     838             :   fd_hash_t hash;
     839             :   fd_hash_t parent_hash;
     840             :   ulong parent_slot;
     841             :   fd_hard_forks_global_t hard_forks;
     842             :   ulong transaction_count;
     843             :   ulong tick_height;
     844             :   ulong signature_count;
     845             :   ulong capitalization;
     846             :   ulong max_tick_height;
     847             :   ulong hashes_per_tick_offset;
     848             :   ulong ticks_per_slot;
     849             :   uint128 ns_per_slot;
     850             :   ulong genesis_creation_time;
     851             :   double slots_per_year;
     852             :   ulong accounts_data_len;
     853             :   ulong slot;
     854             :   ulong epoch;
     855             :   ulong block_height;
     856             :   fd_pubkey_t collector_id;
     857             :   ulong collector_fees;
     858             :   fd_fee_calculator_t fee_calculator;
     859             :   fd_fee_rate_governor_t fee_rate_governor;
     860             :   ulong collected_rent;
     861             :   fd_rent_collector_t rent_collector;
     862             :   fd_epoch_schedule_t epoch_schedule;
     863             :   fd_inflation_t inflation;
     864             :   fd_stakes_global_t stakes;
     865             :   fd_unused_accounts_global_t unused_accounts;
     866             :   ulong epoch_stakes_len;
     867             :   ulong epoch_stakes_offset;
     868             :   uchar is_delta;
     869             : };
     870             : typedef struct fd_versioned_bank_global fd_versioned_bank_global_t;
     871             : #define FD_VERSIONED_BANK_GLOBAL_ALIGN alignof(fd_versioned_bank_global_t)
     872             : 
     873           0 : FD_FN_UNUSED static fd_slot_pair_t * fd_versioned_bank_ancestors_join( fd_versioned_bank_global_t const * struct_mem ) { // vector
     874           0 :   return struct_mem->ancestors_offset ? (fd_slot_pair_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->ancestors_offset ) : NULL;
     875           0 : }
     876           0 : FD_FN_UNUSED static void fd_versioned_bank_ancestors_update( fd_versioned_bank_global_t * struct_mem, fd_slot_pair_t * vec ) {
     877           0 :   struct_mem->ancestors_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
     878           0 : }
     879           0 : FD_FN_UNUSED static ulong * fd_versioned_bank_hashes_per_tick_join( fd_versioned_bank_global_t const * struct_mem ) {
     880           0 :   return struct_mem->hashes_per_tick_offset ? (ulong *)fd_type_pun( (uchar *)struct_mem + struct_mem->hashes_per_tick_offset ) : NULL;
     881           0 : }
     882           0 : FD_FN_UNUSED static fd_epoch_epoch_stakes_pair_global_t * fd_versioned_bank_epoch_stakes_join( fd_versioned_bank_global_t const * struct_mem ) { // vector
     883           0 :   return struct_mem->epoch_stakes_offset ? (fd_epoch_epoch_stakes_pair_global_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->epoch_stakes_offset ) : NULL;
     884           0 : }
     885           0 : FD_FN_UNUSED static void fd_versioned_bank_epoch_stakes_update( fd_versioned_bank_global_t * struct_mem, fd_epoch_epoch_stakes_pair_global_t * vec ) {
     886           0 :   struct_mem->epoch_stakes_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
     887           0 : }
     888             : /* Encoded Size: Fixed (40 bytes) */
     889             : struct fd_bank_hash_stats {
     890             :   ulong num_updated_accounts;
     891             :   ulong num_removed_accounts;
     892             :   ulong num_lamports_stored;
     893             :   ulong total_data_len;
     894             :   ulong num_executable_accounts;
     895             : };
     896             : typedef struct fd_bank_hash_stats fd_bank_hash_stats_t;
     897             : #define FD_BANK_HASH_STATS_ALIGN alignof(fd_bank_hash_stats_t)
     898             : 
     899             : /* Encoded Size: Fixed (104 bytes) */
     900             : struct fd_bank_hash_info {
     901             :   fd_hash_t accounts_delta_hash;
     902             :   fd_hash_t accounts_hash;
     903             :   fd_bank_hash_stats_t stats;
     904             : };
     905             : typedef struct fd_bank_hash_info fd_bank_hash_info_t;
     906             : #define FD_BANK_HASH_INFO_ALIGN alignof(fd_bank_hash_info_t)
     907             : 
     908             : /* Encoded Size: Fixed (40 bytes) */
     909             : struct fd_slot_map_pair {
     910             :   ulong slot;
     911             :   fd_hash_t hash;
     912             : };
     913             : typedef struct fd_slot_map_pair fd_slot_map_pair_t;
     914           0 : #define FD_SLOT_MAP_PAIR_ALIGN alignof(fd_slot_map_pair_t)
     915             : 
     916             : /* Encoded Size: Fixed (16 bytes) */
     917             : struct fd_snapshot_acc_vec {
     918             :   ulong id;
     919             :   ulong file_sz;
     920             : };
     921             : typedef struct fd_snapshot_acc_vec fd_snapshot_acc_vec_t;
     922           0 : #define FD_SNAPSHOT_ACC_VEC_ALIGN alignof(fd_snapshot_acc_vec_t)
     923             : 
     924             : /* Encoded Size: Dynamic */
     925             : struct fd_snapshot_slot_acc_vecs {
     926             :   ulong slot;
     927             :   ulong account_vecs_len;
     928             :   fd_snapshot_acc_vec_t * account_vecs;
     929             : };
     930             : typedef struct fd_snapshot_slot_acc_vecs fd_snapshot_slot_acc_vecs_t;
     931           0 : #define FD_SNAPSHOT_SLOT_ACC_VECS_ALIGN alignof(fd_snapshot_slot_acc_vecs_t)
     932             : 
     933             : struct fd_snapshot_slot_acc_vecs_global {
     934             :   ulong slot;
     935             :   ulong account_vecs_len;
     936             :   ulong account_vecs_offset;
     937             : };
     938             : typedef struct fd_snapshot_slot_acc_vecs_global fd_snapshot_slot_acc_vecs_global_t;
     939             : #define FD_SNAPSHOT_SLOT_ACC_VECS_GLOBAL_ALIGN alignof(fd_snapshot_slot_acc_vecs_global_t)
     940             : 
     941           0 : FD_FN_UNUSED static fd_snapshot_acc_vec_t * fd_snapshot_slot_acc_vecs_account_vecs_join( fd_snapshot_slot_acc_vecs_global_t const * struct_mem ) { // vector
     942           0 :   return struct_mem->account_vecs_offset ? (fd_snapshot_acc_vec_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->account_vecs_offset ) : NULL;
     943           0 : }
     944           0 : FD_FN_UNUSED static void fd_snapshot_slot_acc_vecs_account_vecs_update( fd_snapshot_slot_acc_vecs_global_t * struct_mem, fd_snapshot_acc_vec_t * vec ) {
     945           0 :   struct_mem->account_vecs_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
     946           0 : }
     947             : /* https://github.com/anza-xyz/agave/blob/7117ed9653ce19e8b2dea108eff1f3eb6a3378a7/sdk/src/reward_type.rs#L7 */
     948             : struct fd_reward_type {
     949             :   uint discriminant;
     950             : };
     951             : typedef struct fd_reward_type fd_reward_type_t;
     952             : #define FD_REWARD_TYPE_ALIGN alignof(fd_reward_type_t)
     953             : 
     954             : /* Accounts DB related fields in a snapshot */
     955             : /* Encoded Size: Dynamic */
     956             : struct fd_solana_accounts_db_fields {
     957             :   ulong storages_len;
     958             :   fd_snapshot_slot_acc_vecs_t * storages;
     959             :   ulong version;
     960             :   ulong slot;
     961             :   fd_bank_hash_info_t bank_hash_info;
     962             :   ulong historical_roots_len;
     963             :   ulong* historical_roots;
     964             :   ulong historical_roots_with_hash_len;
     965             :   fd_slot_map_pair_t * historical_roots_with_hash;
     966             : };
     967             : typedef struct fd_solana_accounts_db_fields fd_solana_accounts_db_fields_t;
     968             : #define FD_SOLANA_ACCOUNTS_DB_FIELDS_ALIGN alignof(fd_solana_accounts_db_fields_t)
     969             : 
     970             : struct fd_solana_accounts_db_fields_global {
     971             :   ulong storages_len;
     972             :   ulong storages_offset;
     973             :   ulong version;
     974             :   ulong slot;
     975             :   fd_bank_hash_info_t bank_hash_info;
     976             :   ulong historical_roots_len;
     977             :   ulong historical_roots_offset;
     978             :   ulong historical_roots_with_hash_len;
     979             :   ulong historical_roots_with_hash_offset;
     980             : };
     981             : typedef struct fd_solana_accounts_db_fields_global fd_solana_accounts_db_fields_global_t;
     982             : #define FD_SOLANA_ACCOUNTS_DB_FIELDS_GLOBAL_ALIGN alignof(fd_solana_accounts_db_fields_global_t)
     983             : 
     984           0 : FD_FN_UNUSED static fd_snapshot_slot_acc_vecs_global_t * fd_solana_accounts_db_fields_storages_join( fd_solana_accounts_db_fields_global_t const * struct_mem ) { // vector
     985           0 :   return struct_mem->storages_offset ? (fd_snapshot_slot_acc_vecs_global_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->storages_offset ) : NULL;
     986           0 : }
     987           0 : FD_FN_UNUSED static void fd_solana_accounts_db_fields_storages_update( fd_solana_accounts_db_fields_global_t * struct_mem, fd_snapshot_slot_acc_vecs_global_t * vec ) {
     988           0 :   struct_mem->storages_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
     989           0 : }
     990           0 : FD_FN_UNUSED static ulong * fd_solana_accounts_db_fields_historical_roots_join( fd_solana_accounts_db_fields_global_t const * struct_mem ) { // vector
     991           0 :   return struct_mem->historical_roots_offset ? (ulong *)fd_type_pun( (uchar *)struct_mem + struct_mem->historical_roots_offset ) : NULL;
     992           0 : }
     993           0 : FD_FN_UNUSED static void fd_solana_accounts_db_fields_historical_roots_update( fd_solana_accounts_db_fields_global_t * struct_mem, ulong * vec ) {
     994           0 :   struct_mem->historical_roots_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
     995           0 : }
     996           0 : FD_FN_UNUSED static fd_slot_map_pair_t * fd_solana_accounts_db_fields_historical_roots_with_hash_join( fd_solana_accounts_db_fields_global_t const * struct_mem ) { // vector
     997           0 :   return struct_mem->historical_roots_with_hash_offset ? (fd_slot_map_pair_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->historical_roots_with_hash_offset ) : NULL;
     998           0 : }
     999           0 : FD_FN_UNUSED static void fd_solana_accounts_db_fields_historical_roots_with_hash_update( fd_solana_accounts_db_fields_global_t * struct_mem, fd_slot_map_pair_t * vec ) {
    1000           0 :   struct_mem->historical_roots_with_hash_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
    1001           0 : }
    1002             : /* https://github.com/anza-xyz/agave/blob/436f7333a8465739df65c2534654102896e09eb5/runtime/src/epoch_stakes.rs#L25 */
    1003             : /* Encoded Size: Dynamic */
    1004             : struct fd_versioned_epoch_stakes_current {
    1005             :   fd_stakes_stake_t stakes;
    1006             :   ulong total_stake;
    1007             :   fd_pubkey_node_vote_accounts_pair_t_mapnode_t * node_id_to_vote_accounts_pool;
    1008             :   fd_pubkey_node_vote_accounts_pair_t_mapnode_t * node_id_to_vote_accounts_root;
    1009             :   fd_pubkey_pubkey_pair_t_mapnode_t * epoch_authorized_voters_pool;
    1010             :   fd_pubkey_pubkey_pair_t_mapnode_t * epoch_authorized_voters_root;
    1011             : };
    1012             : typedef struct fd_versioned_epoch_stakes_current fd_versioned_epoch_stakes_current_t;
    1013             : #define FD_VERSIONED_EPOCH_STAKES_CURRENT_ALIGN alignof(fd_versioned_epoch_stakes_current_t)
    1014             : 
    1015             : struct fd_versioned_epoch_stakes_current_global {
    1016             :   fd_stakes_stake_global_t stakes;
    1017             :   ulong total_stake;
    1018             :   ulong node_id_to_vote_accounts_pool_offset;
    1019             :   ulong node_id_to_vote_accounts_root_offset;
    1020             :   ulong epoch_authorized_voters_pool_offset;
    1021             :   ulong epoch_authorized_voters_root_offset;
    1022             : };
    1023             : typedef struct fd_versioned_epoch_stakes_current_global fd_versioned_epoch_stakes_current_global_t;
    1024             : #define FD_VERSIONED_EPOCH_STAKES_CURRENT_GLOBAL_ALIGN alignof(fd_versioned_epoch_stakes_current_global_t)
    1025             : 
    1026           0 : static FD_FN_UNUSED fd_pubkey_node_vote_accounts_pair_global_t_mapnode_t * fd_versioned_epoch_stakes_current_node_id_to_vote_accounts_pool_join( fd_versioned_epoch_stakes_current_global_t const * type ) {
    1027           0 :   if( FD_UNLIKELY( !type ) ) return NULL;
    1028           0 :   return !!type->node_id_to_vote_accounts_pool_offset ? (fd_pubkey_node_vote_accounts_pair_global_t_mapnode_t *)fd_pubkey_node_vote_accounts_pair_global_t_map_join( fd_type_pun( (uchar *)type + type->node_id_to_vote_accounts_pool_offset ) ) : NULL;
    1029           0 : }
    1030           0 : static FD_FN_UNUSED fd_pubkey_node_vote_accounts_pair_global_t_mapnode_t * fd_versioned_epoch_stakes_current_node_id_to_vote_accounts_root_join( fd_versioned_epoch_stakes_current_global_t const * type ) {
    1031           0 :   if( FD_UNLIKELY( !type ) ) return NULL;
    1032           0 :   return !!type->node_id_to_vote_accounts_root_offset ? (fd_pubkey_node_vote_accounts_pair_global_t_mapnode_t *)fd_type_pun( (uchar *)type + type->node_id_to_vote_accounts_root_offset ) : NULL;
    1033           0 : }
    1034           0 : static FD_FN_UNUSED void fd_versioned_epoch_stakes_current_node_id_to_vote_accounts_pool_update( fd_versioned_epoch_stakes_current_global_t * type, fd_pubkey_node_vote_accounts_pair_global_t_mapnode_t * pool ) {
    1035           0 :   type->node_id_to_vote_accounts_pool_offset = !!pool ? (ulong)fd_pubkey_node_vote_accounts_pair_global_t_map_leave( pool ) - (ulong)type : 0UL;
    1036           0 : }
    1037           0 : static FD_FN_UNUSED void fd_versioned_epoch_stakes_current_node_id_to_vote_accounts_root_update( fd_versioned_epoch_stakes_current_global_t * type, fd_pubkey_node_vote_accounts_pair_global_t_mapnode_t * root ) {
    1038           0 :   type->node_id_to_vote_accounts_root_offset = !!root ? (ulong)root - (ulong)type : 0UL;
    1039           0 : }
    1040           0 : static FD_FN_UNUSED fd_pubkey_pubkey_pair_t_mapnode_t * fd_versioned_epoch_stakes_current_epoch_authorized_voters_pool_join( fd_versioned_epoch_stakes_current_global_t const * type ) {
    1041           0 :   if( FD_UNLIKELY( !type ) ) return NULL;
    1042           0 :   return !!type->epoch_authorized_voters_pool_offset ? (fd_pubkey_pubkey_pair_t_mapnode_t *)fd_pubkey_pubkey_pair_t_map_join( fd_type_pun( (uchar *)type + type->epoch_authorized_voters_pool_offset ) ) : NULL;
    1043           0 : }
    1044           0 : static FD_FN_UNUSED fd_pubkey_pubkey_pair_t_mapnode_t * fd_versioned_epoch_stakes_current_epoch_authorized_voters_root_join( fd_versioned_epoch_stakes_current_global_t const * type ) {
    1045           0 :   if( FD_UNLIKELY( !type ) ) return NULL;
    1046           0 :   return !!type->epoch_authorized_voters_root_offset ? (fd_pubkey_pubkey_pair_t_mapnode_t *)fd_type_pun( (uchar *)type + type->epoch_authorized_voters_root_offset ) : NULL;
    1047           0 : }
    1048           0 : static FD_FN_UNUSED void fd_versioned_epoch_stakes_current_epoch_authorized_voters_pool_update( fd_versioned_epoch_stakes_current_global_t * type, fd_pubkey_pubkey_pair_t_mapnode_t * pool ) {
    1049           0 :   type->epoch_authorized_voters_pool_offset = !!pool ? (ulong)fd_pubkey_pubkey_pair_t_map_leave( pool ) - (ulong)type : 0UL;
    1050           0 : }
    1051           0 : static FD_FN_UNUSED void fd_versioned_epoch_stakes_current_epoch_authorized_voters_root_update( fd_versioned_epoch_stakes_current_global_t * type, fd_pubkey_pubkey_pair_t_mapnode_t * root ) {
    1052           0 :   type->epoch_authorized_voters_root_offset = !!root ? (ulong)root - (ulong)type : 0UL;
    1053           0 : }
    1054             : union fd_versioned_epoch_stakes_inner {
    1055             :   fd_versioned_epoch_stakes_current_t Current;
    1056             : };
    1057             : typedef union fd_versioned_epoch_stakes_inner fd_versioned_epoch_stakes_inner_t;
    1058             : 
    1059             : union fd_versioned_epoch_stakes_inner_global {
    1060             :   fd_versioned_epoch_stakes_current_global_t Current;
    1061             : };
    1062             : typedef union fd_versioned_epoch_stakes_inner_global fd_versioned_epoch_stakes_inner_global_t;
    1063             : 
    1064             : /* https://github.com/anza-xyz/agave/blob/436f7333a8465739df65c2534654102896e09eb5/runtime/src/epoch_stakes.rs#L24 */
    1065             : struct fd_versioned_epoch_stakes {
    1066             :   uint discriminant;
    1067             :   fd_versioned_epoch_stakes_inner_t inner;
    1068             : };
    1069             : typedef struct fd_versioned_epoch_stakes fd_versioned_epoch_stakes_t;
    1070             : #define FD_VERSIONED_EPOCH_STAKES_ALIGN alignof(fd_versioned_epoch_stakes_t)
    1071             : struct fd_versioned_epoch_stakes_global {
    1072             :   uint discriminant;
    1073             :   fd_versioned_epoch_stakes_inner_global_t inner;
    1074             : };
    1075             : typedef struct fd_versioned_epoch_stakes_global fd_versioned_epoch_stakes_global_t;
    1076             : #define FD_VERSIONED_EPOCH_STAKES_GLOBAL_ALIGN alignof(fd_versioned_epoch_stakes_global_t)
    1077             : 
    1078             : /* Encoded Size: Dynamic */
    1079             : struct fd_versioned_epoch_stakes_pair {
    1080             :   ulong epoch;
    1081             :   fd_versioned_epoch_stakes_t val;
    1082             : };
    1083             : typedef struct fd_versioned_epoch_stakes_pair fd_versioned_epoch_stakes_pair_t;
    1084           0 : #define FD_VERSIONED_EPOCH_STAKES_PAIR_ALIGN alignof(fd_versioned_epoch_stakes_pair_t)
    1085             : 
    1086             : struct fd_versioned_epoch_stakes_pair_global {
    1087             :   ulong epoch;
    1088             :   fd_versioned_epoch_stakes_global_t val;
    1089             : };
    1090             : typedef struct fd_versioned_epoch_stakes_pair_global fd_versioned_epoch_stakes_pair_global_t;
    1091             : #define FD_VERSIONED_EPOCH_STAKES_PAIR_GLOBAL_ALIGN alignof(fd_versioned_epoch_stakes_pair_global_t)
    1092             : 
    1093             : /* https://github.com/anza-xyz/agave/blob/7117ed9653ce19e8b2dea108eff1f3eb6a3378a7/sdk/src/reward_info.rs#L5 */
    1094             : /* Encoded Size: Fixed (28 bytes) */
    1095             : struct fd_reward_info {
    1096             :   fd_reward_type_t reward_type;
    1097             :   ulong lamports;
    1098             :   ulong post_balance;
    1099             :   ulong commission;
    1100             : };
    1101             : typedef struct fd_reward_info fd_reward_info_t;
    1102             : #define FD_REWARD_INFO_ALIGN alignof(fd_reward_info_t)
    1103             : 
    1104             : /* You can cast this to a (fd_lthash_value_t *) and use it directly since the alignment is preserved */
    1105             : /* Encoded Size: Fixed (2048 bytes) */
    1106             : struct __attribute__((aligned(128UL))) fd_slot_lthash {
    1107             :   uchar lthash[2048];
    1108             : };
    1109             : typedef struct fd_slot_lthash fd_slot_lthash_t;
    1110           0 : #define FD_SLOT_LTHASH_ALIGN (128UL)
    1111             : 
    1112             : /* Encoded Size: Dynamic */
    1113             : struct fd_solana_manifest {
    1114             :   fd_versioned_bank_t bank;
    1115             :   fd_solana_accounts_db_fields_t accounts_db;
    1116             :   ulong lamports_per_signature;
    1117             :   fd_bank_incremental_snapshot_persistence_t * bank_incremental_snapshot_persistence;
    1118             :   fd_hash_t * epoch_account_hash;
    1119             :   ulong versioned_epoch_stakes_len;
    1120             :   fd_versioned_epoch_stakes_pair_t * versioned_epoch_stakes;
    1121             :   fd_slot_lthash_t * lthash;
    1122             : };
    1123             : typedef struct fd_solana_manifest fd_solana_manifest_t;
    1124           0 : #define FD_SOLANA_MANIFEST_ALIGN alignof(fd_solana_manifest_t)
    1125             : 
    1126             : struct fd_solana_manifest_global {
    1127             :   fd_versioned_bank_global_t bank;
    1128             :   fd_solana_accounts_db_fields_global_t accounts_db;
    1129             :   ulong lamports_per_signature;
    1130             :   ulong bank_incremental_snapshot_persistence_offset;
    1131             :   ulong epoch_account_hash_offset;
    1132             :   ulong versioned_epoch_stakes_len;
    1133             :   ulong versioned_epoch_stakes_offset;
    1134             :   ulong lthash_offset;
    1135             : };
    1136             : typedef struct fd_solana_manifest_global fd_solana_manifest_global_t;
    1137             : #define FD_SOLANA_MANIFEST_GLOBAL_ALIGN alignof(fd_solana_manifest_global_t)
    1138             : 
    1139           0 : FD_FN_UNUSED static fd_bank_incremental_snapshot_persistence_t * fd_solana_manifest_bank_incremental_snapshot_persistence_join( fd_solana_manifest_global_t const * struct_mem ) {
    1140           0 :   return struct_mem->bank_incremental_snapshot_persistence_offset ? (fd_bank_incremental_snapshot_persistence_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->bank_incremental_snapshot_persistence_offset ) : NULL;
    1141           0 : }
    1142           0 : FD_FN_UNUSED static fd_hash_t * fd_solana_manifest_epoch_account_hash_join( fd_solana_manifest_global_t const * struct_mem ) {
    1143           0 :   return struct_mem->epoch_account_hash_offset ? (fd_hash_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->epoch_account_hash_offset ) : NULL;
    1144           0 : }
    1145           0 : FD_FN_UNUSED static fd_versioned_epoch_stakes_pair_global_t * fd_solana_manifest_versioned_epoch_stakes_join( fd_solana_manifest_global_t const * struct_mem ) { // vector
    1146           0 :   return struct_mem->versioned_epoch_stakes_offset ? (fd_versioned_epoch_stakes_pair_global_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->versioned_epoch_stakes_offset ) : NULL;
    1147           0 : }
    1148           0 : FD_FN_UNUSED static void fd_solana_manifest_versioned_epoch_stakes_update( fd_solana_manifest_global_t * struct_mem, fd_versioned_epoch_stakes_pair_global_t * vec ) {
    1149           0 :   struct_mem->versioned_epoch_stakes_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
    1150           0 : }
    1151           0 : FD_FN_UNUSED static fd_slot_lthash_t * fd_solana_manifest_lthash_join( fd_solana_manifest_global_t const * struct_mem ) {
    1152           0 :   return struct_mem->lthash_offset ? (fd_slot_lthash_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->lthash_offset ) : NULL;
    1153           0 : }
    1154             : /* Encoded Size: Fixed (12 bytes) */
    1155             : struct fd_rust_duration {
    1156             :   ulong seconds;
    1157             :   uint nanoseconds;
    1158             : };
    1159             : typedef struct fd_rust_duration fd_rust_duration_t;
    1160             : #define FD_RUST_DURATION_ALIGN alignof(fd_rust_duration_t)
    1161             : 
    1162             : /* Encoded Size: Dynamic */
    1163             : struct fd_poh_config {
    1164             :   fd_rust_duration_t target_tick_duration;
    1165             :   ulong* target_tick_count;
    1166             :   ulong hashes_per_tick;
    1167             :   uchar has_hashes_per_tick;
    1168             : };
    1169             : typedef struct fd_poh_config fd_poh_config_t;
    1170             : #define FD_POH_CONFIG_ALIGN alignof(fd_poh_config_t)
    1171             : 
    1172             : /* Encoded Size: Dynamic */
    1173             : struct fd_string_pubkey_pair {
    1174             :   ulong string_len;
    1175             :   uchar* string;
    1176             :   fd_pubkey_t pubkey;
    1177             : };
    1178             : typedef struct fd_string_pubkey_pair fd_string_pubkey_pair_t;
    1179           0 : #define FD_STRING_PUBKEY_PAIR_ALIGN alignof(fd_string_pubkey_pair_t)
    1180             : 
    1181             : /* Encoded Size: Dynamic */
    1182             : struct fd_pubkey_account_pair {
    1183             :   fd_pubkey_t key;
    1184             :   fd_solana_account_t account;
    1185             : };
    1186             : typedef struct fd_pubkey_account_pair fd_pubkey_account_pair_t;
    1187           0 : #define FD_PUBKEY_ACCOUNT_PAIR_ALIGN alignof(fd_pubkey_account_pair_t)
    1188             : 
    1189             : /* Encoded Size: Dynamic */
    1190             : struct fd_genesis_solana {
    1191             :   ulong creation_time;
    1192             :   ulong accounts_len;
    1193             :   fd_pubkey_account_pair_t * accounts;
    1194             :   ulong native_instruction_processors_len;
    1195             :   fd_string_pubkey_pair_t * native_instruction_processors;
    1196             :   ulong rewards_pools_len;
    1197             :   fd_pubkey_account_pair_t * rewards_pools;
    1198             :   ulong ticks_per_slot;
    1199             :   ulong unused;
    1200             :   fd_poh_config_t poh_config;
    1201             :   ulong __backwards_compat_with_v0_23;
    1202             :   fd_fee_rate_governor_t fee_rate_governor;
    1203             :   fd_rent_t rent;
    1204             :   fd_inflation_t inflation;
    1205             :   fd_epoch_schedule_t epoch_schedule;
    1206             :   uint cluster_type;
    1207             : };
    1208             : typedef struct fd_genesis_solana fd_genesis_solana_t;
    1209           0 : #define FD_GENESIS_SOLANA_ALIGN alignof(fd_genesis_solana_t)
    1210             : 
    1211             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/clock.rs#L114 */
    1212             : /* Encoded Size: Fixed (40 bytes) */
    1213             : struct fd_sol_sysvar_clock {
    1214             :   ulong slot;
    1215             :   long epoch_start_timestamp;
    1216             :   ulong epoch;
    1217             :   ulong leader_schedule_epoch;
    1218             :   long unix_timestamp;
    1219             : };
    1220             : typedef struct fd_sol_sysvar_clock fd_sol_sysvar_clock_t;
    1221           3 : #define FD_SOL_SYSVAR_CLOCK_ALIGN alignof(fd_sol_sysvar_clock_t)
    1222             : 
    1223             : /* https://github.com/solana-labs/solana/blob/30531d7a5b74f914dde53bfbb0bc2144f2ac92bb/sdk/program/src/last_restart_slot.rs#L7 */
    1224             : /* Encoded Size: Fixed (8 bytes) */
    1225             : struct fd_sol_sysvar_last_restart_slot {
    1226             :   ulong slot;
    1227             : };
    1228             : typedef struct fd_sol_sysvar_last_restart_slot fd_sol_sysvar_last_restart_slot_t;
    1229           3 : #define FD_SOL_SYSVAR_LAST_RESTART_SLOT_ALIGN alignof(fd_sol_sysvar_last_restart_slot_t)
    1230             : 
    1231             : /* Encoded Size: Fixed (12 bytes) */
    1232             : struct fd_vote_lockout {
    1233             :   ulong slot;
    1234             :   uint confirmation_count;
    1235             : };
    1236             : typedef struct fd_vote_lockout fd_vote_lockout_t;
    1237             : #define FD_VOTE_LOCKOUT_ALIGN alignof(fd_vote_lockout_t)
    1238             : 
    1239             : /* Encoded Size: Dynamic */
    1240             : struct fd_lockout_offset {
    1241             :   ulong offset;
    1242             :   uchar confirmation_count;
    1243             : };
    1244             : typedef struct fd_lockout_offset fd_lockout_offset_t;
    1245           0 : #define FD_LOCKOUT_OFFSET_ALIGN alignof(fd_lockout_offset_t)
    1246             : 
    1247             : /* https://github.com/firedancer-io/solana/blob/da470eef4652b3b22598a1f379cacfe82bd5928d/sdk/program/src/vote/authorized_voters.rs#L9 */
    1248             : /* Encoded Size: Fixed (40 bytes) */
    1249             : struct fd_vote_authorized_voter {
    1250             :   ulong epoch;
    1251             :   fd_pubkey_t pubkey;
    1252             :   ulong parent;
    1253             :   ulong left;
    1254             :   ulong right;
    1255             :   ulong prio;
    1256             : };
    1257             : typedef struct fd_vote_authorized_voter fd_vote_authorized_voter_t;
    1258             : #define FD_VOTE_AUTHORIZED_VOTER_ALIGN alignof(fd_vote_authorized_voter_t)
    1259             : 
    1260             : /* Encoded Size: Fixed (48 bytes) */
    1261             : struct fd_vote_prior_voter {
    1262             :   fd_pubkey_t pubkey;
    1263             :   ulong epoch_start;
    1264             :   ulong epoch_end;
    1265             : };
    1266             : typedef struct fd_vote_prior_voter fd_vote_prior_voter_t;
    1267             : #define FD_VOTE_PRIOR_VOTER_ALIGN alignof(fd_vote_prior_voter_t)
    1268             : 
    1269             : /* Encoded Size: Fixed (56 bytes) */
    1270             : struct fd_vote_prior_voter_0_23_5 {
    1271             :   fd_pubkey_t pubkey;
    1272             :   ulong epoch_start;
    1273             :   ulong epoch_end;
    1274             :   ulong slot;
    1275             : };
    1276             : typedef struct fd_vote_prior_voter_0_23_5 fd_vote_prior_voter_0_23_5_t;
    1277             : #define FD_VOTE_PRIOR_VOTER_0_23_5_ALIGN alignof(fd_vote_prior_voter_0_23_5_t)
    1278             : 
    1279             : /* Encoded Size: Fixed (24 bytes) */
    1280             : struct fd_vote_epoch_credits {
    1281             :   ulong epoch;
    1282             :   ulong credits;
    1283             :   ulong prev_credits;
    1284             : };
    1285             : typedef struct fd_vote_epoch_credits fd_vote_epoch_credits_t;
    1286             : #define FD_VOTE_EPOCH_CREDITS_ALIGN alignof(fd_vote_epoch_credits_t)
    1287             : 
    1288             : /* Encoded Size: Fixed (16 bytes) */
    1289             : struct fd_vote_block_timestamp {
    1290             :   ulong slot;
    1291             :   long timestamp;
    1292             : };
    1293             : typedef struct fd_vote_block_timestamp fd_vote_block_timestamp_t;
    1294             : #define FD_VOTE_BLOCK_TIMESTAMP_ALIGN alignof(fd_vote_block_timestamp_t)
    1295             : 
    1296             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L268 */
    1297             : /* Encoded Size: Fixed (1545 bytes) */
    1298             : struct fd_vote_prior_voters {
    1299             :   fd_vote_prior_voter_t buf[32];
    1300             :   ulong idx;
    1301             :   uchar is_empty;
    1302             : };
    1303             : typedef struct fd_vote_prior_voters fd_vote_prior_voters_t;
    1304             : #define FD_VOTE_PRIOR_VOTERS_ALIGN alignof(fd_vote_prior_voters_t)
    1305             : 
    1306             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L268 */
    1307             : /* Encoded Size: Fixed (1800 bytes) */
    1308             : struct fd_vote_prior_voters_0_23_5 {
    1309             :   fd_vote_prior_voter_0_23_5_t buf[32];
    1310             :   ulong idx;
    1311             : };
    1312             : typedef struct fd_vote_prior_voters_0_23_5 fd_vote_prior_voters_0_23_5_t;
    1313             : #define FD_VOTE_PRIOR_VOTERS_0_23_5_ALIGN alignof(fd_vote_prior_voters_0_23_5_t)
    1314             : 
    1315             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L268 */
    1316             : /* Encoded Size: Fixed (13 bytes) */
    1317             : struct fd_landed_vote {
    1318             :   uchar latency;
    1319             :   fd_vote_lockout_t lockout;
    1320             : };
    1321             : typedef struct fd_landed_vote fd_landed_vote_t;
    1322             : #define FD_LANDED_VOTE_ALIGN alignof(fd_landed_vote_t)
    1323             : 
    1324             : #define DEQUE_NAME deq_fd_vote_lockout_t
    1325           0 : #define DEQUE_T fd_vote_lockout_t
    1326             : #include "../../util/tmpl/fd_deque_dynamic.c"
    1327             : #undef DEQUE_NAME
    1328             : #undef DEQUE_T
    1329             : #undef DEQUE_MAX
    1330             : static inline fd_vote_lockout_t *
    1331           0 : deq_fd_vote_lockout_t_join_new( void * * alloc_mem, ulong max ) {
    1332           0 :   if( FD_UNLIKELY( 0 == max ) ) max = 1; // prevent underflow
    1333           0 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, deq_fd_vote_lockout_t_align() );
    1334           0 :   void * deque_mem = *alloc_mem;
    1335           0 :   *alloc_mem = (uchar *)*alloc_mem + deq_fd_vote_lockout_t_footprint( max );
    1336           0 :   return deq_fd_vote_lockout_t_join( deq_fd_vote_lockout_t_new( deque_mem, max ) );
    1337           0 : }
    1338             : 
    1339             : #define DEQUE_NAME deq_fd_vote_epoch_credits_t
    1340         390 : #define DEQUE_T fd_vote_epoch_credits_t
    1341             : #include "../../util/tmpl/fd_deque_dynamic.c"
    1342             : #undef DEQUE_NAME
    1343             : #undef DEQUE_T
    1344             : #undef DEQUE_MAX
    1345             : static inline fd_vote_epoch_credits_t *
    1346          12 : deq_fd_vote_epoch_credits_t_join_new( void * * alloc_mem, ulong max ) {
    1347          12 :   if( FD_UNLIKELY( 0 == max ) ) max = 1; // prevent underflow
    1348          12 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, deq_fd_vote_epoch_credits_t_align() );
    1349          12 :   void * deque_mem = *alloc_mem;
    1350          12 :   *alloc_mem = (uchar *)*alloc_mem + deq_fd_vote_epoch_credits_t_footprint( max );
    1351          12 :   return deq_fd_vote_epoch_credits_t_join( deq_fd_vote_epoch_credits_t_new( deque_mem, max ) );
    1352          12 : }
    1353             : 
    1354             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/vote_state_0_23_5.rs#L6 */
    1355             : /* Encoded Size: Dynamic */
    1356             : struct fd_vote_state_0_23_5 {
    1357             :   fd_pubkey_t node_pubkey;
    1358             :   fd_pubkey_t authorized_voter;
    1359             :   ulong authorized_voter_epoch;
    1360             :   fd_vote_prior_voters_0_23_5_t prior_voters;
    1361             :   fd_pubkey_t authorized_withdrawer;
    1362             :   uchar commission;
    1363             :   fd_vote_lockout_t * votes; /* fd_deque_dynamic (min cnt 32) */
    1364             :   ulong root_slot;
    1365             :   uchar has_root_slot;
    1366             :   fd_vote_epoch_credits_t * epoch_credits; /* fd_deque_dynamic (min cnt 64) */
    1367             :   fd_vote_block_timestamp_t last_timestamp;
    1368             : };
    1369             : typedef struct fd_vote_state_0_23_5 fd_vote_state_0_23_5_t;
    1370             : #define FD_VOTE_STATE_0_23_5_ALIGN alignof(fd_vote_state_0_23_5_t)
    1371             : 
    1372          24 : #define FD_VOTE_AUTHORIZED_VOTERS_MIN 64
    1373             : #define POOL_NAME fd_vote_authorized_voters_pool
    1374          48 : #define POOL_T fd_vote_authorized_voter_t
    1375         804 : #define POOL_NEXT parent
    1376             : #include "../../util/tmpl/fd_pool.c"
    1377             : static inline fd_vote_authorized_voter_t *
    1378          12 : fd_vote_authorized_voters_pool_join_new( void * * alloc_mem, ulong num ) {
    1379          12 :   if( FD_UNLIKELY( 0 == num ) ) num = 1; // prevent underflow
    1380          12 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_vote_authorized_voters_pool_align() );
    1381          12 :   void * pool_mem = *alloc_mem;
    1382          12 :   *alloc_mem = (uchar *)*alloc_mem + fd_vote_authorized_voters_pool_footprint( num );
    1383          12 :   return fd_vote_authorized_voters_pool_join( fd_vote_authorized_voters_pool_new( pool_mem, num ) );
    1384          12 : }
    1385             : #define TREAP_NAME fd_vote_authorized_voters_treap
    1386             : #define TREAP_T fd_vote_authorized_voter_t
    1387             : #define TREAP_QUERY_T ulong
    1388           0 : #define TREAP_CMP(q,e) ( (q == (e)->epoch) ? 0 : ( (q < (e)->epoch) ? -1 : 1 ) )
    1389           0 : #define TREAP_LT(e0,e1) ((e0)->epoch<(e1)->epoch)
    1390             : #include "../../util/tmpl/fd_treap.c"
    1391             : static inline fd_vote_authorized_voters_treap_t *
    1392          12 : fd_vote_authorized_voters_treap_join_new( void * * alloc_mem, ulong num ) {
    1393          12 :   if( FD_UNLIKELY( 0 == num ) ) num = 1; // prevent underflow
    1394          12 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_vote_authorized_voters_treap_align() );
    1395          12 :   void * treap_mem = *alloc_mem;
    1396          12 :   *alloc_mem = (uchar *)*alloc_mem + fd_vote_authorized_voters_treap_footprint( num );
    1397          12 :   return fd_vote_authorized_voters_treap_join( fd_vote_authorized_voters_treap_new( treap_mem, num ) );
    1398          12 : }
    1399             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L310 */
    1400             : /* Encoded Size: Dynamic */
    1401             : struct fd_vote_authorized_voters {
    1402             :   fd_vote_authorized_voter_t * pool;
    1403             :   fd_vote_authorized_voters_treap_t * treap;
    1404             : };
    1405             : typedef struct fd_vote_authorized_voters fd_vote_authorized_voters_t;
    1406             : #define FD_VOTE_AUTHORIZED_VOTERS_ALIGN alignof(fd_vote_authorized_voters_t)
    1407             : 
    1408             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L310 */
    1409             : /* Encoded Size: Dynamic */
    1410             : struct fd_vote_state_1_14_11 {
    1411             :   fd_pubkey_t node_pubkey;
    1412             :   fd_pubkey_t authorized_withdrawer;
    1413             :   uchar commission;
    1414             :   fd_vote_lockout_t * votes; /* fd_deque_dynamic (min cnt 32) */
    1415             :   ulong root_slot;
    1416             :   uchar has_root_slot;
    1417             :   fd_vote_authorized_voters_t authorized_voters;
    1418             :   fd_vote_prior_voters_t prior_voters;
    1419             :   fd_vote_epoch_credits_t * epoch_credits; /* fd_deque_dynamic (min cnt 64) */
    1420             :   fd_vote_block_timestamp_t last_timestamp;
    1421             : };
    1422             : typedef struct fd_vote_state_1_14_11 fd_vote_state_1_14_11_t;
    1423             : #define FD_VOTE_STATE_1_14_11_ALIGN alignof(fd_vote_state_1_14_11_t)
    1424             : 
    1425             : #define DEQUE_NAME deq_fd_landed_vote_t
    1426         192 : #define DEQUE_T fd_landed_vote_t
    1427             : #include "../../util/tmpl/fd_deque_dynamic.c"
    1428             : #undef DEQUE_NAME
    1429             : #undef DEQUE_T
    1430             : #undef DEQUE_MAX
    1431             : static inline fd_landed_vote_t *
    1432          12 : deq_fd_landed_vote_t_join_new( void * * alloc_mem, ulong max ) {
    1433          12 :   if( FD_UNLIKELY( 0 == max ) ) max = 1; // prevent underflow
    1434          12 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, deq_fd_landed_vote_t_align() );
    1435          12 :   void * deque_mem = *alloc_mem;
    1436          12 :   *alloc_mem = (uchar *)*alloc_mem + deq_fd_landed_vote_t_footprint( max );
    1437          12 :   return deq_fd_landed_vote_t_join( deq_fd_landed_vote_t_new( deque_mem, max ) );
    1438          12 : }
    1439             : 
    1440             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L310 */
    1441             : /* Encoded Size: Dynamic */
    1442             : struct fd_vote_state {
    1443             :   fd_pubkey_t node_pubkey;
    1444             :   fd_pubkey_t authorized_withdrawer;
    1445             :   uchar commission;
    1446             :   fd_landed_vote_t * votes; /* fd_deque_dynamic (min cnt 32) */
    1447             :   ulong root_slot;
    1448             :   uchar has_root_slot;
    1449             :   fd_vote_authorized_voters_t authorized_voters;
    1450             :   fd_vote_prior_voters_t prior_voters;
    1451             :   fd_vote_epoch_credits_t * epoch_credits; /* fd_deque_dynamic (min cnt 64) */
    1452             :   fd_vote_block_timestamp_t last_timestamp;
    1453             : };
    1454             : typedef struct fd_vote_state fd_vote_state_t;
    1455             : #define FD_VOTE_STATE_ALIGN alignof(fd_vote_state_t)
    1456             : 
    1457             : union fd_vote_state_versioned_inner {
    1458             :   fd_vote_state_0_23_5_t v0_23_5;
    1459             :   fd_vote_state_1_14_11_t v1_14_11;
    1460             :   fd_vote_state_t current;
    1461             : };
    1462             : typedef union fd_vote_state_versioned_inner fd_vote_state_versioned_inner_t;
    1463             : 
    1464             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/vote_state_versions.rs#L4 */
    1465             : struct fd_vote_state_versioned {
    1466             :   uint discriminant;
    1467             :   fd_vote_state_versioned_inner_t inner;
    1468             : };
    1469             : typedef struct fd_vote_state_versioned fd_vote_state_versioned_t;
    1470          30 : #define FD_VOTE_STATE_VERSIONED_ALIGN alignof(fd_vote_state_versioned_t)
    1471             : 
    1472             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L185 */
    1473             : /* Encoded Size: Dynamic */
    1474             : struct fd_vote_state_update {
    1475             :   fd_vote_lockout_t * lockouts; /* fd_deque_dynamic (min cnt 32) */
    1476             :   ulong root;
    1477             :   uchar has_root;
    1478             :   fd_hash_t hash;
    1479             :   long timestamp;
    1480             :   uchar has_timestamp;
    1481             : };
    1482             : typedef struct fd_vote_state_update fd_vote_state_update_t;
    1483             : #define FD_VOTE_STATE_UPDATE_ALIGN alignof(fd_vote_state_update_t)
    1484             : 
    1485             : /* Encoded Size: Dynamic */
    1486             : struct fd_compact_vote_state_update {
    1487             :   ulong root;
    1488             :   ushort lockouts_len;
    1489             :   fd_lockout_offset_t * lockouts;
    1490             :   fd_hash_t hash;
    1491             :   long timestamp;
    1492             :   uchar has_timestamp;
    1493             : };
    1494             : typedef struct fd_compact_vote_state_update fd_compact_vote_state_update_t;
    1495             : #define FD_COMPACT_VOTE_STATE_UPDATE_ALIGN alignof(fd_compact_vote_state_update_t)
    1496             : 
    1497             : /* https://github.com/solana-labs/solana/blob/252438e28fbfb2c695fe1215171b83456e4b761c/programs/vote/src/vote_instruction.rs#L143 */
    1498             : /* Encoded Size: Dynamic */
    1499             : struct fd_compact_vote_state_update_switch {
    1500             :   fd_compact_vote_state_update_t compact_vote_state_update;
    1501             :   fd_hash_t hash;
    1502             : };
    1503             : typedef struct fd_compact_vote_state_update_switch fd_compact_vote_state_update_switch_t;
    1504             : #define FD_COMPACT_VOTE_STATE_UPDATE_SWITCH_ALIGN alignof(fd_compact_vote_state_update_switch_t)
    1505             : 
    1506             : #define DEQUE_NAME deq_fd_lockout_offset_t
    1507           0 : #define DEQUE_T fd_lockout_offset_t
    1508             : #include "../../util/tmpl/fd_deque_dynamic.c"
    1509             : #undef DEQUE_NAME
    1510             : #undef DEQUE_T
    1511             : #undef DEQUE_MAX
    1512             : static inline fd_lockout_offset_t *
    1513           0 : deq_fd_lockout_offset_t_join_new( void * * alloc_mem, ulong max ) {
    1514           0 :   if( FD_UNLIKELY( 0 == max ) ) max = 1; // prevent underflow
    1515           0 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, deq_fd_lockout_offset_t_align() );
    1516           0 :   void * deque_mem = *alloc_mem;
    1517           0 :   *alloc_mem = (uchar *)*alloc_mem + deq_fd_lockout_offset_t_footprint( max );
    1518           0 :   return deq_fd_lockout_offset_t_join( deq_fd_lockout_offset_t_new( deque_mem, max ) );
    1519           0 : }
    1520             : 
    1521             : /* https://github.com/anza-xyz/agave/blob/20ee70cd1829cd414d09040460defecf9792a370/sdk/program/src/vote/state/mod.rs#L990 */
    1522             : /* Encoded Size: Dynamic */
    1523             : struct fd_compact_tower_sync {
    1524             :   ulong root;
    1525             :   fd_lockout_offset_t * lockout_offsets; /* fd_deque_dynamic (min cnt 32) */
    1526             :   fd_hash_t hash;
    1527             :   long timestamp;
    1528             :   uchar has_timestamp;
    1529             :   fd_hash_t block_id;
    1530             : };
    1531             : typedef struct fd_compact_tower_sync fd_compact_tower_sync_t;
    1532             : #define FD_COMPACT_TOWER_SYNC_ALIGN alignof(fd_compact_tower_sync_t)
    1533             : 
    1534             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L185 */
    1535             : /* Encoded Size: Dynamic */
    1536             : struct fd_tower_sync {
    1537             :   fd_vote_lockout_t * lockouts; /* fd_deque_dynamic */
    1538             :   ulong lockouts_cnt;
    1539             :   ulong root;
    1540             :   uchar has_root;
    1541             :   fd_hash_t hash;
    1542             :   long timestamp;
    1543             :   uchar has_timestamp;
    1544             :   fd_hash_t block_id;
    1545             : };
    1546             : typedef struct fd_tower_sync fd_tower_sync_t;
    1547             : #define FD_TOWER_SYNC_ALIGN alignof(fd_tower_sync_t)
    1548             : 
    1549             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_instruction.rs#L104 */
    1550             : /* Encoded Size: Dynamic */
    1551             : struct fd_tower_sync_switch {
    1552             :   fd_tower_sync_t tower_sync;
    1553             :   fd_hash_t hash;
    1554             : };
    1555             : typedef struct fd_tower_sync_switch fd_tower_sync_switch_t;
    1556             : #define FD_TOWER_SYNC_SWITCH_ALIGN alignof(fd_tower_sync_switch_t)
    1557             : 
    1558             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/slot_history.rs#L11 */
    1559             : /* Encoded Size: Dynamic */
    1560             : struct fd_slot_history {
    1561             :   uchar has_bits;
    1562             :   ulong bits_bitvec_len;
    1563             :   ulong* bits_bitvec;
    1564             :   ulong bits_len;
    1565             :   ulong next_slot;
    1566             : };
    1567             : typedef struct fd_slot_history fd_slot_history_t;
    1568           3 : #define FD_SLOT_HISTORY_ALIGN alignof(fd_slot_history_t)
    1569             : 
    1570             : struct fd_slot_history_global {
    1571             :   uchar has_bits;
    1572             :   ulong bits_bitvec_len;
    1573             :   ulong bits_bitvec_offset;
    1574             :   ulong bits_len;
    1575             :   ulong next_slot;
    1576             : };
    1577             : typedef struct fd_slot_history_global fd_slot_history_global_t;
    1578             : #define FD_SLOT_HISTORY_GLOBAL_ALIGN alignof(fd_slot_history_global_t)
    1579             : 
    1580             : /* Encoded Size: Fixed (40 bytes) */
    1581             : struct fd_slot_hash {
    1582             :   ulong slot;
    1583             :   fd_hash_t hash;
    1584             : };
    1585             : typedef struct fd_slot_hash fd_slot_hash_t;
    1586           6 : #define FD_SLOT_HASH_ALIGN alignof(fd_slot_hash_t)
    1587             : 
    1588             : #define DEQUE_NAME deq_fd_slot_hash_t
    1589           0 : #define DEQUE_T fd_slot_hash_t
    1590             : #include "../../util/tmpl/fd_deque_dynamic.c"
    1591             : #undef DEQUE_NAME
    1592             : #undef DEQUE_T
    1593             : #undef DEQUE_MAX
    1594             : static inline fd_slot_hash_t *
    1595           0 : deq_fd_slot_hash_t_join_new( void * * alloc_mem, ulong max ) {
    1596           0 :   if( FD_UNLIKELY( 0 == max ) ) max = 1; // prevent underflow
    1597           0 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, deq_fd_slot_hash_t_align() );
    1598           0 :   void * deque_mem = *alloc_mem;
    1599           0 :   *alloc_mem = (uchar *)*alloc_mem + deq_fd_slot_hash_t_footprint( max );
    1600           0 :   return deq_fd_slot_hash_t_join( deq_fd_slot_hash_t_new( deque_mem, max ) );
    1601           0 : }
    1602             : 
    1603             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/slot_hashes.rs#L31 */
    1604             : /* Encoded Size: Dynamic */
    1605             : struct fd_slot_hashes {
    1606             :   fd_slot_hash_t * hashes; /* fd_deque_dynamic (min cnt 512) */
    1607             : };
    1608             : typedef struct fd_slot_hashes fd_slot_hashes_t;
    1609           3 : #define FD_SLOT_HASHES_ALIGN alignof(fd_slot_hashes_t)
    1610             : 
    1611             : struct fd_slot_hashes_global {
    1612             :   ulong hashes_offset; /* fd_deque_dynamic (min cnt 512) */
    1613             : };
    1614             : typedef struct fd_slot_hashes_global fd_slot_hashes_global_t;
    1615             : #define FD_SLOT_HASHES_GLOBAL_ALIGN alignof(fd_slot_hashes_global_t)
    1616             : 
    1617           0 : static FD_FN_UNUSED fd_slot_hash_t * fd_slot_hashes_hashes_join( fd_slot_hashes_global_t * type ) { // deque
    1618           0 :   return type->hashes_offset ? (fd_slot_hash_t *)deq_fd_slot_hash_t_join( fd_type_pun( (uchar *)type + type->hashes_offset ) ) : NULL;
    1619           0 : }
    1620             : /* Encoded Size: Fixed (40 bytes) */
    1621             : struct fd_block_block_hash_entry {
    1622             :   fd_hash_t blockhash;
    1623             :   fd_fee_calculator_t fee_calculator;
    1624             : };
    1625             : typedef struct fd_block_block_hash_entry fd_block_block_hash_entry_t;
    1626             : #define FD_BLOCK_BLOCK_HASH_ENTRY_ALIGN alignof(fd_block_block_hash_entry_t)
    1627             : 
    1628             : #define DEQUE_NAME deq_fd_block_block_hash_entry_t
    1629           0 : #define DEQUE_T fd_block_block_hash_entry_t
    1630             : #include "../../util/tmpl/fd_deque_dynamic.c"
    1631             : #undef DEQUE_NAME
    1632             : #undef DEQUE_T
    1633             : #undef DEQUE_MAX
    1634             : static inline fd_block_block_hash_entry_t *
    1635           0 : deq_fd_block_block_hash_entry_t_join_new( void * * alloc_mem, ulong max ) {
    1636           0 :   if( FD_UNLIKELY( 0 == max ) ) max = 1; // prevent underflow
    1637           0 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, deq_fd_block_block_hash_entry_t_align() );
    1638           0 :   void * deque_mem = *alloc_mem;
    1639           0 :   *alloc_mem = (uchar *)*alloc_mem + deq_fd_block_block_hash_entry_t_footprint( max );
    1640           0 :   return deq_fd_block_block_hash_entry_t_join( deq_fd_block_block_hash_entry_t_new( deque_mem, max ) );
    1641           0 : }
    1642             : 
    1643             : /* Encoded Size: Dynamic */
    1644             : struct fd_recent_block_hashes {
    1645             :   fd_block_block_hash_entry_t * hashes; /* fd_deque_dynamic (min cnt 151) */
    1646             : };
    1647             : typedef struct fd_recent_block_hashes fd_recent_block_hashes_t;
    1648           0 : #define FD_RECENT_BLOCK_HASHES_ALIGN alignof(fd_recent_block_hashes_t)
    1649             : 
    1650             : struct fd_recent_block_hashes_global {
    1651             :   ulong hashes_offset; /* fd_deque_dynamic (min cnt 151) */
    1652             : };
    1653             : typedef struct fd_recent_block_hashes_global fd_recent_block_hashes_global_t;
    1654             : #define FD_RECENT_BLOCK_HASHES_GLOBAL_ALIGN alignof(fd_recent_block_hashes_global_t)
    1655             : 
    1656           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
    1657           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;
    1658           0 : }
    1659             : /* Encoded Size: Dynamic */
    1660             : struct fd_slot_meta {
    1661             :   ulong slot;
    1662             :   ulong consumed;
    1663             :   ulong received;
    1664             :   long first_shred_timestamp;
    1665             :   ulong last_index;
    1666             :   ulong parent_slot;
    1667             :   ulong next_slot_len;
    1668             :   ulong* next_slot;
    1669             :   uchar is_connected;
    1670             :   ulong entry_end_indexes_len;
    1671             :   uint* entry_end_indexes;
    1672             : };
    1673             : typedef struct fd_slot_meta fd_slot_meta_t;
    1674           0 : #define FD_SLOT_META_ALIGN alignof(fd_slot_meta_t)
    1675             : 
    1676             : /* A validator timestamp oracle vote received from a voting node */
    1677             : /* Encoded Size: Fixed (48 bytes) */
    1678             : struct fd_clock_timestamp_vote {
    1679             :   fd_pubkey_t pubkey;
    1680             :   long timestamp;
    1681             :   ulong slot;
    1682             : };
    1683             : typedef struct fd_clock_timestamp_vote fd_clock_timestamp_vote_t;
    1684             : #define FD_CLOCK_TIMESTAMP_VOTE_ALIGN alignof(fd_clock_timestamp_vote_t)
    1685             : 
    1686             : typedef struct fd_clock_timestamp_vote_t_mapnode fd_clock_timestamp_vote_t_mapnode_t;
    1687             : #define REDBLK_T fd_clock_timestamp_vote_t_mapnode_t
    1688             : #define REDBLK_NAME fd_clock_timestamp_vote_t_map
    1689             : #define REDBLK_IMPL_STYLE 1
    1690             : #include "../../util/tmpl/fd_redblack.c"
    1691             : struct fd_clock_timestamp_vote_t_mapnode {
    1692             :     fd_clock_timestamp_vote_t elem;
    1693             :     ulong redblack_parent;
    1694             :     ulong redblack_left;
    1695             :     ulong redblack_right;
    1696             :     int redblack_color;
    1697             : };
    1698             : static inline fd_clock_timestamp_vote_t_mapnode_t *
    1699           0 : fd_clock_timestamp_vote_t_map_join_new( void * * alloc_mem, ulong len ) {
    1700           0 :   if( FD_UNLIKELY( 0 == len ) ) len = 1; // prevent underflow
    1701           0 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_clock_timestamp_vote_t_map_align() );
    1702           0 :   void * map_mem = *alloc_mem;
    1703           0 :   *alloc_mem = (uchar *)*alloc_mem + fd_clock_timestamp_vote_t_map_footprint( len );
    1704           0 :   return fd_clock_timestamp_vote_t_map_join( fd_clock_timestamp_vote_t_map_new( map_mem, len ) );
    1705           0 : }
    1706             : /* Validator timestamp oracle votes received from voting nodes. TODO: make this a map */
    1707             : /* Encoded Size: Dynamic */
    1708             : struct fd_clock_timestamp_votes {
    1709             :   fd_clock_timestamp_vote_t_mapnode_t * votes_pool;
    1710             :   fd_clock_timestamp_vote_t_mapnode_t * votes_root;
    1711             : };
    1712             : typedef struct fd_clock_timestamp_votes fd_clock_timestamp_votes_t;
    1713             : #define FD_CLOCK_TIMESTAMP_VOTES_ALIGN alignof(fd_clock_timestamp_votes_t)
    1714             : 
    1715             : struct fd_clock_timestamp_votes_global {
    1716             :   ulong votes_pool_offset;
    1717             :   ulong votes_root_offset;
    1718             : };
    1719             : typedef struct fd_clock_timestamp_votes_global fd_clock_timestamp_votes_global_t;
    1720             : #define FD_CLOCK_TIMESTAMP_VOTES_GLOBAL_ALIGN alignof(fd_clock_timestamp_votes_global_t)
    1721             : 
    1722           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 ) {
    1723           0 :   if( FD_UNLIKELY( !type ) ) return NULL;
    1724           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;
    1725           0 : }
    1726           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 ) {
    1727           0 :   if( FD_UNLIKELY( !type ) ) return NULL;
    1728           0 :   return !!type->votes_root_offset ? (fd_clock_timestamp_vote_t_mapnode_t *)fd_type_pun( (uchar *)type + type->votes_root_offset ) : NULL;
    1729           0 : }
    1730           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 ) {
    1731           0 :   type->votes_pool_offset = !!pool ? (ulong)fd_clock_timestamp_vote_t_map_leave( pool ) - (ulong)type : 0UL;
    1732           0 : }
    1733           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 ) {
    1734           0 :   type->votes_root_offset = !!root ? (ulong)root - (ulong)type : 0UL;
    1735           0 : }
    1736             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/sysvar/fees.rs#L21 */
    1737             : /* Encoded Size: Fixed (8 bytes) */
    1738             : struct fd_sysvar_fees {
    1739             :   fd_fee_calculator_t fee_calculator;
    1740             : };
    1741             : typedef struct fd_sysvar_fees fd_sysvar_fees_t;
    1742             : #define FD_SYSVAR_FEES_ALIGN alignof(fd_sysvar_fees_t)
    1743             : 
    1744             : /* https://github.com/anza-xyz/agave/blob/cbc8320d35358da14d79ebcada4dfb6756ffac79/sdk/program/src/epoch_rewards.rs#L14 */
    1745             : /* Encoded Size: Fixed (81 bytes) */
    1746             : struct fd_sysvar_epoch_rewards {
    1747             :   ulong distribution_starting_block_height;
    1748             :   ulong num_partitions;
    1749             :   fd_hash_t parent_blockhash;
    1750             :   uint128 total_points;
    1751             :   ulong total_rewards;
    1752             :   ulong distributed_rewards;
    1753             :   uchar active;
    1754             : };
    1755             : typedef struct fd_sysvar_epoch_rewards fd_sysvar_epoch_rewards_t;
    1756           3 : #define FD_SYSVAR_EPOCH_REWARDS_ALIGN alignof(fd_sysvar_epoch_rewards_t)
    1757             : 
    1758             : /* Encoded Size: Fixed (33 bytes) */
    1759             : struct fd_config_keys_pair {
    1760             :   fd_pubkey_t key;
    1761             :   uchar signer;
    1762             : };
    1763             : typedef struct fd_config_keys_pair fd_config_keys_pair_t;
    1764           0 : #define FD_CONFIG_KEYS_PAIR_ALIGN alignof(fd_config_keys_pair_t)
    1765             : 
    1766             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/config.rs#L14 */
    1767             : /* Encoded Size: Dynamic */
    1768             : struct fd_stake_config {
    1769             :   ushort config_keys_len;
    1770             :   fd_config_keys_pair_t * config_keys;
    1771             :   double warmup_cooldown_rate;
    1772             :   uchar slash_penalty;
    1773             : };
    1774             : typedef struct fd_stake_config fd_stake_config_t;
    1775             : #define FD_STAKE_CONFIG_ALIGN alignof(fd_stake_config_t)
    1776             : 
    1777             : /* Encoded Size: Dynamic */
    1778             : struct fd_feature_entry {
    1779             :   fd_pubkey_t pubkey;
    1780             :   ulong description_len;
    1781             :   uchar* description;
    1782             :   ulong since_slot;
    1783             : };
    1784             : typedef struct fd_feature_entry fd_feature_entry_t;
    1785             : #define FD_FEATURE_ENTRY_ALIGN alignof(fd_feature_entry_t)
    1786             : 
    1787             : struct fd_cluster_type {
    1788             :   uint discriminant;
    1789             : };
    1790             : typedef struct fd_cluster_type fd_cluster_type_t;
    1791             : #define FD_CLUSTER_TYPE_ALIGN alignof(fd_cluster_type_t)
    1792             : 
    1793             : /* Encoded Size: Fixed (12 bytes) */
    1794             : struct fd_cluster_version {
    1795             :   uint major;
    1796             :   uint minor;
    1797             :   uint patch;
    1798             : };
    1799             : typedef struct fd_cluster_version fd_cluster_version_t;
    1800             : #define FD_CLUSTER_VERSION_ALIGN alignof(fd_cluster_version_t)
    1801             : 
    1802             : /* Encoded Size: Fixed (49 bytes) */
    1803             : struct fd_stake_reward {
    1804             :   ulong prev;
    1805             :   ulong next;
    1806             :   ulong parent;
    1807             :   fd_pubkey_t stake_pubkey;
    1808             :   ulong credits_observed;
    1809             :   ulong lamports;
    1810             :   uchar valid;
    1811             : };
    1812             : typedef struct fd_stake_reward fd_stake_reward_t;
    1813             : #define FD_STAKE_REWARD_ALIGN alignof(fd_stake_reward_t)
    1814             : 
    1815             : /* Encoded Size: Fixed (42 bytes) */
    1816             : struct fd_vote_reward {
    1817             :   fd_pubkey_t pubkey;
    1818             :   ulong vote_rewards;
    1819             :   uchar commission;
    1820             :   uchar needs_store;
    1821             : };
    1822             : typedef struct fd_vote_reward fd_vote_reward_t;
    1823             : #define FD_VOTE_REWARD_ALIGN alignof(fd_vote_reward_t)
    1824             : 
    1825             : /* https://github.com/anza-xyz/agave/blob/cbc8320d35358da14d79ebcada4dfb6756ffac79/programs/stake/src/points.rs#L21 */
    1826             : /* Encoded Size: Fixed (24 bytes) */
    1827             : struct fd_point_value {
    1828             :   ulong rewards;
    1829             :   uint128 points;
    1830             : };
    1831             : typedef struct fd_point_value fd_point_value_t;
    1832             : #define FD_POINT_VALUE_ALIGN alignof(fd_point_value_t)
    1833             : 
    1834             : #define POOL_NAME fd_partitioned_stake_rewards_pool
    1835           0 : #define POOL_T fd_stake_reward_t
    1836           0 : #define POOL_NEXT parent
    1837             : #include "../../util/tmpl/fd_pool.c"
    1838             : static inline fd_stake_reward_t *
    1839           0 : fd_partitioned_stake_rewards_pool_join_new( void * * alloc_mem, ulong num ) {
    1840           0 :   if( FD_UNLIKELY( 0 == num ) ) num = 1; // prevent underflow
    1841           0 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_partitioned_stake_rewards_pool_align() );
    1842           0 :   void * pool_mem = *alloc_mem;
    1843           0 :   *alloc_mem = (uchar *)*alloc_mem + fd_partitioned_stake_rewards_pool_footprint( num );
    1844           0 :   return fd_partitioned_stake_rewards_pool_join( fd_partitioned_stake_rewards_pool_new( pool_mem, num ) );
    1845           0 : }
    1846             : #define DLIST_NAME fd_partitioned_stake_rewards_dlist
    1847             : #define DLIST_ELE_T fd_stake_reward_t
    1848             : #include "../../util/tmpl/fd_dlist.c"
    1849             : static inline fd_partitioned_stake_rewards_dlist_t *
    1850           0 : fd_partitioned_stake_rewards_dlist_join_new( void * * alloc_mem, ulong num ) {
    1851           0 :   if( FD_UNLIKELY( 0 == num ) ) num = 1; // prevent underflow
    1852           0 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_partitioned_stake_rewards_dlist_align() );
    1853           0 :   void * dlist_mem = *alloc_mem;
    1854           0 :   *alloc_mem = (uchar *)*alloc_mem + fd_partitioned_stake_rewards_dlist_footprint();
    1855           0 :   return fd_partitioned_stake_rewards_dlist_join( fd_partitioned_stake_rewards_dlist_new( dlist_mem ) );
    1856           0 : }
    1857             : /* https://github.com/anza-xyz/agave/blob/7117ed9653ce19e8b2dea108eff1f3eb6a3378a7/runtime/src/bank/partitioned_epoch_rewards/mod.rs#L56 */
    1858             : /* Encoded Size: Dynamic */
    1859             : struct fd_partitioned_stake_rewards {
    1860             :   ulong partitions_len;
    1861             :   ulong partitions_lengths[4096];
    1862             :   fd_partitioned_stake_rewards_dlist_t * partitions;
    1863             :   fd_stake_reward_t * pool;
    1864             : };
    1865             : typedef struct fd_partitioned_stake_rewards fd_partitioned_stake_rewards_t;
    1866             : #define FD_PARTITIONED_STAKE_REWARDS_ALIGN alignof(fd_partitioned_stake_rewards_t)
    1867             : 
    1868             : struct fd_partitioned_stake_rewards_global {
    1869             :   ulong partitions_len;
    1870             :   ulong partitions_lengths[4096];
    1871             :   ulong partitions_offset;
    1872             :   ulong pool_offset;
    1873             : };
    1874             : typedef struct fd_partitioned_stake_rewards_global fd_partitioned_stake_rewards_global_t;
    1875             : #define FD_PARTITIONED_STAKE_REWARDS_GLOBAL_ALIGN alignof(fd_partitioned_stake_rewards_global_t)
    1876             : 
    1877             : /* https://github.com/anza-xyz/agave/blob/7117ed9653ce19e8b2dea108eff1f3eb6a3378a7/runtime/src/bank/partitioned_epoch_rewards/mod.rs#L131 */
    1878             : /* Encoded Size: Dynamic */
    1879             : struct fd_stake_reward_calculation_partitioned {
    1880             :   fd_partitioned_stake_rewards_t partitioned_stake_rewards;
    1881             :   ulong total_stake_rewards_lamports;
    1882             : };
    1883             : typedef struct fd_stake_reward_calculation_partitioned fd_stake_reward_calculation_partitioned_t;
    1884             : #define FD_STAKE_REWARD_CALCULATION_PARTITIONED_ALIGN alignof(fd_stake_reward_calculation_partitioned_t)
    1885             : 
    1886             : #define POOL_NAME fd_stake_reward_calculation_pool
    1887           0 : #define POOL_T fd_stake_reward_t
    1888           0 : #define POOL_NEXT parent
    1889             : #include "../../util/tmpl/fd_pool.c"
    1890             : static inline fd_stake_reward_t *
    1891           0 : fd_stake_reward_calculation_pool_join_new( void * * alloc_mem, ulong num ) {
    1892           0 :   if( FD_UNLIKELY( 0 == num ) ) num = 1; // prevent underflow
    1893           0 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_stake_reward_calculation_pool_align() );
    1894           0 :   void * pool_mem = *alloc_mem;
    1895           0 :   *alloc_mem = (uchar *)*alloc_mem + fd_stake_reward_calculation_pool_footprint( num );
    1896           0 :   return fd_stake_reward_calculation_pool_join( fd_stake_reward_calculation_pool_new( pool_mem, num ) );
    1897           0 : }
    1898             : #define DLIST_NAME fd_stake_reward_calculation_dlist
    1899             : #define DLIST_ELE_T fd_stake_reward_t
    1900             : #include "../../util/tmpl/fd_dlist.c"
    1901             : static inline fd_stake_reward_calculation_dlist_t *
    1902           0 : fd_stake_reward_calculation_dlist_join_new( void * * alloc_mem, ulong num ) {
    1903           0 :   if( FD_UNLIKELY( 0 == num ) ) num = 1; // prevent underflow
    1904           0 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_stake_reward_calculation_dlist_align() );
    1905           0 :   void * dlist_mem = *alloc_mem;
    1906           0 :   *alloc_mem = (uchar *)*alloc_mem + fd_stake_reward_calculation_dlist_footprint();
    1907           0 :   return fd_stake_reward_calculation_dlist_join( fd_stake_reward_calculation_dlist_new( dlist_mem ) );
    1908           0 : }
    1909             : /* https://github.com/anza-xyz/agave/blob/7117ed9653ce19e8b2dea108eff1f3eb6a3378a7/runtime/src/bank/partitioned_epoch_rewards/mod.rs#L94 */
    1910             : /* Encoded Size: Dynamic */
    1911             : struct fd_stake_reward_calculation {
    1912             :   ulong stake_rewards_len;
    1913             :   fd_stake_reward_calculation_dlist_t * stake_rewards;
    1914             :   fd_stake_reward_t * pool;
    1915             :   ulong total_stake_rewards_lamports;
    1916             : };
    1917             : typedef struct fd_stake_reward_calculation fd_stake_reward_calculation_t;
    1918             : #define FD_STAKE_REWARD_CALCULATION_ALIGN alignof(fd_stake_reward_calculation_t)
    1919             : 
    1920             : typedef struct fd_vote_reward_t_mapnode fd_vote_reward_t_mapnode_t;
    1921             : #define REDBLK_T fd_vote_reward_t_mapnode_t
    1922             : #define REDBLK_NAME fd_vote_reward_t_map
    1923             : #define REDBLK_IMPL_STYLE 1
    1924             : #include "../../util/tmpl/fd_redblack.c"
    1925             : struct fd_vote_reward_t_mapnode {
    1926             :     fd_vote_reward_t elem;
    1927             :     ulong redblack_parent;
    1928             :     ulong redblack_left;
    1929             :     ulong redblack_right;
    1930             :     int redblack_color;
    1931             : };
    1932             : static inline fd_vote_reward_t_mapnode_t *
    1933           0 : fd_vote_reward_t_map_join_new( void * * alloc_mem, ulong len ) {
    1934           0 :   if( FD_UNLIKELY( 0 == len ) ) len = 1; // prevent underflow
    1935           0 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_vote_reward_t_map_align() );
    1936           0 :   void * map_mem = *alloc_mem;
    1937           0 :   *alloc_mem = (uchar *)*alloc_mem + fd_vote_reward_t_map_footprint( len );
    1938           0 :   return fd_vote_reward_t_map_join( fd_vote_reward_t_map_new( map_mem, len ) );
    1939           0 : }
    1940             : /* Encoded Size: Dynamic */
    1941             : struct fd_calculate_stake_vote_rewards_result {
    1942             :   fd_stake_reward_calculation_t stake_reward_calculation;
    1943             :   fd_vote_reward_t_mapnode_t * vote_reward_map_pool;
    1944             :   fd_vote_reward_t_mapnode_t * vote_reward_map_root;
    1945             : };
    1946             : typedef struct fd_calculate_stake_vote_rewards_result fd_calculate_stake_vote_rewards_result_t;
    1947             : #define FD_CALCULATE_STAKE_VOTE_REWARDS_RESULT_ALIGN alignof(fd_calculate_stake_vote_rewards_result_t)
    1948             : 
    1949             : /* https://github.com/anza-xyz/agave/blob/7117ed9653ce19e8b2dea108eff1f3eb6a3378a7/runtime/src/bank/partitioned_epoch_rewards/mod.rs#L102 */
    1950             : /* Encoded Size: Dynamic */
    1951             : struct fd_calculate_validator_rewards_result {
    1952             :   fd_calculate_stake_vote_rewards_result_t calculate_stake_vote_rewards_result;
    1953             :   fd_point_value_t point_value;
    1954             : };
    1955             : typedef struct fd_calculate_validator_rewards_result fd_calculate_validator_rewards_result_t;
    1956             : #define FD_CALCULATE_VALIDATOR_REWARDS_RESULT_ALIGN alignof(fd_calculate_validator_rewards_result_t)
    1957             : 
    1958             : /* https://github.com/anza-xyz/agave/blob/7117ed9653ce19e8b2dea108eff1f3eb6a3378a7/runtime/src/bank/partitioned_epoch_rewards/mod.rs#L118 */
    1959             : /* Encoded Size: Dynamic */
    1960             : struct fd_partitioned_rewards_calculation {
    1961             :   fd_vote_reward_t_mapnode_t * vote_reward_map_pool;
    1962             :   fd_vote_reward_t_mapnode_t * vote_reward_map_root;
    1963             :   fd_stake_reward_calculation_partitioned_t stake_rewards_by_partition;
    1964             :   ulong old_vote_balance_and_staked;
    1965             :   ulong validator_rewards;
    1966             :   double validator_rate;
    1967             :   double foundation_rate;
    1968             :   double prev_epoch_duration_in_years;
    1969             :   ulong capitalization;
    1970             :   fd_point_value_t point_value;
    1971             : };
    1972             : typedef struct fd_partitioned_rewards_calculation fd_partitioned_rewards_calculation_t;
    1973             : #define FD_PARTITIONED_REWARDS_CALCULATION_ALIGN alignof(fd_partitioned_rewards_calculation_t)
    1974             : 
    1975             : /* https://github.com/anza-xyz/agave/blob/7117ed9653ce19e8b2dea108eff1f3eb6a3378a7/runtime/src/bank/partitioned_epoch_rewards/mod.rs#L60 */
    1976             : /* Encoded Size: Dynamic */
    1977             : struct fd_start_block_height_and_rewards {
    1978             :   ulong distribution_starting_block_height;
    1979             :   fd_partitioned_stake_rewards_t partitioned_stake_rewards;
    1980             : };
    1981             : typedef struct fd_start_block_height_and_rewards fd_start_block_height_and_rewards_t;
    1982             : #define FD_START_BLOCK_HEIGHT_AND_REWARDS_ALIGN alignof(fd_start_block_height_and_rewards_t)
    1983             : 
    1984             : struct fd_start_block_height_and_rewards_global {
    1985             :   ulong distribution_starting_block_height;
    1986             :   fd_partitioned_stake_rewards_global_t partitioned_stake_rewards;
    1987             : };
    1988             : typedef struct fd_start_block_height_and_rewards_global fd_start_block_height_and_rewards_global_t;
    1989             : #define FD_START_BLOCK_HEIGHT_AND_REWARDS_GLOBAL_ALIGN alignof(fd_start_block_height_and_rewards_global_t)
    1990             : 
    1991             : /* Encoded Size: Dynamic */
    1992             : struct fd_fd_epoch_reward_status_inner {
    1993             :   fd_start_block_height_and_rewards_t Active;
    1994             : };
    1995             : typedef struct fd_fd_epoch_reward_status_inner fd_fd_epoch_reward_status_inner_t;
    1996             : #define FD_FD_EPOCH_REWARD_STATUS_INNER_ALIGN alignof(fd_fd_epoch_reward_status_inner_t)
    1997             : 
    1998             : union fd_epoch_reward_status_inner {
    1999             :   fd_start_block_height_and_rewards_t Active;
    2000             : };
    2001             : typedef union fd_epoch_reward_status_inner fd_epoch_reward_status_inner_t;
    2002             : 
    2003             : union fd_epoch_reward_status_inner_global {
    2004             :   fd_start_block_height_and_rewards_global_t Active;
    2005             : };
    2006             : typedef union fd_epoch_reward_status_inner_global fd_epoch_reward_status_inner_global_t;
    2007             : 
    2008             : /* https://github.com/anza-xyz/agave/blob/7117ed9653ce19e8b2dea108eff1f3eb6a3378a7/runtime/src/bank/partitioned_epoch_rewards/mod.rs#L70 */
    2009             : struct fd_epoch_reward_status {
    2010             :   uint discriminant;
    2011             :   fd_epoch_reward_status_inner_t inner;
    2012             : };
    2013             : typedef struct fd_epoch_reward_status fd_epoch_reward_status_t;
    2014             : #define FD_EPOCH_REWARD_STATUS_ALIGN alignof(fd_epoch_reward_status_t)
    2015             : struct fd_epoch_reward_status_global {
    2016             :   uint discriminant;
    2017             :   fd_epoch_reward_status_inner_global_t inner;
    2018             : };
    2019             : typedef struct fd_epoch_reward_status_global fd_epoch_reward_status_global_t;
    2020             : #define FD_EPOCH_REWARD_STATUS_GLOBAL_ALIGN alignof(fd_epoch_reward_status_global_t)
    2021             : 
    2022             : /* Encoded Size: Fixed (32 bytes) */
    2023             : struct fd_prev_epoch_inflation_rewards {
    2024             :   ulong validator_rewards;
    2025             :   double prev_epoch_duration_in_years;
    2026             :   double validator_rate;
    2027             :   double foundation_rate;
    2028             : };
    2029             : typedef struct fd_prev_epoch_inflation_rewards fd_prev_epoch_inflation_rewards_t;
    2030             : #define FD_PREV_EPOCH_INFLATION_REWARDS_ALIGN alignof(fd_prev_epoch_inflation_rewards_t)
    2031             : 
    2032             : #define DEQUE_NAME deq_ulong
    2033           0 : #define DEQUE_T ulong
    2034             : #include "../../util/tmpl/fd_deque_dynamic.c"
    2035             : #undef DEQUE_NAME
    2036             : #undef DEQUE_T
    2037             : #undef DEQUE_MAX
    2038             : static inline ulong *
    2039           0 : deq_ulong_join_new( void * * alloc_mem, ulong max ) {
    2040           0 :   if( FD_UNLIKELY( 0 == max ) ) max = 1; // prevent underflow
    2041           0 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, deq_ulong_align() );
    2042           0 :   void * deque_mem = *alloc_mem;
    2043           0 :   *alloc_mem = (uchar *)*alloc_mem + deq_ulong_footprint( max );
    2044           0 :   return deq_ulong_join( deq_ulong_new( deque_mem, max ) );
    2045           0 : }
    2046             : 
    2047             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L133 */
    2048             : /* Encoded Size: Dynamic */
    2049             : struct fd_vote {
    2050             :   ulong * slots; /* fd_deque_dynamic */
    2051             :   fd_hash_t hash;
    2052             :   long* timestamp;
    2053             : };
    2054             : typedef struct fd_vote fd_vote_t;
    2055             : #define FD_VOTE_ALIGN alignof(fd_vote_t)
    2056             : 
    2057             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L230 */
    2058             : /* Encoded Size: Fixed (97 bytes) */
    2059             : struct fd_vote_init {
    2060             :   fd_pubkey_t node_pubkey;
    2061             :   fd_pubkey_t authorized_voter;
    2062             :   fd_pubkey_t authorized_withdrawer;
    2063             :   uchar commission;
    2064             : };
    2065             : typedef struct fd_vote_init fd_vote_init_t;
    2066             : #define FD_VOTE_INIT_ALIGN alignof(fd_vote_init_t)
    2067             : 
    2068             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L238 */
    2069             : struct fd_vote_authorize {
    2070             :   uint discriminant;
    2071             : };
    2072             : typedef struct fd_vote_authorize fd_vote_authorize_t;
    2073             : #define FD_VOTE_AUTHORIZE_ALIGN alignof(fd_vote_authorize_t)
    2074             : 
    2075             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_instruction.rs#L37 */
    2076             : /* Encoded Size: Fixed (36 bytes) */
    2077             : struct fd_vote_authorize_pubkey {
    2078             :   fd_pubkey_t pubkey;
    2079             :   fd_vote_authorize_t vote_authorize;
    2080             : };
    2081             : typedef struct fd_vote_authorize_pubkey fd_vote_authorize_pubkey_t;
    2082             : #define FD_VOTE_AUTHORIZE_PUBKEY_ALIGN alignof(fd_vote_authorize_pubkey_t)
    2083             : 
    2084             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_instruction.rs#L78 */
    2085             : /* Encoded Size: Dynamic */
    2086             : struct fd_vote_switch {
    2087             :   fd_vote_t vote;
    2088             :   fd_hash_t hash;
    2089             : };
    2090             : typedef struct fd_vote_switch fd_vote_switch_t;
    2091             : #define FD_VOTE_SWITCH_ALIGN alignof(fd_vote_switch_t)
    2092             : 
    2093             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_instruction.rs#L104 */
    2094             : /* Encoded Size: Dynamic */
    2095             : struct fd_update_vote_state_switch {
    2096             :   fd_vote_state_update_t vote_state_update;
    2097             :   fd_hash_t hash;
    2098             : };
    2099             : typedef struct fd_update_vote_state_switch fd_update_vote_state_switch_t;
    2100             : #define FD_UPDATE_VOTE_STATE_SWITCH_ALIGN alignof(fd_update_vote_state_switch_t)
    2101             : 
    2102             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L244 */
    2103             : /* Encoded Size: Dynamic */
    2104             : struct fd_vote_authorize_with_seed_args {
    2105             :   fd_vote_authorize_t authorization_type;
    2106             :   fd_pubkey_t current_authority_derived_key_owner;
    2107             :   ulong current_authority_derived_key_seed_len;
    2108             :   uchar* current_authority_derived_key_seed;
    2109             :   fd_pubkey_t new_authority;
    2110             : };
    2111             : typedef struct fd_vote_authorize_with_seed_args fd_vote_authorize_with_seed_args_t;
    2112             : #define FD_VOTE_AUTHORIZE_WITH_SEED_ARGS_ALIGN alignof(fd_vote_authorize_with_seed_args_t)
    2113             : 
    2114             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L252 */
    2115             : /* Encoded Size: Dynamic */
    2116             : struct fd_vote_authorize_checked_with_seed_args {
    2117             :   fd_vote_authorize_t authorization_type;
    2118             :   fd_pubkey_t current_authority_derived_key_owner;
    2119             :   ulong current_authority_derived_key_seed_len;
    2120             :   uchar* current_authority_derived_key_seed;
    2121             : };
    2122             : typedef struct fd_vote_authorize_checked_with_seed_args fd_vote_authorize_checked_with_seed_args_t;
    2123             : #define FD_VOTE_AUTHORIZE_CHECKED_WITH_SEED_ARGS_ALIGN alignof(fd_vote_authorize_checked_with_seed_args_t)
    2124             : 
    2125             : union fd_vote_instruction_inner {
    2126             :   fd_vote_init_t initialize_account;
    2127             :   fd_vote_authorize_pubkey_t authorize;
    2128             :   fd_vote_t vote;
    2129             :   ulong withdraw;
    2130             :   uchar update_commission;
    2131             :   fd_vote_switch_t vote_switch;
    2132             :   fd_vote_authorize_t authorize_checked;
    2133             :   fd_vote_state_update_t update_vote_state;
    2134             :   fd_update_vote_state_switch_t update_vote_state_switch;
    2135             :   fd_vote_authorize_with_seed_args_t authorize_with_seed;
    2136             :   fd_vote_authorize_checked_with_seed_args_t authorize_checked_with_seed;
    2137             :   fd_compact_vote_state_update_t compact_update_vote_state;
    2138             :   fd_compact_vote_state_update_switch_t compact_update_vote_state_switch;
    2139             :   fd_tower_sync_t tower_sync;
    2140             :   fd_tower_sync_switch_t tower_sync_switch;
    2141             : };
    2142             : typedef union fd_vote_instruction_inner fd_vote_instruction_inner_t;
    2143             : 
    2144             : /* https://github.com/firedancer-io/solana/blob/53a4e5d6c58b2ffe89b09304e4437f8ca198dadd/programs/vote/src/vote_instruction.rs#L21 */
    2145             : struct fd_vote_instruction {
    2146             :   uint discriminant;
    2147             :   fd_vote_instruction_inner_t inner;
    2148             : };
    2149             : typedef struct fd_vote_instruction fd_vote_instruction_t;
    2150           0 : #define FD_VOTE_INSTRUCTION_ALIGN alignof(fd_vote_instruction_t)
    2151             : 
    2152             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/system_instruction.rs#L158 */
    2153             : /* Encoded Size: Fixed (48 bytes) */
    2154             : struct fd_system_program_instruction_create_account {
    2155             :   ulong lamports;
    2156             :   ulong space;
    2157             :   fd_pubkey_t owner;
    2158             : };
    2159             : typedef struct fd_system_program_instruction_create_account fd_system_program_instruction_create_account_t;
    2160             : #define FD_SYSTEM_PROGRAM_INSTRUCTION_CREATE_ACCOUNT_ALIGN alignof(fd_system_program_instruction_create_account_t)
    2161             : 
    2162             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/system_instruction.rs#L193 */
    2163             : /* Encoded Size: Dynamic */
    2164             : struct fd_system_program_instruction_create_account_with_seed {
    2165             :   fd_pubkey_t base;
    2166             :   ulong seed_len;
    2167             :   uchar* seed;
    2168             :   ulong lamports;
    2169             :   ulong space;
    2170             :   fd_pubkey_t owner;
    2171             : };
    2172             : typedef struct fd_system_program_instruction_create_account_with_seed fd_system_program_instruction_create_account_with_seed_t;
    2173             : #define FD_SYSTEM_PROGRAM_INSTRUCTION_CREATE_ACCOUNT_WITH_SEED_ALIGN alignof(fd_system_program_instruction_create_account_with_seed_t)
    2174             : 
    2175             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/system_instruction.rs#L269 */
    2176             : /* Encoded Size: Dynamic */
    2177             : struct fd_system_program_instruction_allocate_with_seed {
    2178             :   fd_pubkey_t base;
    2179             :   ulong seed_len;
    2180             :   uchar* seed;
    2181             :   ulong space;
    2182             :   fd_pubkey_t owner;
    2183             : };
    2184             : typedef struct fd_system_program_instruction_allocate_with_seed fd_system_program_instruction_allocate_with_seed_t;
    2185             : #define FD_SYSTEM_PROGRAM_INSTRUCTION_ALLOCATE_WITH_SEED_ALIGN alignof(fd_system_program_instruction_allocate_with_seed_t)
    2186             : 
    2187             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/system_instruction.rs#L288 */
    2188             : /* Encoded Size: Dynamic */
    2189             : struct fd_system_program_instruction_assign_with_seed {
    2190             :   fd_pubkey_t base;
    2191             :   ulong seed_len;
    2192             :   uchar* seed;
    2193             :   fd_pubkey_t owner;
    2194             : };
    2195             : typedef struct fd_system_program_instruction_assign_with_seed fd_system_program_instruction_assign_with_seed_t;
    2196             : #define FD_SYSTEM_PROGRAM_INSTRUCTION_ASSIGN_WITH_SEED_ALIGN alignof(fd_system_program_instruction_assign_with_seed_t)
    2197             : 
    2198             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/system_instruction.rs#L288 */
    2199             : /* Encoded Size: Dynamic */
    2200             : struct fd_system_program_instruction_transfer_with_seed {
    2201             :   ulong lamports;
    2202             :   ulong from_seed_len;
    2203             :   uchar* from_seed;
    2204             :   fd_pubkey_t from_owner;
    2205             : };
    2206             : typedef struct fd_system_program_instruction_transfer_with_seed fd_system_program_instruction_transfer_with_seed_t;
    2207             : #define FD_SYSTEM_PROGRAM_INSTRUCTION_TRANSFER_WITH_SEED_ALIGN alignof(fd_system_program_instruction_transfer_with_seed_t)
    2208             : 
    2209             : union fd_system_program_instruction_inner {
    2210             :   fd_system_program_instruction_create_account_t create_account;
    2211             :   fd_pubkey_t assign;
    2212             :   ulong transfer;
    2213             :   fd_system_program_instruction_create_account_with_seed_t create_account_with_seed;
    2214             :   ulong withdraw_nonce_account;
    2215             :   fd_pubkey_t initialize_nonce_account;
    2216             :   fd_pubkey_t authorize_nonce_account;
    2217             :   ulong allocate;
    2218             :   fd_system_program_instruction_allocate_with_seed_t allocate_with_seed;
    2219             :   fd_system_program_instruction_assign_with_seed_t assign_with_seed;
    2220             :   fd_system_program_instruction_transfer_with_seed_t transfer_with_seed;
    2221             : };
    2222             : typedef union fd_system_program_instruction_inner fd_system_program_instruction_inner_t;
    2223             : 
    2224             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/system_instruction.rs#L152 */
    2225             : struct fd_system_program_instruction {
    2226             :   uint discriminant;
    2227             :   fd_system_program_instruction_inner_t inner;
    2228             : };
    2229             : typedef struct fd_system_program_instruction fd_system_program_instruction_t;
    2230           0 : #define FD_SYSTEM_PROGRAM_INSTRUCTION_ALIGN alignof(fd_system_program_instruction_t)
    2231             : 
    2232             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/system_instruction.rs#L16 */
    2233             : struct fd_system_error {
    2234             :   uint discriminant;
    2235             : };
    2236             : typedef struct fd_system_error fd_system_error_t;
    2237             : #define FD_SYSTEM_ERROR_ALIGN alignof(fd_system_error_t)
    2238             : 
    2239             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/state.rs#L169 */
    2240             : /* Encoded Size: Fixed (64 bytes) */
    2241             : struct fd_stake_authorized {
    2242             :   fd_pubkey_t staker;
    2243             :   fd_pubkey_t withdrawer;
    2244             : };
    2245             : typedef struct fd_stake_authorized fd_stake_authorized_t;
    2246             : #define FD_STAKE_AUTHORIZED_ALIGN alignof(fd_stake_authorized_t)
    2247             : 
    2248             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/state.rs#L135 */
    2249             : /* Encoded Size: Fixed (48 bytes) */
    2250             : struct fd_stake_lockup {
    2251             :   long unix_timestamp;
    2252             :   ulong epoch;
    2253             :   fd_pubkey_t custodian;
    2254             : };
    2255             : typedef struct fd_stake_lockup fd_stake_lockup_t;
    2256             : #define FD_STAKE_LOCKUP_ALIGN alignof(fd_stake_lockup_t)
    2257             : 
    2258             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/instruction.rs#L68 */
    2259             : /* Encoded Size: Fixed (112 bytes) */
    2260             : struct fd_stake_instruction_initialize {
    2261             :   fd_stake_authorized_t authorized;
    2262             :   fd_stake_lockup_t lockup;
    2263             : };
    2264             : typedef struct fd_stake_instruction_initialize fd_stake_instruction_initialize_t;
    2265             : #define FD_STAKE_INSTRUCTION_INITIALIZE_ALIGN alignof(fd_stake_instruction_initialize_t)
    2266             : 
    2267             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/instruction.rs#L78 */
    2268             : /* Encoded Size: Dynamic */
    2269             : struct fd_stake_lockup_custodian_args {
    2270             :   fd_stake_lockup_t lockup;
    2271             :   fd_sol_sysvar_clock_t clock;
    2272             :   fd_pubkey_t * custodian;
    2273             : };
    2274             : typedef struct fd_stake_lockup_custodian_args fd_stake_lockup_custodian_args_t;
    2275             : #define FD_STAKE_LOCKUP_CUSTODIAN_ARGS_ALIGN alignof(fd_stake_lockup_custodian_args_t)
    2276             : 
    2277             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/state.rs#L117 */
    2278             : struct fd_stake_authorize {
    2279             :   uint discriminant;
    2280             : };
    2281             : typedef struct fd_stake_authorize fd_stake_authorize_t;
    2282             : #define FD_STAKE_AUTHORIZE_ALIGN alignof(fd_stake_authorize_t)
    2283             : 
    2284             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/instruction.rs#L78 */
    2285             : /* Encoded Size: Fixed (36 bytes) */
    2286             : struct fd_stake_instruction_authorize {
    2287             :   fd_pubkey_t pubkey;
    2288             :   fd_stake_authorize_t stake_authorize;
    2289             : };
    2290             : typedef struct fd_stake_instruction_authorize fd_stake_instruction_authorize_t;
    2291             : #define FD_STAKE_INSTRUCTION_AUTHORIZE_ALIGN alignof(fd_stake_instruction_authorize_t)
    2292             : 
    2293             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/instruction.rs#L241 */
    2294             : /* Encoded Size: Dynamic */
    2295             : struct fd_authorize_with_seed_args {
    2296             :   fd_pubkey_t new_authorized_pubkey;
    2297             :   fd_stake_authorize_t stake_authorize;
    2298             :   ulong authority_seed_len;
    2299             :   uchar* authority_seed;
    2300             :   fd_pubkey_t authority_owner;
    2301             : };
    2302             : typedef struct fd_authorize_with_seed_args fd_authorize_with_seed_args_t;
    2303             : #define FD_AUTHORIZE_WITH_SEED_ARGS_ALIGN alignof(fd_authorize_with_seed_args_t)
    2304             : 
    2305             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/instruction.rs#L249 */
    2306             : /* Encoded Size: Dynamic */
    2307             : struct fd_authorize_checked_with_seed_args {
    2308             :   fd_stake_authorize_t stake_authorize;
    2309             :   ulong authority_seed_len;
    2310             :   uchar* authority_seed;
    2311             :   fd_pubkey_t authority_owner;
    2312             : };
    2313             : typedef struct fd_authorize_checked_with_seed_args fd_authorize_checked_with_seed_args_t;
    2314             : #define FD_AUTHORIZE_CHECKED_WITH_SEED_ARGS_ALIGN alignof(fd_authorize_checked_with_seed_args_t)
    2315             : 
    2316             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/instruction.rs#L235 */
    2317             : /* Encoded Size: Dynamic */
    2318             : struct fd_lockup_checked_args {
    2319             :   long* unix_timestamp;
    2320             :   ulong* epoch;
    2321             : };
    2322             : typedef struct fd_lockup_checked_args fd_lockup_checked_args_t;
    2323             : #define FD_LOCKUP_CHECKED_ARGS_ALIGN alignof(fd_lockup_checked_args_t)
    2324             : 
    2325             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/instruction.rs#L228 */
    2326             : /* Encoded Size: Dynamic */
    2327             : struct fd_lockup_args {
    2328             :   long* unix_timestamp;
    2329             :   ulong* epoch;
    2330             :   fd_pubkey_t * custodian;
    2331             : };
    2332             : typedef struct fd_lockup_args fd_lockup_args_t;
    2333             : #define FD_LOCKUP_ARGS_ALIGN alignof(fd_lockup_args_t)
    2334             : 
    2335             : union fd_stake_instruction_inner {
    2336             :   fd_stake_instruction_initialize_t initialize;
    2337             :   fd_stake_instruction_authorize_t authorize;
    2338             :   ulong split;
    2339             :   ulong withdraw;
    2340             :   fd_lockup_args_t set_lockup;
    2341             :   fd_authorize_with_seed_args_t authorize_with_seed;
    2342             :   fd_stake_authorize_t authorize_checked;
    2343             :   fd_authorize_checked_with_seed_args_t authorize_checked_with_seed;
    2344             :   fd_lockup_checked_args_t set_lockup_checked;
    2345             :   ulong move_stake;
    2346             :   ulong move_lamports;
    2347             : };
    2348             : typedef union fd_stake_instruction_inner fd_stake_instruction_inner_t;
    2349             : 
    2350             : /* https://github.com/anza-xyz/agave/blob/cdff19c7807b006dd63429114fb1d9573bf74172/sdk/program/src/stake/instruction.rs#L96 */
    2351             : struct fd_stake_instruction {
    2352             :   uint discriminant;
    2353             :   fd_stake_instruction_inner_t inner;
    2354             : };
    2355             : typedef struct fd_stake_instruction fd_stake_instruction_t;
    2356           0 : #define FD_STAKE_INSTRUCTION_ALIGN alignof(fd_stake_instruction_t)
    2357             : 
    2358             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/state.rs#L248 */
    2359             : /* Encoded Size: Fixed (120 bytes) */
    2360             : struct fd_stake_meta {
    2361             :   ulong rent_exempt_reserve;
    2362             :   fd_stake_authorized_t authorized;
    2363             :   fd_stake_lockup_t lockup;
    2364             : };
    2365             : typedef struct fd_stake_meta fd_stake_meta_t;
    2366             : #define FD_STAKE_META_ALIGN alignof(fd_stake_meta_t)
    2367             : 
    2368             : /* https://github.com/firedancer-io/solana/blob/v1.17/sdk/program/src/stake/stake_flags.rs#L21 */
    2369             : /* Encoded Size: Fixed (1 bytes) */
    2370             : struct fd_stake_flags {
    2371             :   uchar bits;
    2372             : };
    2373             : typedef struct fd_stake_flags fd_stake_flags_t;
    2374             : #define FD_STAKE_FLAGS_ALIGN alignof(fd_stake_flags_t)
    2375             : 
    2376             : /* https://github.com/firedancer-io/solana/blob/v1.17/sdk/program/src/stake/state.rs#L135 */
    2377             : /* Encoded Size: Fixed (120 bytes) */
    2378             : struct fd_stake_state_v2_initialized {
    2379             :   fd_stake_meta_t meta;
    2380             : };
    2381             : typedef struct fd_stake_state_v2_initialized fd_stake_state_v2_initialized_t;
    2382             : #define FD_STAKE_STATE_V2_INITIALIZED_ALIGN alignof(fd_stake_state_v2_initialized_t)
    2383             : 
    2384             : /* https://github.com/firedancer-io/solana/blob/v1.17/sdk/program/src/stake/state.rs#L136 */
    2385             : /* Encoded Size: Fixed (193 bytes) */
    2386             : struct fd_stake_state_v2_stake {
    2387             :   fd_stake_meta_t meta;
    2388             :   fd_stake_t stake;
    2389             :   fd_stake_flags_t stake_flags;
    2390             : };
    2391             : typedef struct fd_stake_state_v2_stake fd_stake_state_v2_stake_t;
    2392             : #define FD_STAKE_STATE_V2_STAKE_ALIGN alignof(fd_stake_state_v2_stake_t)
    2393             : 
    2394             : union fd_stake_state_v2_inner {
    2395             :   fd_stake_state_v2_initialized_t initialized;
    2396             :   fd_stake_state_v2_stake_t stake;
    2397             : };
    2398             : typedef union fd_stake_state_v2_inner fd_stake_state_v2_inner_t;
    2399             : 
    2400             : /* https://github.com/firedancer-io/solana/blob/v1.17/sdk/program/src/stake/state.rs#L132 */
    2401             : struct fd_stake_state_v2 {
    2402             :   uint discriminant;
    2403             :   fd_stake_state_v2_inner_t inner;
    2404             : };
    2405             : typedef struct fd_stake_state_v2 fd_stake_state_v2_t;
    2406           0 : #define FD_STAKE_STATE_V2_ALIGN alignof(fd_stake_state_v2_t)
    2407             : 
    2408             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/nonce/state/current.rs#L17 */
    2409             : /* Encoded Size: Fixed (72 bytes) */
    2410             : struct fd_nonce_data {
    2411             :   fd_pubkey_t authority;
    2412             :   fd_hash_t durable_nonce;
    2413             :   fd_fee_calculator_t fee_calculator;
    2414             : };
    2415             : typedef struct fd_nonce_data fd_nonce_data_t;
    2416             : #define FD_NONCE_DATA_ALIGN alignof(fd_nonce_data_t)
    2417             : 
    2418             : union fd_nonce_state_inner {
    2419             :   fd_nonce_data_t initialized;
    2420             : };
    2421             : typedef union fd_nonce_state_inner fd_nonce_state_inner_t;
    2422             : 
    2423             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/nonce/state/current.rs#L65 */
    2424             : struct fd_nonce_state {
    2425             :   uint discriminant;
    2426             :   fd_nonce_state_inner_t inner;
    2427             : };
    2428             : typedef struct fd_nonce_state fd_nonce_state_t;
    2429             : #define FD_NONCE_STATE_ALIGN alignof(fd_nonce_state_t)
    2430             : 
    2431             : union fd_nonce_state_versions_inner {
    2432             :   fd_nonce_state_t legacy;
    2433             :   fd_nonce_state_t current;
    2434             : };
    2435             : typedef union fd_nonce_state_versions_inner fd_nonce_state_versions_inner_t;
    2436             : 
    2437             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/nonce/state/mod.rs#L9 */
    2438             : struct fd_nonce_state_versions {
    2439             :   uint discriminant;
    2440             :   fd_nonce_state_versions_inner_t inner;
    2441             : };
    2442             : typedef struct fd_nonce_state_versions fd_nonce_state_versions_t;
    2443           0 : #define FD_NONCE_STATE_VERSIONS_ALIGN alignof(fd_nonce_state_versions_t)
    2444             : 
    2445             : /* https://github.com/solana-labs/solana/blob/6c520396cd76807f6227a7973f7373b37894251c/sdk/src/compute_budget.rs#L28 */
    2446             : /* Encoded Size: Fixed (8 bytes) */
    2447             : struct fd_compute_budget_program_instruction_request_units_deprecated {
    2448             :   uint units;
    2449             :   uint additional_fee;
    2450             : };
    2451             : typedef struct fd_compute_budget_program_instruction_request_units_deprecated fd_compute_budget_program_instruction_request_units_deprecated_t;
    2452             : #define FD_COMPUTE_BUDGET_PROGRAM_INSTRUCTION_REQUEST_UNITS_DEPRECATED_ALIGN alignof(fd_compute_budget_program_instruction_request_units_deprecated_t)
    2453             : 
    2454             : union fd_compute_budget_program_instruction_inner {
    2455             :   fd_compute_budget_program_instruction_request_units_deprecated_t request_units_deprecated;
    2456             :   uint request_heap_frame;
    2457             :   uint set_compute_unit_limit;
    2458             :   ulong set_compute_unit_price;
    2459             :   uint set_loaded_accounts_data_size_limit;
    2460             : };
    2461             : typedef union fd_compute_budget_program_instruction_inner fd_compute_budget_program_instruction_inner_t;
    2462             : 
    2463             : /* https://github.com/solana-labs/solana/blob/6c520396cd76807f6227a7973f7373b37894251c/sdk/src/compute_budget.rs#L25 */
    2464             : struct fd_compute_budget_program_instruction {
    2465             :   uint discriminant;
    2466             :   fd_compute_budget_program_instruction_inner_t inner;
    2467             : };
    2468             : typedef struct fd_compute_budget_program_instruction fd_compute_budget_program_instruction_t;
    2469           0 : #define FD_COMPUTE_BUDGET_PROGRAM_INSTRUCTION_ALIGN alignof(fd_compute_budget_program_instruction_t)
    2470             : 
    2471             : /* https://github.com/solana-labs/solana/blob/a03ae63daff987912c48ee286eb8ee7e8a84bf01/programs/config/src/lib.rs#L32 */
    2472             : /* Encoded Size: Dynamic */
    2473             : struct fd_config_keys {
    2474             :   ushort keys_len;
    2475             :   fd_config_keys_pair_t * keys;
    2476             : };
    2477             : typedef struct fd_config_keys fd_config_keys_t;
    2478           0 : #define FD_CONFIG_KEYS_ALIGN alignof(fd_config_keys_t)
    2479             : 
    2480             : /* Encoded Size: Dynamic */
    2481             : struct fd_bpf_loader_program_instruction_write {
    2482             :   uint offset;
    2483             :   ulong bytes_len;
    2484             :   uchar* bytes;
    2485             : };
    2486             : typedef struct fd_bpf_loader_program_instruction_write fd_bpf_loader_program_instruction_write_t;
    2487             : #define FD_BPF_LOADER_PROGRAM_INSTRUCTION_WRITE_ALIGN alignof(fd_bpf_loader_program_instruction_write_t)
    2488             : 
    2489             : union fd_bpf_loader_program_instruction_inner {
    2490             :   fd_bpf_loader_program_instruction_write_t write;
    2491             : };
    2492             : typedef union fd_bpf_loader_program_instruction_inner fd_bpf_loader_program_instruction_inner_t;
    2493             : 
    2494             : struct fd_bpf_loader_program_instruction {
    2495             :   uint discriminant;
    2496             :   fd_bpf_loader_program_instruction_inner_t inner;
    2497             : };
    2498             : typedef struct fd_bpf_loader_program_instruction fd_bpf_loader_program_instruction_t;
    2499             : #define FD_BPF_LOADER_PROGRAM_INSTRUCTION_ALIGN alignof(fd_bpf_loader_program_instruction_t)
    2500             : 
    2501             : /* https://github.com/anza-xyz/solana-sdk/blob/loader-v4-interface%40v2.2.1/loader-v4-interface/src/instruction.rs#L21-L27 */
    2502             : /* Encoded Size: Dynamic */
    2503             : struct fd_loader_v4_program_instruction_write {
    2504             :   uint offset;
    2505             :   ulong bytes_len;
    2506             :   uchar* bytes;
    2507             : };
    2508             : typedef struct fd_loader_v4_program_instruction_write fd_loader_v4_program_instruction_write_t;
    2509             : #define FD_LOADER_V4_PROGRAM_INSTRUCTION_WRITE_ALIGN alignof(fd_loader_v4_program_instruction_write_t)
    2510             : 
    2511             : /* https://github.com/anza-xyz/solana-sdk/blob/loader-v4-interface%40v2.2.1/loader-v4-interface/src/instruction.rs#L35-L42 */
    2512             : /* Encoded Size: Fixed (12 bytes) */
    2513             : struct fd_loader_v4_program_instruction_copy {
    2514             :   uint destination_offset;
    2515             :   uint source_offset;
    2516             :   uint length;
    2517             : };
    2518             : typedef struct fd_loader_v4_program_instruction_copy fd_loader_v4_program_instruction_copy_t;
    2519             : #define FD_LOADER_V4_PROGRAM_INSTRUCTION_COPY_ALIGN alignof(fd_loader_v4_program_instruction_copy_t)
    2520             : 
    2521             : /* https://github.com/anza-xyz/solana-sdk/blob/loader-v4-interface%40v2.2.1/loader-v4-interface/src/instruction.rs#L57-L60 */
    2522             : /* Encoded Size: Fixed (4 bytes) */
    2523             : struct fd_loader_v4_program_instruction_set_program_length {
    2524             :   uint new_size;
    2525             : };
    2526             : typedef struct fd_loader_v4_program_instruction_set_program_length fd_loader_v4_program_instruction_set_program_length_t;
    2527             : #define FD_LOADER_V4_PROGRAM_INSTRUCTION_SET_PROGRAM_LENGTH_ALIGN alignof(fd_loader_v4_program_instruction_set_program_length_t)
    2528             : 
    2529             : union fd_loader_v4_program_instruction_inner {
    2530             :   fd_loader_v4_program_instruction_write_t write;
    2531             :   fd_loader_v4_program_instruction_copy_t copy;
    2532             :   fd_loader_v4_program_instruction_set_program_length_t set_program_length;
    2533             : };
    2534             : typedef union fd_loader_v4_program_instruction_inner fd_loader_v4_program_instruction_inner_t;
    2535             : 
    2536             : /* https://github.com/anza-xyz/agave/blob/007194391ca8313b2854d523769d0bedf040ef92/sdk/program/src/loader_v4_instruction.rs#L5 */
    2537             : struct fd_loader_v4_program_instruction {
    2538             :   uint discriminant;
    2539             :   fd_loader_v4_program_instruction_inner_t inner;
    2540             : };
    2541             : typedef struct fd_loader_v4_program_instruction fd_loader_v4_program_instruction_t;
    2542           0 : #define FD_LOADER_V4_PROGRAM_INSTRUCTION_ALIGN alignof(fd_loader_v4_program_instruction_t)
    2543             : 
    2544             : /* Encoded Size: Dynamic */
    2545             : struct fd_bpf_upgradeable_loader_program_instruction_write {
    2546             :   uint offset;
    2547             :   ulong bytes_len;
    2548             :   uchar* bytes;
    2549             : };
    2550             : typedef struct fd_bpf_upgradeable_loader_program_instruction_write fd_bpf_upgradeable_loader_program_instruction_write_t;
    2551             : #define FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_WRITE_ALIGN alignof(fd_bpf_upgradeable_loader_program_instruction_write_t)
    2552             : 
    2553             : /* Encoded Size: Fixed (8 bytes) */
    2554             : struct fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len {
    2555             :   ulong max_data_len;
    2556             : };
    2557             : 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;
    2558             : #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)
    2559             : 
    2560             : /* Encoded Size: Fixed (4 bytes) */
    2561             : struct fd_bpf_upgradeable_loader_program_instruction_extend_program {
    2562             :   uint additional_bytes;
    2563             : };
    2564             : typedef struct fd_bpf_upgradeable_loader_program_instruction_extend_program fd_bpf_upgradeable_loader_program_instruction_extend_program_t;
    2565             : #define FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_EXTEND_PROGRAM_ALIGN alignof(fd_bpf_upgradeable_loader_program_instruction_extend_program_t)
    2566             : 
    2567             : /* Encoded Size: Fixed (4 bytes) */
    2568             : struct fd_bpf_upgradeable_loader_program_instruction_extend_program_checked {
    2569             :   uint additional_bytes;
    2570             : };
    2571             : typedef struct fd_bpf_upgradeable_loader_program_instruction_extend_program_checked fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_t;
    2572             : #define FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_EXTEND_PROGRAM_CHECKED_ALIGN alignof(fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_t)
    2573             : 
    2574             : union fd_bpf_upgradeable_loader_program_instruction_inner {
    2575             :   fd_bpf_upgradeable_loader_program_instruction_write_t write;
    2576             :   fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_t deploy_with_max_data_len;
    2577             :   fd_bpf_upgradeable_loader_program_instruction_extend_program_t extend_program;
    2578             :   fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_t extend_program_checked;
    2579             : };
    2580             : typedef union fd_bpf_upgradeable_loader_program_instruction_inner fd_bpf_upgradeable_loader_program_instruction_inner_t;
    2581             : 
    2582             : struct fd_bpf_upgradeable_loader_program_instruction {
    2583             :   uint discriminant;
    2584             :   fd_bpf_upgradeable_loader_program_instruction_inner_t inner;
    2585             : };
    2586             : typedef struct fd_bpf_upgradeable_loader_program_instruction fd_bpf_upgradeable_loader_program_instruction_t;
    2587           0 : #define FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_ALIGN alignof(fd_bpf_upgradeable_loader_program_instruction_t)
    2588             : 
    2589             : /* Encoded Size: Dynamic */
    2590             : struct fd_bpf_upgradeable_loader_state_buffer {
    2591             :   fd_pubkey_t * authority_address;
    2592             : };
    2593             : typedef struct fd_bpf_upgradeable_loader_state_buffer fd_bpf_upgradeable_loader_state_buffer_t;
    2594             : #define FD_BPF_UPGRADEABLE_LOADER_STATE_BUFFER_ALIGN alignof(fd_bpf_upgradeable_loader_state_buffer_t)
    2595             : 
    2596             : /* Encoded Size: Fixed (32 bytes) */
    2597             : struct fd_bpf_upgradeable_loader_state_program {
    2598             :   fd_pubkey_t programdata_address;
    2599             : };
    2600             : typedef struct fd_bpf_upgradeable_loader_state_program fd_bpf_upgradeable_loader_state_program_t;
    2601             : #define FD_BPF_UPGRADEABLE_LOADER_STATE_PROGRAM_ALIGN alignof(fd_bpf_upgradeable_loader_state_program_t)
    2602             : 
    2603             : /* Encoded Size: Dynamic */
    2604             : struct fd_bpf_upgradeable_loader_state_program_data {
    2605             :   ulong slot;
    2606             :   fd_pubkey_t * upgrade_authority_address;
    2607             : };
    2608             : typedef struct fd_bpf_upgradeable_loader_state_program_data fd_bpf_upgradeable_loader_state_program_data_t;
    2609             : #define FD_BPF_UPGRADEABLE_LOADER_STATE_PROGRAM_DATA_ALIGN alignof(fd_bpf_upgradeable_loader_state_program_data_t)
    2610             : 
    2611             : union fd_bpf_upgradeable_loader_state_inner {
    2612             :   fd_bpf_upgradeable_loader_state_buffer_t buffer;
    2613             :   fd_bpf_upgradeable_loader_state_program_t program;
    2614             :   fd_bpf_upgradeable_loader_state_program_data_t program_data;
    2615             : };
    2616             : typedef union fd_bpf_upgradeable_loader_state_inner fd_bpf_upgradeable_loader_state_inner_t;
    2617             : 
    2618             : struct fd_bpf_upgradeable_loader_state {
    2619             :   uint discriminant;
    2620             :   fd_bpf_upgradeable_loader_state_inner_t inner;
    2621             : };
    2622             : typedef struct fd_bpf_upgradeable_loader_state fd_bpf_upgradeable_loader_state_t;
    2623           0 : #define FD_BPF_UPGRADEABLE_LOADER_STATE_ALIGN alignof(fd_bpf_upgradeable_loader_state_t)
    2624             : 
    2625             : /* https://github.com/anza-xyz/agave/blob/v2.1.4/sdk/program/src/loader_v4.rs#L33-L43 */
    2626             : /* Encoded Size: Fixed (48 bytes) */
    2627             : struct fd_loader_v4_state {
    2628             :   ulong slot;
    2629             :   fd_pubkey_t authority_address_or_next_version;
    2630             :   ulong status;
    2631             : };
    2632             : typedef struct fd_loader_v4_state fd_loader_v4_state_t;
    2633             : #define FD_LOADER_V4_STATE_ALIGN alignof(fd_loader_v4_state_t)
    2634             : 
    2635             : /* https://github.com/firedancer-io/solana/blob/f4b7c54f9e021b40cfc7cbd32dc12b19dedbe791/ledger/src/blockstore_meta.rs#L178 */
    2636             : /* Encoded Size: Fixed (33 bytes) */
    2637             : struct fd_frozen_hash_status {
    2638             :   fd_hash_t frozen_hash;
    2639             :   uchar is_duplicate_confirmed;
    2640             : };
    2641             : typedef struct fd_frozen_hash_status fd_frozen_hash_status_t;
    2642             : #define FD_FROZEN_HASH_STATUS_ALIGN alignof(fd_frozen_hash_status_t)
    2643             : 
    2644             : union fd_frozen_hash_versioned_inner {
    2645             :   fd_frozen_hash_status_t current;
    2646             : };
    2647             : typedef union fd_frozen_hash_versioned_inner fd_frozen_hash_versioned_inner_t;
    2648             : 
    2649             : /* https://github.com/firedancer-io/solana/blob/f4b7c54f9e021b40cfc7cbd32dc12b19dedbe791/ledger/src/blockstore_meta.rs#L157 */
    2650             : struct fd_frozen_hash_versioned {
    2651             :   uint discriminant;
    2652             :   fd_frozen_hash_versioned_inner_t inner;
    2653             : };
    2654             : typedef struct fd_frozen_hash_versioned fd_frozen_hash_versioned_t;
    2655           0 : #define FD_FROZEN_HASH_VERSIONED_ALIGN alignof(fd_frozen_hash_versioned_t)
    2656             : 
    2657             : /* Encoded Size: Dynamic */
    2658             : struct fd_lookup_table_meta {
    2659             :   ulong deactivation_slot;
    2660             :   ulong last_extended_slot;
    2661             :   uchar last_extended_slot_start_index;
    2662             :   fd_pubkey_t authority;
    2663             :   uchar has_authority;
    2664             :   ushort _padding;
    2665             : };
    2666             : typedef struct fd_lookup_table_meta fd_lookup_table_meta_t;
    2667             : #define FD_LOOKUP_TABLE_META_ALIGN alignof(fd_lookup_table_meta_t)
    2668             : 
    2669             : /* Encoded Size: Dynamic */
    2670             : struct fd_address_lookup_table {
    2671             :   fd_lookup_table_meta_t meta;
    2672             : };
    2673             : typedef struct fd_address_lookup_table fd_address_lookup_table_t;
    2674             : #define FD_ADDRESS_LOOKUP_TABLE_ALIGN alignof(fd_address_lookup_table_t)
    2675             : 
    2676             : union fd_address_lookup_table_state_inner {
    2677             :   fd_address_lookup_table_t lookup_table;
    2678             : };
    2679             : typedef union fd_address_lookup_table_state_inner fd_address_lookup_table_state_inner_t;
    2680             : 
    2681             : struct fd_address_lookup_table_state {
    2682             :   uint discriminant;
    2683             :   fd_address_lookup_table_state_inner_t inner;
    2684             : };
    2685             : typedef struct fd_address_lookup_table_state fd_address_lookup_table_state_t;
    2686             : #define FD_ADDRESS_LOOKUP_TABLE_STATE_ALIGN alignof(fd_address_lookup_table_state_t)
    2687             : 
    2688             : /* https://github.com/solana-labs/solana/blob/52616cf7aa424a80f770e5ec3f2cd49d1cfeb845/gossip/src/ping_pong.rs#L22 */
    2689             : /* Encoded Size: Fixed (128 bytes) */
    2690             : struct fd_gossip_ping {
    2691             :   fd_pubkey_t from;
    2692             :   fd_hash_t token;
    2693             :   fd_signature_t signature;
    2694             : };
    2695             : typedef struct fd_gossip_ping fd_gossip_ping_t;
    2696             : #define FD_GOSSIP_PING_ALIGN alignof(fd_gossip_ping_t)
    2697             : 
    2698             : union fd_gossip_ip_addr_inner {
    2699             :   fd_gossip_ip4_addr_t ip4;
    2700             :   fd_gossip_ip6_addr_t ip6;
    2701             : };
    2702             : typedef union fd_gossip_ip_addr_inner fd_gossip_ip_addr_inner_t;
    2703             : 
    2704             : /* https://doc.rust-lang.org/beta/src/core/net/socket_addr.rs.html#33 */
    2705             : struct fd_gossip_ip_addr {
    2706             :   uint discriminant;
    2707             :   fd_gossip_ip_addr_inner_t inner;
    2708             : };
    2709             : typedef struct fd_gossip_ip_addr fd_gossip_ip_addr_t;
    2710           6 : #define FD_GOSSIP_IP_ADDR_ALIGN alignof(fd_gossip_ip_addr_t)
    2711             : 
    2712             : /* Encoded Size: Dynamic */
    2713             : struct fd_gossip_prune_data {
    2714             :   fd_pubkey_t pubkey;
    2715             :   ulong prunes_len;
    2716             :   fd_pubkey_t * prunes;
    2717             :   fd_signature_t signature;
    2718             :   fd_pubkey_t destination;
    2719             :   ulong wallclock;
    2720             : };
    2721             : typedef struct fd_gossip_prune_data fd_gossip_prune_data_t;
    2722             : #define FD_GOSSIP_PRUNE_DATA_ALIGN alignof(fd_gossip_prune_data_t)
    2723             : 
    2724             : /* Encoded Size: Dynamic */
    2725             : struct fd_gossip_prune_sign_data {
    2726             :   fd_pubkey_t pubkey;
    2727             :   ulong prunes_len;
    2728             :   fd_pubkey_t * prunes;
    2729             :   fd_pubkey_t destination;
    2730             :   ulong wallclock;
    2731             : };
    2732             : typedef struct fd_gossip_prune_sign_data fd_gossip_prune_sign_data_t;
    2733             : #define FD_GOSSIP_PRUNE_SIGN_DATA_ALIGN alignof(fd_gossip_prune_sign_data_t)
    2734             : 
    2735             : /* Encoded Size: Dynamic */
    2736             : struct fd_gossip_prune_sign_data_with_prefix {
    2737             :   ulong prefix_len;
    2738             :   uchar* prefix;
    2739             :   fd_gossip_prune_sign_data_t data;
    2740             : };
    2741             : typedef struct fd_gossip_prune_sign_data_with_prefix fd_gossip_prune_sign_data_with_prefix_t;
    2742             : #define FD_GOSSIP_PRUNE_SIGN_DATA_WITH_PREFIX_ALIGN alignof(fd_gossip_prune_sign_data_with_prefix_t)
    2743             : 
    2744             : /* Encoded Size: Dynamic */
    2745             : struct fd_gossip_socket_addr_old {
    2746             :   fd_gossip_ip_addr_t addr;
    2747             :   ushort port;
    2748             : };
    2749             : typedef struct fd_gossip_socket_addr_old fd_gossip_socket_addr_old_t;
    2750             : #define FD_GOSSIP_SOCKET_ADDR_OLD_ALIGN alignof(fd_gossip_socket_addr_old_t)
    2751             : 
    2752             : /* Encoded Size: Dynamic */
    2753             : struct fd_gossip_socket_addr_ip4 {
    2754             :   fd_gossip_ip4_addr_t addr;
    2755             :   ushort port;
    2756             : };
    2757             : typedef struct fd_gossip_socket_addr_ip4 fd_gossip_socket_addr_ip4_t;
    2758             : #define FD_GOSSIP_SOCKET_ADDR_IP4_ALIGN alignof(fd_gossip_socket_addr_ip4_t)
    2759             : 
    2760             : /* https://doc.rust-lang.org/beta/src/core/net/socket_addr.rs.html#147 */
    2761             : /* Encoded Size: Fixed (18 bytes) */
    2762             : struct fd_gossip_socket_addr_ip6 {
    2763             :   fd_gossip_ip6_addr_t addr;
    2764             :   ushort port;
    2765             : };
    2766             : typedef struct fd_gossip_socket_addr_ip6 fd_gossip_socket_addr_ip6_t;
    2767             : #define FD_GOSSIP_SOCKET_ADDR_IP6_ALIGN alignof(fd_gossip_socket_addr_ip6_t)
    2768             : 
    2769             : union fd_gossip_socket_addr_inner {
    2770             :   fd_gossip_socket_addr_ip4_t ip4;
    2771             :   fd_gossip_socket_addr_ip6_t ip6;
    2772             : };
    2773             : typedef union fd_gossip_socket_addr_inner fd_gossip_socket_addr_inner_t;
    2774             : 
    2775             : /* https://doc.rust-lang.org/beta/src/core/net/socket_addr.rs.html#33 */
    2776             : struct fd_gossip_socket_addr {
    2777             :   uint discriminant;
    2778             :   fd_gossip_socket_addr_inner_t inner;
    2779             : };
    2780             : typedef struct fd_gossip_socket_addr fd_gossip_socket_addr_t;
    2781             : #define FD_GOSSIP_SOCKET_ADDR_ALIGN alignof(fd_gossip_socket_addr_t)
    2782             : 
    2783             : /* https://github.com/firedancer-io/agave/blob/540d5bc56cd44e3cc61b179bd52e9a782a2c99e4/gossip/src/legacy_contact_info.rs#L14 */
    2784             : /* Encoded Size: Dynamic */
    2785             : struct fd_gossip_contact_info_v1 {
    2786             :   fd_pubkey_t id;
    2787             :   fd_gossip_socket_addr_t gossip;
    2788             :   fd_gossip_socket_addr_t tvu;
    2789             :   fd_gossip_socket_addr_t tvu_fwd;
    2790             :   fd_gossip_socket_addr_t repair;
    2791             :   fd_gossip_socket_addr_t tpu;
    2792             :   fd_gossip_socket_addr_t tpu_fwd;
    2793             :   fd_gossip_socket_addr_t tpu_vote;
    2794             :   fd_gossip_socket_addr_t rpc;
    2795             :   fd_gossip_socket_addr_t rpc_pubsub;
    2796             :   fd_gossip_socket_addr_t serve_repair;
    2797             :   ulong wallclock;
    2798             :   ushort shred_version;
    2799             : };
    2800             : typedef struct fd_gossip_contact_info_v1 fd_gossip_contact_info_v1_t;
    2801             : #define FD_GOSSIP_CONTACT_INFO_V1_ALIGN alignof(fd_gossip_contact_info_v1_t)
    2802             : 
    2803             : /* Encoded Size: Dynamic */
    2804             : struct fd_gossip_vote {
    2805             :   uchar index;
    2806             :   fd_pubkey_t from;
    2807             :   fd_flamenco_txn_t txn;
    2808             :   ulong wallclock;
    2809             : };
    2810             : typedef struct fd_gossip_vote fd_gossip_vote_t;
    2811             : #define FD_GOSSIP_VOTE_ALIGN alignof(fd_gossip_vote_t)
    2812             : 
    2813             : struct fd_gossip_deprecated_compression_type {
    2814             :   uint discriminant;
    2815             : };
    2816             : typedef struct fd_gossip_deprecated_compression_type fd_gossip_deprecated_compression_type_t;
    2817             : #define FD_GOSSIP_DEPRECATED_COMPRESSION_TYPE_ALIGN alignof(fd_gossip_deprecated_compression_type_t)
    2818             : 
    2819             : /* Encoded Size: Dynamic */
    2820             : struct fd_gossip_deprecated_epoch_incomplete_slots {
    2821             :   ulong first;
    2822             :   fd_gossip_deprecated_compression_type_t compression;
    2823             :   ulong compressed_list_len;
    2824             :   uchar* compressed_list;
    2825             : };
    2826             : typedef struct fd_gossip_deprecated_epoch_incomplete_slots fd_gossip_deprecated_epoch_incomplete_slots_t;
    2827           0 : #define FD_GOSSIP_DEPRECATED_EPOCH_INCOMPLETE_SLOTS_ALIGN alignof(fd_gossip_deprecated_epoch_incomplete_slots_t)
    2828             : 
    2829             : /* Encoded Size: Dynamic */
    2830             : struct fd_gossip_lowest_slot {
    2831             :   uchar u8;
    2832             :   fd_pubkey_t from;
    2833             :   ulong root;
    2834             :   ulong lowest;
    2835             :   ulong slots_len;
    2836             :   ulong* slots;
    2837             :   ulong stash_len;
    2838             :   fd_gossip_deprecated_epoch_incomplete_slots_t * stash;
    2839             :   ulong wallclock;
    2840             : };
    2841             : typedef struct fd_gossip_lowest_slot fd_gossip_lowest_slot_t;
    2842             : #define FD_GOSSIP_LOWEST_SLOT_ALIGN alignof(fd_gossip_lowest_slot_t)
    2843             : 
    2844             : /* Encoded Size: Dynamic */
    2845             : struct fd_gossip_slot_hashes {
    2846             :   fd_pubkey_t from;
    2847             :   ulong hashes_len;
    2848             :   fd_slot_hash_t * hashes;
    2849             :   ulong wallclock;
    2850             : };
    2851             : typedef struct fd_gossip_slot_hashes fd_gossip_slot_hashes_t;
    2852             : #define FD_GOSSIP_SLOT_HASHES_ALIGN alignof(fd_gossip_slot_hashes_t)
    2853             : 
    2854             : /* Encoded Size: Dynamic */
    2855             : struct fd_gossip_slots {
    2856             :   ulong first_slot;
    2857             :   ulong num;
    2858             :   uchar has_slots;
    2859             :   ulong slots_bitvec_len;
    2860             :   uchar* slots_bitvec;
    2861             :   ulong slots_len;
    2862             : };
    2863             : typedef struct fd_gossip_slots fd_gossip_slots_t;
    2864             : #define FD_GOSSIP_SLOTS_ALIGN alignof(fd_gossip_slots_t)
    2865             : 
    2866             : /* Encoded Size: Dynamic */
    2867             : struct fd_gossip_flate2_slots {
    2868             :   ulong first_slot;
    2869             :   ulong num;
    2870             :   ulong compressed_len;
    2871             :   uchar* compressed;
    2872             : };
    2873             : typedef struct fd_gossip_flate2_slots fd_gossip_flate2_slots_t;
    2874             : #define FD_GOSSIP_FLATE2_SLOTS_ALIGN alignof(fd_gossip_flate2_slots_t)
    2875             : 
    2876             : union fd_gossip_slots_enum_inner {
    2877             :   fd_gossip_flate2_slots_t flate2;
    2878             :   fd_gossip_slots_t uncompressed;
    2879             : };
    2880             : typedef union fd_gossip_slots_enum_inner fd_gossip_slots_enum_inner_t;
    2881             : 
    2882             : struct fd_gossip_slots_enum {
    2883             :   uint discriminant;
    2884             :   fd_gossip_slots_enum_inner_t inner;
    2885             : };
    2886             : typedef struct fd_gossip_slots_enum fd_gossip_slots_enum_t;
    2887           0 : #define FD_GOSSIP_SLOTS_ENUM_ALIGN alignof(fd_gossip_slots_enum_t)
    2888             : 
    2889             : /* Encoded Size: Dynamic */
    2890             : struct fd_gossip_epoch_slots {
    2891             :   uchar u8;
    2892             :   fd_pubkey_t from;
    2893             :   ulong slots_len;
    2894             :   fd_gossip_slots_enum_t * slots;
    2895             :   ulong wallclock;
    2896             : };
    2897             : typedef struct fd_gossip_epoch_slots fd_gossip_epoch_slots_t;
    2898             : #define FD_GOSSIP_EPOCH_SLOTS_ALIGN alignof(fd_gossip_epoch_slots_t)
    2899             : 
    2900             : /* Encoded Size: Dynamic */
    2901             : struct fd_gossip_version_v1 {
    2902             :   fd_pubkey_t from;
    2903             :   ulong wallclock;
    2904             :   ushort major;
    2905             :   ushort minor;
    2906             :   ushort patch;
    2907             :   uint commit;
    2908             :   uchar has_commit;
    2909             : };
    2910             : typedef struct fd_gossip_version_v1 fd_gossip_version_v1_t;
    2911             : #define FD_GOSSIP_VERSION_V1_ALIGN alignof(fd_gossip_version_v1_t)
    2912             : 
    2913             : /* Encoded Size: Dynamic */
    2914             : struct fd_gossip_version_v2 {
    2915             :   fd_pubkey_t from;
    2916             :   ulong wallclock;
    2917             :   ushort major;
    2918             :   ushort minor;
    2919             :   ushort patch;
    2920             :   uint commit;
    2921             :   uchar has_commit;
    2922             :   uint feature_set;
    2923             : };
    2924             : typedef struct fd_gossip_version_v2 fd_gossip_version_v2_t;
    2925             : #define FD_GOSSIP_VERSION_V2_ALIGN alignof(fd_gossip_version_v2_t)
    2926             : 
    2927             : /* Encoded Size: Dynamic */
    2928             : struct fd_gossip_version_v3 {
    2929             :   ushort major;
    2930             :   ushort minor;
    2931             :   ushort patch;
    2932             :   uint commit;
    2933             :   uint feature_set;
    2934             :   ushort client;
    2935             : };
    2936             : typedef struct fd_gossip_version_v3 fd_gossip_version_v3_t;
    2937             : #define FD_GOSSIP_VERSION_V3_ALIGN alignof(fd_gossip_version_v3_t)
    2938             : 
    2939             : /* Encoded Size: Fixed (56 bytes) */
    2940             : struct fd_gossip_node_instance {
    2941             :   fd_pubkey_t from;
    2942             :   ulong wallclock;
    2943             :   ulong timestamp;
    2944             :   ulong token;
    2945             : };
    2946             : typedef struct fd_gossip_node_instance fd_gossip_node_instance_t;
    2947             : #define FD_GOSSIP_NODE_INSTANCE_ALIGN alignof(fd_gossip_node_instance_t)
    2948             : 
    2949             : /* https://github.com/firedancer-io/agave/blob/540d5bc56cd44e3cc61b179bd52e9a782a2c99e4/gossip/src/duplicate_shred.rs#L25 */
    2950             : /* Encoded Size: Dynamic */
    2951             : struct fd_gossip_duplicate_shred {
    2952             :   ushort duplicate_shred_index;
    2953             :   fd_pubkey_t from;
    2954             :   ulong wallclock;
    2955             :   ulong slot;
    2956             :   uint _unused;
    2957             :   uchar _unused_shred_type;
    2958             :   uchar num_chunks;
    2959             :   uchar chunk_index;
    2960             :   ulong chunk_len;
    2961             :   uchar* chunk;
    2962             : };
    2963             : typedef struct fd_gossip_duplicate_shred fd_gossip_duplicate_shred_t;
    2964             : #define FD_GOSSIP_DUPLICATE_SHRED_ALIGN alignof(fd_gossip_duplicate_shred_t)
    2965             : 
    2966             : /* Encoded Size: Dynamic */
    2967             : struct fd_gossip_incremental_snapshot_hashes {
    2968             :   fd_pubkey_t from;
    2969             :   fd_slot_hash_t base_hash;
    2970             :   ulong hashes_len;
    2971             :   fd_slot_hash_t * hashes;
    2972             :   ulong wallclock;
    2973             : };
    2974             : typedef struct fd_gossip_incremental_snapshot_hashes fd_gossip_incremental_snapshot_hashes_t;
    2975             : #define FD_GOSSIP_INCREMENTAL_SNAPSHOT_HASHES_ALIGN alignof(fd_gossip_incremental_snapshot_hashes_t)
    2976             : 
    2977             : /* Encoded Size: Dynamic */
    2978             : struct fd_gossip_socket_entry {
    2979             :   uchar key;
    2980             :   uchar index;
    2981             :   ushort offset;
    2982             : };
    2983             : typedef struct fd_gossip_socket_entry fd_gossip_socket_entry_t;
    2984           6 : #define FD_GOSSIP_SOCKET_ENTRY_ALIGN alignof(fd_gossip_socket_entry_t)
    2985             : 
    2986             : /* https://github.com/firedancer-io/agave/blob/540d5bc56cd44e3cc61b179bd52e9a782a2c99e4/gossip/src/contact_info.rs#L85 */
    2987             : /* Encoded Size: Dynamic */
    2988             : struct fd_gossip_contact_info_v2 {
    2989             :   fd_pubkey_t from;
    2990             :   ulong wallclock;
    2991             :   ulong outset;
    2992             :   ushort shred_version;
    2993             :   fd_gossip_version_v3_t version;
    2994             :   ushort addrs_len;
    2995             :   fd_gossip_ip_addr_t * addrs;
    2996             :   ushort sockets_len;
    2997             :   fd_gossip_socket_entry_t * sockets;
    2998             :   ushort extensions_len;
    2999             :   uint* extensions;
    3000             : };
    3001             : typedef struct fd_gossip_contact_info_v2 fd_gossip_contact_info_v2_t;
    3002             : #define FD_GOSSIP_CONTACT_INFO_V2_ALIGN alignof(fd_gossip_contact_info_v2_t)
    3003             : 
    3004             : /* Encoded Size: Dynamic */
    3005             : struct fd_restart_run_length_encoding_inner {
    3006             :   ushort bits;
    3007             : };
    3008             : typedef struct fd_restart_run_length_encoding_inner fd_restart_run_length_encoding_inner_t;
    3009           0 : #define FD_RESTART_RUN_LENGTH_ENCODING_INNER_ALIGN alignof(fd_restart_run_length_encoding_inner_t)
    3010             : 
    3011             : /* Encoded Size: Dynamic */
    3012             : struct fd_restart_run_length_encoding {
    3013             :   ulong offsets_len;
    3014             :   fd_restart_run_length_encoding_inner_t * offsets;
    3015             : };
    3016             : typedef struct fd_restart_run_length_encoding fd_restart_run_length_encoding_t;
    3017             : #define FD_RESTART_RUN_LENGTH_ENCODING_ALIGN alignof(fd_restart_run_length_encoding_t)
    3018             : 
    3019             : /* Encoded Size: Dynamic */
    3020             : struct fd_restart_raw_offsets {
    3021             :   uchar has_offsets;
    3022             :   ulong offsets_bitvec_len;
    3023             :   uchar* offsets_bitvec;
    3024             :   ulong offsets_len;
    3025             : };
    3026             : typedef struct fd_restart_raw_offsets fd_restart_raw_offsets_t;
    3027             : #define FD_RESTART_RAW_OFFSETS_ALIGN alignof(fd_restart_raw_offsets_t)
    3028             : 
    3029             : union fd_restart_slots_offsets_inner {
    3030             :   fd_restart_run_length_encoding_t run_length_encoding;
    3031             :   fd_restart_raw_offsets_t raw_offsets;
    3032             : };
    3033             : typedef union fd_restart_slots_offsets_inner fd_restart_slots_offsets_inner_t;
    3034             : 
    3035             : struct fd_restart_slots_offsets {
    3036             :   uint discriminant;
    3037             :   fd_restart_slots_offsets_inner_t inner;
    3038             : };
    3039             : typedef struct fd_restart_slots_offsets fd_restart_slots_offsets_t;
    3040             : #define FD_RESTART_SLOTS_OFFSETS_ALIGN alignof(fd_restart_slots_offsets_t)
    3041             : 
    3042             : /* Encoded Size: Dynamic */
    3043             : struct fd_gossip_restart_last_voted_fork_slots {
    3044             :   fd_pubkey_t from;
    3045             :   ulong wallclock;
    3046             :   fd_restart_slots_offsets_t offsets;
    3047             :   ulong last_voted_slot;
    3048             :   fd_hash_t last_voted_hash;
    3049             :   ushort shred_version;
    3050             : };
    3051             : typedef struct fd_gossip_restart_last_voted_fork_slots fd_gossip_restart_last_voted_fork_slots_t;
    3052             : #define FD_GOSSIP_RESTART_LAST_VOTED_FORK_SLOTS_ALIGN alignof(fd_gossip_restart_last_voted_fork_slots_t)
    3053             : 
    3054             : /* Encoded Size: Fixed (90 bytes) */
    3055             : struct fd_gossip_restart_heaviest_fork {
    3056             :   fd_pubkey_t from;
    3057             :   ulong wallclock;
    3058             :   ulong last_slot;
    3059             :   fd_hash_t last_slot_hash;
    3060             :   ulong observed_stake;
    3061             :   ushort shred_version;
    3062             : };
    3063             : typedef struct fd_gossip_restart_heaviest_fork fd_gossip_restart_heaviest_fork_t;
    3064             : #define FD_GOSSIP_RESTART_HEAVIEST_FORK_ALIGN alignof(fd_gossip_restart_heaviest_fork_t)
    3065             : 
    3066             : union fd_crds_data_inner {
    3067             :   fd_gossip_contact_info_v1_t contact_info_v1;
    3068             :   fd_gossip_vote_t vote;
    3069             :   fd_gossip_lowest_slot_t lowest_slot;
    3070             :   fd_gossip_slot_hashes_t snapshot_hashes;
    3071             :   fd_gossip_slot_hashes_t accounts_hashes;
    3072             :   fd_gossip_epoch_slots_t epoch_slots;
    3073             :   fd_gossip_version_v1_t version_v1;
    3074             :   fd_gossip_version_v2_t version_v2;
    3075             :   fd_gossip_node_instance_t node_instance;
    3076             :   fd_gossip_duplicate_shred_t duplicate_shred;
    3077             :   fd_gossip_incremental_snapshot_hashes_t incremental_snapshot_hashes;
    3078             :   fd_gossip_contact_info_v2_t contact_info_v2;
    3079             :   fd_gossip_restart_last_voted_fork_slots_t restart_last_voted_fork_slots;
    3080             :   fd_gossip_restart_heaviest_fork_t restart_heaviest_fork;
    3081             : };
    3082             : typedef union fd_crds_data_inner fd_crds_data_inner_t;
    3083             : 
    3084             : struct fd_crds_data {
    3085             :   uint discriminant;
    3086             :   fd_crds_data_inner_t inner;
    3087             : };
    3088             : typedef struct fd_crds_data fd_crds_data_t;
    3089             : #define FD_CRDS_DATA_ALIGN alignof(fd_crds_data_t)
    3090             : 
    3091             : /* https://github.com/firedancer-io/agave/blob/540d5bc56cd44e3cc61b179bd52e9a782a2c99e4/bloom/src/bloom.rs#L26 */
    3092             : /* Encoded Size: Dynamic */
    3093             : struct fd_crds_bloom {
    3094             :   ulong keys_len;
    3095             :   ulong* keys;
    3096             :   uchar has_bits;
    3097             :   ulong bits_bitvec_len;
    3098             :   ulong* bits_bitvec;
    3099             :   ulong bits_len;
    3100             :   ulong num_bits_set;
    3101             : };
    3102             : typedef struct fd_crds_bloom fd_crds_bloom_t;
    3103             : #define FD_CRDS_BLOOM_ALIGN alignof(fd_crds_bloom_t)
    3104             : 
    3105             : /* https://github.com/firedancer-io/agave/blob/540d5bc56cd44e3cc61b179bd52e9a782a2c99e4/gossip/src/crds_gossip_pull.rs#L60 */
    3106             : /* Encoded Size: Dynamic */
    3107             : struct fd_crds_filter {
    3108             :   fd_crds_bloom_t filter;
    3109             :   ulong mask;
    3110             :   uint mask_bits;
    3111             : };
    3112             : typedef struct fd_crds_filter fd_crds_filter_t;
    3113             : #define FD_CRDS_FILTER_ALIGN alignof(fd_crds_filter_t)
    3114             : 
    3115             : /* Encoded Size: Dynamic */
    3116             : struct fd_crds_value {
    3117             :   fd_signature_t signature;
    3118             :   fd_crds_data_t data;
    3119             : };
    3120             : typedef struct fd_crds_value fd_crds_value_t;
    3121          36 : #define FD_CRDS_VALUE_ALIGN alignof(fd_crds_value_t)
    3122             : 
    3123             : /* Encoded Size: Dynamic */
    3124             : struct fd_gossip_pull_req {
    3125             :   fd_crds_filter_t filter;
    3126             :   fd_crds_value_t value;
    3127             : };
    3128             : typedef struct fd_gossip_pull_req fd_gossip_pull_req_t;
    3129             : #define FD_GOSSIP_PULL_REQ_ALIGN alignof(fd_gossip_pull_req_t)
    3130             : 
    3131             : /* Encoded Size: Dynamic */
    3132             : struct fd_gossip_pull_resp {
    3133             :   fd_pubkey_t pubkey;
    3134             :   ulong crds_len;
    3135             :   fd_crds_value_t * crds;
    3136             : };
    3137             : typedef struct fd_gossip_pull_resp fd_gossip_pull_resp_t;
    3138             : #define FD_GOSSIP_PULL_RESP_ALIGN alignof(fd_gossip_pull_resp_t)
    3139             : 
    3140             : /* Encoded Size: Dynamic */
    3141             : struct fd_gossip_push_msg {
    3142             :   fd_pubkey_t pubkey;
    3143             :   ulong crds_len;
    3144             :   fd_crds_value_t * crds;
    3145             : };
    3146             : typedef struct fd_gossip_push_msg fd_gossip_push_msg_t;
    3147             : #define FD_GOSSIP_PUSH_MSG_ALIGN alignof(fd_gossip_push_msg_t)
    3148             : 
    3149             : /* Encoded Size: Dynamic */
    3150             : struct fd_gossip_prune_msg {
    3151             :   fd_pubkey_t pubkey;
    3152             :   fd_gossip_prune_data_t data;
    3153             : };
    3154             : typedef struct fd_gossip_prune_msg fd_gossip_prune_msg_t;
    3155             : #define FD_GOSSIP_PRUNE_MSG_ALIGN alignof(fd_gossip_prune_msg_t)
    3156             : 
    3157             : union fd_gossip_msg_inner {
    3158             :   fd_gossip_pull_req_t pull_req;
    3159             :   fd_gossip_pull_resp_t pull_resp;
    3160             :   fd_gossip_push_msg_t push_msg;
    3161             :   fd_gossip_prune_msg_t prune_msg;
    3162             :   fd_gossip_ping_t ping;
    3163             :   fd_gossip_ping_t pong;
    3164             : };
    3165             : typedef union fd_gossip_msg_inner fd_gossip_msg_inner_t;
    3166             : 
    3167             : /* UDP payloads of the Solana gossip protocol */
    3168             : struct fd_gossip_msg {
    3169             :   uint discriminant;
    3170             :   fd_gossip_msg_inner_t inner;
    3171             : };
    3172             : typedef struct fd_gossip_msg fd_gossip_msg_t;
    3173          42 : #define FD_GOSSIP_MSG_ALIGN alignof(fd_gossip_msg_t)
    3174             : 
    3175             : /* Encoded Size: Fixed (9 bytes) */
    3176             : struct fd_addrlut_create {
    3177             :   ulong recent_slot;
    3178             :   uchar bump_seed;
    3179             : };
    3180             : typedef struct fd_addrlut_create fd_addrlut_create_t;
    3181             : #define FD_ADDRLUT_CREATE_ALIGN alignof(fd_addrlut_create_t)
    3182             : 
    3183             : /* Encoded Size: Dynamic */
    3184             : struct fd_addrlut_extend {
    3185             :   ulong new_addrs_len;
    3186             :   fd_pubkey_t * new_addrs;
    3187             : };
    3188             : typedef struct fd_addrlut_extend fd_addrlut_extend_t;
    3189             : #define FD_ADDRLUT_EXTEND_ALIGN alignof(fd_addrlut_extend_t)
    3190             : 
    3191             : union fd_addrlut_instruction_inner {
    3192             :   fd_addrlut_create_t create_lut;
    3193             :   fd_addrlut_extend_t extend_lut;
    3194             : };
    3195             : typedef union fd_addrlut_instruction_inner fd_addrlut_instruction_inner_t;
    3196             : 
    3197             : /* https://github.com/solana-labs/solana/blob/fb80288f885a62bcd923f4c9579fd0edeafaff9b/sdk/program/src/address_lookup_table/instruction.rs#L13 */
    3198             : struct fd_addrlut_instruction {
    3199             :   uint discriminant;
    3200             :   fd_addrlut_instruction_inner_t inner;
    3201             : };
    3202             : typedef struct fd_addrlut_instruction fd_addrlut_instruction_t;
    3203           0 : #define FD_ADDRLUT_INSTRUCTION_ALIGN alignof(fd_addrlut_instruction_t)
    3204             : 
    3205             : /* https://github.com/anza-xyz/agave/blob/v2.2.7/core/src/repair/serve_repair.rs#L204-L210 */
    3206             : /* Encoded Size: Fixed (140 bytes) */
    3207             : struct fd_repair_request_header {
    3208             :   fd_signature_t signature;
    3209             :   fd_pubkey_t sender;
    3210             :   fd_pubkey_t recipient;
    3211             :   ulong timestamp;
    3212             :   uint nonce;
    3213             : };
    3214             : typedef struct fd_repair_request_header fd_repair_request_header_t;
    3215             : #define FD_REPAIR_REQUEST_HEADER_ALIGN alignof(fd_repair_request_header_t)
    3216             : 
    3217             : /* Encoded Size: Fixed (156 bytes) */
    3218             : struct fd_repair_window_index {
    3219             :   fd_repair_request_header_t header;
    3220             :   ulong slot;
    3221             :   ulong shred_index;
    3222             : };
    3223             : typedef struct fd_repair_window_index fd_repair_window_index_t;
    3224             : #define FD_REPAIR_WINDOW_INDEX_ALIGN alignof(fd_repair_window_index_t)
    3225             : 
    3226             : /* Encoded Size: Fixed (156 bytes) */
    3227             : struct fd_repair_highest_window_index {
    3228             :   fd_repair_request_header_t header;
    3229             :   ulong slot;
    3230             :   ulong shred_index;
    3231             : };
    3232             : typedef struct fd_repair_highest_window_index fd_repair_highest_window_index_t;
    3233             : #define FD_REPAIR_HIGHEST_WINDOW_INDEX_ALIGN alignof(fd_repair_highest_window_index_t)
    3234             : 
    3235             : /* Encoded Size: Fixed (148 bytes) */
    3236             : struct fd_repair_orphan {
    3237             :   fd_repair_request_header_t header;
    3238             :   ulong slot;
    3239             : };
    3240             : typedef struct fd_repair_orphan fd_repair_orphan_t;
    3241             : #define FD_REPAIR_ORPHAN_ALIGN alignof(fd_repair_orphan_t)
    3242             : 
    3243             : /* Encoded Size: Fixed (148 bytes) */
    3244             : struct fd_repair_ancestor_hashes {
    3245             :   fd_repair_request_header_t header;
    3246             :   ulong slot;
    3247             : };
    3248             : typedef struct fd_repair_ancestor_hashes fd_repair_ancestor_hashes_t;
    3249             : #define FD_REPAIR_ANCESTOR_HASHES_ALIGN alignof(fd_repair_ancestor_hashes_t)
    3250             : 
    3251             : union fd_repair_protocol_inner {
    3252             :   fd_gossip_ping_t pong;
    3253             :   fd_repair_window_index_t window_index;
    3254             :   fd_repair_highest_window_index_t highest_window_index;
    3255             :   fd_repair_orphan_t orphan;
    3256             :   fd_repair_ancestor_hashes_t ancestor_hashes;
    3257             : };
    3258             : typedef union fd_repair_protocol_inner fd_repair_protocol_inner_t;
    3259             : 
    3260             : struct fd_repair_protocol {
    3261             :   uint discriminant;
    3262             :   fd_repair_protocol_inner_t inner;
    3263             : };
    3264             : typedef struct fd_repair_protocol fd_repair_protocol_t;
    3265          18 : #define FD_REPAIR_PROTOCOL_ALIGN alignof(fd_repair_protocol_t)
    3266             : 
    3267             : union fd_repair_response_inner {
    3268             :   fd_gossip_ping_t ping;
    3269             : };
    3270             : typedef union fd_repair_response_inner fd_repair_response_inner_t;
    3271             : 
    3272             : struct fd_repair_response {
    3273             :   uint discriminant;
    3274             :   fd_repair_response_inner_t inner;
    3275             : };
    3276             : typedef struct fd_repair_response fd_repair_response_t;
    3277           0 : #define FD_REPAIR_RESPONSE_ALIGN alignof(fd_repair_response_t)
    3278             : 
    3279             : union fd_instr_error_enum_inner {
    3280             :   uint custom;
    3281             :   char* borsh_io_error;
    3282             : };
    3283             : typedef union fd_instr_error_enum_inner fd_instr_error_enum_inner_t;
    3284             : 
    3285             : struct fd_instr_error_enum {
    3286             :   uint discriminant;
    3287             :   fd_instr_error_enum_inner_t inner;
    3288             : };
    3289             : typedef struct fd_instr_error_enum fd_instr_error_enum_t;
    3290             : #define FD_INSTR_ERROR_ENUM_ALIGN alignof(fd_instr_error_enum_t)
    3291             : 
    3292             : /* Encoded Size: Dynamic */
    3293             : struct fd_txn_instr_error {
    3294             :   uchar instr_idx;
    3295             :   fd_instr_error_enum_t error;
    3296             : };
    3297             : typedef struct fd_txn_instr_error fd_txn_instr_error_t;
    3298             : #define FD_TXN_INSTR_ERROR_ALIGN alignof(fd_txn_instr_error_t)
    3299             : 
    3300             : union fd_txn_error_enum_inner {
    3301             :   fd_txn_instr_error_t instruction_error;
    3302             :   uchar duplicate_instruction;
    3303             :   uchar insufficient_funds_for_rent;
    3304             :   uchar program_execution_temporarily_restricted;
    3305             : };
    3306             : typedef union fd_txn_error_enum_inner fd_txn_error_enum_inner_t;
    3307             : 
    3308             : struct fd_txn_error_enum {
    3309             :   uint discriminant;
    3310             :   fd_txn_error_enum_inner_t inner;
    3311             : };
    3312             : typedef struct fd_txn_error_enum fd_txn_error_enum_t;
    3313             : #define FD_TXN_ERROR_ENUM_ALIGN alignof(fd_txn_error_enum_t)
    3314             : 
    3315             : union fd_txn_result_inner {
    3316             :   fd_txn_error_enum_t error;
    3317             : };
    3318             : typedef union fd_txn_result_inner fd_txn_result_inner_t;
    3319             : 
    3320             : struct fd_txn_result {
    3321             :   uint discriminant;
    3322             :   fd_txn_result_inner_t inner;
    3323             : };
    3324             : typedef struct fd_txn_result fd_txn_result_t;
    3325             : #define FD_TXN_RESULT_ALIGN alignof(fd_txn_result_t)
    3326             : 
    3327             : /* Encoded Size: Dynamic */
    3328             : struct fd_cache_status {
    3329             :   uchar key_slice[20];
    3330             :   fd_txn_result_t result;
    3331             : };
    3332             : typedef struct fd_cache_status fd_cache_status_t;
    3333           0 : #define FD_CACHE_STATUS_ALIGN alignof(fd_cache_status_t)
    3334             : 
    3335             : /* Encoded Size: Dynamic */
    3336             : struct fd_status_value {
    3337             :   ulong txn_idx;
    3338             :   ulong statuses_len;
    3339             :   fd_cache_status_t * statuses;
    3340             : };
    3341             : typedef struct fd_status_value fd_status_value_t;
    3342             : #define FD_STATUS_VALUE_ALIGN alignof(fd_status_value_t)
    3343             : 
    3344             : /* Encoded Size: Dynamic */
    3345             : struct fd_status_pair {
    3346             :   fd_hash_t hash;
    3347             :   fd_status_value_t value;
    3348             : };
    3349             : typedef struct fd_status_pair fd_status_pair_t;
    3350           0 : #define FD_STATUS_PAIR_ALIGN alignof(fd_status_pair_t)
    3351             : 
    3352             : /* Encoded Size: Dynamic */
    3353             : struct fd_slot_delta {
    3354             :   ulong slot;
    3355             :   uchar is_root;
    3356             :   ulong slot_delta_vec_len;
    3357             :   fd_status_pair_t * slot_delta_vec;
    3358             : };
    3359             : typedef struct fd_slot_delta fd_slot_delta_t;
    3360           0 : #define FD_SLOT_DELTA_ALIGN alignof(fd_slot_delta_t)
    3361             : 
    3362             : /* Encoded Size: Dynamic */
    3363             : struct fd_bank_slot_deltas {
    3364             :   ulong slot_deltas_len;
    3365             :   fd_slot_delta_t * slot_deltas;
    3366             : };
    3367             : typedef struct fd_bank_slot_deltas fd_bank_slot_deltas_t;
    3368             : #define FD_BANK_SLOT_DELTAS_ALIGN alignof(fd_bank_slot_deltas_t)
    3369             : 
    3370             : /* https://github.com/anza-xyz/agave/blob/7117ed9653ce19e8b2dea108eff1f3eb6a3378a7/runtime/src/bank/partitioned_epoch_rewards/mod.rs#L85 */
    3371             : /* Encoded Size: Fixed (60 bytes) */
    3372             : struct fd_pubkey_rewardinfo_pair {
    3373             :   fd_pubkey_t pubkey;
    3374             :   fd_reward_info_t reward_info;
    3375             : };
    3376             : typedef struct fd_pubkey_rewardinfo_pair fd_pubkey_rewardinfo_pair_t;
    3377             : #define FD_PUBKEY_REWARDINFO_PAIR_ALIGN alignof(fd_pubkey_rewardinfo_pair_t)
    3378             : 
    3379             : /* Encoded Size: Dynamic */
    3380             : struct fd_optional_account {
    3381             :   fd_solana_account_t * account;
    3382             : };
    3383             : typedef struct fd_optional_account fd_optional_account_t;
    3384             : #define FD_OPTIONAL_ACCOUNT_ALIGN alignof(fd_optional_account_t)
    3385             : 
    3386             : /* https://github.com/anza-xyz/agave/blob/cbc8320d35358da14d79ebcada4dfb6756ffac79/programs/stake/src/points.rs#L27 */
    3387             : /* Encoded Size: Fixed (25 bytes) */
    3388             : struct fd_calculated_stake_points {
    3389             :   uint128 points;
    3390             :   ulong new_credits_observed;
    3391             :   uchar force_credits_update_with_skipped_reward;
    3392             : };
    3393             : typedef struct fd_calculated_stake_points fd_calculated_stake_points_t;
    3394             : #define FD_CALCULATED_STAKE_POINTS_ALIGN alignof(fd_calculated_stake_points_t)
    3395             : 
    3396             : /* https://github.com/anza-xyz/agave/blob/cbc8320d35358da14d79ebcada4dfb6756ffac79/programs/stake/src/rewards.rs#L24 */
    3397             : /* Encoded Size: Fixed (24 bytes) */
    3398             : struct fd_calculated_stake_rewards {
    3399             :   ulong staker_rewards;
    3400             :   ulong voter_rewards;
    3401             :   ulong new_credits_observed;
    3402             : };
    3403             : typedef struct fd_calculated_stake_rewards fd_calculated_stake_rewards_t;
    3404             : #define FD_CALCULATED_STAKE_REWARDS_ALIGN alignof(fd_calculated_stake_rewards_t)
    3405             : 
    3406             : /* https://github.com/anza-xyz/agave/blob/v2.0.3/ledger/src/blockstore_meta.rs#L150-L156 */
    3407             : /* Encoded Size: Dynamic */
    3408             : struct fd_duplicate_slot_proof {
    3409             :   ulong shred1_len;
    3410             :   uchar* shred1;
    3411             :   ulong shred2_len;
    3412             :   uchar* shred2;
    3413             : };
    3414             : typedef struct fd_duplicate_slot_proof fd_duplicate_slot_proof_t;
    3415             : #define FD_DUPLICATE_SLOT_PROOF_ALIGN alignof(fd_duplicate_slot_proof_t)
    3416             : 
    3417             : /* Encoded Size: Fixed (104 bytes) */
    3418             : struct fd_epoch_info_pair {
    3419             :   fd_pubkey_t account;
    3420             :   fd_stake_t stake;
    3421             : };
    3422             : typedef struct fd_epoch_info_pair fd_epoch_info_pair_t;
    3423           0 : #define FD_EPOCH_INFO_PAIR_ALIGN alignof(fd_epoch_info_pair_t)
    3424             : 
    3425             : /* Encoded Size: Dynamic */
    3426             : struct fd_vote_info_pair {
    3427             :   fd_pubkey_t account;
    3428             :   fd_vote_state_versioned_t state;
    3429             : };
    3430             : typedef struct fd_vote_info_pair fd_vote_info_pair_t;
    3431             : #define FD_VOTE_INFO_PAIR_ALIGN alignof(fd_vote_info_pair_t)
    3432             : 
    3433             : typedef struct fd_vote_info_pair_t_mapnode fd_vote_info_pair_t_mapnode_t;
    3434             : #define REDBLK_T fd_vote_info_pair_t_mapnode_t
    3435             : #define REDBLK_NAME fd_vote_info_pair_t_map
    3436             : #define REDBLK_IMPL_STYLE 1
    3437             : #include "../../util/tmpl/fd_redblack.c"
    3438             : struct fd_vote_info_pair_t_mapnode {
    3439             :     fd_vote_info_pair_t elem;
    3440             :     ulong redblack_parent;
    3441             :     ulong redblack_left;
    3442             :     ulong redblack_right;
    3443             :     int redblack_color;
    3444             : };
    3445             : static inline fd_vote_info_pair_t_mapnode_t *
    3446           0 : fd_vote_info_pair_t_map_join_new( void * * alloc_mem, ulong len ) {
    3447           0 :   if( FD_UNLIKELY( 0 == len ) ) len = 1; // prevent underflow
    3448           0 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_vote_info_pair_t_map_align() );
    3449           0 :   void * map_mem = *alloc_mem;
    3450           0 :   *alloc_mem = (uchar *)*alloc_mem + fd_vote_info_pair_t_map_footprint( len );
    3451           0 :   return fd_vote_info_pair_t_map_join( fd_vote_info_pair_t_map_new( map_mem, len ) );
    3452           0 : }
    3453             : /* Encoded Size: Dynamic */
    3454             : struct fd_epoch_info {
    3455             :   ulong stake_infos_len;
    3456             :   fd_epoch_info_pair_t * stake_infos;
    3457             :   fd_vote_info_pair_t_mapnode_t * vote_states_pool;
    3458             :   fd_vote_info_pair_t_mapnode_t * vote_states_root;
    3459             :   ulong stake_infos_new_keys_start_idx;
    3460             : };
    3461             : typedef struct fd_epoch_info fd_epoch_info_t;
    3462             : #define FD_EPOCH_INFO_ALIGN alignof(fd_epoch_info_t)
    3463             : 
    3464             : /* https://github.com/anza-xyz/agave/blob/v2.2.0/cost-model/src/transaction_cost.rs#L153-L161 */
    3465             : /* Encoded Size: Fixed (48 bytes) */
    3466             : struct fd_usage_cost_details {
    3467             :   ulong signature_cost;
    3468             :   ulong write_lock_cost;
    3469             :   ulong data_bytes_cost;
    3470             :   ulong programs_execution_cost;
    3471             :   ulong loaded_accounts_data_size_cost;
    3472             :   ulong allocated_accounts_data_size;
    3473             : };
    3474             : typedef struct fd_usage_cost_details fd_usage_cost_details_t;
    3475             : #define FD_USAGE_COST_DETAILS_ALIGN alignof(fd_usage_cost_details_t)
    3476             : 
    3477             : union fd_transaction_cost_inner {
    3478             :   fd_usage_cost_details_t transaction;
    3479             : };
    3480             : typedef union fd_transaction_cost_inner fd_transaction_cost_inner_t;
    3481             : 
    3482             : /* https://github.com/anza-xyz/agave/blob/v2.2.0/cost-model/src/transaction_cost.rs#L20-L23 */
    3483             : struct fd_transaction_cost {
    3484             :   uint discriminant;
    3485             :   fd_transaction_cost_inner_t inner;
    3486             : };
    3487             : typedef struct fd_transaction_cost fd_transaction_cost_t;
    3488             : #define FD_TRANSACTION_COST_ALIGN alignof(fd_transaction_cost_t)
    3489             : 
    3490             : /* Encoded Size: Fixed (40 bytes) */
    3491             : struct fd_account_costs_pair {
    3492             :   fd_pubkey_t key;
    3493             :   ulong cost;
    3494             : };
    3495             : typedef struct fd_account_costs_pair fd_account_costs_pair_t;
    3496             : #define FD_ACCOUNT_COSTS_PAIR_ALIGN alignof(fd_account_costs_pair_t)
    3497             : 
    3498             : typedef struct fd_account_costs_pair_t_mapnode fd_account_costs_pair_t_mapnode_t;
    3499             : #define REDBLK_T fd_account_costs_pair_t_mapnode_t
    3500             : #define REDBLK_NAME fd_account_costs_pair_t_map
    3501             : #define REDBLK_IMPL_STYLE 1
    3502             : #include "../../util/tmpl/fd_redblack.c"
    3503             : struct fd_account_costs_pair_t_mapnode {
    3504             :     fd_account_costs_pair_t elem;
    3505             :     ulong redblack_parent;
    3506             :     ulong redblack_left;
    3507             :     ulong redblack_right;
    3508             :     int redblack_color;
    3509             : };
    3510             : static inline fd_account_costs_pair_t_mapnode_t *
    3511           0 : fd_account_costs_pair_t_map_join_new( void * * alloc_mem, ulong len ) {
    3512           0 :   if( FD_UNLIKELY( 0 == len ) ) len = 1; // prevent underflow
    3513           0 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_account_costs_pair_t_map_align() );
    3514           0 :   void * map_mem = *alloc_mem;
    3515           0 :   *alloc_mem = (uchar *)*alloc_mem + fd_account_costs_pair_t_map_footprint( len );
    3516           0 :   return fd_account_costs_pair_t_map_join( fd_account_costs_pair_t_map_new( map_mem, len ) );
    3517           0 : }
    3518             : /* Encoded Size: Dynamic */
    3519             : struct fd_account_costs {
    3520             :   fd_account_costs_pair_t_mapnode_t * account_costs_pool;
    3521             :   fd_account_costs_pair_t_mapnode_t * account_costs_root;
    3522             : };
    3523             : typedef struct fd_account_costs fd_account_costs_t;
    3524             : #define FD_ACCOUNT_COSTS_ALIGN alignof(fd_account_costs_t)
    3525             : 
    3526             : /* https://github.com/anza-xyz/agave/blob/v2.2.0/cost-model/src/cost_tracker.rs#L62-L79 */
    3527             : /* Encoded Size: Dynamic */
    3528             : struct fd_cost_tracker {
    3529             :   ulong account_cost_limit;
    3530             :   ulong block_cost_limit;
    3531             :   ulong vote_cost_limit;
    3532             :   fd_account_costs_t cost_by_writable_accounts;
    3533             :   ulong block_cost;
    3534             :   ulong vote_cost;
    3535             :   ulong transaction_count;
    3536             :   ulong allocated_accounts_data_size;
    3537             :   ulong transaction_signature_count;
    3538             :   ulong secp256k1_instruction_signature_count;
    3539             :   ulong ed25519_instruction_signature_count;
    3540             :   ulong secp256r1_instruction_signature_count;
    3541             : };
    3542             : typedef struct fd_cost_tracker fd_cost_tracker_t;
    3543           0 : #define FD_COST_TRACKER_ALIGN alignof(fd_cost_tracker_t)
    3544             : 
    3545             : /* Encoded Size: Fixed (16 bytes) */
    3546             : struct fd_rent_paying {
    3547             :   ulong lamports;
    3548             :   ulong data_size;
    3549             : };
    3550             : typedef struct fd_rent_paying fd_rent_paying_t;
    3551             : #define FD_RENT_PAYING_ALIGN alignof(fd_rent_paying_t)
    3552             : 
    3553             : union fd_rent_state_inner {
    3554             :   fd_rent_paying_t rent_paying;
    3555             : };
    3556             : typedef union fd_rent_state_inner fd_rent_state_inner_t;
    3557             : 
    3558             : /* https://github.com/anza-xyz/agave/blob/v2.2.13/svm-rent-collector/src/rent_state.rs#L5-L15 */
    3559             : struct fd_rent_state {
    3560             :   uint discriminant;
    3561             :   fd_rent_state_inner_t inner;
    3562             : };
    3563             : typedef struct fd_rent_state fd_rent_state_t;
    3564             : #define FD_RENT_STATE_ALIGN alignof(fd_rent_state_t)
    3565             : 
    3566             : 
    3567             : FD_PROTOTYPES_BEGIN
    3568             : 
    3569          24 : static inline void fd_hash_new( fd_hash_t * self ) { (void)self; }
    3570             : int fd_hash_encode( fd_hash_t const * self, fd_bincode_encode_ctx_t * ctx );
    3571             : void fd_hash_walk( void * w, fd_hash_t const * self, fd_types_walk_fn_t fun, const char * name, uint level, uint varint );
    3572           0 : static inline ulong fd_hash_size( fd_hash_t const * self ) { (void)self; return sizeof(fd_hash_t); }
    3573           0 : static inline ulong fd_hash_align( void ) { return alignof(fd_hash_t); }
    3574             : int fd_hash_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3575             : void * fd_hash_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3576             : 
    3577          27 : static inline void fd_signature_new( fd_signature_t * self ) { (void)self; }
    3578             : int fd_signature_encode( fd_signature_t const * self, fd_bincode_encode_ctx_t * ctx );
    3579             : void fd_signature_walk( void * w, fd_signature_t const * self, fd_types_walk_fn_t fun, const char * name, uint level, uint varint );
    3580           0 : static inline ulong fd_signature_size( fd_signature_t const * self ) { (void)self; return sizeof(fd_signature_t); }
    3581           0 : static inline ulong fd_signature_align( void ) { return alignof(fd_signature_t); }
    3582             : int fd_signature_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3583             : void * fd_signature_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3584             : 
    3585           0 : static inline void fd_gossip_ip4_addr_new( fd_gossip_ip4_addr_t * self ) { (void)self; }
    3586             : int fd_gossip_ip4_addr_encode( fd_gossip_ip4_addr_t const * self, fd_bincode_encode_ctx_t * ctx );
    3587             : void fd_gossip_ip4_addr_walk( void * w, fd_gossip_ip4_addr_t const * self, fd_types_walk_fn_t fun, const char * name, uint level, uint varint );
    3588           0 : static inline ulong fd_gossip_ip4_addr_size( fd_gossip_ip4_addr_t const * self ) { (void)self; return sizeof(fd_gossip_ip4_addr_t); }
    3589           0 : static inline ulong fd_gossip_ip4_addr_align( void ) { return alignof(fd_gossip_ip4_addr_t); }
    3590             : int fd_gossip_ip4_addr_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3591             : void * fd_gossip_ip4_addr_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3592             : 
    3593           0 : static inline void fd_gossip_ip6_addr_new( fd_gossip_ip6_addr_t * self ) { (void)self; }
    3594             : int fd_gossip_ip6_addr_encode( fd_gossip_ip6_addr_t const * self, fd_bincode_encode_ctx_t * ctx );
    3595             : void fd_gossip_ip6_addr_walk( void * w, fd_gossip_ip6_addr_t const * self, fd_types_walk_fn_t fun, const char * name, uint level, uint varint );
    3596           0 : static inline ulong fd_gossip_ip6_addr_size( fd_gossip_ip6_addr_t const * self ) { (void)self; return sizeof(fd_gossip_ip6_addr_t); }
    3597           0 : static inline ulong fd_gossip_ip6_addr_align( void ) { return alignof(fd_gossip_ip6_addr_t); }
    3598             : int fd_gossip_ip6_addr_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3599             : void * fd_gossip_ip6_addr_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3600             : 
    3601             : void fd_feature_new( fd_feature_t * self );
    3602             : int fd_feature_encode( fd_feature_t const * self, fd_bincode_encode_ctx_t * ctx );
    3603             : void fd_feature_walk( void * w, fd_feature_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3604             : ulong fd_feature_size( fd_feature_t const * self );
    3605           0 : static inline ulong fd_feature_align( void ) { return FD_FEATURE_ALIGN; }
    3606             : int fd_feature_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3607             : void * fd_feature_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3608             : 
    3609           0 : static inline void fd_fee_calculator_new( fd_fee_calculator_t * self ) { fd_memset( self, 0, sizeof(fd_fee_calculator_t) ); }
    3610             : int fd_fee_calculator_encode( fd_fee_calculator_t const * self, fd_bincode_encode_ctx_t * ctx );
    3611             : 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 );
    3612           0 : static inline ulong fd_fee_calculator_size( fd_fee_calculator_t const * self ) { (void)self; return 8UL; }
    3613           0 : static inline ulong fd_fee_calculator_align( void ) { return FD_FEE_CALCULATOR_ALIGN; }
    3614           0 : static inline int fd_fee_calculator_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3615           0 :   *total_sz += sizeof(fd_fee_calculator_t);
    3616           0 :   if( (ulong)ctx->data + 8UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3617           0 :   return 0;
    3618           0 : }
    3619             : void * fd_fee_calculator_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3620             : 
    3621           0 : static inline void fd_hash_age_new( fd_hash_age_t * self ) { fd_memset( self, 0, sizeof(fd_hash_age_t) ); }
    3622             : int fd_hash_age_encode( fd_hash_age_t const * self, fd_bincode_encode_ctx_t * ctx );
    3623             : void fd_hash_age_walk( void * w, fd_hash_age_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3624           0 : static inline ulong fd_hash_age_size( fd_hash_age_t const * self ) { (void)self; return 24UL; }
    3625           0 : static inline ulong fd_hash_age_align( void ) { return FD_HASH_AGE_ALIGN; }
    3626           0 : static inline int fd_hash_age_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3627           0 :   *total_sz += sizeof(fd_hash_age_t);
    3628           0 :   if( (ulong)ctx->data + 24UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3629           0 :   return 0;
    3630           0 : }
    3631             : void * fd_hash_age_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3632             : 
    3633           0 : static inline void fd_hash_hash_age_pair_new( fd_hash_hash_age_pair_t * self ) { fd_memset( self, 0, sizeof(fd_hash_hash_age_pair_t) ); }
    3634             : int fd_hash_hash_age_pair_encode( fd_hash_hash_age_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
    3635             : void fd_hash_hash_age_pair_walk( void * w, fd_hash_hash_age_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3636           0 : static inline ulong fd_hash_hash_age_pair_size( fd_hash_hash_age_pair_t const * self ) { (void)self; return 56UL; }
    3637           0 : static inline ulong fd_hash_hash_age_pair_align( void ) { return FD_HASH_HASH_AGE_PAIR_ALIGN; }
    3638           0 : static inline int fd_hash_hash_age_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3639           0 :   *total_sz += sizeof(fd_hash_hash_age_pair_t);
    3640           0 :   if( (ulong)ctx->data + 56UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3641           0 :   return 0;
    3642           0 : }
    3643             : void * fd_hash_hash_age_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3644             : 
    3645             : void fd_block_hash_vec_new( fd_block_hash_vec_t * self );
    3646             : int fd_block_hash_vec_encode( fd_block_hash_vec_t const * self, fd_bincode_encode_ctx_t * ctx );
    3647             : void fd_block_hash_vec_walk( void * w, fd_block_hash_vec_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3648             : ulong fd_block_hash_vec_size( fd_block_hash_vec_t const * self );
    3649           0 : static inline ulong fd_block_hash_vec_align( void ) { return FD_BLOCK_HASH_VEC_ALIGN; }
    3650             : int fd_block_hash_vec_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3651             : void * fd_block_hash_vec_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3652             : void * fd_block_hash_vec_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    3653             : int fd_block_hash_vec_encode_global( fd_block_hash_vec_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    3654             : ulong fd_block_hash_vec_size_global( fd_block_hash_vec_global_t const * self );
    3655             : 
    3656          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) ); }
    3657             : int fd_fee_rate_governor_encode( fd_fee_rate_governor_t const * self, fd_bincode_encode_ctx_t * ctx );
    3658             : 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 );
    3659           0 : static inline ulong fd_fee_rate_governor_size( fd_fee_rate_governor_t const * self ) { (void)self; return 33UL; }
    3660           0 : static inline ulong fd_fee_rate_governor_align( void ) { return FD_FEE_RATE_GOVERNOR_ALIGN; }
    3661           0 : static inline int fd_fee_rate_governor_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3662           0 :   *total_sz += sizeof(fd_fee_rate_governor_t);
    3663           0 :   if( (ulong)ctx->data + 33UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3664           0 :   return 0;
    3665           0 : }
    3666             : void * fd_fee_rate_governor_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3667             : 
    3668           0 : static inline void fd_slot_pair_new( fd_slot_pair_t * self ) { fd_memset( self, 0, sizeof(fd_slot_pair_t) ); }
    3669             : int fd_slot_pair_encode( fd_slot_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
    3670             : 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 );
    3671           0 : static inline ulong fd_slot_pair_size( fd_slot_pair_t const * self ) { (void)self; return 16UL; }
    3672           0 : static inline ulong fd_slot_pair_align( void ) { return FD_SLOT_PAIR_ALIGN; }
    3673           0 : static inline int fd_slot_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3674           0 :   *total_sz += sizeof(fd_slot_pair_t);
    3675           0 :   if( (ulong)ctx->data + 16UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3676           0 :   return 0;
    3677           0 : }
    3678             : void * fd_slot_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3679             : 
    3680             : void fd_hard_forks_new( fd_hard_forks_t * self );
    3681             : int fd_hard_forks_encode( fd_hard_forks_t const * self, fd_bincode_encode_ctx_t * ctx );
    3682             : 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 );
    3683             : ulong fd_hard_forks_size( fd_hard_forks_t const * self );
    3684           0 : static inline ulong fd_hard_forks_align( void ) { return FD_HARD_FORKS_ALIGN; }
    3685             : int fd_hard_forks_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3686             : void * fd_hard_forks_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3687             : void * fd_hard_forks_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    3688             : int fd_hard_forks_encode_global( fd_hard_forks_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    3689             : ulong fd_hard_forks_size_global( fd_hard_forks_global_t const * self );
    3690             : 
    3691          12 : static inline void fd_inflation_new( fd_inflation_t * self ) { fd_memset( self, 0, sizeof(fd_inflation_t) ); }
    3692             : int fd_inflation_encode( fd_inflation_t const * self, fd_bincode_encode_ctx_t * ctx );
    3693             : void fd_inflation_walk( void * w, fd_inflation_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3694           0 : static inline ulong fd_inflation_size( fd_inflation_t const * self ) { (void)self; return 48UL; }
    3695           0 : static inline ulong fd_inflation_align( void ) { return FD_INFLATION_ALIGN; }
    3696           0 : static inline int fd_inflation_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3697           0 :   *total_sz += sizeof(fd_inflation_t);
    3698           0 :   if( (ulong)ctx->data + 48UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3699           0 :   return 0;
    3700           0 : }
    3701             : void * fd_inflation_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3702             : 
    3703          12 : static inline void fd_rent_new( fd_rent_t * self ) { fd_memset( self, 0, sizeof(fd_rent_t) ); }
    3704             : int fd_rent_encode( fd_rent_t const * self, fd_bincode_encode_ctx_t * ctx );
    3705             : void fd_rent_walk( void * w, fd_rent_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3706           0 : static inline ulong fd_rent_size( fd_rent_t const * self ) { (void)self; return 17UL; }
    3707           3 : static inline ulong fd_rent_align( void ) { return FD_RENT_ALIGN; }
    3708           3 : static inline int fd_rent_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3709           3 :   *total_sz += sizeof(fd_rent_t);
    3710           3 :   if( (ulong)ctx->data + 17UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3711           3 :   return 0;
    3712           3 : }
    3713             : void * fd_rent_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3714             : 
    3715             : void fd_epoch_schedule_new( fd_epoch_schedule_t * self );
    3716             : int fd_epoch_schedule_encode( fd_epoch_schedule_t const * self, fd_bincode_encode_ctx_t * ctx );
    3717             : 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 );
    3718           0 : static inline ulong fd_epoch_schedule_size( fd_epoch_schedule_t const * self ) { (void)self; return 33UL; }
    3719           3 : static inline ulong fd_epoch_schedule_align( void ) { return FD_EPOCH_SCHEDULE_ALIGN; }
    3720             : int fd_epoch_schedule_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3721             : void * fd_epoch_schedule_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3722             : 
    3723             : void fd_rent_collector_new( fd_rent_collector_t * self );
    3724             : int fd_rent_collector_encode( fd_rent_collector_t const * self, fd_bincode_encode_ctx_t * ctx );
    3725             : 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 );
    3726           0 : static inline ulong fd_rent_collector_size( fd_rent_collector_t const * self ) { (void)self; return 66UL; }
    3727           0 : static inline ulong fd_rent_collector_align( void ) { return FD_RENT_COLLECTOR_ALIGN; }
    3728             : int fd_rent_collector_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3729             : void * fd_rent_collector_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3730             : 
    3731           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) ); }
    3732             : int fd_stake_history_entry_encode( fd_stake_history_entry_t const * self, fd_bincode_encode_ctx_t * ctx );
    3733             : 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 );
    3734           0 : static inline ulong fd_stake_history_entry_size( fd_stake_history_entry_t const * self ) { (void)self; return 24UL; }
    3735           0 : static inline ulong fd_stake_history_entry_align( void ) { return FD_STAKE_HISTORY_ENTRY_ALIGN; }
    3736           0 : static inline int fd_stake_history_entry_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3737           0 :   *total_sz += sizeof(fd_stake_history_entry_t);
    3738           0 :   if( (ulong)ctx->data + 24UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3739           0 :   return 0;
    3740           0 : }
    3741             : void * fd_stake_history_entry_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3742             : 
    3743        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) ); }
    3744             : int fd_epoch_stake_history_entry_pair_encode( fd_epoch_stake_history_entry_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
    3745             : 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 );
    3746           0 : static inline ulong fd_epoch_stake_history_entry_pair_size( fd_epoch_stake_history_entry_pair_t const * self ) { (void)self; return 32UL; }
    3747           0 : static inline ulong fd_epoch_stake_history_entry_pair_align( void ) { return FD_EPOCH_STAKE_HISTORY_ENTRY_PAIR_ALIGN; }
    3748           0 : static inline int fd_epoch_stake_history_entry_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3749           0 :   *total_sz += sizeof(fd_epoch_stake_history_entry_pair_t);
    3750           0 :   if( (ulong)ctx->data + 32UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3751           0 :   return 0;
    3752           0 : }
    3753             : void * fd_epoch_stake_history_entry_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3754             : 
    3755             : void fd_stake_history_new( fd_stake_history_t * self );
    3756             : int fd_stake_history_encode( fd_stake_history_t const * self, fd_bincode_encode_ctx_t * ctx );
    3757             : 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 );
    3758           0 : static inline ulong fd_stake_history_size( fd_stake_history_t const * self ) { (void)self; return 16392UL; }
    3759           9 : static inline ulong fd_stake_history_align( void ) { return FD_STAKE_HISTORY_ALIGN; }
    3760             : int fd_stake_history_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3761             : void * fd_stake_history_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3762             : 
    3763             : void fd_solana_account_new( fd_solana_account_t * self );
    3764             : int fd_solana_account_encode( fd_solana_account_t const * self, fd_bincode_encode_ctx_t * ctx );
    3765             : 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 );
    3766             : ulong fd_solana_account_size( fd_solana_account_t const * self );
    3767           0 : static inline ulong fd_solana_account_align( void ) { return FD_SOLANA_ACCOUNT_ALIGN; }
    3768             : int fd_solana_account_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3769             : void * fd_solana_account_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3770             : void * fd_solana_account_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    3771             : int fd_solana_account_encode_global( fd_solana_account_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    3772             : ulong fd_solana_account_size_global( fd_solana_account_global_t const * self );
    3773             : 
    3774           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) ); }
    3775             : int fd_solana_account_stored_meta_encode( fd_solana_account_stored_meta_t const * self, fd_bincode_encode_ctx_t * ctx );
    3776             : 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 );
    3777           0 : static inline ulong fd_solana_account_stored_meta_size( fd_solana_account_stored_meta_t const * self ) { (void)self; return 48UL; }
    3778           0 : static inline ulong fd_solana_account_stored_meta_align( void ) { return FD_SOLANA_ACCOUNT_STORED_META_ALIGN; }
    3779           0 : static inline int fd_solana_account_stored_meta_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3780           0 :   *total_sz += sizeof(fd_solana_account_stored_meta_t);
    3781           0 :   if( (ulong)ctx->data + 48UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3782           0 :   return 0;
    3783           0 : }
    3784             : void * fd_solana_account_stored_meta_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3785             : 
    3786             : void fd_solana_account_meta_new( fd_solana_account_meta_t * self );
    3787             : int fd_solana_account_meta_encode( fd_solana_account_meta_t const * self, fd_bincode_encode_ctx_t * ctx );
    3788             : 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 );
    3789           0 : static inline ulong fd_solana_account_meta_size( fd_solana_account_meta_t const * self ) { (void)self; return 52UL; }
    3790           0 : static inline ulong fd_solana_account_meta_align( void ) { return FD_SOLANA_ACCOUNT_META_ALIGN; }
    3791             : int fd_solana_account_meta_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3792             : void * fd_solana_account_meta_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3793             : 
    3794             : void fd_solana_account_hdr_new( fd_solana_account_hdr_t * self );
    3795             : int fd_solana_account_hdr_encode( fd_solana_account_hdr_t const * self, fd_bincode_encode_ctx_t * ctx );
    3796             : 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 );
    3797           0 : static inline ulong fd_solana_account_hdr_size( fd_solana_account_hdr_t const * self ) { (void)self; return 136UL; }
    3798           0 : static inline ulong fd_solana_account_hdr_align( void ) { return FD_SOLANA_ACCOUNT_HDR_ALIGN; }
    3799             : int fd_solana_account_hdr_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3800             : void * fd_solana_account_hdr_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3801             : 
    3802             : void fd_account_meta_new( fd_account_meta_t * self );
    3803             : int fd_account_meta_encode( fd_account_meta_t const * self, fd_bincode_encode_ctx_t * ctx );
    3804             : void fd_account_meta_walk( void * w, fd_account_meta_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3805           0 : static inline ulong fd_account_meta_size( fd_account_meta_t const * self ) { (void)self; return 104UL; }
    3806           0 : static inline ulong fd_account_meta_align( void ) { return FD_ACCOUNT_META_ALIGN; }
    3807             : int fd_account_meta_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3808             : void * fd_account_meta_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3809             : 
    3810             : void fd_vote_accounts_pair_new( fd_vote_accounts_pair_t * self );
    3811             : int fd_vote_accounts_pair_encode( fd_vote_accounts_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
    3812             : void fd_vote_accounts_pair_walk( void * w, fd_vote_accounts_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3813             : ulong fd_vote_accounts_pair_size( fd_vote_accounts_pair_t const * self );
    3814           0 : static inline ulong fd_vote_accounts_pair_align( void ) { return FD_VOTE_ACCOUNTS_PAIR_ALIGN; }
    3815             : int fd_vote_accounts_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3816             : void * fd_vote_accounts_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3817             : void * fd_vote_accounts_pair_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    3818             : int fd_vote_accounts_pair_encode_global( fd_vote_accounts_pair_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    3819             : ulong fd_vote_accounts_pair_size_global( fd_vote_accounts_pair_global_t const * self );
    3820             : 
    3821             : void fd_vote_accounts_new( fd_vote_accounts_t * self );
    3822             : int fd_vote_accounts_encode( fd_vote_accounts_t const * self, fd_bincode_encode_ctx_t * ctx );
    3823             : void fd_vote_accounts_walk( void * w, fd_vote_accounts_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3824             : ulong fd_vote_accounts_size( fd_vote_accounts_t const * self );
    3825           0 : static inline ulong fd_vote_accounts_align( void ) { return FD_VOTE_ACCOUNTS_ALIGN; }
    3826             : int fd_vote_accounts_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3827             : void * fd_vote_accounts_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3828             : void * fd_vote_accounts_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    3829             : int fd_vote_accounts_encode_global( fd_vote_accounts_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    3830             : ulong fd_vote_accounts_size_global( fd_vote_accounts_global_t const * self );
    3831             : 
    3832           0 : static inline void fd_account_keys_pair_new( fd_account_keys_pair_t * self ) { fd_memset( self, 0, sizeof(fd_account_keys_pair_t) ); }
    3833             : int fd_account_keys_pair_encode( fd_account_keys_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
    3834             : void fd_account_keys_pair_walk( void * w, fd_account_keys_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3835           0 : static inline ulong fd_account_keys_pair_size( fd_account_keys_pair_t const * self ) { (void)self; return 33UL; }
    3836           0 : static inline ulong fd_account_keys_pair_align( void ) { return FD_ACCOUNT_KEYS_PAIR_ALIGN; }
    3837           0 : static inline int fd_account_keys_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3838           0 :   *total_sz += sizeof(fd_account_keys_pair_t);
    3839           0 :   if( (ulong)ctx->data + 33UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3840           0 :   return 0;
    3841           0 : }
    3842             : void * fd_account_keys_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3843             : 
    3844             : void fd_account_keys_new( fd_account_keys_t * self );
    3845             : int fd_account_keys_encode( fd_account_keys_t const * self, fd_bincode_encode_ctx_t * ctx );
    3846             : void fd_account_keys_walk( void * w, fd_account_keys_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3847             : ulong fd_account_keys_size( fd_account_keys_t const * self );
    3848           0 : static inline ulong fd_account_keys_align( void ) { return FD_ACCOUNT_KEYS_ALIGN; }
    3849             : int fd_account_keys_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3850             : void * fd_account_keys_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3851             : void * fd_account_keys_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    3852             : int fd_account_keys_encode_global( fd_account_keys_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    3853             : ulong fd_account_keys_size_global( fd_account_keys_global_t const * self );
    3854             : 
    3855           0 : static inline void fd_delegation_new( fd_delegation_t * self ) { fd_memset( self, 0, sizeof(fd_delegation_t) ); }
    3856             : int fd_delegation_encode( fd_delegation_t const * self, fd_bincode_encode_ctx_t * ctx );
    3857             : void fd_delegation_walk( void * w, fd_delegation_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3858           0 : static inline ulong fd_delegation_size( fd_delegation_t const * self ) { (void)self; return 64UL; }
    3859           0 : static inline ulong fd_delegation_align( void ) { return FD_DELEGATION_ALIGN; }
    3860           0 : static inline int fd_delegation_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3861           0 :   *total_sz += sizeof(fd_delegation_t);
    3862           0 :   if( (ulong)ctx->data + 64UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3863           0 :   return 0;
    3864           0 : }
    3865             : void * fd_delegation_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3866             : 
    3867           0 : static inline void fd_delegation_pair_new( fd_delegation_pair_t * self ) { fd_memset( self, 0, sizeof(fd_delegation_pair_t) ); }
    3868             : int fd_delegation_pair_encode( fd_delegation_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
    3869             : void fd_delegation_pair_walk( void * w, fd_delegation_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3870           0 : static inline ulong fd_delegation_pair_size( fd_delegation_pair_t const * self ) { (void)self; return 96UL; }
    3871           0 : static inline ulong fd_delegation_pair_align( void ) { return FD_DELEGATION_PAIR_ALIGN; }
    3872           0 : static inline int fd_delegation_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3873           0 :   *total_sz += sizeof(fd_delegation_pair_t);
    3874           0 :   if( (ulong)ctx->data + 96UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3875           0 :   return 0;
    3876           0 : }
    3877             : void * fd_delegation_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3878             : 
    3879           0 : static inline void fd_stake_new( fd_stake_t * self ) { fd_memset( self, 0, sizeof(fd_stake_t) ); }
    3880             : int fd_stake_encode( fd_stake_t const * self, fd_bincode_encode_ctx_t * ctx );
    3881             : void fd_stake_walk( void * w, fd_stake_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3882           0 : static inline ulong fd_stake_size( fd_stake_t const * self ) { (void)self; return 72UL; }
    3883           0 : static inline ulong fd_stake_align( void ) { return FD_STAKE_ALIGN; }
    3884           0 : static inline int fd_stake_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3885           0 :   *total_sz += sizeof(fd_stake_t);
    3886           0 :   if( (ulong)ctx->data + 72UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3887           0 :   return 0;
    3888           0 : }
    3889             : void * fd_stake_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3890             : 
    3891           0 : static inline void fd_stake_pair_new( fd_stake_pair_t * self ) { fd_memset( self, 0, sizeof(fd_stake_pair_t) ); }
    3892             : int fd_stake_pair_encode( fd_stake_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
    3893             : void fd_stake_pair_walk( void * w, fd_stake_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3894           0 : static inline ulong fd_stake_pair_size( fd_stake_pair_t const * self ) { (void)self; return 104UL; }
    3895           0 : static inline ulong fd_stake_pair_align( void ) { return FD_STAKE_PAIR_ALIGN; }
    3896           0 : static inline int fd_stake_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3897           0 :   *total_sz += sizeof(fd_stake_pair_t);
    3898           0 :   if( (ulong)ctx->data + 104UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3899           0 :   return 0;
    3900           0 : }
    3901             : void * fd_stake_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3902             : 
    3903             : void fd_stakes_new( fd_stakes_t * self );
    3904             : int fd_stakes_encode( fd_stakes_t const * self, fd_bincode_encode_ctx_t * ctx );
    3905             : void fd_stakes_walk( void * w, fd_stakes_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3906             : ulong fd_stakes_size( fd_stakes_t const * self );
    3907           0 : static inline ulong fd_stakes_align( void ) { return FD_STAKES_ALIGN; }
    3908             : int fd_stakes_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3909             : void * fd_stakes_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3910             : void * fd_stakes_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    3911             : int fd_stakes_encode_global( fd_stakes_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    3912             : ulong fd_stakes_size_global( fd_stakes_global_t const * self );
    3913             : 
    3914             : void fd_stakes_stake_new( fd_stakes_stake_t * self );
    3915             : int fd_stakes_stake_encode( fd_stakes_stake_t const * self, fd_bincode_encode_ctx_t * ctx );
    3916             : void fd_stakes_stake_walk( void * w, fd_stakes_stake_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3917             : ulong fd_stakes_stake_size( fd_stakes_stake_t const * self );
    3918           0 : static inline ulong fd_stakes_stake_align( void ) { return FD_STAKES_STAKE_ALIGN; }
    3919             : int fd_stakes_stake_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3920             : void * fd_stakes_stake_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3921             : void * fd_stakes_stake_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    3922             : int fd_stakes_stake_encode_global( fd_stakes_stake_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    3923             : ulong fd_stakes_stake_size_global( fd_stakes_stake_global_t const * self );
    3924             : 
    3925           0 : static inline void fd_bank_incremental_snapshot_persistence_new( fd_bank_incremental_snapshot_persistence_t * self ) { fd_memset( self, 0, sizeof(fd_bank_incremental_snapshot_persistence_t) ); }
    3926             : int fd_bank_incremental_snapshot_persistence_encode( fd_bank_incremental_snapshot_persistence_t const * self, fd_bincode_encode_ctx_t * ctx );
    3927             : void fd_bank_incremental_snapshot_persistence_walk( void * w, fd_bank_incremental_snapshot_persistence_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3928           0 : static inline ulong fd_bank_incremental_snapshot_persistence_size( fd_bank_incremental_snapshot_persistence_t const * self ) { (void)self; return 88UL; }
    3929           0 : static inline ulong fd_bank_incremental_snapshot_persistence_align( void ) { return FD_BANK_INCREMENTAL_SNAPSHOT_PERSISTENCE_ALIGN; }
    3930           0 : static inline int fd_bank_incremental_snapshot_persistence_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3931           0 :   *total_sz += sizeof(fd_bank_incremental_snapshot_persistence_t);
    3932           0 :   if( (ulong)ctx->data + 88UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3933           0 :   return 0;
    3934           0 : }
    3935             : void * fd_bank_incremental_snapshot_persistence_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3936             : 
    3937             : void fd_node_vote_accounts_new( fd_node_vote_accounts_t * self );
    3938             : int fd_node_vote_accounts_encode( fd_node_vote_accounts_t const * self, fd_bincode_encode_ctx_t * ctx );
    3939             : void fd_node_vote_accounts_walk( void * w, fd_node_vote_accounts_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3940             : ulong fd_node_vote_accounts_size( fd_node_vote_accounts_t const * self );
    3941           0 : static inline ulong fd_node_vote_accounts_align( void ) { return FD_NODE_VOTE_ACCOUNTS_ALIGN; }
    3942             : int fd_node_vote_accounts_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3943             : void * fd_node_vote_accounts_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3944             : void * fd_node_vote_accounts_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    3945             : int fd_node_vote_accounts_encode_global( fd_node_vote_accounts_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    3946             : ulong fd_node_vote_accounts_size_global( fd_node_vote_accounts_global_t const * self );
    3947             : 
    3948             : void fd_pubkey_node_vote_accounts_pair_new( fd_pubkey_node_vote_accounts_pair_t * self );
    3949             : int fd_pubkey_node_vote_accounts_pair_encode( fd_pubkey_node_vote_accounts_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
    3950             : void fd_pubkey_node_vote_accounts_pair_walk( void * w, fd_pubkey_node_vote_accounts_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3951             : ulong fd_pubkey_node_vote_accounts_pair_size( fd_pubkey_node_vote_accounts_pair_t const * self );
    3952           0 : static inline ulong fd_pubkey_node_vote_accounts_pair_align( void ) { return FD_PUBKEY_NODE_VOTE_ACCOUNTS_PAIR_ALIGN; }
    3953             : int fd_pubkey_node_vote_accounts_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3954             : void * fd_pubkey_node_vote_accounts_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3955             : void * fd_pubkey_node_vote_accounts_pair_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    3956             : int fd_pubkey_node_vote_accounts_pair_encode_global( fd_pubkey_node_vote_accounts_pair_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    3957             : ulong fd_pubkey_node_vote_accounts_pair_size_global( fd_pubkey_node_vote_accounts_pair_global_t const * self );
    3958             : 
    3959           0 : static inline void fd_pubkey_pubkey_pair_new( fd_pubkey_pubkey_pair_t * self ) { fd_memset( self, 0, sizeof(fd_pubkey_pubkey_pair_t) ); }
    3960             : int fd_pubkey_pubkey_pair_encode( fd_pubkey_pubkey_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
    3961             : void fd_pubkey_pubkey_pair_walk( void * w, fd_pubkey_pubkey_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3962           0 : static inline ulong fd_pubkey_pubkey_pair_size( fd_pubkey_pubkey_pair_t const * self ) { (void)self; return 64UL; }
    3963           0 : static inline ulong fd_pubkey_pubkey_pair_align( void ) { return FD_PUBKEY_PUBKEY_PAIR_ALIGN; }
    3964           0 : static inline int fd_pubkey_pubkey_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3965           0 :   *total_sz += sizeof(fd_pubkey_pubkey_pair_t);
    3966           0 :   if( (ulong)ctx->data + 64UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3967           0 :   return 0;
    3968           0 : }
    3969             : void * fd_pubkey_pubkey_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3970             : 
    3971             : void fd_epoch_stakes_new( fd_epoch_stakes_t * self );
    3972             : int fd_epoch_stakes_encode( fd_epoch_stakes_t const * self, fd_bincode_encode_ctx_t * ctx );
    3973             : void fd_epoch_stakes_walk( void * w, fd_epoch_stakes_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3974             : ulong fd_epoch_stakes_size( fd_epoch_stakes_t const * self );
    3975           0 : static inline ulong fd_epoch_stakes_align( void ) { return FD_EPOCH_STAKES_ALIGN; }
    3976             : int fd_epoch_stakes_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3977             : void * fd_epoch_stakes_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3978             : void * fd_epoch_stakes_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    3979             : int fd_epoch_stakes_encode_global( fd_epoch_stakes_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    3980             : ulong fd_epoch_stakes_size_global( fd_epoch_stakes_global_t const * self );
    3981             : 
    3982             : void fd_epoch_epoch_stakes_pair_new( fd_epoch_epoch_stakes_pair_t * self );
    3983             : int fd_epoch_epoch_stakes_pair_encode( fd_epoch_epoch_stakes_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
    3984             : void fd_epoch_epoch_stakes_pair_walk( void * w, fd_epoch_epoch_stakes_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3985             : ulong fd_epoch_epoch_stakes_pair_size( fd_epoch_epoch_stakes_pair_t const * self );
    3986           0 : static inline ulong fd_epoch_epoch_stakes_pair_align( void ) { return FD_EPOCH_EPOCH_STAKES_PAIR_ALIGN; }
    3987             : int fd_epoch_epoch_stakes_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3988             : void * fd_epoch_epoch_stakes_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3989             : void * fd_epoch_epoch_stakes_pair_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    3990             : int fd_epoch_epoch_stakes_pair_encode_global( fd_epoch_epoch_stakes_pair_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    3991             : ulong fd_epoch_epoch_stakes_pair_size_global( fd_epoch_epoch_stakes_pair_global_t const * self );
    3992             : 
    3993           0 : static inline void fd_pubkey_u64_pair_new( fd_pubkey_u64_pair_t * self ) { fd_memset( self, 0, sizeof(fd_pubkey_u64_pair_t) ); }
    3994             : int fd_pubkey_u64_pair_encode( fd_pubkey_u64_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
    3995             : void fd_pubkey_u64_pair_walk( void * w, fd_pubkey_u64_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3996           0 : static inline ulong fd_pubkey_u64_pair_size( fd_pubkey_u64_pair_t const * self ) { (void)self; return 40UL; }
    3997           0 : static inline ulong fd_pubkey_u64_pair_align( void ) { return FD_PUBKEY_U64_PAIR_ALIGN; }
    3998           0 : static inline int fd_pubkey_u64_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3999           0 :   *total_sz += sizeof(fd_pubkey_u64_pair_t);
    4000           0 :   if( (ulong)ctx->data + 40UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    4001           0 :   return 0;
    4002           0 : }
    4003             : void * fd_pubkey_u64_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4004             : 
    4005             : void fd_unused_accounts_new( fd_unused_accounts_t * self );
    4006             : int fd_unused_accounts_encode( fd_unused_accounts_t const * self, fd_bincode_encode_ctx_t * ctx );
    4007             : void fd_unused_accounts_walk( void * w, fd_unused_accounts_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    4008             : ulong fd_unused_accounts_size( fd_unused_accounts_t const * self );
    4009           0 : static inline ulong fd_unused_accounts_align( void ) { return FD_UNUSED_ACCOUNTS_ALIGN; }
    4010             : int fd_unused_accounts_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4011             : void * fd_unused_accounts_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4012             : void * fd_unused_accounts_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    4013             : int fd_unused_accounts_encode_global( fd_unused_accounts_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    4014             : ulong fd_unused_accounts_size_global( fd_unused_accounts_global_t const * self );
    4015             : 
    4016             : void fd_versioned_bank_new( fd_versioned_bank_t * self );
    4017             : int fd_versioned_bank_encode( fd_versioned_bank_t const * self, fd_bincode_encode_ctx_t * ctx );
    4018             : void fd_versioned_bank_walk( void * w, fd_versioned_bank_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    4019             : ulong fd_versioned_bank_size( fd_versioned_bank_t const * self );
    4020           0 : static inline ulong fd_versioned_bank_align( void ) { return FD_VERSIONED_BANK_ALIGN; }
    4021             : int fd_versioned_bank_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4022             : void * fd_versioned_bank_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4023             : void * fd_versioned_bank_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    4024             : int fd_versioned_bank_encode_global( fd_versioned_bank_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    4025             : ulong fd_versioned_bank_size_global( fd_versioned_bank_global_t const * self );
    4026             : 
    4027           0 : static inline void fd_bank_hash_stats_new( fd_bank_hash_stats_t * self ) { fd_memset( self, 0, sizeof(fd_bank_hash_stats_t) ); }
    4028             : int fd_bank_hash_stats_encode( fd_bank_hash_stats_t const * self, fd_bincode_encode_ctx_t * ctx );
    4029             : void fd_bank_hash_stats_walk( void * w, fd_bank_hash_stats_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    4030           0 : static inline ulong fd_bank_hash_stats_size( fd_bank_hash_stats_t const * self ) { (void)self; return 40UL; }
    4031           0 : static inline ulong fd_bank_hash_stats_align( void ) { return FD_BANK_HASH_STATS_ALIGN; }
    4032           0 : static inline int fd_bank_hash_stats_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    4033           0 :   *total_sz += sizeof(fd_bank_hash_stats_t);
    4034           0 :   if( (ulong)ctx->data + 40UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    4035           0 :   return 0;
    4036           0 : }
    4037             : void * fd_bank_hash_stats_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4038             : 
    4039           0 : static inline void fd_bank_hash_info_new( fd_bank_hash_info_t * self ) { fd_memset( self, 0, sizeof(fd_bank_hash_info_t) ); }
    4040             : int fd_bank_hash_info_encode( fd_bank_hash_info_t const * self, fd_bincode_encode_ctx_t * ctx );
    4041             : void fd_bank_hash_info_walk( void * w, fd_bank_hash_info_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    4042           0 : static inline ulong fd_bank_hash_info_size( fd_bank_hash_info_t const * self ) { (void)self; return 104UL; }
    4043           0 : static inline ulong fd_bank_hash_info_align( void ) { return FD_BANK_HASH_INFO_ALIGN; }
    4044           0 : static inline int fd_bank_hash_info_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    4045           0 :   *total_sz += sizeof(fd_bank_hash_info_t);
    4046           0 :   if( (ulong)ctx->data + 104UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    4047           0 :   return 0;
    4048           0 : }
    4049             : void * fd_bank_hash_info_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4050             : 
    4051           0 : static inline void fd_slot_map_pair_new( fd_slot_map_pair_t * self ) { fd_memset( self, 0, sizeof(fd_slot_map_pair_t) ); }
    4052             : int fd_slot_map_pair_encode( fd_slot_map_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
    4053             : void fd_slot_map_pair_walk( void * w, fd_slot_map_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    4054           0 : static inline ulong fd_slot_map_pair_size( fd_slot_map_pair_t const * self ) { (void)self; return 40UL; }
    4055           0 : static inline ulong fd_slot_map_pair_align( void ) { return FD_SLOT_MAP_PAIR_ALIGN; }
    4056           0 : static inline int fd_slot_map_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    4057           0 :   *total_sz += sizeof(fd_slot_map_pair_t);
    4058           0 :   if( (ulong)ctx->data + 40UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    4059           0 :   return 0;
    4060           0 : }
    4061             : void * fd_slot_map_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4062             : 
    4063           0 : static inline void fd_snapshot_acc_vec_new( fd_snapshot_acc_vec_t * self ) { fd_memset( self, 0, sizeof(fd_snapshot_acc_vec_t) ); }
    4064             : int fd_snapshot_acc_vec_encode( fd_snapshot_acc_vec_t const * self, fd_bincode_encode_ctx_t * ctx );
    4065             : void fd_snapshot_acc_vec_walk( void * w, fd_snapshot_acc_vec_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    4066           0 : static inline ulong fd_snapshot_acc_vec_size( fd_snapshot_acc_vec_t const * self ) { (void)self; return 16UL; }
    4067           0 : static inline ulong fd_snapshot_acc_vec_align( void ) { return FD_SNAPSHOT_ACC_VEC_ALIGN; }
    4068           0 : static inline int fd_snapshot_acc_vec_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    4069           0 :   *total_sz += sizeof(fd_snapshot_acc_vec_t);
    4070           0 :   if( (ulong)ctx->data + 16UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    4071           0 :   return 0;
    4072           0 : }
    4073             : void * fd_snapshot_acc_vec_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4074             : 
    4075             : void fd_snapshot_slot_acc_vecs_new( fd_snapshot_slot_acc_vecs_t * self );
    4076             : int fd_snapshot_slot_acc_vecs_encode( fd_snapshot_slot_acc_vecs_t const * self, fd_bincode_encode_ctx_t * ctx );
    4077             : void fd_snapshot_slot_acc_vecs_walk( void * w, fd_snapshot_slot_acc_vecs_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    4078             : ulong fd_snapshot_slot_acc_vecs_size( fd_snapshot_slot_acc_vecs_t const * self );
    4079           0 : static inline ulong fd_snapshot_slot_acc_vecs_align( void ) { return FD_SNAPSHOT_SLOT_ACC_VECS_ALIGN; }
    4080             : int fd_snapshot_slot_acc_vecs_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4081             : void * fd_snapshot_slot_acc_vecs_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4082             : void * fd_snapshot_slot_acc_vecs_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    4083             : int fd_snapshot_slot_acc_vecs_encode_global( fd_snapshot_slot_acc_vecs_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    4084             : ulong fd_snapshot_slot_acc_vecs_size_global( fd_snapshot_slot_acc_vecs_global_t const * self );
    4085             : 
    4086           0 : static inline void fd_reward_type_new_disc( fd_reward_type_t * self, uint discriminant ) { self->discriminant = discriminant; }
    4087           0 : static inline void fd_reward_type_new( fd_reward_type_t * self ) { self->discriminant = (uint)ULONG_MAX; }
    4088             : int fd_reward_type_encode( fd_reward_type_t const * self, fd_bincode_encode_ctx_t * ctx );
    4089             : 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 );
    4090             : ulong fd_reward_type_size( fd_reward_type_t const * self );
    4091           0 : static inline ulong fd_reward_type_align( void ) { return FD_REWARD_TYPE_ALIGN; }
    4092             : int fd_reward_type_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4093             : void * fd_reward_type_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4094             : 
    4095             : FD_FN_PURE uchar fd_reward_type_is_fee( fd_reward_type_t const * self );
    4096             : FD_FN_PURE uchar fd_reward_type_is_rent( fd_reward_type_t const * self );
    4097             : FD_FN_PURE uchar fd_reward_type_is_staking( fd_reward_type_t const * self );
    4098             : FD_FN_PURE uchar fd_reward_type_is_voting( fd_reward_type_t const * self );
    4099             : enum {
    4100             : fd_reward_type_enum_fee = 0,
    4101             : fd_reward_type_enum_rent = 1,
    4102             : fd_reward_type_enum_staking = 2,
    4103             : fd_reward_type_enum_voting = 3,
    4104             : };
    4105             : void fd_solana_accounts_db_fields_new( fd_solana_accounts_db_fields_t * self );
    4106             : int fd_solana_accounts_db_fields_encode( fd_solana_accounts_db_fields_t const * self, fd_bincode_encode_ctx_t * ctx );
    4107             : void fd_solana_accounts_db_fields_walk( void * w, fd_solana_accounts_db_fields_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    4108             : ulong fd_solana_accounts_db_fields_size( fd_solana_accounts_db_fields_t const * self );
    4109           0 : static inline ulong fd_solana_accounts_db_fields_align( void ) { return FD_SOLANA_ACCOUNTS_DB_FIELDS_ALIGN; }
    4110             : int fd_solana_accounts_db_fields_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4111             : void * fd_solana_accounts_db_fields_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4112             : void * fd_solana_accounts_db_fields_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    4113             : int fd_solana_accounts_db_fields_encode_global( fd_solana_accounts_db_fields_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    4114             : ulong fd_solana_accounts_db_fields_size_global( fd_solana_accounts_db_fields_global_t const * self );
    4115             : 
    4116             : void fd_versioned_epoch_stakes_current_new( fd_versioned_epoch_stakes_current_t * self );
    4117             : int fd_versioned_epoch_stakes_current_encode( fd_versioned_epoch_stakes_current_t const * self, fd_bincode_encode_ctx_t * ctx );
    4118             : void fd_versioned_epoch_stakes_current_walk( void * w, fd_versioned_epoch_stakes_current_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    4119             : ulong fd_versioned_epoch_stakes_current_size( fd_versioned_epoch_stakes_current_t const * self );
    4120           0 : static inline ulong fd_versioned_epoch_stakes_current_align( void ) { return FD_VERSIONED_EPOCH_STAKES_CURRENT_ALIGN; }
    4121             : int fd_versioned_epoch_stakes_current_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4122             : void * fd_versioned_epoch_stakes_current_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4123             : void * fd_versioned_epoch_stakes_current_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    4124             : int fd_versioned_epoch_stakes_current_encode_global( fd_versioned_epoch_stakes_current_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    4125             : ulong fd_versioned_epoch_stakes_current_size_global( fd_versioned_epoch_stakes_current_global_t const * self );
    4126             : 
    4127             : void fd_versioned_epoch_stakes_new_disc( fd_versioned_epoch_stakes_t * self, uint discriminant );
    4128             : void fd_versioned_epoch_stakes_new( fd_versioned_epoch_stakes_t * self );
    4129             : int fd_versioned_epoch_stakes_encode( fd_versioned_epoch_stakes_t const * self, fd_bincode_encode_ctx_t * ctx );
    4130             : void fd_versioned_epoch_stakes_walk( void * w, fd_versioned_epoch_stakes_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    4131             : ulong fd_versioned_epoch_stakes_size( fd_versioned_epoch_stakes_t const * self );
    4132           0 : static inline ulong fd_versioned_epoch_stakes_align( void ) { return FD_VERSIONED_EPOCH_STAKES_ALIGN; }
    4133             : int fd_versioned_epoch_stakes_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4134             : void * fd_versioned_epoch_stakes_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4135             : void * fd_versioned_epoch_stakes_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    4136             : int fd_versioned_epoch_stakes_encode_global( fd_versioned_epoch_stakes_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    4137             : ulong fd_versioned_epoch_stakes_size_global( fd_versioned_epoch_stakes_global_t const * self );
    4138             : 
    4139             : FD_FN_PURE uchar fd_versioned_epoch_stakes_is_Current( fd_versioned_epoch_stakes_t const * self );
    4140             : enum {
    4141             : fd_versioned_epoch_stakes_enum_Current = 0,
    4142             : };
    4143             : void fd_versioned_epoch_stakes_pair_new( fd_versioned_epoch_stakes_pair_t * self );
    4144             : int fd_versioned_epoch_stakes_pair_encode( fd_versioned_epoch_stakes_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
    4145             : void fd_versioned_epoch_stakes_pair_walk( void * w, fd_versioned_epoch_stakes_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    4146             : ulong fd_versioned_epoch_stakes_pair_size( fd_versioned_epoch_stakes_pair_t const * self );
    4147           0 : static inline ulong fd_versioned_epoch_stakes_pair_align( void ) { return FD_VERSIONED_EPOCH_STAKES_PAIR_ALIGN; }
    4148             : int fd_versioned_epoch_stakes_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4149             : void * fd_versioned_epoch_stakes_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4150             : void * fd_versioned_epoch_stakes_pair_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    4151             : int fd_versioned_epoch_stakes_pair_encode_global( fd_versioned_epoch_stakes_pair_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    4152             : ulong fd_versioned_epoch_stakes_pair_size_global( fd_versioned_epoch_stakes_pair_global_t const * self );
    4153             : 
    4154             : void fd_reward_info_new( fd_reward_info_t * self );
    4155             : int fd_reward_info_encode( fd_reward_info_t const * self, fd_bincode_encode_ctx_t * ctx );
    4156             : 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 );
    4157           0 : static inline ulong fd_reward_info_size( fd_reward_info_t const * self ) { (void)self; return 28UL; }
    4158           0 : static inline ulong fd_reward_info_align( void ) { return FD_REWARD_INFO_ALIGN; }
    4159             : int fd_reward_info_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4160             : void * fd_reward_info_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4161             : 
    4162           0 : static inline void fd_slot_lthash_new( fd_slot_lthash_t * self ) { fd_memset( self, 0, sizeof(fd_slot_lthash_t) ); }
    4163             : int fd_slot_lthash_encode( fd_slot_lthash_t const * self, fd_bincode_encode_ctx_t * ctx );
    4164             : void fd_slot_lthash_walk( void * w, fd_slot_lthash_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    4165           0 : static inline ulong fd_slot_lthash_size( fd_slot_lthash_t const * self ) { (void)self; return 2048UL; }
    4166           0 : static inline ulong fd_slot_lthash_align( void ) { return FD_SLOT_LTHASH_ALIGN; }
    4167           0 : static inline int fd_slot_lthash_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    4168           0 :   *total_sz += sizeof(fd_slot_lthash_t);
    4169           0 :   if( (ulong)ctx->data + 2048UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    4170           0 :   return 0;
    4171           0 : }
    4172             : void * fd_slot_lthash_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4173             : 
    4174             : void fd_solana_manifest_new( fd_solana_manifest_t * self );
    4175             : int fd_solana_manifest_encode( fd_solana_manifest_t const * self, fd_bincode_encode_ctx_t * ctx );
    4176             : void fd_solana_manifest_walk( void * w, fd_solana_manifest_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    4177             : ulong fd_solana_manifest_size( fd_solana_manifest_t const * self );
    4178           0 : static inline ulong fd_solana_manifest_align( void ) { return FD_SOLANA_MANIFEST_ALIGN; }
    4179             : int fd_solana_manifest_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4180             : void * fd_solana_manifest_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4181             : void * fd_solana_manifest_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    4182             : int fd_solana_manifest_encode_global( fd_solana_manifest_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    4183             : ulong fd_solana_manifest_size_global( fd_solana_manifest_global_t const * self );
    4184             : 
    4185          12 : static inline void fd_rust_duration_new( fd_rust_duration_t * self ) { fd_memset( self, 0, sizeof(fd_rust_duration_t) ); }
    4186             : int fd_rust_duration_encode( fd_rust_duration_t const * self, fd_bincode_encode_ctx_t * ctx );
    4187             : 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 );
    4188           0 : static inline ulong fd_rust_duration_size( fd_rust_duration_t const * self ) { (void)self; return 12UL; }
    4189           0 : static inline ulong fd_rust_duration_align( void ) { return FD_RUST_DURATION_ALIGN; }
    4190           0 : static inline int fd_rust_duration_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    4191           0 :   *total_sz += sizeof(fd_rust_duration_t);
    4192           0 :   if( (ulong)ctx->data + 12UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    4193           0 :   return 0;
    4194           0 : }
    4195             : void * fd_rust_duration_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4196             : 
    4197             : void fd_poh_config_new( fd_poh_config_t * self );
    4198             : int fd_poh_config_encode( fd_poh_config_t const * self, fd_bincode_encode_ctx_t * ctx );
    4199             : 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 );
    4200             : ulong fd_poh_config_size( fd_poh_config_t const * self );
    4201           0 : static inline ulong fd_poh_config_align( void ) { return FD_POH_CONFIG_ALIGN; }
    4202             : int fd_poh_config_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4203             : void * fd_poh_config_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4204             : 
    4205             : void fd_string_pubkey_pair_new( fd_string_pubkey_pair_t * self );
    4206             : int fd_string_pubkey_pair_encode( fd_string_pubkey_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
    4207             : 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 );
    4208             : ulong fd_string_pubkey_pair_size( fd_string_pubkey_pair_t const * self );
    4209           0 : static inline ulong fd_string_pubkey_pair_align( void ) { return FD_STRING_PUBKEY_PAIR_ALIGN; }
    4210             : int fd_string_pubkey_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4211             : void * fd_string_pubkey_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4212             : 
    4213             : void fd_pubkey_account_pair_new( fd_pubkey_account_pair_t * self );
    4214             : int fd_pubkey_account_pair_encode( fd_pubkey_account_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
    4215             : 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 );
    4216             : ulong fd_pubkey_account_pair_size( fd_pubkey_account_pair_t const * self );
    4217           0 : static inline ulong fd_pubkey_account_pair_align( void ) { return FD_PUBKEY_ACCOUNT_PAIR_ALIGN; }
    4218             : int fd_pubkey_account_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4219             : void * fd_pubkey_account_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4220             : 
    4221             : void fd_genesis_solana_new( fd_genesis_solana_t * self );
    4222             : int fd_genesis_solana_encode( fd_genesis_solana_t const * self, fd_bincode_encode_ctx_t * ctx );
    4223             : 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 );
    4224             : ulong fd_genesis_solana_size( fd_genesis_solana_t const * self );
    4225           0 : static inline ulong fd_genesis_solana_align( void ) { return FD_GENESIS_SOLANA_ALIGN; }
    4226             : int fd_genesis_solana_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4227             : void * fd_genesis_solana_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4228             : 
    4229           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) ); }
    4230             : int fd_sol_sysvar_clock_encode( fd_sol_sysvar_clock_t const * self, fd_bincode_encode_ctx_t * ctx );
    4231             : 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 );
    4232           0 : static inline ulong fd_sol_sysvar_clock_size( fd_sol_sysvar_clock_t const * self ) { (void)self; return 40UL; }
    4233           3 : static inline ulong fd_sol_sysvar_clock_align( void ) { return FD_SOL_SYSVAR_CLOCK_ALIGN; }
    4234           9 : static inline int fd_sol_sysvar_clock_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    4235           9 :   *total_sz += sizeof(fd_sol_sysvar_clock_t);
    4236           9 :   if( (ulong)ctx->data + 40UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    4237           6 :   return 0;
    4238           9 : }
    4239             : void * fd_sol_sysvar_clock_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4240             : 
    4241           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) ); }
    4242             : int fd_sol_sysvar_last_restart_slot_encode( fd_sol_sysvar_last_restart_slot_t const * self, fd_bincode_encode_ctx_t * ctx );
    4243             : 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 );
    4244           0 : static inline ulong fd_sol_sysvar_last_restart_slot_size( fd_sol_sysvar_last_restart_slot_t const * self ) { (void)self; return 8UL; }
    4245           3 : static inline ulong fd_sol_sysvar_last_restart_slot_align( void ) { return FD_SOL_SYSVAR_LAST_RESTART_SLOT_ALIGN; }
    4246           3 : static inline int fd_sol_sysvar_last_restart_slot_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    4247           3 :   *total_sz += sizeof(fd_sol_sysvar_last_restart_slot_t);
    4248           3 :   if( (ulong)ctx->data + 8UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    4249           3 :   return 0;
    4250           3 : }
    4251             : void * fd_sol_sysvar_last_restart_slot_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4252             : 
    4253           0 : static inline void fd_vote_lockout_new( fd_vote_lockout_t * self ) { fd_memset( self, 0, sizeof(fd_vote_lockout_t) ); }
    4254             : int fd_vote_lockout_encode( fd_vote_lockout_t const * self, fd_bincode_encode_ctx_t * ctx );
    4255             : 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 );
    4256           0 : static inline ulong fd_vote_lockout_size( fd_vote_lockout_t const * self ) { (void)self; return 12UL; }
    4257           0 : static inline ulong fd_vote_lockout_align( void ) { return FD_VOTE_LOCKOUT_ALIGN; }
    4258           0 : static inline int fd_vote_lockout_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    4259           0 :   *total_sz += sizeof(fd_vote_lockout_t);
    4260           0 :   if( (ulong)ctx->data + 12UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    4261           0 :   return 0;
    4262           0 : }
    4263             : void * fd_vote_lockout_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4264             : 
    4265             : void fd_lockout_offset_new( fd_lockout_offset_t * self );
    4266             : int fd_lockout_offset_encode( fd_lockout_offset_t const * self, fd_bincode_encode_ctx_t * ctx );
    4267             : 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 );
    4268             : ulong fd_lockout_offset_size( fd_lockout_offset_t const * self );
    4269           0 : static inline ulong fd_lockout_offset_align( void ) { return FD_LOCKOUT_OFFSET_ALIGN; }
    4270             : int fd_lockout_offset_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4271             : void * fd_lockout_offset_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4272             : 
    4273          12 : static inline void fd_vote_authorized_voter_new( fd_vote_authorized_voter_t * self ) { fd_memset( self, 0, sizeof(fd_vote_authorized_voter_t) ); }
    4274             : int fd_vote_authorized_voter_encode( fd_vote_authorized_voter_t const * self, fd_bincode_encode_ctx_t * ctx );
    4275             : 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 );
    4276           0 : static inline ulong fd_vote_authorized_voter_size( fd_vote_authorized_voter_t const * self ) { (void)self; return 40UL; }
    4277           0 : static inline ulong fd_vote_authorized_voter_align( void ) { return FD_VOTE_AUTHORIZED_VOTER_ALIGN; }
    4278           0 : static inline int fd_vote_authorized_voter_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    4279           0 :   *total_sz += sizeof(fd_vote_authorized_voter_t);
    4280           0 :   if( (ulong)ctx->data + 40UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    4281           0 :   return 0;
    4282           0 : }
    4283             : void * fd_vote_authorized_voter_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4284             : 
    4285         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) ); }
    4286             : int fd_vote_prior_voter_encode( fd_vote_prior_voter_t const * self, fd_bincode_encode_ctx_t * ctx );
    4287             : 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 );
    4288           0 : static inline ulong fd_vote_prior_voter_size( fd_vote_prior_voter_t const * self ) { (void)self; return 48UL; }
    4289           0 : static inline ulong fd_vote_prior_voter_align( void ) { return FD_VOTE_PRIOR_VOTER_ALIGN; }
    4290           0 : static inline int fd_vote_prior_voter_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    4291           0 :   *total_sz += sizeof(fd_vote_prior_voter_t);
    4292           0 :   if( (ulong)ctx->data + 48UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    4293           0 :   return 0;
    4294           0 : }
    4295             : void * fd_vote_prior_voter_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4296             : 
    4297           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) ); }
    4298             : 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 );
    4299             : 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 );
    4300           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; }
    4301           0 : static inline ulong fd_vote_prior_voter_0_23_5_align( void ) { return FD_VOTE_PRIOR_VOTER_0_23_5_ALIGN; }
    4302           0 : static inline int fd_vote_prior_voter_0_23_5_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    4303           0 :   *total_sz += sizeof(fd_vote_prior_voter_0_23_5_t);
    4304           0 :   if( (ulong)ctx->data + 56UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    4305           0 :   return 0;
    4306           0 : }
    4307             : void * fd_vote_prior_voter_0_23_5_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4308             : 
    4309         390 : static inline void fd_vote_epoch_credits_new( fd_vote_epoch_credits_t * self ) { fd_memset( self, 0, sizeof(fd_vote_epoch_credits_t) ); }
    4310             : int fd_vote_epoch_credits_encode( fd_vote_epoch_credits_t const * self, fd_bincode_encode_ctx_t * ctx );
    4311             : 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 );
    4312           0 : static inline ulong fd_vote_epoch_credits_size( fd_vote_epoch_credits_t const * self ) { (void)self; return 24UL; }
    4313           0 : static inline ulong fd_vote_epoch_credits_align( void ) { return FD_VOTE_EPOCH_CREDITS_ALIGN; }
    4314           0 : static inline int fd_vote_epoch_credits_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    4315           0 :   *total_sz += sizeof(fd_vote_epoch_credits_t);
    4316           0 :   if( (ulong)ctx->data + 24UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    4317           0 :   return 0;
    4318           0 : }
    4319             : void * fd_vote_epoch_credits_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4320             : 
    4321          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) ); }
    4322             : int fd_vote_block_timestamp_encode( fd_vote_block_timestamp_t const * self, fd_bincode_encode_ctx_t * ctx );
    4323             : 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 );
    4324           0 : static inline ulong fd_vote_block_timestamp_size( fd_vote_block_timestamp_t const * self ) { (void)self; return 16UL; }
    4325           0 : static inline ulong fd_vote_block_timestamp_align( void ) { return FD_VOTE_BLOCK_TIMESTAMP_ALIGN; }
    4326           0 : static inline int fd_vote_block_timestamp_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    4327           0 :   *total_sz += sizeof(fd_vote_block_timestamp_t);
    4328           0 :   if( (ulong)ctx->data + 16UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    4329           0 :   return 0;
    4330           0 : }
    4331             : void * fd_vote_block_timestamp_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4332             : 
    4333             : void fd_vote_prior_voters_new( fd_vote_prior_voters_t * self );
    4334             : int fd_vote_prior_voters_encode( fd_vote_prior_voters_t const * self, fd_bincode_encode_ctx_t * ctx );
    4335             : 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 );
    4336           0 : static inline ulong fd_vote_prior_voters_size( fd_vote_prior_voters_t const * self ) { (void)self; return 1545UL; }
    4337           0 : static inline ulong fd_vote_prior_voters_align( void ) { return FD_VOTE_PRIOR_VOTERS_ALIGN; }
    4338             : int fd_vote_prior_voters_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4339             : void * fd_vote_prior_voters_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4340             : 
    4341           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) ); }
    4342             : 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 );
    4343             : 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 );
    4344           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; }
    4345           0 : static inline ulong fd_vote_prior_voters_0_23_5_align( void ) { return FD_VOTE_PRIOR_VOTERS_0_23_5_ALIGN; }
    4346           0 : static inline int fd_vote_prior_voters_0_23_5_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    4347           0 :   *total_sz += sizeof(fd_vote_prior_voters_0_23_5_t);
    4348           0 :   if( (ulong)ctx->data + 1800UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    4349           0 :   return 0;
    4350           0 : }
    4351             : void * fd_vote_prior_voters_0_23_5_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4352             : 
    4353         192 : static inline void fd_landed_vote_new( fd_landed_vote_t * self ) { fd_memset( self, 0, sizeof(fd_landed_vote_t) ); }
    4354             : int fd_landed_vote_encode( fd_landed_vote_t const * self, fd_bincode_encode_ctx_t * ctx );
    4355             : 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 );
    4356           0 : static inline ulong fd_landed_vote_size( fd_landed_vote_t const * self ) { (void)self; return 13UL; }
    4357           0 : static inline ulong fd_landed_vote_align( void ) { return FD_LANDED_VOTE_ALIGN; }
    4358           0 : static inline int fd_landed_vote_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    4359           0 :   *total_sz += sizeof(fd_landed_vote_t);
    4360           0 :   if( (ulong)ctx->data + 13UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    4361           0 :   return 0;
    4362           0 : }
    4363             : void * fd_landed_vote_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4364             : 
    4365             : void fd_vote_state_0_23_5_new( fd_vote_state_0_23_5_t * self );
    4366             : int fd_vote_state_0_23_5_encode( fd_vote_state_0_23_5_t const * self, fd_bincode_encode_ctx_t * ctx );
    4367             : 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 );
    4368             : ulong fd_vote_state_0_23_5_size( fd_vote_state_0_23_5_t const * self );
    4369           0 : static inline ulong fd_vote_state_0_23_5_align( void ) { return FD_VOTE_STATE_0_23_5_ALIGN; }
    4370             : int fd_vote_state_0_23_5_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4371             : void * fd_vote_state_0_23_5_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4372             : 
    4373             : void fd_vote_authorized_voters_new( fd_vote_authorized_voters_t * self );
    4374             : int fd_vote_authorized_voters_encode( fd_vote_authorized_voters_t const * self, fd_bincode_encode_ctx_t * ctx );
    4375             : 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 );
    4376             : ulong fd_vote_authorized_voters_size( fd_vote_authorized_voters_t const * self );
    4377           0 : static inline ulong fd_vote_authorized_voters_align( void ) { return FD_VOTE_AUTHORIZED_VOTERS_ALIGN; }
    4378             : int fd_vote_authorized_voters_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4379             : void * fd_vote_authorized_voters_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4380             : 
    4381             : void fd_vote_state_1_14_11_new( fd_vote_state_1_14_11_t * self );
    4382             : int fd_vote_state_1_14_11_encode( fd_vote_state_1_14_11_t const * self, fd_bincode_encode_ctx_t * ctx );
    4383             : 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 );
    4384             : ulong fd_vote_state_1_14_11_size( fd_vote_state_1_14_11_t const * self );
    4385           0 : static inline ulong fd_vote_state_1_14_11_align( void ) { return FD_VOTE_STATE_1_14_11_ALIGN; }
    4386             : int fd_vote_state_1_14_11_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4387             : void * fd_vote_state_1_14_11_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4388             : 
    4389             : void fd_vote_state_new( fd_vote_state_t * self );
    4390             : int fd_vote_state_encode( fd_vote_state_t const * self, fd_bincode_encode_ctx_t * ctx );
    4391             : 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 );
    4392             : ulong fd_vote_state_size( fd_vote_state_t const * self );
    4393           0 : static inline ulong fd_vote_state_align( void ) { return FD_VOTE_STATE_ALIGN; }
    4394             : int fd_vote_state_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4395             : void * fd_vote_state_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4396             : 
    4397             : void fd_vote_state_versioned_new_disc( fd_vote_state_versioned_t * self, uint discriminant );
    4398             : void fd_vote_state_versioned_new( fd_vote_state_versioned_t * self );
    4399             : int fd_vote_state_versioned_encode( fd_vote_state_versioned_t const * self, fd_bincode_encode_ctx_t * ctx );
    4400             : 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 );
    4401             : ulong fd_vote_state_versioned_size( fd_vote_state_versioned_t const * self );
    4402          30 : static inline ulong fd_vote_state_versioned_align( void ) { return FD_VOTE_STATE_VERSIONED_ALIGN; }
    4403             : int fd_vote_state_versioned_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4404             : void * fd_vote_state_versioned_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4405             : 
    4406             : FD_FN_PURE uchar fd_vote_state_versioned_is_v0_23_5( fd_vote_state_versioned_t const * self );
    4407             : FD_FN_PURE uchar fd_vote_state_versioned_is_v1_14_11( fd_vote_state_versioned_t const * self );
    4408             : FD_FN_PURE uchar fd_vote_state_versioned_is_current( fd_vote_state_versioned_t const * self );
    4409             : enum {
    4410             : fd_vote_state_versioned_enum_v0_23_5 = 0,
    4411             : fd_vote_state_versioned_enum_v1_14_11 = 1,
    4412             : fd_vote_state_versioned_enum_current = 2,
    4413             : };
    4414             : void fd_vote_state_update_new( fd_vote_state_update_t * self );
    4415             : int fd_vote_state_update_encode( fd_vote_state_update_t const * self, fd_bincode_encode_ctx_t * ctx );
    4416             : 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 );
    4417             : ulong fd_vote_state_update_size( fd_vote_state_update_t const * self );
    4418           0 : static inline ulong fd_vote_state_update_align( void ) { return FD_VOTE_STATE_UPDATE_ALIGN; }
    4419             : int fd_vote_state_update_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4420             : void * fd_vote_state_update_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4421             : 
    4422             : void fd_compact_vote_state_update_new( fd_compact_vote_state_update_t * self );
    4423             : int fd_compact_vote_state_update_encode( fd_compact_vote_state_update_t const * self, fd_bincode_encode_ctx_t * ctx );
    4424             : 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 );
    4425             : ulong fd_compact_vote_state_update_size( fd_compact_vote_state_update_t const * self );
    4426           0 : static inline ulong fd_compact_vote_state_update_align( void ) { return FD_COMPACT_VOTE_STATE_UPDATE_ALIGN; }
    4427             : int fd_compact_vote_state_update_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4428             : void * fd_compact_vote_state_update_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4429             : 
    4430             : void fd_compact_vote_state_update_switch_new( fd_compact_vote_state_update_switch_t * self );
    4431             : int fd_compact_vote_state_update_switch_encode( fd_compact_vote_state_update_switch_t const * self, fd_bincode_encode_ctx_t * ctx );
    4432             : 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 );
    4433             : ulong fd_compact_vote_state_update_switch_size( fd_compact_vote_state_update_switch_t const * self );
    4434           0 : static inline ulong fd_compact_vote_state_update_switch_align( void ) { return FD_COMPACT_VOTE_STATE_UPDATE_SWITCH_ALIGN; }
    4435             : int fd_compact_vote_state_update_switch_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4436             : void * fd_compact_vote_state_update_switch_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4437             : 
    4438             : void fd_compact_tower_sync_new( fd_compact_tower_sync_t * self );
    4439             : int fd_compact_tower_sync_encode( fd_compact_tower_sync_t const * self, fd_bincode_encode_ctx_t * ctx );
    4440             : 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 );
    4441             : ulong fd_compact_tower_sync_size( fd_compact_tower_sync_t const * self );
    4442           0 : static inline ulong fd_compact_tower_sync_align( void ) { return FD_COMPACT_TOWER_SYNC_ALIGN; }
    4443             : int fd_compact_tower_sync_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4444             : void * fd_compact_tower_sync_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4445             : 
    4446             : void fd_tower_sync_new( fd_tower_sync_t * self );
    4447             : int fd_tower_sync_encode( fd_tower_sync_t const * self, fd_bincode_encode_ctx_t * ctx );
    4448             : 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 );
    4449             : ulong fd_tower_sync_size( fd_tower_sync_t const * self );
    4450           0 : static inline ulong fd_tower_sync_align( void ) { return FD_TOWER_SYNC_ALIGN; }
    4451             : int fd_tower_sync_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4452             : void * fd_tower_sync_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4453             : 
    4454             : void fd_tower_sync_switch_new( fd_tower_sync_switch_t * self );
    4455             : int fd_tower_sync_switch_encode( fd_tower_sync_switch_t const * self, fd_bincode_encode_ctx_t * ctx );
    4456             : 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 );
    4457             : ulong fd_tower_sync_switch_size( fd_tower_sync_switch_t const * self );
    4458           0 : static inline ulong fd_tower_sync_switch_align( void ) { return FD_TOWER_SYNC_SWITCH_ALIGN; }
    4459             : int fd_tower_sync_switch_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4460             : void * fd_tower_sync_switch_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4461             : 
    4462             : void fd_slot_history_new( fd_slot_history_t * self );
    4463             : int fd_slot_history_encode( fd_slot_history_t const * self, fd_bincode_encode_ctx_t * ctx );
    4464             : 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 );
    4465             : ulong fd_slot_history_size( fd_slot_history_t const * self );
    4466           3 : static inline ulong fd_slot_history_align( void ) { return FD_SLOT_HISTORY_ALIGN; }
    4467             : int fd_slot_history_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4468             : void * fd_slot_history_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4469             : void * fd_slot_history_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    4470             : int fd_slot_history_encode_global( fd_slot_history_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    4471             : ulong fd_slot_history_size_global( fd_slot_history_global_t const * self );
    4472             : 
    4473           3 : static inline void fd_slot_hash_new( fd_slot_hash_t * self ) { fd_memset( self, 0, sizeof(fd_slot_hash_t) ); }
    4474             : int fd_slot_hash_encode( fd_slot_hash_t const * self, fd_bincode_encode_ctx_t * ctx );
    4475             : 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 );
    4476           0 : static inline ulong fd_slot_hash_size( fd_slot_hash_t const * self ) { (void)self; return 40UL; }
    4477           0 : static inline ulong fd_slot_hash_align( void ) { return FD_SLOT_HASH_ALIGN; }
    4478           0 : static inline int fd_slot_hash_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    4479           0 :   *total_sz += sizeof(fd_slot_hash_t);
    4480           0 :   if( (ulong)ctx->data + 40UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    4481           0 :   return 0;
    4482           0 : }
    4483             : void * fd_slot_hash_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4484             : 
    4485             : void fd_slot_hashes_new( fd_slot_hashes_t * self );
    4486             : int fd_slot_hashes_encode( fd_slot_hashes_t const * self, fd_bincode_encode_ctx_t * ctx );
    4487             : 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 );
    4488             : ulong fd_slot_hashes_size( fd_slot_hashes_t const * self );
    4489           3 : static inline ulong fd_slot_hashes_align( void ) { return FD_SLOT_HASHES_ALIGN; }
    4490             : int fd_slot_hashes_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4491             : void * fd_slot_hashes_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4492             : void * fd_slot_hashes_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    4493             : int fd_slot_hashes_encode_global( fd_slot_hashes_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    4494             : ulong fd_slot_hashes_size_global( fd_slot_hashes_global_t const * self );
    4495             : 
    4496           0 : 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) ); }
    4497             : int fd_block_block_hash_entry_encode( fd_block_block_hash_entry_t const * self, fd_bincode_encode_ctx_t * ctx );
    4498             : 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 );
    4499           0 : static inline ulong fd_block_block_hash_entry_size( fd_block_block_hash_entry_t const * self ) { (void)self; return 40UL; }
    4500           0 : static inline ulong fd_block_block_hash_entry_align( void ) { return FD_BLOCK_BLOCK_HASH_ENTRY_ALIGN; }
    4501           0 : static inline int fd_block_block_hash_entry_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    4502           0 :   *total_sz += sizeof(fd_block_block_hash_entry_t);
    4503           0 :   if( (ulong)ctx->data + 40UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    4504           0 :   return 0;
    4505           0 : }
    4506             : void * fd_block_block_hash_entry_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4507             : 
    4508             : void fd_recent_block_hashes_new( fd_recent_block_hashes_t * self );
    4509             : int fd_recent_block_hashes_encode( fd_recent_block_hashes_t const * self, fd_bincode_encode_ctx_t * ctx );
    4510             : 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 );
    4511             : ulong fd_recent_block_hashes_size( fd_recent_block_hashes_t const * self );
    4512           0 : static inline ulong fd_recent_block_hashes_align( void ) { return FD_RECENT_BLOCK_HASHES_ALIGN; }
    4513             : int fd_recent_block_hashes_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4514             : void * fd_recent_block_hashes_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4515             : void * fd_recent_block_hashes_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    4516             : int fd_recent_block_hashes_encode_global( fd_recent_block_hashes_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    4517             : ulong fd_recent_block_hashes_size_global( fd_recent_block_hashes_global_t const * self );
    4518             : 
    4519             : void fd_slot_meta_new( fd_slot_meta_t * self );
    4520             : int fd_slot_meta_encode( fd_slot_meta_t const * self, fd_bincode_encode_ctx_t * ctx );
    4521             : 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 );
    4522             : ulong fd_slot_meta_size( fd_slot_meta_t const * self );
    4523           0 : static inline ulong fd_slot_meta_align( void ) { return FD_SLOT_META_ALIGN; }
    4524             : int fd_slot_meta_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4525             : void * fd_slot_meta_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4526             : 
    4527           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) ); }
    4528             : int fd_clock_timestamp_vote_encode( fd_clock_timestamp_vote_t const * self, fd_bincode_encode_ctx_t * ctx );
    4529             : 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 );
    4530           0 : static inline ulong fd_clock_timestamp_vote_size( fd_clock_timestamp_vote_t const * self ) { (void)self; return 48UL; }
    4531           0 : static inline ulong fd_clock_timestamp_vote_align( void ) { return FD_CLOCK_TIMESTAMP_VOTE_ALIGN; }
    4532           0 : static inline int fd_clock_timestamp_vote_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    4533           0 :   *total_sz += sizeof(fd_clock_timestamp_vote_t);
    4534           0 :   if( (ulong)ctx->data + 48UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    4535           0 :   return 0;
    4536           0 : }
    4537             : void * fd_clock_timestamp_vote_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4538             : 
    4539             : void fd_clock_timestamp_votes_new( fd_clock_timestamp_votes_t * self );
    4540             : int fd_clock_timestamp_votes_encode( fd_clock_timestamp_votes_t const * self, fd_bincode_encode_ctx_t * ctx );
    4541             : 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 );
    4542             : ulong fd_clock_timestamp_votes_size( fd_clock_timestamp_votes_t const * self );
    4543           0 : static inline ulong fd_clock_timestamp_votes_align( void ) { return FD_CLOCK_TIMESTAMP_VOTES_ALIGN; }
    4544             : int fd_clock_timestamp_votes_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4545             : void * fd_clock_timestamp_votes_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4546             : void * fd_clock_timestamp_votes_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    4547             : int fd_clock_timestamp_votes_encode_global( fd_clock_timestamp_votes_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    4548             : ulong fd_clock_timestamp_votes_size_global( fd_clock_timestamp_votes_global_t const * self );
    4549             : 
    4550           0 : static inline void fd_sysvar_fees_new( fd_sysvar_fees_t * self ) { fd_memset( self, 0, sizeof(fd_sysvar_fees_t) ); }
    4551             : int fd_sysvar_fees_encode( fd_sysvar_fees_t const * self, fd_bincode_encode_ctx_t * ctx );
    4552             : 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 );
    4553           0 : static inline ulong fd_sysvar_fees_size( fd_sysvar_fees_t const * self ) { (void)self; return 8UL; }
    4554           0 : static inline ulong fd_sysvar_fees_align( void ) { return FD_SYSVAR_FEES_ALIGN; }
    4555           0 : static inline int fd_sysvar_fees_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    4556           0 :   *total_sz += sizeof(fd_sysvar_fees_t);
    4557           0 :   if( (ulong)ctx->data + 8UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    4558           0 :   return 0;
    4559           0 : }
    4560             : void * fd_sysvar_fees_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4561             : 
    4562             : void fd_sysvar_epoch_rewards_new( fd_sysvar_epoch_rewards_t * self );
    4563             : int fd_sysvar_epoch_rewards_encode( fd_sysvar_epoch_rewards_t const * self, fd_bincode_encode_ctx_t * ctx );
    4564             : 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 );
    4565           0 : static inline ulong fd_sysvar_epoch_rewards_size( fd_sysvar_epoch_rewards_t const * self ) { (void)self; return 81UL; }
    4566           3 : static inline ulong fd_sysvar_epoch_rewards_align( void ) { return FD_SYSVAR_EPOCH_REWARDS_ALIGN; }
    4567             : int fd_sysvar_epoch_rewards_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4568             : void * fd_sysvar_epoch_rewards_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4569             : 
    4570             : void fd_config_keys_pair_new( fd_config_keys_pair_t * self );
    4571             : int fd_config_keys_pair_encode( fd_config_keys_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
    4572             : 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 );
    4573           0 : static inline ulong fd_config_keys_pair_size( fd_config_keys_pair_t const * self ) { (void)self; return 33UL; }
    4574           0 : static inline ulong fd_config_keys_pair_align( void ) { return FD_CONFIG_KEYS_PAIR_ALIGN; }
    4575             : int fd_config_keys_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4576             : void * fd_config_keys_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4577             : 
    4578             : void fd_stake_config_new( fd_stake_config_t * self );
    4579             : int fd_stake_config_encode( fd_stake_config_t const * self, fd_bincode_encode_ctx_t * ctx );
    4580             : 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 );
    4581             : ulong fd_stake_config_size( fd_stake_config_t const * self );
    4582           0 : static inline ulong fd_stake_config_align( void ) { return FD_STAKE_CONFIG_ALIGN; }
    4583             : int fd_stake_config_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4584             : void * fd_stake_config_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4585             : 
    4586             : void fd_feature_entry_new( fd_feature_entry_t * self );
    4587             : int fd_feature_entry_encode( fd_feature_entry_t const * self, fd_bincode_encode_ctx_t * ctx );
    4588             : 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 );
    4589             : ulong fd_feature_entry_size( fd_feature_entry_t const * self );
    4590           0 : static inline ulong fd_feature_entry_align( void ) { return FD_FEATURE_ENTRY_ALIGN; }
    4591             : int fd_feature_entry_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4592             : void * fd_feature_entry_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4593             : 
    4594           0 : static inline void fd_cluster_type_new_disc( fd_cluster_type_t * self, uint discriminant ) { self->discriminant = discriminant; }
    4595           0 : static inline void fd_cluster_type_new( fd_cluster_type_t * self ) { self->discriminant = (uint)ULONG_MAX; }
    4596             : int fd_cluster_type_encode( fd_cluster_type_t const * self, fd_bincode_encode_ctx_t * ctx );
    4597             : 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 );
    4598             : ulong fd_cluster_type_size( fd_cluster_type_t const * self );
    4599           0 : static inline ulong fd_cluster_type_align( void ) { return FD_CLUSTER_TYPE_ALIGN; }
    4600             : int fd_cluster_type_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4601             : void * fd_cluster_type_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4602             : 
    4603             : FD_FN_PURE uchar fd_cluster_type_is_Testnet( fd_cluster_type_t const * self );
    4604             : FD_FN_PURE uchar fd_cluster_type_is_MainnetBeta( fd_cluster_type_t const * self );
    4605             : FD_FN_PURE uchar fd_cluster_type_is_Devnet( fd_cluster_type_t const * self );
    4606             : FD_FN_PURE uchar fd_cluster_type_is_Development( fd_cluster_type_t const * self );
    4607             : enum {
    4608             : fd_cluster_type_enum_Testnet = 0,
    4609             : fd_cluster_type_enum_MainnetBeta = 1,
    4610             : fd_cluster_type_enum_Devnet = 2,
    4611             : fd_cluster_type_enum_Development = 3,
    4612             : };
    4613           0 : static inline void fd_cluster_version_new( fd_cluster_version_t * self ) { fd_memset( self, 0, sizeof(fd_cluster_version_t) ); }
    4614             : int fd_cluster_version_encode( fd_cluster_version_t const * self, fd_bincode_encode_ctx_t * ctx );
    4615             : 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 );
    4616           0 : static inline ulong fd_cluster_version_size( fd_cluster_version_t const * self ) { (void)self; return 12UL; }
    4617           0 : static inline ulong fd_cluster_version_align( void ) { return FD_CLUSTER_VERSION_ALIGN; }
    4618           0 : static inline int fd_cluster_version_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    4619           0 :   *total_sz += sizeof(fd_cluster_version_t);
    4620           0 :   if( (ulong)ctx->data + 12UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    4621           0 :   return 0;
    4622           0 : }
    4623             : void * fd_cluster_version_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4624             : 
    4625           0 : static inline void fd_stake_reward_new( fd_stake_reward_t * self ) { fd_memset( self, 0, sizeof(fd_stake_reward_t) ); }
    4626             : int fd_stake_reward_encode( fd_stake_reward_t const * self, fd_bincode_encode_ctx_t * ctx );
    4627             : 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 );
    4628           0 : static inline ulong fd_stake_reward_size( fd_stake_reward_t const * self ) { (void)self; return 49UL; }
    4629           0 : static inline ulong fd_stake_reward_align( void ) { return FD_STAKE_REWARD_ALIGN; }
    4630           0 : static inline int fd_stake_reward_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    4631           0 :   *total_sz += sizeof(fd_stake_reward_t);
    4632           0 :   if( (ulong)ctx->data + 49UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    4633           0 :   return 0;
    4634           0 : }
    4635             : void * fd_stake_reward_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4636             : 
    4637           0 : static inline void fd_vote_reward_new( fd_vote_reward_t * self ) { fd_memset( self, 0, sizeof(fd_vote_reward_t) ); }
    4638             : int fd_vote_reward_encode( fd_vote_reward_t const * self, fd_bincode_encode_ctx_t * ctx );
    4639             : void fd_vote_reward_walk( void * w, fd_vote_reward_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    4640           0 : static inline ulong fd_vote_reward_size( fd_vote_reward_t const * self ) { (void)self; return 42UL; }
    4641           0 : static inline ulong fd_vote_reward_align( void ) { return FD_VOTE_REWARD_ALIGN; }
    4642           0 : static inline int fd_vote_reward_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    4643           0 :   *total_sz += sizeof(fd_vote_reward_t);
    4644           0 :   if( (ulong)ctx->data + 42UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    4645           0 :   return 0;
    4646           0 : }
    4647             : void * fd_vote_reward_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4648             : 
    4649           0 : static inline void fd_point_value_new( fd_point_value_t * self ) { fd_memset( self, 0, sizeof(fd_point_value_t) ); }
    4650             : int fd_point_value_encode( fd_point_value_t const * self, fd_bincode_encode_ctx_t * ctx );
    4651             : void fd_point_value_walk( void * w, fd_point_value_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    4652           0 : static inline ulong fd_point_value_size( fd_point_value_t const * self ) { (void)self; return 24UL; }
    4653           0 : static inline ulong fd_point_value_align( void ) { return FD_POINT_VALUE_ALIGN; }
    4654           0 : static inline int fd_point_value_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    4655           0 :   *total_sz += sizeof(fd_point_value_t);
    4656           0 :   if( (ulong)ctx->data + 24UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    4657           0 :   return 0;
    4658           0 : }
    4659             : void * fd_point_value_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4660             : 
    4661             : void fd_partitioned_stake_rewards_new( fd_partitioned_stake_rewards_t * self );
    4662             : int fd_partitioned_stake_rewards_encode( fd_partitioned_stake_rewards_t const * self, fd_bincode_encode_ctx_t * ctx );
    4663             : void fd_partitioned_stake_rewards_walk( void * w, fd_partitioned_stake_rewards_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    4664             : ulong fd_partitioned_stake_rewards_size( fd_partitioned_stake_rewards_t const * self );
    4665           0 : static inline ulong fd_partitioned_stake_rewards_align( void ) { return FD_PARTITIONED_STAKE_REWARDS_ALIGN; }
    4666             : int fd_partitioned_stake_rewards_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4667             : void * fd_partitioned_stake_rewards_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4668             : void * fd_partitioned_stake_rewards_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    4669             : int fd_partitioned_stake_rewards_encode_global( fd_partitioned_stake_rewards_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    4670             : ulong fd_partitioned_stake_rewards_size_global( fd_partitioned_stake_rewards_global_t const * self );
    4671             : 
    4672             : void fd_stake_reward_calculation_partitioned_new( fd_stake_reward_calculation_partitioned_t * self );
    4673             : int fd_stake_reward_calculation_partitioned_encode( fd_stake_reward_calculation_partitioned_t const * self, fd_bincode_encode_ctx_t * ctx );
    4674             : void fd_stake_reward_calculation_partitioned_walk( void * w, fd_stake_reward_calculation_partitioned_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    4675             : ulong fd_stake_reward_calculation_partitioned_size( fd_stake_reward_calculation_partitioned_t const * self );
    4676           0 : static inline ulong fd_stake_reward_calculation_partitioned_align( void ) { return FD_STAKE_REWARD_CALCULATION_PARTITIONED_ALIGN; }
    4677             : int fd_stake_reward_calculation_partitioned_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4678             : void * fd_stake_reward_calculation_partitioned_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4679             : 
    4680             : void fd_stake_reward_calculation_new( fd_stake_reward_calculation_t * self );
    4681             : int fd_stake_reward_calculation_encode( fd_stake_reward_calculation_t const * self, fd_bincode_encode_ctx_t * ctx );
    4682             : void fd_stake_reward_calculation_walk( void * w, fd_stake_reward_calculation_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    4683             : ulong fd_stake_reward_calculation_size( fd_stake_reward_calculation_t const * self );
    4684           0 : static inline ulong fd_stake_reward_calculation_align( void ) { return FD_STAKE_REWARD_CALCULATION_ALIGN; }
    4685             : int fd_stake_reward_calculation_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4686             : void * fd_stake_reward_calculation_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4687             : 
    4688             : void fd_calculate_stake_vote_rewards_result_new( fd_calculate_stake_vote_rewards_result_t * self );
    4689             : int fd_calculate_stake_vote_rewards_result_encode( fd_calculate_stake_vote_rewards_result_t const * self, fd_bincode_encode_ctx_t * ctx );
    4690             : void fd_calculate_stake_vote_rewards_result_walk( void * w, fd_calculate_stake_vote_rewards_result_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    4691             : ulong fd_calculate_stake_vote_rewards_result_size( fd_calculate_stake_vote_rewards_result_t const * self );
    4692           0 : static inline ulong fd_calculate_stake_vote_rewards_result_align( void ) { return FD_CALCULATE_STAKE_VOTE_REWARDS_RESULT_ALIGN; }
    4693             : int fd_calculate_stake_vote_rewards_result_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4694             : void * fd_calculate_stake_vote_rewards_result_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4695             : 
    4696             : void fd_calculate_validator_rewards_result_new( fd_calculate_validator_rewards_result_t * self );
    4697             : int fd_calculate_validator_rewards_result_encode( fd_calculate_validator_rewards_result_t const * self, fd_bincode_encode_ctx_t * ctx );
    4698             : void fd_calculate_validator_rewards_result_walk( void * w, fd_calculate_validator_rewards_result_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    4699             : ulong fd_calculate_validator_rewards_result_size( fd_calculate_validator_rewards_result_t const * self );
    4700           0 : static inline ulong fd_calculate_validator_rewards_result_align( void ) { return FD_CALCULATE_VALIDATOR_REWARDS_RESULT_ALIGN; }
    4701             : int fd_calculate_validator_rewards_result_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4702             : void * fd_calculate_validator_rewards_result_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4703             : 
    4704             : void fd_partitioned_rewards_calculation_new( fd_partitioned_rewards_calculation_t * self );
    4705             : int fd_partitioned_rewards_calculation_encode( fd_partitioned_rewards_calculation_t const * self, fd_bincode_encode_ctx_t * ctx );
    4706             : 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 );
    4707             : ulong fd_partitioned_rewards_calculation_size( fd_partitioned_rewards_calculation_t const * self );
    4708           0 : static inline ulong fd_partitioned_rewards_calculation_align( void ) { return FD_PARTITIONED_REWARDS_CALCULATION_ALIGN; }
    4709             : int fd_partitioned_rewards_calculation_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4710             : void * fd_partitioned_rewards_calculation_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4711             : 
    4712             : void fd_start_block_height_and_rewards_new( fd_start_block_height_and_rewards_t * self );
    4713             : int fd_start_block_height_and_rewards_encode( fd_start_block_height_and_rewards_t const * self, fd_bincode_encode_ctx_t * ctx );
    4714             : void fd_start_block_height_and_rewards_walk( void * w, fd_start_block_height_and_rewards_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    4715             : ulong fd_start_block_height_and_rewards_size( fd_start_block_height_and_rewards_t const * self );
    4716           0 : static inline ulong fd_start_block_height_and_rewards_align( void ) { return FD_START_BLOCK_HEIGHT_AND_REWARDS_ALIGN; }
    4717             : int fd_start_block_height_and_rewards_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4718             : void * fd_start_block_height_and_rewards_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4719             : void * fd_start_block_height_and_rewards_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    4720             : int fd_start_block_height_and_rewards_encode_global( fd_start_block_height_and_rewards_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    4721             : ulong fd_start_block_height_and_rewards_size_global( fd_start_block_height_and_rewards_global_t const * self );
    4722             : 
    4723             : void fd_fd_epoch_reward_status_inner_new( fd_fd_epoch_reward_status_inner_t * self );
    4724             : int fd_fd_epoch_reward_status_inner_encode( fd_fd_epoch_reward_status_inner_t const * self, fd_bincode_encode_ctx_t * ctx );
    4725             : void fd_fd_epoch_reward_status_inner_walk( void * w, fd_fd_epoch_reward_status_inner_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    4726             : ulong fd_fd_epoch_reward_status_inner_size( fd_fd_epoch_reward_status_inner_t const * self );
    4727           0 : static inline ulong fd_fd_epoch_reward_status_inner_align( void ) { return FD_FD_EPOCH_REWARD_STATUS_INNER_ALIGN; }
    4728             : int fd_fd_epoch_reward_status_inner_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4729             : void * fd_fd_epoch_reward_status_inner_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4730             : 
    4731             : void fd_epoch_reward_status_new_disc( fd_epoch_reward_status_t * self, uint discriminant );
    4732             : void fd_epoch_reward_status_new( fd_epoch_reward_status_t * self );
    4733             : int fd_epoch_reward_status_encode( fd_epoch_reward_status_t const * self, fd_bincode_encode_ctx_t * ctx );
    4734             : void fd_epoch_reward_status_walk( void * w, fd_epoch_reward_status_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    4735             : ulong fd_epoch_reward_status_size( fd_epoch_reward_status_t const * self );
    4736           0 : static inline ulong fd_epoch_reward_status_align( void ) { return FD_EPOCH_REWARD_STATUS_ALIGN; }
    4737             : int fd_epoch_reward_status_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4738             : void * fd_epoch_reward_status_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4739             : void * fd_epoch_reward_status_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    4740             : int fd_epoch_reward_status_encode_global( fd_epoch_reward_status_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    4741             : ulong fd_epoch_reward_status_size_global( fd_epoch_reward_status_global_t const * self );
    4742             : 
    4743             : FD_FN_PURE uchar fd_epoch_reward_status_is_Active( fd_epoch_reward_status_t const * self );
    4744             : FD_FN_PURE uchar fd_epoch_reward_status_is_Inactive( fd_epoch_reward_status_t const * self );
    4745             : enum {
    4746             : fd_epoch_reward_status_enum_Active = 0,
    4747             : fd_epoch_reward_status_enum_Inactive = 1,
    4748             : };
    4749           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) ); }
    4750             : int fd_prev_epoch_inflation_rewards_encode( fd_prev_epoch_inflation_rewards_t const * self, fd_bincode_encode_ctx_t * ctx );
    4751             : 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 );
    4752           0 : static inline ulong fd_prev_epoch_inflation_rewards_size( fd_prev_epoch_inflation_rewards_t const * self ) { (void)self; return 32UL; }
    4753           0 : static inline ulong fd_prev_epoch_inflation_rewards_align( void ) { return FD_PREV_EPOCH_INFLATION_REWARDS_ALIGN; }
    4754           0 : static inline int fd_prev_epoch_inflation_rewards_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    4755           0 :   *total_sz += sizeof(fd_prev_epoch_inflation_rewards_t);
    4756           0 :   if( (ulong)ctx->data + 32UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    4757           0 :   return 0;
    4758           0 : }
    4759             : void * fd_prev_epoch_inflation_rewards_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4760             : 
    4761             : void fd_vote_new( fd_vote_t * self );
    4762             : int fd_vote_encode( fd_vote_t const * self, fd_bincode_encode_ctx_t * ctx );
    4763             : void fd_vote_walk( void * w, fd_vote_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    4764             : ulong fd_vote_size( fd_vote_t const * self );
    4765           0 : static inline ulong fd_vote_align( void ) { return FD_VOTE_ALIGN; }
    4766             : int fd_vote_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4767             : void * fd_vote_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4768             : 
    4769           0 : static inline void fd_vote_init_new( fd_vote_init_t * self ) { fd_memset( self, 0, sizeof(fd_vote_init_t) ); }
    4770             : int fd_vote_init_encode( fd_vote_init_t const * self, fd_bincode_encode_ctx_t * ctx );
    4771             : 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 );
    4772           0 : static inline ulong fd_vote_init_size( fd_vote_init_t const * self ) { (void)self; return 97UL; }
    4773           0 : static inline ulong fd_vote_init_align( void ) { return FD_VOTE_INIT_ALIGN; }
    4774           0 : static inline int fd_vote_init_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    4775           0 :   *total_sz += sizeof(fd_vote_init_t);
    4776           0 :   if( (ulong)ctx->data + 97UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    4777           0 :   return 0;
    4778           0 : }
    4779             : void * fd_vote_init_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4780             : 
    4781           0 : static inline void fd_vote_authorize_new_disc( fd_vote_authorize_t * self, uint discriminant ) { self->discriminant = discriminant; }
    4782           0 : static inline void fd_vote_authorize_new( fd_vote_authorize_t * self ) { self->discriminant = (uint)ULONG_MAX; }
    4783             : int fd_vote_authorize_encode( fd_vote_authorize_t const * self, fd_bincode_encode_ctx_t * ctx );
    4784             : 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 );
    4785             : ulong fd_vote_authorize_size( fd_vote_authorize_t const * self );
    4786           0 : static inline ulong fd_vote_authorize_align( void ) { return FD_VOTE_AUTHORIZE_ALIGN; }
    4787             : int fd_vote_authorize_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4788             : void * fd_vote_authorize_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4789             : 
    4790             : FD_FN_PURE uchar fd_vote_authorize_is_voter( fd_vote_authorize_t const * self );
    4791             : FD_FN_PURE uchar fd_vote_authorize_is_withdrawer( fd_vote_authorize_t const * self );
    4792             : enum {
    4793             : fd_vote_authorize_enum_voter = 0,
    4794             : fd_vote_authorize_enum_withdrawer = 1,
    4795             : };
    4796             : void fd_vote_authorize_pubkey_new( fd_vote_authorize_pubkey_t * self );
    4797             : int fd_vote_authorize_pubkey_encode( fd_vote_authorize_pubkey_t const * self, fd_bincode_encode_ctx_t * ctx );
    4798             : 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 );
    4799           0 : static inline ulong fd_vote_authorize_pubkey_size( fd_vote_authorize_pubkey_t const * self ) { (void)self; return 36UL; }
    4800           0 : static inline ulong fd_vote_authorize_pubkey_align( void ) { return FD_VOTE_AUTHORIZE_PUBKEY_ALIGN; }
    4801             : int fd_vote_authorize_pubkey_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4802             : void * fd_vote_authorize_pubkey_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4803             : 
    4804             : void fd_vote_switch_new( fd_vote_switch_t * self );
    4805             : int fd_vote_switch_encode( fd_vote_switch_t const * self, fd_bincode_encode_ctx_t * ctx );
    4806             : 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 );
    4807             : ulong fd_vote_switch_size( fd_vote_switch_t const * self );
    4808           0 : static inline ulong fd_vote_switch_align( void ) { return FD_VOTE_SWITCH_ALIGN; }
    4809             : int fd_vote_switch_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4810             : void * fd_vote_switch_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4811             : 
    4812             : void fd_update_vote_state_switch_new( fd_update_vote_state_switch_t * self );
    4813             : int fd_update_vote_state_switch_encode( fd_update_vote_state_switch_t const * self, fd_bincode_encode_ctx_t * ctx );
    4814             : 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 );
    4815             : ulong fd_update_vote_state_switch_size( fd_update_vote_state_switch_t const * self );
    4816           0 : static inline ulong fd_update_vote_state_switch_align( void ) { return FD_UPDATE_VOTE_STATE_SWITCH_ALIGN; }
    4817             : int fd_update_vote_state_switch_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4818             : void * fd_update_vote_state_switch_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4819             : 
    4820             : void fd_vote_authorize_with_seed_args_new( fd_vote_authorize_with_seed_args_t * self );
    4821             : int fd_vote_authorize_with_seed_args_encode( fd_vote_authorize_with_seed_args_t const * self, fd_bincode_encode_ctx_t * ctx );
    4822             : 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 );
    4823             : ulong fd_vote_authorize_with_seed_args_size( fd_vote_authorize_with_seed_args_t const * self );
    4824           0 : static inline ulong fd_vote_authorize_with_seed_args_align( void ) { return FD_VOTE_AUTHORIZE_WITH_SEED_ARGS_ALIGN; }
    4825             : int fd_vote_authorize_with_seed_args_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4826             : void * fd_vote_authorize_with_seed_args_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4827             : 
    4828             : void fd_vote_authorize_checked_with_seed_args_new( fd_vote_authorize_checked_with_seed_args_t * self );
    4829             : 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 );
    4830             : 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 );
    4831             : ulong fd_vote_authorize_checked_with_seed_args_size( fd_vote_authorize_checked_with_seed_args_t const * self );
    4832           0 : static inline ulong fd_vote_authorize_checked_with_seed_args_align( void ) { return FD_VOTE_AUTHORIZE_CHECKED_WITH_SEED_ARGS_ALIGN; }
    4833             : int fd_vote_authorize_checked_with_seed_args_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4834             : void * fd_vote_authorize_checked_with_seed_args_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4835             : 
    4836             : void fd_vote_instruction_new_disc( fd_vote_instruction_t * self, uint discriminant );
    4837             : void fd_vote_instruction_new( fd_vote_instruction_t * self );
    4838             : int fd_vote_instruction_encode( fd_vote_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
    4839             : 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 );
    4840             : ulong fd_vote_instruction_size( fd_vote_instruction_t const * self );
    4841           0 : static inline ulong fd_vote_instruction_align( void ) { return FD_VOTE_INSTRUCTION_ALIGN; }
    4842             : int fd_vote_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4843             : void * fd_vote_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4844             : 
    4845             : FD_FN_PURE uchar fd_vote_instruction_is_initialize_account( fd_vote_instruction_t const * self );
    4846             : FD_FN_PURE uchar fd_vote_instruction_is_authorize( fd_vote_instruction_t const * self );
    4847             : FD_FN_PURE uchar fd_vote_instruction_is_vote( fd_vote_instruction_t const * self );
    4848             : FD_FN_PURE uchar fd_vote_instruction_is_withdraw( fd_vote_instruction_t const * self );
    4849             : FD_FN_PURE uchar fd_vote_instruction_is_update_validator_identity( fd_vote_instruction_t const * self );
    4850             : FD_FN_PURE uchar fd_vote_instruction_is_update_commission( fd_vote_instruction_t const * self );
    4851             : FD_FN_PURE uchar fd_vote_instruction_is_vote_switch( fd_vote_instruction_t const * self );
    4852             : FD_FN_PURE uchar fd_vote_instruction_is_authorize_checked( fd_vote_instruction_t const * self );
    4853             : FD_FN_PURE uchar fd_vote_instruction_is_update_vote_state( fd_vote_instruction_t const * self );
    4854             : FD_FN_PURE uchar fd_vote_instruction_is_update_vote_state_switch( fd_vote_instruction_t const * self );
    4855             : FD_FN_PURE uchar fd_vote_instruction_is_authorize_with_seed( fd_vote_instruction_t const * self );
    4856             : FD_FN_PURE uchar fd_vote_instruction_is_authorize_checked_with_seed( fd_vote_instruction_t const * self );
    4857             : FD_FN_PURE uchar fd_vote_instruction_is_compact_update_vote_state( fd_vote_instruction_t const * self );
    4858             : FD_FN_PURE uchar fd_vote_instruction_is_compact_update_vote_state_switch( fd_vote_instruction_t const * self );
    4859             : FD_FN_PURE uchar fd_vote_instruction_is_tower_sync( fd_vote_instruction_t const * self );
    4860             : FD_FN_PURE uchar fd_vote_instruction_is_tower_sync_switch( fd_vote_instruction_t const * self );
    4861             : enum {
    4862             : fd_vote_instruction_enum_initialize_account = 0,
    4863             : fd_vote_instruction_enum_authorize = 1,
    4864             : fd_vote_instruction_enum_vote = 2,
    4865             : fd_vote_instruction_enum_withdraw = 3,
    4866             : fd_vote_instruction_enum_update_validator_identity = 4,
    4867             : fd_vote_instruction_enum_update_commission = 5,
    4868             : fd_vote_instruction_enum_vote_switch = 6,
    4869             : fd_vote_instruction_enum_authorize_checked = 7,
    4870             : fd_vote_instruction_enum_update_vote_state = 8,
    4871             : fd_vote_instruction_enum_update_vote_state_switch = 9,
    4872             : fd_vote_instruction_enum_authorize_with_seed = 10,
    4873             : fd_vote_instruction_enum_authorize_checked_with_seed = 11,
    4874             : fd_vote_instruction_enum_compact_update_vote_state = 12,
    4875             : fd_vote_instruction_enum_compact_update_vote_state_switch = 13,
    4876             : fd_vote_instruction_enum_tower_sync = 14,
    4877             : fd_vote_instruction_enum_tower_sync_switch = 15,
    4878             : };
    4879           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) ); }
    4880             : int fd_system_program_instruction_create_account_encode( fd_system_program_instruction_create_account_t const * self, fd_bincode_encode_ctx_t * ctx );
    4881             : 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 );
    4882           0 : static inline ulong fd_system_program_instruction_create_account_size( fd_system_program_instruction_create_account_t const * self ) { (void)self; return 48UL; }
    4883           0 : static inline ulong fd_system_program_instruction_create_account_align( void ) { return FD_SYSTEM_PROGRAM_INSTRUCTION_CREATE_ACCOUNT_ALIGN; }
    4884           0 : static inline int fd_system_program_instruction_create_account_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    4885           0 :   *total_sz += sizeof(fd_system_program_instruction_create_account_t);
    4886           0 :   if( (ulong)ctx->data + 48UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    4887           0 :   return 0;
    4888           0 : }
    4889             : void * fd_system_program_instruction_create_account_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4890             : 
    4891             : void fd_system_program_instruction_create_account_with_seed_new( fd_system_program_instruction_create_account_with_seed_t * self );
    4892             : 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 );
    4893             : 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 );
    4894             : ulong fd_system_program_instruction_create_account_with_seed_size( fd_system_program_instruction_create_account_with_seed_t const * self );
    4895           0 : static inline ulong fd_system_program_instruction_create_account_with_seed_align( void ) { return FD_SYSTEM_PROGRAM_INSTRUCTION_CREATE_ACCOUNT_WITH_SEED_ALIGN; }
    4896             : int fd_system_program_instruction_create_account_with_seed_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4897             : void * fd_system_program_instruction_create_account_with_seed_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4898             : 
    4899             : void fd_system_program_instruction_allocate_with_seed_new( fd_system_program_instruction_allocate_with_seed_t * self );
    4900             : 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 );
    4901             : 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 );
    4902             : ulong fd_system_program_instruction_allocate_with_seed_size( fd_system_program_instruction_allocate_with_seed_t const * self );
    4903           0 : static inline ulong fd_system_program_instruction_allocate_with_seed_align( void ) { return FD_SYSTEM_PROGRAM_INSTRUCTION_ALLOCATE_WITH_SEED_ALIGN; }
    4904             : int fd_system_program_instruction_allocate_with_seed_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4905             : void * fd_system_program_instruction_allocate_with_seed_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4906             : 
    4907             : void fd_system_program_instruction_assign_with_seed_new( fd_system_program_instruction_assign_with_seed_t * self );
    4908             : 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 );
    4909             : 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 );
    4910             : ulong fd_system_program_instruction_assign_with_seed_size( fd_system_program_instruction_assign_with_seed_t const * self );
    4911           0 : static inline ulong fd_system_program_instruction_assign_with_seed_align( void ) { return FD_SYSTEM_PROGRAM_INSTRUCTION_ASSIGN_WITH_SEED_ALIGN; }
    4912             : int fd_system_program_instruction_assign_with_seed_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4913             : void * fd_system_program_instruction_assign_with_seed_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4914             : 
    4915             : void fd_system_program_instruction_transfer_with_seed_new( fd_system_program_instruction_transfer_with_seed_t * self );
    4916             : 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 );
    4917             : 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 );
    4918             : ulong fd_system_program_instruction_transfer_with_seed_size( fd_system_program_instruction_transfer_with_seed_t const * self );
    4919           0 : static inline ulong fd_system_program_instruction_transfer_with_seed_align( void ) { return FD_SYSTEM_PROGRAM_INSTRUCTION_TRANSFER_WITH_SEED_ALIGN; }
    4920             : int fd_system_program_instruction_transfer_with_seed_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4921             : void * fd_system_program_instruction_transfer_with_seed_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4922             : 
    4923             : void fd_system_program_instruction_new_disc( fd_system_program_instruction_t * self, uint discriminant );
    4924             : void fd_system_program_instruction_new( fd_system_program_instruction_t * self );
    4925             : int fd_system_program_instruction_encode( fd_system_program_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
    4926             : 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 );
    4927             : ulong fd_system_program_instruction_size( fd_system_program_instruction_t const * self );
    4928           0 : static inline ulong fd_system_program_instruction_align( void ) { return FD_SYSTEM_PROGRAM_INSTRUCTION_ALIGN; }
    4929             : int fd_system_program_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4930             : void * fd_system_program_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4931             : 
    4932             : FD_FN_PURE uchar fd_system_program_instruction_is_create_account( fd_system_program_instruction_t const * self );
    4933             : FD_FN_PURE uchar fd_system_program_instruction_is_assign( fd_system_program_instruction_t const * self );
    4934             : FD_FN_PURE uchar fd_system_program_instruction_is_transfer( fd_system_program_instruction_t const * self );
    4935             : FD_FN_PURE uchar fd_system_program_instruction_is_create_account_with_seed( fd_system_program_instruction_t const * self );
    4936             : FD_FN_PURE uchar fd_system_program_instruction_is_advance_nonce_account( fd_system_program_instruction_t const * self );
    4937             : FD_FN_PURE uchar fd_system_program_instruction_is_withdraw_nonce_account( fd_system_program_instruction_t const * self );
    4938             : FD_FN_PURE uchar fd_system_program_instruction_is_initialize_nonce_account( fd_system_program_instruction_t const * self );
    4939             : FD_FN_PURE uchar fd_system_program_instruction_is_authorize_nonce_account( fd_system_program_instruction_t const * self );
    4940             : FD_FN_PURE uchar fd_system_program_instruction_is_allocate( fd_system_program_instruction_t const * self );
    4941             : FD_FN_PURE uchar fd_system_program_instruction_is_allocate_with_seed( fd_system_program_instruction_t const * self );
    4942             : FD_FN_PURE uchar fd_system_program_instruction_is_assign_with_seed( fd_system_program_instruction_t const * self );
    4943             : FD_FN_PURE uchar fd_system_program_instruction_is_transfer_with_seed( fd_system_program_instruction_t const * self );
    4944             : FD_FN_PURE uchar fd_system_program_instruction_is_upgrade_nonce_account( fd_system_program_instruction_t const * self );
    4945             : enum {
    4946             : fd_system_program_instruction_enum_create_account = 0,
    4947             : fd_system_program_instruction_enum_assign = 1,
    4948             : fd_system_program_instruction_enum_transfer = 2,
    4949             : fd_system_program_instruction_enum_create_account_with_seed = 3,
    4950             : fd_system_program_instruction_enum_advance_nonce_account = 4,
    4951             : fd_system_program_instruction_enum_withdraw_nonce_account = 5,
    4952             : fd_system_program_instruction_enum_initialize_nonce_account = 6,
    4953             : fd_system_program_instruction_enum_authorize_nonce_account = 7,
    4954             : fd_system_program_instruction_enum_allocate = 8,
    4955             : fd_system_program_instruction_enum_allocate_with_seed = 9,
    4956             : fd_system_program_instruction_enum_assign_with_seed = 10,
    4957             : fd_system_program_instruction_enum_transfer_with_seed = 11,
    4958             : fd_system_program_instruction_enum_upgrade_nonce_account = 12,
    4959             : };
    4960           0 : static inline void fd_system_error_new_disc( fd_system_error_t * self, uint discriminant ) { self->discriminant = discriminant; }
    4961           0 : static inline void fd_system_error_new( fd_system_error_t * self ) { self->discriminant = (uint)ULONG_MAX; }
    4962             : int fd_system_error_encode( fd_system_error_t const * self, fd_bincode_encode_ctx_t * ctx );
    4963             : 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 );
    4964             : ulong fd_system_error_size( fd_system_error_t const * self );
    4965           0 : static inline ulong fd_system_error_align( void ) { return FD_SYSTEM_ERROR_ALIGN; }
    4966             : int fd_system_error_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    4967             : void * fd_system_error_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    4968             : 
    4969             : FD_FN_PURE uchar fd_system_error_is_account_already_in_use( fd_system_error_t const * self );
    4970             : FD_FN_PURE uchar fd_system_error_is_result_with_negative_lamports( fd_system_error_t const * self );
    4971             : FD_FN_PURE uchar fd_system_error_is_invalid_program_id( fd_system_error_t const * self );
    4972             : FD_FN_PURE uchar fd_system_error_is_invalid_account_data_length( fd_system_error_t const * self );
    4973             : FD_FN_PURE uchar fd_system_error_is_max_seed_length_exceeded( fd_system_error_t const * self );
    4974             : FD_FN_PURE uchar fd_system_error_is_address_with_seed_mismatch( fd_system_error_t const * self );
    4975             : FD_FN_PURE uchar fd_system_error_is_nonce_no_recent_blockhashes( fd_system_error_t const * self );
    4976             : FD_FN_PURE uchar fd_system_error_is_nonce_blockhash_not_expired( fd_system_error_t const * self );
    4977             : FD_FN_PURE uchar fd_system_error_is_nonce_unexpected_blockhash_value( fd_system_error_t const * self );
    4978             : enum {
    4979             : fd_system_error_enum_account_already_in_use = 0,
    4980             : fd_system_error_enum_result_with_negative_lamports = 1,
    4981             : fd_system_error_enum_invalid_program_id = 2,
    4982             : fd_system_error_enum_invalid_account_data_length = 3,
    4983             : fd_system_error_enum_max_seed_length_exceeded = 4,
    4984             : fd_system_error_enum_address_with_seed_mismatch = 5,
    4985             : fd_system_error_enum_nonce_no_recent_blockhashes = 6,
    4986             : fd_system_error_enum_nonce_blockhash_not_expired = 7,
    4987             : fd_system_error_enum_nonce_unexpected_blockhash_value = 8,
    4988             : };
    4989           0 : static inline void fd_stake_authorized_new( fd_stake_authorized_t * self ) { fd_memset( self, 0, sizeof(fd_stake_authorized_t) ); }
    4990             : int fd_stake_authorized_encode( fd_stake_authorized_t const * self, fd_bincode_encode_ctx_t * ctx );
    4991             : 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 );
    4992           0 : static inline ulong fd_stake_authorized_size( fd_stake_authorized_t const * self ) { (void)self; return 64UL; }
    4993           0 : static inline ulong fd_stake_authorized_align( void ) { return FD_STAKE_AUTHORIZED_ALIGN; }
    4994           0 : static inline int fd_stake_authorized_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    4995           0 :   *total_sz += sizeof(fd_stake_authorized_t);
    4996           0 :   if( (ulong)ctx->data + 64UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    4997           0 :   return 0;
    4998           0 : }
    4999             : void * fd_stake_authorized_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5000             : 
    5001           0 : static inline void fd_stake_lockup_new( fd_stake_lockup_t * self ) { fd_memset( self, 0, sizeof(fd_stake_lockup_t) ); }
    5002             : int fd_stake_lockup_encode( fd_stake_lockup_t const * self, fd_bincode_encode_ctx_t * ctx );
    5003             : 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 );
    5004           0 : static inline ulong fd_stake_lockup_size( fd_stake_lockup_t const * self ) { (void)self; return 48UL; }
    5005           0 : static inline ulong fd_stake_lockup_align( void ) { return FD_STAKE_LOCKUP_ALIGN; }
    5006           0 : static inline int fd_stake_lockup_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    5007           0 :   *total_sz += sizeof(fd_stake_lockup_t);
    5008           0 :   if( (ulong)ctx->data + 48UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    5009           0 :   return 0;
    5010           0 : }
    5011             : void * fd_stake_lockup_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5012             : 
    5013           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) ); }
    5014             : int fd_stake_instruction_initialize_encode( fd_stake_instruction_initialize_t const * self, fd_bincode_encode_ctx_t * ctx );
    5015             : 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 );
    5016           0 : static inline ulong fd_stake_instruction_initialize_size( fd_stake_instruction_initialize_t const * self ) { (void)self; return 112UL; }
    5017           0 : static inline ulong fd_stake_instruction_initialize_align( void ) { return FD_STAKE_INSTRUCTION_INITIALIZE_ALIGN; }
    5018           0 : static inline int fd_stake_instruction_initialize_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    5019           0 :   *total_sz += sizeof(fd_stake_instruction_initialize_t);
    5020           0 :   if( (ulong)ctx->data + 112UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    5021           0 :   return 0;
    5022           0 : }
    5023             : void * fd_stake_instruction_initialize_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5024             : 
    5025             : void fd_stake_lockup_custodian_args_new( fd_stake_lockup_custodian_args_t * self );
    5026             : int fd_stake_lockup_custodian_args_encode( fd_stake_lockup_custodian_args_t const * self, fd_bincode_encode_ctx_t * ctx );
    5027             : 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 );
    5028             : ulong fd_stake_lockup_custodian_args_size( fd_stake_lockup_custodian_args_t const * self );
    5029           0 : static inline ulong fd_stake_lockup_custodian_args_align( void ) { return FD_STAKE_LOCKUP_CUSTODIAN_ARGS_ALIGN; }
    5030             : int fd_stake_lockup_custodian_args_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5031             : void * fd_stake_lockup_custodian_args_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5032             : 
    5033           0 : static inline void fd_stake_authorize_new_disc( fd_stake_authorize_t * self, uint discriminant ) { self->discriminant = discriminant; }
    5034           0 : static inline void fd_stake_authorize_new( fd_stake_authorize_t * self ) { self->discriminant = (uint)ULONG_MAX; }
    5035             : int fd_stake_authorize_encode( fd_stake_authorize_t const * self, fd_bincode_encode_ctx_t * ctx );
    5036             : 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 );
    5037             : ulong fd_stake_authorize_size( fd_stake_authorize_t const * self );
    5038           0 : static inline ulong fd_stake_authorize_align( void ) { return FD_STAKE_AUTHORIZE_ALIGN; }
    5039             : int fd_stake_authorize_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5040             : void * fd_stake_authorize_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5041             : 
    5042             : FD_FN_PURE uchar fd_stake_authorize_is_staker( fd_stake_authorize_t const * self );
    5043             : FD_FN_PURE uchar fd_stake_authorize_is_withdrawer( fd_stake_authorize_t const * self );
    5044             : enum {
    5045             : fd_stake_authorize_enum_staker = 0,
    5046             : fd_stake_authorize_enum_withdrawer = 1,
    5047             : };
    5048             : void fd_stake_instruction_authorize_new( fd_stake_instruction_authorize_t * self );
    5049             : int fd_stake_instruction_authorize_encode( fd_stake_instruction_authorize_t const * self, fd_bincode_encode_ctx_t * ctx );
    5050             : 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 );
    5051           0 : static inline ulong fd_stake_instruction_authorize_size( fd_stake_instruction_authorize_t const * self ) { (void)self; return 36UL; }
    5052           0 : static inline ulong fd_stake_instruction_authorize_align( void ) { return FD_STAKE_INSTRUCTION_AUTHORIZE_ALIGN; }
    5053             : int fd_stake_instruction_authorize_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5054             : void * fd_stake_instruction_authorize_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5055             : 
    5056             : void fd_authorize_with_seed_args_new( fd_authorize_with_seed_args_t * self );
    5057             : int fd_authorize_with_seed_args_encode( fd_authorize_with_seed_args_t const * self, fd_bincode_encode_ctx_t * ctx );
    5058             : 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 );
    5059             : ulong fd_authorize_with_seed_args_size( fd_authorize_with_seed_args_t const * self );
    5060           0 : static inline ulong fd_authorize_with_seed_args_align( void ) { return FD_AUTHORIZE_WITH_SEED_ARGS_ALIGN; }
    5061             : int fd_authorize_with_seed_args_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5062             : void * fd_authorize_with_seed_args_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5063             : 
    5064             : void fd_authorize_checked_with_seed_args_new( fd_authorize_checked_with_seed_args_t * self );
    5065             : int fd_authorize_checked_with_seed_args_encode( fd_authorize_checked_with_seed_args_t const * self, fd_bincode_encode_ctx_t * ctx );
    5066             : 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 );
    5067             : ulong fd_authorize_checked_with_seed_args_size( fd_authorize_checked_with_seed_args_t const * self );
    5068           0 : static inline ulong fd_authorize_checked_with_seed_args_align( void ) { return FD_AUTHORIZE_CHECKED_WITH_SEED_ARGS_ALIGN; }
    5069             : int fd_authorize_checked_with_seed_args_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5070             : void * fd_authorize_checked_with_seed_args_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5071             : 
    5072             : void fd_lockup_checked_args_new( fd_lockup_checked_args_t * self );
    5073             : int fd_lockup_checked_args_encode( fd_lockup_checked_args_t const * self, fd_bincode_encode_ctx_t * ctx );
    5074             : 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 );
    5075             : ulong fd_lockup_checked_args_size( fd_lockup_checked_args_t const * self );
    5076           0 : static inline ulong fd_lockup_checked_args_align( void ) { return FD_LOCKUP_CHECKED_ARGS_ALIGN; }
    5077             : int fd_lockup_checked_args_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5078             : void * fd_lockup_checked_args_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5079             : 
    5080             : void fd_lockup_args_new( fd_lockup_args_t * self );
    5081             : int fd_lockup_args_encode( fd_lockup_args_t const * self, fd_bincode_encode_ctx_t * ctx );
    5082             : 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 );
    5083             : ulong fd_lockup_args_size( fd_lockup_args_t const * self );
    5084           0 : static inline ulong fd_lockup_args_align( void ) { return FD_LOCKUP_ARGS_ALIGN; }
    5085             : int fd_lockup_args_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5086             : void * fd_lockup_args_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5087             : 
    5088             : void fd_stake_instruction_new_disc( fd_stake_instruction_t * self, uint discriminant );
    5089             : void fd_stake_instruction_new( fd_stake_instruction_t * self );
    5090             : int fd_stake_instruction_encode( fd_stake_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
    5091             : 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 );
    5092             : ulong fd_stake_instruction_size( fd_stake_instruction_t const * self );
    5093           0 : static inline ulong fd_stake_instruction_align( void ) { return FD_STAKE_INSTRUCTION_ALIGN; }
    5094             : int fd_stake_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5095             : void * fd_stake_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5096             : 
    5097             : FD_FN_PURE uchar fd_stake_instruction_is_initialize( fd_stake_instruction_t const * self );
    5098             : FD_FN_PURE uchar fd_stake_instruction_is_authorize( fd_stake_instruction_t const * self );
    5099             : FD_FN_PURE uchar fd_stake_instruction_is_delegate_stake( fd_stake_instruction_t const * self );
    5100             : FD_FN_PURE uchar fd_stake_instruction_is_split( fd_stake_instruction_t const * self );
    5101             : FD_FN_PURE uchar fd_stake_instruction_is_withdraw( fd_stake_instruction_t const * self );
    5102             : FD_FN_PURE uchar fd_stake_instruction_is_deactivate( fd_stake_instruction_t const * self );
    5103             : FD_FN_PURE uchar fd_stake_instruction_is_set_lockup( fd_stake_instruction_t const * self );
    5104             : FD_FN_PURE uchar fd_stake_instruction_is_merge( fd_stake_instruction_t const * self );
    5105             : FD_FN_PURE uchar fd_stake_instruction_is_authorize_with_seed( fd_stake_instruction_t const * self );
    5106             : FD_FN_PURE uchar fd_stake_instruction_is_initialize_checked( fd_stake_instruction_t const * self );
    5107             : FD_FN_PURE uchar fd_stake_instruction_is_authorize_checked( fd_stake_instruction_t const * self );
    5108             : FD_FN_PURE uchar fd_stake_instruction_is_authorize_checked_with_seed( fd_stake_instruction_t const * self );
    5109             : FD_FN_PURE uchar fd_stake_instruction_is_set_lockup_checked( fd_stake_instruction_t const * self );
    5110             : FD_FN_PURE uchar fd_stake_instruction_is_get_minimum_delegation( fd_stake_instruction_t const * self );
    5111             : FD_FN_PURE uchar fd_stake_instruction_is_deactivate_delinquent( fd_stake_instruction_t const * self );
    5112             : FD_FN_PURE uchar fd_stake_instruction_is_redelegate( fd_stake_instruction_t const * self );
    5113             : FD_FN_PURE uchar fd_stake_instruction_is_move_stake( fd_stake_instruction_t const * self );
    5114             : FD_FN_PURE uchar fd_stake_instruction_is_move_lamports( fd_stake_instruction_t const * self );
    5115             : enum {
    5116             : fd_stake_instruction_enum_initialize = 0,
    5117             : fd_stake_instruction_enum_authorize = 1,
    5118             : fd_stake_instruction_enum_delegate_stake = 2,
    5119             : fd_stake_instruction_enum_split = 3,
    5120             : fd_stake_instruction_enum_withdraw = 4,
    5121             : fd_stake_instruction_enum_deactivate = 5,
    5122             : fd_stake_instruction_enum_set_lockup = 6,
    5123             : fd_stake_instruction_enum_merge = 7,
    5124             : fd_stake_instruction_enum_authorize_with_seed = 8,
    5125             : fd_stake_instruction_enum_initialize_checked = 9,
    5126             : fd_stake_instruction_enum_authorize_checked = 10,
    5127             : fd_stake_instruction_enum_authorize_checked_with_seed = 11,
    5128             : fd_stake_instruction_enum_set_lockup_checked = 12,
    5129             : fd_stake_instruction_enum_get_minimum_delegation = 13,
    5130             : fd_stake_instruction_enum_deactivate_delinquent = 14,
    5131             : fd_stake_instruction_enum_redelegate = 15,
    5132             : fd_stake_instruction_enum_move_stake = 16,
    5133             : fd_stake_instruction_enum_move_lamports = 17,
    5134             : };
    5135           0 : static inline void fd_stake_meta_new( fd_stake_meta_t * self ) { fd_memset( self, 0, sizeof(fd_stake_meta_t) ); }
    5136             : int fd_stake_meta_encode( fd_stake_meta_t const * self, fd_bincode_encode_ctx_t * ctx );
    5137             : 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 );
    5138           0 : static inline ulong fd_stake_meta_size( fd_stake_meta_t const * self ) { (void)self; return 120UL; }
    5139           0 : static inline ulong fd_stake_meta_align( void ) { return FD_STAKE_META_ALIGN; }
    5140           0 : static inline int fd_stake_meta_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    5141           0 :   *total_sz += sizeof(fd_stake_meta_t);
    5142           0 :   if( (ulong)ctx->data + 120UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    5143           0 :   return 0;
    5144           0 : }
    5145             : void * fd_stake_meta_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5146             : 
    5147           0 : static inline void fd_stake_flags_new( fd_stake_flags_t * self ) { fd_memset( self, 0, sizeof(fd_stake_flags_t) ); }
    5148             : int fd_stake_flags_encode( fd_stake_flags_t const * self, fd_bincode_encode_ctx_t * ctx );
    5149             : 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 );
    5150           0 : static inline ulong fd_stake_flags_size( fd_stake_flags_t const * self ) { (void)self; return 1UL; }
    5151           0 : static inline ulong fd_stake_flags_align( void ) { return FD_STAKE_FLAGS_ALIGN; }
    5152           0 : static inline int fd_stake_flags_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    5153           0 :   *total_sz += sizeof(fd_stake_flags_t);
    5154           0 :   if( (ulong)ctx->data + 1UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    5155           0 :   return 0;
    5156           0 : }
    5157             : void * fd_stake_flags_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5158             : 
    5159           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) ); }
    5160             : int fd_stake_state_v2_initialized_encode( fd_stake_state_v2_initialized_t const * self, fd_bincode_encode_ctx_t * ctx );
    5161             : 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 );
    5162           0 : static inline ulong fd_stake_state_v2_initialized_size( fd_stake_state_v2_initialized_t const * self ) { (void)self; return 120UL; }
    5163           0 : static inline ulong fd_stake_state_v2_initialized_align( void ) { return FD_STAKE_STATE_V2_INITIALIZED_ALIGN; }
    5164           0 : static inline int fd_stake_state_v2_initialized_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    5165           0 :   *total_sz += sizeof(fd_stake_state_v2_initialized_t);
    5166           0 :   if( (ulong)ctx->data + 120UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    5167           0 :   return 0;
    5168           0 : }
    5169             : void * fd_stake_state_v2_initialized_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5170             : 
    5171          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) ); }
    5172             : int fd_stake_state_v2_stake_encode( fd_stake_state_v2_stake_t const * self, fd_bincode_encode_ctx_t * ctx );
    5173             : 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 );
    5174           0 : static inline ulong fd_stake_state_v2_stake_size( fd_stake_state_v2_stake_t const * self ) { (void)self; return 193UL; }
    5175           0 : static inline ulong fd_stake_state_v2_stake_align( void ) { return FD_STAKE_STATE_V2_STAKE_ALIGN; }
    5176           0 : static inline int fd_stake_state_v2_stake_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    5177           0 :   *total_sz += sizeof(fd_stake_state_v2_stake_t);
    5178           0 :   if( (ulong)ctx->data + 193UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    5179           0 :   return 0;
    5180           0 : }
    5181             : void * fd_stake_state_v2_stake_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5182             : 
    5183             : void fd_stake_state_v2_new_disc( fd_stake_state_v2_t * self, uint discriminant );
    5184             : void fd_stake_state_v2_new( fd_stake_state_v2_t * self );
    5185             : int fd_stake_state_v2_encode( fd_stake_state_v2_t const * self, fd_bincode_encode_ctx_t * ctx );
    5186             : 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 );
    5187             : ulong fd_stake_state_v2_size( fd_stake_state_v2_t const * self );
    5188           0 : static inline ulong fd_stake_state_v2_align( void ) { return FD_STAKE_STATE_V2_ALIGN; }
    5189             : int fd_stake_state_v2_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5190             : void * fd_stake_state_v2_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5191             : 
    5192             : FD_FN_PURE uchar fd_stake_state_v2_is_uninitialized( fd_stake_state_v2_t const * self );
    5193             : FD_FN_PURE uchar fd_stake_state_v2_is_initialized( fd_stake_state_v2_t const * self );
    5194             : FD_FN_PURE uchar fd_stake_state_v2_is_stake( fd_stake_state_v2_t const * self );
    5195             : FD_FN_PURE uchar fd_stake_state_v2_is_rewards_pool( fd_stake_state_v2_t const * self );
    5196             : enum {
    5197             : fd_stake_state_v2_enum_uninitialized = 0,
    5198             : fd_stake_state_v2_enum_initialized = 1,
    5199             : fd_stake_state_v2_enum_stake = 2,
    5200             : fd_stake_state_v2_enum_rewards_pool = 3,
    5201             : };
    5202           0 : static inline void fd_nonce_data_new( fd_nonce_data_t * self ) { fd_memset( self, 0, sizeof(fd_nonce_data_t) ); }
    5203             : int fd_nonce_data_encode( fd_nonce_data_t const * self, fd_bincode_encode_ctx_t * ctx );
    5204             : 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 );
    5205           0 : static inline ulong fd_nonce_data_size( fd_nonce_data_t const * self ) { (void)self; return 72UL; }
    5206           0 : static inline ulong fd_nonce_data_align( void ) { return FD_NONCE_DATA_ALIGN; }
    5207           0 : static inline int fd_nonce_data_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    5208           0 :   *total_sz += sizeof(fd_nonce_data_t);
    5209           0 :   if( (ulong)ctx->data + 72UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    5210           0 :   return 0;
    5211           0 : }
    5212             : void * fd_nonce_data_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5213             : 
    5214             : void fd_nonce_state_new_disc( fd_nonce_state_t * self, uint discriminant );
    5215             : void fd_nonce_state_new( fd_nonce_state_t * self );
    5216             : int fd_nonce_state_encode( fd_nonce_state_t const * self, fd_bincode_encode_ctx_t * ctx );
    5217             : 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 );
    5218             : ulong fd_nonce_state_size( fd_nonce_state_t const * self );
    5219           0 : static inline ulong fd_nonce_state_align( void ) { return FD_NONCE_STATE_ALIGN; }
    5220             : int fd_nonce_state_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5221             : void * fd_nonce_state_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5222             : 
    5223             : FD_FN_PURE uchar fd_nonce_state_is_uninitialized( fd_nonce_state_t const * self );
    5224             : FD_FN_PURE uchar fd_nonce_state_is_initialized( fd_nonce_state_t const * self );
    5225             : enum {
    5226             : fd_nonce_state_enum_uninitialized = 0,
    5227             : fd_nonce_state_enum_initialized = 1,
    5228             : };
    5229             : void fd_nonce_state_versions_new_disc( fd_nonce_state_versions_t * self, uint discriminant );
    5230             : void fd_nonce_state_versions_new( fd_nonce_state_versions_t * self );
    5231             : int fd_nonce_state_versions_encode( fd_nonce_state_versions_t const * self, fd_bincode_encode_ctx_t * ctx );
    5232             : 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 );
    5233             : ulong fd_nonce_state_versions_size( fd_nonce_state_versions_t const * self );
    5234           0 : static inline ulong fd_nonce_state_versions_align( void ) { return FD_NONCE_STATE_VERSIONS_ALIGN; }
    5235             : int fd_nonce_state_versions_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5236             : void * fd_nonce_state_versions_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5237             : 
    5238             : FD_FN_PURE uchar fd_nonce_state_versions_is_legacy( fd_nonce_state_versions_t const * self );
    5239             : FD_FN_PURE uchar fd_nonce_state_versions_is_current( fd_nonce_state_versions_t const * self );
    5240             : enum {
    5241             : fd_nonce_state_versions_enum_legacy = 0,
    5242             : fd_nonce_state_versions_enum_current = 1,
    5243             : };
    5244           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) ); }
    5245             : 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 );
    5246             : 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 );
    5247           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; }
    5248           0 : static inline ulong fd_compute_budget_program_instruction_request_units_deprecated_align( void ) { return FD_COMPUTE_BUDGET_PROGRAM_INSTRUCTION_REQUEST_UNITS_DEPRECATED_ALIGN; }
    5249           0 : static inline int fd_compute_budget_program_instruction_request_units_deprecated_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    5250           0 :   *total_sz += sizeof(fd_compute_budget_program_instruction_request_units_deprecated_t);
    5251           0 :   if( (ulong)ctx->data + 8UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    5252           0 :   return 0;
    5253           0 : }
    5254             : void * fd_compute_budget_program_instruction_request_units_deprecated_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5255             : 
    5256             : void fd_compute_budget_program_instruction_new_disc( fd_compute_budget_program_instruction_t * self, uint discriminant );
    5257             : void fd_compute_budget_program_instruction_new( fd_compute_budget_program_instruction_t * self );
    5258             : int fd_compute_budget_program_instruction_encode( fd_compute_budget_program_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
    5259             : 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 );
    5260             : ulong fd_compute_budget_program_instruction_size( fd_compute_budget_program_instruction_t const * self );
    5261           0 : static inline ulong fd_compute_budget_program_instruction_align( void ) { return FD_COMPUTE_BUDGET_PROGRAM_INSTRUCTION_ALIGN; }
    5262             : int fd_compute_budget_program_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5263             : void * fd_compute_budget_program_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5264             : 
    5265             : FD_FN_PURE uchar fd_compute_budget_program_instruction_is_request_units_deprecated( fd_compute_budget_program_instruction_t const * self );
    5266             : FD_FN_PURE uchar fd_compute_budget_program_instruction_is_request_heap_frame( fd_compute_budget_program_instruction_t const * self );
    5267             : FD_FN_PURE uchar fd_compute_budget_program_instruction_is_set_compute_unit_limit( fd_compute_budget_program_instruction_t const * self );
    5268             : FD_FN_PURE uchar fd_compute_budget_program_instruction_is_set_compute_unit_price( fd_compute_budget_program_instruction_t const * self );
    5269             : FD_FN_PURE uchar fd_compute_budget_program_instruction_is_set_loaded_accounts_data_size_limit( fd_compute_budget_program_instruction_t const * self );
    5270             : enum {
    5271             : fd_compute_budget_program_instruction_enum_request_units_deprecated = 0,
    5272             : fd_compute_budget_program_instruction_enum_request_heap_frame = 1,
    5273             : fd_compute_budget_program_instruction_enum_set_compute_unit_limit = 2,
    5274             : fd_compute_budget_program_instruction_enum_set_compute_unit_price = 3,
    5275             : fd_compute_budget_program_instruction_enum_set_loaded_accounts_data_size_limit = 4,
    5276             : };
    5277             : void fd_config_keys_new( fd_config_keys_t * self );
    5278             : int fd_config_keys_encode( fd_config_keys_t const * self, fd_bincode_encode_ctx_t * ctx );
    5279             : 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 );
    5280             : ulong fd_config_keys_size( fd_config_keys_t const * self );
    5281           0 : static inline ulong fd_config_keys_align( void ) { return FD_CONFIG_KEYS_ALIGN; }
    5282             : int fd_config_keys_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5283             : void * fd_config_keys_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5284             : 
    5285             : void fd_bpf_loader_program_instruction_write_new( fd_bpf_loader_program_instruction_write_t * self );
    5286             : int fd_bpf_loader_program_instruction_write_encode( fd_bpf_loader_program_instruction_write_t const * self, fd_bincode_encode_ctx_t * ctx );
    5287             : 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 );
    5288             : ulong fd_bpf_loader_program_instruction_write_size( fd_bpf_loader_program_instruction_write_t const * self );
    5289           0 : static inline ulong fd_bpf_loader_program_instruction_write_align( void ) { return FD_BPF_LOADER_PROGRAM_INSTRUCTION_WRITE_ALIGN; }
    5290             : int fd_bpf_loader_program_instruction_write_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5291             : void * fd_bpf_loader_program_instruction_write_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5292             : 
    5293             : void fd_bpf_loader_program_instruction_new_disc( fd_bpf_loader_program_instruction_t * self, uint discriminant );
    5294             : void fd_bpf_loader_program_instruction_new( fd_bpf_loader_program_instruction_t * self );
    5295             : int fd_bpf_loader_program_instruction_encode( fd_bpf_loader_program_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
    5296             : 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 );
    5297             : ulong fd_bpf_loader_program_instruction_size( fd_bpf_loader_program_instruction_t const * self );
    5298           0 : static inline ulong fd_bpf_loader_program_instruction_align( void ) { return FD_BPF_LOADER_PROGRAM_INSTRUCTION_ALIGN; }
    5299             : int fd_bpf_loader_program_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5300             : void * fd_bpf_loader_program_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5301             : 
    5302             : FD_FN_PURE uchar fd_bpf_loader_program_instruction_is_write( fd_bpf_loader_program_instruction_t const * self );
    5303             : FD_FN_PURE uchar fd_bpf_loader_program_instruction_is_finalize( fd_bpf_loader_program_instruction_t const * self );
    5304             : enum {
    5305             : fd_bpf_loader_program_instruction_enum_write = 0,
    5306             : fd_bpf_loader_program_instruction_enum_finalize = 1,
    5307             : };
    5308             : void fd_loader_v4_program_instruction_write_new( fd_loader_v4_program_instruction_write_t * self );
    5309             : int fd_loader_v4_program_instruction_write_encode( fd_loader_v4_program_instruction_write_t const * self, fd_bincode_encode_ctx_t * ctx );
    5310             : 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 );
    5311             : ulong fd_loader_v4_program_instruction_write_size( fd_loader_v4_program_instruction_write_t const * self );
    5312           0 : static inline ulong fd_loader_v4_program_instruction_write_align( void ) { return FD_LOADER_V4_PROGRAM_INSTRUCTION_WRITE_ALIGN; }
    5313             : int fd_loader_v4_program_instruction_write_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5314             : void * fd_loader_v4_program_instruction_write_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5315             : 
    5316           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) ); }
    5317             : int fd_loader_v4_program_instruction_copy_encode( fd_loader_v4_program_instruction_copy_t const * self, fd_bincode_encode_ctx_t * ctx );
    5318             : 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 );
    5319           0 : static inline ulong fd_loader_v4_program_instruction_copy_size( fd_loader_v4_program_instruction_copy_t const * self ) { (void)self; return 12UL; }
    5320           0 : static inline ulong fd_loader_v4_program_instruction_copy_align( void ) { return FD_LOADER_V4_PROGRAM_INSTRUCTION_COPY_ALIGN; }
    5321           0 : static inline int fd_loader_v4_program_instruction_copy_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    5322           0 :   *total_sz += sizeof(fd_loader_v4_program_instruction_copy_t);
    5323           0 :   if( (ulong)ctx->data + 12UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    5324           0 :   return 0;
    5325           0 : }
    5326             : void * fd_loader_v4_program_instruction_copy_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5327             : 
    5328           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) ); }
    5329             : 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 );
    5330             : 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 );
    5331           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; }
    5332           0 : static inline ulong fd_loader_v4_program_instruction_set_program_length_align( void ) { return FD_LOADER_V4_PROGRAM_INSTRUCTION_SET_PROGRAM_LENGTH_ALIGN; }
    5333           0 : static inline int fd_loader_v4_program_instruction_set_program_length_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    5334           0 :   *total_sz += sizeof(fd_loader_v4_program_instruction_set_program_length_t);
    5335           0 :   if( (ulong)ctx->data + 4UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    5336           0 :   return 0;
    5337           0 : }
    5338             : void * fd_loader_v4_program_instruction_set_program_length_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5339             : 
    5340             : void fd_loader_v4_program_instruction_new_disc( fd_loader_v4_program_instruction_t * self, uint discriminant );
    5341             : void fd_loader_v4_program_instruction_new( fd_loader_v4_program_instruction_t * self );
    5342             : int fd_loader_v4_program_instruction_encode( fd_loader_v4_program_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
    5343             : 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 );
    5344             : ulong fd_loader_v4_program_instruction_size( fd_loader_v4_program_instruction_t const * self );
    5345           0 : static inline ulong fd_loader_v4_program_instruction_align( void ) { return FD_LOADER_V4_PROGRAM_INSTRUCTION_ALIGN; }
    5346             : int fd_loader_v4_program_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5347             : void * fd_loader_v4_program_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5348             : 
    5349             : FD_FN_PURE uchar fd_loader_v4_program_instruction_is_write( fd_loader_v4_program_instruction_t const * self );
    5350             : FD_FN_PURE uchar fd_loader_v4_program_instruction_is_copy( fd_loader_v4_program_instruction_t const * self );
    5351             : FD_FN_PURE uchar fd_loader_v4_program_instruction_is_set_program_length( fd_loader_v4_program_instruction_t const * self );
    5352             : FD_FN_PURE uchar fd_loader_v4_program_instruction_is_deploy( fd_loader_v4_program_instruction_t const * self );
    5353             : FD_FN_PURE uchar fd_loader_v4_program_instruction_is_retract( fd_loader_v4_program_instruction_t const * self );
    5354             : FD_FN_PURE uchar fd_loader_v4_program_instruction_is_transfer_authority( fd_loader_v4_program_instruction_t const * self );
    5355             : FD_FN_PURE uchar fd_loader_v4_program_instruction_is_finalize( fd_loader_v4_program_instruction_t const * self );
    5356             : enum {
    5357             : fd_loader_v4_program_instruction_enum_write = 0,
    5358             : fd_loader_v4_program_instruction_enum_copy = 1,
    5359             : fd_loader_v4_program_instruction_enum_set_program_length = 2,
    5360             : fd_loader_v4_program_instruction_enum_deploy = 3,
    5361             : fd_loader_v4_program_instruction_enum_retract = 4,
    5362             : fd_loader_v4_program_instruction_enum_transfer_authority = 5,
    5363             : fd_loader_v4_program_instruction_enum_finalize = 6,
    5364             : };
    5365             : void fd_bpf_upgradeable_loader_program_instruction_write_new( fd_bpf_upgradeable_loader_program_instruction_write_t * self );
    5366             : 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 );
    5367             : 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 );
    5368             : ulong fd_bpf_upgradeable_loader_program_instruction_write_size( fd_bpf_upgradeable_loader_program_instruction_write_t const * self );
    5369           0 : static inline ulong fd_bpf_upgradeable_loader_program_instruction_write_align( void ) { return FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_WRITE_ALIGN; }
    5370             : int fd_bpf_upgradeable_loader_program_instruction_write_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5371             : void * fd_bpf_upgradeable_loader_program_instruction_write_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5372             : 
    5373           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) ); }
    5374             : 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 );
    5375             : 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 );
    5376           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; }
    5377           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; }
    5378           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 ) {
    5379           0 :   *total_sz += sizeof(fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_t);
    5380           0 :   if( (ulong)ctx->data + 8UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    5381           0 :   return 0;
    5382           0 : }
    5383             : void * fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5384             : 
    5385           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) ); }
    5386             : 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 );
    5387             : 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 );
    5388           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; }
    5389           0 : static inline ulong fd_bpf_upgradeable_loader_program_instruction_extend_program_align( void ) { return FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_EXTEND_PROGRAM_ALIGN; }
    5390           0 : static inline int fd_bpf_upgradeable_loader_program_instruction_extend_program_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    5391           0 :   *total_sz += sizeof(fd_bpf_upgradeable_loader_program_instruction_extend_program_t);
    5392           0 :   if( (ulong)ctx->data + 4UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    5393           0 :   return 0;
    5394           0 : }
    5395             : void * fd_bpf_upgradeable_loader_program_instruction_extend_program_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5396             : 
    5397           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) ); }
    5398             : 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 );
    5399             : 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 );
    5400           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; }
    5401           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; }
    5402           0 : static inline int fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    5403           0 :   *total_sz += sizeof(fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_t);
    5404           0 :   if( (ulong)ctx->data + 4UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    5405           0 :   return 0;
    5406           0 : }
    5407             : void * fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5408             : 
    5409             : void fd_bpf_upgradeable_loader_program_instruction_new_disc( fd_bpf_upgradeable_loader_program_instruction_t * self, uint discriminant );
    5410             : void fd_bpf_upgradeable_loader_program_instruction_new( fd_bpf_upgradeable_loader_program_instruction_t * self );
    5411             : int fd_bpf_upgradeable_loader_program_instruction_encode( fd_bpf_upgradeable_loader_program_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
    5412             : 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 );
    5413             : ulong fd_bpf_upgradeable_loader_program_instruction_size( fd_bpf_upgradeable_loader_program_instruction_t const * self );
    5414           0 : static inline ulong fd_bpf_upgradeable_loader_program_instruction_align( void ) { return FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_ALIGN; }
    5415             : int fd_bpf_upgradeable_loader_program_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5416             : void * fd_bpf_upgradeable_loader_program_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5417             : 
    5418             : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_initialize_buffer( fd_bpf_upgradeable_loader_program_instruction_t const * self );
    5419             : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_write( fd_bpf_upgradeable_loader_program_instruction_t const * self );
    5420             : 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 );
    5421             : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_upgrade( fd_bpf_upgradeable_loader_program_instruction_t const * self );
    5422             : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_set_authority( fd_bpf_upgradeable_loader_program_instruction_t const * self );
    5423             : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_close( fd_bpf_upgradeable_loader_program_instruction_t const * self );
    5424             : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_extend_program( fd_bpf_upgradeable_loader_program_instruction_t const * self );
    5425             : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_set_authority_checked( fd_bpf_upgradeable_loader_program_instruction_t const * self );
    5426             : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_migrate( fd_bpf_upgradeable_loader_program_instruction_t const * self );
    5427             : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_extend_program_checked( fd_bpf_upgradeable_loader_program_instruction_t const * self );
    5428             : enum {
    5429             : fd_bpf_upgradeable_loader_program_instruction_enum_initialize_buffer = 0,
    5430             : fd_bpf_upgradeable_loader_program_instruction_enum_write = 1,
    5431             : fd_bpf_upgradeable_loader_program_instruction_enum_deploy_with_max_data_len = 2,
    5432             : fd_bpf_upgradeable_loader_program_instruction_enum_upgrade = 3,
    5433             : fd_bpf_upgradeable_loader_program_instruction_enum_set_authority = 4,
    5434             : fd_bpf_upgradeable_loader_program_instruction_enum_close = 5,
    5435             : fd_bpf_upgradeable_loader_program_instruction_enum_extend_program = 6,
    5436             : fd_bpf_upgradeable_loader_program_instruction_enum_set_authority_checked = 7,
    5437             : fd_bpf_upgradeable_loader_program_instruction_enum_migrate = 8,
    5438             : fd_bpf_upgradeable_loader_program_instruction_enum_extend_program_checked = 9,
    5439             : };
    5440             : void fd_bpf_upgradeable_loader_state_buffer_new( fd_bpf_upgradeable_loader_state_buffer_t * self );
    5441             : int fd_bpf_upgradeable_loader_state_buffer_encode( fd_bpf_upgradeable_loader_state_buffer_t const * self, fd_bincode_encode_ctx_t * ctx );
    5442             : 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 );
    5443             : ulong fd_bpf_upgradeable_loader_state_buffer_size( fd_bpf_upgradeable_loader_state_buffer_t const * self );
    5444           0 : static inline ulong fd_bpf_upgradeable_loader_state_buffer_align( void ) { return FD_BPF_UPGRADEABLE_LOADER_STATE_BUFFER_ALIGN; }
    5445             : int fd_bpf_upgradeable_loader_state_buffer_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5446             : void * fd_bpf_upgradeable_loader_state_buffer_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5447             : 
    5448           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) ); }
    5449             : int fd_bpf_upgradeable_loader_state_program_encode( fd_bpf_upgradeable_loader_state_program_t const * self, fd_bincode_encode_ctx_t * ctx );
    5450             : 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 );
    5451           0 : static inline ulong fd_bpf_upgradeable_loader_state_program_size( fd_bpf_upgradeable_loader_state_program_t const * self ) { (void)self; return 32UL; }
    5452           0 : static inline ulong fd_bpf_upgradeable_loader_state_program_align( void ) { return FD_BPF_UPGRADEABLE_LOADER_STATE_PROGRAM_ALIGN; }
    5453           0 : static inline int fd_bpf_upgradeable_loader_state_program_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    5454           0 :   *total_sz += sizeof(fd_bpf_upgradeable_loader_state_program_t);
    5455           0 :   if( (ulong)ctx->data + 32UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    5456           0 :   return 0;
    5457           0 : }
    5458             : void * fd_bpf_upgradeable_loader_state_program_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5459             : 
    5460             : void fd_bpf_upgradeable_loader_state_program_data_new( fd_bpf_upgradeable_loader_state_program_data_t * self );
    5461             : 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 );
    5462             : 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 );
    5463             : ulong fd_bpf_upgradeable_loader_state_program_data_size( fd_bpf_upgradeable_loader_state_program_data_t const * self );
    5464           0 : static inline ulong fd_bpf_upgradeable_loader_state_program_data_align( void ) { return FD_BPF_UPGRADEABLE_LOADER_STATE_PROGRAM_DATA_ALIGN; }
    5465             : int fd_bpf_upgradeable_loader_state_program_data_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5466             : void * fd_bpf_upgradeable_loader_state_program_data_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5467             : 
    5468             : void fd_bpf_upgradeable_loader_state_new_disc( fd_bpf_upgradeable_loader_state_t * self, uint discriminant );
    5469             : void fd_bpf_upgradeable_loader_state_new( fd_bpf_upgradeable_loader_state_t * self );
    5470             : int fd_bpf_upgradeable_loader_state_encode( fd_bpf_upgradeable_loader_state_t const * self, fd_bincode_encode_ctx_t * ctx );
    5471             : 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 );
    5472             : ulong fd_bpf_upgradeable_loader_state_size( fd_bpf_upgradeable_loader_state_t const * self );
    5473           0 : static inline ulong fd_bpf_upgradeable_loader_state_align( void ) { return FD_BPF_UPGRADEABLE_LOADER_STATE_ALIGN; }
    5474             : int fd_bpf_upgradeable_loader_state_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5475             : void * fd_bpf_upgradeable_loader_state_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5476             : 
    5477             : FD_FN_PURE uchar fd_bpf_upgradeable_loader_state_is_uninitialized( fd_bpf_upgradeable_loader_state_t const * self );
    5478             : FD_FN_PURE uchar fd_bpf_upgradeable_loader_state_is_buffer( fd_bpf_upgradeable_loader_state_t const * self );
    5479             : FD_FN_PURE uchar fd_bpf_upgradeable_loader_state_is_program( fd_bpf_upgradeable_loader_state_t const * self );
    5480             : FD_FN_PURE uchar fd_bpf_upgradeable_loader_state_is_program_data( fd_bpf_upgradeable_loader_state_t const * self );
    5481             : enum {
    5482             : fd_bpf_upgradeable_loader_state_enum_uninitialized = 0,
    5483             : fd_bpf_upgradeable_loader_state_enum_buffer = 1,
    5484             : fd_bpf_upgradeable_loader_state_enum_program = 2,
    5485             : fd_bpf_upgradeable_loader_state_enum_program_data = 3,
    5486             : };
    5487           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) ); }
    5488             : int fd_loader_v4_state_encode( fd_loader_v4_state_t const * self, fd_bincode_encode_ctx_t * ctx );
    5489             : 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 );
    5490           0 : static inline ulong fd_loader_v4_state_size( fd_loader_v4_state_t const * self ) { (void)self; return 48UL; }
    5491           0 : static inline ulong fd_loader_v4_state_align( void ) { return FD_LOADER_V4_STATE_ALIGN; }
    5492           0 : static inline int fd_loader_v4_state_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    5493           0 :   *total_sz += sizeof(fd_loader_v4_state_t);
    5494           0 :   if( (ulong)ctx->data + 48UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    5495           0 :   return 0;
    5496           0 : }
    5497             : void * fd_loader_v4_state_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5498             : 
    5499             : void fd_frozen_hash_status_new( fd_frozen_hash_status_t * self );
    5500             : int fd_frozen_hash_status_encode( fd_frozen_hash_status_t const * self, fd_bincode_encode_ctx_t * ctx );
    5501             : 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 );
    5502           0 : static inline ulong fd_frozen_hash_status_size( fd_frozen_hash_status_t const * self ) { (void)self; return 33UL; }
    5503           0 : static inline ulong fd_frozen_hash_status_align( void ) { return FD_FROZEN_HASH_STATUS_ALIGN; }
    5504             : int fd_frozen_hash_status_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5505             : void * fd_frozen_hash_status_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5506             : 
    5507             : void fd_frozen_hash_versioned_new_disc( fd_frozen_hash_versioned_t * self, uint discriminant );
    5508             : void fd_frozen_hash_versioned_new( fd_frozen_hash_versioned_t * self );
    5509             : int fd_frozen_hash_versioned_encode( fd_frozen_hash_versioned_t const * self, fd_bincode_encode_ctx_t * ctx );
    5510             : 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 );
    5511             : ulong fd_frozen_hash_versioned_size( fd_frozen_hash_versioned_t const * self );
    5512           0 : static inline ulong fd_frozen_hash_versioned_align( void ) { return FD_FROZEN_HASH_VERSIONED_ALIGN; }
    5513             : int fd_frozen_hash_versioned_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5514             : void * fd_frozen_hash_versioned_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5515             : 
    5516             : FD_FN_PURE uchar fd_frozen_hash_versioned_is_current( fd_frozen_hash_versioned_t const * self );
    5517             : enum {
    5518             : fd_frozen_hash_versioned_enum_current = 0,
    5519             : };
    5520             : void fd_lookup_table_meta_new( fd_lookup_table_meta_t * self );
    5521             : int fd_lookup_table_meta_encode( fd_lookup_table_meta_t const * self, fd_bincode_encode_ctx_t * ctx );
    5522             : 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 );
    5523             : ulong fd_lookup_table_meta_size( fd_lookup_table_meta_t const * self );
    5524           0 : static inline ulong fd_lookup_table_meta_align( void ) { return FD_LOOKUP_TABLE_META_ALIGN; }
    5525             : int fd_lookup_table_meta_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5526             : void * fd_lookup_table_meta_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5527             : 
    5528             : void fd_address_lookup_table_new( fd_address_lookup_table_t * self );
    5529             : int fd_address_lookup_table_encode( fd_address_lookup_table_t const * self, fd_bincode_encode_ctx_t * ctx );
    5530             : 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 );
    5531             : ulong fd_address_lookup_table_size( fd_address_lookup_table_t const * self );
    5532           0 : static inline ulong fd_address_lookup_table_align( void ) { return FD_ADDRESS_LOOKUP_TABLE_ALIGN; }
    5533             : int fd_address_lookup_table_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5534             : void * fd_address_lookup_table_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5535             : 
    5536             : void fd_address_lookup_table_state_new_disc( fd_address_lookup_table_state_t * self, uint discriminant );
    5537             : void fd_address_lookup_table_state_new( fd_address_lookup_table_state_t * self );
    5538             : int fd_address_lookup_table_state_encode( fd_address_lookup_table_state_t const * self, fd_bincode_encode_ctx_t * ctx );
    5539             : 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 );
    5540             : ulong fd_address_lookup_table_state_size( fd_address_lookup_table_state_t const * self );
    5541           0 : static inline ulong fd_address_lookup_table_state_align( void ) { return FD_ADDRESS_LOOKUP_TABLE_STATE_ALIGN; }
    5542             : int fd_address_lookup_table_state_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5543             : void * fd_address_lookup_table_state_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5544             : 
    5545             : FD_FN_PURE uchar fd_address_lookup_table_state_is_uninitialized( fd_address_lookup_table_state_t const * self );
    5546             : FD_FN_PURE uchar fd_address_lookup_table_state_is_lookup_table( fd_address_lookup_table_state_t const * self );
    5547             : enum {
    5548             : fd_address_lookup_table_state_enum_uninitialized = 0,
    5549             : fd_address_lookup_table_state_enum_lookup_table = 1,
    5550             : };
    5551           0 : static inline void fd_gossip_ping_new( fd_gossip_ping_t * self ) { fd_memset( self, 0, sizeof(fd_gossip_ping_t) ); }
    5552             : int fd_gossip_ping_encode( fd_gossip_ping_t const * self, fd_bincode_encode_ctx_t * ctx );
    5553             : 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 );
    5554           0 : static inline ulong fd_gossip_ping_size( fd_gossip_ping_t const * self ) { (void)self; return 128UL; }
    5555           0 : static inline ulong fd_gossip_ping_align( void ) { return FD_GOSSIP_PING_ALIGN; }
    5556           0 : static inline int fd_gossip_ping_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    5557           0 :   *total_sz += sizeof(fd_gossip_ping_t);
    5558           0 :   if( (ulong)ctx->data + 128UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    5559           0 :   return 0;
    5560           0 : }
    5561             : void * fd_gossip_ping_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5562             : 
    5563             : void fd_gossip_ip_addr_new_disc( fd_gossip_ip_addr_t * self, uint discriminant );
    5564             : void fd_gossip_ip_addr_new( fd_gossip_ip_addr_t * self );
    5565             : int fd_gossip_ip_addr_encode( fd_gossip_ip_addr_t const * self, fd_bincode_encode_ctx_t * ctx );
    5566             : void fd_gossip_ip_addr_walk( void * w, fd_gossip_ip_addr_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5567             : ulong fd_gossip_ip_addr_size( fd_gossip_ip_addr_t const * self );
    5568           0 : static inline ulong fd_gossip_ip_addr_align( void ) { return FD_GOSSIP_IP_ADDR_ALIGN; }
    5569             : int fd_gossip_ip_addr_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5570             : void * fd_gossip_ip_addr_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5571             : 
    5572             : FD_FN_PURE uchar fd_gossip_ip_addr_is_ip4( fd_gossip_ip_addr_t const * self );
    5573             : FD_FN_PURE uchar fd_gossip_ip_addr_is_ip6( fd_gossip_ip_addr_t const * self );
    5574             : enum {
    5575             : fd_gossip_ip_addr_enum_ip4 = 0,
    5576             : fd_gossip_ip_addr_enum_ip6 = 1,
    5577             : };
    5578             : void fd_gossip_prune_data_new( fd_gossip_prune_data_t * self );
    5579             : int fd_gossip_prune_data_encode( fd_gossip_prune_data_t const * self, fd_bincode_encode_ctx_t * ctx );
    5580             : void fd_gossip_prune_data_walk( void * w, fd_gossip_prune_data_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5581             : ulong fd_gossip_prune_data_size( fd_gossip_prune_data_t const * self );
    5582           0 : static inline ulong fd_gossip_prune_data_align( void ) { return FD_GOSSIP_PRUNE_DATA_ALIGN; }
    5583             : int fd_gossip_prune_data_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5584             : void * fd_gossip_prune_data_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5585             : 
    5586             : void fd_gossip_prune_sign_data_new( fd_gossip_prune_sign_data_t * self );
    5587             : int fd_gossip_prune_sign_data_encode( fd_gossip_prune_sign_data_t const * self, fd_bincode_encode_ctx_t * ctx );
    5588             : void fd_gossip_prune_sign_data_walk( void * w, fd_gossip_prune_sign_data_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5589             : ulong fd_gossip_prune_sign_data_size( fd_gossip_prune_sign_data_t const * self );
    5590           0 : static inline ulong fd_gossip_prune_sign_data_align( void ) { return FD_GOSSIP_PRUNE_SIGN_DATA_ALIGN; }
    5591             : int fd_gossip_prune_sign_data_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5592             : void * fd_gossip_prune_sign_data_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5593             : 
    5594             : void fd_gossip_prune_sign_data_with_prefix_new( fd_gossip_prune_sign_data_with_prefix_t * self );
    5595             : int fd_gossip_prune_sign_data_with_prefix_encode( fd_gossip_prune_sign_data_with_prefix_t const * self, fd_bincode_encode_ctx_t * ctx );
    5596             : void fd_gossip_prune_sign_data_with_prefix_walk( void * w, fd_gossip_prune_sign_data_with_prefix_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5597             : ulong fd_gossip_prune_sign_data_with_prefix_size( fd_gossip_prune_sign_data_with_prefix_t const * self );
    5598           0 : static inline ulong fd_gossip_prune_sign_data_with_prefix_align( void ) { return FD_GOSSIP_PRUNE_SIGN_DATA_WITH_PREFIX_ALIGN; }
    5599             : int fd_gossip_prune_sign_data_with_prefix_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5600             : void * fd_gossip_prune_sign_data_with_prefix_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5601             : 
    5602             : void fd_gossip_socket_addr_old_new( fd_gossip_socket_addr_old_t * self );
    5603             : int fd_gossip_socket_addr_old_encode( fd_gossip_socket_addr_old_t const * self, fd_bincode_encode_ctx_t * ctx );
    5604             : void fd_gossip_socket_addr_old_walk( void * w, fd_gossip_socket_addr_old_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5605             : ulong fd_gossip_socket_addr_old_size( fd_gossip_socket_addr_old_t const * self );
    5606           0 : static inline ulong fd_gossip_socket_addr_old_align( void ) { return FD_GOSSIP_SOCKET_ADDR_OLD_ALIGN; }
    5607             : int fd_gossip_socket_addr_old_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5608             : void * fd_gossip_socket_addr_old_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5609             : 
    5610             : void fd_gossip_socket_addr_ip4_new( fd_gossip_socket_addr_ip4_t * self );
    5611             : int fd_gossip_socket_addr_ip4_encode( fd_gossip_socket_addr_ip4_t const * self, fd_bincode_encode_ctx_t * ctx );
    5612             : void fd_gossip_socket_addr_ip4_walk( void * w, fd_gossip_socket_addr_ip4_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5613             : ulong fd_gossip_socket_addr_ip4_size( fd_gossip_socket_addr_ip4_t const * self );
    5614           0 : static inline ulong fd_gossip_socket_addr_ip4_align( void ) { return FD_GOSSIP_SOCKET_ADDR_IP4_ALIGN; }
    5615             : int fd_gossip_socket_addr_ip4_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5616             : void * fd_gossip_socket_addr_ip4_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5617             : 
    5618             : void fd_gossip_socket_addr_ip6_new( fd_gossip_socket_addr_ip6_t * self );
    5619             : int fd_gossip_socket_addr_ip6_encode( fd_gossip_socket_addr_ip6_t const * self, fd_bincode_encode_ctx_t * ctx );
    5620             : void fd_gossip_socket_addr_ip6_walk( void * w, fd_gossip_socket_addr_ip6_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5621           0 : static inline ulong fd_gossip_socket_addr_ip6_size( fd_gossip_socket_addr_ip6_t const * self ) { (void)self; return 18UL; }
    5622           0 : static inline ulong fd_gossip_socket_addr_ip6_align( void ) { return FD_GOSSIP_SOCKET_ADDR_IP6_ALIGN; }
    5623             : int fd_gossip_socket_addr_ip6_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5624             : void * fd_gossip_socket_addr_ip6_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5625             : 
    5626             : void fd_gossip_socket_addr_new_disc( fd_gossip_socket_addr_t * self, uint discriminant );
    5627             : void fd_gossip_socket_addr_new( fd_gossip_socket_addr_t * self );
    5628             : int fd_gossip_socket_addr_encode( fd_gossip_socket_addr_t const * self, fd_bincode_encode_ctx_t * ctx );
    5629             : void fd_gossip_socket_addr_walk( void * w, fd_gossip_socket_addr_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5630             : ulong fd_gossip_socket_addr_size( fd_gossip_socket_addr_t const * self );
    5631           0 : static inline ulong fd_gossip_socket_addr_align( void ) { return FD_GOSSIP_SOCKET_ADDR_ALIGN; }
    5632             : int fd_gossip_socket_addr_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5633             : void * fd_gossip_socket_addr_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5634             : 
    5635             : FD_FN_PURE uchar fd_gossip_socket_addr_is_ip4( fd_gossip_socket_addr_t const * self );
    5636             : FD_FN_PURE uchar fd_gossip_socket_addr_is_ip6( fd_gossip_socket_addr_t const * self );
    5637             : enum {
    5638             : fd_gossip_socket_addr_enum_ip4 = 0,
    5639             : fd_gossip_socket_addr_enum_ip6 = 1,
    5640             : };
    5641             : void fd_gossip_contact_info_v1_new( fd_gossip_contact_info_v1_t * self );
    5642             : int fd_gossip_contact_info_v1_encode( fd_gossip_contact_info_v1_t const * self, fd_bincode_encode_ctx_t * ctx );
    5643             : void fd_gossip_contact_info_v1_walk( void * w, fd_gossip_contact_info_v1_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5644             : ulong fd_gossip_contact_info_v1_size( fd_gossip_contact_info_v1_t const * self );
    5645           0 : static inline ulong fd_gossip_contact_info_v1_align( void ) { return FD_GOSSIP_CONTACT_INFO_V1_ALIGN; }
    5646             : int fd_gossip_contact_info_v1_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5647             : void * fd_gossip_contact_info_v1_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5648             : 
    5649             : void fd_gossip_vote_new( fd_gossip_vote_t * self );
    5650             : int fd_gossip_vote_encode( fd_gossip_vote_t const * self, fd_bincode_encode_ctx_t * ctx );
    5651             : void fd_gossip_vote_walk( void * w, fd_gossip_vote_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5652             : ulong fd_gossip_vote_size( fd_gossip_vote_t const * self );
    5653           0 : static inline ulong fd_gossip_vote_align( void ) { return FD_GOSSIP_VOTE_ALIGN; }
    5654             : int fd_gossip_vote_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5655             : void * fd_gossip_vote_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5656             : 
    5657           0 : static inline void fd_gossip_deprecated_compression_type_new_disc( fd_gossip_deprecated_compression_type_t * self, uint discriminant ) { self->discriminant = discriminant; }
    5658           0 : static inline void fd_gossip_deprecated_compression_type_new( fd_gossip_deprecated_compression_type_t * self ) { self->discriminant = (uint)ULONG_MAX; }
    5659             : int fd_gossip_deprecated_compression_type_encode( fd_gossip_deprecated_compression_type_t const * self, fd_bincode_encode_ctx_t * ctx );
    5660             : void fd_gossip_deprecated_compression_type_walk( void * w, fd_gossip_deprecated_compression_type_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5661             : ulong fd_gossip_deprecated_compression_type_size( fd_gossip_deprecated_compression_type_t const * self );
    5662           0 : static inline ulong fd_gossip_deprecated_compression_type_align( void ) { return FD_GOSSIP_DEPRECATED_COMPRESSION_TYPE_ALIGN; }
    5663             : int fd_gossip_deprecated_compression_type_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5664             : void * fd_gossip_deprecated_compression_type_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5665             : 
    5666             : FD_FN_PURE uchar fd_gossip_deprecated_compression_type_is_Uncompressed( fd_gossip_deprecated_compression_type_t const * self );
    5667             : FD_FN_PURE uchar fd_gossip_deprecated_compression_type_is_GZip( fd_gossip_deprecated_compression_type_t const * self );
    5668             : FD_FN_PURE uchar fd_gossip_deprecated_compression_type_is_BZip2( fd_gossip_deprecated_compression_type_t const * self );
    5669             : enum {
    5670             : fd_gossip_deprecated_compression_type_enum_Uncompressed = 0,
    5671             : fd_gossip_deprecated_compression_type_enum_GZip = 1,
    5672             : fd_gossip_deprecated_compression_type_enum_BZip2 = 2,
    5673             : };
    5674             : void fd_gossip_deprecated_epoch_incomplete_slots_new( fd_gossip_deprecated_epoch_incomplete_slots_t * self );
    5675             : int fd_gossip_deprecated_epoch_incomplete_slots_encode( fd_gossip_deprecated_epoch_incomplete_slots_t const * self, fd_bincode_encode_ctx_t * ctx );
    5676             : void fd_gossip_deprecated_epoch_incomplete_slots_walk( void * w, fd_gossip_deprecated_epoch_incomplete_slots_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5677             : ulong fd_gossip_deprecated_epoch_incomplete_slots_size( fd_gossip_deprecated_epoch_incomplete_slots_t const * self );
    5678           0 : static inline ulong fd_gossip_deprecated_epoch_incomplete_slots_align( void ) { return FD_GOSSIP_DEPRECATED_EPOCH_INCOMPLETE_SLOTS_ALIGN; }
    5679             : int fd_gossip_deprecated_epoch_incomplete_slots_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5680             : void * fd_gossip_deprecated_epoch_incomplete_slots_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5681             : 
    5682             : void fd_gossip_lowest_slot_new( fd_gossip_lowest_slot_t * self );
    5683             : int fd_gossip_lowest_slot_encode( fd_gossip_lowest_slot_t const * self, fd_bincode_encode_ctx_t * ctx );
    5684             : void fd_gossip_lowest_slot_walk( void * w, fd_gossip_lowest_slot_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5685             : ulong fd_gossip_lowest_slot_size( fd_gossip_lowest_slot_t const * self );
    5686           0 : static inline ulong fd_gossip_lowest_slot_align( void ) { return FD_GOSSIP_LOWEST_SLOT_ALIGN; }
    5687             : int fd_gossip_lowest_slot_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5688             : void * fd_gossip_lowest_slot_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5689             : 
    5690             : void fd_gossip_slot_hashes_new( fd_gossip_slot_hashes_t * self );
    5691             : int fd_gossip_slot_hashes_encode( fd_gossip_slot_hashes_t const * self, fd_bincode_encode_ctx_t * ctx );
    5692             : void fd_gossip_slot_hashes_walk( void * w, fd_gossip_slot_hashes_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5693             : ulong fd_gossip_slot_hashes_size( fd_gossip_slot_hashes_t const * self );
    5694           0 : static inline ulong fd_gossip_slot_hashes_align( void ) { return FD_GOSSIP_SLOT_HASHES_ALIGN; }
    5695             : int fd_gossip_slot_hashes_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5696             : void * fd_gossip_slot_hashes_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5697             : 
    5698             : void fd_gossip_slots_new( fd_gossip_slots_t * self );
    5699             : int fd_gossip_slots_encode( fd_gossip_slots_t const * self, fd_bincode_encode_ctx_t * ctx );
    5700             : void fd_gossip_slots_walk( void * w, fd_gossip_slots_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5701             : ulong fd_gossip_slots_size( fd_gossip_slots_t const * self );
    5702           0 : static inline ulong fd_gossip_slots_align( void ) { return FD_GOSSIP_SLOTS_ALIGN; }
    5703             : int fd_gossip_slots_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5704             : void * fd_gossip_slots_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5705             : 
    5706             : void fd_gossip_flate2_slots_new( fd_gossip_flate2_slots_t * self );
    5707             : int fd_gossip_flate2_slots_encode( fd_gossip_flate2_slots_t const * self, fd_bincode_encode_ctx_t * ctx );
    5708             : void fd_gossip_flate2_slots_walk( void * w, fd_gossip_flate2_slots_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5709             : ulong fd_gossip_flate2_slots_size( fd_gossip_flate2_slots_t const * self );
    5710           0 : static inline ulong fd_gossip_flate2_slots_align( void ) { return FD_GOSSIP_FLATE2_SLOTS_ALIGN; }
    5711             : int fd_gossip_flate2_slots_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5712             : void * fd_gossip_flate2_slots_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5713             : 
    5714             : void fd_gossip_slots_enum_new_disc( fd_gossip_slots_enum_t * self, uint discriminant );
    5715             : void fd_gossip_slots_enum_new( fd_gossip_slots_enum_t * self );
    5716             : int fd_gossip_slots_enum_encode( fd_gossip_slots_enum_t const * self, fd_bincode_encode_ctx_t * ctx );
    5717             : void fd_gossip_slots_enum_walk( void * w, fd_gossip_slots_enum_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5718             : ulong fd_gossip_slots_enum_size( fd_gossip_slots_enum_t const * self );
    5719           0 : static inline ulong fd_gossip_slots_enum_align( void ) { return FD_GOSSIP_SLOTS_ENUM_ALIGN; }
    5720             : int fd_gossip_slots_enum_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5721             : void * fd_gossip_slots_enum_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5722             : 
    5723             : FD_FN_PURE uchar fd_gossip_slots_enum_is_flate2( fd_gossip_slots_enum_t const * self );
    5724             : FD_FN_PURE uchar fd_gossip_slots_enum_is_uncompressed( fd_gossip_slots_enum_t const * self );
    5725             : enum {
    5726             : fd_gossip_slots_enum_enum_flate2 = 0,
    5727             : fd_gossip_slots_enum_enum_uncompressed = 1,
    5728             : };
    5729             : void fd_gossip_epoch_slots_new( fd_gossip_epoch_slots_t * self );
    5730             : int fd_gossip_epoch_slots_encode( fd_gossip_epoch_slots_t const * self, fd_bincode_encode_ctx_t * ctx );
    5731             : void fd_gossip_epoch_slots_walk( void * w, fd_gossip_epoch_slots_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5732             : ulong fd_gossip_epoch_slots_size( fd_gossip_epoch_slots_t const * self );
    5733           0 : static inline ulong fd_gossip_epoch_slots_align( void ) { return FD_GOSSIP_EPOCH_SLOTS_ALIGN; }
    5734             : int fd_gossip_epoch_slots_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5735             : void * fd_gossip_epoch_slots_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5736             : 
    5737             : void fd_gossip_version_v1_new( fd_gossip_version_v1_t * self );
    5738             : int fd_gossip_version_v1_encode( fd_gossip_version_v1_t const * self, fd_bincode_encode_ctx_t * ctx );
    5739             : void fd_gossip_version_v1_walk( void * w, fd_gossip_version_v1_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5740             : ulong fd_gossip_version_v1_size( fd_gossip_version_v1_t const * self );
    5741           0 : static inline ulong fd_gossip_version_v1_align( void ) { return FD_GOSSIP_VERSION_V1_ALIGN; }
    5742             : int fd_gossip_version_v1_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5743             : void * fd_gossip_version_v1_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5744             : 
    5745             : void fd_gossip_version_v2_new( fd_gossip_version_v2_t * self );
    5746             : int fd_gossip_version_v2_encode( fd_gossip_version_v2_t const * self, fd_bincode_encode_ctx_t * ctx );
    5747             : void fd_gossip_version_v2_walk( void * w, fd_gossip_version_v2_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5748             : ulong fd_gossip_version_v2_size( fd_gossip_version_v2_t const * self );
    5749           0 : static inline ulong fd_gossip_version_v2_align( void ) { return FD_GOSSIP_VERSION_V2_ALIGN; }
    5750             : int fd_gossip_version_v2_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5751             : void * fd_gossip_version_v2_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5752             : 
    5753             : void fd_gossip_version_v3_new( fd_gossip_version_v3_t * self );
    5754             : int fd_gossip_version_v3_encode( fd_gossip_version_v3_t const * self, fd_bincode_encode_ctx_t * ctx );
    5755             : void fd_gossip_version_v3_walk( void * w, fd_gossip_version_v3_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5756             : ulong fd_gossip_version_v3_size( fd_gossip_version_v3_t const * self );
    5757           0 : static inline ulong fd_gossip_version_v3_align( void ) { return FD_GOSSIP_VERSION_V3_ALIGN; }
    5758             : int fd_gossip_version_v3_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5759             : void * fd_gossip_version_v3_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5760             : 
    5761           0 : static inline void fd_gossip_node_instance_new( fd_gossip_node_instance_t * self ) { fd_memset( self, 0, sizeof(fd_gossip_node_instance_t) ); }
    5762             : int fd_gossip_node_instance_encode( fd_gossip_node_instance_t const * self, fd_bincode_encode_ctx_t * ctx );
    5763             : void fd_gossip_node_instance_walk( void * w, fd_gossip_node_instance_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5764           0 : static inline ulong fd_gossip_node_instance_size( fd_gossip_node_instance_t const * self ) { (void)self; return 56UL; }
    5765           0 : static inline ulong fd_gossip_node_instance_align( void ) { return FD_GOSSIP_NODE_INSTANCE_ALIGN; }
    5766           0 : static inline int fd_gossip_node_instance_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    5767           0 :   *total_sz += sizeof(fd_gossip_node_instance_t);
    5768           0 :   if( (ulong)ctx->data + 56UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    5769           0 :   return 0;
    5770           0 : }
    5771             : void * fd_gossip_node_instance_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5772             : 
    5773             : void fd_gossip_duplicate_shred_new( fd_gossip_duplicate_shred_t * self );
    5774             : int fd_gossip_duplicate_shred_encode( fd_gossip_duplicate_shred_t const * self, fd_bincode_encode_ctx_t * ctx );
    5775             : void fd_gossip_duplicate_shred_walk( void * w, fd_gossip_duplicate_shred_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5776             : ulong fd_gossip_duplicate_shred_size( fd_gossip_duplicate_shred_t const * self );
    5777           0 : static inline ulong fd_gossip_duplicate_shred_align( void ) { return FD_GOSSIP_DUPLICATE_SHRED_ALIGN; }
    5778             : int fd_gossip_duplicate_shred_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5779             : void * fd_gossip_duplicate_shred_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5780             : 
    5781             : void fd_gossip_incremental_snapshot_hashes_new( fd_gossip_incremental_snapshot_hashes_t * self );
    5782             : int fd_gossip_incremental_snapshot_hashes_encode( fd_gossip_incremental_snapshot_hashes_t const * self, fd_bincode_encode_ctx_t * ctx );
    5783             : void fd_gossip_incremental_snapshot_hashes_walk( void * w, fd_gossip_incremental_snapshot_hashes_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5784             : ulong fd_gossip_incremental_snapshot_hashes_size( fd_gossip_incremental_snapshot_hashes_t const * self );
    5785           0 : static inline ulong fd_gossip_incremental_snapshot_hashes_align( void ) { return FD_GOSSIP_INCREMENTAL_SNAPSHOT_HASHES_ALIGN; }
    5786             : int fd_gossip_incremental_snapshot_hashes_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5787             : void * fd_gossip_incremental_snapshot_hashes_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5788             : 
    5789             : void fd_gossip_socket_entry_new( fd_gossip_socket_entry_t * self );
    5790             : int fd_gossip_socket_entry_encode( fd_gossip_socket_entry_t const * self, fd_bincode_encode_ctx_t * ctx );
    5791             : void fd_gossip_socket_entry_walk( void * w, fd_gossip_socket_entry_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5792             : ulong fd_gossip_socket_entry_size( fd_gossip_socket_entry_t const * self );
    5793           0 : static inline ulong fd_gossip_socket_entry_align( void ) { return FD_GOSSIP_SOCKET_ENTRY_ALIGN; }
    5794             : int fd_gossip_socket_entry_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5795             : void * fd_gossip_socket_entry_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5796             : 
    5797             : void fd_gossip_contact_info_v2_new( fd_gossip_contact_info_v2_t * self );
    5798             : int fd_gossip_contact_info_v2_encode( fd_gossip_contact_info_v2_t const * self, fd_bincode_encode_ctx_t * ctx );
    5799             : void fd_gossip_contact_info_v2_walk( void * w, fd_gossip_contact_info_v2_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5800             : ulong fd_gossip_contact_info_v2_size( fd_gossip_contact_info_v2_t const * self );
    5801           0 : static inline ulong fd_gossip_contact_info_v2_align( void ) { return FD_GOSSIP_CONTACT_INFO_V2_ALIGN; }
    5802             : int fd_gossip_contact_info_v2_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5803             : void * fd_gossip_contact_info_v2_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5804             : 
    5805             : void fd_restart_run_length_encoding_inner_new( fd_restart_run_length_encoding_inner_t * self );
    5806             : int fd_restart_run_length_encoding_inner_encode( fd_restart_run_length_encoding_inner_t const * self, fd_bincode_encode_ctx_t * ctx );
    5807             : void fd_restart_run_length_encoding_inner_walk( void * w, fd_restart_run_length_encoding_inner_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5808             : ulong fd_restart_run_length_encoding_inner_size( fd_restart_run_length_encoding_inner_t const * self );
    5809           0 : static inline ulong fd_restart_run_length_encoding_inner_align( void ) { return FD_RESTART_RUN_LENGTH_ENCODING_INNER_ALIGN; }
    5810             : int fd_restart_run_length_encoding_inner_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5811             : void * fd_restart_run_length_encoding_inner_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5812             : 
    5813             : void fd_restart_run_length_encoding_new( fd_restart_run_length_encoding_t * self );
    5814             : int fd_restart_run_length_encoding_encode( fd_restart_run_length_encoding_t const * self, fd_bincode_encode_ctx_t * ctx );
    5815             : void fd_restart_run_length_encoding_walk( void * w, fd_restart_run_length_encoding_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5816             : ulong fd_restart_run_length_encoding_size( fd_restart_run_length_encoding_t const * self );
    5817           0 : static inline ulong fd_restart_run_length_encoding_align( void ) { return FD_RESTART_RUN_LENGTH_ENCODING_ALIGN; }
    5818             : int fd_restart_run_length_encoding_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5819             : void * fd_restart_run_length_encoding_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5820             : 
    5821             : void fd_restart_raw_offsets_new( fd_restart_raw_offsets_t * self );
    5822             : int fd_restart_raw_offsets_encode( fd_restart_raw_offsets_t const * self, fd_bincode_encode_ctx_t * ctx );
    5823             : void fd_restart_raw_offsets_walk( void * w, fd_restart_raw_offsets_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5824             : ulong fd_restart_raw_offsets_size( fd_restart_raw_offsets_t const * self );
    5825           0 : static inline ulong fd_restart_raw_offsets_align( void ) { return FD_RESTART_RAW_OFFSETS_ALIGN; }
    5826             : int fd_restart_raw_offsets_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5827             : void * fd_restart_raw_offsets_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5828             : 
    5829             : void fd_restart_slots_offsets_new_disc( fd_restart_slots_offsets_t * self, uint discriminant );
    5830             : void fd_restart_slots_offsets_new( fd_restart_slots_offsets_t * self );
    5831             : int fd_restart_slots_offsets_encode( fd_restart_slots_offsets_t const * self, fd_bincode_encode_ctx_t * ctx );
    5832             : void fd_restart_slots_offsets_walk( void * w, fd_restart_slots_offsets_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5833             : ulong fd_restart_slots_offsets_size( fd_restart_slots_offsets_t const * self );
    5834           0 : static inline ulong fd_restart_slots_offsets_align( void ) { return FD_RESTART_SLOTS_OFFSETS_ALIGN; }
    5835             : int fd_restart_slots_offsets_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5836             : void * fd_restart_slots_offsets_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5837             : 
    5838             : FD_FN_PURE uchar fd_restart_slots_offsets_is_run_length_encoding( fd_restart_slots_offsets_t const * self );
    5839             : FD_FN_PURE uchar fd_restart_slots_offsets_is_raw_offsets( fd_restart_slots_offsets_t const * self );
    5840             : enum {
    5841             : fd_restart_slots_offsets_enum_run_length_encoding = 0,
    5842             : fd_restart_slots_offsets_enum_raw_offsets = 1,
    5843             : };
    5844             : void fd_gossip_restart_last_voted_fork_slots_new( fd_gossip_restart_last_voted_fork_slots_t * self );
    5845             : int fd_gossip_restart_last_voted_fork_slots_encode( fd_gossip_restart_last_voted_fork_slots_t const * self, fd_bincode_encode_ctx_t * ctx );
    5846             : void fd_gossip_restart_last_voted_fork_slots_walk( void * w, fd_gossip_restart_last_voted_fork_slots_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5847             : ulong fd_gossip_restart_last_voted_fork_slots_size( fd_gossip_restart_last_voted_fork_slots_t const * self );
    5848           0 : static inline ulong fd_gossip_restart_last_voted_fork_slots_align( void ) { return FD_GOSSIP_RESTART_LAST_VOTED_FORK_SLOTS_ALIGN; }
    5849             : int fd_gossip_restart_last_voted_fork_slots_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5850             : void * fd_gossip_restart_last_voted_fork_slots_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5851             : 
    5852           0 : static inline void fd_gossip_restart_heaviest_fork_new( fd_gossip_restart_heaviest_fork_t * self ) { fd_memset( self, 0, sizeof(fd_gossip_restart_heaviest_fork_t) ); }
    5853             : int fd_gossip_restart_heaviest_fork_encode( fd_gossip_restart_heaviest_fork_t const * self, fd_bincode_encode_ctx_t * ctx );
    5854             : void fd_gossip_restart_heaviest_fork_walk( void * w, fd_gossip_restart_heaviest_fork_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5855           0 : static inline ulong fd_gossip_restart_heaviest_fork_size( fd_gossip_restart_heaviest_fork_t const * self ) { (void)self; return 90UL; }
    5856           0 : static inline ulong fd_gossip_restart_heaviest_fork_align( void ) { return FD_GOSSIP_RESTART_HEAVIEST_FORK_ALIGN; }
    5857           0 : static inline int fd_gossip_restart_heaviest_fork_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    5858           0 :   *total_sz += sizeof(fd_gossip_restart_heaviest_fork_t);
    5859           0 :   if( (ulong)ctx->data + 90UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    5860           0 :   return 0;
    5861           0 : }
    5862             : void * fd_gossip_restart_heaviest_fork_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5863             : 
    5864             : void fd_crds_data_new_disc( fd_crds_data_t * self, uint discriminant );
    5865             : void fd_crds_data_new( fd_crds_data_t * self );
    5866             : int fd_crds_data_encode( fd_crds_data_t const * self, fd_bincode_encode_ctx_t * ctx );
    5867             : void fd_crds_data_walk( void * w, fd_crds_data_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5868             : ulong fd_crds_data_size( fd_crds_data_t const * self );
    5869           0 : static inline ulong fd_crds_data_align( void ) { return FD_CRDS_DATA_ALIGN; }
    5870             : int fd_crds_data_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5871             : void * fd_crds_data_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5872             : 
    5873             : FD_FN_PURE uchar fd_crds_data_is_contact_info_v1( fd_crds_data_t const * self );
    5874             : FD_FN_PURE uchar fd_crds_data_is_vote( fd_crds_data_t const * self );
    5875             : FD_FN_PURE uchar fd_crds_data_is_lowest_slot( fd_crds_data_t const * self );
    5876             : FD_FN_PURE uchar fd_crds_data_is_snapshot_hashes( fd_crds_data_t const * self );
    5877             : FD_FN_PURE uchar fd_crds_data_is_accounts_hashes( fd_crds_data_t const * self );
    5878             : FD_FN_PURE uchar fd_crds_data_is_epoch_slots( fd_crds_data_t const * self );
    5879             : FD_FN_PURE uchar fd_crds_data_is_version_v1( fd_crds_data_t const * self );
    5880             : FD_FN_PURE uchar fd_crds_data_is_version_v2( fd_crds_data_t const * self );
    5881             : FD_FN_PURE uchar fd_crds_data_is_node_instance( fd_crds_data_t const * self );
    5882             : FD_FN_PURE uchar fd_crds_data_is_duplicate_shred( fd_crds_data_t const * self );
    5883             : FD_FN_PURE uchar fd_crds_data_is_incremental_snapshot_hashes( fd_crds_data_t const * self );
    5884             : FD_FN_PURE uchar fd_crds_data_is_contact_info_v2( fd_crds_data_t const * self );
    5885             : FD_FN_PURE uchar fd_crds_data_is_restart_last_voted_fork_slots( fd_crds_data_t const * self );
    5886             : FD_FN_PURE uchar fd_crds_data_is_restart_heaviest_fork( fd_crds_data_t const * self );
    5887             : enum {
    5888             : fd_crds_data_enum_contact_info_v1 = 0,
    5889             : fd_crds_data_enum_vote = 1,
    5890             : fd_crds_data_enum_lowest_slot = 2,
    5891             : fd_crds_data_enum_snapshot_hashes = 3,
    5892             : fd_crds_data_enum_accounts_hashes = 4,
    5893             : fd_crds_data_enum_epoch_slots = 5,
    5894             : fd_crds_data_enum_version_v1 = 6,
    5895             : fd_crds_data_enum_version_v2 = 7,
    5896             : fd_crds_data_enum_node_instance = 8,
    5897             : fd_crds_data_enum_duplicate_shred = 9,
    5898             : fd_crds_data_enum_incremental_snapshot_hashes = 10,
    5899             : fd_crds_data_enum_contact_info_v2 = 11,
    5900             : fd_crds_data_enum_restart_last_voted_fork_slots = 12,
    5901             : fd_crds_data_enum_restart_heaviest_fork = 13,
    5902             : };
    5903             : void fd_crds_bloom_new( fd_crds_bloom_t * self );
    5904             : int fd_crds_bloom_encode( fd_crds_bloom_t const * self, fd_bincode_encode_ctx_t * ctx );
    5905             : void fd_crds_bloom_walk( void * w, fd_crds_bloom_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5906             : ulong fd_crds_bloom_size( fd_crds_bloom_t const * self );
    5907           0 : static inline ulong fd_crds_bloom_align( void ) { return FD_CRDS_BLOOM_ALIGN; }
    5908             : int fd_crds_bloom_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5909             : void * fd_crds_bloom_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5910             : 
    5911             : void fd_crds_filter_new( fd_crds_filter_t * self );
    5912             : int fd_crds_filter_encode( fd_crds_filter_t const * self, fd_bincode_encode_ctx_t * ctx );
    5913             : void fd_crds_filter_walk( void * w, fd_crds_filter_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5914             : ulong fd_crds_filter_size( fd_crds_filter_t const * self );
    5915           0 : static inline ulong fd_crds_filter_align( void ) { return FD_CRDS_FILTER_ALIGN; }
    5916             : int fd_crds_filter_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5917             : void * fd_crds_filter_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5918             : 
    5919             : void fd_crds_value_new( fd_crds_value_t * self );
    5920             : int fd_crds_value_encode( fd_crds_value_t const * self, fd_bincode_encode_ctx_t * ctx );
    5921             : void fd_crds_value_walk( void * w, fd_crds_value_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5922             : ulong fd_crds_value_size( fd_crds_value_t const * self );
    5923           0 : static inline ulong fd_crds_value_align( void ) { return FD_CRDS_VALUE_ALIGN; }
    5924             : int fd_crds_value_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5925             : void * fd_crds_value_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5926             : 
    5927             : void fd_gossip_pull_req_new( fd_gossip_pull_req_t * self );
    5928             : int fd_gossip_pull_req_encode( fd_gossip_pull_req_t const * self, fd_bincode_encode_ctx_t * ctx );
    5929             : void fd_gossip_pull_req_walk( void * w, fd_gossip_pull_req_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5930             : ulong fd_gossip_pull_req_size( fd_gossip_pull_req_t const * self );
    5931           0 : static inline ulong fd_gossip_pull_req_align( void ) { return FD_GOSSIP_PULL_REQ_ALIGN; }
    5932             : int fd_gossip_pull_req_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5933             : void * fd_gossip_pull_req_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5934             : 
    5935             : void fd_gossip_pull_resp_new( fd_gossip_pull_resp_t * self );
    5936             : int fd_gossip_pull_resp_encode( fd_gossip_pull_resp_t const * self, fd_bincode_encode_ctx_t * ctx );
    5937             : void fd_gossip_pull_resp_walk( void * w, fd_gossip_pull_resp_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5938             : ulong fd_gossip_pull_resp_size( fd_gossip_pull_resp_t const * self );
    5939           0 : static inline ulong fd_gossip_pull_resp_align( void ) { return FD_GOSSIP_PULL_RESP_ALIGN; }
    5940             : int fd_gossip_pull_resp_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5941             : void * fd_gossip_pull_resp_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5942             : 
    5943             : void fd_gossip_push_msg_new( fd_gossip_push_msg_t * self );
    5944             : int fd_gossip_push_msg_encode( fd_gossip_push_msg_t const * self, fd_bincode_encode_ctx_t * ctx );
    5945             : void fd_gossip_push_msg_walk( void * w, fd_gossip_push_msg_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5946             : ulong fd_gossip_push_msg_size( fd_gossip_push_msg_t const * self );
    5947           0 : static inline ulong fd_gossip_push_msg_align( void ) { return FD_GOSSIP_PUSH_MSG_ALIGN; }
    5948             : int fd_gossip_push_msg_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5949             : void * fd_gossip_push_msg_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5950             : 
    5951             : void fd_gossip_prune_msg_new( fd_gossip_prune_msg_t * self );
    5952             : int fd_gossip_prune_msg_encode( fd_gossip_prune_msg_t const * self, fd_bincode_encode_ctx_t * ctx );
    5953             : void fd_gossip_prune_msg_walk( void * w, fd_gossip_prune_msg_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5954             : ulong fd_gossip_prune_msg_size( fd_gossip_prune_msg_t const * self );
    5955           0 : static inline ulong fd_gossip_prune_msg_align( void ) { return FD_GOSSIP_PRUNE_MSG_ALIGN; }
    5956             : int fd_gossip_prune_msg_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5957             : void * fd_gossip_prune_msg_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5958             : 
    5959             : void fd_gossip_msg_new_disc( fd_gossip_msg_t * self, uint discriminant );
    5960             : void fd_gossip_msg_new( fd_gossip_msg_t * self );
    5961             : int fd_gossip_msg_encode( fd_gossip_msg_t const * self, fd_bincode_encode_ctx_t * ctx );
    5962             : void fd_gossip_msg_walk( void * w, fd_gossip_msg_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    5963             : ulong fd_gossip_msg_size( fd_gossip_msg_t const * self );
    5964          42 : static inline ulong fd_gossip_msg_align( void ) { return FD_GOSSIP_MSG_ALIGN; }
    5965             : int fd_gossip_msg_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    5966             : void * fd_gossip_msg_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5967             : 
    5968             : FD_FN_PURE uchar fd_gossip_msg_is_pull_req( fd_gossip_msg_t const * self );
    5969             : FD_FN_PURE uchar fd_gossip_msg_is_pull_resp( fd_gossip_msg_t const * self );
    5970             : FD_FN_PURE uchar fd_gossip_msg_is_push_msg( fd_gossip_msg_t const * self );
    5971             : FD_FN_PURE uchar fd_gossip_msg_is_prune_msg( fd_gossip_msg_t const * self );
    5972             : FD_FN_PURE uchar fd_gossip_msg_is_ping( fd_gossip_msg_t const * self );
    5973             : FD_FN_PURE uchar fd_gossip_msg_is_pong( fd_gossip_msg_t const * self );
    5974             : enum {
    5975             : fd_gossip_msg_enum_pull_req = 0,
    5976             : fd_gossip_msg_enum_pull_resp = 1,
    5977             : fd_gossip_msg_enum_push_msg = 2,
    5978             : fd_gossip_msg_enum_prune_msg = 3,
    5979             : fd_gossip_msg_enum_ping = 4,
    5980             : fd_gossip_msg_enum_pong = 5,
    5981             : };
    5982           0 : static inline void fd_addrlut_create_new( fd_addrlut_create_t * self ) { fd_memset( self, 0, sizeof(fd_addrlut_create_t) ); }
    5983             : int fd_addrlut_create_encode( fd_addrlut_create_t const * self, fd_bincode_encode_ctx_t * ctx );
    5984             : 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 );
    5985           0 : static inline ulong fd_addrlut_create_size( fd_addrlut_create_t const * self ) { (void)self; return 9UL; }
    5986           0 : static inline ulong fd_addrlut_create_align( void ) { return FD_ADDRLUT_CREATE_ALIGN; }
    5987           0 : static inline int fd_addrlut_create_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    5988           0 :   *total_sz += sizeof(fd_addrlut_create_t);
    5989           0 :   if( (ulong)ctx->data + 9UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    5990           0 :   return 0;
    5991           0 : }
    5992             : void * fd_addrlut_create_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    5993             : 
    5994             : void fd_addrlut_extend_new( fd_addrlut_extend_t * self );
    5995             : int fd_addrlut_extend_encode( fd_addrlut_extend_t const * self, fd_bincode_encode_ctx_t * ctx );
    5996             : 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 );
    5997             : ulong fd_addrlut_extend_size( fd_addrlut_extend_t const * self );
    5998           0 : static inline ulong fd_addrlut_extend_align( void ) { return FD_ADDRLUT_EXTEND_ALIGN; }
    5999             : int fd_addrlut_extend_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    6000             : void * fd_addrlut_extend_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6001             : 
    6002             : void fd_addrlut_instruction_new_disc( fd_addrlut_instruction_t * self, uint discriminant );
    6003             : void fd_addrlut_instruction_new( fd_addrlut_instruction_t * self );
    6004             : int fd_addrlut_instruction_encode( fd_addrlut_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
    6005             : 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 );
    6006             : ulong fd_addrlut_instruction_size( fd_addrlut_instruction_t const * self );
    6007           0 : static inline ulong fd_addrlut_instruction_align( void ) { return FD_ADDRLUT_INSTRUCTION_ALIGN; }
    6008             : int fd_addrlut_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    6009             : void * fd_addrlut_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6010             : 
    6011             : FD_FN_PURE uchar fd_addrlut_instruction_is_create_lut( fd_addrlut_instruction_t const * self );
    6012             : FD_FN_PURE uchar fd_addrlut_instruction_is_freeze_lut( fd_addrlut_instruction_t const * self );
    6013             : FD_FN_PURE uchar fd_addrlut_instruction_is_extend_lut( fd_addrlut_instruction_t const * self );
    6014             : FD_FN_PURE uchar fd_addrlut_instruction_is_deactivate_lut( fd_addrlut_instruction_t const * self );
    6015             : FD_FN_PURE uchar fd_addrlut_instruction_is_close_lut( fd_addrlut_instruction_t const * self );
    6016             : enum {
    6017             : fd_addrlut_instruction_enum_create_lut = 0,
    6018             : fd_addrlut_instruction_enum_freeze_lut = 1,
    6019             : fd_addrlut_instruction_enum_extend_lut = 2,
    6020             : fd_addrlut_instruction_enum_deactivate_lut = 3,
    6021             : fd_addrlut_instruction_enum_close_lut = 4,
    6022             : };
    6023           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) ); }
    6024             : int fd_repair_request_header_encode( fd_repair_request_header_t const * self, fd_bincode_encode_ctx_t * ctx );
    6025             : 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 );
    6026           0 : static inline ulong fd_repair_request_header_size( fd_repair_request_header_t const * self ) { (void)self; return 140UL; }
    6027           0 : static inline ulong fd_repair_request_header_align( void ) { return FD_REPAIR_REQUEST_HEADER_ALIGN; }
    6028           0 : static inline int fd_repair_request_header_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    6029           0 :   *total_sz += sizeof(fd_repair_request_header_t);
    6030           0 :   if( (ulong)ctx->data + 140UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    6031           0 :   return 0;
    6032           0 : }
    6033             : void * fd_repair_request_header_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6034             : 
    6035           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) ); }
    6036             : int fd_repair_window_index_encode( fd_repair_window_index_t const * self, fd_bincode_encode_ctx_t * ctx );
    6037             : 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 );
    6038           0 : static inline ulong fd_repair_window_index_size( fd_repair_window_index_t const * self ) { (void)self; return 156UL; }
    6039           0 : static inline ulong fd_repair_window_index_align( void ) { return FD_REPAIR_WINDOW_INDEX_ALIGN; }
    6040           0 : static inline int fd_repair_window_index_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    6041           0 :   *total_sz += sizeof(fd_repair_window_index_t);
    6042           0 :   if( (ulong)ctx->data + 156UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    6043           0 :   return 0;
    6044           0 : }
    6045             : void * fd_repair_window_index_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6046             : 
    6047           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) ); }
    6048             : int fd_repair_highest_window_index_encode( fd_repair_highest_window_index_t const * self, fd_bincode_encode_ctx_t * ctx );
    6049             : 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 );
    6050           0 : static inline ulong fd_repair_highest_window_index_size( fd_repair_highest_window_index_t const * self ) { (void)self; return 156UL; }
    6051           0 : static inline ulong fd_repair_highest_window_index_align( void ) { return FD_REPAIR_HIGHEST_WINDOW_INDEX_ALIGN; }
    6052           0 : static inline int fd_repair_highest_window_index_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    6053           0 :   *total_sz += sizeof(fd_repair_highest_window_index_t);
    6054           0 :   if( (ulong)ctx->data + 156UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    6055           0 :   return 0;
    6056           0 : }
    6057             : void * fd_repair_highest_window_index_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6058             : 
    6059           0 : static inline void fd_repair_orphan_new( fd_repair_orphan_t * self ) { fd_memset( self, 0, sizeof(fd_repair_orphan_t) ); }
    6060             : int fd_repair_orphan_encode( fd_repair_orphan_t const * self, fd_bincode_encode_ctx_t * ctx );
    6061             : 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 );
    6062           0 : static inline ulong fd_repair_orphan_size( fd_repair_orphan_t const * self ) { (void)self; return 148UL; }
    6063           0 : static inline ulong fd_repair_orphan_align( void ) { return FD_REPAIR_ORPHAN_ALIGN; }
    6064           0 : static inline int fd_repair_orphan_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    6065           0 :   *total_sz += sizeof(fd_repair_orphan_t);
    6066           0 :   if( (ulong)ctx->data + 148UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    6067           0 :   return 0;
    6068           0 : }
    6069             : void * fd_repair_orphan_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6070             : 
    6071           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) ); }
    6072             : int fd_repair_ancestor_hashes_encode( fd_repair_ancestor_hashes_t const * self, fd_bincode_encode_ctx_t * ctx );
    6073             : 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 );
    6074           0 : static inline ulong fd_repair_ancestor_hashes_size( fd_repair_ancestor_hashes_t const * self ) { (void)self; return 148UL; }
    6075           0 : static inline ulong fd_repair_ancestor_hashes_align( void ) { return FD_REPAIR_ANCESTOR_HASHES_ALIGN; }
    6076           0 : static inline int fd_repair_ancestor_hashes_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    6077           0 :   *total_sz += sizeof(fd_repair_ancestor_hashes_t);
    6078           0 :   if( (ulong)ctx->data + 148UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    6079           0 :   return 0;
    6080           0 : }
    6081             : void * fd_repair_ancestor_hashes_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6082             : 
    6083             : void fd_repair_protocol_new_disc( fd_repair_protocol_t * self, uint discriminant );
    6084             : void fd_repair_protocol_new( fd_repair_protocol_t * self );
    6085             : int fd_repair_protocol_encode( fd_repair_protocol_t const * self, fd_bincode_encode_ctx_t * ctx );
    6086             : 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 );
    6087             : ulong fd_repair_protocol_size( fd_repair_protocol_t const * self );
    6088          18 : static inline ulong fd_repair_protocol_align( void ) { return FD_REPAIR_PROTOCOL_ALIGN; }
    6089             : int fd_repair_protocol_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    6090             : void * fd_repair_protocol_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6091             : 
    6092             : FD_FN_PURE uchar fd_repair_protocol_is_LegacyWindowIndex( fd_repair_protocol_t const * self );
    6093             : FD_FN_PURE uchar fd_repair_protocol_is_LegacyHighestWindowIndex( fd_repair_protocol_t const * self );
    6094             : FD_FN_PURE uchar fd_repair_protocol_is_LegacyOrphan( fd_repair_protocol_t const * self );
    6095             : FD_FN_PURE uchar fd_repair_protocol_is_LegacyWindowIndexWithNonce( fd_repair_protocol_t const * self );
    6096             : FD_FN_PURE uchar fd_repair_protocol_is_LegacyHighestWindowIndexWithNonce( fd_repair_protocol_t const * self );
    6097             : FD_FN_PURE uchar fd_repair_protocol_is_LegacyOrphanWithNonce( fd_repair_protocol_t const * self );
    6098             : FD_FN_PURE uchar fd_repair_protocol_is_LegacyAncestorHashes( fd_repair_protocol_t const * self );
    6099             : FD_FN_PURE uchar fd_repair_protocol_is_pong( fd_repair_protocol_t const * self );
    6100             : FD_FN_PURE uchar fd_repair_protocol_is_window_index( fd_repair_protocol_t const * self );
    6101             : FD_FN_PURE uchar fd_repair_protocol_is_highest_window_index( fd_repair_protocol_t const * self );
    6102             : FD_FN_PURE uchar fd_repair_protocol_is_orphan( fd_repair_protocol_t const * self );
    6103             : FD_FN_PURE uchar fd_repair_protocol_is_ancestor_hashes( fd_repair_protocol_t const * self );
    6104             : enum {
    6105             : fd_repair_protocol_enum_LegacyWindowIndex = 0,
    6106             : fd_repair_protocol_enum_LegacyHighestWindowIndex = 1,
    6107             : fd_repair_protocol_enum_LegacyOrphan = 2,
    6108             : fd_repair_protocol_enum_LegacyWindowIndexWithNonce = 3,
    6109             : fd_repair_protocol_enum_LegacyHighestWindowIndexWithNonce = 4,
    6110             : fd_repair_protocol_enum_LegacyOrphanWithNonce = 5,
    6111             : fd_repair_protocol_enum_LegacyAncestorHashes = 6,
    6112             : fd_repair_protocol_enum_pong = 7,
    6113             : fd_repair_protocol_enum_window_index = 8,
    6114             : fd_repair_protocol_enum_highest_window_index = 9,
    6115             : fd_repair_protocol_enum_orphan = 10,
    6116             : fd_repair_protocol_enum_ancestor_hashes = 11,
    6117             : };
    6118             : void fd_repair_response_new_disc( fd_repair_response_t * self, uint discriminant );
    6119             : void fd_repair_response_new( fd_repair_response_t * self );
    6120             : int fd_repair_response_encode( fd_repair_response_t const * self, fd_bincode_encode_ctx_t * ctx );
    6121             : 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 );
    6122             : ulong fd_repair_response_size( fd_repair_response_t const * self );
    6123           0 : static inline ulong fd_repair_response_align( void ) { return FD_REPAIR_RESPONSE_ALIGN; }
    6124             : int fd_repair_response_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    6125             : void * fd_repair_response_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6126             : 
    6127             : FD_FN_PURE uchar fd_repair_response_is_ping( fd_repair_response_t const * self );
    6128             : enum {
    6129             : fd_repair_response_enum_ping = 0,
    6130             : };
    6131             : void fd_instr_error_enum_new_disc( fd_instr_error_enum_t * self, uint discriminant );
    6132             : void fd_instr_error_enum_new( fd_instr_error_enum_t * self );
    6133             : int fd_instr_error_enum_encode( fd_instr_error_enum_t const * self, fd_bincode_encode_ctx_t * ctx );
    6134             : 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 );
    6135             : ulong fd_instr_error_enum_size( fd_instr_error_enum_t const * self );
    6136           0 : static inline ulong fd_instr_error_enum_align( void ) { return FD_INSTR_ERROR_ENUM_ALIGN; }
    6137             : int fd_instr_error_enum_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    6138             : void * fd_instr_error_enum_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6139             : 
    6140             : FD_FN_PURE uchar fd_instr_error_enum_is_generic_error( fd_instr_error_enum_t const * self );
    6141             : FD_FN_PURE uchar fd_instr_error_enum_is_invalid_argument( fd_instr_error_enum_t const * self );
    6142             : FD_FN_PURE uchar fd_instr_error_enum_is_invalid_instruction_data( fd_instr_error_enum_t const * self );
    6143             : FD_FN_PURE uchar fd_instr_error_enum_is_invalid_account_data( fd_instr_error_enum_t const * self );
    6144             : FD_FN_PURE uchar fd_instr_error_enum_is_account_data_too_small( fd_instr_error_enum_t const * self );
    6145             : FD_FN_PURE uchar fd_instr_error_enum_is_insufficient_funds( fd_instr_error_enum_t const * self );
    6146             : FD_FN_PURE uchar fd_instr_error_enum_is_incorrect_program_id( fd_instr_error_enum_t const * self );
    6147             : FD_FN_PURE uchar fd_instr_error_enum_is_missing_required_signature( fd_instr_error_enum_t const * self );
    6148             : FD_FN_PURE uchar fd_instr_error_enum_is_account_already_initialized( fd_instr_error_enum_t const * self );
    6149             : FD_FN_PURE uchar fd_instr_error_enum_is_uninitialized_account( fd_instr_error_enum_t const * self );
    6150             : FD_FN_PURE uchar fd_instr_error_enum_is_unbalanced_instruction( fd_instr_error_enum_t const * self );
    6151             : FD_FN_PURE uchar fd_instr_error_enum_is_modified_program_id( fd_instr_error_enum_t const * self );
    6152             : FD_FN_PURE uchar fd_instr_error_enum_is_external_account_lamport_spend( fd_instr_error_enum_t const * self );
    6153             : FD_FN_PURE uchar fd_instr_error_enum_is_external_account_data_modified( fd_instr_error_enum_t const * self );
    6154             : FD_FN_PURE uchar fd_instr_error_enum_is_readonly_lamport_change( fd_instr_error_enum_t const * self );
    6155             : FD_FN_PURE uchar fd_instr_error_enum_is_readonly_data_modified( fd_instr_error_enum_t const * self );
    6156             : FD_FN_PURE uchar fd_instr_error_enum_is_duplicate_account_index( fd_instr_error_enum_t const * self );
    6157             : FD_FN_PURE uchar fd_instr_error_enum_is_executable_modified( fd_instr_error_enum_t const * self );
    6158             : FD_FN_PURE uchar fd_instr_error_enum_is_rent_epoch_modified( fd_instr_error_enum_t const * self );
    6159             : FD_FN_PURE uchar fd_instr_error_enum_is_not_enough_account_keys( fd_instr_error_enum_t const * self );
    6160             : FD_FN_PURE uchar fd_instr_error_enum_is_account_data_size_changed( fd_instr_error_enum_t const * self );
    6161             : FD_FN_PURE uchar fd_instr_error_enum_is_account_not_executable( fd_instr_error_enum_t const * self );
    6162             : FD_FN_PURE uchar fd_instr_error_enum_is_account_borrow_failed( fd_instr_error_enum_t const * self );
    6163             : FD_FN_PURE uchar fd_instr_error_enum_is_account_borrow_outstanding( fd_instr_error_enum_t const * self );
    6164             : FD_FN_PURE uchar fd_instr_error_enum_is_duplicate_account_out_of_sync( fd_instr_error_enum_t const * self );
    6165             : FD_FN_PURE uchar fd_instr_error_enum_is_custom( fd_instr_error_enum_t const * self );
    6166             : FD_FN_PURE uchar fd_instr_error_enum_is_invalid_error( fd_instr_error_enum_t const * self );
    6167             : FD_FN_PURE uchar fd_instr_error_enum_is_executable_data_modified( fd_instr_error_enum_t const * self );
    6168             : FD_FN_PURE uchar fd_instr_error_enum_is_executable_lamport_change( fd_instr_error_enum_t const * self );
    6169             : FD_FN_PURE uchar fd_instr_error_enum_is_executable_account_not_rent_exempt( fd_instr_error_enum_t const * self );
    6170             : FD_FN_PURE uchar fd_instr_error_enum_is_unsupported_program_id( fd_instr_error_enum_t const * self );
    6171             : FD_FN_PURE uchar fd_instr_error_enum_is_call_depth( fd_instr_error_enum_t const * self );
    6172             : FD_FN_PURE uchar fd_instr_error_enum_is_missing_account( fd_instr_error_enum_t const * self );
    6173             : FD_FN_PURE uchar fd_instr_error_enum_is_reentrancy_not_allowed( fd_instr_error_enum_t const * self );
    6174             : FD_FN_PURE uchar fd_instr_error_enum_is_max_seed_length_exceeded( fd_instr_error_enum_t const * self );
    6175             : FD_FN_PURE uchar fd_instr_error_enum_is_invalid_seeds( fd_instr_error_enum_t const * self );
    6176             : FD_FN_PURE uchar fd_instr_error_enum_is_invalid_realloc( fd_instr_error_enum_t const * self );
    6177             : FD_FN_PURE uchar fd_instr_error_enum_is_computational_budget_exceeded( fd_instr_error_enum_t const * self );
    6178             : FD_FN_PURE uchar fd_instr_error_enum_is_privilege_escalation( fd_instr_error_enum_t const * self );
    6179             : FD_FN_PURE uchar fd_instr_error_enum_is_program_environment_setup_failure( fd_instr_error_enum_t const * self );
    6180             : FD_FN_PURE uchar fd_instr_error_enum_is_program_failed_to_complete( fd_instr_error_enum_t const * self );
    6181             : FD_FN_PURE uchar fd_instr_error_enum_is_program_failed_to_compile( fd_instr_error_enum_t const * self );
    6182             : FD_FN_PURE uchar fd_instr_error_enum_is_immutable( fd_instr_error_enum_t const * self );
    6183             : FD_FN_PURE uchar fd_instr_error_enum_is_incorrect_authority( fd_instr_error_enum_t const * self );
    6184             : FD_FN_PURE uchar fd_instr_error_enum_is_borsh_io_error( fd_instr_error_enum_t const * self );
    6185             : FD_FN_PURE uchar fd_instr_error_enum_is_account_not_rent_exempt( fd_instr_error_enum_t const * self );
    6186             : FD_FN_PURE uchar fd_instr_error_enum_is_invalid_account_owner( fd_instr_error_enum_t const * self );
    6187             : FD_FN_PURE uchar fd_instr_error_enum_is_arithmetic_overflow( fd_instr_error_enum_t const * self );
    6188             : FD_FN_PURE uchar fd_instr_error_enum_is_unsupported_sysvar( fd_instr_error_enum_t const * self );
    6189             : FD_FN_PURE uchar fd_instr_error_enum_is_illegal_owner( fd_instr_error_enum_t const * self );
    6190             : FD_FN_PURE uchar fd_instr_error_enum_is_max_accounts_data_allocations_exceeded( fd_instr_error_enum_t const * self );
    6191             : FD_FN_PURE uchar fd_instr_error_enum_is_max_accounts_exceeded( fd_instr_error_enum_t const * self );
    6192             : FD_FN_PURE uchar fd_instr_error_enum_is_max_instruction_trace_length_exceeded( fd_instr_error_enum_t const * self );
    6193             : FD_FN_PURE uchar fd_instr_error_enum_is_builtin_programs_must_consume_compute_units( fd_instr_error_enum_t const * self );
    6194             : enum {
    6195             : fd_instr_error_enum_enum_generic_error = 0,
    6196             : fd_instr_error_enum_enum_invalid_argument = 1,
    6197             : fd_instr_error_enum_enum_invalid_instruction_data = 2,
    6198             : fd_instr_error_enum_enum_invalid_account_data = 3,
    6199             : fd_instr_error_enum_enum_account_data_too_small = 4,
    6200             : fd_instr_error_enum_enum_insufficient_funds = 5,
    6201             : fd_instr_error_enum_enum_incorrect_program_id = 6,
    6202             : fd_instr_error_enum_enum_missing_required_signature = 7,
    6203             : fd_instr_error_enum_enum_account_already_initialized = 8,
    6204             : fd_instr_error_enum_enum_uninitialized_account = 9,
    6205             : fd_instr_error_enum_enum_unbalanced_instruction = 10,
    6206             : fd_instr_error_enum_enum_modified_program_id = 11,
    6207             : fd_instr_error_enum_enum_external_account_lamport_spend = 12,
    6208             : fd_instr_error_enum_enum_external_account_data_modified = 13,
    6209             : fd_instr_error_enum_enum_readonly_lamport_change = 14,
    6210             : fd_instr_error_enum_enum_readonly_data_modified = 15,
    6211             : fd_instr_error_enum_enum_duplicate_account_index = 16,
    6212             : fd_instr_error_enum_enum_executable_modified = 17,
    6213             : fd_instr_error_enum_enum_rent_epoch_modified = 18,
    6214             : fd_instr_error_enum_enum_not_enough_account_keys = 19,
    6215             : fd_instr_error_enum_enum_account_data_size_changed = 20,
    6216             : fd_instr_error_enum_enum_account_not_executable = 21,
    6217             : fd_instr_error_enum_enum_account_borrow_failed = 22,
    6218             : fd_instr_error_enum_enum_account_borrow_outstanding = 23,
    6219             : fd_instr_error_enum_enum_duplicate_account_out_of_sync = 24,
    6220             : fd_instr_error_enum_enum_custom = 25,
    6221             : fd_instr_error_enum_enum_invalid_error = 26,
    6222             : fd_instr_error_enum_enum_executable_data_modified = 27,
    6223             : fd_instr_error_enum_enum_executable_lamport_change = 28,
    6224             : fd_instr_error_enum_enum_executable_account_not_rent_exempt = 29,
    6225             : fd_instr_error_enum_enum_unsupported_program_id = 30,
    6226             : fd_instr_error_enum_enum_call_depth = 31,
    6227             : fd_instr_error_enum_enum_missing_account = 32,
    6228             : fd_instr_error_enum_enum_reentrancy_not_allowed = 33,
    6229             : fd_instr_error_enum_enum_max_seed_length_exceeded = 34,
    6230             : fd_instr_error_enum_enum_invalid_seeds = 35,
    6231             : fd_instr_error_enum_enum_invalid_realloc = 36,
    6232             : fd_instr_error_enum_enum_computational_budget_exceeded = 37,
    6233             : fd_instr_error_enum_enum_privilege_escalation = 38,
    6234             : fd_instr_error_enum_enum_program_environment_setup_failure = 39,
    6235             : fd_instr_error_enum_enum_program_failed_to_complete = 40,
    6236             : fd_instr_error_enum_enum_program_failed_to_compile = 41,
    6237             : fd_instr_error_enum_enum_immutable = 42,
    6238             : fd_instr_error_enum_enum_incorrect_authority = 43,
    6239             : fd_instr_error_enum_enum_borsh_io_error = 44,
    6240             : fd_instr_error_enum_enum_account_not_rent_exempt = 45,
    6241             : fd_instr_error_enum_enum_invalid_account_owner = 46,
    6242             : fd_instr_error_enum_enum_arithmetic_overflow = 47,
    6243             : fd_instr_error_enum_enum_unsupported_sysvar = 48,
    6244             : fd_instr_error_enum_enum_illegal_owner = 49,
    6245             : fd_instr_error_enum_enum_max_accounts_data_allocations_exceeded = 50,
    6246             : fd_instr_error_enum_enum_max_accounts_exceeded = 51,
    6247             : fd_instr_error_enum_enum_max_instruction_trace_length_exceeded = 52,
    6248             : fd_instr_error_enum_enum_builtin_programs_must_consume_compute_units = 53,
    6249             : };
    6250             : void fd_txn_instr_error_new( fd_txn_instr_error_t * self );
    6251             : int fd_txn_instr_error_encode( fd_txn_instr_error_t const * self, fd_bincode_encode_ctx_t * ctx );
    6252             : 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 );
    6253             : ulong fd_txn_instr_error_size( fd_txn_instr_error_t const * self );
    6254           0 : static inline ulong fd_txn_instr_error_align( void ) { return FD_TXN_INSTR_ERROR_ALIGN; }
    6255             : int fd_txn_instr_error_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    6256             : void * fd_txn_instr_error_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6257             : 
    6258             : void fd_txn_error_enum_new_disc( fd_txn_error_enum_t * self, uint discriminant );
    6259             : void fd_txn_error_enum_new( fd_txn_error_enum_t * self );
    6260             : int fd_txn_error_enum_encode( fd_txn_error_enum_t const * self, fd_bincode_encode_ctx_t * ctx );
    6261             : 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 );
    6262             : ulong fd_txn_error_enum_size( fd_txn_error_enum_t const * self );
    6263           0 : static inline ulong fd_txn_error_enum_align( void ) { return FD_TXN_ERROR_ENUM_ALIGN; }
    6264             : int fd_txn_error_enum_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    6265             : void * fd_txn_error_enum_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6266             : 
    6267             : FD_FN_PURE uchar fd_txn_error_enum_is_account_in_use( fd_txn_error_enum_t const * self );
    6268             : FD_FN_PURE uchar fd_txn_error_enum_is_account_loaded_twice( fd_txn_error_enum_t const * self );
    6269             : FD_FN_PURE uchar fd_txn_error_enum_is_account_not_found( fd_txn_error_enum_t const * self );
    6270             : FD_FN_PURE uchar fd_txn_error_enum_is_program_account_not_found( fd_txn_error_enum_t const * self );
    6271             : FD_FN_PURE uchar fd_txn_error_enum_is_insufficient_funds_for_fee( fd_txn_error_enum_t const * self );
    6272             : FD_FN_PURE uchar fd_txn_error_enum_is_invalid_account_for_fee( fd_txn_error_enum_t const * self );
    6273             : FD_FN_PURE uchar fd_txn_error_enum_is_already_processed( fd_txn_error_enum_t const * self );
    6274             : FD_FN_PURE uchar fd_txn_error_enum_is_blockhash_not_found( fd_txn_error_enum_t const * self );
    6275             : FD_FN_PURE uchar fd_txn_error_enum_is_instruction_error( fd_txn_error_enum_t const * self );
    6276             : FD_FN_PURE uchar fd_txn_error_enum_is_call_chain_too_deep( fd_txn_error_enum_t const * self );
    6277             : FD_FN_PURE uchar fd_txn_error_enum_is_missing_signature_for_fee( fd_txn_error_enum_t const * self );
    6278             : FD_FN_PURE uchar fd_txn_error_enum_is_invalid_account_index( fd_txn_error_enum_t const * self );
    6279             : FD_FN_PURE uchar fd_txn_error_enum_is_signature_failure( fd_txn_error_enum_t const * self );
    6280             : FD_FN_PURE uchar fd_txn_error_enum_is_invalid_program_for_execution( fd_txn_error_enum_t const * self );
    6281             : FD_FN_PURE uchar fd_txn_error_enum_is_sanitize_failure( fd_txn_error_enum_t const * self );
    6282             : FD_FN_PURE uchar fd_txn_error_enum_is_cluster_maintenance( fd_txn_error_enum_t const * self );
    6283             : FD_FN_PURE uchar fd_txn_error_enum_is_account_borrow_outstanding( fd_txn_error_enum_t const * self );
    6284             : FD_FN_PURE uchar fd_txn_error_enum_is_would_exceed_max_block_cost_limit( fd_txn_error_enum_t const * self );
    6285             : FD_FN_PURE uchar fd_txn_error_enum_is_unsupported_version( fd_txn_error_enum_t const * self );
    6286             : FD_FN_PURE uchar fd_txn_error_enum_is_invalid_writable_account( fd_txn_error_enum_t const * self );
    6287             : FD_FN_PURE uchar fd_txn_error_enum_is_would_exceed_max_account_cost_limit( fd_txn_error_enum_t const * self );
    6288             : FD_FN_PURE uchar fd_txn_error_enum_is_would_exceed_account_data_block_limit( fd_txn_error_enum_t const * self );
    6289             : FD_FN_PURE uchar fd_txn_error_enum_is_too_many_account_locks( fd_txn_error_enum_t const * self );
    6290             : FD_FN_PURE uchar fd_txn_error_enum_is_address_lookup_table_not_found( fd_txn_error_enum_t const * self );
    6291             : FD_FN_PURE uchar fd_txn_error_enum_is_invalid_address_lookup_table_owner( fd_txn_error_enum_t const * self );
    6292             : FD_FN_PURE uchar fd_txn_error_enum_is_invalid_address_lookup_table_data( fd_txn_error_enum_t const * self );
    6293             : FD_FN_PURE uchar fd_txn_error_enum_is_invalid_address_lookup_table_index( fd_txn_error_enum_t const * self );
    6294             : FD_FN_PURE uchar fd_txn_error_enum_is_invalid_rent_paying_account( fd_txn_error_enum_t const * self );
    6295             : FD_FN_PURE uchar fd_txn_error_enum_is_would_exceed_max_vote_cost_limit( fd_txn_error_enum_t const * self );
    6296             : FD_FN_PURE uchar fd_txn_error_enum_is_would_exceed_account_data_total_limit( fd_txn_error_enum_t const * self );
    6297             : FD_FN_PURE uchar fd_txn_error_enum_is_duplicate_instruction( fd_txn_error_enum_t const * self );
    6298             : FD_FN_PURE uchar fd_txn_error_enum_is_insufficient_funds_for_rent( fd_txn_error_enum_t const * self );
    6299             : FD_FN_PURE uchar fd_txn_error_enum_is_max_loaded_accounts_data_size_exceeded( fd_txn_error_enum_t const * self );
    6300             : FD_FN_PURE uchar fd_txn_error_enum_is_invalid_loaded_accounts_data_size_limit( fd_txn_error_enum_t const * self );
    6301             : FD_FN_PURE uchar fd_txn_error_enum_is_resanitization_needed( fd_txn_error_enum_t const * self );
    6302             : FD_FN_PURE uchar fd_txn_error_enum_is_program_execution_temporarily_restricted( fd_txn_error_enum_t const * self );
    6303             : FD_FN_PURE uchar fd_txn_error_enum_is_unbalanced_transaction( fd_txn_error_enum_t const * self );
    6304             : enum {
    6305             : fd_txn_error_enum_enum_account_in_use = 0,
    6306             : fd_txn_error_enum_enum_account_loaded_twice = 1,
    6307             : fd_txn_error_enum_enum_account_not_found = 2,
    6308             : fd_txn_error_enum_enum_program_account_not_found = 3,
    6309             : fd_txn_error_enum_enum_insufficient_funds_for_fee = 4,
    6310             : fd_txn_error_enum_enum_invalid_account_for_fee = 5,
    6311             : fd_txn_error_enum_enum_already_processed = 6,
    6312             : fd_txn_error_enum_enum_blockhash_not_found = 7,
    6313             : fd_txn_error_enum_enum_instruction_error = 8,
    6314             : fd_txn_error_enum_enum_call_chain_too_deep = 9,
    6315             : fd_txn_error_enum_enum_missing_signature_for_fee = 10,
    6316             : fd_txn_error_enum_enum_invalid_account_index = 11,
    6317             : fd_txn_error_enum_enum_signature_failure = 12,
    6318             : fd_txn_error_enum_enum_invalid_program_for_execution = 13,
    6319             : fd_txn_error_enum_enum_sanitize_failure = 14,
    6320             : fd_txn_error_enum_enum_cluster_maintenance = 15,
    6321             : fd_txn_error_enum_enum_account_borrow_outstanding = 16,
    6322             : fd_txn_error_enum_enum_would_exceed_max_block_cost_limit = 17,
    6323             : fd_txn_error_enum_enum_unsupported_version = 18,
    6324             : fd_txn_error_enum_enum_invalid_writable_account = 19,
    6325             : fd_txn_error_enum_enum_would_exceed_max_account_cost_limit = 20,
    6326             : fd_txn_error_enum_enum_would_exceed_account_data_block_limit = 21,
    6327             : fd_txn_error_enum_enum_too_many_account_locks = 22,
    6328             : fd_txn_error_enum_enum_address_lookup_table_not_found = 23,
    6329             : fd_txn_error_enum_enum_invalid_address_lookup_table_owner = 24,
    6330             : fd_txn_error_enum_enum_invalid_address_lookup_table_data = 25,
    6331             : fd_txn_error_enum_enum_invalid_address_lookup_table_index = 26,
    6332             : fd_txn_error_enum_enum_invalid_rent_paying_account = 27,
    6333             : fd_txn_error_enum_enum_would_exceed_max_vote_cost_limit = 28,
    6334             : fd_txn_error_enum_enum_would_exceed_account_data_total_limit = 29,
    6335             : fd_txn_error_enum_enum_duplicate_instruction = 30,
    6336             : fd_txn_error_enum_enum_insufficient_funds_for_rent = 31,
    6337             : fd_txn_error_enum_enum_max_loaded_accounts_data_size_exceeded = 32,
    6338             : fd_txn_error_enum_enum_invalid_loaded_accounts_data_size_limit = 33,
    6339             : fd_txn_error_enum_enum_resanitization_needed = 34,
    6340             : fd_txn_error_enum_enum_program_execution_temporarily_restricted = 35,
    6341             : fd_txn_error_enum_enum_unbalanced_transaction = 36,
    6342             : };
    6343             : void fd_txn_result_new_disc( fd_txn_result_t * self, uint discriminant );
    6344             : void fd_txn_result_new( fd_txn_result_t * self );
    6345             : int fd_txn_result_encode( fd_txn_result_t const * self, fd_bincode_encode_ctx_t * ctx );
    6346             : 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 );
    6347             : ulong fd_txn_result_size( fd_txn_result_t const * self );
    6348           0 : static inline ulong fd_txn_result_align( void ) { return FD_TXN_RESULT_ALIGN; }
    6349             : int fd_txn_result_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    6350             : void * fd_txn_result_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6351             : 
    6352             : FD_FN_PURE uchar fd_txn_result_is_ok( fd_txn_result_t const * self );
    6353             : FD_FN_PURE uchar fd_txn_result_is_error( fd_txn_result_t const * self );
    6354             : enum {
    6355             : fd_txn_result_enum_ok = 0,
    6356             : fd_txn_result_enum_error = 1,
    6357             : };
    6358             : void fd_cache_status_new( fd_cache_status_t * self );
    6359             : int fd_cache_status_encode( fd_cache_status_t const * self, fd_bincode_encode_ctx_t * ctx );
    6360             : void fd_cache_status_walk( void * w, fd_cache_status_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    6361             : ulong fd_cache_status_size( fd_cache_status_t const * self );
    6362           0 : static inline ulong fd_cache_status_align( void ) { return FD_CACHE_STATUS_ALIGN; }
    6363             : int fd_cache_status_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    6364             : void * fd_cache_status_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6365             : 
    6366             : void fd_status_value_new( fd_status_value_t * self );
    6367             : int fd_status_value_encode( fd_status_value_t const * self, fd_bincode_encode_ctx_t * ctx );
    6368             : void fd_status_value_walk( void * w, fd_status_value_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    6369             : ulong fd_status_value_size( fd_status_value_t const * self );
    6370           0 : static inline ulong fd_status_value_align( void ) { return FD_STATUS_VALUE_ALIGN; }
    6371             : int fd_status_value_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    6372             : void * fd_status_value_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6373             : 
    6374             : void fd_status_pair_new( fd_status_pair_t * self );
    6375             : int fd_status_pair_encode( fd_status_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
    6376             : void fd_status_pair_walk( void * w, fd_status_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    6377             : ulong fd_status_pair_size( fd_status_pair_t const * self );
    6378           0 : static inline ulong fd_status_pair_align( void ) { return FD_STATUS_PAIR_ALIGN; }
    6379             : int fd_status_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    6380             : void * fd_status_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6381             : 
    6382             : void fd_slot_delta_new( fd_slot_delta_t * self );
    6383             : int fd_slot_delta_encode( fd_slot_delta_t const * self, fd_bincode_encode_ctx_t * ctx );
    6384             : void fd_slot_delta_walk( void * w, fd_slot_delta_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    6385             : ulong fd_slot_delta_size( fd_slot_delta_t const * self );
    6386           0 : static inline ulong fd_slot_delta_align( void ) { return FD_SLOT_DELTA_ALIGN; }
    6387             : int fd_slot_delta_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    6388             : void * fd_slot_delta_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6389             : 
    6390             : void fd_bank_slot_deltas_new( fd_bank_slot_deltas_t * self );
    6391             : int fd_bank_slot_deltas_encode( fd_bank_slot_deltas_t const * self, fd_bincode_encode_ctx_t * ctx );
    6392             : void fd_bank_slot_deltas_walk( void * w, fd_bank_slot_deltas_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    6393             : ulong fd_bank_slot_deltas_size( fd_bank_slot_deltas_t const * self );
    6394           0 : static inline ulong fd_bank_slot_deltas_align( void ) { return FD_BANK_SLOT_DELTAS_ALIGN; }
    6395             : int fd_bank_slot_deltas_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    6396             : void * fd_bank_slot_deltas_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6397             : 
    6398             : void fd_pubkey_rewardinfo_pair_new( fd_pubkey_rewardinfo_pair_t * self );
    6399             : int fd_pubkey_rewardinfo_pair_encode( fd_pubkey_rewardinfo_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
    6400             : void fd_pubkey_rewardinfo_pair_walk( void * w, fd_pubkey_rewardinfo_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    6401           0 : static inline ulong fd_pubkey_rewardinfo_pair_size( fd_pubkey_rewardinfo_pair_t const * self ) { (void)self; return 60UL; }
    6402           0 : static inline ulong fd_pubkey_rewardinfo_pair_align( void ) { return FD_PUBKEY_REWARDINFO_PAIR_ALIGN; }
    6403             : int fd_pubkey_rewardinfo_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    6404             : void * fd_pubkey_rewardinfo_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6405             : 
    6406             : void fd_optional_account_new( fd_optional_account_t * self );
    6407             : int fd_optional_account_encode( fd_optional_account_t const * self, fd_bincode_encode_ctx_t * ctx );
    6408             : void fd_optional_account_walk( void * w, fd_optional_account_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    6409             : ulong fd_optional_account_size( fd_optional_account_t const * self );
    6410           0 : static inline ulong fd_optional_account_align( void ) { return FD_OPTIONAL_ACCOUNT_ALIGN; }
    6411             : int fd_optional_account_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    6412             : void * fd_optional_account_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6413             : 
    6414           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) ); }
    6415             : int fd_calculated_stake_points_encode( fd_calculated_stake_points_t const * self, fd_bincode_encode_ctx_t * ctx );
    6416             : 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 );
    6417           0 : static inline ulong fd_calculated_stake_points_size( fd_calculated_stake_points_t const * self ) { (void)self; return 25UL; }
    6418           0 : static inline ulong fd_calculated_stake_points_align( void ) { return FD_CALCULATED_STAKE_POINTS_ALIGN; }
    6419           0 : static inline int fd_calculated_stake_points_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    6420           0 :   *total_sz += sizeof(fd_calculated_stake_points_t);
    6421           0 :   if( (ulong)ctx->data + 25UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    6422           0 :   return 0;
    6423           0 : }
    6424             : void * fd_calculated_stake_points_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6425             : 
    6426           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) ); }
    6427             : int fd_calculated_stake_rewards_encode( fd_calculated_stake_rewards_t const * self, fd_bincode_encode_ctx_t * ctx );
    6428             : 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 );
    6429           0 : static inline ulong fd_calculated_stake_rewards_size( fd_calculated_stake_rewards_t const * self ) { (void)self; return 24UL; }
    6430           0 : static inline ulong fd_calculated_stake_rewards_align( void ) { return FD_CALCULATED_STAKE_REWARDS_ALIGN; }
    6431           0 : static inline int fd_calculated_stake_rewards_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    6432           0 :   *total_sz += sizeof(fd_calculated_stake_rewards_t);
    6433           0 :   if( (ulong)ctx->data + 24UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    6434           0 :   return 0;
    6435           0 : }
    6436             : void * fd_calculated_stake_rewards_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6437             : 
    6438             : void fd_duplicate_slot_proof_new( fd_duplicate_slot_proof_t * self );
    6439             : int fd_duplicate_slot_proof_encode( fd_duplicate_slot_proof_t const * self, fd_bincode_encode_ctx_t * ctx );
    6440             : 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 );
    6441             : ulong fd_duplicate_slot_proof_size( fd_duplicate_slot_proof_t const * self );
    6442           0 : static inline ulong fd_duplicate_slot_proof_align( void ) { return FD_DUPLICATE_SLOT_PROOF_ALIGN; }
    6443             : int fd_duplicate_slot_proof_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    6444             : void * fd_duplicate_slot_proof_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6445             : 
    6446           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) ); }
    6447             : int fd_epoch_info_pair_encode( fd_epoch_info_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
    6448             : 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 );
    6449           0 : static inline ulong fd_epoch_info_pair_size( fd_epoch_info_pair_t const * self ) { (void)self; return 104UL; }
    6450           0 : static inline ulong fd_epoch_info_pair_align( void ) { return FD_EPOCH_INFO_PAIR_ALIGN; }
    6451           0 : static inline int fd_epoch_info_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    6452           0 :   *total_sz += sizeof(fd_epoch_info_pair_t);
    6453           0 :   if( (ulong)ctx->data + 104UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    6454           0 :   return 0;
    6455           0 : }
    6456             : void * fd_epoch_info_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6457             : 
    6458             : void fd_vote_info_pair_new( fd_vote_info_pair_t * self );
    6459             : int fd_vote_info_pair_encode( fd_vote_info_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
    6460             : void fd_vote_info_pair_walk( void * w, fd_vote_info_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    6461             : ulong fd_vote_info_pair_size( fd_vote_info_pair_t const * self );
    6462           0 : static inline ulong fd_vote_info_pair_align( void ) { return FD_VOTE_INFO_PAIR_ALIGN; }
    6463             : int fd_vote_info_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    6464             : void * fd_vote_info_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6465             : 
    6466             : void fd_epoch_info_new( fd_epoch_info_t * self );
    6467             : int fd_epoch_info_encode( fd_epoch_info_t const * self, fd_bincode_encode_ctx_t * ctx );
    6468             : void fd_epoch_info_walk( void * w, fd_epoch_info_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    6469             : ulong fd_epoch_info_size( fd_epoch_info_t const * self );
    6470           0 : static inline ulong fd_epoch_info_align( void ) { return FD_EPOCH_INFO_ALIGN; }
    6471             : int fd_epoch_info_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    6472             : void * fd_epoch_info_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6473             : 
    6474           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) ); }
    6475             : int fd_usage_cost_details_encode( fd_usage_cost_details_t const * self, fd_bincode_encode_ctx_t * ctx );
    6476             : 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 );
    6477           0 : static inline ulong fd_usage_cost_details_size( fd_usage_cost_details_t const * self ) { (void)self; return 48UL; }
    6478           0 : static inline ulong fd_usage_cost_details_align( void ) { return FD_USAGE_COST_DETAILS_ALIGN; }
    6479           0 : static inline int fd_usage_cost_details_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    6480           0 :   *total_sz += sizeof(fd_usage_cost_details_t);
    6481           0 :   if( (ulong)ctx->data + 48UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    6482           0 :   return 0;
    6483           0 : }
    6484             : void * fd_usage_cost_details_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6485             : 
    6486             : void fd_transaction_cost_new_disc( fd_transaction_cost_t * self, uint discriminant );
    6487             : void fd_transaction_cost_new( fd_transaction_cost_t * self );
    6488             : int fd_transaction_cost_encode( fd_transaction_cost_t const * self, fd_bincode_encode_ctx_t * ctx );
    6489             : 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 );
    6490             : ulong fd_transaction_cost_size( fd_transaction_cost_t const * self );
    6491           0 : static inline ulong fd_transaction_cost_align( void ) { return FD_TRANSACTION_COST_ALIGN; }
    6492             : int fd_transaction_cost_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    6493             : void * fd_transaction_cost_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6494             : 
    6495             : FD_FN_PURE uchar fd_transaction_cost_is_simple_vote( fd_transaction_cost_t const * self );
    6496             : FD_FN_PURE uchar fd_transaction_cost_is_transaction( fd_transaction_cost_t const * self );
    6497             : enum {
    6498             : fd_transaction_cost_enum_simple_vote = 0,
    6499             : fd_transaction_cost_enum_transaction = 1,
    6500             : };
    6501           0 : static inline void fd_account_costs_pair_new( fd_account_costs_pair_t * self ) { fd_memset( self, 0, sizeof(fd_account_costs_pair_t) ); }
    6502             : int fd_account_costs_pair_encode( fd_account_costs_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
    6503             : void fd_account_costs_pair_walk( void * w, fd_account_costs_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    6504           0 : static inline ulong fd_account_costs_pair_size( fd_account_costs_pair_t const * self ) { (void)self; return 40UL; }
    6505           0 : static inline ulong fd_account_costs_pair_align( void ) { return FD_ACCOUNT_COSTS_PAIR_ALIGN; }
    6506           0 : static inline int fd_account_costs_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    6507           0 :   *total_sz += sizeof(fd_account_costs_pair_t);
    6508           0 :   if( (ulong)ctx->data + 40UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    6509           0 :   return 0;
    6510           0 : }
    6511             : void * fd_account_costs_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6512             : 
    6513             : void fd_account_costs_new( fd_account_costs_t * self );
    6514             : int fd_account_costs_encode( fd_account_costs_t const * self, fd_bincode_encode_ctx_t * ctx );
    6515             : void fd_account_costs_walk( void * w, fd_account_costs_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    6516             : ulong fd_account_costs_size( fd_account_costs_t const * self );
    6517           0 : static inline ulong fd_account_costs_align( void ) { return FD_ACCOUNT_COSTS_ALIGN; }
    6518             : int fd_account_costs_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    6519             : void * fd_account_costs_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6520             : 
    6521             : void fd_cost_tracker_new( fd_cost_tracker_t * self );
    6522             : int fd_cost_tracker_encode( fd_cost_tracker_t const * self, fd_bincode_encode_ctx_t * ctx );
    6523             : void fd_cost_tracker_walk( void * w, fd_cost_tracker_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    6524             : ulong fd_cost_tracker_size( fd_cost_tracker_t const * self );
    6525           0 : static inline ulong fd_cost_tracker_align( void ) { return FD_COST_TRACKER_ALIGN; }
    6526             : int fd_cost_tracker_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    6527             : void * fd_cost_tracker_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6528             : 
    6529           0 : static inline void fd_rent_paying_new( fd_rent_paying_t * self ) { fd_memset( self, 0, sizeof(fd_rent_paying_t) ); }
    6530             : int fd_rent_paying_encode( fd_rent_paying_t const * self, fd_bincode_encode_ctx_t * ctx );
    6531             : 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 );
    6532           0 : static inline ulong fd_rent_paying_size( fd_rent_paying_t const * self ) { (void)self; return 16UL; }
    6533           0 : static inline ulong fd_rent_paying_align( void ) { return FD_RENT_PAYING_ALIGN; }
    6534           0 : static inline int fd_rent_paying_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    6535           0 :   *total_sz += sizeof(fd_rent_paying_t);
    6536           0 :   if( (ulong)ctx->data + 16UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    6537           0 :   return 0;
    6538           0 : }
    6539             : void * fd_rent_paying_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6540             : 
    6541             : void fd_rent_state_new_disc( fd_rent_state_t * self, uint discriminant );
    6542             : void fd_rent_state_new( fd_rent_state_t * self );
    6543             : int fd_rent_state_encode( fd_rent_state_t const * self, fd_bincode_encode_ctx_t * ctx );
    6544             : 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 );
    6545             : ulong fd_rent_state_size( fd_rent_state_t const * self );
    6546           0 : static inline ulong fd_rent_state_align( void ) { return FD_RENT_STATE_ALIGN; }
    6547             : int fd_rent_state_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    6548             : void * fd_rent_state_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    6549             : 
    6550             : FD_FN_PURE uchar fd_rent_state_is_uninitialized( fd_rent_state_t const * self );
    6551             : FD_FN_PURE uchar fd_rent_state_is_rent_paying( fd_rent_state_t const * self );
    6552             : FD_FN_PURE uchar fd_rent_state_is_rent_exempt( fd_rent_state_t const * self );
    6553             : enum {
    6554             : fd_rent_state_enum_uninitialized = 0,
    6555             : fd_rent_state_enum_rent_paying = 1,
    6556             : fd_rent_state_enum_rent_exempt = 2,
    6557             : };
    6558             : FD_PROTOTYPES_END
    6559             : 
    6560             : #endif // HEADER_FD_RUNTIME_TYPES

Generated by: LCOV version 1.14