Line data Source code
1 : #ifndef HEADER_fd_src_flamenco_runtime_sysvar_fd_slot_history_h 2 : #define HEADER_fd_src_flamenco_runtime_sysvar_fd_slot_history_h 3 : 4 : #include "../../fd_flamenco_base.h" 5 : #include "../../types/fd_types.h" 6 : 7 0 : #define FD_SLOT_HISTORY_SLOT_FUTURE (-1) 8 0 : #define FD_SLOT_HISTORY_SLOT_FOUND (0) 9 0 : #define FD_SLOT_HISTORY_SLOT_NOTFOUND (-2) 10 0 : #define FD_SLOT_HISTORY_SLOT_TOO_OLD (-3) 11 : 12 : /* The slot history sysvar contains a bit-vector indicating which slots have been processed in the current epoch. */ 13 : 14 : /* Initialize the slot history sysvar account. */ 15 : void fd_sysvar_slot_history_init( fd_exec_slot_ctx_t * slot_ctx ); 16 : 17 : /* Update the slot history sysvar account. This should be called at the end of every slot, after execution has concluded. */ 18 : int fd_sysvar_slot_history_update( fd_exec_slot_ctx_t * slot_ctx ); 19 : 20 : /* Reads the current value of the slot history sysvar */ 21 : int 22 : fd_sysvar_slot_history_read( fd_exec_slot_ctx_t * slot_ctx, 23 : fd_valloc_t valloc, 24 : fd_slot_history_t * out_history ); 25 : 26 : int 27 : fd_sysvar_slot_history_find_slot( fd_slot_history_t const * history, 28 : ulong slot ); 29 : #endif /* HEADER_fd_src_flamenco_runtime_sysvar_fd_slot_history_h */