keep key hot signer origin

This commit is contained in:
edouardparis 2024-10-01 15:04:51 +02:00
parent e6f85227ca
commit 0b1932c9fa
2 changed files with 14 additions and 1 deletions

View File

@ -44,6 +44,7 @@ pub fn new_multixkey_from_xpub(
#[derive(Clone)]
pub struct Key {
pub device_kind: Option<DeviceKind>,
pub is_hot_signer: bool,
pub device_version: Option<Version>,
pub name: String,
pub fingerprint: Fingerprint,
@ -102,9 +103,9 @@ impl EditXpubModal {
key_index: usize,
network: Network,
hot_signer: Arc<Mutex<Signer>>,
hot_signer_fingerprint: Fingerprint,
keys: Vec<Key>,
) -> Self {
let hot_signer_fingerprint = hot_signer.lock().unwrap().fingerprint();
Self {
device_must_support_tapminiscript,
other_path_keys,

View File

@ -198,17 +198,20 @@ pub struct DefineDescriptor {
modal: Option<Box<dyn DescriptorEditModal>>,
signer: Arc<Mutex<Signer>>,
signer_fingerprint: Fingerprint,
error: Option<String>,
}
impl DefineDescriptor {
pub fn new(network: Network, signer: Arc<Mutex<Signer>>) -> Self {
let signer_fingerprint = signer.lock().unwrap().fingerprint();
Self {
network,
use_taproot: false,
setup: Setup::new(),
modal: None,
signer_fingerprint,
signer,
error: None,
}
@ -259,6 +262,7 @@ impl Step for DefineDescriptor {
}
message::DefineKey::Edited(name, imported_key, kind, version) => {
let fingerprint = imported_key.master_fingerprint();
let is_hot_signer = self.signer_fingerprint == fingerprint;
hws.set_alias(fingerprint, name.clone());
if let Some(key) = self
.setup_mut()
@ -269,6 +273,7 @@ impl Step for DefineDescriptor {
key.name = name;
} else {
self.setup_mut().keys.push(Key {
is_hot_signer,
fingerprint,
name,
key: imported_key,
@ -300,6 +305,7 @@ impl Step for DefineDescriptor {
i,
network,
self.signer.clone(),
self.signer_fingerprint,
self.setup_mut()
.keys
.iter()
@ -354,6 +360,7 @@ impl Step for DefineDescriptor {
}
message::DefineKey::Edited(name, imported_key, kind, version) => {
let fingerprint = imported_key.master_fingerprint();
let is_hot_signer = self.signer_fingerprint == fingerprint;
hws.set_alias(fingerprint, name.clone());
if let Some(key) = self
.setup_mut()
@ -362,9 +369,13 @@ impl Step for DefineDescriptor {
.find(|k| k.fingerprint == fingerprint)
{
key.name = name;
key.is_hot_signer = is_hot_signer;
key.device_kind = kind;
key.device_version = version;
} else {
self.setup_mut().keys.push(Key {
fingerprint,
is_hot_signer,
name,
key: imported_key,
device_kind: kind,
@ -396,6 +407,7 @@ impl Step for DefineDescriptor {
j,
self.network,
self.signer.clone(),
self.signer_fingerprint,
self.setup.keys.clone(),
);
let cmd = modal.load();