You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
d3ad11d chore: add release notes for sethdseed RPC (Konstantin Akimov)
ad25d54 Merge bitcoin#21329: descriptor wallet: Cache last hardened xpub and use in normalized descriptors (Samuel Dobson)
24b1f6b Merge bitcoin#21238: A few descriptor improvements to prepare for Taproot support (W. J. van der Laan)
14ac2b7 Merge bitcoin#21127: wallet: load flags before everything else (Wladimir J. van der Laan)
19b2b27 Merge bitcoin#20403: wallet: upgradewallet fixes, improvements, test coverage (MarcoFalke)
708586c Merge bitcoin#18836: wallet: upgradewallet fixes and additional tests (Andrew Chow)
752e4ca Merge bitcoin#19490: wallet: Fix typo in comments; Simplify assert (Samuel Dobson)
63895fd Merge bitcoin#19046: Replace CWallet::Set* functions that use memonly with Add/Load variants (Andrew Chow)
2c0d5b7 refactor: rename hdChain to m_hd_chain (Konstantin Akimov)
266aefc feat: sethdseed rpc added. Based on bitcoin#12560 and the newest related changes (Konstantin Akimov)
Pull request description:
## Issue being fixed or feature implemented
Next batch of backports related to descriptor wallets.
See related issue to track a progress: dashpay/dash-issues#59
Changes in this PR also used in "hardware signing" feature (coming later)
## What was done?
1. It implements a new rpc `sethdseed` that is based on bitcoin#12560 and newer related changes.
2. refactoring to rename `hdChain` to `m_hd_chain` (see bitcoin#17681 which is DNM).
3. Bitcoin backports (some of them uses sethdseed, and requires m_hd_chain to reduce conflicts):
- bitcoin#19046
- bitcoin#19490
- bitcoin#18836
- bitcoin#20403
- bitcoin#21127
- bitcoin#21238
- bitcoin#21329
## How Has This Been Tested?
Run unit/functional tests.
The backports bitcoin#18836 and bitcoin#20403 are heavily modified to adopt `wallet_upgradewallet.py` to our codebase.
## Breaking Changes
N/A
Though, `sethdseed` implementation is not a final version as it is now, can be removed (superseeded by `upgradetohd` or got mnemonic-feature and super-seed `upgradetohd`).
## Checklist:
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [x] I have added or updated relevant unit/integration/functional/e2e tests
- [ ] I have made corresponding changes to the documentation
- [x] I have assigned this pull request to a milestone
ACKs for top commit:
PastaPastaPasta:
utACK d3ad11d
Tree-SHA512: 02182182ec7a5f89eb7d3bc34072d894a86cc89c5eea124e702cc5ed527f76863469b1fd9313b3ea643a8774a358031be927d7b78ec7cd39df0a9ca77559d66d
- A new `sethdseed` RPC allows users to initialize their blank HD wallets with an HD seed. **A new backup must be made when a new HD seed is set.** This command cannot replace an existing HD seed if one is already set. `sethdseed` uses WIF private key as a seed. If you have a mnemonic, use the `upgradetohd` RPC.
/** Convert the descriptor to a normalized string. Normalized descriptors have the xpub at the last hardened step. This fails if the provided provider does not have the private keys to derive that xpub. */
CheckUnparsable("sh(XJvEUEcFWCHCyruc8ZX5exPZaGe4UR7gC5FHrhwPnQGDs1uWCsT2)", "sh(03a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd)", "A function is needed within P2SH"); // P2SH needs a script, not a key
338
-
CheckUnparsable("sh(sh(pk(XJvEUEcFWCHCyruc8ZX5exPZaGe4UR7gC5FHrhwPnQGDs1uWCsT2)))", "sh(sh(pk(03a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd)))", "Cannot have sh in non-top level"); // Cannot embed P2SH inside P2SH
339
-
CheckUnparsable("sh(combo(XJvEUEcFWCHCyruc8ZX5exPZaGe4UR7gC5FHrhwPnQGDs1uWCsT2))", "sh(combo(03a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd))", "Cannot have combo in non-top level"); // Old must be top level
340
-
334
+
CheckUnparsable("sh(sh(pk(XJvEUEcFWCHCyruc8ZX5exPZaGe4UR7gC5FHrhwPnQGDs1uWCsT2)))", "sh(sh(pk(03a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd)))", "Can only have sh() at top level"); // Cannot embed P2SH inside P2SH
335
+
CheckUnparsable("sh(combo(XJvEUEcFWCHCyruc8ZX5exPZaGe4UR7gC5FHrhwPnQGDs1uWCsT2))", "sh(combo(03a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd))", "Can only have combo() at top level"); // Old must be top level
0 commit comments