LCOV - code coverage report
Current view: top level - flamenco/runtime/sysvar - fd_sysvar_clock.h (source / functions) Hit Total Coverage
Test: cov.lcov Lines: 0 1 0.0 %
Date: 2025-08-05 05:04:49 Functions: 0 0 -

          Line data    Source code
       1             : #ifndef HEADER_fd_src_flamenco_runtime_sysvar_fd_clock_h
       2             : #define HEADER_fd_src_flamenco_runtime_sysvar_fd_clock_h
       3             : 
       4             : /* The clock sysvar provides an approximate measure of network time. */
       5             : 
       6             : #include "fd_sysvar_base.h"
       7             : #include "../../types/fd_types.h"
       8             : 
       9             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/clock.rs#L10 */
      10             : #define FD_SYSVAR_CLOCK_DEFAULT_TICKS_PER_SECOND ( 160UL )
      11           0 : #define FD_SYSVAR_CLOCK_DEFAULT_HASHES_PER_TICK  (12500UL)
      12             : 
      13             : /* FD_SYSVAR_CLOCK_STAKE_WEIGHTS_MAX specifies the max number of stake
      14             :    weights processed in a clock update. */
      15             : 
      16             : #define FD_SYSVAR_CLOCK_STAKE_WEIGHTS_MAX (10240UL)
      17             : 
      18             : FD_PROTOTYPES_BEGIN
      19             : 
      20             : /* The clock sysvar provides an approximate measure of network time. */
      21             : 
      22             : /* fd_sysvar_clock_init initializes the sysvar account to genesis state. */
      23             : 
      24             : void
      25             : fd_sysvar_clock_init( fd_exec_slot_ctx_t * slot_ctx );
      26             : 
      27             : /* fd_sysvar_clock_update updates the clock sysvar account.  Runs
      28             :    fd_calculate_stake_weighted_timestamp under the hood.  Should be
      29             :    called at the start of every slot before execution commences.
      30             :    Crashes the process with FD_LOG_ERR on failure. */
      31             : 
      32             : void
      33             : fd_sysvar_clock_update( fd_exec_slot_ctx_t * slot_ctx,
      34             :                         fd_spad_t *          spad );
      35             : 
      36             : /* Writes the current value of the clock sysvar to funk. */
      37             : 
      38             : void
      39             : fd_sysvar_clock_write( fd_exec_slot_ctx_t *    slot_ctx,
      40             :                        fd_sol_sysvar_clock_t * clock ) ;
      41             : 
      42             : /* fd_sysvar_clock_read reads the current value of the rent sysvar from
      43             :    funk. If the account doesn't exist in funk or if the account
      44             :    has zero lamports, this function returns NULL. */
      45             : 
      46             : fd_sol_sysvar_clock_t *
      47             : fd_sysvar_clock_read( fd_funk_t *             funk,
      48             :                       fd_funk_txn_t *         funk_txn,
      49             :                       fd_sol_sysvar_clock_t * clock );
      50             : 
      51             : /* fd_calculate_stake_weighted_timestamp calculates a timestamp
      52             :    estimate.  Does not modify the slot context.  Walks all cached vote
      53             :    accounts (from the "bank") and calculates a unix timestamp estimate.
      54             :    The estimate is stored into *result_timestamp.  spad is used for
      55             :    scratch allocations (allocates a treap of size FD_SYSVAR_CLOCK_STAKE_WEIGHTS_MAX).
      56             :    Crashes the process with FD_LOG_ERR on failure (e.g. too many vote
      57             :    accounts). */
      58             : 
      59             : void
      60             : fd_calculate_stake_weighted_timestamp( fd_exec_slot_ctx_t * slot_ctx,
      61             :                                        long *               result_timestamp,
      62             :                                        fd_spad_t *          spad );
      63             : 
      64             : FD_PROTOTYPES_END
      65             : 
      66             : #endif /* HEADER_fd_src_flamenco_runtime_sysvar_fd_clock_h */

Generated by: LCOV version 1.14