Browse Source

Handled key-value related operations when wallet is locked.

views
Just Wonder 5 years ago
parent
commit
d1d91a96af
  1. 13
      src/qt/kevadialog.cpp
  2. 16
      src/qt/walletmodel.cpp
  3. 1
      src/qt/walletmodel.h

13
src/qt/kevadialog.cpp

@ -289,7 +289,6 @@ void KevaDialog::kevaView_selectionChanged()
bool enable = !ui->kevaView->selectionModel()->selectedRows().isEmpty(); bool enable = !ui->kevaView->selectionModel()->selectedRows().isEmpty();
ui->showValueButton->setEnabled(enable); ui->showValueButton->setEnabled(enable);
ui->removeButton->setEnabled(enable); ui->removeButton->setEnabled(enable);
ui->addKVButton->setEnabled(enable);
} }
void KevaDialog::on_showValueButton_clicked() void KevaDialog::on_showValueButton_clicked()
@ -335,6 +334,11 @@ void KevaDialog::on_removeButton_clicked()
case WalletModel::KeyNotFound: case WalletModel::KeyNotFound:
msg = tr("Key not found: \"%1\".").arg(keyStr); msg = tr("Key not found: \"%1\".").arg(keyStr);
break; break;
case WalletModel::InsufficientFund:
msg = tr("Insufficient funds");
break;
case WalletModel::WalletLocked:
return;
default: default:
msg = tr("Unknown error."); msg = tr("Unknown error.");
} }
@ -460,6 +464,8 @@ int KevaDialog::createNamespace(std::string displayName, std::string& namespaceI
case WalletModel::InsufficientFund: case WalletModel::InsufficientFund:
msg = tr("Insufficient funds"); msg = tr("Insufficient funds");
break; break;
case WalletModel::WalletLocked:
return 0;
default: default:
msg = tr("Unknown error."); msg = tr("Unknown error.");
} }
@ -488,6 +494,11 @@ int KevaDialog::addKeyValue(std::string& namespaceId, std::string& key, std::str
case WalletModel::ValueTooLong: case WalletModel::ValueTooLong:
msg = tr("Value too long."); msg = tr("Value too long.");
break; break;
case WalletModel::InsufficientFund:
msg = tr("Insufficient funds");
break;
case WalletModel::WalletLocked:
return 0;
default: default:
msg = tr("Unknown error."); msg = tr("Unknown error.");
} }

16
src/qt/walletmodel.cpp

@ -896,6 +896,11 @@ int WalletModel::createNamespace(std::string displayNameStr, std::string& namesp
return NamespaceTooLong; return NamespaceTooLong;
} }
WalletModel::UnlockContext ctx(requestUnlock());
if(!ctx.isValid()) {
return WalletLocked;
}
CReserveKey keyName(wallet); CReserveKey keyName(wallet);
CPubKey pubKey; CPubKey pubKey;
const bool ok = keyName.GetReservedKey(pubKey, true); const bool ok = keyName.GetReservedKey(pubKey, true);
@ -929,7 +934,6 @@ int WalletModel::createNamespace(std::string displayNameStr, std::string& namesp
} }
keyName.KeepKey(); keyName.KeepKey();
namespaceId = EncodeBase58Check(kevaNamespace); namespaceId = EncodeBase58Check(kevaNamespace);
return 0; return 0;
} }
@ -947,6 +951,11 @@ int WalletModel::deleteKevaEntry(std::string namespaceStr, std::string keyStr)
return KeyTooLong; return KeyTooLong;
} }
WalletModel::UnlockContext ctx(requestUnlock());
if(!ctx.isValid()) {
return WalletLocked;
}
bool hasKey = false; bool hasKey = false;
CKevaData data; CKevaData data;
{ {
@ -1013,6 +1022,11 @@ int WalletModel::addKeyValue(std::string& namespaceStr, std::string& keyStr, std
return ValueTooLong; return ValueTooLong;
} }
WalletModel::UnlockContext ctx(requestUnlock());
if(!ctx.isValid()) {
return WalletLocked;
}
COutput output; COutput output;
if (!wallet->FindKevaCoin(output, namespaceStr)) { if (!wallet->FindKevaCoin(output, namespaceStr)) {
return CannotUpdate; return CannotUpdate;

1
src/qt/walletmodel.h

@ -132,6 +132,7 @@ public:
ValueTooLong, ValueTooLong,
CannotUpdate, CannotUpdate,
InsufficientFund, InsufficientFund,
WalletLocked,
}; };
enum EncryptionStatus enum EncryptionStatus

Loading…
Cancel
Save