You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- use default empty `SignersContainer::new()` on both wallet
`create_with_params` and `load_with_params`.
- remove `add_signer`, `set_keymap` and `get_signers` methods.
- updates `FullyNodedExport::export_wallet` to export public descriptors
only, and updates it's tests accordingly.
- remove test assertions for signers/keymaps creation/load.
Copy file name to clipboardExpand all lines: wallet/src/wallet/export.rs
+25-16Lines changed: 25 additions & 16 deletions
Original file line number
Diff line number
Diff line change
@@ -60,7 +60,7 @@ use core::fmt;
60
60
use core::str::FromStr;
61
61
use serde::{Deserialize,Serialize};
62
62
63
-
use miniscript::descriptor::{ShInner,WshInner};
63
+
use miniscript::descriptor::{KeyMap,ShInner,WshInner};
64
64
use miniscript::{Descriptor,ScriptContext,Terminal};
65
65
66
66
usecrate::types::KeychainKind;
@@ -119,11 +119,8 @@ impl FullyNodedExport {
119
119
) -> Result<Self,&'staticstr>{
120
120
let descriptor = wallet
121
121
.public_descriptor(KeychainKind::External)
122
-
.to_string_with_secret(
123
-
&wallet
124
-
.get_signers(KeychainKind::External)
125
-
.as_key_map(wallet.secp_ctx()),
126
-
);
122
+
.to_string_with_secret(&KeyMap::new());
123
+
127
124
let descriptor = remove_checksum(descriptor);
128
125
Self::is_compatible_with_core(&descriptor)?;
129
126
@@ -147,11 +144,7 @@ impl FullyNodedExport {
147
144
let change_descriptor = {
148
145
let descriptor = wallet
149
146
.public_descriptor(KeychainKind::Internal)
150
-
.to_string_with_secret(
151
-
&wallet
152
-
.get_signers(KeychainKind::Internal)
153
-
.as_key_map(wallet.secp_ctx()),
154
-
);
147
+
.to_string_with_secret(&KeyMap::new());
155
148
Some(remove_checksum(descriptor))
156
149
};
157
150
@@ -239,16 +232,23 @@ mod test {
239
232
wallet
240
233
}
241
234
235
+
// TODO: (@leonardo) what's the best way to update these tests ?
242
236
#[test]
243
237
fntest_export_bip44(){
244
238
let descriptor = "wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/0/*)";
239
+
let public_descriptor = "wpkh([a12b02f4/44'/0'/0']xpub6BzhLAQUDcBUfHRQHZxDF2AbcJqp4Kaeq6bzJpXrjrWuK26ymTFwkEFbxPra2bJ7yeZKbDjfDeFwxe93JMqpo5SsPJH6dZdvV9kMzJkAZ69/0/*)";
240
+
245
241
let change_descriptor = "wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/1/*)";
242
+
let public_change_descriptor = "wpkh([a12b02f4/44'/0'/0']xpub6BzhLAQUDcBUfHRQHZxDF2AbcJqp4Kaeq6bzJpXrjrWuK26ymTFwkEFbxPra2bJ7yeZKbDjfDeFwxe93JMqpo5SsPJH6dZdvV9kMzJkAZ69/1/*)";
246
243
247
244
let wallet = get_test_wallet(descriptor, change_descriptor,Network::Bitcoin);
248
245
let export = FullyNodedExport::export_wallet(&wallet,"Test Label",true).unwrap();
let descriptor = "tr([73c5da0a/86'/0'/0']tprv8fMn4hSKPRC1oaCPqxDb1JWtgkpeiQvZhsr8W2xuy3GEMkzoArcAWTfJxYb6Wj8XNNDWEjfYKK4wGQXh3ZUXhDF2NcnsALpWTeSwarJt7Vc/0/*)";
308
+
let public_descriptor = "tr([73c5da0a/86'/0'/0']tpubDC3pD7UZXnsgh3EBjbtBQiB1FnLask7UHBSunZ1DPK4dCFFZoFRkgxHB8gt42FvLzx1DpxfHWxAsYaY6b643RVcGjDxXxns7wKKYnnfEcbB/0/*)";
309
+
308
310
let change_descriptor = "tr([73c5da0a/86'/0'/0']tprv8fMn4hSKPRC1oaCPqxDb1JWtgkpeiQvZhsr8W2xuy3GEMkzoArcAWTfJxYb6Wj8XNNDWEjfYKK4wGQXh3ZUXhDF2NcnsALpWTeSwarJt7Vc/1/*)";
311
+
let public_change_descriptor = "tr([73c5da0a/86'/0'/0']tpubDC3pD7UZXnsgh3EBjbtBQiB1FnLask7UHBSunZ1DPK4dCFFZoFRkgxHB8gt42FvLzx1DpxfHWxAsYaY6b643RVcGjDxXxns7wKKYnnfEcbB/1/*)";
312
+
309
313
let wallet = get_test_wallet(descriptor, change_descriptor,Network::Testnet);
310
314
let export = FullyNodedExport::export_wallet(&wallet,"Test Label",true).unwrap();
let descriptor = "wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/0/*)";
327
+
let public_descriptor = "wpkh([a12b02f4/44'/0'/0']xpub6BzhLAQUDcBUfHRQHZxDF2AbcJqp4Kaeq6bzJpXrjrWuK26ymTFwkEFbxPra2bJ7yeZKbDjfDeFwxe93JMqpo5SsPJH6dZdvV9kMzJkAZ69/0/*)";
328
+
320
329
let change_descriptor = "wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/1/*)";
321
330
322
331
let wallet = get_test_wallet(descriptor, change_descriptor,Network::Bitcoin);
323
332
let export = FullyNodedExport::export_wallet(&wallet,"Test Label",true).unwrap();
/// let descriptor = "wpkh(tprv8ZgxMBicQKsPe73PBRSmNbTfbcsZnwWhz5eVmhHpi31HW29Z7mc9B4cWGRQzopNUzZUT391DeDJxL2PefNunWyLgqCKRMDkU1s2s8bAfoSk/84'/1'/0'/0/*)";
1256
-
/// let change_descriptor = "wpkh(tprv8ZgxMBicQKsPe73PBRSmNbTfbcsZnwWhz5eVmhHpi31HW29Z7mc9B4cWGRQzopNUzZUT391DeDJxL2PefNunWyLgqCKRMDkU1s2s8bAfoSk/84'/1'/0'/1/*)";
1257
-
/// let wallet = Wallet::create(descriptor, change_descriptor)
1258
-
/// .network(Network::Testnet)
1259
-
/// .create_wallet_no_persist()?;
1260
-
/// for secret_key in wallet.get_signers(KeychainKind::External).signers().iter().filter_map(|s| s.descriptor_secret_key()) {
0 commit comments