Line data Source code
1 : #include "ag_epoch_info.h" 2 : 3 : FD_FN_CONST static int 4 : fraction_is_met( ulong stake, 5 : ulong total, 6 : ulong numer, 7 22146 : ulong denom ) { 8 22146 : return (uint128)stake*(uint128)denom >= (uint128)total*(uint128)numer; 9 22146 : } 10 : 11 : FD_FN_PURE int 12 3777 : ag_epoch_info_is_weakest_quorum( ag_epoch_info_t const * self, ulong stake ) { 13 3777 : return fraction_is_met( stake, self->total_stake, AG_WEAKEST_QUORUM_THRESHOLD_NUMER, AG_QUORUM_THRESHOLD_DENOM ); 14 3777 : } 15 : 16 : FD_FN_PURE int 17 7002 : ag_epoch_info_is_weak_quorum( ag_epoch_info_t const * self, ulong stake ) { 18 7002 : return fraction_is_met( stake, self->total_stake, AG_WEAK_QUORUM_THRESHOLD_NUMER, AG_QUORUM_THRESHOLD_DENOM ); 19 7002 : } 20 : 21 : FD_FN_PURE int 22 9732 : ag_epoch_info_is_quorum( ag_epoch_info_t const * self, ulong stake ) { 23 9732 : return fraction_is_met( stake, self->total_stake, AG_QUORUM_THRESHOLD_NUMER, AG_QUORUM_THRESHOLD_DENOM ); 24 9732 : } 25 : 26 : FD_FN_PURE int 27 1635 : ag_epoch_info_is_strong_quorum( ag_epoch_info_t const * self, ulong stake ) { 28 1635 : return fraction_is_met( stake, self->total_stake, AG_STRONG_QUORUM_THRESHOLD_NUMER, AG_QUORUM_THRESHOLD_DENOM ); 29 1635 : }