-
Notifications
You must be signed in to change notification settings - Fork 966
[epic] PSBT and related BIP 32 refactoring tracking issue #473
Description
Over the last week I have created a number of PRs focused on brining rust-bitcoin PSBT implementation closer to the specifications (BIP 174, with dependencies on BIP 32 and CLIP 132). Here I summarize all related PRs and their merge status (with flags), including older PRs by this community.
PSBT general
- Psbt hash preimages (again) #478 (Added hash Preimages to psbt #465 previously) add hash preimage keys to PSBT inputs
- PSBT proprietary key system matching BIP 174 #471 adding other generic key types and support for proprietary keys from BIP 174
- New PSBT global keys #499 adding support for new global types (Xpub, version)
- PSBT types are now constants #530: replacing all PSBT key types with constants
[ ] WIP: converting PSBT key types to be enum, not consts(was decided that it is not feasible)- PSBT serde implementation #497: serde serialization of PSBT data (for inspection etc)
- Display/FromStr serialization for
SigHashType(part for the PR above^^^)
## PSBT roles/responsibities
- PSBT roles/responsibilities API discussion #455
- [x] #472 PSBT roles
- [x] #456 alternative approach for PSBT roles (closed)
- [x] #457 yet another alternative approach for PSBT roles
BIP 32 dependencies:
- [ ] #469 implementation of ypub/priv, zpub/zprv and other formats according to BIP 32 and SLIP 132 (SLIPs should not be a part of rust-bitcoin)
- [ ] #279 alternative older proposal for y/zpubs (ibid)
- BIP 32 binary encoding functions are extracted from base58 #470 binary encoding of extended pub and priv keys according to BIP 32
- Derivation path improvements, closes #473 #498 improvements to derivation path function
- PSBT: making input and output field names match spec type names #513 Nit: making input and output field names match spec type names
- Introducing
bip32::KeySource: wrapper for(Fingerprint, DerivationPath)#480KeySourcetype for(Fingerprint, DerivationPath)tupes
BIP PRs
These are not parts of rust-bitcoin, however still related:
- BIP 174: require creator to initialize empty output fields bitcoin/bips#988 require creator to initialize empty output fields
- BIP 174: rename responsibilities->roles to match Bitcoin Core bitcoin/bips#989 rename responsibilities->roles to match Bitcoin Core
- BIp 174: fixing typo in rationale reference with closed tag bitcoin/bips#990 fixing typo in rationale reference