bitcoindevkit / bitcoindevkit/bdk-cli

Improve error message / accept descriptor key expressions in descriptor command

Offen
#303 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
enhancement
Vorherrschende Sprache
Rust
Sterne
141
Forks
99
Ø Merge
6 T. 14 Min.
Gemergte PRs (30 T.)
1

Beschreibung

**Describe the enhancement**

`bdk-cli key derive` returns a descriptor key expression (e.g. `[fingerprint/path]xpub.../*`), while `bdk-cli descriptor` expects a raw `xpub`/`xprv`. Passing the output of `key derive` directly to `descriptor` results in:

```text
BIP32 error: base58 encoding error
```

The error doesn't explain that the input is a descriptor key expression rather than a raw extended key.

It would be helpful if `descriptor` either:-

* detected descriptor key expressions and emitted a more descriptive error or
* accepted descriptor key expressions directly.
---
**Use case**

A natural workflow is:

```text
key restore

key derive

descriptor
```

Since `key derive` produces a key intended for descriptors, it's reasonable to expect its output to be consumable by `descriptor`.

Instead, users encounter a low-level Base58 parsing error without any indication that the command expects a different representation.

---

**Additional context**

Reproducer:

```bash
bdk-cli key derive --xprv "tprv..." --derivation_path "m/84h/1h/0h"
```

Output:

```text
[bd2eb472/84'/1'/0']tprv.../*
```

Then:

```bash
bdk-cli descriptor --type wpkh "[bd2eb472/84'/1'/0']tprv.../*"
```

produces:

```text
BIP32 error: base58 encoding error
```

The same descriptor key expression works correctly when wrapped in a descriptor and passed to:

```bash
bdk-cli wallet config --ext-descriptor "wpkh([bd2eb472/84'/1'/0']tprv.../*)"
```

which suggests the underlying parsing is already supported in that context.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Führe zuerst den dokumentierten Reproducer für `key derive` und `descriptor` aus und verfolge anschließend die Einstiegspunkte `bdk-cli key derive`, `descriptor` und `wallet config`, um zu vergleichen, wie ihre Eingaben geparst werden. Erledigt ist die Aufgabe, wenn Deskriptor-Schlüsselausdrücke entweder direkt von `descriptor` akzeptiert oder mit einer ausdrücklichen Erklärung der erwarteten Darstellung abgelehnt werden und Befehlstests das gewählte Verhalten abdecken.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
rust
Bereich
cli
Issue-Typ
Feature
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
55/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.