]> Nutra Git (v2) - gamesguru/feather.git/commitdiff
wizard: added option to override embedded wallet creation date for 14/16-word seeds
authortobtoht <tob@featherwallet.org>
Fri, 13 Jan 2023 13:16:36 +0000 (14:16 +0100)
committertobtoht <tob@featherwallet.org>
Fri, 13 Jan 2023 13:16:53 +0000 (14:16 +0100)
src/wizard/PageSetRestoreHeight.cpp
src/wizard/PageWalletRestoreSeed.cpp
src/wizard/PageWalletRestoreSeed.ui
src/wizard/WalletWizard.cpp
src/wizard/WalletWizard.h

index db399d28f470c61e5f1bd6e6758d08934920d261..5ec276f76f17192ef8302c6d597dbedd05471174 100644 (file)
@@ -45,6 +45,12 @@ void PageSetRestoreHeight::initializePage() {
     ui->line_restoreHeight->setText("");
     ui->frame_scanWarning->hide();
     ui->frame_walletAgeWarning->hide();
+
+    if (m_fields->seedCreationDateOverridden) {
+        auto creationDate = QDateTime::fromSecsSinceEpoch(m_fields->seed.time);
+        ui->line_creationDate->setText(creationDate.toString("yyyy-MM-dd"));
+        this->onCreationDateEdited();
+    }
 }
 
 void PageSetRestoreHeight::onCreationDateEdited() {
index 5ff08bf300a4b608affd0f50e93b6e817e5c18be..9c123d3a1d80125fd92387bc8e1fbd04174a7ca2 100644 (file)
@@ -57,8 +57,6 @@ PageWalletRestoreSeed::PageWalletRestoreSeed(WizardFields *fields, QWidget *pare
 
     connect(ui->seedBtnGroup, QOverload<QAbstractButton *>::of(&QButtonGroup::buttonClicked), this, &PageWalletRestoreSeed::onSeedTypeToggled);
     connect(ui->combo_seedLanguage, &QComboBox::currentTextChanged, this, &PageWalletRestoreSeed::onSeedLanguageChanged);
-
-    this->onSeedTypeToggled();
 }
 
 
@@ -68,18 +66,21 @@ void PageWalletRestoreSeed::onSeedTypeToggled() {
         m_fields->seedType = Seed::Type::POLYSEED;
         ui->seedEdit->setPlaceholderText("Enter 16 word seed..");
         ui->group_seedLanguage->hide();
+        ui->check_overrideCreationDate->setVisible(true);
     }
     if (ui->radio14->isChecked()) {
         m_mode = &m_tevador;
         m_fields->seedType = Seed::Type::TEVADOR;
         ui->seedEdit->setPlaceholderText("Enter 14 word seed..");
         ui->group_seedLanguage->hide();
+        ui->check_overrideCreationDate->setVisible(true);
     }
     else if (ui->radio25->isChecked()) {
         m_mode = &m_legacy;
         m_fields->seedType = Seed::Type::MONERO;
         ui->seedEdit->setPlaceholderText("Enter 25 word seed..");
         ui->group_seedLanguage->show();
+        ui->check_overrideCreationDate->setVisible(false);
     }
 
     ui->label_errorString->hide();
@@ -94,7 +95,7 @@ void PageWalletRestoreSeed::onSeedLanguageChanged(const QString &language) {
 }
 
 int PageWalletRestoreSeed::nextId() const {
-    if (m_mode == &m_legacy) {
+    if (m_mode == &m_legacy || ui->check_overrideCreationDate->isChecked()) {
         return WalletWizard::Page_SetRestoreHeight;
     }
 
@@ -107,6 +108,10 @@ void PageWalletRestoreSeed::initializePage() {
     ui->seedEdit->setStyleSheet("");
     ui->label_errorString->hide();
     ui->line_seedOffset->setText("");
+    ui->check_overrideCreationDate->setVisible(false);
+    ui->check_overrideCreationDate->setChecked(false);
+    ui->radio16->isChecked();
+    this->onSeedTypeToggled();
 }
 
 bool PageWalletRestoreSeed::validatePage() {
@@ -157,6 +162,7 @@ bool PageWalletRestoreSeed::validatePage() {
 
     m_fields->seed = _seed;
     m_fields->seedOffsetPassphrase = ui->line_seedOffset->text();
+    m_fields->seedCreationDateOverridden = ui->check_overrideCreationDate->isChecked();
 
     return true;
 }
index 2c9b226f7894d0c3e879bfe7823a15f71efb85dd..3a82f7fc3304d7c00529be4f283738fa1bd891a7 100644 (file)
      </property>
     </widget>
    </item>
+   <item>
+    <widget class="QCheckBox" name="check_overrideCreationDate">
+     <property name="text">
+      <string>Override embedded wallet creation date</string>
+     </property>
+    </widget>
+   </item>
    <item>
     <widget class="QLabel" name="label_errorString">
      <property name="text">
index 1c9dd0ff3d5032960b4558ac097f927035cde04c..250437c980c81240cbcc40ea6e383b4d3d696915 100644 (file)
@@ -132,7 +132,7 @@ void WalletWizard::onCreateWallet() {
         m_wizardFields.seed.restoreHeight = currentBlockHeight;
     }
 
-    if (m_wizardFields.mode == WizardMode::RestoreFromSeed && m_wizardFields.seedType == Seed::Type::MONERO) {
+    if (m_wizardFields.mode == WizardMode::RestoreFromSeed && (m_wizardFields.seedType == Seed::Type::MONERO || m_wizardFields.seedCreationDateOverridden)) {
         m_wizardFields.seed.setRestoreHeight(m_wizardFields.restoreHeight);
     }
 
index e7300530afd9648c85b99d6e9fb3e576ccd8004a..5a88f08ab2095a89a8ef86f5ef0eff7ebdbc6100 100644 (file)
@@ -32,6 +32,7 @@ struct WizardFields {
     QString walletDir;
     Seed seed;
     bool seedOffsetPassphraseEnabled = false;
+    bool seedCreationDateOverridden = false;
     QString seedOffsetPassphrase;
     QString seedLanguage = constants::seedLanguage;
     QString password;