pub trait MmrApiClient<BlockHash, BlockNumber, MmrHash>: ClientTwhere
BlockHash: Send + Sync + 'static + Serialize + DeserializeOwned,
BlockNumber: Send + Sync + 'static + Serialize,
MmrHash: Send + Sync + 'static + Serialize + DeserializeOwned,{
// Provided methods
fn mmr_root<'life0, 'async_trait>(
&'life0 self,
at: Option<BlockHash>,
) -> Pin<Box<dyn Future<Output = Result<MmrHash, Error>> + Send + 'async_trait>>
where Self: Sync + 'async_trait,
'life0: 'async_trait { ... }
fn generate_proof<'life0, 'async_trait>(
&'life0 self,
block_numbers: Vec<BlockNumber>,
best_known_block_number: Option<BlockNumber>,
at: Option<BlockHash>,
) -> Pin<Box<dyn Future<Output = Result<LeavesProof<BlockHash>, Error>> + Send + 'async_trait>>
where Self: Sync + 'async_trait,
'life0: 'async_trait { ... }
fn verify_proof<'life0, 'async_trait>(
&'life0 self,
proof: LeavesProof<BlockHash>,
) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>
where Self: Sync + 'async_trait,
'life0: 'async_trait { ... }
fn verify_proof_stateless<'life0, 'async_trait>(
&'life0 self,
mmr_root: MmrHash,
proof: LeavesProof<BlockHash>,
) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>
where Self: Sync + 'async_trait,
'life0: 'async_trait { ... }
}
Expand description
Client implementation for the MmrApi
RPC API.
Provided Methods§
Sourcefn mmr_root<'life0, 'async_trait>(
&'life0 self,
at: Option<BlockHash>,
) -> Pin<Box<dyn Future<Output = Result<MmrHash, Error>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
fn mmr_root<'life0, 'async_trait>(
&'life0 self,
at: Option<BlockHash>,
) -> Pin<Box<dyn Future<Output = Result<MmrHash, Error>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
Get the MMR root hash for the current best block.
Sourcefn generate_proof<'life0, 'async_trait>(
&'life0 self,
block_numbers: Vec<BlockNumber>,
best_known_block_number: Option<BlockNumber>,
at: Option<BlockHash>,
) -> Pin<Box<dyn Future<Output = Result<LeavesProof<BlockHash>, Error>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
fn generate_proof<'life0, 'async_trait>(
&'life0 self,
block_numbers: Vec<BlockNumber>,
best_known_block_number: Option<BlockNumber>,
at: Option<BlockHash>,
) -> Pin<Box<dyn Future<Output = Result<LeavesProof<BlockHash>, Error>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
Generate an MMR proof for the given block_numbers
.
This method calls into a runtime with MMR pallet included and attempts to generate
an MMR proof for the set of blocks that have the given block_numbers
with the MMR root at
best_known_block_number
. best_known_block_number
must be larger than all the
block_numbers
for the function to succeed.
Optionally via at
, a block hash at which the runtime should be queried can be specified.
Optionally via best_known_block_number
, the proof can be generated using the MMR’s state
at a specific best block. Note that if best_known_block_number
is provided, then also
specifying the block hash via at
isn’t super-useful here, unless you’re generating proof
using non-finalized blocks where there are several competing forks. That’s because MMR state
will be fixed to the state with best_known_block_number
, which already points to
some historical block.
Returns the (full) leaves and a proof for these leaves (compact encoding, i.e. hash of
the leaves). Both parameters are SCALE-encoded.
The order of entries in the leaves
field of the returned struct
is the same as the order of the entries in block_numbers
supplied
Sourcefn verify_proof<'life0, 'async_trait>(
&'life0 self,
proof: LeavesProof<BlockHash>,
) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
fn verify_proof<'life0, 'async_trait>(
&'life0 self,
proof: LeavesProof<BlockHash>,
) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
Verify an MMR proof
.
This method calls into a runtime with MMR pallet included and attempts to verify an MMR proof.
Returns true
if the proof is valid, else returns the verification error.
Sourcefn verify_proof_stateless<'life0, 'async_trait>(
&'life0 self,
mmr_root: MmrHash,
proof: LeavesProof<BlockHash>,
) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
fn verify_proof_stateless<'life0, 'async_trait>(
&'life0 self,
mmr_root: MmrHash,
proof: LeavesProof<BlockHash>,
) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
Verify an MMR proof
statelessly given an mmr_root
.
This method calls into a runtime with MMR pallet included and attempts to verify an MMR proof against a provided MMR root.
Returns true
if the proof is valid, else returns the verification error.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.