Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

backport: bitcoin#9381, #17219, #18671, #18853, #20230, partial #11403 (descriptor wallets preparation) #5580

Merged
merged 11 commits into from
Dec 6, 2023

Commits on Dec 6, 2023

  1. fix: correct parsing pubkey in merge bitcoin#18204: improve descripto…

    …r cache and cache xpubs
    knst authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    7631118 View commit details
    Browse the repository at this point in the history
  2. partial (missing function GetKeyForDestination) Merge bitcoin#11403: …

    …SegWit wallet support
    knst authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    fa23a64 View commit details
    Browse the repository at this point in the history
  3. follow-up Merge bitcoin#17260: Split some CWallet functions into new …

    …LegacyScriptPubKeyMan
    
    Some changes are missing or incorrectly backported during CWallet refactoring in bitcoin#17260, bitcoin#17261 such as:
     - Missing changes for CWallet::GetOldestKeyPoolTime
     - useless check of spk_man existance in getnewaddress
     - GetHDChain is used assuming it exists only legacy keymanager
     - using internal spk_man API instead wallet's in getwalletinfo
    knst authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    6183bd1 View commit details
    Browse the repository at this point in the history
  4. Merge bitcoin#18671: wallet: Add BlockUntilSyncedToCurrentChain to du…

    …mpwallet
    
    fa60afc wallet: Add BlockUntilSyncedToCurrentChain to dumpwallet (MarcoFalke)
    
    Pull request description:
    
      dumpwallet includes the block hash in the output, so this method depends on the chainstate. According to the developer notes https://github.com/bitcoin/bitcoin/blame/e84a5f000493fe39adb2a5f22b43c3848dcd0a4f/doc/developer-notes.md#L1095 it must include a `BlockUntilSyncedToCurrentChain`.
    
      This is a minor fix and does not need backport, I think.
    
      It fixes test failures such as https://travis-ci.org/github/bitcoin/bitcoin/jobs/675487097#L2657 , which can only happen in master because the test was not backported.
    
    ACKs for top commit:
      promag:
        Code review ACK fa60afc.
      ryanofsky:
        Code review ACK fa60afc
      meshcollider:
        utACK fa60afc
    
    Tree-SHA512: 8df70b06b226b2cdf880dec9264adb72d66fd81b09b404fd1665a79e5f5236d26122eebf15df00fe71ee292b5c91b2dc23a0a42b2aa50a8d690604b23832723f
    meshcollider authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    0065d7f View commit details
    Browse the repository at this point in the history
  5. Merge bitcoin#17219: wallet: allow transaction without change if keyp…

    …ool is empty
    
    92bcd70 [wallet] allow transaction without change if keypool is empty (Sjors Provoost)
    709f868 [wallet] CreateTransaction: simplify change address check (Sjors Provoost)
    5efc25f [wallet] translate "Keypool ran out" message (Sjors Provoost)
    
    Pull request description:
    
      Extracted from bitcoin#16944
    
      First this PR simplifies the check when generating a change address, by dropping `CanGetAddresses` and just letting `reservedest.GetReservedDestination` do this check.
    
      Second, when the keypool is empty, instead of immediately giving up, we create a dummy change address and pass that to coin selection. If we didn't need the change address (e.g. when spending the entire balance), then it's all good. If we did need a change address, we throw the original error.
    
    ACKs for top commit:
      fjahr:
        Code review ACK 92bcd70
      jonasschnelli:
        utACK 92bcd70
      achow101:
        ACK 92bcd70
      meshcollider:
        Code review ACK 92bcd70
    
    Tree-SHA512: 07b8c8251f57061c58a85ebf0359be63583c23bac7a2c4cefdc14820c0cdebcc90a2bb218e5ede0db11d1e204cda149e056dfd18614642070b3d56efe2735006
    meshcollider authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    f6f9b98 View commit details
    Browse the repository at this point in the history
  6. Merge bitcoin#18853: wallet: Fix typo in assert that is compile-time …

    …true
    
    fa47cf9 wallet: Fix typo in assert that is compile-time true (MarcoFalke)
    
    Pull request description:
    
      Commit 92bcd70 presumably added a check that a `dest` of type `CNoDestination` implies an empty `scriptChange`.
    
      However, it accidentally checked for `boost::variant::empty`, which always returns false: https://www.boost.org/doc/libs/1_72_0/doc/html/boost/variant.html#id-1_3_46_5_4_1_1_16_2-bb
    
    ACKs for top commit:
      Sjors:
        utACK fa47cf9
    
    Tree-SHA512: 9626b1e2947039853703932a362c2ee204e002d3344856eb93eef0e0f833401336f2dfa80fd43b83c8ec6eac624e6302aee771fb67aec436ba6483be02b8d615
    laanwj authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    849b5ed View commit details
    Browse the repository at this point in the history
  7. Merge bitcoin#9381: Remove CWalletTx merging logic from AddToWallet

    28b112e Get rid of BindWallet (Russell Yanofsky)
    d002f9d Disable CWalletTx copy constructor (Russell Yanofsky)
    65b9d8f Avoid copying CWalletTx in LoadToWallet (Russell Yanofsky)
    bd2fbc7 Get rid of unneeded CWalletTx::Init parameter (Russell Yanofsky)
    2b9cba2 Remove CWalletTx merging logic from AddToWallet (Russell Yanofsky)
    
    Pull request description:
    
      This is a pure refactoring, no behavior is changing.
    
      Instead of AddToWallet taking a temporary CWalletTx object and then potentially merging it with a pre-existing CWalletTx, have it take a callback so callers can update the pre-existing CWalletTx directly.
    
      This makes AddToWallet simpler because now it is only has to be concerned with saving CWalletTx objects and not merging them.
    
      This makes AddToWallet calls clearer because they can now make direct updates to CWalletTx entries without having to make temporary objects and then worry about how they will be merged.
    
      Motivation for this change came from the bumpfee PR bitcoin#8456 where we wanted to be able to call AddToWallet to make a simple update to an existing transaction, but were reluctant to, because the existing CWalletTx merging logic did not apply and seemed dangerous try to update as part of that PR. After this refactoring, the bumpfee PR could call AddToWallet safely instead of implementing a duplicate AddToWallet function.
    
      This also allows getting rid of the CWalletTx copy constructor to prevent unintentional copying.
    
    ACKs for top commit:
      MarcoFalke:
        Anyway, re-ACK 28b112e
    
    Tree-SHA512: 528dd088714472a237500b200f4433db850bdb7fc29c5e5d81cae48072061dfb967f7c37edd90b33f24901239f9be982988547c1f8c80abc25fb243fbf7330ef
    meshcollider authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    d11a933 View commit details
    Browse the repository at this point in the history
  8. follow-up Merge bitcoin#14559: appveyor: Enable multiwallet tests - a…

    …dds missing changes for wallet_multiwallet.py test
    
    4dca7d0 appveyor: Enable multiwallet test (Chun Kuan Lee)
    
    Pull request description:
    
      Based on bitcoin#14320
    
      This PR enable multiwallet test on appveyor. Also re-enable symlink tests on Windows which is available after Windows Vista.
    
      I disable these tests in bitcoin#13964 because I suppose that Windows does not support symlink, but I was wrong.
    
    Tree-SHA512: 852cd4dedf36ec9c34aff8926cb34e6a560aea0bb9170c7a2264fc292dbb605622d561568d8df39aeb90d3d2bb700901d218ea7e7c5e21d84827c40d6370b369
    MarcoFalke authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    f7f29d7 View commit details
    Browse the repository at this point in the history
  9. Merge bitcoin#20230: wallet: Fix bug when just created encrypted wall…

    …et cannot get address
    
    bf6855a wallet: Fix bug when just created encrypted wallet cannot get address (Hennadii Stepanov)
    
    Pull request description:
    
      Fix bitcoin-core/gui#105
    
    ACKs for top commit:
      achow101:
        Tested ACK bf6855a
      kristapsk:
        ACK bf6855a
      meshcollider:
        Tested ACK bf6855a
    
    Tree-SHA512: eca0ab306d7206f2e5db568e83217bd854caac104379f4d8fb261db832d4d6310cbb1eab44ce9b05a5ac2eb5879a623b729752a88810f8370c24518a8d81292d
    meshcollider authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    94643ca View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    e88bf52 View commit details
    Browse the repository at this point in the history
  11. follow-up Merge bitcoin#17381: LegacyScriptPubKeyMan code cleanups - …

    …now it's possible to remove workaround
    knst authored and PastaPastaPasta committed Dec 6, 2023
    Configuration menu
    Copy the full SHA
    da212ad View commit details
    Browse the repository at this point in the history