LCOV - code coverage report
Current view: top level - flamenco/features - fd_features.c (source / functions) Hit Total Coverage
Test: cov.lcov Lines: 25 41 61.0 %
Date: 2025-03-20 12:08:36 Functions: 3 4 75.0 %

          Line data    Source code
       1             : #include "fd_features.h"
       2             : 
       3             : void
       4           3 : fd_features_enable_all( fd_features_t * f ) {
       5           3 :   for( fd_feature_id_t const * id = fd_feature_iter_init();
       6         687 :        !fd_feature_iter_done( id );
       7         684 :        id = fd_feature_iter_next( id ) ) {
       8         684 :     fd_features_set( f, id, 0UL );
       9         684 :   }
      10           3 : }
      11             : 
      12             : void
      13        7668 : fd_features_disable_all( fd_features_t * f ) {
      14        7668 :   for( fd_feature_id_t const * id = fd_feature_iter_init();
      15     1755972 :        !fd_feature_iter_done( id );
      16     1748304 :        id = fd_feature_iter_next( id ) ) {
      17     1748304 :     fd_features_set( f, id, FD_FEATURE_DISABLED );
      18     1748304 :   }
      19        7668 : }
      20             : 
      21             : void
      22           0 : fd_features_enable_cleaned_up( fd_features_t * f, uint cluster_version[3] ) {
      23           0 :   for( fd_feature_id_t const * id = fd_feature_iter_init();
      24           0 :        !fd_feature_iter_done( id );
      25           0 :        id = fd_feature_iter_next( id ) ) {
      26           0 :     if( ( id->cleaned_up[0]<cluster_version[0] ) ||
      27           0 :         ( id->cleaned_up[0]==cluster_version[0] && id->cleaned_up[1]<cluster_version[1] ) ||
      28           0 :         ( id->cleaned_up[0]==cluster_version[0] && id->cleaned_up[1]==cluster_version[1] && id->cleaned_up[2]<=cluster_version[2] ) ) {
      29           0 :       fd_features_set( f, id, 0UL );
      30           0 :     } else {
      31           0 :       fd_features_set( f, id, FD_FEATURE_DISABLED );
      32           0 :     }
      33           0 :   }
      34           0 : }
      35             : 
      36             : void
      37          18 : fd_features_enable_one_offs( fd_features_t * f, char const * * one_offs, uint one_offs_cnt, ulong slot ) {
      38          18 :   uchar pubkey[32];
      39          36 :   for( uint i=0U; i<one_offs_cnt; i++ ) {
      40          18 :     fd_base58_decode_32( one_offs[i], pubkey );
      41          18 :     for( fd_feature_id_t const * id = fd_feature_iter_init();
      42        4122 :          !fd_feature_iter_done( id );
      43        4104 :          id = fd_feature_iter_next( id ) ) {
      44        4104 :       if( !memcmp( &id->id, pubkey, sizeof(fd_pubkey_t) ) ) {
      45           0 :         fd_features_set( f, id, slot );
      46           0 :         break;
      47           0 :       }
      48        4104 :     }
      49          18 :   }
      50          18 : }

Generated by: LCOV version 1.14