mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-24 21:51:08 +00:00
Make target signer optional when sending message. (#1018)
* make target signer optional in send message. * remove non-used argument * fmt * better doc * trigger build * fix clippy
This commit is contained in:
@@ -41,9 +41,12 @@ pub struct SendMessage {
|
|||||||
source: SourceConnectionParams,
|
source: SourceConnectionParams,
|
||||||
#[structopt(flatten)]
|
#[structopt(flatten)]
|
||||||
source_sign: SourceSigningParams,
|
source_sign: SourceSigningParams,
|
||||||
// TODO [#885] Move TargetSign to origins
|
/// The SURI of secret key to use when transactions are submitted to the Target node.
|
||||||
#[structopt(flatten)]
|
#[structopt(long, required_if("origin", "Target"))]
|
||||||
target_sign: TargetSigningParams,
|
target_signer: Option<String>,
|
||||||
|
/// The password for the SURI of secret key to use when transactions are submitted to the Target node.
|
||||||
|
#[structopt(long)]
|
||||||
|
target_signer_password: Option<String>,
|
||||||
/// Hex-encoded lane id. Defaults to `00000000`.
|
/// Hex-encoded lane id. Defaults to `00000000`.
|
||||||
#[structopt(long, default_value = "00000000")]
|
#[structopt(long, default_value = "00000000")]
|
||||||
lane: HexLaneId,
|
lane: HexLaneId,
|
||||||
@@ -69,7 +72,8 @@ impl SendMessage {
|
|||||||
crate::select_full_bridge!(self.bridge, {
|
crate::select_full_bridge!(self.bridge, {
|
||||||
let SendMessage {
|
let SendMessage {
|
||||||
source_sign,
|
source_sign,
|
||||||
target_sign,
|
target_signer,
|
||||||
|
target_signer_password,
|
||||||
ref mut message,
|
ref mut message,
|
||||||
dispatch_weight,
|
dispatch_weight,
|
||||||
origin,
|
origin,
|
||||||
@@ -78,7 +82,6 @@ impl SendMessage {
|
|||||||
} = self;
|
} = self;
|
||||||
|
|
||||||
let source_sign = source_sign.to_keypair::<Source>()?;
|
let source_sign = source_sign.to_keypair::<Source>()?;
|
||||||
let target_sign = target_sign.to_keypair::<Target>()?;
|
|
||||||
|
|
||||||
encode_call::preprocess_call::<Source, Target>(message, bridge.bridge_instance_index());
|
encode_call::preprocess_call::<Source, Target>(message, bridge.bridge_instance_index());
|
||||||
let target_call = Target::encode_call(message)?;
|
let target_call = Target::encode_call(message)?;
|
||||||
@@ -98,6 +101,13 @@ impl SendMessage {
|
|||||||
match origin {
|
match origin {
|
||||||
Origins::Source => CallOrigin::SourceAccount(source_account_id),
|
Origins::Source => CallOrigin::SourceAccount(source_account_id),
|
||||||
Origins::Target => {
|
Origins::Target => {
|
||||||
|
let target_sign = TargetSigningParams {
|
||||||
|
target_signer: target_signer.clone().ok_or_else(|| {
|
||||||
|
anyhow::format_err!("The argument target_signer is not available")
|
||||||
|
})?,
|
||||||
|
target_signer_password: target_signer_password.clone(),
|
||||||
|
};
|
||||||
|
let target_sign = target_sign.to_keypair::<Target>()?;
|
||||||
let digest = account_ownership_digest(
|
let digest = account_ownership_digest(
|
||||||
&target_call,
|
&target_call,
|
||||||
source_account_id.clone(),
|
source_account_id.clone(),
|
||||||
@@ -255,8 +265,6 @@ mod tests {
|
|||||||
"1234",
|
"1234",
|
||||||
"--source-signer",
|
"--source-signer",
|
||||||
"//Alice",
|
"//Alice",
|
||||||
"--target-signer",
|
|
||||||
"//Bob",
|
|
||||||
"remark",
|
"remark",
|
||||||
"--remark-payload",
|
"--remark-payload",
|
||||||
"1234",
|
"1234",
|
||||||
@@ -321,4 +329,24 @@ mod tests {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn target_signer_must_exist_if_origin_is_target() {
|
||||||
|
// given
|
||||||
|
let send_message = SendMessage::from_iter_safe(vec![
|
||||||
|
"send-message",
|
||||||
|
"MillauToRialto",
|
||||||
|
"--source-port",
|
||||||
|
"1234",
|
||||||
|
"--source-signer",
|
||||||
|
"//Alice",
|
||||||
|
"--origin",
|
||||||
|
"Target",
|
||||||
|
"remark",
|
||||||
|
"--remark-payload",
|
||||||
|
"1234",
|
||||||
|
]);
|
||||||
|
|
||||||
|
assert!(send_message.is_err());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user