create_tx accepts recipient addresses from the wrong network
Maintainer antworten meist innerhalb von 2 Tagen
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 82/100
Rechercherichtung
Beginne mit CreateTxCommand und parse_recipient, den beiden im Issue genannten Stellen. Verfolge, wie parse_recipient den Empfänger in ein Script umwandelt und wie execute auf das Wallet-Netzwerk zugreift; prüfe die vorhandenen Definitionen von BDKCliError auf InvalidNetwork. Fertig ist es, wenn create_tx eine Adresse aus einem anderen Netzwerk mit genau diesem Fehler zurückweist, bevor ein PSBT erzeugt wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Describe the bug
create_tx accepts a recipient address belonging to a different network than the wallet. The transaction is built successfully, but the resulting PSBT is unspendable on the target network and only fails later at broadcast time with a node-side rejection. The cause is in parse_recipient: it calls Address::from_str (which yields Address<NetworkUnchecked>) and immediately converts to ScriptBuf via .script_pubkey(), discarding the network information before the wallet's network is known. bdk-cli therefore never compares the two.
To Reproduce
- Create a regtest wallet:
bdk-cli --network regtest wallet -w regtest_user1 --descriptor "..." --change_descriptor "..." create - Attempt to send to a testnet address:
bdk-cli --network regtest wallet -w regtest_user1 create_tx --to tb1qdgxnu...:1000 - Observe: the command succeeds and returns a PSBT.
- Broadcasting that PSBT against the regtest node fails with an address/script error, because
tb1...does not belong to the regtest network.
Expected behavior
create_tx should reject the recipient at construction time with a specific error naming the mismatch, rather than producing a PSBT that can never be spent. BDKCliError::InvalidNetwork { requested, found } should be created for this purpose. The recipient should be carried through as Address<NetworkUnchecked> and validated with require_network(ctx.state.wallet.network()) inside execute, immediately before conversion to ScriptBuf.
Build environment
- BDK-CLI tag/commit:
main - OS+version: macOS 12.7.6 (Monterey)
- Rust/Cargo version:
rustc --versionoutput - Rust/Cargo target:
x86_64-apple-darwin
Additional context
The fix is confined to CreateTxCommand and parse_recipient; no changes to the wallet API are needed.
- Vorherrschende Sprache
- Rust
- Sterne
- 142
- Forks
- 103
- Ø Merge
- 2 T. 9 Std.
- Gemergte PRs (30 T.)
- 5
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus bitcoindevkit/bdk-cli
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
bitcoindevkit/bdk-cli#358 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
bitcoindevkit/bdk-cli#357 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Remove "wallet" field from `WalletConfigInner`Evtl. vergeben @Jennycj hat das vor 7 Tagen übernommen. Offenenhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
bitcoindevkit/bdk-cli#332 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 2 Tagen
-
enhancement
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 55/100
bitcoindevkit/bdk-cli#359 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Add wallet commands that returns a list of unused addressesEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offenenhancement
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 38/100
bitcoindevkit/bdk-cli#349 ·
Maintainer antworten meist innerhalb von 2 Tagen
Alle Issues in bitcoindevkit/bdk-cli
Ähnliche Issues
-
area:io needs-info needs-triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 63/100
bherbruck/solvecraft#3216 · 1 Kommentar ·
-
bug triage/needs-triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
praxis-proxy/grid#412 ·
Maintainer antworten meist innerhalb von 1 Tag
-
priority: low
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 63/100
storytold/photocraft#7824 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
area:ui chore could help wanted
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
Maintainer antworten meist innerhalb von 1 Tag
-
`[daemons]` fails to resolve standalone file tasks by their display name (`runs unknown task`)Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
Maintainer antworten meist innerhalb von 1 Tag