pub fn key_changes(
		&self,
		first: NumberFor<Block>,
		last: BlockId<Block>,
		key: &StorageKey
	) -> error::Result<Vec<(NumberFor<Block>, u32)>> {
		let (config, storage) = self.require_changes_trie()?;
		let last_number = self.backend.blockchain().expect_block_number_from_id(&last)?.as_();
		let last_hash = self.backend.blockchain().expect_block_hash_from_id(&last)?;

		key_changes::<_, Blake2Hasher>(
			&config,
			&*storage,
			first.as_(),
			&ChangesTrieAnchorBlockId {
				hash: convert_hash(&last_hash),
				number: last_number,
			},
			self.backend.blockchain().info()?.best_number.as_(),
			&key.0)
		.and_then(|r| r.map(|r| r.map(|(block, tx)| (As::sa(block), tx))).collect::<Result<_, _>>())
		.map_err(|err| error::ErrorKind::ChangesTrieAccessFailed(err).into())
	}
/// Get pairs of (block, extrinsic) where key has been changed at given blocks range.
/// Works only for runtimes that are supporting changes tries.
Get pairs of (block, extrinsic) where key has been changed at given blocks range.
Works only for runtimes that are supporting changes tries.
Get pairs of ( block extrinsic ) where key has been changed at given blocks range . Works only for runtimes that are supporting changes tries .
pub fn key_changes(
		&self,
		first: NumberFor<Block>,
		last: BlockId<Block>,
		key: &StorageKey
	) -> error::Result<Vec<(NumberFor<Block>, u32)>> {
		let (config, storage) = self.require_changes_trie()?;
		let last_number = self.backend.blockchain().expect_block_number_from_id(&last)?.as_();
		let last_hash = self.backend.blockchain().expect_block_hash_from_id(&last)?;
		key_changes::<_, Blake2Hasher>(
			&config,
			&*storage,
			first.as_(),
			&ChangesTrieAnchorBlockId {
				hash: convert_hash(&last_hash),
				number: last_number,
			},
			self.backend.blockchain().info()?.best_number.as_(),
			&key.0)
		.and_then(|r| r.map(|r| r.map(|(block, tx)| (As::sa(block), tx))).collect::<Result<_, _>>())
		.map_err(|err| error::ErrorKind::ChangesTrieAccessFailed(err).into())
	}
pub fn key_changes ( & self , first : NumberFor < Block > , last : BlockId < Block > , key : & StorageKey ) -> error :: Result < Vec < ( NumberFor < Block > , u32 ) > > { let ( config , storage ) = self . require_changes_trie ( ) ? ; let last_number = self . backend . blockchain ( ) . expect_block_number_from_id ( & last ) ? . as_ ( ) ; let last_hash = self . backend . blockchain ( ) . expect_block_hash_from_id ( & last ) ? ; key_changes :: < _ , Blake2Hasher > ( & config , & * storage , first . as_ ( ) , & ChangesTrieAnchorBlockId { hash : convert_hash ( & last_hash ) , number : last_number , } , self . backend . blockchain ( ) . info ( ) ? . best_number . as_ ( ) , & key . 0 ) . and_then ( | r | r . map ( | r | r . map ( | ( block , tx ) | ( As :: sa ( block ) , tx ) ) ) . collect :: < Result < _ , _ > > ( ) ) . map_err ( | err | error :: ErrorKind :: ChangesTrieAccessFailed ( err ) . into ( ) ) }
Get pairs of (block, extrinsic) where key has been changed at given blocks range.
Get pairs of ( block extrinsic ) where key has been changed at given blocks range .
&self
first
NumberFor<Block>
last
BlockId<Block>
key
&StorageKey
&self
first
NumberFor<Block>
last
BlockId<Block>
key
&StorageKey