bitcoindevkit / bitcoindevkit/bdk-cli
Improve error message / accept descriptor key expressions in descriptor command
- Ngôn ngữ chính
- Rust
- Star
- 141
- Fork
- 99
- Merge trung bình
- 6 ngày 14 phút
- Pull request đã merge (30 ngày)
- 1
Mô tả
**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.
Hướng dẫn đóng góp
Hướng nghiên cứu
Trước tiên, hãy chạy reproducer đã được ghi lại cho `key derive` và `descriptor`, sau đó lần theo các điểm vào `bdk-cli key derive`, `descriptor` và `wallet config` để so sánh cách các đầu vào của chúng được phân tích. Công việc được coi là hoàn tất khi các biểu thức khóa của descriptor либо được `descriptor` chấp nhận trực tiếp, либо bị từ chối kèm giải thích rõ ràng về biểu diễn được mong đợi, với các bài kiểm thử lệnh bao phủ hành vi đã chọn.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- rust
- Lĩnh vực
- cli
- Loại issue
- Tính năng
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Ít trao đổi
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 55/100