private void DeleteWallet(UserWalletManager userWalletManager, HopeWalletInfoManager hopeWalletInfoManager, LogoutHandler logoutHandler)
    {
        var wallets        = hopeWalletInfoManager.Wallets;
        var walletToDelete = hopeWalletInfoManager.GetWalletInfo(userWalletManager.GetWalletAddress());

        for (int i = wallets.IndexOf(walletToDelete) + 1; i < wallets.Count; i++)
        {
            hopeWalletInfoManager.UpdateWalletInfo(wallets[i].WalletNum, new WalletInfo(wallets[i].EncryptedWalletData, wallets[i].WalletName, wallets[i].WalletAddresses, wallets[i].WalletNum - 1));
        }

        hopeWalletInfoManager.DeleteWalletInfo(walletToDelete);
        logoutHandler.Logout();
    }
        /// <summary>
        /// Save wallet name button has been clicked
        /// </summary>
        private void SaveWalletNameClicked()
        {
            var contactList      = contactsManager.ContactList;
            var sameNameContacts = contactList.Where(contact => contact.ContactName.Equals(walletInfo.WalletName)).ToList();

            sameNameContacts.ForEach(contact => contactList[contactList.IndexOf(contact)] = new ContactInfo(contact.ContactAddress, newWalletNameField.Text));

            hopeWalletInfoManager.UpdateWalletInfo(
                walletInfo.WalletNum,
                new WalletInfo(walletInfo.EncryptedWalletData, newWalletNameField.Text, walletInfo.WalletAddresses, walletInfo.WalletNum));

            currentWalletNameField.Text = newWalletNameField.Text;
            newWalletNameField.Text     = string.Empty;
            settingsPopupAnimator.AnimateIcon(saveButton.transform.GetChild(0).gameObject);

            OnWalletNameChanged?.Invoke();
        }
        private void OnNewWalletEncrypted(string[] hashes, string passwordHash, string encryptedSeed)
        {
            hopeWalletInfoManager.UpdateWalletInfo(
                walletInfo.WalletNum,
                new WalletInfo(
                    new WalletInfo.EncryptedDataContainer(hashes, encryptedSeed, passwordHash),
                    walletInfo.WalletName,
                    walletInfo.WalletAddresses,
                    walletInfo.WalletNum));

            playerPrefPasswordDerivation.SetupPlayerPrefs(walletInfo.WalletAddresses[0][0], () =>
            {
                MainThreadExecutor.QueueAction(() =>
                {
                    newPasswordField.Text     = string.Empty;
                    confirmPasswordField.Text = string.Empty;
                    settingsPopupAnimator.ShowLoadingIcon(saveButton.gameObject, loadingIcon, false);
                    settingsPopupAnimator.AnimateIcon(saveButton.transform.GetChild(0).gameObject);
                });
            }, false);
        }