1use commonware_consensus::threshold_simplex::types::{
2 Activity as CActivity, Finalization as CFinalization, Notarization as CNotarization,
3 Seed as CSeed,
4};
5use commonware_cryptography::{
6 bls12381::primitives::variant::{MinSig, Variant},
7 sha256::Digest,
8};
9use commonware_utils::modulo;
10
11pub type Seed = CSeed<MinSig>;
12pub type Notarization = CNotarization<MinSig, Digest>;
13pub type Finalization = CFinalization<MinSig, Digest>;
14pub type Activity = CActivity<MinSig, Digest>;
15
16pub type Identity = <MinSig as Variant>::Public;
17pub type Evaluation = Identity;
18pub type Signature = <MinSig as Variant>::Signature;
19
20pub fn leader_index(seed: &[u8], participants: usize) -> usize {
22 modulo(seed, participants as u64) as usize
23}