pub fn with_proposer(
        validators: Vec<Info>,
        proposer_address: account::Id,
    ) -> Result<Self, Error> {
        // Get the proposer.
        let proposer = validators
            .iter()
            .find(|v| v.address == proposer_address)
            .cloned()
            .ok_or_else(|| Error::proposer_not_found(proposer_address))?;

        // Create the validator set with the given proposer.
        // This is required by IBC on-chain validation.
        Ok(Self::new(validators, Some(proposer)))
    }
/// Convenience constructor for cases where there is a proposer
Convenience constructor for cases where there is a proposer
Convenience constructor for cases where there is a proposer
pub fn with_proposer(
        validators: Vec<Info>,
        proposer_address: account::Id,
    ) -> Result<Self, Error> {
        // Get the proposer.
        let proposer = validators
            .iter()
            .find(|v| v.address == proposer_address)
            .cloned()
            .ok_or_else(|| Error::proposer_not_found(proposer_address))?;
        // Create the validator set with the given proposer.
        // This is required by IBC on-chain validation.
        Ok(Self::new(validators, Some(proposer)))
    }
pub fn with_proposer ( validators : Vec < Info > , proposer_address : account :: Id , ) -> Result < Self , Error > { // Get the proposer. let proposer = validators . iter ( ) . find ( | v | v . address == proposer_address ) . cloned ( ) . ok_or_else ( | | Error :: proposer_not_found ( proposer_address ) ) ? ; // Create the validator set with the given proposer. // This is required by IBC on-chain validation. Ok ( Self :: new ( validators , Some ( proposer ) ) ) }
Convenience constructor for cases where there is a proposer
Convenience constructor for cases where there is a proposer
validators
Vec<Info>
proposer_address
account::Id