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-19Lines changed: 25 additions & 19 deletions
Original file line number
Diff line number
Diff line change
@@ -59,6 +59,7 @@ use alloc::string::String;
59
59
use core::fmt;
60
60
use core::str::FromStr;
61
61
use serde::{Deserialize,Serialize};
62
+
use std::string::ToString;
62
63
63
64
use miniscript::descriptor::{ShInner,WshInner};
64
65
use miniscript::{Descriptor,ScriptContext,Terminal};
@@ -117,13 +118,8 @@ impl FullyNodedExport {
117
118
label:&str,
118
119
include_blockheight:bool,
119
120
) -> Result<Self,&'staticstr>{
120
-
let descriptor = wallet
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
-
);
121
+
let descriptor = wallet.public_descriptor(KeychainKind::External).to_string();
122
+
127
123
let descriptor = remove_checksum(descriptor);
128
124
Self::is_compatible_with_core(&descriptor)?;
129
125
@@ -145,13 +141,7 @@ impl FullyNodedExport {
145
141
};
146
142
147
143
let change_descriptor = {
148
-
let descriptor = wallet
149
-
.public_descriptor(KeychainKind::Internal)
150
-
.to_string_with_secret(
151
-
&wallet
152
-
.get_signers(KeychainKind::Internal)
153
-
.as_key_map(wallet.secp_ctx()),
154
-
);
144
+
let descriptor = wallet.public_descriptor(KeychainKind::Internal).to_string();
155
145
Some(remove_checksum(descriptor))
156
146
};
157
147
@@ -239,16 +229,23 @@ mod test {
239
229
wallet
240
230
}
241
231
232
+
// TODO: (@leonardo) what's the best way to update these tests ?
242
233
#[test]
243
234
fntest_export_bip44(){
244
235
let descriptor = "wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/0/*)";
236
+
let public_descriptor = "wpkh([a12b02f4/44'/0'/0']xpub6BzhLAQUDcBUfHRQHZxDF2AbcJqp4Kaeq6bzJpXrjrWuK26ymTFwkEFbxPra2bJ7yeZKbDjfDeFwxe93JMqpo5SsPJH6dZdvV9kMzJkAZ69/0/*)";
237
+
245
238
let change_descriptor = "wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/1/*)";
239
+
let public_change_descriptor = "wpkh([a12b02f4/44'/0'/0']xpub6BzhLAQUDcBUfHRQHZxDF2AbcJqp4Kaeq6bzJpXrjrWuK26ymTFwkEFbxPra2bJ7yeZKbDjfDeFwxe93JMqpo5SsPJH6dZdvV9kMzJkAZ69/1/*)";
246
240
247
241
let wallet = get_test_wallet(descriptor, change_descriptor,Network::Bitcoin);
248
242
let export = FullyNodedExport::export_wallet(&wallet,"Test Label",true).unwrap();
let descriptor = "tr([73c5da0a/86'/0'/0']tprv8fMn4hSKPRC1oaCPqxDb1JWtgkpeiQvZhsr8W2xuy3GEMkzoArcAWTfJxYb6Wj8XNNDWEjfYKK4wGQXh3ZUXhDF2NcnsALpWTeSwarJt7Vc/0/*)";
305
+
let public_descriptor = "tr([73c5da0a/86'/0'/0']tpubDC3pD7UZXnsgh3EBjbtBQiB1FnLask7UHBSunZ1DPK4dCFFZoFRkgxHB8gt42FvLzx1DpxfHWxAsYaY6b643RVcGjDxXxns7wKKYnnfEcbB/0/*)";
306
+
308
307
let change_descriptor = "tr([73c5da0a/86'/0'/0']tprv8fMn4hSKPRC1oaCPqxDb1JWtgkpeiQvZhsr8W2xuy3GEMkzoArcAWTfJxYb6Wj8XNNDWEjfYKK4wGQXh3ZUXhDF2NcnsALpWTeSwarJt7Vc/1/*)";
308
+
let public_change_descriptor = "tr([73c5da0a/86'/0'/0']tpubDC3pD7UZXnsgh3EBjbtBQiB1FnLask7UHBSunZ1DPK4dCFFZoFRkgxHB8gt42FvLzx1DpxfHWxAsYaY6b643RVcGjDxXxns7wKKYnnfEcbB/1/*)";
309
+
309
310
let wallet = get_test_wallet(descriptor, change_descriptor,Network::Testnet);
310
311
let export = FullyNodedExport::export_wallet(&wallet,"Test Label",true).unwrap();
let descriptor = "wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/0/*)";
324
+
let public_descriptor = "wpkh([a12b02f4/44'/0'/0']xpub6BzhLAQUDcBUfHRQHZxDF2AbcJqp4Kaeq6bzJpXrjrWuK26ymTFwkEFbxPra2bJ7yeZKbDjfDeFwxe93JMqpo5SsPJH6dZdvV9kMzJkAZ69/0/*)";
325
+
320
326
let change_descriptor = "wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/1/*)";
321
327
322
328
let wallet = get_test_wallet(descriptor, change_descriptor,Network::Bitcoin);
323
329
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