LCOV - code coverage report
Current view: top level - flamenco/types - fd_types.h (source / functions) Hit Total Coverage
Test: cov.lcov Lines: 108 558 19.4 %
Date: 2026-03-20 05:53:05 Functions: 50 60928 0.1 %

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

Generated by: LCOV version 1.14