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

Generated by: LCOV version 1.14