mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-10 14:08:40 +01:00
Merge bitcoin-core/gui#738: Add menu option to migrate a wallet
48aae2cffegui: Add File > Migrate Wallet (Andrew Chow)577be889cdgui: Optionally return passphrase after unlocking (Andrew Chow)5b3a85b4c6interfaces, wallet: Expose migrate wallet (Andrew Chow) Pull request description: GUI users need to be able to migrate wallets without going to the RPC console. ACKs for top commit: jarolrod: ACK48aae2cffepablomartin4btc: tACK48aae2cffehebasto: ACK48aae2cffeTree-SHA512: 2d02b1e85e7d6cfbf503f417f150cdaa0c63822942e9a6fe28c0ad3e7f40a957bb01a375c909a60432dc600e84574881aa446c7ec983b56f0bb23f07ef15de54
This commit is contained in:
@@ -51,6 +51,7 @@ struct WalletBalances;
|
||||
struct WalletTx;
|
||||
struct WalletTxOut;
|
||||
struct WalletTxStatus;
|
||||
struct WalletMigrationResult;
|
||||
|
||||
using WalletOrderForm = std::vector<std::pair<std::string, std::string>>;
|
||||
using WalletValueMap = std::map<std::string, std::string>;
|
||||
@@ -333,6 +334,9 @@ public:
|
||||
//! Restore backup wallet
|
||||
virtual util::Result<std::unique_ptr<Wallet>> restoreWallet(const fs::path& backup_file, const std::string& wallet_name, std::vector<bilingual_str>& warnings) = 0;
|
||||
|
||||
//! Migrate a wallet
|
||||
virtual util::Result<WalletMigrationResult> migrateWallet(const std::string& name, const SecureString& passphrase) = 0;
|
||||
|
||||
//! Return available wallets in wallet directory.
|
||||
virtual std::vector<std::string> listWalletDir() = 0;
|
||||
|
||||
@@ -424,6 +428,15 @@ struct WalletTxOut
|
||||
bool is_spent = false;
|
||||
};
|
||||
|
||||
//! Migrated wallet info
|
||||
struct WalletMigrationResult
|
||||
{
|
||||
std::unique_ptr<Wallet> wallet;
|
||||
std::optional<std::string> watchonly_wallet_name;
|
||||
std::optional<std::string> solvables_wallet_name;
|
||||
fs::path backup_path;
|
||||
};
|
||||
|
||||
//! Return implementation of Wallet interface. This function is defined in
|
||||
//! dummywallet.cpp and throws if the wallet component is not compiled.
|
||||
std::unique_ptr<Wallet> MakeWallet(wallet::WalletContext& context, const std::shared_ptr<wallet::CWallet>& wallet);
|
||||
|
||||
Reference in New Issue
Block a user