I have a question about how the bitcoin core wallet works with descriptors.
I am creating a wallet using the createwallet method and passing in a name (all other args are default).
I then import addresses into Bitcoin Core using importmulti and wsh(sortedmulti(2,[abc123ef/48h/0h/0h/2h]xpubyadayada.../0/*, [abc345ef/48h/0h/0h/2h]xpubyadaya1da.../0/*, [abc567ef/48h/0h/0h/2h]xpubyadaya2da.../0/*))#checksum
When I run deriveaddresses with wsh(sortedmulti(2,[abc123ef/48h/0h/0h/2h]xpubyadayada.../0/*, [abc345ef/48h/0h/0h/2h]xpubyadaya1da.../0/*, [abc567ef/48h/0h/0h/2h]xpubyadaya2da.../0/*))#checksum I get the expected addresses as an output but when I run the getnewaddress command after running importmulti, I get an address but not any of the addresses that were output from deriveaddresses.
I then noticed there is a disable_private_keys option when creating the wallet, so I've setup a new wallet using that flag.
I go through the setup process again with keypool=true when importing multi but when I run getnewaddress I get "Error: This wallet has no available keys". The importmulti call returns success: true, and I get Already have script 522103b403e66... in my logs when I try running the command twice.
Does getnewaddress not work with descriptors? Or am I setting up the wallet incorrectly? I see there is an argument blank to pass in when creating a wallet but when I try that and import I get Error: This wallet has no available keys too.
I would expect getnewaddress to output the first address returned from deriveaddresses on a fresh wallet. Have I overlooked something in the documentation?
I looked at these docs too and I think I've followed them exactly: https://gist.github.com/achow101/a9cf757d45df56753fae9d65db4d6e1d
Using importmulti with internal set to true does not add any change keys. What am I doing wrong?
Import multisig change addresses into Bitcoin Core using "importmulti" + descriptor
What is the best way to create a wallet with a blank keypool then add keys to it?
Thanks!