cryptoadvance / cryptoadvance/specter-desktop
Export JSON/PDF for single/multi signature omit change address branch
- Dominant language
- Python
- Stars
- 847
- Forks
- 259
- Avg merge
- 6d 18h
- Merged PRs (30d)
- 2
Description
**Describe the bug**
When creating a single/multi signature with ambiguous XPUB (i.e. without branch/output address info), Specter export the wallet with branch/output address for receive only (branch `/0/*`).
**To Reproduce**
Example steps to reproduce the behavior:
"Add wallet > Single Signature > Add new device > SeedSigner > Scan QR Code `[e0c595c5/84'/0'/0']zpub6qV6TyVkDQsoP6XnSgLJxoH7YunCwUKzPZq3FhccdoQT7uS9w5hDo45tLpRQxr6P3FJnwWaCnYJcZSQiXif5WnPQ5rN2yMRHAE5ZyTzQvre` and give device a name > Continue > Create single key wallet > give wallet a name and Create wallet > Save Backup PDF"
The first page of the PDF has the QR Code with descriptor as `/0/*` without change address info:
```
{"label": "a name", "blockheight": 481824, "descriptor": "wpkh([669dce62/84h/0h/0h]xpub6Cygb51hbAxuxKQ4hwVV5z6YvhauXbhDexEuA7EoAq9DkejbuF2najEM3YdY2BvC39XYa9nHE3R9QWr2yYgTU58LTNQ7ipFQoj4TszqYVeS/0/*)#w0rtkcqe", "devices": [{"type": "other", "label": "gg"}]}
```
The second page of the PDF has the text with descriptor as `/0/*` without change address info:
```
{"label": "a name", "blockheight": 481824, "descriptor": "wp
kh([669dce62/84h/0h/0h]xpub6Cygb51hbAxuxKQ4hwVV5z6YvhauXbhDe
xEuA7EoAq9DkejbuF2najEM3YdY2BvC39XYa9nHE3R9QWr2yYgTU58LTNQ7i
pFQoj4TszqYVeS/0/*)#w0rtkcqe", "devices": [{"type": "other",
"label": "gg"}]}
```
The same thing happen if you go to "Settings > Export > Go to export details, descriptor as `/0/*` in the QR Code and the JSON Data:
```
{"label": "a name", "blockheight": 481824, "descriptor": "wpkh([669dce62/84h/0h/0h]xpub6Cygb51hbAxuxKQ4hwVV5z6YvhauXbhDexEuA7EoAq9DkejbuF2najEM3YdY2BvC39XYa9nHE3R9QWr2yYgTU58LTNQ7ipFQoj4TszqYVeS/0/*)#w0rtkcqe", "devices": [{"type": "other", "label": "gg"}]}
```
**Expected behavior**
It would be fine to return ONLY the `[fingerprint/deriv/path]xpub...` which would be an XPUB with origin-info rather than a complete descriptor... or since Specter Desktop is returning a descriptor that made some assumptions (script wrapper and checksum) to also assume the change path `/<0;1>/*` rather than assuming receive path only `/0/*`.
**Screenshots**

**Desktop (please complete the following information):**
- Where is your node running: public
- Where is your specter running: Binaries downloaded from Specter site
- If you're running a binary, which OS: Linux
- Browser N/A
- Specter v2.0.5 - May 30, 2024
**Additional context**
SeedSigner and Krux exports the ZPUB/XPUB without branch/output address info. Specter-DIY "Master public keys Single key/Multisig" also give values without branch/output address info. But Specter-DIY "Wallets > Default > Settings > Export wallet descriptor" gives values with `/0/*` with branch/output for receive address only.
Contributor guide
Assessment
This issue has not been assessed yet.