mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-27 15:07:59 +00:00
removes use of sc_client::Client from sc-rpc (#5063)
* removes use of sc_client::Client from sc-rpc * remove Client impl from sc-finality-benches * remove client impl from sc-finality-grandpa * read_proof accepts iterator * remove generic Executor param from ExecutorProvider * fix long ass line * code style changes * merge with master Co-authored-by: Arkadiy Paronyan <arkady.paronyan@gmail.com>
This commit is contained in:
committed by
GitHub
parent
dc85ccb7df
commit
99ae5342eb
@@ -18,7 +18,7 @@
|
||||
|
||||
use sc_client::Client as SubstrateClient;
|
||||
use sp_blockchain::{Error, Info as BlockchainInfo};
|
||||
use sc_client_api::{ChangesProof, StorageProof, CallExecutor};
|
||||
use sc_client_api::{ChangesProof, StorageProof, CallExecutor, ProofProvider};
|
||||
use sp_consensus::{BlockImport, BlockStatus, Error as ConsensusError};
|
||||
use sp_runtime::traits::{Block as BlockT, Header as HeaderT, NumberFor};
|
||||
use sp_runtime::generic::{BlockId};
|
||||
@@ -50,7 +50,11 @@ pub trait Client<Block: BlockT>: Send + Sync {
|
||||
-> Result<(Block::Header, StorageProof), Error>;
|
||||
|
||||
/// Get storage read execution proof.
|
||||
fn read_proof(&self, block: &Block::Hash, keys: &[Vec<u8>]) -> Result<StorageProof, Error>;
|
||||
fn read_proof(
|
||||
&self,
|
||||
block: &Block::Hash,
|
||||
keys: &mut dyn Iterator<Item=&[u8]>,
|
||||
) -> Result<StorageProof, Error>;
|
||||
|
||||
/// Get child storage read execution proof.
|
||||
fn read_child_proof(
|
||||
@@ -58,7 +62,7 @@ pub trait Client<Block: BlockT>: Send + Sync {
|
||||
block: &Block::Hash,
|
||||
storage_key: &[u8],
|
||||
child_info: ChildInfo,
|
||||
keys: &[Vec<u8>],
|
||||
keys: &mut dyn Iterator<Item=&[u8]>,
|
||||
) -> Result<StorageProof, Error>;
|
||||
|
||||
/// Get method execution proof.
|
||||
@@ -125,14 +129,19 @@ impl<B, E, Block, RA> Client<Block> for SubstrateClient<B, E, Block, RA> where
|
||||
(self as &SubstrateClient<B, E, Block, RA>).justification(id)
|
||||
}
|
||||
|
||||
fn header_proof(&self, block_number: <Block::Header as HeaderT>::Number)
|
||||
-> Result<(Block::Header, StorageProof), Error>
|
||||
{
|
||||
(self as &SubstrateClient<B, E, Block, RA>).header_proof(&BlockId::Number(block_number))
|
||||
fn header_proof(
|
||||
&self,
|
||||
block_number: <Block::Header as HeaderT>::Number,
|
||||
)-> Result<(Block::Header, StorageProof), Error> {
|
||||
ProofProvider::<Block>::header_proof(self, &BlockId::Number(block_number))
|
||||
}
|
||||
|
||||
fn read_proof(&self, block: &Block::Hash, keys: &[Vec<u8>]) -> Result<StorageProof, Error> {
|
||||
(self as &SubstrateClient<B, E, Block, RA>).read_proof(&BlockId::Hash(block.clone()), keys)
|
||||
fn read_proof(
|
||||
&self,
|
||||
block: &Block::Hash,
|
||||
keys: &mut dyn Iterator<Item=&[u8]>,
|
||||
) -> Result<StorageProof, Error> {
|
||||
ProofProvider::<Block>::read_proof(self, &BlockId::Hash(block.clone()), keys)
|
||||
}
|
||||
|
||||
fn read_child_proof(
|
||||
@@ -140,10 +149,9 @@ impl<B, E, Block, RA> Client<Block> for SubstrateClient<B, E, Block, RA> where
|
||||
block: &Block::Hash,
|
||||
storage_key: &[u8],
|
||||
child_info: ChildInfo,
|
||||
keys: &[Vec<u8>],
|
||||
keys: &mut dyn Iterator<Item=&[u8]>,
|
||||
) -> Result<StorageProof, Error> {
|
||||
(self as &SubstrateClient<B, E, Block, RA>)
|
||||
.read_child_proof(&BlockId::Hash(block.clone()), storage_key, child_info, keys)
|
||||
ProofProvider::<Block>::read_child_proof(self, &BlockId::Hash(block.clone()), storage_key, child_info, keys)
|
||||
}
|
||||
|
||||
fn execution_proof(
|
||||
@@ -152,7 +160,8 @@ impl<B, E, Block, RA> Client<Block> for SubstrateClient<B, E, Block, RA> where
|
||||
method: &str,
|
||||
data: &[u8],
|
||||
) -> Result<(Vec<u8>, StorageProof), Error> {
|
||||
(self as &SubstrateClient<B, E, Block, RA>).execution_proof(
|
||||
ProofProvider::<Block>::execution_proof(
|
||||
self,
|
||||
&BlockId::Hash(block.clone()),
|
||||
method,
|
||||
data,
|
||||
@@ -168,7 +177,7 @@ impl<B, E, Block, RA> Client<Block> for SubstrateClient<B, E, Block, RA> where
|
||||
storage_key: Option<&StorageKey>,
|
||||
key: &StorageKey,
|
||||
) -> Result<ChangesProof<Block::Header>, Error> {
|
||||
(self as &SubstrateClient<B, E, Block, RA>).key_changes_proof(first, last, min, max, storage_key, key)
|
||||
ProofProvider::<Block>::key_changes_proof(self, first, last, min, max, storage_key, key)
|
||||
}
|
||||
|
||||
fn is_descendent_of(&self, base: &Block::Hash, block: &Block::Hash) -> Result<bool, Error> {
|
||||
|
||||
@@ -1473,7 +1473,10 @@ impl<B: BlockT, H: ExHashT> Protocol<B, H> {
|
||||
|
||||
trace!(target: "sync", "Remote read request {} from {} ({} at {})",
|
||||
request.id, who, keys_str(), request.block);
|
||||
let proof = match self.context_data.chain.read_proof(&request.block, &request.keys) {
|
||||
let proof = match self.context_data.chain.read_proof(
|
||||
&request.block,
|
||||
&mut request.keys.iter().map(AsRef::as_ref)
|
||||
) {
|
||||
Ok(proof) => proof,
|
||||
Err(error) => {
|
||||
trace!(target: "sync", "Remote read request {} from {} ({} at {}) failed with: {}",
|
||||
@@ -1523,7 +1526,7 @@ impl<B: BlockT, H: ExHashT> Protocol<B, H> {
|
||||
&request.block,
|
||||
&request.storage_key,
|
||||
child_info,
|
||||
&request.keys,
|
||||
&mut request.keys.iter().map(AsRef::as_ref),
|
||||
) {
|
||||
Ok(proof) => proof,
|
||||
Err(error) => {
|
||||
|
||||
@@ -467,7 +467,7 @@ where
|
||||
|
||||
let block = Decode::decode(&mut request.block.as_ref())?;
|
||||
|
||||
let proof = match self.chain.read_proof(&block, &request.keys) {
|
||||
let proof = match self.chain.read_proof(&block, &mut request.keys.iter().map(AsRef::as_ref)) {
|
||||
Ok(proof) => proof,
|
||||
Err(error) => {
|
||||
log::trace!("remote read request from {} ({} at {:?}) failed with: {}",
|
||||
@@ -508,7 +508,12 @@ where
|
||||
|
||||
let proof =
|
||||
if let Some(info) = ChildInfo::resolve_child_info(request.child_type, &request.child_info[..]) {
|
||||
match self.chain.read_child_proof(&block, &request.storage_key, info, &request.keys) {
|
||||
match self.chain.read_child_proof(
|
||||
&block,
|
||||
&request.storage_key,
|
||||
info,
|
||||
&mut request.keys.iter().map(AsRef::as_ref)
|
||||
) {
|
||||
Ok(proof) => proof,
|
||||
Err(error) => {
|
||||
log::trace!("remote read child request from {} ({} {} at {:?}) failed with: {}",
|
||||
|
||||
Reference in New Issue
Block a user