gui: match on message for PsbtState
This commit is contained in:
parent
9e5872c56f
commit
beabf08cbf
@ -131,60 +131,47 @@ impl PsbtState {
|
||||
cache: &Cache,
|
||||
message: Message,
|
||||
) -> Command<Message> {
|
||||
match &message {
|
||||
Message::View(view::Message::Spend(msg)) => match msg {
|
||||
view::SpendTxMessage::Cancel => {
|
||||
if let Some(PsbtAction::Sign(SignAction { display_modal, .. })) =
|
||||
&mut self.action
|
||||
{
|
||||
*display_modal = false;
|
||||
return Command::none();
|
||||
}
|
||||
match message {
|
||||
Message::View(view::Message::Spend(view::SpendTxMessage::Cancel)) => {
|
||||
if let Some(PsbtAction::Sign(SignAction { display_modal, .. })) = &mut self.action {
|
||||
*display_modal = false;
|
||||
return Command::none();
|
||||
}
|
||||
|
||||
self.action = None;
|
||||
self.action = None;
|
||||
}
|
||||
Message::View(view::Message::Spend(view::SpendTxMessage::Delete)) => {
|
||||
self.action = Some(PsbtAction::Delete(DeleteAction::default()));
|
||||
}
|
||||
Message::View(view::Message::Spend(view::SpendTxMessage::Sign)) => {
|
||||
if let Some(PsbtAction::Sign(SignAction { display_modal, .. })) = &mut self.action {
|
||||
*display_modal = true;
|
||||
return Command::none();
|
||||
}
|
||||
view::SpendTxMessage::Delete => {
|
||||
self.action = Some(PsbtAction::Delete(DeleteAction::default()));
|
||||
}
|
||||
view::SpendTxMessage::Sign => {
|
||||
if let Some(PsbtAction::Sign(SignAction { display_modal, .. })) =
|
||||
&mut self.action
|
||||
{
|
||||
*display_modal = true;
|
||||
return Command::none();
|
||||
}
|
||||
|
||||
let action = SignAction::new(
|
||||
self.tx.signers(),
|
||||
self.wallet.clone(),
|
||||
cache.datadir_path.clone(),
|
||||
cache.network,
|
||||
self.saved,
|
||||
);
|
||||
let cmd = action.load(daemon);
|
||||
self.action = Some(PsbtAction::Sign(action));
|
||||
return cmd;
|
||||
}
|
||||
view::SpendTxMessage::EditPsbt => {
|
||||
let action = UpdateAction::new(self.wallet.clone(), self.tx.psbt.to_string());
|
||||
let cmd = action.load(daemon);
|
||||
self.action = Some(PsbtAction::Update(action));
|
||||
return cmd;
|
||||
}
|
||||
view::SpendTxMessage::Broadcast => {
|
||||
self.action = Some(PsbtAction::Broadcast(BroadcastAction::default()));
|
||||
}
|
||||
view::SpendTxMessage::Save => {
|
||||
self.action = Some(PsbtAction::Save(SaveAction::default()));
|
||||
}
|
||||
_ => {
|
||||
if let Some(action) = self.action.as_mut() {
|
||||
return action
|
||||
.as_mut()
|
||||
.update(daemon.clone(), message, &mut self.tx);
|
||||
}
|
||||
}
|
||||
},
|
||||
let action = SignAction::new(
|
||||
self.tx.signers(),
|
||||
self.wallet.clone(),
|
||||
cache.datadir_path.clone(),
|
||||
cache.network,
|
||||
self.saved,
|
||||
);
|
||||
let cmd = action.load(daemon);
|
||||
self.action = Some(PsbtAction::Sign(action));
|
||||
return cmd;
|
||||
}
|
||||
Message::View(view::Message::Spend(view::SpendTxMessage::EditPsbt)) => {
|
||||
let action = UpdateAction::new(self.wallet.clone(), self.tx.psbt.to_string());
|
||||
let cmd = action.load(daemon);
|
||||
self.action = Some(PsbtAction::Update(action));
|
||||
return cmd;
|
||||
}
|
||||
Message::View(view::Message::Spend(view::SpendTxMessage::Broadcast)) => {
|
||||
self.action = Some(PsbtAction::Broadcast(BroadcastAction::default()));
|
||||
}
|
||||
Message::View(view::Message::Spend(view::SpendTxMessage::Save)) => {
|
||||
self.action = Some(PsbtAction::Save(SaveAction::default()));
|
||||
}
|
||||
Message::View(view::Message::Label(_, _)) | Message::LabelsUpdated(_) => {
|
||||
match self.labels_edited.update(
|
||||
daemon,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user