{"blank",RPCArg::Type::BOOL,RPCArg::Default{false},"Create a blank wallet. A blank wallet has no keys or HD seed. One can be set using sethdseed."},
{"blank",RPCArg::Type::BOOL,RPCArg::Default{false},"Create a blank wallet. A blank wallet has no keys or HD seed. One can be set using sethdseed."},
{"passphrase",RPCArg::Type::STR,RPCArg::Optional::OMITTED_NAMED_ARG,"Encrypt the wallet with this passphrase."},
{"passphrase",RPCArg::Type::STR,RPCArg::Optional::OMITTED_NAMED_ARG,"Encrypt the wallet with this passphrase."},
{"avoid_reuse",RPCArg::Type::BOOL,RPCArg::Default{false},"Keep track of coin reuse, and treat dirty and clean coins differently with privacy considerations in mind."},
{"avoid_reuse",RPCArg::Type::BOOL,RPCArg::Default{false},"Keep track of coin reuse, and treat dirty and clean coins differently with privacy considerations in mind."},
{"descriptors",RPCArg::Type::BOOL,RPCArg::Default{true},"Create a native descriptor wallet. The wallet will use descriptors internally to handle address creation"},
{"descriptors",RPCArg::Type::BOOL,RPCArg::Default{true},"Create a native descriptor wallet. The wallet will use descriptors internally to handle address creation."
" Setting to \"false\" will create a legacy wallet; however, the legacy wallet type is being deprecated and"
" support for creating and opening legacy wallets will be removed in the future."},
{"load_on_startup",RPCArg::Type::BOOL,RPCArg::Optional::OMITTED_NAMED_ARG,"Save wallet name to persistent settings and load on startup. True to add wallet to startup list, false to remove, null to leave unchanged."},
{"load_on_startup",RPCArg::Type::BOOL,RPCArg::Optional::OMITTED_NAMED_ARG,"Save wallet name to persistent settings and load on startup. True to add wallet to startup list, false to remove, null to leave unchanged."},
{"external_signer",RPCArg::Type::BOOL,RPCArg::Default{false},"Use an external signer such as a hardware wallet. Requires -signer to be configured. Wallet creation will fail if keys cannot be fetched. Requires disable_private_keys and descriptors set to true."},
{"external_signer",RPCArg::Type::BOOL,RPCArg::Default{false},"Use an external signer such as a hardware wallet. Requires -signer to be configured. Wallet creation will fail if keys cannot be fetched. Requires disable_private_keys and descriptors set to true."},
warnings.push_back(_("Wallet created successfully. The legacy wallet type is being deprecated and support for creating and opening legacy wallets will be removed in the future."));
@ -164,5 +164,10 @@ class CreateWalletTest(BitcoinTestFramework):
self.log.info('Using a passphrase with private keys disabled returns error')
self.log.info('Using a passphrase with private keys disabled returns error')
assert_raises_rpc_error(-4,'Passphrase provided but private keys are disabled. A passphrase is only used to encrypt private keys, so cannot be used for wallets with private keys disabled.',self.nodes[0].createwallet,wallet_name='w9',disable_private_keys=True,passphrase='thisisapassphrase')
assert_raises_rpc_error(-4,'Passphrase provided but private keys are disabled. A passphrase is only used to encrypt private keys, so cannot be used for wallets with private keys disabled.',self.nodes[0].createwallet,wallet_name='w9',disable_private_keys=True,passphrase='thisisapassphrase')
assert_equal(res["warning"],"Wallet created successfully. The legacy wallet type is being deprecated and support for creating and opening legacy wallets will be removed in the future.")