mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-06-06 03:02:37 +02:00
Merge #9294: Use internal HD chain for change outputs (hd split)
4115af7Fix rebase issue where pwalletMain was used instead of pwallet Ser./Deser. nInternalChainCounter as last element (Jonas Schnelli)9382f04Do not break backward compatibility during wallet encryption (Jonas Schnelli)1df08d1Add assertion for CanSupportFeature(FEATURE_HD_SPLIT) (Jonas Schnelli)cd468d0Define CWallet::DeriveNewChildKey() as private (Jonas Schnelli)ed79e4fOptimize GetOldestKeyPoolTime(), return as soon as we have both oldest keys (Jonas Schnelli)771a304Make sure we set the wallets min version to FEATURE_HD_SPLIT at the very first point (Jonas Schnelli)1b3b5c6Slightly modify fundrawtransaction.py test (change getnewaddress() into getrawchangeaddress()) (Jonas Schnelli)003e197Remove FEATURE_HD_SPLIT bump TODO (Jonas Schnelli)d9638e5Overhaul the internal/external key derive switch (Jonas Schnelli)1090502Fix superfluous cast and code style nits in RPC wallet-hd.py test (Jonas Schnelli)58e1483CKeyPool avoid "catch (...)" in SerializationOp (Jonas Schnelli)e138876Only show keypoolsize_hd_internal if HD split is enabled (Jonas Schnelli)add38d9GetOldestKeyPoolTime: if HD & HD Chain Split is enabled, response max(oldest-internal-key, oldest-external-key) (Jonas Schnelli)dd526c2Don't switch to HD-chain-split during wallet encryption of non HD-chain-split wallets (Jonas Schnelli)79df9dfSwitch to 100% for the HD internal keypool size (Jonas Schnelli)bcafca1Make sure we always generate one keypool key at minimum (Jonas Schnelli)d0a627aFix issue where CDataStream->nVersion was taken a CKeyPool record version (Jonas Schnelli)9af8f00Make sure we hand out keypool keys if HD_SPLIT is not enabled (Jonas Schnelli)469a47bMake sure ReserveKeyFromKeyPool only hands out internal keys if HD_SPLIT is supported (Jonas Schnelli)05a9b49Fix wrong keypool internal size in RPC getwalletinfo help (Jonas Schnelli)01de822Removed redundant IsLocked() check in NewKeyPool() (Jonas Schnelli)d59531dImmediately return setKeyPool's size if HD or HD_SPLIT is disabled or not supported (Jonas Schnelli)02592f4[Wallet] split the keypool in an internal and external part (Jonas Schnelli) Tree-SHA512: 80d355d5e844b48c3163b56c788ab8b5b5285db0ceeb19858a3ef517d5a702afeca21dbae526d7b8fb4101c2a745af1d92bf557c40cf516780f17992bf678c1a
This commit is contained in:
@@ -467,6 +467,7 @@ class RawTransactionsTest(BitcoinTestFramework):
|
||||
|
||||
# drain the keypool
|
||||
self.nodes[1].getnewaddress()
|
||||
self.nodes[1].getrawchangeaddress()
|
||||
inputs = []
|
||||
outputs = {self.nodes[0].getnewaddress():1.1}
|
||||
rawtx = self.nodes[1].createrawtransaction(inputs, outputs)
|
||||
@@ -476,6 +477,7 @@ class RawTransactionsTest(BitcoinTestFramework):
|
||||
|
||||
#refill the keypool
|
||||
self.nodes[1].walletpassphrase("test", 100)
|
||||
self.nodes[1].keypoolrefill(8) #need to refill the keypool to get an internal change address
|
||||
self.nodes[1].walletlock()
|
||||
|
||||
assert_raises_jsonrpc(-13, "walletpassphrase", self.nodes[1].sendtoaddress, self.nodes[0].getnewaddress(), 1.2)
|
||||
@@ -644,7 +646,7 @@ class RawTransactionsTest(BitcoinTestFramework):
|
||||
if out['value'] > 1.0:
|
||||
changeaddress += out['scriptPubKey']['addresses'][0]
|
||||
assert(changeaddress != "")
|
||||
nextaddr = self.nodes[3].getnewaddress()
|
||||
nextaddr = self.nodes[3].getrawchangeaddress()
|
||||
# frt should not have removed the key from the keypool
|
||||
assert(changeaddress == nextaddr)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user