Вы можете найти реализацию для CheckGenesis
здесь: https://github.com/paritytech/substrate/blob/master/frame/system/src/lib.rs#L1417
impl<T: Trait + Send + Sync> SignedExtension for CheckGenesis<T> {
type AccountId = T::AccountId;
type Call = <T as Trait>::Call;
type AdditionalSigned = T::Hash;
type DispatchInfo = DispatchInfo;
type Pre = ();
const IDENTIFIER: &'static str = "CheckGenesis";
fn additional_signed(&self) -> Result<Self::AdditionalSigned, TransactionValidityError> {
Ok(<Module<T>>::block_hash(T::BlockNumber::zero()))
}
}
Отсюда вы должны увидеть, что можете получить доступ к генезису ha sh позвонив:
frame_system::Module::<T>::block_hash(T::BlockNumber::zero());
Дайте мне знать, если это поможет!