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
feat(wallet): derive wallet_name_from_descriptor from public descriptor checksums
- Update `wallet_name_from_descriptor` to compute descriptor checksum explicitly
- Remove reliance on `to_string()` implicitly containing `#checksum`
- Clarify that wallet name is defined by public descriptor checksums
- Add regression test for equivalent xpub/xprv wallet names
let public_descriptor = "wpkh([31a30ffd/84'/1'/0']tpubDCG4yNzDpNYw5ZMuR2usfbPKcnaKjFGwgyussBdhjy2mXmLWnzkwUTZBQPrQxPVcfwh6uFPN4Q7Jk2DPRFb2c4xbrStpqCbKzLkGhvcJvSx/1/*)#vn4aqs37";
// Test with equivalent private descriptor (should produce same name)
3075
+
let private_descriptor = "wpkh(tprv8ZgxMBicQKsPctT28ZYaU77s1UFjHv7o7cafmDntdggZ2dFtNn38RYMzJiDVMBqnqBFDP8rHxsiVRudhyrqi6mgPc4gekgxChgnkTSxHAZ5/84'/1'/0'/1/*)#7z7rgndh";
assert_eq!(public_result.unwrap(), private_result.unwrap());// Same wallet name
3080
+
3081
+
// Test with change descriptor
3082
+
let change_descriptor = "wpkh([76011771/84'/1'/0']tpubDC3fWoucXCvSyfh6YbyHu1mSQdFjCz5Ejx62eUnRkKdr9bsHGgLEjAaCRNNuaeLjCttfz8sXgshqzawtgWvtozE84rH9BvQn2PUyMCiU1fT/1/*)#jgrerlc3";
3083
+
let result_with_change = wallet_name_from_descriptor(
3084
+
public_descriptor,
3085
+
Some(change_descriptor),
3086
+
NetworkKind::Test,
3087
+
&secp,
3088
+
);
3089
+
assert!(result_with_change.is_ok());
3090
+
// Wallet name should be main_checksum + change_checksum
0 commit comments