I am writing a frame where I need to generate the vrf sign for the authority, this requires me to include the sp_keystore and schnorrkel in the cargo.toml of the frame.
But then I encounter the following errors:-
As you can see there are some conflicts between std and no_std types. I understand that we cannot use std library inside the frame. Is there any way to use these crates inside frame?
What I want to do is something like the following
let result = SyncCryptoStore::sr25519_vrf_sign(
&**keystore,
AuthorityId::ID,
authority_id.as_ref(),
transcript_data,
);
This works for the client. But I need to do this inside frame and have SyncCryptoStore and Keystore be accessible inside the frame.
EDIT: The solution is to use or write a host function to access client code from within the runtime/frame.
Thank you, Yeou