integritee-network / worker

Integritee off-chain worker and sidechain validateer
Apache License 2.0
89 stars 46 forks source link

Replace api-client wrappers with extension traits. #255

Closed clangenb closed 3 years ago

clangenb commented 3 years ago

Instead of declaring wrappers like:

    pub fn get_worker_amount<P: Pair>(api: &substrate_api_client::Api<P>) -> Option<u64>
    where
        MultiSignature: From<P::Signature>,
    {
        api.get_storage_value("SubstrateeRegistry", "EnclaveCount", None)
            .unwrap()
    }

All those function could be wrapped in an extension trait:

pub trait SubstrateeRegistry {
     fn get_worker_amount(&self) -> Option<u64>
}

impl SubtrateeRegistry for Api<P: Pair> {

   fn get_worker_amount(&self) -> Option<u64> {
      self.get_storage_value("SubstrateeRegistry", "EnclaveCount", None)
            .unwrap()
   }
}

This would probably be much more idiomatic.

The trait needs to be slightly differently defined due to trait bounds.

clangenb commented 3 years ago

Done in #268