mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-31 07:31:02 +00:00
remove BatchDeliveryTransaction::new and BatchConfirmationTransaction::new to avoid expects (#1726)
This commit is contained in:
committed by
Bastian Köcher
parent
be27bd5e97
commit
3906131d53
@@ -367,7 +367,13 @@ where
|
|||||||
) -> Result<Option<Self::BatchTransaction>, SubstrateError> {
|
) -> Result<Option<Self::BatchTransaction>, SubstrateError> {
|
||||||
if let Some(ref target_to_source_headers_relay) = self.target_to_source_headers_relay {
|
if let Some(ref target_to_source_headers_relay) = self.target_to_source_headers_relay {
|
||||||
if P::SourceBatchCallBuilder::BATCH_CALL_SUPPORTED {
|
if P::SourceBatchCallBuilder::BATCH_CALL_SUPPORTED {
|
||||||
return BatchConfirmationTransaction::<P>::new(self.clone(), id).await.map(Some)
|
let (proved_header, prove_calls) =
|
||||||
|
target_to_source_headers_relay.prove_header(id.0).await?;
|
||||||
|
return Ok(Some(BatchConfirmationTransaction {
|
||||||
|
messages_source: self.clone(),
|
||||||
|
proved_header,
|
||||||
|
prove_calls,
|
||||||
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
target_to_source_headers_relay.require_more_headers(id.0).await;
|
target_to_source_headers_relay.require_more_headers(id.0).await;
|
||||||
@@ -384,21 +390,6 @@ pub struct BatchConfirmationTransaction<P: SubstrateMessageLane> {
|
|||||||
prove_calls: Vec<CallOf<P::SourceChain>>,
|
prove_calls: Vec<CallOf<P::SourceChain>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<P: SubstrateMessageLane> BatchConfirmationTransaction<P> {
|
|
||||||
async fn new(
|
|
||||||
messages_source: SubstrateMessagesSource<P>,
|
|
||||||
required_target_header_on_source: TargetHeaderIdOf<MessageLaneAdapter<P>>,
|
|
||||||
) -> Result<Self, SubstrateError> {
|
|
||||||
let (proved_header, prove_calls) = messages_source
|
|
||||||
.target_to_source_headers_relay
|
|
||||||
.as_ref()
|
|
||||||
.expect("BatchConfirmationTransaction is only created when target_to_source_headers_relay is Some; qed")
|
|
||||||
.prove_header(required_target_header_on_source.0)
|
|
||||||
.await?;
|
|
||||||
Ok(Self { messages_source, proved_header, prove_calls })
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
impl<P: SubstrateMessageLane>
|
impl<P: SubstrateMessageLane>
|
||||||
BatchTransaction<
|
BatchTransaction<
|
||||||
|
|||||||
@@ -274,7 +274,13 @@ where
|
|||||||
) -> Result<Option<Self::BatchTransaction>, SubstrateError> {
|
) -> Result<Option<Self::BatchTransaction>, SubstrateError> {
|
||||||
if let Some(ref source_to_target_headers_relay) = self.source_to_target_headers_relay {
|
if let Some(ref source_to_target_headers_relay) = self.source_to_target_headers_relay {
|
||||||
if P::TargetBatchCallBuilder::BATCH_CALL_SUPPORTED {
|
if P::TargetBatchCallBuilder::BATCH_CALL_SUPPORTED {
|
||||||
return BatchDeliveryTransaction::<P>::new(self.clone(), id).await.map(Some)
|
let (proved_header, prove_calls) =
|
||||||
|
source_to_target_headers_relay.prove_header(id.0).await?;
|
||||||
|
return Ok(Some(BatchDeliveryTransaction {
|
||||||
|
messages_target: self.clone(),
|
||||||
|
proved_header,
|
||||||
|
prove_calls,
|
||||||
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
source_to_target_headers_relay.require_more_headers(id.0).await;
|
source_to_target_headers_relay.require_more_headers(id.0).await;
|
||||||
@@ -291,21 +297,6 @@ pub struct BatchDeliveryTransaction<P: SubstrateMessageLane> {
|
|||||||
prove_calls: Vec<CallOf<P::TargetChain>>,
|
prove_calls: Vec<CallOf<P::TargetChain>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<P: SubstrateMessageLane> BatchDeliveryTransaction<P> {
|
|
||||||
async fn new(
|
|
||||||
messages_target: SubstrateMessagesTarget<P>,
|
|
||||||
required_source_header_on_target: SourceHeaderIdOf<MessageLaneAdapter<P>>,
|
|
||||||
) -> Result<Self, SubstrateError> {
|
|
||||||
let (proved_header, prove_calls) = messages_target
|
|
||||||
.source_to_target_headers_relay
|
|
||||||
.as_ref()
|
|
||||||
.expect("BatchDeliveryTransaction is only created when source_to_target_headers_relay is Some; qed")
|
|
||||||
.prove_header(required_source_header_on_target.0)
|
|
||||||
.await?;
|
|
||||||
Ok(Self { messages_target, proved_header, prove_calls })
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
impl<P: SubstrateMessageLane>
|
impl<P: SubstrateMessageLane>
|
||||||
BatchTransaction<
|
BatchTransaction<
|
||||||
|
|||||||
Reference in New Issue
Block a user