Skip to content

Commit 71757af

Browse files
removing last complex fd_types from bank
1 parent 6e4d6df commit 71757af

File tree

13 files changed

+71
-181
lines changed

13 files changed

+71
-181
lines changed

src/discof/replay/fd_replay_tile.c

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -360,29 +360,28 @@ publish_stake_weights( fd_replay_tile_ctx_t * ctx,
360360
fd_epoch_schedule_t const * epoch_schedule = fd_bank_epoch_schedule_query( slot_ctx->bank );
361361

362362
fd_vote_states_t const * vote_states_prev_prev = fd_bank_vote_states_prev_prev_locking_query( slot_ctx->bank );
363-
ulong * stake_weights_msg = fd_chunk_to_laddr( ctx->stake_out->mem, ctx->stake_out->chunk );
364-
ulong epoch = fd_slot_to_leader_schedule_epoch( epoch_schedule, fd_bank_slot_get( slot_ctx->bank ) );
365-
ulong stake_weights_sz = generate_stake_weight_msg_2( slot_ctx, epoch - 1, vote_states_prev_prev, stake_weights_msg );
366-
ulong stake_weights_sig = 4UL;
367-
fd_stem_publish( stem, 0UL, stake_weights_sig, ctx->stake_out->chunk, stake_weights_sz, 0UL, 0UL, fd_frag_meta_ts_comp( fd_tickcount() ) );
368-
ctx->stake_out->chunk = fd_dcache_compact_next( ctx->stake_out->chunk, stake_weights_sz, ctx->stake_out->chunk0, ctx->stake_out->wmark );
369-
FD_LOG_NOTICE(("sending current epoch stake weights - epoch: %lu, stake_weight_cnt: %lu, start_slot: %lu, slot_cnt: %lu", stake_weights_msg[0], stake_weights_msg[1], stake_weights_msg[2], stake_weights_msg[3]));
363+
do {
364+
ulong * stake_weights_msg = fd_chunk_to_laddr( ctx->stake_out->mem, ctx->stake_out->chunk );
365+
ulong epoch = fd_slot_to_leader_schedule_epoch( epoch_schedule, fd_bank_slot_get( slot_ctx->bank ) );
366+
ulong stake_weights_sz = generate_stake_weight_msg_2( slot_ctx, epoch - 1, vote_states_prev_prev, stake_weights_msg );
367+
ulong stake_weights_sig = 4UL;
368+
fd_stem_publish( stem, 0UL, stake_weights_sig, ctx->stake_out->chunk, stake_weights_sz, 0UL, 0UL, fd_frag_meta_ts_comp( fd_tickcount() ) );
369+
ctx->stake_out->chunk = fd_dcache_compact_next( ctx->stake_out->chunk, stake_weights_sz, ctx->stake_out->chunk0, ctx->stake_out->wmark );
370+
FD_LOG_NOTICE(("sending current epoch stake weights - epoch: %lu, stake_weight_cnt: %lu, start_slot: %lu, slot_cnt: %lu", stake_weights_msg[0], stake_weights_msg[1], stake_weights_msg[2], stake_weights_msg[3]));
371+
} while( 0 );
370372
fd_bank_vote_states_prev_prev_end_locking_query( slot_ctx->bank );
371373

372-
373-
fd_vote_accounts_global_t const * next_epoch_stakes = fd_bank_next_epoch_stakes_locking_query( slot_ctx->bank );
374-
fd_vote_accounts_pair_global_t_mapnode_t * next_epoch_stakes_root = fd_vote_accounts_vote_accounts_root_join( next_epoch_stakes );
375-
376-
if( next_epoch_stakes_root!=NULL ) {
374+
fd_vote_states_t const * vote_states_prev = fd_bank_vote_states_prev_locking_query( slot_ctx->bank );
375+
do {
377376
ulong * stake_weights_msg = fd_chunk_to_laddr( ctx->stake_out->mem, ctx->stake_out->chunk );
378377
ulong epoch = fd_slot_to_leader_schedule_epoch( epoch_schedule, fd_bank_slot_get( slot_ctx->bank ) ); /* epoch */
379-
ulong stake_weights_sz = generate_stake_weight_msg( slot_ctx, epoch, next_epoch_stakes, stake_weights_msg );
380-
ulong stake_weights_sig = 4UL;
378+
ulong stake_weights_sz = generate_stake_weight_msg_2( slot_ctx, epoch, vote_states_prev, stake_weights_msg );
379+
ulong stake_weights_sig = 4UL;
381380
fd_stem_publish( stem, 0UL, stake_weights_sig, ctx->stake_out->chunk, stake_weights_sz, 0UL, 0UL, fd_frag_meta_ts_comp( fd_tickcount() ) );
382381
ctx->stake_out->chunk = fd_dcache_compact_next( ctx->stake_out->chunk, stake_weights_sz, ctx->stake_out->chunk0, ctx->stake_out->wmark );
383382
FD_LOG_NOTICE(("sending next epoch stake weights - epoch: %lu, stake_weight_cnt: %lu, start_slot: %lu, slot_cnt: %lu", stake_weights_msg[0], stake_weights_msg[1], stake_weights_msg[2], stake_weights_msg[3]));
384-
}
385-
fd_bank_next_epoch_stakes_end_locking_query( slot_ctx->bank );
383+
} while( 0 );
384+
fd_bank_vote_states_prev_end_locking_query( slot_ctx->bank );
386385
}
387386

388387
static void

src/flamenco/rewards/fd_rewards.c

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1205,12 +1205,9 @@ fd_rewards_recalculate_partitioned_rewards( fd_exec_slot_ctx_t * slot_ctx,
12051205

12061206
fd_bank_stake_delegations_end_locking_modify( slot_ctx->bank );
12071207

1208-
fd_refresh_vote_accounts( slot_ctx,
1209-
stake_history,
1210-
new_warmup_cooldown_rate_epoch );
1211-
// fd_populate_vote_accounts( slot_ctx,
1212-
// stake_history,
1213-
// new_warmup_cooldown_rate_epoch );
1208+
fd_populate_vote_accounts( slot_ctx,
1209+
stake_history,
1210+
new_warmup_cooldown_rate_epoch );
12141211
/* In future, the calculation will be cached in the snapshot, but for now we just re-calculate it
12151212
(as Agave does). */
12161213
fd_calculate_stake_vote_rewards_result_t calculate_stake_vote_rewards_result[1];

src/flamenco/runtime/context/fd_exec_slot_ctx.c

Lines changed: 7 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -167,53 +167,6 @@ fd_exec_slot_ctx_recover( fd_exec_slot_ctx_t * slot_ctx,
167167
return 0;
168168
}
169169

170-
/* Move next EpochStakes */
171-
172-
fd_vote_accounts_global_t * next_epoch_stakes = fd_bank_next_epoch_stakes_locking_modify( slot_ctx->bank );
173-
uchar * next_epoch_stakes_pool_mem = (uchar *)fd_ulong_align_up( (ulong)next_epoch_stakes + sizeof(fd_vote_accounts_global_t), fd_vote_accounts_pair_global_t_map_align() );
174-
fd_vote_accounts_pair_global_t_mapnode_t * next_epoch_stakes_pool = fd_vote_accounts_pair_global_t_map_join( fd_vote_accounts_pair_global_t_map_new( next_epoch_stakes_pool_mem, 50000UL ) );
175-
fd_vote_accounts_pair_global_t_mapnode_t * next_epoch_stakes_root = NULL;
176-
177-
fd_vote_accounts_pair_global_t_mapnode_t * pool = vote_accounts_next_stakes_pool;
178-
fd_vote_accounts_pair_global_t_mapnode_t * root = vote_accounts_next_stakes_root;
179-
180-
uchar * acc_region_curr = (uchar *)fd_ulong_align_up( (ulong)next_epoch_stakes_pool + fd_vote_accounts_pair_global_t_map_footprint( 50000UL ), 8UL );
181-
182-
for( fd_vote_accounts_pair_global_t_mapnode_t * n = fd_vote_accounts_pair_global_t_map_minimum( pool, root );
183-
n;
184-
n = fd_vote_accounts_pair_global_t_map_successor( pool, n ) ) {
185-
186-
fd_vote_accounts_pair_global_t_mapnode_t * elem = fd_vote_accounts_pair_global_t_map_acquire( next_epoch_stakes_pool );
187-
FD_TEST( elem );
188-
189-
elem->elem.stake = n->elem.stake;
190-
elem->elem.key = n->elem.key;
191-
192-
elem->elem.value.lamports = n->elem.value.lamports;
193-
elem->elem.value.data_len = 0UL;
194-
elem->elem.value.data_offset = 0UL;
195-
elem->elem.value.owner = n->elem.value.owner;
196-
elem->elem.value.executable = n->elem.value.executable;
197-
elem->elem.value.rent_epoch = n->elem.value.rent_epoch;
198-
199-
elem->elem.value.data_offset = (ulong)(acc_region_curr - (uchar *)&elem->elem.value);;
200-
elem->elem.value.data_len = n->elem.value.data_len;
201-
202-
uchar * manifest_data = fd_solana_account_data_join( &n->elem.value );
203-
memcpy( acc_region_curr, manifest_data, n->elem.value.data_len );
204-
acc_region_curr += n->elem.value.data_len;
205-
206-
fd_vote_accounts_pair_global_t_map_insert(
207-
next_epoch_stakes_pool,
208-
&next_epoch_stakes_root,
209-
elem );
210-
211-
}
212-
fd_vote_accounts_vote_accounts_pool_update( next_epoch_stakes, next_epoch_stakes_pool );
213-
fd_vote_accounts_vote_accounts_root_update( next_epoch_stakes, next_epoch_stakes_root );
214-
fd_bank_next_epoch_stakes_end_locking_modify( slot_ctx->bank );
215-
216-
217170
/* Copy the vote states for the previous epoch E-2 */
218171

219172
fd_vote_states_t * vote_states_prev_prev = fd_vote_states_join( fd_vote_states_new( fd_bank_vote_states_prev_prev_locking_modify( slot_ctx->bank ), FD_RUNTIME_MAX_VOTE_ACCOUNTS ) );
@@ -222,17 +175,21 @@ fd_exec_slot_ctx_recover( fd_exec_slot_ctx_t * slot_ctx,
222175
n = fd_vote_accounts_pair_global_t_map_successor( vote_accounts_curr_stakes_pool, n ) ) {
223176
uchar * account_data = fd_solana_account_data_join( &n->elem.value );
224177
ulong account_data_len = n->elem.value.data_len;
225-
fd_vote_states_update_from_account( vote_states_prev_prev, &n->elem.key, account_data, account_data_len );
178+
fd_vote_states_update_from_account(
179+
vote_states_prev_prev,
180+
&n->elem.key,
181+
account_data,
182+
account_data_len );
226183
fd_vote_states_update_stake( vote_states_prev_prev, &n->elem.key, n->elem.stake );
227184
}
228185
fd_bank_vote_states_prev_prev_end_locking_modify( slot_ctx->bank );
229186

230187
/* Copy the vote states for the previous epoch E-1 */
231188

232189
fd_vote_states_t * vote_states_prev = fd_vote_states_join( fd_vote_states_new( fd_bank_vote_states_prev_locking_modify( slot_ctx->bank ), FD_RUNTIME_MAX_VOTE_ACCOUNTS ) );
233-
for( fd_vote_accounts_pair_global_t_mapnode_t * n = fd_vote_accounts_pair_global_t_map_minimum( pool, root );
190+
for( fd_vote_accounts_pair_global_t_mapnode_t * n = fd_vote_accounts_pair_global_t_map_minimum( vote_accounts_next_stakes_pool, vote_accounts_next_stakes_root );
234191
n;
235-
n = fd_vote_accounts_pair_global_t_map_successor( pool, n ) ) {
192+
n = fd_vote_accounts_pair_global_t_map_successor( vote_accounts_next_stakes_pool, n ) ) {
236193
uchar * account_data = fd_solana_account_data_join( &n->elem.value );
237194
ulong account_data_len = n->elem.value.data_len;
238195
fd_vote_states_update_from_account(
@@ -248,10 +205,6 @@ fd_exec_slot_ctx_recover( fd_exec_slot_ctx_t * slot_ctx,
248205
/* Copy the vote states for the current epoch E */
249206

250207
fd_vote_states_t * vote_states = fd_vote_states_join( fd_vote_states_new( fd_bank_vote_states_locking_modify( slot_ctx->bank ), FD_RUNTIME_MAX_VOTE_ACCOUNTS ) );
251-
if( FD_UNLIKELY( !vote_states ) ) {
252-
FD_LOG_CRIT(( "unable to join vote states" ));
253-
}
254-
255208
for( fd_vote_accounts_pair_global_t_mapnode_t * n = fd_vote_accounts_pair_global_t_map_minimum( manifest_vote_accounts_pool, manifest_vote_accounts_root );
256209
n;
257210
n = fd_vote_accounts_pair_global_t_map_successor( manifest_vote_accounts_pool, n ) ) {
@@ -293,8 +246,6 @@ fd_exec_slot_ctx_recover( fd_exec_slot_ctx_t * slot_ctx,
293246
}
294247

295248
fd_bank_stake_delegations_end_locking_modify( slot_ctx->bank );
296-
297-
298249
return slot_ctx;
299250
}
300251

src/flamenco/runtime/fd_runtime.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1372,7 +1372,6 @@ fd_update_epoch_stakes( fd_exec_slot_ctx_t * slot_ctx ) {
13721372
/* Copy stakes->vote_accounts into next_epoch_stakes. */
13731373
static void
13741374
fd_update_next_epoch_stakes( fd_exec_slot_ctx_t * slot_ctx ) {
1375-
13761375
fd_vote_states_t * vote_states_prev = fd_bank_vote_states_prev_locking_modify( slot_ctx->bank );
13771376
fd_vote_states_t const * vote_states = fd_bank_vote_states_locking_query( slot_ctx->bank );
13781377
fd_memcpy( vote_states_prev, vote_states, fd_bank_vote_states_footprint );

src/flamenco/runtime/program/fd_vote_program.c

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1913,24 +1913,6 @@ do_process_vote_state_update( fd_vote_state_t * vote_state,
19131913
ctx );
19141914
}
19151915

1916-
// ??
1917-
ulong
1918-
fd_query_pubkey_stake( fd_pubkey_t const * pubkey, fd_vote_accounts_global_t const * vote_accounts ) {
1919-
fd_vote_accounts_pair_global_t_mapnode_t key = { 0 };
1920-
key.elem.key = *pubkey;
1921-
1922-
fd_vote_accounts_pair_global_t_mapnode_t * vote_accounts_pool = fd_vote_accounts_vote_accounts_pool_join( vote_accounts );
1923-
fd_vote_accounts_pair_global_t_mapnode_t * vote_accounts_root = fd_vote_accounts_vote_accounts_root_join( vote_accounts );
1924-
1925-
if( !vote_accounts_pool && !vote_accounts_root ) {
1926-
return 0;
1927-
}
1928-
1929-
fd_vote_accounts_pair_global_t_mapnode_t * vote_node = fd_vote_accounts_pair_global_t_map_find(
1930-
vote_accounts_pool, vote_accounts_root, &key );
1931-
return vote_node ? vote_node->elem.stake : 0;
1932-
}
1933-
19341916
static int
19351917
process_vote_state_update( fd_borrowed_account_t * vote_account,
19361918
fd_slot_hash_t const * slot_hashes,

src/flamenco/runtime/program/fd_vote_program.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,6 @@ fd_vote_program_execute( fd_exec_instr_ctx_t * ctx );
5151
uint
5252
fd_vote_state_versions_is_correct_and_initialized( fd_txn_account_t * vote_account );
5353

54-
/* Queries the delegated stake amount for the given vote account pubkey,
55-
given the vote accounts map. Returns 0 if nonexistent. */
56-
ulong
57-
fd_query_pubkey_stake( fd_pubkey_t const * pubkey, fd_vote_accounts_global_t const * vote_accounts );
58-
5954
/* An implementation of solana_sdk::transaction_context::BorrowedAccount::get_state
6055
for setting the vote state.
6156

src/flamenco/runtime/tests/fd_dump_pb.c

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -404,12 +404,9 @@ create_block_context_protobuf_from_block( fd_exec_test_block_context_t * block_c
404404
fd_bank_vote_states_end_locking_query( slot_ctx->bank );
405405

406406

407-
fd_vote_accounts_global_t const * next_epoch_stakes = fd_bank_next_epoch_stakes_locking_query( slot_ctx->bank );
408-
fd_vote_accounts_pair_global_t_mapnode_t * next_epoch_stakes_pool = fd_vote_accounts_vote_accounts_pool_join( next_epoch_stakes );
409-
fd_vote_accounts_pair_global_t_mapnode_t * next_epoch_stakes_root = fd_vote_accounts_vote_accounts_root_join( next_epoch_stakes );
410-
ulong vote_account_t_1_cnt = fd_vote_accounts_pair_global_t_map_size( next_epoch_stakes_pool,
411-
next_epoch_stakes_root );
412-
fd_bank_next_epoch_stakes_end_locking_query( slot_ctx->bank );
407+
fd_vote_states_t const * vote_states_prev = fd_bank_vote_states_prev_locking_query( slot_ctx->bank );
408+
ulong vote_account_t_1_cnt = fd_vote_states_cnt( vote_states_prev );
409+
fd_bank_vote_states_prev_end_locking_query( slot_ctx->bank );
413410

414411
fd_vote_states_t const * vote_states_prev_prev = fd_bank_vote_states_prev_prev_locking_query( slot_ctx->bank );
415412
ulong vote_account_t_2_cnt = fd_vote_states_cnt( vote_states_prev_prev );
@@ -507,7 +504,7 @@ create_block_context_protobuf_from_block( fd_exec_test_block_context_t * block_c
507504
fd_bank_vote_states_end_locking_query( slot_ctx->bank );
508505

509506
// BlockContext -> EpochContext -> vote_accounts_t_1 (vote accounts at epoch T-1)
510-
fd_vote_states_t const * vote_states_prev = fd_bank_vote_states_prev_locking_query( slot_ctx->bank );
507+
vote_states_prev = fd_bank_vote_states_prev_locking_query( slot_ctx->bank );
511508
dump_vote_accounts( slot_ctx,
512509
vote_states_prev,
513510
spad,

src/flamenco/runtime/tests/harness/fd_block_harness.c

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -178,9 +178,6 @@ fd_runtime_fuzz_block_ctx_create( fd_runtime_fuzz_runner_t * runner,
178178
fd_funk_txn_t * funk_txn = fd_funk_txn_prepare( funk, NULL, xid, 1 );
179179
fd_funk_txn_end_write( funk );
180180

181-
/* Allocate contexts */
182-
ulong vote_acct_max = fd_ulong_max( 128UL, test_ctx->acct_states_count );
183-
184181
/* Restore feature flags */
185182
fd_features_t features = {0};
186183
if( !fd_runtime_fuzz_restore_features( &features, &test_ctx->epoch_ctx.features ) ) {
@@ -298,26 +295,16 @@ fd_runtime_fuzz_block_ctx_create( fd_runtime_fuzz_runner_t * runner,
298295
/* Refresh the program cache */
299296
fd_runtime_fuzz_refresh_program_cache( slot_ctx, test_ctx->acct_states, test_ctx->acct_states_count, runner->spad );
300297

301-
fd_vote_accounts_global_t * vote_accounts = fd_bank_next_epoch_stakes_locking_modify( slot_ctx->bank );
302-
uchar * pool_mem = (uchar *)fd_ulong_align_up( (ulong)vote_accounts + sizeof(fd_vote_accounts_global_t), fd_vote_accounts_pair_global_t_map_align() );
303-
fd_vote_accounts_pair_global_t_mapnode_t * vote_accounts_pool = fd_vote_accounts_pair_global_t_map_join( fd_vote_accounts_pair_global_t_map_new( pool_mem, vote_acct_max ) );
304-
fd_vote_accounts_pair_global_t_mapnode_t * vote_accounts_root = NULL;
305-
306298
/* Update vote cache for epoch T-1 */
307299
vote_states_prev = fd_bank_vote_states_prev_locking_modify( slot_ctx->bank );
308-
fd_runtime_fuzz_block_update_prev_epoch_votes_cache( vote_accounts_pool,
309-
&vote_accounts_root,
300+
fd_runtime_fuzz_block_update_prev_epoch_votes_cache( NULL,
301+
NULL,
310302
vote_states_prev,
311303
test_ctx->epoch_ctx.vote_accounts_t_1,
312304
test_ctx->epoch_ctx.vote_accounts_t_1_count,
313305
runner->spad );
314306
fd_bank_vote_states_prev_end_locking_modify( slot_ctx->bank );
315307

316-
fd_vote_accounts_vote_accounts_pool_update( vote_accounts, vote_accounts_pool );
317-
fd_vote_accounts_vote_accounts_root_update( vote_accounts, vote_accounts_root );
318-
319-
fd_bank_next_epoch_stakes_end_locking_modify( slot_ctx->bank );
320-
321308
/* Update vote cache for epoch T-2 */
322309
vote_states_prev_prev = fd_bank_vote_states_prev_prev_locking_modify( slot_ctx->bank );
323310
fd_runtime_fuzz_block_update_prev_epoch_votes_cache( NULL,

src/flamenco/runtime/tests/harness/fd_instr_harness.c

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,25 @@ fd_runtime_fuzz_instr_ctx_create( fd_runtime_fuzz_runner_t * runner,
5959
return 0;
6060
}
6161

62-
/* Setup vote states dummy account */
62+
/* Setup vote states accounts */
6363
fd_vote_states_t * vote_states = fd_vote_states_join( fd_vote_states_new( fd_bank_vote_states_locking_modify( slot_ctx->bank ), 10000UL ) );
6464
if( FD_UNLIKELY( !vote_states ) ) {
6565
return 0;
6666
}
6767
fd_bank_vote_states_end_locking_modify( slot_ctx->bank );
6868

69+
fd_vote_states_t * vote_states_prev = fd_vote_states_join( fd_vote_states_new( fd_bank_vote_states_prev_locking_modify( slot_ctx->bank ), 10000UL ) );
70+
if( FD_UNLIKELY( !vote_states_prev ) ) {
71+
return 0;
72+
}
73+
fd_bank_vote_states_prev_end_locking_modify( slot_ctx->bank );
74+
75+
fd_vote_states_t * vote_states_prev_prev = fd_vote_states_join( fd_vote_states_new( fd_bank_vote_states_prev_prev_locking_modify( slot_ctx->bank ), 10000UL ) );
76+
if( FD_UNLIKELY( !vote_states_prev_prev ) ) {
77+
return 0;
78+
}
79+
fd_bank_vote_states_prev_prev_end_locking_modify( slot_ctx->bank );
80+
6981
/* Set up epoch context. Defaults obtained from GenesisConfig::Default() */
7082

7183
fd_rent_t * rent_bm = fd_bank_rent_modify( slot_ctx->bank );

src/flamenco/runtime/tests/harness/fd_txn_harness.c

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,21 @@ fd_runtime_fuzz_txn_ctx_create( fd_runtime_fuzz_runner_t * runner,
147147
}
148148
fd_bank_vote_states_end_locking_modify( slot_ctx->bank );
149149

150+
/* Setup vote states dummy account */
151+
fd_vote_states_t * vote_states_prev = fd_vote_states_join( fd_vote_states_new( fd_bank_vote_states_prev_locking_modify( slot_ctx->bank ), 10000UL ) );
152+
if( FD_UNLIKELY( !vote_states_prev ) ) {
153+
return NULL;
154+
}
155+
fd_bank_vote_states_prev_end_locking_modify( slot_ctx->bank );
156+
157+
/* Setup vote states dummy account */
158+
fd_vote_states_t * vote_states_prev_prev = fd_vote_states_join( fd_vote_states_new( fd_bank_vote_states_prev_prev_locking_modify( slot_ctx->bank ), 10000UL ) );
159+
if( FD_UNLIKELY( !vote_states_prev_prev ) ) {
160+
return NULL;
161+
}
162+
fd_bank_vote_states_prev_prev_end_locking_modify( slot_ctx->bank );
163+
164+
150165
/* Provide a default clock if not present */
151166
fd_sol_sysvar_clock_t clock_[1];
152167
fd_sol_sysvar_clock_t const * clock = fd_sysvar_clock_read( funk, funk_txn, clock_ );

0 commit comments

Comments
 (0)