Trait sc_light::fetcher::FetchChecker [−][src]
pub trait FetchChecker<Block>: Send + Sync where
Block: Block, { fn check_header_proof(
&self,
request: &RemoteHeaderRequest<<Block as Block>::Header>,
header: Option<<Block as Block>::Header>,
remote_proof: StorageProof
) -> Result<<Block as Block>::Header, Error>; fn check_read_proof(
&self,
request: &RemoteReadRequest<<Block as Block>::Header>,
remote_proof: StorageProof
) -> Result<HashMap<Vec<u8, Global>, Option<Vec<u8, Global>>, RandomState>, Error>; fn check_read_child_proof(
&self,
request: &RemoteReadChildRequest<<Block as Block>::Header>,
remote_proof: StorageProof
) -> Result<HashMap<Vec<u8, Global>, Option<Vec<u8, Global>>, RandomState>, Error>; fn check_execution_proof(
&self,
request: &RemoteCallRequest<<Block as Block>::Header>,
remote_proof: StorageProof
) -> Result<Vec<u8, Global>, Error>; fn check_changes_proof(
&self,
request: &RemoteChangesRequest<<Block as Block>::Header>,
proof: ChangesProof<<Block as Block>::Header>
) -> Result<Vec<(<<Block as Block>::Header as Header>::Number, u32), Global>, Error>; fn check_body_proof(
&self,
request: &RemoteBodyRequest<<Block as Block>::Header>,
body: Vec<<Block as Block>::Extrinsic, Global>
) -> Result<Vec<<Block as Block>::Extrinsic, Global>, Error>; }
Expand description
Light client remote data checker.
Implementations of this trait should not use any prunable blockchain data except that is passed to its methods.
Required methods
fn check_header_proof(
&self,
request: &RemoteHeaderRequest<<Block as Block>::Header>,
header: Option<<Block as Block>::Header>,
remote_proof: StorageProof
) -> Result<<Block as Block>::Header, Error>
fn check_header_proof(
&self,
request: &RemoteHeaderRequest<<Block as Block>::Header>,
header: Option<<Block as Block>::Header>,
remote_proof: StorageProof
) -> Result<<Block as Block>::Header, Error>
Check remote header proof.
fn check_read_proof(
&self,
request: &RemoteReadRequest<<Block as Block>::Header>,
remote_proof: StorageProof
) -> Result<HashMap<Vec<u8, Global>, Option<Vec<u8, Global>>, RandomState>, Error>
fn check_read_proof(
&self,
request: &RemoteReadRequest<<Block as Block>::Header>,
remote_proof: StorageProof
) -> Result<HashMap<Vec<u8, Global>, Option<Vec<u8, Global>>, RandomState>, Error>
Check remote storage read proof.
fn check_read_child_proof(
&self,
request: &RemoteReadChildRequest<<Block as Block>::Header>,
remote_proof: StorageProof
) -> Result<HashMap<Vec<u8, Global>, Option<Vec<u8, Global>>, RandomState>, Error>
fn check_read_child_proof(
&self,
request: &RemoteReadChildRequest<<Block as Block>::Header>,
remote_proof: StorageProof
) -> Result<HashMap<Vec<u8, Global>, Option<Vec<u8, Global>>, RandomState>, Error>
Check remote storage read proof.
fn check_execution_proof(
&self,
request: &RemoteCallRequest<<Block as Block>::Header>,
remote_proof: StorageProof
) -> Result<Vec<u8, Global>, Error>
fn check_execution_proof(
&self,
request: &RemoteCallRequest<<Block as Block>::Header>,
remote_proof: StorageProof
) -> Result<Vec<u8, Global>, Error>
Check remote method execution proof.
Check remote changes query proof.
Implementors
impl<E, Block, S> FetchChecker<Block> for LightDataChecker<E, Block, S> where
Block: BlockT,
E: CodeExecutor + Clone + 'static,
S: BlockchainStorage<Block>,