mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-30 18:41:03 +00:00
read latest_generated_nonce directly from storage (#1260)
This commit is contained in:
committed by
Bastian Köcher
parent
741484214e
commit
c21217a282
@@ -75,8 +75,6 @@ impl ChainWithMessages for Kusama {
|
||||
bp_kusama::WITH_KUSAMA_MESSAGES_PALLET_NAME;
|
||||
const TO_CHAIN_MESSAGE_DETAILS_METHOD: &'static str =
|
||||
bp_kusama::TO_KUSAMA_MESSAGE_DETAILS_METHOD;
|
||||
const TO_CHAIN_LATEST_GENERATED_NONCE_METHOD: &'static str =
|
||||
bp_kusama::TO_KUSAMA_LATEST_GENERATED_NONCE_METHOD;
|
||||
const TO_CHAIN_LATEST_RECEIVED_NONCE_METHOD: &'static str =
|
||||
bp_kusama::TO_KUSAMA_LATEST_RECEIVED_NONCE_METHOD;
|
||||
const FROM_CHAIN_LATEST_RECEIVED_NONCE_METHOD: &'static str =
|
||||
|
||||
@@ -59,8 +59,6 @@ impl ChainWithMessages for Millau {
|
||||
bp_millau::WITH_MILLAU_MESSAGES_PALLET_NAME;
|
||||
const TO_CHAIN_MESSAGE_DETAILS_METHOD: &'static str =
|
||||
bp_millau::TO_MILLAU_MESSAGE_DETAILS_METHOD;
|
||||
const TO_CHAIN_LATEST_GENERATED_NONCE_METHOD: &'static str =
|
||||
bp_millau::TO_MILLAU_LATEST_GENERATED_NONCE_METHOD;
|
||||
const TO_CHAIN_LATEST_RECEIVED_NONCE_METHOD: &'static str =
|
||||
bp_millau::TO_MILLAU_LATEST_RECEIVED_NONCE_METHOD;
|
||||
const FROM_CHAIN_LATEST_RECEIVED_NONCE_METHOD: &'static str =
|
||||
|
||||
@@ -75,8 +75,6 @@ impl ChainWithMessages for Polkadot {
|
||||
bp_polkadot::WITH_POLKADOT_MESSAGES_PALLET_NAME;
|
||||
const TO_CHAIN_MESSAGE_DETAILS_METHOD: &'static str =
|
||||
bp_polkadot::TO_POLKADOT_MESSAGE_DETAILS_METHOD;
|
||||
const TO_CHAIN_LATEST_GENERATED_NONCE_METHOD: &'static str =
|
||||
bp_polkadot::TO_POLKADOT_LATEST_GENERATED_NONCE_METHOD;
|
||||
const TO_CHAIN_LATEST_RECEIVED_NONCE_METHOD: &'static str =
|
||||
bp_polkadot::TO_POLKADOT_LATEST_RECEIVED_NONCE_METHOD;
|
||||
const FROM_CHAIN_LATEST_RECEIVED_NONCE_METHOD: &'static str =
|
||||
|
||||
@@ -74,8 +74,6 @@ impl ChainWithMessages for Rialto {
|
||||
bp_rialto::WITH_RIALTO_MESSAGES_PALLET_NAME;
|
||||
const TO_CHAIN_MESSAGE_DETAILS_METHOD: &'static str =
|
||||
bp_rialto::TO_RIALTO_MESSAGE_DETAILS_METHOD;
|
||||
const TO_CHAIN_LATEST_GENERATED_NONCE_METHOD: &'static str =
|
||||
bp_rialto::TO_RIALTO_LATEST_GENERATED_NONCE_METHOD;
|
||||
const TO_CHAIN_LATEST_RECEIVED_NONCE_METHOD: &'static str =
|
||||
bp_rialto::TO_RIALTO_LATEST_RECEIVED_NONCE_METHOD;
|
||||
const FROM_CHAIN_LATEST_RECEIVED_NONCE_METHOD: &'static str =
|
||||
|
||||
@@ -78,8 +78,6 @@ impl ChainWithMessages for Rococo {
|
||||
bp_rococo::WITH_ROCOCO_MESSAGES_PALLET_NAME;
|
||||
const TO_CHAIN_MESSAGE_DETAILS_METHOD: &'static str =
|
||||
bp_rococo::TO_ROCOCO_MESSAGE_DETAILS_METHOD;
|
||||
const TO_CHAIN_LATEST_GENERATED_NONCE_METHOD: &'static str =
|
||||
bp_rococo::TO_ROCOCO_LATEST_GENERATED_NONCE_METHOD;
|
||||
const TO_CHAIN_LATEST_RECEIVED_NONCE_METHOD: &'static str =
|
||||
bp_rococo::TO_ROCOCO_LATEST_RECEIVED_NONCE_METHOD;
|
||||
const FROM_CHAIN_LATEST_RECEIVED_NONCE_METHOD: &'static str =
|
||||
|
||||
@@ -76,9 +76,6 @@ pub trait ChainWithMessages: Chain {
|
||||
/// Name of the `To<ChainWithMessages>OutboundLaneApi::message_details` runtime API method.
|
||||
/// The method is provided by the runtime that is bridged with this `ChainWithMessages`.
|
||||
const TO_CHAIN_MESSAGE_DETAILS_METHOD: &'static str;
|
||||
/// Name of the `To<ChainWithMessages>OutboundLaneApi::latest_generated_nonce` runtime API
|
||||
/// method. The method is provided by the runtime that is bridged with this `ChainWithMessages`.
|
||||
const TO_CHAIN_LATEST_GENERATED_NONCE_METHOD: &'static str;
|
||||
/// Name of the `To<ChainWithMessages>OutboundLaneApi::latest_received_nonce` runtime API
|
||||
/// method. The method is provided by the runtime that is bridged with this `ChainWithMessages`.
|
||||
const TO_CHAIN_LATEST_RECEIVED_NONCE_METHOD: &'static str;
|
||||
|
||||
@@ -78,8 +78,6 @@ impl ChainWithMessages for Wococo {
|
||||
bp_wococo::WITH_WOCOCO_MESSAGES_PALLET_NAME;
|
||||
const TO_CHAIN_MESSAGE_DETAILS_METHOD: &'static str =
|
||||
bp_wococo::TO_WOCOCO_MESSAGE_DETAILS_METHOD;
|
||||
const TO_CHAIN_LATEST_GENERATED_NONCE_METHOD: &'static str =
|
||||
bp_wococo::TO_WOCOCO_LATEST_GENERATED_NONCE_METHOD;
|
||||
const TO_CHAIN_LATEST_RECEIVED_NONCE_METHOD: &'static str =
|
||||
bp_wococo::TO_WOCOCO_LATEST_RECEIVED_NONCE_METHOD;
|
||||
const FROM_CHAIN_LATEST_RECEIVED_NONCE_METHOD: &'static str =
|
||||
|
||||
@@ -28,7 +28,10 @@ use crate::{
|
||||
};
|
||||
|
||||
use async_trait::async_trait;
|
||||
use bp_messages::{LaneId, MessageNonce, UnrewardedRelayersState};
|
||||
use bp_messages::{
|
||||
storage_keys::outbound_lane_data_key, LaneId, MessageNonce, OutboundLaneData,
|
||||
UnrewardedRelayersState,
|
||||
};
|
||||
use bridge_runtime_common::messages::{
|
||||
source::FromBridgedChainMessagesDeliveryProof, target::FromBridgedChainMessagesProof,
|
||||
};
|
||||
@@ -126,16 +129,19 @@ where
|
||||
&self,
|
||||
id: SourceHeaderIdOf<MessageLaneAdapter<P>>,
|
||||
) -> Result<(SourceHeaderIdOf<MessageLaneAdapter<P>>, MessageNonce), SubstrateError> {
|
||||
let encoded_response = self
|
||||
let outbound_lane_data: Option<OutboundLaneData> = self
|
||||
.client
|
||||
.state_call(
|
||||
P::TargetChain::TO_CHAIN_LATEST_GENERATED_NONCE_METHOD.into(),
|
||||
Bytes(self.lane_id.encode()),
|
||||
.storage_value(
|
||||
outbound_lane_data_key(
|
||||
P::TargetChain::WITH_CHAIN_MESSAGES_PALLET_NAME,
|
||||
&self.lane_id,
|
||||
),
|
||||
Some(id.1),
|
||||
)
|
||||
.await?;
|
||||
let latest_generated_nonce: MessageNonce = Decode::decode(&mut &encoded_response.0[..])
|
||||
.map_err(SubstrateError::ResponseParseFailed)?;
|
||||
// lane data missing from the storage is fine until first message is sent
|
||||
let latest_generated_nonce =
|
||||
outbound_lane_data.map(|data| data.latest_generated_nonce).unwrap_or(0);
|
||||
Ok((id, latest_generated_nonce))
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user