diff --git a/CMakeLists.txt b/CMakeLists.txt
index a75870e0..99e69f1b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,9 +1,9 @@
cmake_minimum_required( VERSION 3.1 )
#set(CMAKE_OSX_DEPLOYMENT_TARGET "10.14" CACHE STRING "Minimum OS X deployment version")
if(UNIX AND APPLE)
- project(Nunchuk VERSION 1.9.36)
+ project(Nunchuk VERSION 1.9.37)
else()
- project(nunchuk-qt VERSION 1.9.36)
+ project(nunchuk-qt VERSION 1.9.37)
endif()
set( CMAKE_CXX_STANDARD 20 )
@@ -176,6 +176,7 @@ set(Views_SRCS
Views/STATE_ID_SCR_REPLACE_SELECT_KEY.cpp
Views/STATE_ID_SCR_REPLACE_KEYS.cpp
Views/STATE_ID_SCR_SIGN_IN_VIA_XPUB.cpp
+ Views/STATE_ID_SCR_EDIT_MEMBERS.cpp
)
set(Views_MOCS
diff --git a/Images/create-hot-wallet.png b/Images/create-hot-wallet.png
deleted file mode 100644
index d5e81f72..00000000
Binary files a/Images/create-hot-wallet.png and /dev/null differ
diff --git a/Images/create-hot-wallet.svg b/Images/create-hot-wallet.svg
deleted file mode 100644
index b35ceeb0..00000000
--- a/Images/create-hot-wallet.svg
+++ /dev/null
@@ -1,36 +0,0 @@
-
diff --git a/Images/groups-dark.svg b/Images/groups-dark.svg
new file mode 100644
index 00000000..6f958c4b
--- /dev/null
+++ b/Images/groups-dark.svg
@@ -0,0 +1,10 @@
+
diff --git a/Images/health-check-light.svg b/Images/health-check-light.svg
new file mode 100644
index 00000000..65f35f22
--- /dev/null
+++ b/Images/health-check-light.svg
@@ -0,0 +1,3 @@
+
diff --git a/Images/person-add-24px.svg b/Images/person-add-24px.svg
new file mode 100644
index 00000000..31e4f0d1
--- /dev/null
+++ b/Images/person-add-24px.svg
@@ -0,0 +1,4 @@
+
diff --git a/Models/AppModel.cpp b/Models/AppModel.cpp
index 2584d290..d9f4b8d4 100644
--- a/Models/AppModel.cpp
+++ b/Models/AppModel.cpp
@@ -474,6 +474,11 @@ void AppModel::setSoftwareSignerDeviceList(const QDeviceListModelPtr &value)
emit softwareSignerDeviceListChanged();
}
+qint64 AppModel::hourFeeOrigin() const
+{
+ return hourFee_;
+}
+
QString AppModel::hourFeeCurrency() const
{
double fee = (double)hourFee_/1000;
@@ -498,6 +503,11 @@ void AppModel::setHourFee(qint64 fee)
}
}
+qint64 AppModel::minFeeOrigin() const
+{
+ return minFee_;
+}
+
QString AppModel::minFeeCurrency() const
{
double btcRate = btcRates()/100000000;
@@ -532,6 +542,11 @@ void AppModel::resetSignersChecked()
}
}
+qint64 AppModel::halfHourFeeOrigin() const
+{
+ return halfHourFee_;
+}
+
QString AppModel::halfHourFeeCurrency() const
{
double btcRate = btcRates()/100000000;
@@ -556,6 +571,11 @@ void AppModel::setHalfHourFee(qint64 fee)
}
}
+qint64 AppModel::fastestFeeOrigin() const
+{
+ return fastestFee_;
+}
+
QString AppModel::fastestFeeCurrency() const
{
double btcRate = btcRates()/100000000;
@@ -699,12 +719,8 @@ void AppModel::requestCreateUserWallets()
WalletsMng->GetListWallet(USER_WALLET);
WalletsMng->GetListWallet(GROUP_WALLET);
AppModel::instance()->startReloadUserDb();
- static bool needCheckOnboarding = true;
- if(needCheckOnboarding){
- needCheckOnboarding = false;
- AppModel::instance()->requestOnboarding();
- }
});
+ AppModel::instance()->requestOnboarding();
}
void AppModel::requestSyncSharedWallets()
@@ -765,11 +781,10 @@ void AppModel::requestClearData()
void AppModel::requestOnboarding()
{
- timeoutHandler(1000,[=]{
- if (CLIENT_INSTANCE->isSubscribed() || !QGroupWallets::instance()->existGroupPending()) {
+ timeoutHandler(1000,[=, this]{
+ if (CLIENT_INSTANCE->isSubscribed() || QGroupWallets::instance()->existGroupPending() || AppModel::instance()->walletListPtr()->existGroupWallet()) {
AppSetting::instance()->setIsFirstTimeOnboarding(true);
- }
- else {
+ } else {
DBG_INFO << "Checking Onboarding " << AppSetting::instance()->isFirstTimeOnboarding();
if (!AppSetting::instance()->isFirstTimeOnboarding()) {
OnBoardingModel::instance()->setState("onboarding");
@@ -991,6 +1006,7 @@ void AppModel::setWalletInfo(const QWalletPtr &d, bool force)
<< "Wallet Role:" << walletInfo_.data()->myRole()
<< "Wallet Slug:" << walletInfo_.data()->slug()
<< "Wallet Status:" << walletInfo_.data()->status();
+ QGroupWallets::instance()->setDashboardInfo(walletInfo_);
}
}
diff --git a/Models/AppModel.h b/Models/AppModel.h
index 1484df7e..ffff5865 100644
--- a/Models/AppModel.h
+++ b/Models/AppModel.h
@@ -175,18 +175,22 @@ class AppModel final : public Controller,
QString getTxidReplacing() const;
void setTxidReplacing(const QString &txidReplacing);
+ qint64 fastestFeeOrigin() const;
QString fastestFeeCurrency() const;
QString fastestFee() const;
void setFastestFee(qint64 fee);
+ qint64 halfHourFeeOrigin() const;
QString halfHourFeeCurrency() const;
QString halfHourFee() const;
void setHalfHourFee(qint64 fee);
+ qint64 hourFeeOrigin() const;
QString hourFeeCurrency() const;
QString hourFee() const;
void setHourFee(qint64 fee);
+ qint64 minFeeOrigin() const;
QString minFeeCurrency() const;
QString minFee() const;
void setMinFee(qint64 fee);
diff --git a/Models/Chats/QNunchukRoomModel.cpp b/Models/Chats/QNunchukRoomModel.cpp
index 1dc49580..4d26becb 100755
--- a/Models/Chats/QNunchukRoomModel.cpp
+++ b/Models/Chats/QNunchukRoomModel.cpp
@@ -1871,15 +1871,18 @@ void QNunchukRoom::nunchukNoticeEvent(const RoomEvent &evt)
msgtype.contains("io.nunchuk.custom.key_name_changed", Qt::CaseInsensitive) ||
msgtype.contains("io.nunchuk.custom.key_updated", Qt::CaseInsensitive))
{
+ if (dashboard) {
+ dashboard->GetAlertsInfo();
+ }
AppModel::instance()->requestCreateUserWallets();
}
else if(msgtype.contains("io.nunchuk.custom.transaction", Qt::CaseInsensitive))
{
QJsonObject content = evt.fullJson()["content"].toObject();
+ DBG_INFO << content;
QString wallet_id = content["wallet_local_id"].toString();
if (wallet_id != "") {
if(msgtype.contains("io.nunchuk.custom.transaction_canceled") || msgtype.contains("io.nunchuk.custom.transaction_batch_created")){
- DBG_INFO << content;
AppModel::instance()->startSyncWalletDb(wallet_id);
}
else {
@@ -1897,6 +1900,7 @@ void QNunchukRoom::nunchukNoticeEvent(const RoomEvent &evt)
if(!data.isEmpty()){
trans->setServerKeyMessage(data);
}
+ DBG_INFO << trans.data()->memo();
wallet.data()->transactionHistory()->updateTransaction(trans->txid(), trans);
if(AppModel::instance()->transactionInfo()){
QString current_tx_wallet_id = AppModel::instance()->transactionInfo()->walletId();
@@ -2003,6 +2007,7 @@ void QNunchukRoom::nunchukNoticeEvent(const RoomEvent &evt)
dashboard->GetWalletInfo();
if(dashboard->isReplaced()){
dashboard->setShowDashBoard(false);
+ AppModel::instance()->requestCreateUserWallets();
}
if (auto walletList = AppModel::instance()->walletListPtr()) {
walletList->refresh();
diff --git a/Models/Commons/ReplaceKeyFreeUser.cpp b/Models/Commons/ReplaceKeyFreeUser.cpp
index 410eee43..c7af8250 100644
--- a/Models/Commons/ReplaceKeyFreeUser.cpp
+++ b/Models/Commons/ReplaceKeyFreeUser.cpp
@@ -8,6 +8,7 @@
#include "Premiums/QAssistedDraftWallets.h"
#include "Premiums/QWalletServicesTag.h"
+bool ReplaceKeyFreeUser::m_tranReplace = false;
void ReplaceKeyFreeUser::MixMasterSignerAndSingleSignerAll()
{
m_replaceFree = true;
@@ -173,6 +174,19 @@ bool ReplaceKeyFreeUser::updateKeyReplace(const QString &xfp, const int index)
return false;
}
+bool ReplaceKeyFreeUser::tranReplace() const
+{
+ return m_tranReplace;
+}
+
+void ReplaceKeyFreeUser::setTranReplace(bool newTranReplace)
+{
+ if (m_tranReplace == newTranReplace)
+ return;
+ m_tranReplace = newTranReplace;
+ emit tranReplaceChanged();
+}
+
bool ReplaceKeyFreeUser::replaceFree() const
{
return m_replaceFree;
diff --git a/Models/Commons/ReplaceKeyFreeUser.h b/Models/Commons/ReplaceKeyFreeUser.h
index 05959b1b..29ae59b7 100644
--- a/Models/Commons/ReplaceKeyFreeUser.h
+++ b/Models/Commons/ReplaceKeyFreeUser.h
@@ -29,6 +29,10 @@ class ReplaceKeyFreeUser
QString deviceType(const QString &xfp);
bool ImportColdcardViaFile(const QString &fileName, int new_index);
+
+ bool tranReplace() const;
+ void setTranReplace(bool newTranReplace);
+
public slots:
virtual int reuseKeyGetCurrentIndex(const QString &xfp);
virtual QString bip32path(const QString &xfp, int index);
@@ -38,6 +42,7 @@ public slots:
virtual void replaceFlowChanged() = 0;
virtual void deviceListChanged() = 0;
virtual void deviceTypeChanged() = 0;
+ virtual void tranReplaceChanged() = 0;
private:
QJsonArray m_signerExistList {};
QString m_replaceFlow {"replace-key-info"};
@@ -49,6 +54,7 @@ public slots:
bool m_replaceFree {false};
QDeviceListModelPtr deviceList_;
QString m_deviceType;
+ static bool m_tranReplace;
};
#endif // REPLACEKEYFREEUSER_H
diff --git a/Models/Premiums/QAssistedDraftWallets.cpp b/Models/Premiums/QAssistedDraftWallets.cpp
index 5d21af8a..5052516d 100644
--- a/Models/Premiums/QAssistedDraftWallets.cpp
+++ b/Models/Premiums/QAssistedDraftWallets.cpp
@@ -162,6 +162,12 @@ bool QAssistedDraftWallets::RequestAddOrUpdateAKeyToDraftWallet(StructAddHardwar
} else {
ret = Byzantine::instance()->DraftWalletAddKey(hardware.mGroupId, hardware.mRequestId, data, isDuplicateKey, error_msg);
DBG_INFO << data << ret << error_msg << isDuplicateKey;
+ if (ret) {
+ if (auto dashboard = QGroupWallets::instance()->dashboardInfoPtr()) {
+ dashboard->GetAlertsInfo();
+ dashboard->GetHealthCheckInfo();
+ }
+ }
}
if (ret) {
AppModel::instance()->setAddSignerWizard(3);
@@ -218,6 +224,12 @@ bool QAssistedDraftWallets::RequestAddOrUpdateReuseKeyToDraftWallet(StructAddHar
else {
ret = Byzantine::instance()->DraftWalletAddKey(hardware.mGroupId, hardware.mRequestId, data, isDuplicateKey, error_msg);
DBG_INFO << data << ret << error_msg << isDuplicateKey;
+ if (ret) {
+ if (auto dashboard = QGroupWallets::instance()->dashboardInfoPtr()) {
+ dashboard->GetAlertsInfo();
+ dashboard->GetHealthCheckInfo();
+ }
+ }
}
if (ret) {
return true;
diff --git a/Models/Premiums/QGroupDashboard.cpp b/Models/Premiums/QGroupDashboard.cpp
index fe4750f1..09717fee 100644
--- a/Models/Premiums/QGroupDashboard.cpp
+++ b/Models/Premiums/QGroupDashboard.cpp
@@ -84,7 +84,8 @@ QString QGroupDashboard::groupStatus() const
QString QGroupDashboard::myRole() const
{
- DBG_INFO << myInfo()["role"].toString();
+ // return "FACILITATOR_ADMIN"; //FIXME TBD
+ // DBG_INFO << myInfo()["role"].toString();
return myInfo()["role"].toString();
}
@@ -720,6 +721,50 @@ void QGroupDashboard::setGroupChatExisted(bool existed)
}
}
+bool QGroupDashboard::EditGroupMembers()
+{
+ QJsonObject output;
+ QString error_msg = "";
+ bool ret = Byzantine::instance()->EditGroupMembers(groupId(),
+ servicesTagPtr()->confirmCodeNonceBody(),
+ {},
+ servicesTagPtr()->passwordToken(),
+ servicesTagPtr()->secQuesToken(),
+ servicesTagPtr()->confirmToken(),
+ output,
+ error_msg);
+ if(ret){
+ DBG_INFO << output;
+ QEventProcessor::instance()->sendEvent(E::EVT_ONS_CLOSE_REQUEST);
+ GetMemberInfo();
+ }
+ return ret;
+}
+
+bool QGroupDashboard::CalculateRequireSignaturesForEditingMembers()
+{
+ QJsonObject output;
+ QString error_msg = "";
+ bool ret = Byzantine::instance()->CalculateRequireSignaturesForEditingMembers(groupId(), bodyEditMembers(), output, error_msg);
+ if(ret){
+ DBG_INFO << output;
+ QJsonObject resultObj = output["result"].toObject();
+ servicesTagPtr()->setReqiredSignatures(resultObj);
+ auto info = servicesTagPtr()->reqiredSignaturesInfo();
+ if (info.type == (int)REQUIRED_SIGNATURE_TYPE_INT::CONFIRMATION_CODE) {
+ if (RequestConfirmationCodeEditMembers()) {
+ emit editMembersSuccessChanged();
+ }
+ } else if (info.type == (int)REQUIRED_SIGNATURE_TYPE_INT::SECURITY_QUESTION) {
+ emit editMembersSuccessChanged();
+ } else {
+ QString message = QString("Not Support Dummy Transaction");
+ AppModel::instance()->showToast(0, message, EWARNING::WarningType::EXCEPTION_MSG);
+ }
+ }
+ return ret;
+}
+
bool QGroupDashboard::requestStartKeyReplacement(const QString &tag)
{
if (ServiceSetting::instance()->existHardware(tag)) {
@@ -815,6 +860,33 @@ void QGroupDashboard::requestShowLetAddYourKeys()
QEventProcessor::instance()->sendEvent(E::EVT_SHOW_GROUP_WALLET_CONFIG_REQUEST);
}
+bool QGroupDashboard::isDowngrade(QString email_or_username, QString roleNew)
+{
+ QString roleOld = "";
+ for (auto js : groupInfo()["members"].toArray()) {
+ auto email_or_username_tmp = js.toObject()["email_or_username"].toString();
+ if (qUtils::strCompare(email_or_username, email_or_username_tmp)) {
+ roleOld = js.toObject()["role"].toString();
+ }
+ }
+ DBG_INFO << email_or_username << roleOld << roleNew;
+ if (roleOld.isEmpty()) return false;
+
+ static QMap maps = {
+ {"MASTER", 1},
+ {"ADMIN", 2},
+ {"KEYHOLDER", 3},
+ {"KEYHOLDER_LIMITED", 4},
+ {"FACILITATOR_ADMIN", 5},
+ {"OBSERVER", 6},
+ {"CUSTOMIZE", 7}
+ };
+ if (qUtils::strCompare(roleOld, "FACILITATOR_ADMIN") && qUtils::strCompare(myRole(), "FACILITATOR_ADMIN")) {
+ return false;
+ }
+ return maps[roleOld] < maps[roleNew] && qUtils::strCompare(myRole(), "FACILITATOR_ADMIN");
+}
+
bool QGroupDashboard::deviceExport(const QStringList tags, nunchuk::SignerType type)
{
DBG_INFO << tags << qUtils::GetSignerTypeString(type);
@@ -942,6 +1014,17 @@ int QGroupDashboard::nInfo() const
QJsonObject QGroupDashboard::GetSigner(const QString &xfp) const
{
+ QJsonArray origin = groupInfo()["members"].toArray();
+ QString our_id = "";
+ for (auto member : origin) {
+ QJsonObject it = member.toObject();
+ QString user_id = it["user"].toObject()["id"].toString();
+ QString email_or_username = it["email_or_username"].toString();
+ if (qUtils::strCompare(ClientController::instance()->getMe().email, email_or_username)) {
+ our_id = user_id;
+ break;
+ }
+ }
for (QJsonValue js : m_signerInfo) {
QJsonObject signer = js.toObject();
if (signer["xfp"].toString() == xfp) {
@@ -963,6 +1046,11 @@ QJsonObject QGroupDashboard::GetSigner(const QString &xfp) const
}
}
signer["signer_is_primary"] = qUtils::isPrimaryKey(xfp);
+ QString added_by_user_id = signer["added_by_user_id"].toString();
+ signer["ourAccount"] = false;
+ if (our_id == added_by_user_id) {
+ signer["ourAccount"] = true;
+ }
return signer;
}
}
@@ -1057,6 +1145,8 @@ bool QGroupDashboard::FinishKeyReplacement(const QJsonObject &requestBody)
if(ret){
DBG_INFO << ret << error_msg;
// Handle preparing model here.
+ GetAlertsInfo();
+ GetHealthCheckInfo();
}
else{
//Show error
@@ -1095,4 +1185,107 @@ QJsonObject QGroupDashboard::alertJson() const
return m_currentAlertInfo;
}
+QVariantList QGroupDashboard::editMembers() const
+{
+ return m_editMembers.toVariantList();
+}
+void QGroupDashboard::initMembers()
+{
+ m_editMembers = groupInfo()["members"].toArray();
+ emit editMembersChanged();
+}
+
+bool QGroupDashboard::addMember(const QJsonObject &aEditMember)
+{
+ QJsonObject obj = aEditMember;
+ obj["isNew"] = true;
+ DBG_INFO << obj;
+ m_editMembers.append(obj);
+ emit editMembersChanged();
+ return true;
+}
+
+bool QGroupDashboard::removeMember(const QJsonObject &aEditMember)
+{
+ QString email_or_username = aEditMember["email_or_username"].toString();
+ for (int i = 0; i < m_editMembers.size(); i++) {
+ auto js = m_editMembers.at(i);
+ auto email_or_username_tmp = js.toObject()["email_or_username"].toString();
+ if (qUtils::strCompare(email_or_username, email_or_username_tmp)) {
+ m_editMembers.removeAt(i);
+ emit editMembersChanged();
+ return true;
+ }
+ }
+ return false;
+}
+
+bool QGroupDashboard::editMembers(const QJsonObject &aEditMember, int index)
+{
+ QString email_or_username = aEditMember["email_or_username"].toString();
+ auto old = m_editMembers.at(index).toObject();
+ QString email_or_username_old = old["email_or_username"].toString();
+ DBG_INFO << aEditMember << index;
+ QJsonObject replace = old;
+ for (auto it = aEditMember.begin(); it != aEditMember.end(); ++it) {
+ replace[it.key()] = aEditMember[it.key()];
+ }
+ if (qUtils::strCompare(email_or_username, email_or_username_old)) {
+ m_editMembers.replace(index, replace);
+ emit editMembersChanged();
+ return true;
+ } else {
+ if (containEditMeber(replace)) {
+ return false;
+ } else {
+ m_editMembers.replace(index, replace);
+ emit editMembersChanged();
+ return true;
+ }
+ }
+}
+
+bool QGroupDashboard::containEditMeber(const QJsonObject &aEditMember)
+{
+ QString email_or_username = aEditMember["email_or_username"].toString();
+ for (auto js : m_editMembers) {
+ auto email_or_username_tmp = js.toObject()["email_or_username"].toString();
+ if (qUtils::strCompare(email_or_username, email_or_username_tmp)) {
+ return true;
+ }
+ }
+ return false;
+}
+
+bool QGroupDashboard::RequestConfirmationCodeEditMembers()
+{
+ QJsonObject data;
+ data["nonce"] = Draco::instance()->randomNonce();
+ data["body"] = bodyEditMembers();
+ servicesTagPtr()->setConfirmCodeNonceBody(data);
+ QString errormsg;
+ QJsonObject output;
+ bool ret = Draco::instance()->RequestConfirmationCode("EDIT_GROUP_MEMBERS", data, output, errormsg);
+ if (ret) {
+ QString code_id = output["code_id"].toString();
+ servicesTagPtr()->setCode_id(code_id);
+ }
+ return ret;
+}
+
+QJsonObject QGroupDashboard::bodyEditMembers()
+{
+ QJsonArray arrays;
+ for (auto js : m_editMembers) {
+ auto member = js.toObject();
+ QJsonObject newMember;
+ newMember["email_or_username"] = member["email_or_username"];
+ newMember["role"] = member["role"];
+ newMember["permissions"] = member["permissions"];
+ arrays.append(newMember);
+ }
+ QJsonObject requestBody;
+ requestBody["members"] = arrays;
+ return requestBody;
+}
diff --git a/Models/Premiums/QGroupDashboard.h b/Models/Premiums/QGroupDashboard.h
index 1300be77..fb4b3ac0 100644
--- a/Models/Premiums/QGroupDashboard.h
+++ b/Models/Premiums/QGroupDashboard.h
@@ -114,6 +114,7 @@ class QGroupDashboard : public QBasePremium
Q_PROPERTY(int inheritanceCount READ inheritanceCount NOTIFY inheritanceCountChanged)
Q_PROPERTY(QString historyPeriodId READ historyPeriodId NOTIFY historyPeriodIdChanged)
Q_PROPERTY(bool groupChatExisted READ groupChatExisted NOTIFY groupChatExistedChanged)
+ Q_PROPERTY(QVariantList editMembers READ editMembers NOTIFY editMembersChanged)
public:
QGroupDashboard(const QString& wallet_id);
@@ -211,6 +212,16 @@ class QGroupDashboard : public QBasePremium
bool groupChatExisted();
void setGroupChatExisted(bool existed);
+ bool EditGroupMembers();
+ bool CalculateRequireSignaturesForEditingMembers();
+ QVariantList editMembers() const;
+ void initMembers();
+ bool addMember(const QJsonObject &aEditMember);
+ bool removeMember(const QJsonObject &aEditMember);
+ bool editMembers(const QJsonObject &aEditMember, int index);
+ bool containEditMeber(const QJsonObject &aEditMember);
+ bool RequestConfirmationCodeEditMembers();
+ QJsonObject bodyEditMembers();
public slots:
bool requestStartKeyReplacement(const QString &tag);
void requestHealthCheck(const QString &xfp);
@@ -220,6 +231,7 @@ public slots:
void byzantineRoomDeleted(QString room_id, QString group_id);
void requestShowLetAddYourKeys();
+ bool isDowngrade(QString email_or_username, QString roleNew);
private:
bool deviceExport(const QStringList tags, nunchuk::SignerType type);
bool xfpExport(const QString xfp);
@@ -235,6 +247,8 @@ public slots:
void historyPeriodIdChanged();
void groupChatExistedChanged();
+ void editMembersChanged();
+ void editMembersSuccessChanged();
private:
QJsonObject m_groupInfo {};
QJsonObject m_alertInfo {};
@@ -255,5 +269,6 @@ public slots:
int m_inheritanceCount {0};
QString mHistoryPeriodId {};
bool m_groupChatExisted {false};
+ QJsonArray m_editMembers;
};
#endif // QGROUPDASHBOARD_H
diff --git a/Models/Premiums/QGroupWalletHealthCheck.cpp b/Models/Premiums/QGroupWalletHealthCheck.cpp
index 264f07c3..0d7e44e6 100644
--- a/Models/Premiums/QGroupWalletHealthCheck.cpp
+++ b/Models/Premiums/QGroupWalletHealthCheck.cpp
@@ -317,6 +317,11 @@ bool QGroupWalletHealthCheck::SkipKeyHealthReminder()
ret = Byzantine::instance()->SkipKeyHealthReminder(dashboard->groupId(), wallet_id(), xfp, output, errormsg);
}
DBG_INFO << ret << output;
+ if (ret) {
+ if (auto dash = dashBoardPtr()) {
+ dash->GetAlertsInfo();
+ }
+ }
return ret;
}
return false;
@@ -343,7 +348,18 @@ bool QGroupWalletHealthCheck::CancelHealthCheckPending()
QVariantList QGroupWalletHealthCheck::healthStatuses() const
{
- return m_healthStatuses.toVariantList();
+ if (qUtils::strCompare(dashBoardPtr()->myRole(), "FACILITATOR_ADMIN")) {
+ return m_healthStatuses.toVariantList();
+ } else {
+ QJsonArray list;
+ for (auto js : m_healthStatuses) {
+ auto key = js.toObject()["keyinfo"].toObject();
+ if (key["ourAccount"].toBool()) {
+ list.append(js);
+ }
+ }
+ return list.toVariantList();
+ }
}
QVariant QGroupWalletHealthCheck::aKeyStatus() const
diff --git a/Models/Premiums/QGroupWallets.cpp b/Models/Premiums/QGroupWallets.cpp
index faa40b47..9f485fc9 100644
--- a/Models/Premiums/QGroupWallets.cpp
+++ b/Models/Premiums/QGroupWallets.cpp
@@ -397,23 +397,13 @@ void QGroupWallets::reset()
bool QGroupWallets::AddOrUpdateAKeyToDraftWallet()
{
- bool ret = QAssistedDraftWallets::AddOrUpdateAKeyToDraftWallet();
- if (ret && mDashboard) {
- mDashboard->GetAlertsInfo();
- mDashboard->GetHealthCheckInfo();
- }
- return ret;
+ return QAssistedDraftWallets::AddOrUpdateAKeyToDraftWallet();
}
bool QGroupWallets::requestKeyReplacement(QSingleSignerPtr signer)
{
- bool ret = QAssistedDraftWallets::requestKeyReplacement(signer);
- if (ret && mDashboard) {
- mDashboard->GetAlertsInfo();
- mDashboard->GetHealthCheckInfo();
- }
- return ret;
+ return QAssistedDraftWallets::requestKeyReplacement(signer);
}
@@ -459,6 +449,8 @@ void QGroupWallets::findPermissionAccount()
currentMember = new_role == "KEYHOLDER" ? dash->myInfo() : currentMember;
} else if (new_role == "KEYHOLDER_LIMITED" || cur_role == "KEYHOLDER_LIMITED") {
currentMember = new_role == "KEYHOLDER_LIMITED" ? dash->myInfo() : currentMember;
+ } else if (new_role == "FACILITATOR_ADMIN" || cur_role == "FACILITATOR_ADMIN") {
+ currentMember = new_role == "FACILITATOR_ADMIN" ? dash->myInfo() : currentMember;
} else if (new_role == "OBSERVER" || cur_role == "OBSERVER") {
currentMember = new_role == "OBSERVER" ? dash->myInfo() : currentMember;
} else if (new_role == "CUSTOMIZE" || cur_role == "CUSTOMIZE") {
diff --git a/Models/Premiums/QKeyRecovery.cpp b/Models/Premiums/QKeyRecovery.cpp
index fccc8546..c6b9056a 100644
--- a/Models/Premiums/QKeyRecovery.cpp
+++ b/Models/Premiums/QKeyRecovery.cpp
@@ -347,7 +347,7 @@ bool QKeyRecovery::UpdateSecurityQuestions()
output,
errormsg);
if (ret) {
- UpdateRequiredQuestion();
+ AutomaticGenerateSecurityQuestions();
}
return ret;
}
diff --git a/Models/Premiums/QWalletManagement.cpp b/Models/Premiums/QWalletManagement.cpp
index ad916527..4c5e0c4f 100644
--- a/Models/Premiums/QWalletManagement.cpp
+++ b/Models/Premiums/QWalletManagement.cpp
@@ -258,7 +258,11 @@ void QWalletManagement::GetListWallet(int mode)
else if (status == "DELETED" && bridge::nunchukHasWallet(wallet_id)){
QWarningMessage msgwarning;
bridge::nunchukDeleteWallet(wallet_id, msgwarning);
- AppSetting::instance()->deleteWalletCached(wallet_id);
+ if((int)EWARNING::WarningType::NONE_MSG == msgwarning.type()){
+ AppModel::instance()->removeWallet(wallet_id);
+ AppModel::instance()->setWalletListCurrentIndex(0);
+ AppSetting::instance()->deleteWalletCached(wallet_id);
+ }
}
else{}
}
diff --git a/Models/Premiums/QWalletServicesTag.cpp b/Models/Premiums/QWalletServicesTag.cpp
index 82c7fa52..4ae2b670 100644
--- a/Models/Premiums/QWalletServicesTag.cpp
+++ b/Models/Premiums/QWalletServicesTag.cpp
@@ -80,6 +80,11 @@ bool QWalletServicesTag::requestReplaceKeysVerifyPassword(const QString &passwor
return requestVerifyPassword(password,(int)TARGET_ACTION::REPLACE_KEYS);
}
+bool QWalletServicesTag::requestEditMemberVerifyPassword(const QString &password)
+{
+ return requestVerifyPassword(password,(int)TARGET_ACTION::EDIT_GROUP_MEMBERS);
+}
+
bool QWalletServicesTag::RequestConfirmationCodeEmergencyLockdown()
{
QWalletPtr w = ServiceSetting::instance()->walletInfoPtr();
@@ -105,7 +110,7 @@ bool QWalletServicesTag::RequestConfirmationCodeEmergencyLockdown()
bool QWalletServicesTag::verifyConfirmationCode(const QString &code)
{
- DBG_INFO << code;
+ DBG_INFO << "id: " << m_code_id << "code: " << code;
QString errormsg;
QJsonObject output;
bool ret = Draco::instance()->VerifyConfirmationCode(m_code_id, code, output, errormsg);
@@ -772,7 +777,7 @@ void QWalletServicesTag::setListPolicy()
if (!server->hasServerKey()) continue;
}
if (auto dash = w->dashboard()) {
- auto hasPermission = dash->role() == "KEYHOLDER" || dash->role() == "MASTER" || dash->role() == "ADMIN";
+ auto hasPermission = dash->role() == "KEYHOLDER" || dash->role() == "MASTER" || dash->role() == "ADMIN" || dash->role() == "FACILITATOR_ADMIN";
if (hasPermission) {
setuped << wallet_id;
}
diff --git a/Models/Premiums/QWalletServicesTag.h b/Models/Premiums/QWalletServicesTag.h
index 8e8201be..60795ddd 100644
--- a/Models/Premiums/QWalletServicesTag.h
+++ b/Models/Premiums/QWalletServicesTag.h
@@ -88,6 +88,7 @@ class QWalletServicesTag : public QSwitchAPI
bool requestDeleteWalletVerifyPassword(const QString &password);
bool requestChangeEmailVerifyPassword(const QString &password);
bool requestReplaceKeysVerifyPassword(const QString &password);
+ bool requestEditMemberVerifyPassword(const QString &password);
Q_INVOKABLE bool verifyConfirmationCode(const QString &code);
QVariantList securityQuestions();
diff --git a/Models/ServiceSetting.h b/Models/ServiceSetting.h
index 2de7a9db..02ff5f8b 100644
--- a/Models/ServiceSetting.h
+++ b/Models/ServiceSetting.h
@@ -13,7 +13,7 @@ class ServiceSetting : public QObject
Q_OBJECT
Q_PROPERTY(int optionIndex READ optionIndex WRITE setOptionIndex NOTIFY optionIndexChanged)
Q_PROPERTY(int claimInheritanceFlow READ claimInheritanceFlow WRITE setClaimInheritanceFlow NOTIFY claimInheritanceFlowChanged)
- Q_PROPERTY(QVariant servicesTag READ servicesTag CONSTANT)
+ Q_PROPERTY(QVariant servicesTag READ servicesTag NOTIFY walletInfoChanged)
Q_PROPERTY(Wallet* walletInfo READ walletInfo NOTIFY walletInfoChanged)
public:
diff --git a/Models/TransactionModel.cpp b/Models/TransactionModel.cpp
index 16c43217..f5f93f08 100644
--- a/Models/TransactionModel.cpp
+++ b/Models/TransactionModel.cpp
@@ -225,8 +225,12 @@ QString Transaction::memo() const {
void Transaction::setMemo(const QString &memo)
{
- m_transaction.set_memo(memo.toStdString());
- emit memoChanged();
+ DBG_INFO << memo;
+ if(!qUtils::strCompare(memo, QString::fromStdString(m_transaction.get_memo()))){
+ m_transaction.set_memo(memo.toStdString());
+ bridge::nunchukUpdateTransactionMemo(walletId(), txid(), memo);
+ emit memoChanged();
+ }
}
int Transaction::status() const {
@@ -935,7 +939,7 @@ void TransactionListModel::addTransaction(const QTransactionPtr &d){
void TransactionListModel::updateTransactionMemo(const QString &tx_id, const QString &memo)
{
for (int i = 0; i < m_data.count(); i++) {
- if(m_data.at(i) && (0 == QString::compare(tx_id, m_data.at(i).data()->txid(), Qt::CaseInsensitive))){
+ if(m_data.at(i) && qUtils::strCompare(tx_id, m_data.at(i).data()->txid())){
m_data.at(i)->setMemo(memo);
emit dataChanged(index(i),index(i));
}
@@ -947,7 +951,7 @@ void TransactionListModel::updateTransaction(const QString &tx_id, const QTransa
if(tx){
bool existed = false;
for (int i = 0; i < m_data.count(); i++) {
- if(m_data.at(i) && (0 == QString::compare(tx_id, m_data.at(i).data()->txid(), Qt::CaseInsensitive))){
+ if(m_data.at(i) && qUtils::strCompare(tx_id, m_data.at(i).data()->txid())){
m_data.at(i)->setNunchukTransaction(tx.data()->nunchukTransaction());
emit dataChanged(index(i),index(i));
existed = true;
diff --git a/Models/WalletModel.cpp b/Models/WalletModel.cpp
index 63ae67ce..72be4431 100644
--- a/Models/WalletModel.cpp
+++ b/Models/WalletModel.cpp
@@ -788,7 +788,7 @@ QVariantList Wallet::ownerMembers() const
QJsonObject it = member.toObject();
QJsonObject user = it["user"].toObject();
QString role = it["role"].toString();
- if (role == "KEYHOLDER" || role == "MASTER" || role == "ADMIN") {
+ if (role == "KEYHOLDER" || role == "MASTER" || role == "ADMIN" || role == "FACILITATOR_ADMIN") {
if (!user.isEmpty()) {
arrs.append(member);
}
@@ -960,24 +960,23 @@ void Wallet::GetUserTxs()
if(isUserWallet()){
QString wallet_id = id();
QJsonObject data = Draco::instance()->assistedWalletGetListTx(wallet_id);
- QJsonArray transactions = data.value("transactions").toArray();
+ QJsonArray transactions = data["transactions"].toArray();
for(QJsonValue js_value : transactions){
QJsonObject transaction = js_value.toObject();
QString status = transaction.value("status").toString();
QString psbt = transaction.value("psbt").toString();
- QString note = transaction.value("note").toString();
- QString memo = note;
+ QString memo = transaction.value("note").toString();;
QString type = transaction.value("type").toString();
QString transaction_id = transaction.value("transaction_id").toString();
if (status == "READY_TO_BROADCAST" || status == "PENDING_SIGNATURES" ) {
QWarningMessage _msg;
QTransactionPtr tran = bridge::nunchukImportPsbt(wallet_id, psbt, _msg);
if(tran && (int)EWARNING::WarningType::NONE_MSG == _msg.type()){
- if(transactionHistory()){
- QTransactionPtr tx = transactionHistory()->getTransactionByTxid(transaction_id);
- if(tx && 0 != QString::compare(memo, tx.data()->memo(), Qt::CaseInsensitive)){
- bridge::nunchukUpdateTransactionMemo(wallet_id, transaction_id, memo);
- }
+ if(transactionHistory() && transactionHistory()->contains(transaction_id)){
+ transactionHistory()->updateTransactionMemo(transaction_id, memo);
+ }
+ else {
+ bridge::nunchukUpdateTransactionMemo(wallet_id, transaction_id, memo);
}
long int broadcast_time_milis = static_cast(transaction.value("broadcast_time_milis").toDouble());
// honey badger feature: schedule broadcast
@@ -990,6 +989,7 @@ void Wallet::GetUserTxs()
}
//Remove cancelled txs
GetUserCancelledTxs();
+ GetUserTxNotes();
}
}
@@ -1018,6 +1018,43 @@ void Wallet::GetUserCancelledTxs()
}
}
+void Wallet::GetUserTxNotes()
+{
+ if(isUserWallet()){
+ QString wallet_id = id();
+ QJsonObject output;
+ QString errormsg = "";
+ bool ret = Draco::instance()->assistedWalletGetTxNotes(wallet_id, output, errormsg);
+ if(ret && transactionHistory() && output.contains("notes")){
+ QJsonArray notes = output["notes"].toArray();
+ for (auto i : notes) {
+ QJsonObject note = i.toObject();
+ transactionHistory()->updateTransactionMemo(note["transaction_id"].toString(), note["note"].toString());
+ }
+ }
+ }
+}
+
+QString Wallet::GetUserTxNote(const QString &txid)
+{
+ if(isUserWallet()){
+ QString wallet_id = id();
+ QJsonObject output;
+ QString errormsg = "";
+ bool ret = Draco::instance()->assistedWalletGetTxNotes(wallet_id, output, errormsg);
+ if(ret && transactionHistory() && output.contains("notes")){
+ QJsonArray notes = output["notes"].toArray();
+ for (auto i : notes) {
+ QJsonObject note = i.toObject();
+ if(qUtils::strCompare(note["transaction_id"].toString(), txid)){
+ return note["note"].toString();
+ }
+ }
+ }
+ }
+ return "";
+}
+
QTransactionPtr Wallet::SyncUserTxs(const nunchuk::Transaction &tx)
{
QString wallet_id = id();
@@ -1036,18 +1073,17 @@ QTransactionPtr Wallet::SyncUserTxs(const nunchuk::Transaction &tx)
QString reject_msg = transaction.value("reject_msg").toString();
QString note = transaction.value("note").toString();
QString replace_txid = transaction.value("replace_txid").toString();
-
long int broadcast_time_milis = static_cast(transaction.value("broadcast_time_milis").toDouble());
// honey badger feature: schedule broadcast
long int current_time_stamp_milis = static_cast(std::time(nullptr)) * 1000;
-
if(type == "SCHEDULED" && broadcast_time_milis > current_time_stamp_milis &&
broadcast_time_milis / 1000 != tx.get_schedule_time()) {
bridge::nunchukUpdateTransactionSchedule(wallet_id, QString::fromStdString(tx.get_txid()), broadcast_time_milis/1000,msg);
- } else if (type != "SCHEDULED" && tx.get_schedule_time() != -1) {
+ }
+ else if (type != "SCHEDULED" && tx.get_schedule_time() != -1) {
bridge::nunchukUpdateTransactionSchedule(wallet_id, QString::fromStdString(tx.get_txid()), -1,msg);
}
-
+ else{}
if (status == "PENDING_CONFIRMATION" || status == "CONFIRMED" || status == "NETWORK_REJECTED") {
msg.resetWarningMessage();
bridge::nunchukImportPsbt(wallet_id, psbt,msg);
@@ -1067,8 +1103,22 @@ QTransactionPtr Wallet::SyncUserTxs(const nunchuk::Transaction &tx)
}
}
else{}
- return bridge::nunchukGetTransaction(wallet_id, transaction_id);
+ QTransactionPtr trans = bridge::nunchukGetTransaction(wallet_id, transaction_id);
+ if(trans){
+ if (status == "READY_TO_BROADCAST" || status == "PENDING_SIGNATURES" ) {
+ trans.data()->setMemo(note);
+ }
+ }
+ return trans;
+ }
+ }
+ else {
+ QString note = GetUserTxNote(QString::fromStdString(tx.get_txid()));
+ QTransactionPtr trans = bridge::convertTransaction(tx, wallet_id);
+ if(trans){
+ trans.data()->setMemo(note);
}
+ return trans;
}
}
return bridge::convertTransaction(tx, wallet_id);
@@ -1162,27 +1212,18 @@ void Wallet::GetGroupTxs()
QJsonObject transaction = i.toObject();
QString status = transaction.value("status").toString();
QString psbt = transaction.value("psbt").toString();
- QString note = transaction.value("note").toString();
- QString memo = note;
+ QString memo = transaction.value("note").toString();;
QString type = transaction.value("type").toString();
QString transaction_id = transaction.value("transaction_id").toString();
if (status == "READY_TO_BROADCAST" || status == "PENDING_SIGNATURES" ) {
QWarningMessage warningmsg;
QTransactionPtr tran = bridge::nunchukImportPsbt(wallet_id, psbt, warningmsg);
if(tran && (int)EWARNING::WarningType::NONE_MSG == warningmsg.type()){
- DBG_INFO << ">>>>>>>>>>>" << name() << transaction_id << status << memo << tran.data()->txid();
- QString old_memo = "";
- if(transactionHistory()){
- QTransactionPtr tx = transactionHistory()->getTransactionByTxid(transaction_id);
- if(tx){
- old_memo = tx.data()->memo();
- }
- else {
- old_memo = tran.data()->memo();
- }
- if(!qUtils::strCompare(memo, old_memo)){
- bridge::nunchukUpdateTransactionMemo(wallet_id, transaction_id, memo);
- }
+ if(transactionHistory() && transactionHistory()->contains(transaction_id)){
+ transactionHistory()->updateTransactionMemo(transaction_id, memo);
+ }
+ else {
+ bridge::nunchukUpdateTransactionMemo(wallet_id, transaction_id, memo);
}
long int broadcast_time_milis = static_cast(transaction.value("broadcast_time_milis").toDouble());
// honey badger feature: schedule broadcast
@@ -1198,6 +1239,7 @@ void Wallet::GetGroupTxs()
}
//Remove cancelled txs
GetGroupCancelledTxs();
+ GetGroupTxNotes();
}
}
@@ -1234,6 +1276,44 @@ void Wallet::GetGroupCancelledTxs()
}
}
+void Wallet::GetGroupTxNotes()
+{
+ if(isGroupWallet()){
+ QString wallet_id = id();
+ QString group_id = groupId();
+ QJsonObject output;
+ QString errormsg = "";
+ bool ret = Byzantine::instance()->GetAllTransactionNotes(group_id, wallet_id, output, errormsg);
+ if(ret && transactionHistory() && output.contains("notes")){
+ QJsonArray notes = output["notes"].toArray();
+ for (auto i : notes) {
+ QJsonObject note = i.toObject();
+ transactionHistory()->updateTransactionMemo(note["transaction_id"].toString(), note["note"].toString());
+ }
+ }
+ }
+}
+
+QString Wallet::GetGroupTxNote(const QString &txid) {
+ if(isGroupWallet()){
+ QString wallet_id = id();
+ QString group_id = groupId();
+ QJsonObject output;
+ QString errormsg = "";
+ bool ret = Byzantine::instance()->GetAllTransactionNotes(group_id, wallet_id, output, errormsg);
+ if(ret && transactionHistory() && output.contains("notes")){
+ QJsonArray notes = output["notes"].toArray();
+ for (auto i : notes) {
+ QJsonObject note = i.toObject();
+ if(qUtils::strCompare(note["transaction_id"].toString(), txid)){
+ return note["note"].toString();
+ }
+ }
+ }
+ }
+ return "";
+}
+
QTransactionPtr Wallet::SyncGroupTxs(const nunchuk::Transaction &tx)
{
QString wallet_id = id();
@@ -1254,16 +1334,17 @@ QTransactionPtr Wallet::SyncGroupTxs(const nunchuk::Transaction &tx)
QString hex = transaction.value("hex").toString();
QString reject_msg = transaction.value("reject_msg").toString();
QString note = transaction.value("note").toString();
-
long int broadcast_time_milis = static_cast(transaction.value("broadcast_time_milis").toDouble());
// honey badger feature: schedule broadcast
long int current_time_stamp_milis = static_cast(std::time(nullptr)) * 1000;
if(type == "SCHEDULED" && broadcast_time_milis > current_time_stamp_milis &&
broadcast_time_milis / 1000 != tx.get_schedule_time()) {
bridge::nunchukUpdateTransactionSchedule(wallet_id, QString::fromStdString(tx.get_txid()), broadcast_time_milis/1000,msg);
- } else if (type != "SCHEDULED" && tx.get_schedule_time() != -1) {
+ }
+ else if (type != "SCHEDULED" && tx.get_schedule_time() != -1) {
bridge::nunchukUpdateTransactionSchedule(wallet_id, QString::fromStdString(tx.get_txid()), -1,msg);
}
+ else{}
if (status == "PENDING_CONFIRMATION" || status == "CONFIRMED" || status == "NETWORK_REJECTED") {
bridge::nunchukImportPsbt(wallet_id, psbt, msg);
@@ -1283,8 +1364,22 @@ QTransactionPtr Wallet::SyncGroupTxs(const nunchuk::Transaction &tx)
}
}
else{}
- return bridge::nunchukGetTransaction(wallet_id, transaction_id);
+ QTransactionPtr trans = bridge::nunchukGetTransaction(wallet_id, transaction_id);
+ if(trans ){
+ if (status == "READY_TO_BROADCAST" || status == "PENDING_SIGNATURES" ) {
+ trans.data()->setMemo(note);
+ }
+ }
+ return trans;
+ }
+ }
+ else {
+ QString note = GetGroupTxNote(QString::fromStdString(tx.get_txid()));
+ QTransactionPtr trans = bridge::convertTransaction(tx, wallet_id);
+ if(trans){
+ trans.data()->setMemo(note);
}
+ return trans;
}
}
return bridge::convertTransaction(tx, wallet_id);
@@ -1598,8 +1693,6 @@ QString Wallet::slug() const
QString Wallet::myRole() const
{
- // return "FACILITATOR_ADMIN"; //FIXME TBD
-
QString role = "";
if(dashboard()){
role = dashboard().data()->myRole();
diff --git a/Models/WalletModel.h b/Models/WalletModel.h
index 10f76c63..1656c37b 100644
--- a/Models/WalletModel.h
+++ b/Models/WalletModel.h
@@ -89,6 +89,9 @@ class Wallet : public QObject, public Slugs, public ReplaceKeyFreeUser
Q_PROPERTY(QString replaceFlow READ replaceFlow NOTIFY replaceFlowChanged)
Q_PROPERTY(DeviceListModel* deviceList READ deviceList NOTIFY deviceListChanged)
Q_PROPERTY(QString deviceType READ deviceType NOTIFY deviceTypeChanged)
+ Q_PROPERTY(bool tranReplace READ tranReplace NOTIFY tranReplaceChanged)
+ Q_PROPERTY(bool isHoneyBadger READ isHoneyBadger CONSTANT)
+ Q_PROPERTY(bool isIronHand READ isIronHand CONSTANT)
public:
Wallet();
Wallet(const nunchuk::Wallet &w);
@@ -245,6 +248,8 @@ class Wallet : public QObject, public Slugs, public ReplaceKeyFreeUser
//User wallet
void GetUserTxs();
void GetUserCancelledTxs();
+ void GetUserTxNotes();
+ QString GetUserTxNote(const QString &txid);
QTransactionPtr SyncUserTxs(const nunchuk::Transaction &tx);
void UpdateUserTxs(const QString &txid, const QString &memo);
void CancelUserTxs(const QString &txid);
@@ -255,6 +260,8 @@ class Wallet : public QObject, public Slugs, public ReplaceKeyFreeUser
//Group wallet
void GetGroupTxs();
void GetGroupCancelledTxs();
+ void GetGroupTxNotes();
+ QString GetGroupTxNote(const QString &txid);
QTransactionPtr SyncGroupTxs(const nunchuk::Transaction &tx);
void UpdateGroupTxs(const QString &txid, const QString &memo);
void CancelGroupTxs(const QString &txid);
@@ -334,6 +341,7 @@ class Wallet : public QObject, public Slugs, public ReplaceKeyFreeUser
void replaceFlowChanged() override;
void deviceListChanged() override;
void deviceTypeChanged() override;
+ void tranReplaceChanged() override;
void rollOverProcess(const QString& address);
public slots:
void slotSyncCollabKeyname(QList users);
diff --git a/Models/Worker.cpp b/Models/Worker.cpp
index 8f5e4a53..90ae31d0 100644
--- a/Models/Worker.cpp
+++ b/Models/Worker.cpp
@@ -473,9 +473,7 @@ void Worker::slotStartGetTransactionHistory(const QString wallet_id)
void Worker::slotStartGetEstimatedFee()
{
- if(AppSetting::instance()->primaryServer() == (int)AppSetting::Chain::MAIN){
- Draco::instance()->feeRates();
- }
+ Draco::instance()->feeRates();
}
void Worker::slotStartSendPinToDevice(const int state_id, const int device_idx, const QString &pin)
diff --git a/Qml/Components/LeftPannel/QServiceLeftPannel.qml b/Qml/Components/LeftPannel/QServiceLeftPannel.qml
index 4c9bac90..847a78f0 100644
--- a/Qml/Components/LeftPannel/QServiceLeftPannel.qml
+++ b/Qml/Components/LeftPannel/QServiceLeftPannel.qml
@@ -29,23 +29,25 @@ Item {
property bool hasGroupPending: highestPermissionAccount.hasGroupPending
property bool isObserver: highestPermissionAccount.role === "OBSERVER"
property bool hasWalletLockdown: ServiceSetting.servicesTag.listLockdown.length > 0
+ property bool isFacilitatorAdmin: highestPermissionAccount.role === "FACILITATOR_ADMIN"
+
Loader {
anchors.fill: parent
sourceComponent: {
var user = ClientController.user
if (user.isMultiSubscriptions) {
- if (hasGroupWallet) { return isObserver ? b_observer_subscriber : b_subscriber }
+ if (hasGroupWallet) { return isFacilitatorAdmin ? b_facilitator_admin_subscriber : isObserver ? b_observer_subscriber : b_subscriber }
else { return b_empty_state }
}
else if (user.isHoneyBadgerUser) { return hb_subscriber }
else if (user.isIronHandUser) { return ih_subscriber }
else if (user.isByzantineUser || user.isFinneyUser) {
- if (hasGroupWallet) { return isObserver ? b_observer_subscriber : b_subscriber }
+ if (hasGroupWallet) { return isFacilitatorAdmin ? b_facilitator_admin_subscriber : isObserver ? b_observer_subscriber : b_subscriber }
else { return b_empty_state }
}
else {
if (!hasGroupWallet && hasGroupPending) { return b_empty_state }
- if (hasGroupWallet) { return isObserver ? b_observer_subscriber : b_subscriber }
+ if (hasGroupWallet) { return isFacilitatorAdmin ? b_facilitator_admin_subscriber : isObserver ? b_observer_subscriber : b_subscriber }
else { return notSubscriber }
}
}
@@ -70,6 +72,10 @@ Item {
id: b_observer_subscriber
B.QServiceObserverIterationLeftPannel { }
}
+ Component {
+ id: b_facilitator_admin_subscriber
+ B.QServiceFacilitatorAdminSubscriberLeftPannel { }
+ }
Component {
id: b_empty_state
B.QServiceEmptyStateLeftPannel { }
diff --git a/Qml/Components/LeftPannel/Service/Byzantine/QServiceFacilitatorAdminSubscriberLeftPannel.qml b/Qml/Components/LeftPannel/Service/Byzantine/QServiceFacilitatorAdminSubscriberLeftPannel.qml
new file mode 100644
index 00000000..1f606e6d
--- /dev/null
+++ b/Qml/Components/LeftPannel/Service/Byzantine/QServiceFacilitatorAdminSubscriberLeftPannel.qml
@@ -0,0 +1,117 @@
+/**************************************************************************
+ * This file is part of the Nunchuk software (https://nunchuk.io/) *
+ * Copyright (C) 2020-2022 Enigmo *
+ * Copyright (C) 2022 Nunchuk *
+ * *
+ * This program is free software; you can redistribute it and/or *
+ * modify it under the terms of the GNU General Public License *
+ * as published by the Free Software Foundation; either version 3 *
+ * of the License, or (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program. If not, see . *
+ * *
+ **************************************************************************/
+import QtQuick 2.12
+import QtQuick.Controls 2.0
+import QtGraphicalEffects 1.0
+import Qt.labs.platform 1.1
+import HMIEVENTS 1.0
+import NUNCHUCKTYPE 1.0
+import QRCodeItem 1.0
+import DataPool 1.0
+import DRACO_CODE 1.0
+import EWARNING 1.0
+import "../../../origins"
+import "../../../customizes"
+import "../../../customizes/Chats"
+import "../../../customizes/Texts"
+import "../../../customizes/Buttons"
+import "../../../../../localization/STR_QML.js" as STR
+
+Item {
+ id: leftpanel1
+ readonly property var option_map: [
+ {screen:_EMERGENCY, visible: true, enable:false, title:STR.STR_QML_702, icon: "qrc:/Images/Images/emergency-light.svg" ,action: function(){ return true; } },
+ {screen:_KEY_RECOVERY, visible: true, enable:true, title:STR.STR_QML_698, icon: "" ,action: function(){ return true;} },
+ {screen:_INHERITANCE_PLANING, visible: true, enable:false, title:STR.STR_QML_736, icon: "qrc:/Images/Images/inheritance-light.svg" ,action: function(){ return true;} },
+ {screen:_CLAIM_AN_INHERITANCE, visible: true, enable:true, title:STR.STR_QML_737, icon: "" ,action: function(){ ServiceSetting.servicesTag.clearClaimAnInheritance(); return true; }},
+ ]
+ property var itemOption: option_map.find(function(e) { if (e.screen === ServiceSetting.optionIndex) return true; else return false } )
+ Component.onCompleted: {
+ ServiceSetting.optionIndex = 2
+ var access = option_map.find(function(e) { if (e.screen === ServiceSetting.optionIndex) return true; else return false } )
+ if (access) {
+ var isOK = access.visible && access.enable
+ if (!isOK) {
+ var index = option_map.find(function(e) { if (e.visible && e.enable) return true; else return false } ).screen
+ ServiceSetting.optionIndex = index
+ }
+ }
+ }
+
+ Column {
+ anchors.fill: parent
+ anchors.topMargin: 24
+ spacing: 12
+ Column {
+ spacing: 0
+ Repeater {
+ model: option_map.length
+ Rectangle {
+ id: _item
+ width: leftpanel1.width
+ height: 48
+ visible: option_map[index].visible
+ enabled: option_map[index].enable
+ color: itemOption.screen === option_map[index].screen ? Qt.rgba(255, 255, 255, 0.3) : itemSetingMouse.containsMouse ? Qt.rgba(255, 255, 255, 0.1) : "transparent"
+ Row {
+ spacing: 8
+ anchors.fill: parent
+ Item {
+ width: 8;
+ height: parent.height
+ Rectangle {
+ width: 4
+ height: parent.height
+ color: itemOption.screen === option_map[index].screen ? "#F6D65D" : "transparent"
+ anchors.verticalCenter: parent.verticalCenter
+ }
+ }
+ QIcon {
+ id:_icon
+ iconSize: 24
+ anchors.verticalCenter: parent.verticalCenter
+ source: option_map[index].icon
+ visible: source != ""
+ }
+ QText {
+ anchors.verticalCenter: parent.verticalCenter
+ text: option_map[index].title
+ color: "#FFFFFF"
+ font.family: "Lato"
+ font.pixelSize: 16
+ font.weight: _icon.visible ? Font.DemiBold : Font.Normal
+ }
+ }
+ MouseArea {
+ id: itemSetingMouse
+ anchors.fill: parent
+ hoverEnabled: true
+ onClicked: {
+ var _item = option_map[index]
+ if (_item.action()) {
+ ServiceSetting.optionIndex = _item.screen
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/Qml/Components/RightPannel/Service/Byzantine/QServiceSubscriberRightPannel.qml b/Qml/Components/RightPannel/Service/Byzantine/QServiceSubscriberRightPannel.qml
index 24620c41..1df59dc4 100644
--- a/Qml/Components/RightPannel/Service/Byzantine/QServiceSubscriberRightPannel.qml
+++ b/Qml/Components/RightPannel/Service/Byzantine/QServiceSubscriberRightPannel.qml
@@ -19,6 +19,8 @@
**************************************************************************/
import QtQuick 2.12
import "../Common"
+import "../Byzantine" as B
+import "../HoneyBadger-IronHand" as HBIR
Item {
readonly property var option_map: [
@@ -26,16 +28,30 @@ Item {
{screen:_KEY_RECOVERY, screen_component: _key_recovery },
{screen:_VIEW_INHERITANCE_PLANING, screen_component: _view_inheritance_planing },
{screen:_CLAIM_AN_INHERITANCE, screen_component: _claim_an_inheritance },
- {screen:_PLATFORM_KEY_CO_SIGNING_POLICIES, screen_component: _platform_key_co_signing_policies },
+ {screen:_PLATFORM_KEY_CO_SIGNING_POLICIES, screen_component: _platform_key_co_signing_policies_B },
{screen:_GET_ADDITIONAL_WALLETS, screen_component: "" },
{screen:_REPLACE_KEY_IN_AN_ASSISTED_WALLET, screen_component: "" },
{screen:_ORDER_NEW_HARDWARE, screen_component: "" },
{screen:_MANAGE_SUBSCRIPTION, screen_component: "" },
]
property var itemOption: option_map.find(function(e) {if (e.screen === ServiceSetting.optionIndex) return true; else return false})
+
+ function platform_key_co_signing_policies() {
+ if (ServiceSetting.walletInfo === null) {
+ return _platform_key_co_signing_policies_B
+ } else {
+ return (ServiceSetting.walletInfo.isHoneyBadger || ServiceSetting.walletInfo.isIronHand) ? _platform_key_co_signing_policies_HBIR : _platform_key_co_signing_policies_B
+ }
+ }
+
Loader {
anchors.fill: parent
- sourceComponent: itemOption.screen_component
+ sourceComponent: if(ServiceSetting.optionIndex !== _PLATFORM_KEY_CO_SIGNING_POLICIES) {
+ itemOption.screen_component
+ }
+ else {
+ platform_key_co_signing_policies()
+ }
}
Component {
id: _claim_an_inheritance
@@ -58,8 +74,13 @@ Item {
}
}
Component {
- id: _platform_key_co_signing_policies
- QServicePlatformKeyCoSigningPolicies {
+ id: _platform_key_co_signing_policies_B
+ B.QServicePlatformKeyCoSigningPolicies {
+ }
+ }
+ Component {
+ id: _platform_key_co_signing_policies_HBIR
+ HBIR.QServicePlatformKeyCoSigningPolicies {
}
}
}
diff --git a/Qml/Components/RightPannel/Service/HoneyBadger-IronHand/QServicePlatformKeyCoSigningPoliciesDetails.qml b/Qml/Components/RightPannel/Service/HoneyBadger-IronHand/QServicePlatformKeyCoSigningPoliciesDetails.qml
index c2a533a9..3b79e5a7 100644
--- a/Qml/Components/RightPannel/Service/HoneyBadger-IronHand/QServicePlatformKeyCoSigningPoliciesDetails.qml
+++ b/Qml/Components/RightPannel/Service/HoneyBadger-IronHand/QServicePlatformKeyCoSigningPoliciesDetails.qml
@@ -82,7 +82,7 @@ Item {
}
Column {
id: honey_badger
- visible: ClientController.user.isHoneyBadgerUser
+ visible: ServiceSetting.walletInfo.isHoneyBadger
spacing: 16
Item {
width: 627
diff --git a/Qml/Components/customizes/Members/QMemberRole.qml b/Qml/Components/customizes/Members/QMemberRole.qml
index 2310f380..9b537f26 100644
--- a/Qml/Components/customizes/Members/QMemberRole.qml
+++ b/Qml/Components/customizes/Members/QMemberRole.qml
@@ -28,6 +28,7 @@ QBadge {
"ADMIN": STR.STR_QML_950,
"KEYHOLDER": STR.STR_QML_951,
"KEYHOLDER_LIMITED": STR.STR_QML_952,
+ "FACILITATOR_ADMIN": STR.STR_QML_1396,
"OBSERVER": STR.STR_QML_953,
"CUSTOMIZE": STR.STR_QML_849,
}
diff --git a/Qml/Components/customizes/QAreaWalletDetail.qml b/Qml/Components/customizes/QAreaWalletDetail.qml
index 09788d61..71acbcbf 100644
--- a/Qml/Components/customizes/QAreaWalletDetail.qml
+++ b/Qml/Components/customizes/QAreaWalletDetail.qml
@@ -30,8 +30,8 @@ Item {
property bool isHotWallet: false
property bool isLocked: false
property bool isReplaced: false
- property bool isFacilitatorAdmin: false
property real ratio: 0.55
+ property string myRole: AppModel.walletInfo.myRole
Item {
id: area_wldetail
anchors.fill: parent
@@ -46,13 +46,6 @@ Item {
GradientStop { position: 0.0; color: isHotWallet ? "#A66800" : (isReplaced || isLocked) ? "#595959" : (isAssisted ? "#2F766D" : "#2F466C") }
GradientStop { position: 1.0; color: isHotWallet ? "#A66800" : (isReplaced || isLocked) ? "#595959" : (isAssisted ? "#1C4A21" : "#031F2B") }
}
- Rectangle {
- width: parent.width * (1.0 - ratio)
- height: parent.height
- anchors.right: parent.right
- color: "#F5F5F5"
- visible: !isFacilitatorAdmin
- }
}
}
Rectangle {
@@ -76,4 +69,18 @@ Item {
color: "#80000000"
source: realBalanceCard
}
+ Rectangle {
+ width: parent.width * (1.0 - ratio)
+ height: parent.height
+ anchors.right: parent.right
+ color: "#F5F5F5"
+ visible: (myRole !== "FACILITATOR_ADMIN")
+ radius: 24
+ Rectangle {
+ width: 24
+ height: parent.height
+ anchors.left: parent.left
+ color: "#F5F5F5"
+ }
+ }
}
diff --git a/Qml/Components/customizes/QHomeInitialStep1.qml b/Qml/Components/customizes/QHomeInitialStep1.qml
index 4e2e3903..c707edf6 100644
--- a/Qml/Components/customizes/QHomeInitialStep1.qml
+++ b/Qml/Components/customizes/QHomeInitialStep1.qml
@@ -45,7 +45,7 @@ Rectangle {
titleSuggest: STR.STR_QML_1251
content: STR.STR_QML_1252
height: 180
- icon:"qrc:/Images/Images/create-hot-wallet.png"
+ icon:"qrc:/Images/Images/person-add-24px.svg"
onBtnClicked: {
OnBoarding.state = "hotWallet"
QMLHandle.sendEvent(EVT.EVT_ONBOARDING_REQUEST)
diff --git a/Qml/Components/customizes/QHomeInitialStep2.qml b/Qml/Components/customizes/QHomeInitialStep2.qml
index c6ce19b0..61fc8c4d 100644
--- a/Qml/Components/customizes/QHomeInitialStep2.qml
+++ b/Qml/Components/customizes/QHomeInitialStep2.qml
@@ -45,7 +45,7 @@ Rectangle {
titleSuggest: STR.STR_QML_1251
content: STR.STR_QML_1252
height: 180
- icon:"qrc:/Images/Images/create-hot-wallet.png"
+ icon:"qrc:/Images/Images/person-add-24px.svg"
onBtnClicked: {
OnBoarding.state = "hotWallet"
QMLHandle.sendEvent(EVT.EVT_ONBOARDING_REQUEST)
diff --git a/Qml/Components/customizes/QHomeInitialStep3.qml b/Qml/Components/customizes/QHomeInitialStep3.qml
index f42033dd..475e02cc 100644
--- a/Qml/Components/customizes/QHomeInitialStep3.qml
+++ b/Qml/Components/customizes/QHomeInitialStep3.qml
@@ -97,12 +97,11 @@ Item {
isHotWallet: AppModel.walletInfo.needBackup
isLocked: AppModel.walletInfo.isLocked
isReplaced: AppModel.walletInfo.isReplaced
- isFacilitatorAdmin: (myRole === "FACILITATOR_ADMIN")
Row{
anchors.fill: parent
Item {
height: parent.height
- width: parent.width * _walletDes.ratio
+ width: parent.width * (myRole === "FACILITATOR_ADMIN" ? 1 : _walletDes.ratio)
QText {
id: displayWalletname
width: 380
@@ -120,22 +119,36 @@ Item {
topMargin: 24
}
}
- QIconButton{
- id:_more
- width: 24
- height: 24
+ Row {
+ spacing: 8
anchors{
right: parent.right
rightMargin: 36
top: parent.top
topMargin: 30*QAPP_DEVICE_HEIGHT_RATIO
}
- visible: (myRole !== "OBSERVER") && (myRole !== "FACILITATOR_ADMIN")
- icon: "qrc:/Images/Images/OnlineMode/more_horiz_24px.png"
- onClicked: {
- optionMenu.popup(_more,mouse.x - 250 + 24,24)
+ QIconButton{
+ id: _group
+ width: 24
+ height: 24
+ visible: (myRole !== "OBSERVER") && (myRole !== "")
+ icon: (AppModel.walletInfo.isHoneyBadger || AppModel.walletInfo.isIronHand) ? "qrc:/Images/Images/health-check-light.svg" : "qrc:/Images/Images/groups-dark.svg"
+ onClicked: {
+ GroupWallet.dashboardInfo.isShowDashBoard = true
+ }
+ }
+ QIconButton{
+ id:_more
+ width: 24
+ height: 24
+ visible: (myRole !== "OBSERVER") && (myRole !== "FACILITATOR_ADMIN")
+ icon: "qrc:/Images/Images/OnlineMode/more_horiz_24px.png"
+ onClicked: {
+ optionMenu.popup(_more,mouse.x - 250 + 24,24)
+ }
}
}
+
QText {
id: displayDescription
text: AppModel.walletInfo.walletDescription
@@ -303,9 +316,10 @@ Item {
}
Row {
id: buttongHandles
- spacing: parent.width - 204 *2 - 24*2
+ spacing: 12
anchors {
- horizontalCenter: parent.horizontalCenter
+ left: parent.left
+ leftMargin: 24
bottom: parent.bottom
bottomMargin: 24*QAPP_DEVICE_HEIGHT_RATIO
}
diff --git a/Qml/Components/customizes/QHomePendingWallet.qml b/Qml/Components/customizes/QHomePendingWallet.qml
index 83d0a446..432c4ead 100644
--- a/Qml/Components/customizes/QHomePendingWallet.qml
+++ b/Qml/Components/customizes/QHomePendingWallet.qml
@@ -108,7 +108,7 @@ Rectangle {
height: 48
bgColor: "#F5F5F5"
icon: "qrc:/Images/Images/more-horizontal-dark.svg"
- visible: !AppModel.walletInfo.isLocked
+ visible: !AppModel.walletInfo.isLocked && myRole !== "FACILITATOR_ADMIN"
onClicked: {
if("PENDING_WALLET" === pendingDashboard.groupStatus){
pendingOptionMenu.popup()
@@ -224,6 +224,7 @@ Rectangle {
}
}
Item {
+ id: alertGroup
width: parent.width
height: Math.min(224, 24 + 12 + 12 + 88*_alert.count)
visible: _alert.count > 0
@@ -308,6 +309,7 @@ Rectangle {
}
}
Item {
+ id: healthyGroup
width: parent.width
height: 104
visible: (_healthy.count > 0)
@@ -377,9 +379,10 @@ Rectangle {
width: parent.width
height: 1
color: "#EAEAEA"
- visible: (myRole !== "KEYHOLDER_LIMITED")
+ visible: memberGroup.visible && (alertGroup.visible || healthyGroup.visible)
}
Column {
+ id: memberGroup
width: parent.width
height: childrenRect.height
spacing: 12
@@ -387,7 +390,7 @@ Rectangle {
Item {
width: parent.width
height: 24
- visible: dashboardInfo.members.count > 0
+ visible: _members.count > 0
Row {
anchors.fill: parent
spacing: 8
@@ -405,6 +408,21 @@ Rectangle {
horizontalAlignment: Text.AlignLeft
}
}
+ QTextLink {
+ id: _edit
+ width: _edit.paintedWidth
+ height: 20
+ text: STR.STR_QML_849
+ visible: (myRole === "MASTER" || myRole === "ADMIN" || myRole === "FACILITATOR_ADMIN")
+ anchors {
+ verticalCenter: parent.verticalCenter
+ right: parent.right
+ rightMargin: 12
+ }
+ onTextClicked: {
+ QMLHandle.sendEvent(EVT.EVT_EDIT_MEMBERS_REQUEST)
+ }
+ }
}
QListView {
id: _members
diff --git a/Qml/Components/customizes/QSendDelegate.qml b/Qml/Components/customizes/QSendDelegate.qml
index 4aca578c..62be8551 100644
--- a/Qml/Components/customizes/QSendDelegate.qml
+++ b/Qml/Components/customizes/QSendDelegate.qml
@@ -53,7 +53,6 @@ Rectangle {
signal qrCodeRequest()
signal removeItemRequest()
signal favoriteRequest()
- signal monneyRequest()
function setFavorite(fav) {
if ((fav.toType === "Address") || (fav.toType === "Wallet")){
@@ -166,7 +165,7 @@ Rectangle {
QTextInputBoxTypeB {
id: amountInput
label: STR.STR_QML_214
- boxWidth: parent.width - 1
+ boxWidth: 620
boxHeight: 48
isValid: true
validator: (AppSetting.unit === NUNCHUCKTYPE.SATOSHI) ? intvalidator : doubleValidator
@@ -201,17 +200,14 @@ Rectangle {
source: "qrc:/Images/Images/fav_swapt-24px.png"
transformOrigin: Item.Center
scale: moneyMouse.pressed ? 0.95 : 1
- visible: false
MouseArea {
id: moneyMouse
property bool onCurrency: false
- enabled: false
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
anchors.fill: parent
onClicked: {
onCurrency = !onCurrency
- monneyRequest()
}
}
}
diff --git a/Qml/Components/customizes/Signers/QAddRequestKey.qml b/Qml/Components/customizes/Signers/QAddRequestKey.qml
index f8c7493a..1d27a1e5 100644
--- a/Qml/Components/customizes/Signers/QAddRequestKey.qml
+++ b/Qml/Components/customizes/Signers/QAddRequestKey.qml
@@ -33,11 +33,10 @@ import "../../../../localization/STR_QML.js" as STR
Item {
width: 322
- height: 84
+ height: 72
signal tapsignerClicked()
signal serkeyClicked()
signal hardwareClicked()
- property bool ourAccount: modelData.added_by_user_id === ClientController.user.email
Loader {
id: _source
anchors.fill: parent
@@ -97,7 +96,7 @@ Item {
rightMargin: 12
}
width: label.paintedWidth + 2*20
- height: 48
+ height: 36
type: eTypeB
label.text: STR.STR_QML_941
label.font.pixelSize: 16
@@ -237,7 +236,7 @@ Item {
rightMargin: 12
}
width: label.paintedWidth + 2*20
- height: 48
+ height: 36
type: eTypeB
label.text: STR.STR_QML_941
label.font.pixelSize: 16
@@ -375,7 +374,7 @@ Item {
rightMargin: 12
}
width: label.paintedWidth + 2*20
- height: 48
+ height: 36
type: eTypeB
label.text: STR.STR_QML_958
label.font.pixelSize: 16
diff --git a/Qml/Components/customizes/Transactions/QCreateTransaction.qml b/Qml/Components/customizes/Transactions/QCreateTransaction.qml
index c7312df6..1d1580df 100644
--- a/Qml/Components/customizes/Transactions/QCreateTransaction.qml
+++ b/Qml/Components/customizes/Transactions/QCreateTransaction.qml
@@ -926,7 +926,7 @@ QOnScreenContent {
QTextButton {
width: 265
height: 48
- label.text: STR.STR_QML_235
+ label.text: AppModel.walletInfo.tranReplace ? STR.STR_QML_784 : STR.STR_QML_235
label.font.pixelSize: 16
label.font.family: "Lato"
type: eTypeE
diff --git a/Qml/Components/customizes/Transactions/QOnScreenCancelPendingTransaction.qml b/Qml/Components/customizes/Transactions/QOnScreenCancelPendingTransaction.qml
index a003156f..c976e7b6 100644
--- a/Qml/Components/customizes/Transactions/QOnScreenCancelPendingTransaction.qml
+++ b/Qml/Components/customizes/Transactions/QOnScreenCancelPendingTransaction.qml
@@ -76,7 +76,7 @@ QOnScreenContent {
QTextButton {
width: 254
height: 48
- label.text: STR.STR_QML_235
+ label.text: AppModel.walletInfo.tranReplace ? STR.STR_QML_784 : STR.STR_QML_235
label.font.pixelSize: 16
type: eTypeE
enabled: contenCenter.contentItem.new_fee !== 0
diff --git a/Qml/Components/customizes/Transactions/QOnScreenCustomizeDestination.qml b/Qml/Components/customizes/Transactions/QOnScreenCustomizeDestination.qml
index 5a39cc80..7020b227 100644
--- a/Qml/Components/customizes/Transactions/QOnScreenCustomizeDestination.qml
+++ b/Qml/Components/customizes/Transactions/QOnScreenCustomizeDestination.qml
@@ -62,7 +62,7 @@ QOnScreenContent {
bottomRight: QTextButton {
width: 254
height: 48
- label.text: STR.STR_QML_235
+ label.text: AppModel.walletInfo.tranReplace ? STR.STR_QML_784 : STR.STR_QML_235
label.font.pixelSize: 16
type: eTypeE
onButtonClicked: {
diff --git a/Qml/Components/customizes/Wallets/QWalletConfig.qml b/Qml/Components/customizes/Wallets/QWalletConfig.qml
index a5aefcf6..a8d13b5c 100644
--- a/Qml/Components/customizes/Wallets/QWalletConfig.qml
+++ b/Qml/Components/customizes/Wallets/QWalletConfig.qml
@@ -294,9 +294,8 @@ QOnScreenContent {
}
QContextMenu {
id: othersContextMenu
- property string myRole: AppModel.walletInfo.groupId !== "" ? AppModel.walletInfo.myRole : ""
+ property string myRole: AppModel.walletInfo.myRole
property bool isAssisted: {
-
var isAss = AppModel.walletInfo.isAssistedWallet && parseFloat(AppModel.walletInfo.walletBalance) === 0
if (AppModel.walletInfo.isGroupWallet) {
return isAss && (AppModel.walletInfo.groupId !== "" ? myRole === "MASTER" : true)
@@ -340,7 +339,24 @@ QOnScreenContent {
}
return ls
}
- enables: [true, true, true , true, true, true, true]
+ enables: [
+ (myRole !== "FACILITATOR_ADMIN"),
+ (myRole !== "FACILITATOR_ADMIN"),
+ (myRole !== "FACILITATOR_ADMIN"),
+ true,
+ (myRole !== "FACILITATOR_ADMIN"),
+ (myRole !== "FACILITATOR_ADMIN"),
+ (myRole !== "FACILITATOR_ADMIN")
+ ]
+ visibles: [
+ (myRole !== "FACILITATOR_ADMIN"),
+ (myRole !== "FACILITATOR_ADMIN"),
+ (myRole !== "FACILITATOR_ADMIN"),
+ true,
+ (myRole !== "FACILITATOR_ADMIN"),
+ (myRole !== "FACILITATOR_ADMIN"),
+ (myRole !== "FACILITATOR_ADMIN")
+ ]
functions: {
var ls = [];
ls.push(function(){ QMLHandle.sendEvent(EVT.EVT_WALLET_INFO_UTXOS_REQUEST); })
diff --git a/Qml/Components/customizes/Wallets/QWalletInfo.qml b/Qml/Components/customizes/Wallets/QWalletInfo.qml
index 216b267c..5e1c8090 100644
--- a/Qml/Components/customizes/Wallets/QWalletInfo.qml
+++ b/Qml/Components/customizes/Wallets/QWalletInfo.qml
@@ -526,7 +526,7 @@ QOnScreenContent {
}
QContextMenu {
id: othersContextMenu
- property string myRole: AppModel.walletInfo.groupId !== "" ? AppModel.walletInfo.myRole : ""
+ property string myRole: AppModel.walletInfo.myRole
property bool isAssisted: {
if (AppModel.walletInfo.isAssistedWallet && parseFloat(AppModel.walletInfo.walletBalance) === 0) {
if (AppModel.walletInfo.isAssistedWallet) {
@@ -565,7 +565,23 @@ QOnScreenContent {
}
return ls
}
- enables: [true, true, true , true, true, true]
+ enables: [
+ (myRole !== "FACILITATOR_ADMIN"),
+ (myRole !== "FACILITATOR_ADMIN"),
+ (myRole !== "FACILITATOR_ADMIN"),
+ true,
+ (myRole !== "FACILITATOR_ADMIN"),
+ (myRole !== "FACILITATOR_ADMIN")
+ ]
+ visibles: [
+ (myRole !== "FACILITATOR_ADMIN"),
+ (myRole !== "FACILITATOR_ADMIN"),
+ (myRole !== "FACILITATOR_ADMIN"),
+ true,
+ (myRole !== "FACILITATOR_ADMIN"),
+ (myRole !== "FACILITATOR_ADMIN")
+ ]
+
functions: {
var ls = [];
ls.push(function(){ QMLHandle.sendEvent(EVT.EVT_WALLET_INFO_UTXOS_REQUEST); })
diff --git a/Qml/Components/customizes/Wallets/QWalletKeyDelegate.qml b/Qml/Components/customizes/Wallets/QWalletKeyDelegate.qml
index 8e1ece9c..b99bf286 100644
--- a/Qml/Components/customizes/Wallets/QWalletKeyDelegate.qml
+++ b/Qml/Components/customizes/Wallets/QWalletKeyDelegate.qml
@@ -137,7 +137,7 @@ Item {
label.font.pixelSize: 12
type: eTypeB
enabled: !AppModel.walletInfo.isLocked
- visible: signerType === NUNCHUCKTYPE.SERVER && !AppModel.walletInfo.isReplaced
+ visible: signerType === NUNCHUCKTYPE.SERVER && !AppModel.walletInfo.isReplaced && myRole !== "FACILITATOR_ADMIN"
onButtonClicked: {
viewPoliciesRequest()
}
diff --git a/Qml/Screens/LocalMode/Onboarding/QAddAWallet.qml b/Qml/Screens/LocalMode/Onboarding/QAddAWallet.qml
index aeef08a6..5d093b04 100644
--- a/Qml/Screens/LocalMode/Onboarding/QAddAWallet.qml
+++ b/Qml/Screens/LocalMode/Onboarding/QAddAWallet.qml
@@ -41,57 +41,42 @@ QOnScreenContentTypeA {
onCloseClicked: closeTo(NUNCHUCKTYPE.WALLET_TAB)
content: Item {
Column {
- anchors.horizontalCenter: parent.horizontalCenter
- width: 500
+ anchors.left: parent.left
+ width: 539
spacing: 24
- QImage {
- width: 96
- height: 96
- anchors.horizontalCenter: parent.horizontalCenter
- source: "qrc:/Images/Images/wallet.svg"
- }
QLato {
+ anchors.left: parent.left
width: parent.width
text: STR.STR_QML_1250
lineHeightMode: Text.FixedHeight
lineHeight: 28
wrapMode: Text.WordWrap
- horizontalAlignment: Text.AlignHCenter
+ horizontalAlignment: Text.AlignLeft
verticalAlignment: Text.AlignVCenter
}
- Column {
- width: 500
- spacing: 16
- QTextButton {
- width: 343
- height: 48
- label.text: STR.STR_QML_1262
- label.font.pixelSize: 16
- type: eTypeE
- anchors.horizontalCenter: parent.horizontalCenter
- onButtonClicked: {
- var _input = {
- type: "create-new-wallet"
- }
- QMLHandle.sendEvent(EVT.EVT_ONBOARDING_ACTION_REQUEST, _input)
+ QCreateHotWallet {
+ width: 539
+ height: 92
+ anchors.left: parent.left
+ color: "#FFFFFF"
+ title: STR.STR_QML_1262
+ description: STR.STR_QML_1405
+ desImg: "qrc:/Images/Images/wallet.svg"
+ onItemclicked: {
+ var _input = {
+ type: "create-new-wallet"
}
- }
- QLato {
- anchors.horizontalCenter: parent.horizontalCenter
- width: parent.width
- text: "Or"
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
+ QMLHandle.sendEvent(EVT.EVT_ONBOARDING_ACTION_REQUEST, _input)
}
}
QCreateHotWallet {
- width: 500
- height: 128
- anchors.horizontalCenter: parent.horizontalCenter
+ width: 539
+ height: 120
+ anchors.left: parent.left
color: "#FFFFFF"
title: STR.STR_QML_1251
description: STR.STR_QML_1252
- desImg: "qrc:/Images/Images/create-hot-wallet.png"
+ desImg: "qrc:/Images/Images/person-add-24px.svg"
onItemclicked: {
OnBoarding.state = "hotWallet"
}
@@ -99,7 +84,7 @@ QOnScreenContentTypeA {
}
}
- onPrevClicked: closeTo(NUNCHUCKTYPE.WALLET_TAB)
+ bottomLeft: Item {}
bottomRight: Row {
spacing: 12
QTextButton {
diff --git a/Qml/Screens/LocalMode/Onboarding/QCreateHotWallet.qml b/Qml/Screens/LocalMode/Onboarding/QCreateHotWallet.qml
index 630b3504..00bfadf7 100644
--- a/Qml/Screens/LocalMode/Onboarding/QCreateHotWallet.qml
+++ b/Qml/Screens/LocalMode/Onboarding/QCreateHotWallet.qml
@@ -51,26 +51,26 @@ QBoxShadow {
}
Row {
anchors {
- fill: parent
+ left: parent.left
leftMargin: 28
- topMargin: 24
- bottomMargin: 24
- rightMargin: 28
+ verticalCenter: parent.verticalCenter
+ }
+ spacing: 24
+ QImage {
+ source: desImg
+ width: 48
+ height: 48
+ anchors.verticalCenter: parent.verticalCenter
}
- spacing: 16
Item {
- anchors {
- left: parent.left
- bottom: parent.bottom
- }
- width: 308
+ width: 363
height: _col.childrenRect.height
-
+ anchors.verticalCenter: parent.verticalCenter
Column {
id: _col
spacing: 8
QLato {
- width: 308
+ width: 363
height: 28
text: title
font.bold: true
@@ -80,7 +80,7 @@ QBoxShadow {
horizontalAlignment: Text.AlignLeft
}
QLato {
- width: 308
+ width: 363
height: paintedHeight
text: description
font.pixelSize: 16
@@ -92,15 +92,11 @@ QBoxShadow {
}
}
}
-
QImage {
- anchors {
- right: parent.right
- verticalCenter: parent.verticalCenter
- }
- source: desImg
- width: 96
- height: 96
+ source: "qrc:/Images/Images/right-arrow-dark.svg"
+ width: 24
+ height: 24
+ anchors.verticalCenter: parent.verticalCenter
}
}
}
diff --git a/Qml/Screens/LocalMode/SCR_ADD_NEW_SOFTWARE_SIGNER.qml b/Qml/Screens/LocalMode/SCR_ADD_NEW_SOFTWARE_SIGNER.qml
index e43dc959..2c496d3c 100644
--- a/Qml/Screens/LocalMode/SCR_ADD_NEW_SOFTWARE_SIGNER.qml
+++ b/Qml/Screens/LocalMode/SCR_ADD_NEW_SOFTWARE_SIGNER.qml
@@ -42,7 +42,7 @@ QScreen {
QMLHandle.sendEvent(EVT.EVT_ONS_CLOSE_ALL_REQUEST)
}
QText {
- width: 540
+ width: 646
height: 56
text: STR.STR_QML_143
anchors {
diff --git a/Qml/Screens/LocalMode/SCR_CREATE_NEW_SEED.qml b/Qml/Screens/LocalMode/SCR_CREATE_NEW_SEED.qml
index 78d5141a..8900d070 100644
--- a/Qml/Screens/LocalMode/SCR_CREATE_NEW_SEED.qml
+++ b/Qml/Screens/LocalMode/SCR_CREATE_NEW_SEED.qml
@@ -30,6 +30,7 @@ import "../../Components/origins"
import "../../Components/customizes"
import "../../Components/customizes/Texts"
import "../../Components/customizes/Buttons"
+import "../../Components/customizes/Popups"
import "../../../localization/STR_QML.js" as STR
QScreen {
@@ -121,13 +122,7 @@ QScreen {
label.font.pixelSize: 16
type: eTypeE
onButtonClicked: {
- var valid = random1.correct && random2.correct && random3.correct
- if(valid){
- QMLHandle.sendEvent(EVT.EVT_CREATE_NEW_SEED_SUCCEED)
- }
- else{
- AppModel.showToast(-1, STR.STR_QML_207, EWARNING.EXCEPTION_MSG);
- }
+ _InfoReview.open()
}
}
}
@@ -168,4 +163,24 @@ QScreen {
console.log(randomValues)
return randomValues;
}
+ QPopupInfoTwoButtons {
+ id: _InfoReview
+ title: STR.STR_QML_339
+ contentText: STR.STR_QML_1406
+ labels: [STR.STR_QML_1274,STR.STR_QML_1275]
+ funcs: [
+ function() {
+ QMLHandle.sendEvent(EVT.EVT_CREATE_NEW_SEED_BACK)
+ },
+ function() {
+ var valid = random1.correct && random2.correct && random3.correct
+ if(valid){
+ QMLHandle.sendEvent(EVT.EVT_CREATE_NEW_SEED_SUCCEED)
+ }
+ else{
+ AppModel.showToast(-1, STR.STR_QML_207, EWARNING.EXCEPTION_MSG);
+ }
+ }
+ ]
+ }
}
diff --git a/Qml/Screens/LocalMode/SCR_TRANSACTION_INFO.qml b/Qml/Screens/LocalMode/SCR_TRANSACTION_INFO.qml
index 48f91f3a..4bd3663f 100644
--- a/Qml/Screens/LocalMode/SCR_TRANSACTION_INFO.qml
+++ b/Qml/Screens/LocalMode/SCR_TRANSACTION_INFO.qml
@@ -45,7 +45,7 @@ QScreen {
width: popupWidth
height: popupHeight
anchors.centerIn: parent
- label.text: STR.STR_QML_282
+ label.text: STR.STR_QML_785
label.font.pixelSize: 32
label.font.weight: Font.Medium
extraHeader: Row {
@@ -109,8 +109,7 @@ QScreen {
return receiveTxBtnLeft
}
else {
- if(AppModel.transactionInfo.status === NUNCHUCKTYPE.PENDING_CONFIRMATION){ return btnPendingConfirmationLeft }
- else { return null }
+ return btnPendingConfirmationLeft
}
}
bottomRight: {
@@ -261,7 +260,7 @@ QScreen {
enableCancelTransaction: AppModel.walletInfo.isGroupWallet ? allowMoreOption : true
isAssisedWallet: AppModel.walletInfo.isAssistedWallet
isSharedWallet: AppModel.walletInfo.isSharedWallet
- visible: myRole !== "OBSERVER"
+ visible: myRole !== "OBSERVER" && !AppModel.walletInfo.tranReplace
funcs: [
function(){ // Request signature
groupMembers.open()
@@ -324,6 +323,7 @@ QScreen {
enableCancelTransaction: true
isAssisedWallet: AppModel.walletInfo.isAssistedWallet
isSharedWallet: AppModel.walletInfo.isSharedWallet
+ visible: false
funcs: [
function(){ // Request signature
@@ -354,6 +354,7 @@ QScreen {
type: eSECONDARY
label: STR.STR_QML_294
optionVisible: imExContextMenu.visible
+ visible: false
onButtonClicked: {
imExContextMenu.x = 20
imExContextMenu.y = 20 - imExContextMenu.height
@@ -391,7 +392,7 @@ QScreen {
id: startbroatcast
width: 180
height: 48
- label.text: STR.STR_QML_295
+ label.text: STR.STR_QML_497
label.font.pixelSize: 16
type: eTypeE
onButtonClicked: {
diff --git a/Qml/Screens/OnlineMode/EditMembers/QEditMemberConfirmEmail.qml b/Qml/Screens/OnlineMode/EditMembers/QEditMemberConfirmEmail.qml
new file mode 100644
index 00000000..ce75de96
--- /dev/null
+++ b/Qml/Screens/OnlineMode/EditMembers/QEditMemberConfirmEmail.qml
@@ -0,0 +1,80 @@
+/**************************************************************************
+ * This file is part of the Nunchuk software (https://nunchuk.io/) *
+ * Copyright (C) 2020-2022 Enigmo *
+ * Copyright (C) 2022 Nunchuk *
+ * *
+ * This program is free software; you can redistribute it and/or *
+ * modify it under the terms of the GNU General Public License *
+ * as published by the Free Software Foundation; either version 3 *
+ * of the License, or (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program. If not, see . *
+ * *
+ **************************************************************************/
+import QtQuick 2.4
+import QtQuick.Controls 2.3
+import QtGraphicalEffects 1.12
+import HMIEVENTS 1.0
+import EWARNING 1.0
+import NUNCHUCKTYPE 1.0
+import DataPool 1.0
+import "../../../Components/origins"
+import "../../../Components/customizes"
+import "../../../Components/customizes/Chats"
+import "../../../Components/customizes/Texts"
+import "../../../Components/customizes/Buttons"
+import "../../../../localization/STR_QML.js" as STR
+
+QOnScreenContentTypeB {
+ id:_content
+ width: popupWidth
+ height: popupHeight
+ anchors.centerIn: parent
+ label.text: STR.STR_QML_1305
+ extraHeader: Item {}
+ onCloseClicked: closeTo(NUNCHUCKTYPE.CURRENT_TAB)
+ property string code_email: ""
+ content: Item {
+ Column {
+ anchors.fill: parent
+ spacing: 24
+ QTextInputBoxTypeB {
+ id: _name
+ label: STR.STR_QML_1027
+ boxWidth: 539
+ boxHeight: 48
+ textInputted: code_email
+ onTextInputtedChanged: {
+ if(!_name.isValid){
+ _name.isValid = true
+ _name.errorText = ""
+ }
+ _name.showError = false;
+ code_email = _name.textInputted
+ }
+ }
+ }
+ QWarningBg {
+ width: 728
+ iSize: 60
+ icon: "qrc:/Images/Images/info-60px.png"
+ txt.text: STR.STR_QML_1028_bottom.arg(ClientController.user.email)
+ anchors.bottom: parent.bottom
+ }
+ }
+ onPrevClicked: closeTo(NUNCHUCKTYPE.CURRENT_TAB)
+ nextEnable: code_email !== ""
+ onNextClicked: {
+ var _input = {
+ type: "edit-member-email-code",
+ codeEmail: code_email
+ }
+ QMLHandle.sendEvent(EVT.EVT_EDIT_MEMBERS_ENTER_REQUEST, _input)
+ }
+}
diff --git a/Qml/Screens/OnlineMode/EditMembers/QEditMemberDelegate.qml b/Qml/Screens/OnlineMode/EditMembers/QEditMemberDelegate.qml
new file mode 100644
index 00000000..c3f664ea
--- /dev/null
+++ b/Qml/Screens/OnlineMode/EditMembers/QEditMemberDelegate.qml
@@ -0,0 +1,118 @@
+/**************************************************************************
+ * This file is part of the Nunchuk software (https://nunchuk.io/) *
+ * Copyright (C) 2020-2022 Enigmo *
+ * Copyright (C) 2022 Nunchuk *
+ * *
+ * This program is free software; you can redistribute it and/or *
+ * modify it under the terms of the GNU General Public License *
+ * as published by the Free Software Foundation; either version 3 *
+ * of the License, or (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program. If not, see . *
+ * *
+ **************************************************************************/
+import QtQuick 2.0
+import "../../../Components/customizes"
+import "../../../Components/customizes/Texts"
+import "../../../Components/customizes/Members"
+import "../../../../localization/STR_QML.js" as STR
+
+Column {
+ id: _colId
+ spacing: 12
+ width: 539
+ property var member
+ property int roleHeight: 24
+ signal arrowClicked()
+ QLato {
+ height: 20
+ text: modelData.role === "MASTER" ? STR.STR_QML_949 : STR.STR_QML_1031.arg(1 + index)
+ font.pixelSize: 16
+ font.weight: Font.Bold
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+ Rectangle {
+ color: "#F5F5F5"
+ radius: 12
+ width: 539
+ height: 164
+ Item {
+ anchors.fill: parent
+ anchors.margins: 16
+ Column {
+ spacing: 16
+ Item {
+ width: 507
+ height: 48
+ QAvatar {
+ width: 48
+ height: 48
+ avatarLocal: member.user ? member.user.avatar : ""
+ avatarUrl: member.user ? member.user.avatar : ""
+ username: member.user ? member.user.name : ""
+ displayStatus: false
+ activeStatus: member.status === "PENDING" ? false : true
+ anchors.verticalCenter: parent.verticalCenter
+ color: member.status === "PENDING" ? "#EAEAEA" : "#FDD95C"
+ }
+ Column {
+ id: _col
+ anchors {
+ left: parent.left
+ leftMargin: 48 + 12
+ verticalCenter: parent.verticalCenter
+ }
+ spacing: 4
+ QLato {
+ height: 20
+ text: member.user ? member.user.name : member.email_or_username
+ font.pixelSize: 16
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+ QLato {
+ height: 16
+ font.pixelSize: 12
+ color: "#595959"
+ text: member.user ? member.user.email : member.email_or_username
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+ }
+ QLato {
+ anchors {
+ right: parent.right
+ rightMargin: 0
+ verticalCenter: parent.verticalCenter
+ }
+ height: 16
+ font.pixelSize: 12
+ text: member.status === "PENDING" ? STR.STR_QML_469 : ""
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+ }
+ QEditMemberRole {
+ boxWidth: 507
+ boxHeight: 48
+ label: STR.STR_QML_1395
+ textInputted: roles.find(function(e) { if (e.id === member.role) return true; else return false }).name
+ enabled: modelData.role !== "MASTER"
+ showArrow: modelData.role !== "MASTER"
+ input.readOnly: true
+ onArrowClicked: {
+ _colId.arrowClicked()
+ }
+ }
+ }
+ }
+ }
+}
+
diff --git a/Qml/Screens/OnlineMode/EditMembers/QEditMemberNewMemberDelegate.qml b/Qml/Screens/OnlineMode/EditMembers/QEditMemberNewMemberDelegate.qml
new file mode 100644
index 00000000..22c1b670
--- /dev/null
+++ b/Qml/Screens/OnlineMode/EditMembers/QEditMemberNewMemberDelegate.qml
@@ -0,0 +1,89 @@
+/**************************************************************************
+ * This file is part of the Nunchuk software (https://nunchuk.io/) *
+ * Copyright (C) 2020-2022 Enigmo *
+ * Copyright (C) 2022 Nunchuk *
+ * *
+ * This program is free software; you can redistribute it and/or *
+ * modify it under the terms of the GNU General Public License *
+ * as published by the Free Software Foundation; either version 3 *
+ * of the License, or (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program. If not, see . *
+ * *
+ **************************************************************************/
+import QtQuick 2.0
+import "../../../Components/customizes"
+import "../../../Components/customizes/Texts"
+import "../../../Components/customizes/Members"
+import "../../../../localization/STR_QML.js" as STR
+
+Column {
+ id: _colId
+ spacing: 12
+ width: 539
+ property var member
+ property int roleHeight: 24
+ signal arrowClicked()
+ QLato {
+ height: 20
+ text: modelData.role === "MASTER" ? STR.STR_QML_949 : STR.STR_QML_1031.arg(1 + index)
+ font.pixelSize: 16
+ font.weight: Font.Bold
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+ Rectangle {
+ color: "#F5F5F5"
+ radius: 12
+ width: 539
+ height: 192
+ Item {
+ anchors.fill: parent
+ anchors.margins: 16
+ Column {
+ spacing: 16
+ QTextInputBoxTypeB {
+ id: email
+ label: STR.STR_QML_394
+ boxWidth: 507
+ boxHeight: 48
+ isValid: true
+ textInputted: modelData.email_or_username
+ onTextInputtedChanged: {
+ if(!email.isValid){
+ email.isValid = true
+ email.errorText = ""
+ }
+ email.showError = false;
+ memberIndex = index
+ memberEmail = email.textInputted
+ memberRole = modelData.role
+ }
+ onEnterKeyRequest: {
+ replaceMember()
+ }
+ }
+ QEditMemberRole {
+ boxWidth: 507
+ boxHeight: 48
+ label: STR.STR_QML_1395
+ textInputted: roles.find(function(e) { if (e.id === member.role) return true; else return false }).name
+ enabled: modelData.role !== "MASTER"
+ showArrow: modelData.role !== "MASTER"
+ input.readOnly: true
+ onArrowClicked: {
+ replaceMember()
+ _colId.arrowClicked()
+ }
+ }
+ }
+ }
+ }
+}
+
diff --git a/Qml/Screens/OnlineMode/EditMembers/QEditMemberRole.qml b/Qml/Screens/OnlineMode/EditMembers/QEditMemberRole.qml
new file mode 100644
index 00000000..8e3811f8
--- /dev/null
+++ b/Qml/Screens/OnlineMode/EditMembers/QEditMemberRole.qml
@@ -0,0 +1,120 @@
+/**************************************************************************
+ * This file is part of the Nunchuk software (https://nunchuk.io/) *
+ * Copyright (C) 2020-2022 Enigmo *
+ * Copyright (C) 2022 Nunchuk *
+ * *
+ * This program is free software; you can redistribute it and/or *
+ * modify it under the terms of the GNU General Public License *
+ * as published by the Free Software Foundation; either version 3 *
+ * of the License, or (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program. If not, see . *
+ * *
+ **************************************************************************/
+import QtQuick 2.4
+import QtGraphicalEffects 1.0
+import "../../../Components/origins"
+import "../../../Components/customizes"
+import "../../../Components/customizes/Texts"
+
+Column {
+ id: textipboxType
+ property string label: "This is label"
+ property alias textInputted: _input.text
+ property alias validator: _input.validator
+ property alias acceptableInput : _input.acceptableInput
+ property var textweight: Font.Bold
+ property alias echoMode: _input.echoMode
+ property alias maxLength: _input.maximumLength
+ property alias length: _input.length
+ property bool enableLengthLimit: false
+ property int boxWidth: 338
+ property int boxHeight: 48
+ property bool isValid: true
+ property bool showError: false
+ property bool showWarning: false
+ signal typingFinished(var currentText)
+ property alias textBoxFocus: _input.focus
+ property alias input: _input
+ property int titleFontSize: 16
+ property string disabledColor: "#EAEAEA"
+ property bool showArrow: false
+ spacing: 4
+
+ signal downKeyRequest()
+ signal upKeyRequest()
+ signal enterKeyRequest()
+ signal pasteKeyRequest()
+ signal tabKeyRequest()
+ signal arrowClicked()
+
+ Row {
+ width: parent.width
+ QLato {
+ id:txt1
+ width: paintedWidth
+ font.family: "Lato"
+ font.pixelSize: titleFontSize
+ font.weight: Font.Bold
+ text: label
+ visible: label != ""
+ anchors.bottom: parent.bottom
+ }
+ }
+ Item {
+ width: myRectangle.width+2
+ height: myRectangle.height+2
+ Item {
+ id: _background
+ width: myRectangle.width+2
+ height: myRectangle.height+2
+ Rectangle {
+ id: myRectangle
+ anchors.centerIn: parent
+ width: boxWidth
+ height: boxHeight
+ radius: 8
+ color: textipboxType.enabled ? (isValid ? "#FFFFFF" : "#FFD7D9") : disabledColor
+ border.color: isValid ? "#DEDEDE" : "#CF4018"
+ }
+ }
+ QTextField {
+ id: _input
+ anchors.fill: parent
+ background: _background
+ color: "#031F2B"
+ font.pixelSize: 16
+ clip: true
+ echoMode: TextInput.Normal
+ onTypingFinished: textipboxType.typingFinished(currentText)
+ Keys.onDownPressed: { downKeyRequest() }
+ Keys.onUpPressed: { upKeyRequest() }
+ Keys.onReturnPressed: { enterKeyRequest() }
+ Keys.onEnterPressed: { enterKeyRequest() }
+ Keys.onPressed: function (keyEvent) {
+ if (keyEvent.matches(StandardKey.Paste)) { pasteKeyRequest() }
+ if (keyEvent.key === Qt.Key_Tab) { keyEvent.accepted = false; tabKeyRequest() }
+ }
+ }
+ QIcon {
+ iconSize: 24
+ source: "qrc:/Images/Images/right-arrow-dark.svg"
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.right: parent.right
+ anchors.rightMargin: 12
+ visible: showArrow
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ arrowClicked()
+ }
+ }
+ }
+ }
+}
diff --git a/Qml/Screens/OnlineMode/EditMembers/QEditMemberSelectRoleDelegate.qml b/Qml/Screens/OnlineMode/EditMembers/QEditMemberSelectRoleDelegate.qml
new file mode 100644
index 00000000..3aea3a65
--- /dev/null
+++ b/Qml/Screens/OnlineMode/EditMembers/QEditMemberSelectRoleDelegate.qml
@@ -0,0 +1,85 @@
+/**************************************************************************
+ * This file is part of the Nunchuk software (https://nunchuk.io/) *
+ * Copyright (C) 2020-2022 Enigmo *
+ * Copyright (C) 2022 Nunchuk *
+ * *
+ * This program is free software; you can redistribute it and/or *
+ * modify it under the terms of the GNU General Public License *
+ * as published by the Free Software Foundation; either version 3 *
+ * of the License, or (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program. If not, see . *
+ * *
+ **************************************************************************/
+import QtQuick 2.0
+import "../../../Components/customizes"
+import "../../../Components/customizes/Texts"
+import "../../../Components/customizes/Members"
+import "../../../Components/customizes/Buttons"
+import "../../../../localization/STR_QML.js" as STR
+
+Rectangle {
+ border.width: 1
+ border.color: "#DEDEDE"
+ height: _col.childrenRect.height + 18
+ radius: 12
+ Item {
+ id: _col
+ anchors {
+ top: parent.top
+ left: parent.left
+ leftMargin: 18
+ }
+ QRadioButtonTypeA {
+ id: _radio
+ width: 538
+ height: 48
+ label: modelData.name
+ fontPixelSize: 16
+ fontWeight: Font.Bold
+ selected: option === modelData.id
+ layoutDirection: Qt.RightToLeft
+ onButtonClicked: {
+ option = modelData.id
+ }
+ }
+
+ QLato {
+ anchors {
+ top: _radio.bottom
+ topMargin: -8
+ left: parent.left
+ leftMargin: 54 - 18
+ }
+ height: modelData.des1 !== "" ? 20 : 0
+ text: modelData.des1
+ font.pixelSize: 12
+ horizontalAlignment: Text.AlignLeft
+ verticalAlignment: Text.AlignVCenter
+ visible: modelData.des1 !== ""
+ color: "#595959"
+ }
+ QLato {
+ anchors {
+ top: _radio.bottom
+ topMargin: modelData.des1 !== "" ? 24 : -4
+ left: parent.left
+ leftMargin: 54 - 18
+ }
+ width: parent.width
+ height: modelData.des1 !== "" ? (paintedHeight - 12) : (paintedHeight - 8)
+ text: modelData.des2
+ lineHeightMode: Text.FixedHeight
+ lineHeight: 28
+ wrapMode: Text.WordWrap
+ horizontalAlignment: Text.AlignLeft
+ verticalAlignment: Text.AlignVCenter
+ }
+ }
+}
diff --git a/Qml/Screens/OnlineMode/EditMembers/QEditMemberSuccess.qml b/Qml/Screens/OnlineMode/EditMembers/QEditMemberSuccess.qml
new file mode 100644
index 00000000..e7e3a5ea
--- /dev/null
+++ b/Qml/Screens/OnlineMode/EditMembers/QEditMemberSuccess.qml
@@ -0,0 +1,69 @@
+/**************************************************************************
+ * This file is part of the Nunchuk software (https://nunchuk.io/) *
+ * Copyright (C) 2020-2022 Enigmo *
+ * Copyright (C) 2022 Nunchuk *
+ * *
+ * This program is free software; you can redistribute it and/or *
+ * modify it under the terms of the GNU General Public License *
+ * as published by the Free Software Foundation; either version 3 *
+ * of the License, or (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program. If not, see . *
+ * *
+ **************************************************************************/
+import QtQuick 2.4
+import QtQuick.Controls 2.3
+import QtGraphicalEffects 1.12
+import Qt.labs.platform 1.1
+import HMIEVENTS 1.0
+import EWARNING 1.0
+import NUNCHUCKTYPE 1.0
+import DataPool 1.0
+import "../../../Components/origins"
+import "../../../Components/customizes"
+import "../../../Components/customizes/Chats"
+import "../../../Components/customizes/Texts"
+import "../../../Components/customizes/Buttons"
+import "../../../Components/customizes/services"
+import "../../../../localization/STR_QML.js" as STR
+
+Item {
+ id:_screen
+ property var reqiredSignature: ServiceSetting.servicesTag.reqiredSignatures
+ Loader {
+ width: popupWidth
+ height: popupHeight
+ anchors.centerIn: parent
+ sourceComponent: {
+ if (reqiredSignature.type === "SECURITY_QUESTION") {
+ return security_question
+ } else {
+ return _ConfirmEmail
+ }
+ }
+ }
+
+ Component {
+ id: security_question
+ QAnswerSecurityQuestion {
+ onCloseClicked: closeTo(NUNCHUCKTYPE.CURRENT_TAB)
+
+ onPrevClicked: closeTo(NUNCHUCKTYPE.CURRENT_TAB)
+
+ onNextClicked: {
+ ProfileSetting.seccurityQuestion()
+ }
+ }
+ }
+
+ Component {
+ id: _ConfirmEmail
+ QEditMemberConfirmEmail {}
+ }
+}
diff --git a/Qml/Screens/OnlineMode/EditMembers/QEditMembers.qml b/Qml/Screens/OnlineMode/EditMembers/QEditMembers.qml
new file mode 100644
index 00000000..22b3cb72
--- /dev/null
+++ b/Qml/Screens/OnlineMode/EditMembers/QEditMembers.qml
@@ -0,0 +1,146 @@
+/**************************************************************************
+ * This file is part of the Nunchuk software (https://nunchuk.io/) *
+ * Copyright (C) 2020-2022 Enigmo *
+ * Copyright (C) 2022 Nunchuk *
+ * *
+ * This program is free software; you can redistribute it and/or *
+ * modify it under the terms of the GNU General Public License *
+ * as published by the Free Software Foundation; either version 3 *
+ * of the License, or (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program. If not, see . *
+ * *
+ **************************************************************************/
+import QtQuick 2.4
+import QtQuick.Controls 2.3
+import QtQuick.Controls 1.4
+import QtGraphicalEffects 1.12
+import QtQuick.Controls.Styles 1.4
+import HMIEVENTS 1.0
+import EWARNING 1.0
+import NUNCHUCKTYPE 1.0
+import DataPool 1.0
+import "../../../Components/origins"
+import "../../../Components/customizes"
+import "../../../Components/customizes/Chats"
+import "../../../Components/customizes/Texts"
+import "../../../Components/customizes/Buttons"
+import "../../../../localization/STR_QML.js" as STR
+
+QOnScreenContentTypeB {
+ id: _Message
+ width: popupWidth
+ height: popupHeight
+ anchors.centerIn: parent
+ label.text: STR.STR_QML_472
+ onCloseClicked: closeTo(NUNCHUCKTYPE.WALLET_TAB)
+ readonly property var roles: [
+ {id: "MASTER", name: STR.STR_QML_949 },
+ {id: "ADMIN", name: STR.STR_QML_950 },
+ {id: "KEYHOLDER", name: STR.STR_QML_951 },
+ {id: "KEYHOLDER_LIMITED", name: STR.STR_QML_952 },
+ {id: "FACILITATOR_ADMIN", name: STR.STR_QML_1396 },
+ {id: "OBSERVER", name: STR.STR_QML_953 },
+ {id: "NEW-MEMBER", name: STR.STR_QML_1403 }
+ ]
+ property int memberIndex: 0
+ property string memberRole: ""
+ property string memberEmail: ""
+ content: Item {
+ QListView {
+ id: _members
+ width: 539 + 24
+ height: 506
+ model: dashboardInfo.editMembers
+ clip: true
+ ScrollBar.vertical: ScrollBar { active: true }
+ spacing: 25
+ delegate: Loader {
+ sourceComponent: modelData.isNew ? _editNew : _edit
+ Component {
+ id: _edit
+ QEditMemberDelegate {
+ width: ListView.view.width - 24
+ member: modelData
+ onArrowClicked: {
+ memberIndex = index
+ memberRole = modelData.role
+ memberEmail = modelData.email_or_username
+ _editMemberSelectARole.open()
+ }
+ }
+ }
+ Component {
+ id: _editNew
+ QEditMemberNewMemberDelegate {
+ width: ListView.view.width - 24
+ member: modelData
+ onArrowClicked: {
+ memberIndex = index
+ memberRole = modelData.role
+ memberEmail = modelData.email_or_username
+ _editMemberSelectARole.open()
+ }
+ }
+ }
+
+ }
+ }
+ }
+ function replaceMember() {
+ var _input = {
+ type: "replace-new-member",
+ roleId: memberRole,
+ email_or_username: memberEmail,
+ indexMember: memberIndex
+ }
+ QMLHandle.notifySendEvent(EVT.EVT_EDIT_MEMBERS_ENTER_REQUEST, _input)
+ }
+ isShowLine: true
+ onPrevClicked: closeTo(NUNCHUCKTYPE.WALLET_TAB)
+ bottomRight: Row {
+ spacing: 12
+ QIconTextButton {
+ width: 154
+ height: 48
+ label: STR.STR_QML_386
+ icons: ["add-dark.svg", "add-dark.svg", "add-dark.svg","add-dark.svg"]
+ fontPixelSize: 16
+ iconSize: 16
+ type: eTypeB
+ onButtonClicked: {
+ var _input = {
+ type: "add-new-member",
+ roleId: "NEW-MEMBER",
+ }
+ QMLHandle.notifySendEvent(EVT.EVT_EDIT_MEMBERS_ENTER_REQUEST, _input)
+ }
+ }
+ QTextButton {
+ width: 66
+ height: 48
+ label.text: STR.STR_QML_835
+ label.font.pixelSize: 16
+ type: eTypeE
+ onButtonClicked: {
+ var _input = {
+ type: "save-member-changed"
+ }
+ QMLHandle.notifySendEvent(EVT.EVT_EDIT_MEMBERS_ENTER_REQUEST, _input)
+ }
+ }
+ }
+ QPopupEditMemberSelectARole {
+ id: _editMemberSelectARole
+ anchors.centerIn: parent
+ width: 600
+ height: 600
+ }
+}
+
diff --git a/Qml/Screens/OnlineMode/EditMembers/QPopupEditMemberSelectARole.qml b/Qml/Screens/OnlineMode/EditMembers/QPopupEditMemberSelectARole.qml
new file mode 100644
index 00000000..2f805fe8
--- /dev/null
+++ b/Qml/Screens/OnlineMode/EditMembers/QPopupEditMemberSelectARole.qml
@@ -0,0 +1,99 @@
+/**************************************************************************
+ * This file is part of the Nunchuk software (https://nunchuk.io/) *
+ * Copyright (C) 2020-2022 Enigmo *
+ * Copyright (C) 2022 Nunchuk *
+ * *
+ * This program is free software; you can redistribute it and/or *
+ * modify it under the terms of the GNU General Public License *
+ * as published by the Free Software Foundation; either version 3 *
+ * of the License, or (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program. If not, see . *
+ * *
+ **************************************************************************/
+import QtQuick 2.4
+import QtQuick.Controls 2.3
+import QtGraphicalEffects 1.12
+import Qt.labs.platform 1.1
+import HMIEVENTS 1.0
+import EWARNING 1.0
+import NUNCHUCKTYPE 1.0
+import DataPool 1.0
+import "../../../Components/origins"
+import "../../../Components/customizes"
+import "../../../Components/customizes/Chats"
+import "../../../Components/customizes/Texts"
+import "../../../Components/customizes/Buttons"
+import "../../../Components/customizes/QRCodes"
+import "../../../Components/customizes/Popups"
+import "../../../Components/customizes/services"
+import "../../../../localization/STR_QML.js" as STR
+
+
+QPopupEmpty {
+ id: _select_a_role
+ readonly property var roles: [
+ {id: "ADMIN", name: STR.STR_QML_950, des1: "", des2: STR.STR_QML_1397},
+ {id: "KEYHOLDER", name: STR.STR_QML_951, des1: "", des2: STR.STR_QML_1398},
+ {id: "KEYHOLDER_LIMITED", name: STR.STR_QML_952, des1: STR.STR_QML_1402, des2: STR.STR_QML_1399},
+ {id: "FACILITATOR_ADMIN", name: STR.STR_QML_1396, des1: "", des2: STR.STR_QML_1400},
+ {id: "OBSERVER", name: STR.STR_QML_953, des1: "", des2: STR.STR_QML_1401},
+ ]
+ property string option: ""
+ onOpened: {
+ option = memberRole
+ }
+ closePolicy:Popup.NoAutoClose
+ content: QOnScreenContentTypeB {
+ width: 600
+ height: 600
+ anchors.centerIn: parent
+ label.text: STR.STR_QML_1403
+ extraHeader: Item {}
+ onCloseClicked: { _select_a_role.close() }
+ content: Item {
+ anchors.fill: parent
+ QListView {
+ id: _list
+ width: 528
+ height: parent.height
+ model: roles
+ clip: true
+ spacing: 16
+ ScrollBar.vertical: ScrollBar { active: true }
+ delegate: QEditMemberSelectRoleDelegate {
+ width: parent.width - 18
+ }
+ }
+ }
+ isShowLine: true
+ onPrevClicked: { _select_a_role.close() }
+ bottomRight: QTextButton {
+ width: 66
+ height: 48
+ label.text: STR.STR_QML_835
+ label.font.pixelSize: 16
+ type: eTypeE
+ onButtonClicked: {
+ if (dashboardInfo.isDowngrade(memberEmail, option)) {
+ _info1.open()
+ } else {
+ memberRole = option
+ replaceMember()
+ _select_a_role.close()
+ }
+ }
+ }
+ }
+ QPopupInfo{
+ id:_info1
+ title: STR.STR_QML_339
+ contentText: STR.STR_QML_1404
+ }
+}
diff --git a/Qml/Screens/OnlineMode/Healths/QSavingAccountDelegate.qml b/Qml/Screens/OnlineMode/Healths/QSavingAccountDelegate.qml
index a526bc4c..cc3c1e0f 100644
--- a/Qml/Screens/OnlineMode/Healths/QSavingAccountDelegate.qml
+++ b/Qml/Screens/OnlineMode/Healths/QSavingAccountDelegate.qml
@@ -91,6 +91,7 @@ Rectangle {
label.font.pixelSize: 16
type: eTypeB
onButtonClicked: healthCheck()
+ enabled: AppModel.walletInfo.myRole !== "FACILITATOR_ADMIN"
}
QTextButton {
width: 200
diff --git a/Qml/Screens/OnlineMode/SCR_EDIT_MEMBERS.qml b/Qml/Screens/OnlineMode/SCR_EDIT_MEMBERS.qml
new file mode 100644
index 00000000..b995c008
--- /dev/null
+++ b/Qml/Screens/OnlineMode/SCR_EDIT_MEMBERS.qml
@@ -0,0 +1,67 @@
+/**************************************************************************
+ * This file is part of the Nunchuk software (https://nunchuk.io/) *
+ * Copyright (C) 2020-2022 Enigmo *
+ * Copyright (C) 2022 Nunchuk *
+ * *
+ * This program is free software; you can redistribute it and/or *
+ * modify it under the terms of the GNU General Public License *
+ * as published by the Free Software Foundation; either version 3 *
+ * of the License, or (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program. If not, see . *
+ * *
+ **************************************************************************/
+import QtQuick 2.4
+import QtQuick.Controls 2.3
+import QtGraphicalEffects 1.12
+import HMIEVENTS 1.0
+import EWARNING 1.0
+import NUNCHUCKTYPE 1.0
+import DataPool 1.0
+import "../../Components/origins"
+import "../../Components/customizes"
+import "../../Components/customizes/Chats"
+import "../../Components/customizes/Texts"
+import "../../Components/customizes/Buttons"
+import "../../Components/customizes/Signers"
+import "../OnlineMode/EditMembers"
+import "../../Components/customizes/services"
+import "../../../localization/STR_QML.js" as STR
+
+QScreen {
+ property var dashboardInfo: GroupWallet.dashboardInfo
+ property string config_flow: "edit_members"
+ readonly property var map_screens: [
+ {screen_name: "edit_members", screen_component: _edit_members},
+ {screen_name: "edit_members_success", screen_component: _edit_members_success},
+ ]
+
+ Loader {
+ width: popupWidth
+ height: popupHeight
+ anchors.centerIn: parent
+ sourceComponent: map_screens.find(function(e) {if (e.screen_name === config_flow) return true; else return false}).screen_component
+ }
+ Connections {
+ target: dashboardInfo
+ onEditMembersSuccessChanged: {
+ config_flow = "edit_members_success"
+ }
+ }
+ Component {
+ id: _edit_members
+ QEditMembers {}
+ }
+ Component {
+ id: _edit_members_success
+ QEditMemberSuccess {
+
+ }
+ }
+}
diff --git a/Qml/Screens/OnlineMode/SCR_HOME_ONLINE.qml b/Qml/Screens/OnlineMode/SCR_HOME_ONLINE.qml
index 03f95fc6..ddbd6f02 100644
--- a/Qml/Screens/OnlineMode/SCR_HOME_ONLINE.qml
+++ b/Qml/Screens/OnlineMode/SCR_HOME_ONLINE.qml
@@ -624,7 +624,7 @@ QScreen {
titleSuggest: STR.STR_QML_1251
content: STR.STR_QML_1252
height: 180
- icon:"qrc:/Images/Images/create-hot-wallet.png"
+ icon:"qrc:/Images/Images/person-add-24px.svg"
onBtnClicked: {
OnBoarding.state = "hotWallet"
QMLHandle.sendEvent(EVT.EVT_ONBOARDING_REQUEST)
diff --git a/Views/Common/ViewStates.h b/Views/Common/ViewStates.h
index 7017eb2f..523bfdec 100644
--- a/Views/Common/ViewStates.h
+++ b/Views/Common/ViewStates.h
@@ -52,6 +52,7 @@
#include "STATE_ID_SCR_DASHBOARD_ALERT_INFO.h"
#include "STATE_ID_SCR_DASHBOARD_ALERT_SUCCESS.h"
#include "STATE_ID_SCR_DUMMY_TRANSACTION_INFO.h"
+#include "STATE_ID_SCR_EDIT_MEMBERS.h"
#include "STATE_ID_SCR_EDIT_YOUR_INHERITANCE_PLAN.h"
#include "STATE_ID_SCR_ENTER_BACKUP_PASSWORD.h"
#include "STATE_ID_SCR_HEALTH_CHECK_STARTING.h"
diff --git a/Views/Common/ViewsDefines.h b/Views/Common/ViewsDefines.h
index 6b09e155..435ab49b 100644
--- a/Views/Common/ViewsDefines.h
+++ b/Views/Common/ViewsDefines.h
@@ -111,6 +111,7 @@ namespace OnlineMode {
#define SCR_RECURRING_PAYMENTS "qrc:/Qml/Screens/OnlineMode/SCR_RECURRING_PAYMENTS.qml"
#define SCR_REPLACE_KEYS "qrc:/Qml/Screens/OnlineMode/SCR_REPLACE_KEYS.qml"
#define SCR_SIGN_IN_VIA_XPUB "qrc:/Qml/Screens/OnlineMode/SCR_SIGN_IN_VIA_XPUB.qml"
+#define SCR_EDIT_MEMBERS "qrc:/Qml/Screens/OnlineMode/SCR_EDIT_MEMBERS.qml"
}
namespace Popups {
diff --git a/Views/Common/ViewsEnums.h b/Views/Common/ViewsEnums.h
index b36c1911..c14257dd 100644
--- a/Views/Common/ViewsEnums.h
+++ b/Views/Common/ViewsEnums.h
@@ -113,6 +113,7 @@ class E: public QObject
Q_ENUMS(EVT_STATE_ID_SCR_CHANGE_EMAIL)
Q_ENUMS(EVT_STATE_ID_SCR_REPLACE_SELECT_KEY)
Q_ENUMS(EVT_STATE_ID_SCR_REPLACE_KEYS)
+ Q_ENUMS(EVT_STATE_ID_SCR_EDIT_MEMBERS)
Q_ENUMS(EVT_STATE_ID_SCR_SIGN_IN_VIA_XPUB)
public:
enum EVT_STATE_ID_REGISTED
@@ -204,858 +205,868 @@ class E: public QObject
STATE_ID_SCR_CHANGE_EMAIL , // 84
STATE_ID_SCR_REPLACE_SELECT_KEY , // 85
STATE_ID_SCR_REPLACE_KEYS , // 86
- STATE_ID_SCR_SIGN_IN_VIA_XPUB , // 87
- EVT_STATE_ID_REGISTED_MAX , // 88
+ STATE_ID_SCR_EDIT_MEMBERS , // 87
+ STATE_ID_SCR_SIGN_IN_VIA_XPUB , // 88
+ EVT_STATE_ID_REGISTED_MAX , // 89
};
enum EVT_STATE_ID_ROOT
{
- EVT_STATE_ID_ROOT_MIN=EVT_STATE_ID_REGISTED_MAX+1, // 89
- EVT_STARTING_APPLICATION_LOCALMODE , // 90
- EVT_STARTING_APPLICATION_ONLINEMODE , // 91
- EVT_STARTING_APPLICATION_ONLINE_HWL , // 92
- EVT_SETTING_ACCOUNT_CHANGE_PASSWORD , // 93
- EVT_ONS_CLOSE_ALL_REQUEST , // 94
- EVT_ROOT_SIGN_IN_PRIMARY_KEY_REQUEST , // 95
- EVT_ROOT_CREATE_PRIMARY_KEY_REQUEST , // 96
- EVT_GOTO_HOME_WALLET_TAB , // 97
- EVT_ONS_CLOSE_REQUEST , // 98
- EVT_LOGIN_DB_REQUEST , // 99
- EVT_ROOT_PROMT_PIN , // 100
- EVT_ROOT_PROMT_PASSPHRASE , // 101
- EVT_LOGIN_MATRIX_REQUEST , // 102
- EVT_GOTO_HOME_CHAT_TAB , // 103
- EVT_ONLINE_ONS_CLOSE_REQUEST , // 104
- EVT_SHOW_TOAST_MESSAGE , // 105
- EVT_ROOT_UPDATE_PROFILE , // 106
- EVT_SHOW_CREATE_ACCOUNT_REQUEST , // 107
- EVT_GOTO_APP_SETTINGS_TAB , // 108
- EVT_SIGN_IN_REQUEST , // 109
- EVT_ROOT_ENTRY_PRIMARY_KEY_REQUEST , // 110
- EVT_LOGIN_WITH_SOFTWARE_KEY_REQUEST , // 111
- EVT_GOTO_SERVICE_SETTING_TAB , // 112
- EVT_CLOSE_TO_SERVICE_SETTINGS_REQUEST , // 113
- EVT_NUNCHUK_LOGIN_SUCCEEDED , // 114
- EVT_HEALTH_CHECK_STARTING_REQUEST , // 115
- EVT_DUMMY_TRANSACTION_INFO_REQUEST , // 116
- EVT_DASHBOARD_ALERT_SUCCESS_REQUEST , // 117
- EVT_SHARE_YOUR_SECRET_REQUEST , // 118
- EVT_REENTER_YOUR_PASSWORD_REQUEST , // 119
- EVT_ONBOARDING_REQUEST , // 120
- EVT_REPLACE_SELECT_KEY_REQUEST , // 121
- EVT_SIGN_IN_VIA_XPUB_REQUEST , // 122
- EVT_STATE_ID_ROOT_MAX , // 123
+ EVT_STATE_ID_ROOT_MIN=EVT_STATE_ID_REGISTED_MAX+1, // 90
+ EVT_STARTING_APPLICATION_LOCALMODE , // 91
+ EVT_STARTING_APPLICATION_ONLINEMODE , // 92
+ EVT_STARTING_APPLICATION_ONLINE_HWL , // 93
+ EVT_SETTING_ACCOUNT_CHANGE_PASSWORD , // 94
+ EVT_ONS_CLOSE_ALL_REQUEST , // 95
+ EVT_ROOT_SIGN_IN_PRIMARY_KEY_REQUEST , // 96
+ EVT_ROOT_CREATE_PRIMARY_KEY_REQUEST , // 97
+ EVT_GOTO_HOME_WALLET_TAB , // 98
+ EVT_ONS_CLOSE_REQUEST , // 99
+ EVT_LOGIN_DB_REQUEST , // 100
+ EVT_ROOT_PROMT_PIN , // 101
+ EVT_ROOT_PROMT_PASSPHRASE , // 102
+ EVT_LOGIN_MATRIX_REQUEST , // 103
+ EVT_GOTO_HOME_CHAT_TAB , // 104
+ EVT_ONLINE_ONS_CLOSE_REQUEST , // 105
+ EVT_SHOW_TOAST_MESSAGE , // 106
+ EVT_ROOT_UPDATE_PROFILE , // 107
+ EVT_SHOW_CREATE_ACCOUNT_REQUEST , // 108
+ EVT_GOTO_APP_SETTINGS_TAB , // 109
+ EVT_SIGN_IN_REQUEST , // 110
+ EVT_ROOT_ENTRY_PRIMARY_KEY_REQUEST , // 111
+ EVT_LOGIN_WITH_SOFTWARE_KEY_REQUEST , // 112
+ EVT_GOTO_SERVICE_SETTING_TAB , // 113
+ EVT_CLOSE_TO_SERVICE_SETTINGS_REQUEST , // 114
+ EVT_NUNCHUK_LOGIN_SUCCEEDED , // 115
+ EVT_HEALTH_CHECK_STARTING_REQUEST , // 116
+ EVT_DUMMY_TRANSACTION_INFO_REQUEST , // 117
+ EVT_DASHBOARD_ALERT_SUCCESS_REQUEST , // 118
+ EVT_SHARE_YOUR_SECRET_REQUEST , // 119
+ EVT_REENTER_YOUR_PASSWORD_REQUEST , // 120
+ EVT_ONBOARDING_REQUEST , // 121
+ EVT_REPLACE_SELECT_KEY_REQUEST , // 122
+ EVT_EDIT_MEMBERS_REQUEST , // 123
+ EVT_SIGN_IN_VIA_XPUB_REQUEST , // 124
+ EVT_STATE_ID_ROOT_MAX , // 125
};
enum EVT_STATE_ID_SCR_HOME
{
- EVT_STATE_ID_SCR_HOME_MIN=EVT_STATE_ID_ROOT_MAX+1, // 124
- EVT_HOME_WALLET_SELECTED , // 125
- EVT_HOME_WALLET_COPY_ADDRESS , // 126
- EVT_HOME_SETTING_REQUEST , // 127
- EVT_HOME_DISPLAY_ADDRESS , // 128
- EVT_HOME_IMPORT_PSBT , // 129
- EVT_HOME_EXPORT_BSMS , // 130
- EVT_HOME_ADD_WALLET_REQUEST , // 131
- EVT_HOME_MASTER_SIGNER_INFO_REQUEST , // 132
- EVT_HOME_SEND_REQUEST , // 133
- EVT_HOME_RECEIVE_REQUEST , // 134
- EVT_HOME_TRANSACTION_HISTORY_REQUEST , // 135
- EVT_HOME_WALLET_INFO_REQUEST , // 136
- EVT_HOME_TRANSACTION_INFO_REQUEST , // 137
- EVT_HOME_REMOTE_SIGNER_INFO_REQUEST , // 138
- EVT_HOME_ADD_NEW_SIGNER_REQUEST , // 139
- EVT_HOME_COLDCARD_NFC_SIGNER_INFO_REQUEST , // 140
- EVT_ASK_HARDWARE_REQ , // 141
- EVT_EXIST_HARDWARE_REQ , // 142
- EVT_SHOW_GROUP_WALLET_CONFIG_REQUEST , // 143
- EVT_KEY_HEALTH_CHECK_STATUS_REQUEST , // 144
- EVT_RECURRING_PAYMENTS_REQUEST , // 145
- EVT_ADD_HARDWARE_REQUEST , // 146
- EVT_ADD_SOFTWARE_SIGNER_RESULT , // 147
- EVT_REPLACE_KEYS_REQUEST , // 148
- EVT_STATE_ID_SCR_HOME_MAX , // 149
+ EVT_STATE_ID_SCR_HOME_MIN=EVT_STATE_ID_ROOT_MAX+1, // 126
+ EVT_HOME_WALLET_SELECTED , // 127
+ EVT_HOME_WALLET_COPY_ADDRESS , // 128
+ EVT_HOME_SETTING_REQUEST , // 129
+ EVT_HOME_DISPLAY_ADDRESS , // 130
+ EVT_HOME_IMPORT_PSBT , // 131
+ EVT_HOME_EXPORT_BSMS , // 132
+ EVT_HOME_ADD_WALLET_REQUEST , // 133
+ EVT_HOME_MASTER_SIGNER_INFO_REQUEST , // 134
+ EVT_HOME_SEND_REQUEST , // 135
+ EVT_HOME_RECEIVE_REQUEST , // 136
+ EVT_HOME_TRANSACTION_HISTORY_REQUEST , // 137
+ EVT_HOME_WALLET_INFO_REQUEST , // 138
+ EVT_HOME_TRANSACTION_INFO_REQUEST , // 139
+ EVT_HOME_REMOTE_SIGNER_INFO_REQUEST , // 140
+ EVT_HOME_ADD_NEW_SIGNER_REQUEST , // 141
+ EVT_HOME_COLDCARD_NFC_SIGNER_INFO_REQUEST , // 142
+ EVT_ASK_HARDWARE_REQ , // 143
+ EVT_EXIST_HARDWARE_REQ , // 144
+ EVT_SHOW_GROUP_WALLET_CONFIG_REQUEST , // 145
+ EVT_KEY_HEALTH_CHECK_STATUS_REQUEST , // 146
+ EVT_RECURRING_PAYMENTS_REQUEST , // 147
+ EVT_ADD_HARDWARE_REQUEST , // 148
+ EVT_ADD_SOFTWARE_SIGNER_RESULT , // 149
+ EVT_REPLACE_KEYS_REQUEST , // 150
+ EVT_STATE_ID_SCR_HOME_MAX , // 151
};
enum EVT_STATE_ID_SCR_ADD_WALLET
{
- EVT_STATE_ID_SCR_ADD_WALLET_MIN=EVT_STATE_ID_SCR_HOME_MAX+1, // 150
- EVT_ADD_WALLET_IMPORT , // 151
- EVT_ADD_WALLET_BACK_REQUEST , // 152
- EVT_ADD_WALLET_SIGNER_CONFIGURATION_REQUEST , // 153
- EVT_ADD_WALLET_IMPORT_SUCCEED , // 154
- EVT_STATE_ID_SCR_ADD_WALLET_MAX , // 155
+ EVT_STATE_ID_SCR_ADD_WALLET_MIN=EVT_STATE_ID_SCR_HOME_MAX+1, // 152
+ EVT_ADD_WALLET_IMPORT , // 153
+ EVT_ADD_WALLET_BACK_REQUEST , // 154
+ EVT_ADD_WALLET_SIGNER_CONFIGURATION_REQUEST , // 155
+ EVT_ADD_WALLET_IMPORT_SUCCEED , // 156
+ EVT_STATE_ID_SCR_ADD_WALLET_MAX , // 157
};
enum EVT_STATE_ID_SCR_ADD_HARDWARE_SIGNER
{
- EVT_STATE_ID_SCR_ADD_HARDWARE_SIGNER_MIN=EVT_STATE_ID_SCR_ADD_WALLET_MAX+1, // 156
- EVT_ADD_HARDWARE_SIGNER_ADD_MASTER_SIGNER_REQUEST , // 157
- EVT_ADD_HARDWARE_SIGNER_REFRESH_REQUEST , // 158
- EVT_ADD_HARDWARE_SIGNER_ADD_REMOTE_SIGNER_REQUEST , // 159
- EVT_ADD_HARDWARE_SIGNER_PROMT_PIN_REQUEST , // 160
- EVT_ADD_HARDWARE_SIGNER_SEND_PIN_REQUEST , // 161
- EVT_ADD_MASTER_SIGNER_RESULT , // 162
- EVT_ADD_REMOTE_SIGNER_RESULT , // 163
- EVT_ADD_HARDWARE_SIGNER_BACK_REQUEST , // 164
- EVT_STATE_ID_SCR_ADD_HARDWARE_SIGNER_MAX , // 165
+ EVT_STATE_ID_SCR_ADD_HARDWARE_SIGNER_MIN=EVT_STATE_ID_SCR_ADD_WALLET_MAX+1, // 158
+ EVT_ADD_HARDWARE_SIGNER_ADD_MASTER_SIGNER_REQUEST , // 159
+ EVT_ADD_HARDWARE_SIGNER_REFRESH_REQUEST , // 160
+ EVT_ADD_HARDWARE_SIGNER_ADD_REMOTE_SIGNER_REQUEST , // 161
+ EVT_ADD_HARDWARE_SIGNER_PROMT_PIN_REQUEST , // 162
+ EVT_ADD_HARDWARE_SIGNER_SEND_PIN_REQUEST , // 163
+ EVT_ADD_MASTER_SIGNER_RESULT , // 164
+ EVT_ADD_REMOTE_SIGNER_RESULT , // 165
+ EVT_ADD_HARDWARE_SIGNER_BACK_REQUEST , // 166
+ EVT_STATE_ID_SCR_ADD_HARDWARE_SIGNER_MAX , // 167
};
enum EVT_STATE_ID_SCR_MASTER_SIGNER_INFO
{
- EVT_STATE_ID_SCR_MASTER_SIGNER_INFO_MIN=EVT_STATE_ID_SCR_ADD_HARDWARE_SIGNER_MAX+1, // 166
- EVT_MASTER_SIGNER_INFO_EDIT_NAME , // 167
- EVT_MASTER_SIGNER_INFO_HEALTH_CHECK , // 168
- EVT_MASTER_SIGNER_INFO_REMOVE_REQUEST , // 169
- EVT_MASTER_SIGNER_INFO_PROMT_PIN , // 170
- EVT_MASTER_SIGNER_INFO_SEND_PIN , // 171
- EVT_MASTER_SIGNER_INFO_SEND_PASSPHRASE , // 172
- EVT_MASTER_SIGNER_INFO_GET_XPUBS , // 173
- EVT_MASTER_SIGNER_INFO_BACK_REQUEST , // 174
- EVT_MASTER_SIGNER_INFO_BACK_WALLET_INFO , // 175
- EVT_STATE_ID_SCR_MASTER_SIGNER_INFO_MAX , // 176
+ EVT_STATE_ID_SCR_MASTER_SIGNER_INFO_MIN=EVT_STATE_ID_SCR_ADD_HARDWARE_SIGNER_MAX+1, // 168
+ EVT_MASTER_SIGNER_INFO_EDIT_NAME , // 169
+ EVT_MASTER_SIGNER_INFO_HEALTH_CHECK , // 170
+ EVT_MASTER_SIGNER_INFO_REMOVE_REQUEST , // 171
+ EVT_MASTER_SIGNER_INFO_PROMT_PIN , // 172
+ EVT_MASTER_SIGNER_INFO_SEND_PIN , // 173
+ EVT_MASTER_SIGNER_INFO_SEND_PASSPHRASE , // 174
+ EVT_MASTER_SIGNER_INFO_GET_XPUBS , // 175
+ EVT_MASTER_SIGNER_INFO_BACK_REQUEST , // 176
+ EVT_MASTER_SIGNER_INFO_BACK_WALLET_INFO , // 177
+ EVT_STATE_ID_SCR_MASTER_SIGNER_INFO_MAX , // 178
};
enum EVT_STATE_ID_SCR_ADD_WALLET_SIGNER_CONFIGURATION
{
- EVT_STATE_ID_SCR_ADD_WALLET_SIGNER_CONFIGURATION_MIN=EVT_STATE_ID_SCR_MASTER_SIGNER_INFO_MAX+1, // 177
- EVT_SIGNER_CONFIGURATION_SELECT_MASTER_SIGNER , // 178
- EVT_SIGNER_CONFIGURATION_REMOVE_SIGNER , // 179
- EVT_SIGNER_CONFIGURATION_SELECT_REMOTE_SIGNER , // 180
- EVT_SIGNER_CONFIGURATION_MASTER_SIGNER_SEND_PASSPHRASE , // 181
- EVT_SIGNER_CONFIGURATION_TRY_REVIEW , // 182
- EVT_ADD_WALLET_SIGNER_CONFIGURATION_BACK , // 183
- EVT_ADD_WALLET_SIGNER_CONFIGURATION_REVIEW , // 184
- EVT_ADD_SIGNER_TO_WALLET_REQUEST , // 185
- EVT_STATE_ID_SCR_ADD_WALLET_SIGNER_CONFIGURATION_MAX , // 186
+ EVT_STATE_ID_SCR_ADD_WALLET_SIGNER_CONFIGURATION_MIN=EVT_STATE_ID_SCR_MASTER_SIGNER_INFO_MAX+1, // 179
+ EVT_SIGNER_CONFIGURATION_SELECT_MASTER_SIGNER , // 180
+ EVT_SIGNER_CONFIGURATION_REMOVE_SIGNER , // 181
+ EVT_SIGNER_CONFIGURATION_SELECT_REMOTE_SIGNER , // 182
+ EVT_SIGNER_CONFIGURATION_MASTER_SIGNER_SEND_PASSPHRASE , // 183
+ EVT_SIGNER_CONFIGURATION_TRY_REVIEW , // 184
+ EVT_ADD_WALLET_SIGNER_CONFIGURATION_BACK , // 185
+ EVT_ADD_WALLET_SIGNER_CONFIGURATION_REVIEW , // 186
+ EVT_ADD_SIGNER_TO_WALLET_REQUEST , // 187
+ EVT_STATE_ID_SCR_ADD_WALLET_SIGNER_CONFIGURATION_MAX , // 188
};
enum EVT_STATE_ID_SCR_RECEIVE
{
- EVT_STATE_ID_SCR_RECEIVE_MIN=EVT_STATE_ID_SCR_ADD_WALLET_SIGNER_CONFIGURATION_MAX+1, // 187
- EVT_BTN_GEN_NEW_ADDRESS , // 188
- EVT_RECEIVE_COPY_ADDRESS , // 189
- EVT_RECEIVE_SET_QUICK_RECEIVE_ADDRESS , // 190
- EVT_RECEIVE_DISPLAY_ADDRESS , // 191
- EVT_RECEIVE_ADDRESS_BALANCE , // 192
- EVT_RECEIVE_BACK_REQUEST , // 193
- EVT_STATE_ID_SCR_RECEIVE_MAX , // 194
+ EVT_STATE_ID_SCR_RECEIVE_MIN=EVT_STATE_ID_SCR_ADD_WALLET_SIGNER_CONFIGURATION_MAX+1, // 189
+ EVT_BTN_GEN_NEW_ADDRESS , // 190
+ EVT_RECEIVE_COPY_ADDRESS , // 191
+ EVT_RECEIVE_SET_QUICK_RECEIVE_ADDRESS , // 192
+ EVT_RECEIVE_DISPLAY_ADDRESS , // 193
+ EVT_RECEIVE_ADDRESS_BALANCE , // 194
+ EVT_RECEIVE_BACK_REQUEST , // 195
+ EVT_STATE_ID_SCR_RECEIVE_MAX , // 196
};
enum EVT_STATE_ID_SCR_SEND
{
- EVT_STATE_ID_SCR_SEND_MIN=EVT_STATE_ID_SCR_RECEIVE_MAX+1, // 195
- EVT_SEND_ADD_DESTINATION_REQUEST , // 196
- EVT_SEND_CREATE_TRANSACTION_REQUEST , // 197
- EVT_SEND_BACK_REQUEST , // 198
- EVT_SEND_CREATE_TRANSACTION_SUCCEED , // 199
- EVT_SEND_BACK_HOME_SHARED_WL , // 200
- EVT_STATE_ID_SCR_SEND_MAX , // 201
+ EVT_STATE_ID_SCR_SEND_MIN=EVT_STATE_ID_SCR_RECEIVE_MAX+1, // 197
+ EVT_SEND_ADD_DESTINATION_REQUEST , // 198
+ EVT_SEND_CREATE_TRANSACTION_REQUEST , // 199
+ EVT_SEND_BACK_REQUEST , // 200
+ EVT_SEND_CREATE_TRANSACTION_SUCCEED , // 201
+ EVT_SEND_BACK_HOME_SHARED_WL , // 202
+ EVT_STATE_ID_SCR_SEND_MAX , // 203
};
enum EVT_STATE_ID_SCR_CREATE_TRANSACTION
{
- EVT_STATE_ID_SCR_CREATE_TRANSACTION_MIN=EVT_STATE_ID_SCR_SEND_MAX+1, // 202
- EVT_CREATE_TRANSACTION_MAKE_DRAFT_TX , // 203
- EVT_CREATE_TRANSACTION_SAVE_REQUEST , // 204
- EVT_CREATE_TRANSACTION_UTXO_SORT_REQUEST , // 205
- EVT_CREATE_TRANSACTION_SIGN_REQUEST , // 206
- EVT_CREATE_TRANSACTION_BACK_REQUEST , // 207
- EVT_CREATE_TRANSACTION_SIGN_SUCCEED , // 208
- EVR_CREATE_TRANSACTION_BACK_UTXO_CONSILIDATE , // 209
- EVT_STATE_ID_SCR_CREATE_TRANSACTION_MAX , // 210
+ EVT_STATE_ID_SCR_CREATE_TRANSACTION_MIN=EVT_STATE_ID_SCR_SEND_MAX+1, // 204
+ EVT_CREATE_TRANSACTION_MAKE_DRAFT_TX , // 205
+ EVT_CREATE_TRANSACTION_SAVE_REQUEST , // 206
+ EVT_CREATE_TRANSACTION_UTXO_SORT_REQUEST , // 207
+ EVT_CREATE_TRANSACTION_SIGN_REQUEST , // 208
+ EVT_CREATE_TRANSACTION_BACK_REQUEST , // 209
+ EVT_CREATE_TRANSACTION_SIGN_SUCCEED , // 210
+ EVR_CREATE_TRANSACTION_BACK_UTXO_CONSILIDATE , // 211
+ EVT_STATE_ID_SCR_CREATE_TRANSACTION_MAX , // 212
};
enum EVT_STATE_ID_SCR_TRANSACTION_INFO
{
- EVT_STATE_ID_SCR_TRANSACTION_INFO_MIN=EVT_STATE_ID_SCR_CREATE_TRANSACTION_MAX+1, // 211
- EVT_TRANSACTION_SIGN_REQUEST , // 212
- EVT_TRANSACTION_EXPORT_REQUEST , // 213
- EVT_TRANSACTION_EXPORT_QRCODE , // 214
- EVT_TRANSACTION_IMPORT_REQUEST , // 215
- EVT_TRANSACTION_IMPORT_QRCODE , // 216
- EVT_TRANSACTION_BROADCAST_REQUEST , // 217
- EVT_TRANSACTION_SET_MEMO_REQUEST , // 218
- EVT_TRANSACTION_SCAN_DEVICE_REQUEST , // 219
- EVT_TRANSACTION_REMOVE_REQUEST , // 220
- EVT_TRANSACTION_SEND_PIN_REQUEST , // 221
- EVT_TRANSACTION_PROMT_PIN_REQUEST , // 222
- EVT_TRANSACTION_VERIFY_ADDRESS , // 223
- EVT_TRANSACTION_SEND_PASSPHRASE , // 224
- EVT_TRANSACTION_CANCEL_REQUEST , // 225
- EVT_TRANSACTION_INFO_BACK_REQUEST , // 226
- EVT_TRANSACTION_INFO_BACK_TO_CREATE_TRANSACTION_REQUEST , // 227
- EVT_TRANSACTION_REPLACE_BY_FEE_REQUEST , // 228
- EVT_TRANSACTION_INFO_BACK_UTXO_INFO , // 229
- EVT_STATE_ID_SCR_TRANSACTION_INFO_MAX , // 230
+ EVT_STATE_ID_SCR_TRANSACTION_INFO_MIN=EVT_STATE_ID_SCR_CREATE_TRANSACTION_MAX+1, // 213
+ EVT_TRANSACTION_SIGN_REQUEST , // 214
+ EVT_TRANSACTION_EXPORT_REQUEST , // 215
+ EVT_TRANSACTION_EXPORT_QRCODE , // 216
+ EVT_TRANSACTION_IMPORT_REQUEST , // 217
+ EVT_TRANSACTION_IMPORT_QRCODE , // 218
+ EVT_TRANSACTION_BROADCAST_REQUEST , // 219
+ EVT_TRANSACTION_SET_MEMO_REQUEST , // 220
+ EVT_TRANSACTION_SCAN_DEVICE_REQUEST , // 221
+ EVT_TRANSACTION_REMOVE_REQUEST , // 222
+ EVT_TRANSACTION_SEND_PIN_REQUEST , // 223
+ EVT_TRANSACTION_PROMT_PIN_REQUEST , // 224
+ EVT_TRANSACTION_VERIFY_ADDRESS , // 225
+ EVT_TRANSACTION_SEND_PASSPHRASE , // 226
+ EVT_TRANSACTION_CANCEL_REQUEST , // 227
+ EVT_TRANSACTION_INFO_BACK_REQUEST , // 228
+ EVT_TRANSACTION_INFO_BACK_TO_CREATE_TRANSACTION_REQUEST , // 229
+ EVT_TRANSACTION_REPLACE_BY_FEE_REQUEST , // 230
+ EVT_TRANSACTION_INFO_BACK_UTXO_INFO , // 231
+ EVT_STATE_ID_SCR_TRANSACTION_INFO_MAX , // 232
};
enum EVT_STATE_ID_SCR_TRANSACTION_HISTORY
{
- EVT_STATE_ID_SCR_TRANSACTION_HISTORY_MIN=EVT_STATE_ID_SCR_TRANSACTION_INFO_MAX+1, // 231
- EVT_TRANSACTION_HISTORY_SORT_REQUEST , // 232
- EVT_TRANSACTION_HISTORY_BACK_REQUEST , // 233
- EVT_TRANSACTION_INFO_ITEM_SELECTED , // 234
- EVT_STATE_ID_SCR_TRANSACTION_HISTORY_MAX , // 235
+ EVT_STATE_ID_SCR_TRANSACTION_HISTORY_MIN=EVT_STATE_ID_SCR_TRANSACTION_INFO_MAX+1, // 233
+ EVT_TRANSACTION_HISTORY_SORT_REQUEST , // 234
+ EVT_TRANSACTION_HISTORY_BACK_REQUEST , // 235
+ EVT_TRANSACTION_INFO_ITEM_SELECTED , // 236
+ EVT_STATE_ID_SCR_TRANSACTION_HISTORY_MAX , // 237
};
enum EVT_STATE_ID_SCR_APP_SETTINGS
{
- EVT_STATE_ID_SCR_APP_SETTINGS_MIN=EVT_STATE_ID_SCR_TRANSACTION_HISTORY_MAX+1, // 236
- EVT_APP_SETTING_DELETE_ACCOUNT_REQUEST , // 237
- EVT_APP_SETTING_CHANGE_PASSPHRASE , // 238
- EVT_APP_SETTING_REQUEST_RESTART , // 239
- EVT_APP_SETTING_REQUEST_RESCAN , // 240
- EVT_APP_SETTING_DELETE_PRIMARY_KEY_ACCOUNT_REQUEST , // 241
- EVT_APP_SETTING_BACK_REQUEST , // 242
- EVT_APP_SETTING_BACK_TO_ONLINE_MODE , // 243
- EVT_SHOW_REPLACE_PRIMARY_KEY_REQUEST , // 244
- EVT_SELECT_SERVER_REQUEST , // 245
- EVT_CHANGE_EMAIL_REQUEST , // 246
- EVT_STATE_ID_SCR_APP_SETTINGS_MAX , // 247
+ EVT_STATE_ID_SCR_APP_SETTINGS_MIN=EVT_STATE_ID_SCR_TRANSACTION_HISTORY_MAX+1, // 238
+ EVT_APP_SETTING_DELETE_ACCOUNT_REQUEST , // 239
+ EVT_APP_SETTING_CHANGE_PASSPHRASE , // 240
+ EVT_APP_SETTING_REQUEST_RESTART , // 241
+ EVT_APP_SETTING_REQUEST_RESCAN , // 242
+ EVT_APP_SETTING_DELETE_PRIMARY_KEY_ACCOUNT_REQUEST , // 243
+ EVT_APP_SETTING_BACK_REQUEST , // 244
+ EVT_APP_SETTING_BACK_TO_ONLINE_MODE , // 245
+ EVT_SHOW_REPLACE_PRIMARY_KEY_REQUEST , // 246
+ EVT_SELECT_SERVER_REQUEST , // 247
+ EVT_CHANGE_EMAIL_REQUEST , // 248
+ EVT_STATE_ID_SCR_APP_SETTINGS_MAX , // 249
};
enum EVT_STATE_ID_SCR_ADD_REMOTE_SIGNER_RESULT
{
- EVT_STATE_ID_SCR_ADD_REMOTE_SIGNER_RESULT_MIN=EVT_STATE_ID_SCR_APP_SETTINGS_MAX+1, // 248
- EVT_REMOTE_SIGNER_RESULT_HEALTH_CHECK , // 249
- EVT_REMOTE_SIGNER_RESULT_EDIT_NAME , // 250
- EVT_REMOTE_SIGNER_RESULT_IMPORT_SIGNATURE , // 251
- EVT_REMOTE_SIGNER_RESULT_EXPORT_MESSAGE , // 252
- EVT_REMOTE_SIGNER_RESULT_GET_XPUBS , // 253
- EVT_REMOTE_SIGNER_RESULT_DELETE_REQUEST , // 254
- EVT_REMOTE_SIGNER_RESULT_CONFIRM_ADD_TO_WALLET_SIGNER_CONFIG , // 255
- EVT_STATE_ID_SCR_ADD_REMOTE_SIGNER_RESULT_MAX , // 256
+ EVT_STATE_ID_SCR_ADD_REMOTE_SIGNER_RESULT_MIN=EVT_STATE_ID_SCR_APP_SETTINGS_MAX+1, // 250
+ EVT_REMOTE_SIGNER_RESULT_HEALTH_CHECK , // 251
+ EVT_REMOTE_SIGNER_RESULT_EDIT_NAME , // 252
+ EVT_REMOTE_SIGNER_RESULT_IMPORT_SIGNATURE , // 253
+ EVT_REMOTE_SIGNER_RESULT_EXPORT_MESSAGE , // 254
+ EVT_REMOTE_SIGNER_RESULT_GET_XPUBS , // 255
+ EVT_REMOTE_SIGNER_RESULT_DELETE_REQUEST , // 256
+ EVT_REMOTE_SIGNER_RESULT_CONFIRM_ADD_TO_WALLET_SIGNER_CONFIG , // 257
+ EVT_STATE_ID_SCR_ADD_REMOTE_SIGNER_RESULT_MAX , // 258
};
enum EVT_STATE_ID_SCR_UTXOS
{
- EVT_STATE_ID_SCR_UTXOS_MIN=EVT_STATE_ID_SCR_ADD_REMOTE_SIGNER_RESULT_MAX+1, // 257
- EVT_UTXOS_SORT_REQUEST , // 258
- EVT_UTXOS_BACK_REQUEST , // 259
- EVT_UTXOS_CONSOLIDATE_REQUEST , // 260
- EVT_UTXOS_ITEM_SELECTED , // 261
- EVT_UTXO_OUTPUT_BACK_SHARED_WALLET , // 262
- EVT_STATE_ID_SCR_UTXOS_MAX , // 263
+ EVT_STATE_ID_SCR_UTXOS_MIN=EVT_STATE_ID_SCR_ADD_REMOTE_SIGNER_RESULT_MAX+1, // 259
+ EVT_UTXOS_SORT_REQUEST , // 260
+ EVT_UTXOS_BACK_REQUEST , // 261
+ EVT_UTXOS_CONSOLIDATE_REQUEST , // 262
+ EVT_UTXOS_ITEM_SELECTED , // 263
+ EVT_UTXO_OUTPUT_BACK_SHARED_WALLET , // 264
+ EVT_STATE_ID_SCR_UTXOS_MAX , // 265
};
enum EVT_STATE_ID_SCR_WALLET_INFO
{
- EVT_STATE_ID_SCR_WALLET_INFO_MIN=EVT_STATE_ID_SCR_UTXOS_MAX+1, // 264
- EVT_WALLET_INFO_EDIT_NAME , // 265
- EVT_WALLET_INFO_REMOVE , // 266
- EVT_WALLET_INFO_EXPORT_DB , // 267
- EVT_WALLET_INFO_EXPORT_CSV , // 268
- EVT_WALLET_INFO_EXPORT_DESCRIPTOR , // 269
- EVT_WALLET_INFO_EXPORT_COLDCARD , // 270
- EVT_WALLET_INFO_EXPORT_QRCODE , // 271
- EVT_WALLET_INFO_SIGNER_INFO_REQUEST , // 272
- EVT_WALLET_INFO_EDIT_DESCRIPTION , // 273
- EVT_WALLET_INFO_IMPORT_PSBT , // 274
- EVT_WALLET_INFO_REFRESH_WALLET_REQUEST , // 275
- EVT_WALLET_INFO_GAP_LIMIT_REQUEST , // 276
- EVT_WALLET_INFO_BACK_REQUEST , // 277
- EVT_WALLET_INFO_UTXOS_REQUEST , // 278
- EVT_WALLET_INFO_CHANGE_ADDRESS_REQUEST , // 279
- EVT_WALLET_INFO_MASTER_SIGNER_INFO_REQUEST , // 280
- EVT_WALLET_INFO_REMOTE_SIGNER_INFO_REQUEST , // 281
- EVT_STATE_ID_SCR_WALLET_INFO_MAX , // 282
+ EVT_STATE_ID_SCR_WALLET_INFO_MIN=EVT_STATE_ID_SCR_UTXOS_MAX+1, // 266
+ EVT_WALLET_INFO_EDIT_NAME , // 267
+ EVT_WALLET_INFO_REMOVE , // 268
+ EVT_WALLET_INFO_EXPORT_DB , // 269
+ EVT_WALLET_INFO_EXPORT_CSV , // 270
+ EVT_WALLET_INFO_EXPORT_DESCRIPTOR , // 271
+ EVT_WALLET_INFO_EXPORT_COLDCARD , // 272
+ EVT_WALLET_INFO_EXPORT_QRCODE , // 273
+ EVT_WALLET_INFO_SIGNER_INFO_REQUEST , // 274
+ EVT_WALLET_INFO_EDIT_DESCRIPTION , // 275
+ EVT_WALLET_INFO_IMPORT_PSBT , // 276
+ EVT_WALLET_INFO_REFRESH_WALLET_REQUEST , // 277
+ EVT_WALLET_INFO_GAP_LIMIT_REQUEST , // 278
+ EVT_WALLET_INFO_BACK_REQUEST , // 279
+ EVT_WALLET_INFO_UTXOS_REQUEST , // 280
+ EVT_WALLET_INFO_CHANGE_ADDRESS_REQUEST , // 281
+ EVT_WALLET_INFO_MASTER_SIGNER_INFO_REQUEST , // 282
+ EVT_WALLET_INFO_REMOTE_SIGNER_INFO_REQUEST , // 283
+ EVT_STATE_ID_SCR_WALLET_INFO_MAX , // 284
};
enum EVT_STATE_ID_SCR_ADD_WALLET_CONFIRMATION
{
- EVT_STATE_ID_SCR_ADD_WALLET_CONFIRMATION_MIN=EVT_STATE_ID_SCR_WALLET_INFO_MAX+1, // 283
- EVT_ADD_WALLET_CONFIRM_CREATE , // 284
- EVT_ADD_WALLET_TOP_UP_XPUBS_REQUEST , // 285
- EVT_ADD_WALLET_DOWNLOAD_DESCRIPTOR , // 286
- EVT_ADD_WALLET_GENERATE_SIGNER , // 287
- EVT_ADD_WALLET_GET_WALLET_DESCRIPTOR , // 288
- EVT_ADD_WALLET_COPY_WALLET_DESCRIPTOR , // 289
- EVT_ADD_WALLET_CONFIRMATION_BACK_REQUEST , // 290
- EVT_ADD_WALLET_SUCCESSFULLY , // 291
- EVT_STATE_ID_SCR_ADD_WALLET_CONFIRMATION_MAX , // 292
+ EVT_STATE_ID_SCR_ADD_WALLET_CONFIRMATION_MIN=EVT_STATE_ID_SCR_WALLET_INFO_MAX+1, // 285
+ EVT_ADD_WALLET_CONFIRM_CREATE , // 286
+ EVT_ADD_WALLET_TOP_UP_XPUBS_REQUEST , // 287
+ EVT_ADD_WALLET_DOWNLOAD_DESCRIPTOR , // 288
+ EVT_ADD_WALLET_GENERATE_SIGNER , // 289
+ EVT_ADD_WALLET_GET_WALLET_DESCRIPTOR , // 290
+ EVT_ADD_WALLET_COPY_WALLET_DESCRIPTOR , // 291
+ EVT_ADD_WALLET_CONFIRMATION_BACK_REQUEST , // 292
+ EVT_ADD_WALLET_SUCCESSFULLY , // 293
+ EVT_STATE_ID_SCR_ADD_WALLET_CONFIRMATION_MAX , // 294
};
enum EVT_STATE_ID_SCR_ADD_HARDWARE_SIGNER_TO_WALLET
{
- EVT_STATE_ID_SCR_ADD_HARDWARE_SIGNER_TO_WALLET_MIN=EVT_STATE_ID_SCR_ADD_WALLET_CONFIRMATION_MAX+1, // 293
- EVT_ADD_HARDWARE_SIGNER_TO_WALLET_MASTER_SIGNER , // 294
- EVT_ADD_HARDWARE_SIGNER_TO_WALLET_REMOTE_SIGNER , // 295
- EVT_ADD_HARDWARE_SIGNER_TO_WALLET_MASTER_SIGNER_REFRESH , // 296
- EVT_ADD_HARDWARE_SIGNER_TO_WALLET_SEND_PIN , // 297
- EVT_ADD_HARDWARE_SIGNER_TO_WALLET_PROMT_PIN , // 298
- EVT_ADD_HARDWARE_SIGNER_TO_WALLET_REMOTE_SIGNER_RESULT , // 299
- EVT_ADD_HARDWARE_SIGNER_TO_WALLET_MASTER_SIGNER_RESULT , // 300
- EVT_ADD_HARDWARE_SIGNER_TO_WALLET_BACK , // 301
- EVT_STATE_ID_SCR_ADD_HARDWARE_SIGNER_TO_WALLET_MAX , // 302
+ EVT_STATE_ID_SCR_ADD_HARDWARE_SIGNER_TO_WALLET_MIN=EVT_STATE_ID_SCR_ADD_WALLET_CONFIRMATION_MAX+1, // 295
+ EVT_ADD_HARDWARE_SIGNER_TO_WALLET_MASTER_SIGNER , // 296
+ EVT_ADD_HARDWARE_SIGNER_TO_WALLET_REMOTE_SIGNER , // 297
+ EVT_ADD_HARDWARE_SIGNER_TO_WALLET_MASTER_SIGNER_REFRESH , // 298
+ EVT_ADD_HARDWARE_SIGNER_TO_WALLET_SEND_PIN , // 299
+ EVT_ADD_HARDWARE_SIGNER_TO_WALLET_PROMT_PIN , // 300
+ EVT_ADD_HARDWARE_SIGNER_TO_WALLET_REMOTE_SIGNER_RESULT , // 301
+ EVT_ADD_HARDWARE_SIGNER_TO_WALLET_MASTER_SIGNER_RESULT , // 302
+ EVT_ADD_HARDWARE_SIGNER_TO_WALLET_BACK , // 303
+ EVT_STATE_ID_SCR_ADD_HARDWARE_SIGNER_TO_WALLET_MAX , // 304
};
enum EVT_STATE_ID_SCR_WALLET_CHANGE_ADDRESSES
{
- EVT_STATE_ID_SCR_WALLET_CHANGE_ADDRESSES_MIN=EVT_STATE_ID_SCR_ADD_HARDWARE_SIGNER_TO_WALLET_MAX+1, // 303
- EVT_WALLET_CHANGE_ADDRESSES_GEN_NEW_ADDRESS , // 304
- EVT_WALLET_CHANGE_ADDRESSES_COPY , // 305
- EVT_WALLET_CHANGE_ADDRESS_BACK_REQUEST , // 306
- EVT_CHANGE_ADDRESS_BACK_SHARED_WALLET , // 307
- EVT_STATE_ID_SCR_WALLET_CHANGE_ADDRESSES_MAX , // 308
+ EVT_STATE_ID_SCR_WALLET_CHANGE_ADDRESSES_MIN=EVT_STATE_ID_SCR_ADD_HARDWARE_SIGNER_TO_WALLET_MAX+1, // 305
+ EVT_WALLET_CHANGE_ADDRESSES_GEN_NEW_ADDRESS , // 306
+ EVT_WALLET_CHANGE_ADDRESSES_COPY , // 307
+ EVT_WALLET_CHANGE_ADDRESS_BACK_REQUEST , // 308
+ EVT_CHANGE_ADDRESS_BACK_SHARED_WALLET , // 309
+ EVT_STATE_ID_SCR_WALLET_CHANGE_ADDRESSES_MAX , // 310
};
enum EVT_STATE_ID_SCR_ADD_MASTER_SIGNER_RESULT
{
- EVT_STATE_ID_SCR_ADD_MASTER_SIGNER_RESULT_MIN=EVT_STATE_ID_SCR_WALLET_CHANGE_ADDRESSES_MAX+1, // 309
- EVT_ADD_MASTER_SIGNER_RESULT_RUN_HEALTHCHECK , // 310
- EVT_ADD_MASTER_SIGNER_RESULT_PROMT_PIN , // 311
- EVT_ADD_MASTER_SIGNER_RESULT_GET_XPUBS , // 312
- EVT_ADD_MASTER_SIGNER_INFO_REMOVE_REQUEST , // 313
- EVT_ADD_MASTER_SIGNER_FINISHED , // 314
- EVT_ADD_MASTER_SIGNER_RESULT_CONFIRM_ADD_TO_WALLET_CONFIGURATION , // 315
- EVT_STATE_ID_SCR_ADD_MASTER_SIGNER_RESULT_MAX , // 316
+ EVT_STATE_ID_SCR_ADD_MASTER_SIGNER_RESULT_MIN=EVT_STATE_ID_SCR_WALLET_CHANGE_ADDRESSES_MAX+1, // 311
+ EVT_ADD_MASTER_SIGNER_RESULT_RUN_HEALTHCHECK , // 312
+ EVT_ADD_MASTER_SIGNER_RESULT_PROMT_PIN , // 313
+ EVT_ADD_MASTER_SIGNER_RESULT_GET_XPUBS , // 314
+ EVT_ADD_MASTER_SIGNER_INFO_REMOVE_REQUEST , // 315
+ EVT_ADD_MASTER_SIGNER_FINISHED , // 316
+ EVT_ADD_MASTER_SIGNER_RESULT_CONFIRM_ADD_TO_WALLET_CONFIGURATION , // 317
+ EVT_STATE_ID_SCR_ADD_MASTER_SIGNER_RESULT_MAX , // 318
};
enum EVT_STATE_ID_SCR_REMOTE_SIGNER_INFO
{
- EVT_STATE_ID_SCR_REMOTE_SIGNER_INFO_MIN=EVT_STATE_ID_SCR_ADD_MASTER_SIGNER_RESULT_MAX+1, // 317
- EVT_REMOTE_SIGNER_INFO_HEALTH_CHECK , // 318
- EVT_REMOTE_SIGNER_INFO_EDIT_NAME , // 319
- EVT_REMOTE_SIGNER_INFO_IMPORT_SIGNATURE , // 320
- EVT_REMOTE_SIGNER_INFO_EXPORT_MESSAGE , // 321
- EVT_REMOTE_SIGNER_INFO_DELETE_REQUEST , // 322
- EVT_REMOTE_SIGNER_INFO_GET_XPUBS , // 323
- EVT_REMOTE_SIGNER_INFO_BACK_WALLET_INFO , // 324
- EVT_REMOTE_SIGNER_INFO_BACK_HOME , // 325
- EVT_STATE_ID_SCR_REMOTE_SIGNER_INFO_MAX , // 326
+ EVT_STATE_ID_SCR_REMOTE_SIGNER_INFO_MIN=EVT_STATE_ID_SCR_ADD_MASTER_SIGNER_RESULT_MAX+1, // 319
+ EVT_REMOTE_SIGNER_INFO_HEALTH_CHECK , // 320
+ EVT_REMOTE_SIGNER_INFO_EDIT_NAME , // 321
+ EVT_REMOTE_SIGNER_INFO_IMPORT_SIGNATURE , // 322
+ EVT_REMOTE_SIGNER_INFO_EXPORT_MESSAGE , // 323
+ EVT_REMOTE_SIGNER_INFO_DELETE_REQUEST , // 324
+ EVT_REMOTE_SIGNER_INFO_GET_XPUBS , // 325
+ EVT_REMOTE_SIGNER_INFO_BACK_WALLET_INFO , // 326
+ EVT_REMOTE_SIGNER_INFO_BACK_HOME , // 327
+ EVT_STATE_ID_SCR_REMOTE_SIGNER_INFO_MAX , // 328
};
enum EVT_STATE_ID_SCR_UNLOCK_DB
{
- EVT_STATE_ID_SCR_UNLOCK_DB_MIN=EVT_STATE_ID_SCR_REMOTE_SIGNER_INFO_MAX+1, // 327
- EVT_LOGIN_PERFORM_PASSWORD_REQUEST , // 328
- EVT_STATE_ID_SCR_UNLOCK_DB_MAX , // 329
+ EVT_STATE_ID_SCR_UNLOCK_DB_MIN=EVT_STATE_ID_SCR_REMOTE_SIGNER_INFO_MAX+1, // 329
+ EVT_LOGIN_PERFORM_PASSWORD_REQUEST , // 330
+ EVT_STATE_ID_SCR_UNLOCK_DB_MAX , // 331
};
enum EVT_STATE_ID_SCR_CONSOLIDATE_OUTPUT
{
- EVT_STATE_ID_SCR_CONSOLIDATE_OUTPUT_MIN=EVT_STATE_ID_SCR_UNLOCK_DB_MAX+1, // 330
- EVT_CONSOLIDATE_MAKE_TRANSACTION , // 331
- EVT_CONSOLIDATE_BACK_REQUEST , // 332
- EVT_CONSOLIDATE_MAKE_TRANSACTION_SUCCEED , // 333
- EVT_STATE_ID_SCR_CONSOLIDATE_OUTPUT_MAX , // 334
+ EVT_STATE_ID_SCR_CONSOLIDATE_OUTPUT_MIN=EVT_STATE_ID_SCR_UNLOCK_DB_MAX+1, // 332
+ EVT_CONSOLIDATE_MAKE_TRANSACTION , // 333
+ EVT_CONSOLIDATE_BACK_REQUEST , // 334
+ EVT_CONSOLIDATE_MAKE_TRANSACTION_SUCCEED , // 335
+ EVT_STATE_ID_SCR_CONSOLIDATE_OUTPUT_MAX , // 336
};
enum EVT_STATE_ID_SCR_UTXO_OUTPUT
{
- EVT_STATE_ID_SCR_UTXO_OUTPUT_MIN=EVT_STATE_ID_SCR_CONSOLIDATE_OUTPUT_MAX+1, // 335
- EVT_UTXO_INFO_CHECKOUT_TX_RELATED , // 336
- EVT_UTXO_INFO_BACK_REQUEST , // 337
- EVT_UTXO_INFO_VIEW_TX_RELATED , // 338
- EVT_STATE_ID_SCR_UTXO_OUTPUT_MAX , // 339
+ EVT_STATE_ID_SCR_UTXO_OUTPUT_MIN=EVT_STATE_ID_SCR_CONSOLIDATE_OUTPUT_MAX+1, // 337
+ EVT_UTXO_INFO_CHECKOUT_TX_RELATED , // 338
+ EVT_UTXO_INFO_BACK_REQUEST , // 339
+ EVT_UTXO_INFO_VIEW_TX_RELATED , // 340
+ EVT_STATE_ID_SCR_UTXO_OUTPUT_MAX , // 341
};
enum EVT_STATE_ID_SCR_INPUT_PIN
{
- EVT_STATE_ID_SCR_INPUT_PIN_MIN=EVT_STATE_ID_SCR_UTXO_OUTPUT_MAX+1, // 340
- EVT_INPUT_PIN_SEND_PIN , // 341
- EVT_INPUT_PIN_CLOSE , // 342
- EVT_STATE_ID_SCR_INPUT_PIN_MAX , // 343
+ EVT_STATE_ID_SCR_INPUT_PIN_MIN=EVT_STATE_ID_SCR_UTXO_OUTPUT_MAX+1, // 342
+ EVT_INPUT_PIN_SEND_PIN , // 343
+ EVT_INPUT_PIN_CLOSE , // 344
+ EVT_STATE_ID_SCR_INPUT_PIN_MAX , // 345
};
enum EVT_STATE_ID_SCR_ADD_NEW_SIGNER
{
- EVT_STATE_ID_SCR_ADD_NEW_SIGNER_MIN=EVT_STATE_ID_SCR_INPUT_PIN_MAX+1, // 344
- EVT_ADD_HARDWARE_SIGNER_REQUEST , // 345
- EVT_ADD_NEW_SIGNER_BACK_REQUEST , // 346
- EVT_ADD_NEW_SIGNER_SOFTWARE_SIGNER_NEW_SEED , // 347
- EVT_ADD_NEW_SIGNER_SOFTWARE_SIGNER_EXIST_SEED , // 348
- EVT_ADD_NEW_SIGNER_BACK_TO_HOME_ONLINE , // 349
- EVT_STATE_ID_SCR_ADD_NEW_SIGNER_MAX , // 350
+ EVT_STATE_ID_SCR_ADD_NEW_SIGNER_MIN=EVT_STATE_ID_SCR_INPUT_PIN_MAX+1, // 346
+ EVT_ADD_HARDWARE_SIGNER_REQUEST , // 347
+ EVT_ADD_NEW_SIGNER_BACK_REQUEST , // 348
+ EVT_ADD_NEW_SIGNER_SOFTWARE_SIGNER_NEW_SEED , // 349
+ EVT_ADD_NEW_SIGNER_SOFTWARE_SIGNER_EXIST_SEED , // 350
+ EVT_ADD_NEW_SIGNER_BACK_TO_HOME_ONLINE , // 351
+ EVT_STATE_ID_SCR_ADD_NEW_SIGNER_MAX , // 352
};
enum EVT_STATE_ID_SCR_ADD_NEW_SOFTWARE_SIGNER
{
- EVT_STATE_ID_SCR_ADD_NEW_SOFTWARE_SIGNER_MIN=EVT_STATE_ID_SCR_ADD_NEW_SIGNER_MAX+1, // 351
- EVT_ADD_NEW_SOFTWARE_SIGNER_BACK , // 352
- EVT_CREATE_NEW_SEED , // 353
- EVT_ADD_NEW_SOFTWARE_SIGNER_TO_WALLET_BACK , // 354
- EVT_NEW_SOFTWARE_SIGNER_BACK_TO_WALLET_SIGNER_CONFIGURATION , // 355
- EVT_STATE_ID_SCR_ADD_NEW_SOFTWARE_SIGNER_MAX , // 356
+ EVT_STATE_ID_SCR_ADD_NEW_SOFTWARE_SIGNER_MIN=EVT_STATE_ID_SCR_ADD_NEW_SIGNER_MAX+1, // 353
+ EVT_ADD_NEW_SOFTWARE_SIGNER_BACK , // 354
+ EVT_CREATE_NEW_SEED , // 355
+ EVT_ADD_NEW_SOFTWARE_SIGNER_TO_WALLET_BACK , // 356
+ EVT_NEW_SOFTWARE_SIGNER_BACK_TO_WALLET_SIGNER_CONFIGURATION , // 357
+ EVT_STATE_ID_SCR_ADD_NEW_SOFTWARE_SIGNER_MAX , // 358
};
enum EVT_STATE_ID_SCR_RECOVER_SOFTWARE_SIGNER
{
- EVT_STATE_ID_SCR_RECOVER_SOFTWARE_SIGNER_MIN=EVT_STATE_ID_SCR_ADD_NEW_SOFTWARE_SIGNER_MAX+1, // 357
- EVT_RECOVER_SOFTWARE_SIGNER_REQUEST , // 358
- EVT_RECOVER_SOFTWARE_SIGNER_BACK , // 359
- EVT_RECOVER_SOFTWARE_SIGNER_SUCCEED , // 360
- EVT_RECOVER_SOFTWARE_SIGNER_TO_WALLET_BACK , // 361
- EVT_RECOVER_SOFTWARE_SIGNER_BACK_TO_WALLET_SIGNER_CONFIGURATION , // 362
- EVT_STATE_ID_SCR_RECOVER_SOFTWARE_SIGNER_MAX , // 363
+ EVT_STATE_ID_SCR_RECOVER_SOFTWARE_SIGNER_MIN=EVT_STATE_ID_SCR_ADD_NEW_SOFTWARE_SIGNER_MAX+1, // 359
+ EVT_RECOVER_SOFTWARE_SIGNER_REQUEST , // 360
+ EVT_RECOVER_SOFTWARE_SIGNER_BACK , // 361
+ EVT_RECOVER_SOFTWARE_SIGNER_SUCCEED , // 362
+ EVT_RECOVER_SOFTWARE_SIGNER_TO_WALLET_BACK , // 363
+ EVT_RECOVER_SOFTWARE_SIGNER_BACK_TO_WALLET_SIGNER_CONFIGURATION , // 364
+ EVT_STATE_ID_SCR_RECOVER_SOFTWARE_SIGNER_MAX , // 365
};
enum EVT_STATE_ID_SCR_CREATE_NEW_SEED
{
- EVT_STATE_ID_SCR_CREATE_NEW_SEED_MIN=EVT_STATE_ID_SCR_RECOVER_SOFTWARE_SIGNER_MAX+1, // 364
- EVT_CREATE_NEW_SEED_BACK , // 365
- EVT_CREATE_NEW_SEED_SUCCEED , // 366
- EVT_NEW_SEED_BACK_TO_WALLET_SIGNER_CONFIGURATION , // 367
- EVT_STATE_ID_SCR_CREATE_NEW_SEED_MAX , // 368
+ EVT_STATE_ID_SCR_CREATE_NEW_SEED_MIN=EVT_STATE_ID_SCR_RECOVER_SOFTWARE_SIGNER_MAX+1, // 366
+ EVT_CREATE_NEW_SEED_BACK , // 367
+ EVT_CREATE_NEW_SEED_SUCCEED , // 368
+ EVT_NEW_SEED_BACK_TO_WALLET_SIGNER_CONFIGURATION , // 369
+ EVT_STATE_ID_SCR_CREATE_NEW_SEED_MAX , // 370
};
enum EVT_STATE_ID_SCR_SOFTWARE_SIGNER_CONFIGURATION
{
- EVT_STATE_ID_SCR_SOFTWARE_SIGNER_CONFIGURATION_MIN=EVT_STATE_ID_SCR_CREATE_NEW_SEED_MAX+1, // 369
- EVT_SOFTWARE_SIGNER_REQUEST_CREATE , // 370
- EVT_SOFTWARE_SIGNER_CONFIGURATION_BACK , // 371
- EVT_SOFTWARE_SIGNER_CONFIGURATION_BACK_TO_WALLET_SIGNER_CONFIGURATION , // 372
- EVT_PRIMARY_KEY_CONFIGURATION_REQUEST , // 373
- EVT_STATE_ID_SCR_SOFTWARE_SIGNER_CONFIGURATION_MAX , // 374
+ EVT_STATE_ID_SCR_SOFTWARE_SIGNER_CONFIGURATION_MIN=EVT_STATE_ID_SCR_CREATE_NEW_SEED_MAX+1, // 371
+ EVT_SOFTWARE_SIGNER_REQUEST_CREATE , // 372
+ EVT_SOFTWARE_SIGNER_CONFIGURATION_BACK , // 373
+ EVT_SOFTWARE_SIGNER_CONFIGURATION_BACK_TO_WALLET_SIGNER_CONFIGURATION , // 374
+ EVT_PRIMARY_KEY_CONFIGURATION_REQUEST , // 375
+ EVT_STATE_ID_SCR_SOFTWARE_SIGNER_CONFIGURATION_MAX , // 376
};
enum EVT_STATE_ID_SCR_ADD_NEW_SIGNER_TO_WALLET
{
- EVT_STATE_ID_SCR_ADD_NEW_SIGNER_TO_WALLET_MIN=EVT_STATE_ID_SCR_SOFTWARE_SIGNER_CONFIGURATION_MAX+1, // 375
- EVT_ADD_SIGNER_TO_WALLET_BACK_REQUEST , // 376
- EVT_ADD_HARDWARE_SIGNER_TO_WALLET , // 377
- EVT_ADD_NEW_SOFTWARE_SIGNER_TO_WALLET , // 378
- EVT_RECOVER_SOFTWARE_SIGNER_TO_WALLET , // 379
- EVT_STATE_ID_SCR_ADD_NEW_SIGNER_TO_WALLET_MAX , // 380
+ EVT_STATE_ID_SCR_ADD_NEW_SIGNER_TO_WALLET_MIN=EVT_STATE_ID_SCR_SOFTWARE_SIGNER_CONFIGURATION_MAX+1, // 377
+ EVT_ADD_SIGNER_TO_WALLET_BACK_REQUEST , // 378
+ EVT_ADD_HARDWARE_SIGNER_TO_WALLET , // 379
+ EVT_ADD_NEW_SOFTWARE_SIGNER_TO_WALLET , // 380
+ EVT_RECOVER_SOFTWARE_SIGNER_TO_WALLET , // 381
+ EVT_STATE_ID_SCR_ADD_NEW_SIGNER_TO_WALLET_MAX , // 382
};
enum EVT_STATE_ID_SCR_INPUT_PASSPHRASE
{
- EVT_STATE_ID_SCR_INPUT_PASSPHRASE_MIN=EVT_STATE_ID_SCR_ADD_NEW_SIGNER_TO_WALLET_MAX+1, // 381
- EVT_INPUT_PASSPHRASE_SEND_PASSPHRASE , // 382
- EVT_INPUT_PASSPHRASE_CLOSE , // 383
- EVT_STATE_ID_SCR_INPUT_PASSPHRASE_MAX , // 384
+ EVT_STATE_ID_SCR_INPUT_PASSPHRASE_MIN=EVT_STATE_ID_SCR_ADD_NEW_SIGNER_TO_WALLET_MAX+1, // 383
+ EVT_INPUT_PASSPHRASE_SEND_PASSPHRASE , // 384
+ EVT_INPUT_PASSPHRASE_CLOSE , // 385
+ EVT_STATE_ID_SCR_INPUT_PASSPHRASE_MAX , // 386
};
enum EVT_STATE_ID_SCR_LOGIN_ONLINE
{
- EVT_STATE_ID_SCR_LOGIN_ONLINE_MIN=EVT_STATE_ID_SCR_INPUT_PASSPHRASE_MAX+1, // 385
- EVT_LOGIN_ONLINE_CREATE_ACCOUNT , // 386
- EVT_LOGIN_ONLINE_SIGN_IN , // 387
- EVT_LOGIN_ONLINE_SWITCH_LOCAL_MODE , // 388
- EVT_LOGIN_ONLINE_CHANGE_PASSWORD , // 389
- EVT_LOGIN_ONLINE_FORGOT_PASSWORD , // 390
- EVT_LOGIN_ONLINE_RECOVER_PASSWORD , // 391
- EVT_LOGIN_ONLINE_STAY_SIGNED_IN , // 392
- EVT_LOGIN_ONLINE_VERIFY_NEW_DEVICE , // 393
- EVT_LOGIN_ONLINE_RESEND_CONFIRM_CODE , // 394
- EVT_STATE_ID_SCR_LOGIN_ONLINE_MAX , // 395
+ EVT_STATE_ID_SCR_LOGIN_ONLINE_MIN=EVT_STATE_ID_SCR_INPUT_PASSPHRASE_MAX+1, // 387
+ EVT_LOGIN_ONLINE_CREATE_ACCOUNT , // 388
+ EVT_LOGIN_ONLINE_SIGN_IN , // 389
+ EVT_LOGIN_ONLINE_SWITCH_LOCAL_MODE , // 390
+ EVT_LOGIN_ONLINE_CHANGE_PASSWORD , // 391
+ EVT_LOGIN_ONLINE_FORGOT_PASSWORD , // 392
+ EVT_LOGIN_ONLINE_RECOVER_PASSWORD , // 393
+ EVT_LOGIN_ONLINE_STAY_SIGNED_IN , // 394
+ EVT_LOGIN_ONLINE_VERIFY_NEW_DEVICE , // 395
+ EVT_LOGIN_ONLINE_RESEND_CONFIRM_CODE , // 396
+ EVT_STATE_ID_SCR_LOGIN_ONLINE_MAX , // 397
};
enum EVT_STATE_ID_SCR_HOME_ONLINE
{
- EVT_STATE_ID_SCR_HOME_ONLINE_MIN=EVT_STATE_ID_SCR_LOGIN_ONLINE_MAX+1, // 396
- EVT_HOME_ONLINE_ADD_SIGNER , // 397
- EVT_HOME_ONLINE_CREATE_CHAT_ROOM , // 398
- EVT_HOME_ONLINE_CREATE_DIRECT_CHAT , // 399
- EVT_HOME_ONLINE_DELETE_DIRECT_ROOM , // 400
- EVT_HOME_ONLINE_DELETE_ROOM , // 401
- EVT_HOME_ONLINE_SEND_CHAT_CONTENT , // 402
- EVT_HOME_ONLINE_CANCEL_SHARED_WL , // 403
- EVT_HOME_ONLINE_CREATE_SHARED_WALLET , // 404
- EVT_HOME_ONLINE_CANCEL_TRANSACTION , // 405
- EVT_HOME_ONLINE_SERVICE_SUPPORT_REQ , // 406
- EVT_HOME_ONLINE_ADD_CONTACT , // 407
- EVT_HOME_SHOW_ALL_PENDING_CONTACT , // 408
- EVT_HOME_ONLINE_SIGNER_AVAILABLE_FOR_SWL , // 409
- EVT_HOME_SHARED_WALLET_CONFIGURE , // 410
- EVT_HOME_BACKUP_SHARED_WALLET , // 411
- EVT_HOME_ONLINE_SIGNER_UNAVAILABLE_FOR_SWL , // 412
- EVT_HOME_SHARED_WL_SEND_REQUEST , // 413
- EVT_HOME_ONLINE_TRANSACTION_INFO_REQUEST , // 414
- EVT_STATE_ID_SCR_HOME_ONLINE_MAX , // 415
+ EVT_STATE_ID_SCR_HOME_ONLINE_MIN=EVT_STATE_ID_SCR_LOGIN_ONLINE_MAX+1, // 398
+ EVT_HOME_ONLINE_ADD_SIGNER , // 399
+ EVT_HOME_ONLINE_CREATE_CHAT_ROOM , // 400
+ EVT_HOME_ONLINE_CREATE_DIRECT_CHAT , // 401
+ EVT_HOME_ONLINE_DELETE_DIRECT_ROOM , // 402
+ EVT_HOME_ONLINE_DELETE_ROOM , // 403
+ EVT_HOME_ONLINE_SEND_CHAT_CONTENT , // 404
+ EVT_HOME_ONLINE_CANCEL_SHARED_WL , // 405
+ EVT_HOME_ONLINE_CREATE_SHARED_WALLET , // 406
+ EVT_HOME_ONLINE_CANCEL_TRANSACTION , // 407
+ EVT_HOME_ONLINE_SERVICE_SUPPORT_REQ , // 408
+ EVT_HOME_ONLINE_ADD_CONTACT , // 409
+ EVT_HOME_SHOW_ALL_PENDING_CONTACT , // 410
+ EVT_HOME_ONLINE_SIGNER_AVAILABLE_FOR_SWL , // 411
+ EVT_HOME_SHARED_WALLET_CONFIGURE , // 412
+ EVT_HOME_BACKUP_SHARED_WALLET , // 413
+ EVT_HOME_ONLINE_SIGNER_UNAVAILABLE_FOR_SWL , // 414
+ EVT_HOME_SHARED_WL_SEND_REQUEST , // 415
+ EVT_HOME_ONLINE_TRANSACTION_INFO_REQUEST , // 416
+ EVT_STATE_ID_SCR_HOME_ONLINE_MAX , // 417
};
enum EVT_STATE_ID_SCR_ONLINE_ADD_CONTACTS
{
- EVT_STATE_ID_SCR_ONLINE_ADD_CONTACTS_MIN=EVT_STATE_ID_SCR_HOME_ONLINE_MAX+1, // 416
- EVT_ONLINE_ADD_CONTACTS_SEARCH_ID , // 417
- EVT_ONLINE_ADD_CONTACTS_SEND_INVITATION , // 418
- EVT_ONLINE_ADD_CONTACTS_BACK , // 419
- EVT_STATE_ID_SCR_ONLINE_ADD_CONTACTS_MAX , // 420
+ EVT_STATE_ID_SCR_ONLINE_ADD_CONTACTS_MIN=EVT_STATE_ID_SCR_HOME_ONLINE_MAX+1, // 418
+ EVT_ONLINE_ADD_CONTACTS_SEARCH_ID , // 419
+ EVT_ONLINE_ADD_CONTACTS_SEND_INVITATION , // 420
+ EVT_ONLINE_ADD_CONTACTS_BACK , // 421
+ EVT_STATE_ID_SCR_ONLINE_ADD_CONTACTS_MAX , // 422
};
enum EVT_STATE_ID_SCR_PENDING_REQUEST
{
- EVT_STATE_ID_SCR_PENDING_REQUEST_MIN=EVT_STATE_ID_SCR_ONLINE_ADD_CONTACTS_MAX+1, // 421
- EVT_PENDING_REQUEST_ACCEPT , // 422
- EVT_PENDING_REQUEST_IGNORE , // 423
- EVT_PENDING_REQUEST_BACK , // 424
- EVT_STATE_ID_SCR_PENDING_REQUEST_MAX , // 425
+ EVT_STATE_ID_SCR_PENDING_REQUEST_MIN=EVT_STATE_ID_SCR_ONLINE_ADD_CONTACTS_MAX+1, // 423
+ EVT_PENDING_REQUEST_ACCEPT , // 424
+ EVT_PENDING_REQUEST_IGNORE , // 425
+ EVT_PENDING_REQUEST_BACK , // 426
+ EVT_STATE_ID_SCR_PENDING_REQUEST_MAX , // 427
};
enum EVT_STATE_ID_SCR_CREATE_SHARED_WALLET
{
- EVT_STATE_ID_SCR_CREATE_SHARED_WALLET_MIN=EVT_STATE_ID_SCR_PENDING_REQUEST_MAX+1, // 426
- EVT_CREATE_SHARED_WALLET_REQUEST , // 427
- EVT_CANCEL_SHARED_WALLET_REQUEST , // 428
- EVT_CREATE_SHARED_WALLET_BACK , // 429
- EVT_CREATE_SHARED_WALLET_REQUEST_CONFIGURATION , // 430
- EVT_RECOVER_SHARED_WALLET_REQUEST , // 431
- EVT_STATE_ID_SCR_CREATE_SHARED_WALLET_MAX , // 432
+ EVT_STATE_ID_SCR_CREATE_SHARED_WALLET_MIN=EVT_STATE_ID_SCR_PENDING_REQUEST_MAX+1, // 428
+ EVT_CREATE_SHARED_WALLET_REQUEST , // 429
+ EVT_CANCEL_SHARED_WALLET_REQUEST , // 430
+ EVT_CREATE_SHARED_WALLET_BACK , // 431
+ EVT_CREATE_SHARED_WALLET_REQUEST_CONFIGURATION , // 432
+ EVT_RECOVER_SHARED_WALLET_REQUEST , // 433
+ EVT_STATE_ID_SCR_CREATE_SHARED_WALLET_MAX , // 434
};
enum EVT_STATE_ID_SCR_CONFIGURE_SHARED_WALLET
{
- EVT_STATE_ID_SCR_CONFIGURE_SHARED_WALLET_MIN=EVT_STATE_ID_SCR_CREATE_SHARED_WALLET_MAX+1, // 433
- EVT_CONFIGURE_SHARED_WALLET_REQUEST , // 434
- EVT_CONFIGURE_SHARED_WALLET_BACK , // 435
- EVT_CONFIGURE_SHARED_WALLET_REVIEW_REQUEST , // 436
- EVT_STATE_ID_SCR_CONFIGURE_SHARED_WALLET_MAX , // 437
+ EVT_STATE_ID_SCR_CONFIGURE_SHARED_WALLET_MIN=EVT_STATE_ID_SCR_CREATE_SHARED_WALLET_MAX+1, // 435
+ EVT_CONFIGURE_SHARED_WALLET_REQUEST , // 436
+ EVT_CONFIGURE_SHARED_WALLET_BACK , // 437
+ EVT_CONFIGURE_SHARED_WALLET_REVIEW_REQUEST , // 438
+ EVT_STATE_ID_SCR_CONFIGURE_SHARED_WALLET_MAX , // 439
};
enum EVT_STATE_ID_SCR_REVIEW_SHARED_WALLET
{
- EVT_STATE_ID_SCR_REVIEW_SHARED_WALLET_MIN=EVT_STATE_ID_SCR_CONFIGURE_SHARED_WALLET_MAX+1, // 438
- EVT_REVIEW_SHARED_WALLET_BACK , // 439
- EVT_REVIEW_SHARED_WALLET_INVITE_SIGNER , // 440
- EVT_STATE_ID_SCR_REVIEW_SHARED_WALLET_MAX , // 441
+ EVT_STATE_ID_SCR_REVIEW_SHARED_WALLET_MIN=EVT_STATE_ID_SCR_CONFIGURE_SHARED_WALLET_MAX+1, // 440
+ EVT_REVIEW_SHARED_WALLET_BACK , // 441
+ EVT_REVIEW_SHARED_WALLET_INVITE_SIGNER , // 442
+ EVT_STATE_ID_SCR_REVIEW_SHARED_WALLET_MAX , // 443
};
enum EVT_STATE_ID_SCR_ASSIGN_SIGNER_TO_SHARED_WALLET
{
- EVT_STATE_ID_SCR_ASSIGN_SIGNER_TO_SHARED_WALLET_MIN=EVT_STATE_ID_SCR_REVIEW_SHARED_WALLET_MAX+1, // 442
- EVT_ASSIGN_SIGNER_TO_SHARED_REQUEST , // 443
- EVT_ASSIGN_SIGNER_TO_SHARED_WALLET_BACK_REVIEW_WALLET , // 444
- EVT_ASSIGN_SIGNER_TO_SHARED_BACK_WALLET_CONFIG , // 445
- EVT_STATE_ID_SCR_ASSIGN_SIGNER_TO_SHARED_WALLET_MAX , // 446
+ EVT_STATE_ID_SCR_ASSIGN_SIGNER_TO_SHARED_WALLET_MIN=EVT_STATE_ID_SCR_REVIEW_SHARED_WALLET_MAX+1, // 444
+ EVT_ASSIGN_SIGNER_TO_SHARED_REQUEST , // 445
+ EVT_ASSIGN_SIGNER_TO_SHARED_WALLET_BACK_REVIEW_WALLET , // 446
+ EVT_ASSIGN_SIGNER_TO_SHARED_BACK_WALLET_CONFIG , // 447
+ EVT_STATE_ID_SCR_ASSIGN_SIGNER_TO_SHARED_WALLET_MAX , // 448
};
enum EVT_STATE_ID_SCR_SHARED_WALLET_CONFIGURE
{
- EVT_STATE_ID_SCR_SHARED_WALLET_CONFIGURE_MIN=EVT_STATE_ID_SCR_ASSIGN_SIGNER_TO_SHARED_WALLET_MAX+1, // 447
- EVT_SHARED_WALLET_FINALIZE_WALLET , // 448
- EVT_SHARED_WALLET_CONFIGURE_CANCEL , // 449
- EVT_SHARED_WALLET_CONFIGURE_EXPORT_COLDCARD , // 450
- EVT_SHARED_WALLET_CONFIGURE_EXPORT_QRCODE , // 451
- EVT_SHARED_WALLET_CONFIGURE_DELETE_SWL , // 452
- EVT_SHARED_WALLET_CONFIGURE_EXPORT_BSMS , // 453
- EVT_SHARED_WALLET_CONFIGURE_BACK , // 454
- EVT_SHARED_WALLET_ADD_SIGNER_REQUEST , // 455
- EVT_SHARED_WALLET_UTXO_OUTPUT , // 456
- EVT_SHARED_WALLET_CHANGE_ADDRESS , // 457
- EVT_STATE_ID_SCR_SHARED_WALLET_CONFIGURE_MAX , // 458
+ EVT_STATE_ID_SCR_SHARED_WALLET_CONFIGURE_MIN=EVT_STATE_ID_SCR_ASSIGN_SIGNER_TO_SHARED_WALLET_MAX+1, // 449
+ EVT_SHARED_WALLET_FINALIZE_WALLET , // 450
+ EVT_SHARED_WALLET_CONFIGURE_CANCEL , // 451
+ EVT_SHARED_WALLET_CONFIGURE_EXPORT_COLDCARD , // 452
+ EVT_SHARED_WALLET_CONFIGURE_EXPORT_QRCODE , // 453
+ EVT_SHARED_WALLET_CONFIGURE_DELETE_SWL , // 454
+ EVT_SHARED_WALLET_CONFIGURE_EXPORT_BSMS , // 455
+ EVT_SHARED_WALLET_CONFIGURE_BACK , // 456
+ EVT_SHARED_WALLET_ADD_SIGNER_REQUEST , // 457
+ EVT_SHARED_WALLET_UTXO_OUTPUT , // 458
+ EVT_SHARED_WALLET_CHANGE_ADDRESS , // 459
+ EVT_STATE_ID_SCR_SHARED_WALLET_CONFIGURE_MAX , // 460
};
enum EVT_STATE_ID_SCR_BACKUP_SHARED_WALLET
{
- EVT_STATE_ID_SCR_BACKUP_SHARED_WALLET_MIN=EVT_STATE_ID_SCR_SHARED_WALLET_CONFIGURE_MAX+1, // 459
- EVT_BACKUP_SHARED_WALLET_REQUEST , // 460
- EVT_BACKUP_SHARED_WALLET_SKIP , // 461
- EVT_BACKUP_SHARED_WALLET_EXPORT_BSMS , // 462
- EVT_BACKUP_SHARED_WALLET_BACK , // 463
- EVT_BACKUP_WALLET_DEVICE_REGISTRATION , // 464
- EVT_STATE_ID_SCR_BACKUP_SHARED_WALLET_MAX , // 465
+ EVT_STATE_ID_SCR_BACKUP_SHARED_WALLET_MIN=EVT_STATE_ID_SCR_SHARED_WALLET_CONFIGURE_MAX+1, // 461
+ EVT_BACKUP_SHARED_WALLET_REQUEST , // 462
+ EVT_BACKUP_SHARED_WALLET_SKIP , // 463
+ EVT_BACKUP_SHARED_WALLET_EXPORT_BSMS , // 464
+ EVT_BACKUP_SHARED_WALLET_BACK , // 465
+ EVT_BACKUP_WALLET_DEVICE_REGISTRATION , // 466
+ EVT_STATE_ID_SCR_BACKUP_SHARED_WALLET_MAX , // 467
};
enum EVT_STATE_ID_SCR_SHARED_WL_DEVICE_REGISTRATION
{
- EVT_STATE_ID_SCR_SHARED_WL_DEVICE_REGISTRATION_MIN=EVT_STATE_ID_SCR_BACKUP_SHARED_WALLET_MAX+1, // 466
- EVT_SHARED_WALLET_EXPORT_COLDCARD , // 467
- EVT_SHARED_WALLET_EXPORT_QRCODE , // 468
- EVT_SHARED_WALLET_SKIP_REGISTRATION , // 469
- EVT_SHARED_WL_DEVICE_REGISTRAION_BACK , // 470
- EVT_STATE_ID_SCR_SHARED_WL_DEVICE_REGISTRATION_MAX , // 471
+ EVT_STATE_ID_SCR_SHARED_WL_DEVICE_REGISTRATION_MIN=EVT_STATE_ID_SCR_BACKUP_SHARED_WALLET_MAX+1, // 468
+ EVT_SHARED_WALLET_EXPORT_COLDCARD , // 469
+ EVT_SHARED_WALLET_EXPORT_QRCODE , // 470
+ EVT_SHARED_WALLET_SKIP_REGISTRATION , // 471
+ EVT_SHARED_WL_DEVICE_REGISTRAION_BACK , // 472
+ EVT_STATE_ID_SCR_SHARED_WL_DEVICE_REGISTRATION_MAX , // 473
};
enum EVT_STATE_ID_SCR_STARTING_CREATE_SIGNER
{
- EVT_STATE_ID_SCR_STARTING_CREATE_SIGNER_MIN=EVT_STATE_ID_SCR_SHARED_WL_DEVICE_REGISTRATION_MAX+1, // 472
- EVT_STARTING_CREATE_SIGNER_DUMMY , // 473
- EVT_STARTING_CREATE_SIGNER_BACK , // 474
- EVT_ONLINE_MODE_ADD_NEW_SIGNER , // 475
- EVT_STATE_ID_SCR_STARTING_CREATE_SIGNER_MAX , // 476
+ EVT_STATE_ID_SCR_STARTING_CREATE_SIGNER_MIN=EVT_STATE_ID_SCR_SHARED_WL_DEVICE_REGISTRATION_MAX+1, // 474
+ EVT_STARTING_CREATE_SIGNER_DUMMY , // 475
+ EVT_STARTING_CREATE_SIGNER_BACK , // 476
+ EVT_ONLINE_MODE_ADD_NEW_SIGNER , // 477
+ EVT_STATE_ID_SCR_STARTING_CREATE_SIGNER_MAX , // 478
};
enum EVT_STATE_ID_TOAST_MESSAGE_DISPLAY
{
- EVT_STATE_ID_TOAST_MESSAGE_DISPLAY_MIN=EVT_STATE_ID_SCR_STARTING_CREATE_SIGNER_MAX+1, // 477
- EVT_CLOSE_TOAST_MESSAGE , // 478
- EVT_STATE_ID_TOAST_MESSAGE_DISPLAY_MAX , // 479
+ EVT_STATE_ID_TOAST_MESSAGE_DISPLAY_MIN=EVT_STATE_ID_SCR_STARTING_CREATE_SIGNER_MAX+1, // 479
+ EVT_CLOSE_TOAST_MESSAGE , // 480
+ EVT_STATE_ID_TOAST_MESSAGE_DISPLAY_MAX , // 481
};
enum EVT_STATE_ID_SCR_RECOVER_SHARED_WALLET
{
- EVT_STATE_ID_SCR_RECOVER_SHARED_WALLET_MIN=EVT_STATE_ID_TOAST_MESSAGE_DISPLAY_MAX+1, // 480
- EVT_IMPORT_BSMS_SHARED_WALLET , // 481
- EVT_IMPORT_QR_SHARED_WALLET , // 482
- EVT_IMPORT_SHARED_WALLET_SUCCEED , // 483
- EVT_RECOVER_SHARED_WALLET_BACK , // 484
- EVT_STATE_ID_SCR_RECOVER_SHARED_WALLET_MAX , // 485
+ EVT_STATE_ID_SCR_RECOVER_SHARED_WALLET_MIN=EVT_STATE_ID_TOAST_MESSAGE_DISPLAY_MAX+1, // 482
+ EVT_IMPORT_BSMS_SHARED_WALLET , // 483
+ EVT_IMPORT_QR_SHARED_WALLET , // 484
+ EVT_IMPORT_SHARED_WALLET_SUCCEED , // 485
+ EVT_RECOVER_SHARED_WALLET_BACK , // 486
+ EVT_STATE_ID_SCR_RECOVER_SHARED_WALLET_MAX , // 487
};
enum EVT_STATE_ID_SCR_PRIMARY_KEY_ACCOUNT
{
- EVT_STATE_ID_SCR_PRIMARY_KEY_ACCOUNT_MIN=EVT_STATE_ID_SCR_RECOVER_SHARED_WALLET_MAX+1, // 486
- EVT_SELECT_PRIMARY_KEY_ACCOUNT_REQUEST , // 487
- EVT_PRIMARY_KEY_BACK_TO_CREATE_ACCOUNT , // 488
- EVT_PRIMARY_KEY_ACCOUNT_BACK , // 489
- EVT_ADD_PRIMARY_KEY_REQUEST , // 490
- EVT_SHOW_SIGN_IN_BY_IMPORTING_THE_PRIMARY_KEY_REQUEST , // 491
- EVT_SCR_SIGN_IN_MANUALLY_REQUEST , // 492
- EVT_PRIMARY_KEY_BACK_TO_SIGN_IN , // 493
- EVT_STATE_ID_SCR_PRIMARY_KEY_ACCOUNT_MAX , // 494
+ EVT_STATE_ID_SCR_PRIMARY_KEY_ACCOUNT_MIN=EVT_STATE_ID_SCR_RECOVER_SHARED_WALLET_MAX+1, // 488
+ EVT_SELECT_PRIMARY_KEY_ACCOUNT_REQUEST , // 489
+ EVT_PRIMARY_KEY_BACK_TO_CREATE_ACCOUNT , // 490
+ EVT_PRIMARY_KEY_ACCOUNT_BACK , // 491
+ EVT_ADD_PRIMARY_KEY_REQUEST , // 492
+ EVT_SHOW_SIGN_IN_BY_IMPORTING_THE_PRIMARY_KEY_REQUEST , // 493
+ EVT_SCR_SIGN_IN_MANUALLY_REQUEST , // 494
+ EVT_PRIMARY_KEY_BACK_TO_SIGN_IN , // 495
+ EVT_STATE_ID_SCR_PRIMARY_KEY_ACCOUNT_MAX , // 496
};
enum EVT_STATE_ID_SCR_CREATE_ACCOUNT
{
- EVT_STATE_ID_SCR_CREATE_ACCOUNT_MIN=EVT_STATE_ID_SCR_PRIMARY_KEY_ACCOUNT_MAX+1, // 495
- EVT_CREATE_ACCOUNT_REQUEST , // 496
- EVT_CREATE_PRIMARY_KEY_REQUEST , // 497
- EVT_CREATE_ACCOUNT_PRIMARY_KEY_REQUEST , // 498
- EVT_CHANGE_PASSWORD_SHOW_REQUEST , // 499
- EVT_STATE_ID_SCR_CREATE_ACCOUNT_MAX , // 500
+ EVT_STATE_ID_SCR_CREATE_ACCOUNT_MIN=EVT_STATE_ID_SCR_PRIMARY_KEY_ACCOUNT_MAX+1, // 497
+ EVT_CREATE_ACCOUNT_REQUEST , // 498
+ EVT_CREATE_PRIMARY_KEY_REQUEST , // 499
+ EVT_CREATE_ACCOUNT_PRIMARY_KEY_REQUEST , // 500
+ EVT_CHANGE_PASSWORD_SHOW_REQUEST , // 501
+ EVT_STATE_ID_SCR_CREATE_ACCOUNT_MAX , // 502
};
enum EVT_STATE_ID_SCR_CHANGE_PASSWORD
{
- EVT_STATE_ID_SCR_CHANGE_PASSWORD_MIN=EVT_STATE_ID_SCR_CREATE_ACCOUNT_MAX+1, // 501
- EVT_CHANGE_PASSWORD_REQUEST , // 502
- EVT_CHANGE_PASSWORD_BACK , // 503
- EVT_CHANGE_PASSWORD_SUCCESS , // 504
- EVT_STATE_ID_SCR_CHANGE_PASSWORD_MAX , // 505
+ EVT_STATE_ID_SCR_CHANGE_PASSWORD_MIN=EVT_STATE_ID_SCR_CREATE_ACCOUNT_MAX+1, // 503
+ EVT_CHANGE_PASSWORD_REQUEST , // 504
+ EVT_CHANGE_PASSWORD_BACK , // 505
+ EVT_CHANGE_PASSWORD_SUCCESS , // 506
+ EVT_STATE_ID_SCR_CHANGE_PASSWORD_MAX , // 507
};
enum EVT_STATE_ID_SCR_SIGN_IN_BY_IMPORTING_THE_PRIMARY_KEY
{
- EVT_STATE_ID_SCR_SIGN_IN_BY_IMPORTING_THE_PRIMARY_KEY_MIN=EVT_STATE_ID_SCR_CHANGE_PASSWORD_MAX+1, // 506
- EVT_PRIMARY_KEY_ENTER_PASSPHRASE_REQUEST , // 507
- EVT_PRIMARY_KEY_ENTER_PASSPHRASE_SIGN_IN_REQUEST , // 508
- EVT_IMPORT_PRIMARY_KEY_WITH_SEED_REQUEST , // 509
- EVT_PRIMARY_KEY_ENTER_PASSPHRASE_SUCCEED , // 510
- EVT_SIGN_IN_BY_IMPORTING_THE_PRIMARY_KEY_BACK , // 511
- EVT_STATE_ID_SCR_SIGN_IN_BY_IMPORTING_THE_PRIMARY_KEY_MAX , // 512
+ EVT_STATE_ID_SCR_SIGN_IN_BY_IMPORTING_THE_PRIMARY_KEY_MIN=EVT_STATE_ID_SCR_CHANGE_PASSWORD_MAX+1, // 508
+ EVT_PRIMARY_KEY_ENTER_PASSPHRASE_REQUEST , // 509
+ EVT_PRIMARY_KEY_ENTER_PASSPHRASE_SIGN_IN_REQUEST , // 510
+ EVT_IMPORT_PRIMARY_KEY_WITH_SEED_REQUEST , // 511
+ EVT_PRIMARY_KEY_ENTER_PASSPHRASE_SUCCEED , // 512
+ EVT_SIGN_IN_BY_IMPORTING_THE_PRIMARY_KEY_BACK , // 513
+ EVT_STATE_ID_SCR_SIGN_IN_BY_IMPORTING_THE_PRIMARY_KEY_MAX , // 514
};
enum EVT_STATE_ID_SCR_SIGN_IN_MANUALLY
{
- EVT_STATE_ID_SCR_SIGN_IN_MANUALLY_MIN=EVT_STATE_ID_SCR_SIGN_IN_BY_IMPORTING_THE_PRIMARY_KEY_MAX+1, // 513
- EVT_ADD_PRIMARY_KEY_ACCOUNT_REQUEST , // 514
- EVT_PRIMARY_KEY_CHECK_USERNAME_REQUEST , // 515
- EVT_CHALLENGE_MESSAGE_REFRESH_REQUEST , // 516
- EVT_ADD_PRIMARY_KEY_ACCOUNT_SUCCEED , // 517
- EVT_STATE_ID_SCR_SIGN_IN_MANUALLY_MAX , // 518
+ EVT_STATE_ID_SCR_SIGN_IN_MANUALLY_MIN=EVT_STATE_ID_SCR_SIGN_IN_BY_IMPORTING_THE_PRIMARY_KEY_MAX+1, // 515
+ EVT_ADD_PRIMARY_KEY_ACCOUNT_REQUEST , // 516
+ EVT_PRIMARY_KEY_CHECK_USERNAME_REQUEST , // 517
+ EVT_CHALLENGE_MESSAGE_REFRESH_REQUEST , // 518
+ EVT_ADD_PRIMARY_KEY_ACCOUNT_SUCCEED , // 519
+ EVT_STATE_ID_SCR_SIGN_IN_MANUALLY_MAX , // 520
};
enum EVT_STATE_ID_SCR_LOGIN_WITH_SOFTWARE_KEY
{
- EVT_STATE_ID_SCR_LOGIN_WITH_SOFTWARE_KEY_MIN=EVT_STATE_ID_SCR_SIGN_IN_MANUALLY_MAX+1, // 519
- EVT_PRIMARY_KEY_SIGNIN_ACCOUNT_REQUEST , // 520
- EVT_LOGIN_WITH_SOFTWARE_KEY_BACK , // 521
- EVT_LOGIN_WITH_SOFTWARE_KEY_SUCCEED , // 522
- EVT_STATE_ID_SCR_LOGIN_WITH_SOFTWARE_KEY_MAX , // 523
+ EVT_STATE_ID_SCR_LOGIN_WITH_SOFTWARE_KEY_MIN=EVT_STATE_ID_SCR_SIGN_IN_MANUALLY_MAX+1, // 521
+ EVT_PRIMARY_KEY_SIGNIN_ACCOUNT_REQUEST , // 522
+ EVT_LOGIN_WITH_SOFTWARE_KEY_BACK , // 523
+ EVT_LOGIN_WITH_SOFTWARE_KEY_SUCCEED , // 524
+ EVT_STATE_ID_SCR_LOGIN_WITH_SOFTWARE_KEY_MAX , // 525
};
enum EVT_STATE_ID_SCR_REPLACE_PRIMARY_KEY
{
- EVT_STATE_ID_SCR_REPLACE_PRIMARY_KEY_MIN=EVT_STATE_ID_SCR_LOGIN_WITH_SOFTWARE_KEY_MAX+1, // 524
- EVT_REPLACE_PRIMARY_KEY_REQUEST , // 525
- EVT_STATE_ID_SCR_REPLACE_PRIMARY_KEY_MAX , // 526
+ EVT_STATE_ID_SCR_REPLACE_PRIMARY_KEY_MIN=EVT_STATE_ID_SCR_LOGIN_WITH_SOFTWARE_KEY_MAX+1, // 526
+ EVT_REPLACE_PRIMARY_KEY_REQUEST , // 527
+ EVT_STATE_ID_SCR_REPLACE_PRIMARY_KEY_MAX , // 528
};
enum EVT_STATE_ID_SCR_PRIMARY_KEY_CONFIGURATION
{
- EVT_STATE_ID_SCR_PRIMARY_KEY_CONFIGURATION_MIN=EVT_STATE_ID_SCR_REPLACE_PRIMARY_KEY_MAX+1, // 527
- EVT_PRIMARY_KEY_SIGN_IN_REQUEST , // 528
- EVT_PRIMARY_KEY_SIGN_IN_SUCCEED , // 529
- EVT_PRIMARY_KEY_CONFIGURATION_BACK , // 530
- EVT_PRIMARY_KEY_CONFIGURATION_FINISHED , // 531
- EVT_STATE_ID_SCR_PRIMARY_KEY_CONFIGURATION_MAX , // 532
+ EVT_STATE_ID_SCR_PRIMARY_KEY_CONFIGURATION_MIN=EVT_STATE_ID_SCR_REPLACE_PRIMARY_KEY_MAX+1, // 529
+ EVT_PRIMARY_KEY_SIGN_IN_REQUEST , // 530
+ EVT_PRIMARY_KEY_SIGN_IN_SUCCEED , // 531
+ EVT_PRIMARY_KEY_CONFIGURATION_BACK , // 532
+ EVT_PRIMARY_KEY_CONFIGURATION_FINISHED , // 533
+ EVT_STATE_ID_SCR_PRIMARY_KEY_CONFIGURATION_MAX , // 534
};
enum EVT_STATE_ID_SCR_SIGN_IN
{
- EVT_STATE_ID_SCR_SIGN_IN_MIN=EVT_STATE_ID_SCR_PRIMARY_KEY_CONFIGURATION_MAX+1, // 533
- EVT_SIGN_IN_PASSWORD_REQUEST , // 534
- EVT_SIGN_IN_PRIMARY_KEY_REQUEST , // 535
- EVT_SHOW_SIGN_IN_PRIMARY_KEY_REQUEST , // 536
- EVT_STATE_ID_SCR_SIGN_IN_MAX , // 537
+ EVT_STATE_ID_SCR_SIGN_IN_MIN=EVT_STATE_ID_SCR_PRIMARY_KEY_CONFIGURATION_MAX+1, // 535
+ EVT_SIGN_IN_PASSWORD_REQUEST , // 536
+ EVT_SIGN_IN_PRIMARY_KEY_REQUEST , // 537
+ EVT_SHOW_SIGN_IN_PRIMARY_KEY_REQUEST , // 538
+ EVT_STATE_ID_SCR_SIGN_IN_MAX , // 539
};
enum EVT_STATE_ID_SCR_UPDATE_PROFILE
{
- EVT_STATE_ID_SCR_UPDATE_PROFILE_MIN=EVT_STATE_ID_SCR_SIGN_IN_MAX+1, // 538
- EVT_UPDATE_PROFILE_REQUEST , // 539
- EVT_UPDATE_PROFILE_BACK , // 540
- EVT_STATE_ID_SCR_UPDATE_PROFILE_MAX , // 541
+ EVT_STATE_ID_SCR_UPDATE_PROFILE_MIN=EVT_STATE_ID_SCR_SIGN_IN_MAX+1, // 540
+ EVT_UPDATE_PROFILE_REQUEST , // 541
+ EVT_UPDATE_PROFILE_BACK , // 542
+ EVT_STATE_ID_SCR_UPDATE_PROFILE_MAX , // 543
};
enum EVT_STATE_ID_SCR_TAPSIGNER_RECOVERED_SUCCESS
{
- EVT_STATE_ID_SCR_TAPSIGNER_RECOVERED_SUCCESS_MIN=EVT_STATE_ID_SCR_UPDATE_PROFILE_MAX+1, // 542
- EVT_TAPSIGNER_RECOVERED_KEY_INFO_REQUEST , // 543
- EVT_STATE_ID_SCR_TAPSIGNER_RECOVERED_SUCCESS_MAX , // 544
+ EVT_STATE_ID_SCR_TAPSIGNER_RECOVERED_SUCCESS_MIN=EVT_STATE_ID_SCR_UPDATE_PROFILE_MAX+1, // 544
+ EVT_TAPSIGNER_RECOVERED_KEY_INFO_REQUEST , // 545
+ EVT_STATE_ID_SCR_TAPSIGNER_RECOVERED_SUCCESS_MAX , // 546
};
enum EVT_STATE_ID_SCR_ENTER_BACKUP_PASSWORD
{
- EVT_STATE_ID_SCR_ENTER_BACKUP_PASSWORD_MIN=EVT_STATE_ID_SCR_TAPSIGNER_RECOVERED_SUCCESS_MAX+1, // 545
- EVT_INPUT_BACKUP_PASSWORD_REQUEST , // 546
- EVT_ENTER_BACKUP_PASSWORD_BACK , // 547
- EVT_TAPSIGNER_RECOVERED_SUCCESS_REQUEST , // 548
- EVT_STATE_ID_SCR_ENTER_BACKUP_PASSWORD_MAX , // 549
+ EVT_STATE_ID_SCR_ENTER_BACKUP_PASSWORD_MIN=EVT_STATE_ID_SCR_TAPSIGNER_RECOVERED_SUCCESS_MAX+1, // 547
+ EVT_INPUT_BACKUP_PASSWORD_REQUEST , // 548
+ EVT_ENTER_BACKUP_PASSWORD_BACK , // 549
+ EVT_TAPSIGNER_RECOVERED_SUCCESS_REQUEST , // 550
+ EVT_STATE_ID_SCR_ENTER_BACKUP_PASSWORD_MAX , // 551
};
enum EVT_STATE_ID_SCR_KEY_RECOVERY_ANSER_SECURITY_QUESTION
{
- EVT_STATE_ID_SCR_KEY_RECOVERY_ANSER_SECURITY_QUESTION_MIN=EVT_STATE_ID_SCR_ENTER_BACKUP_PASSWORD_MAX+1, // 550
- EVT_INPUT_KEY_RECOVERY_ANSER_REQUEST , // 551
- EVT_ANSER_SECURITY_QUESTION_BACK , // 552
- EVT_ENTER_BACKUP_PASSWORD_RERQUEST , // 553
- EVT_STATE_ID_SCR_KEY_RECOVERY_ANSER_SECURITY_QUESTION_MAX , // 554
+ EVT_STATE_ID_SCR_KEY_RECOVERY_ANSER_SECURITY_QUESTION_MIN=EVT_STATE_ID_SCR_ENTER_BACKUP_PASSWORD_MAX+1, // 552
+ EVT_INPUT_KEY_RECOVERY_ANSER_REQUEST , // 553
+ EVT_ANSER_SECURITY_QUESTION_BACK , // 554
+ EVT_ENTER_BACKUP_PASSWORD_RERQUEST , // 555
+ EVT_STATE_ID_SCR_KEY_RECOVERY_ANSER_SECURITY_QUESTION_MAX , // 556
};
enum EVT_STATE_ID_SCR_KEY_RECOVERY
{
- EVT_STATE_ID_SCR_KEY_RECOVERY_MIN=EVT_STATE_ID_SCR_KEY_RECOVERY_ANSER_SECURITY_QUESTION_MAX+1, // 555
- EVT_INPUT_TAPSIGNER_SELECT_REQUEST , // 556
- EVT_ANSER_SECURITY_QUESTION_REQUEST , // 557
- EVT_STATE_ID_SCR_KEY_RECOVERY_MAX , // 558
+ EVT_STATE_ID_SCR_KEY_RECOVERY_MIN=EVT_STATE_ID_SCR_KEY_RECOVERY_ANSER_SECURITY_QUESTION_MAX+1, // 557
+ EVT_INPUT_TAPSIGNER_SELECT_REQUEST , // 558
+ EVT_ANSER_SECURITY_QUESTION_REQUEST , // 559
+ EVT_STATE_ID_SCR_KEY_RECOVERY_MAX , // 560
};
enum EVT_STATE_ID_SCR_REENTER_YOUR_PASSWORD
{
- EVT_STATE_ID_SCR_REENTER_YOUR_PASSWORD_MIN=EVT_STATE_ID_SCR_KEY_RECOVERY_MAX+1, // 559
- EVT_INPUT_PASSWORD_REQUEST , // 560
- EVT_REENTER_YOUR_PASSWORD_BACK , // 561
- EVT_STATE_ID_SCR_REENTER_YOUR_PASSWORD_MAX , // 562
+ EVT_STATE_ID_SCR_REENTER_YOUR_PASSWORD_MIN=EVT_STATE_ID_SCR_KEY_RECOVERY_MAX+1, // 561
+ EVT_INPUT_PASSWORD_REQUEST , // 562
+ EVT_REENTER_YOUR_PASSWORD_BACK , // 563
+ EVT_STATE_ID_SCR_REENTER_YOUR_PASSWORD_MAX , // 564
};
enum EVT_STATE_ID_SCR_SERVICE_SETTINGS
{
- EVT_STATE_ID_SCR_SERVICE_SETTINGS_MIN=EVT_STATE_ID_SCR_REENTER_YOUR_PASSWORD_MAX+1, // 563
- EVT_CLAIM_INHERITANCE_CHECK_REQUEST , // 564
- EVT_CO_SIGNING_SERVER_KEY_UPDATE_REQUEST , // 565
- EVT_CO_SIGNING_SERVER_KEY_UPDATE_SUCCEED , // 566
- EVT_SERVICE_SELECT_WALLET_REQUEST , // 567
- EVT_INHERITANCE_PLAN_FINALIZE_REQUEST , // 568
- EVT_SERVICE_SUPPORT_REQUEST , // 569
- EVT_INHERITANCE_WITHDRAW_BALANCE_REQUEST , // 570
- EVT_EDIT_YOUR_INHERITANCE_PLAN_REQUEST , // 571
- EVT_KEY_RECOVERY_REQUEST , // 572
- EVT_SELECT_YOUR_LOCKDOWN_PERIOD_REQUEST , // 573
- EVT_WALLET_CO_SIGN_POLICE_REQUEST , // 574
- EVT_LOCKDOWN_SUCCESS_REQUEST , // 575
- EVT_SETUP_SECURITY_QUESTION_REQUEST , // 576
- EVT_STATE_ID_SCR_SERVICE_SETTINGS_MAX , // 577
+ EVT_STATE_ID_SCR_SERVICE_SETTINGS_MIN=EVT_STATE_ID_SCR_REENTER_YOUR_PASSWORD_MAX+1, // 565
+ EVT_CLAIM_INHERITANCE_CHECK_REQUEST , // 566
+ EVT_CO_SIGNING_SERVER_KEY_UPDATE_REQUEST , // 567
+ EVT_CO_SIGNING_SERVER_KEY_UPDATE_SUCCEED , // 568
+ EVT_SERVICE_SELECT_WALLET_REQUEST , // 569
+ EVT_INHERITANCE_PLAN_FINALIZE_REQUEST , // 570
+ EVT_SERVICE_SUPPORT_REQUEST , // 571
+ EVT_INHERITANCE_WITHDRAW_BALANCE_REQUEST , // 572
+ EVT_EDIT_YOUR_INHERITANCE_PLAN_REQUEST , // 573
+ EVT_KEY_RECOVERY_REQUEST , // 574
+ EVT_SELECT_YOUR_LOCKDOWN_PERIOD_REQUEST , // 575
+ EVT_WALLET_CO_SIGN_POLICE_REQUEST , // 576
+ EVT_LOCKDOWN_SUCCESS_REQUEST , // 577
+ EVT_SETUP_SECURITY_QUESTION_REQUEST , // 578
+ EVT_STATE_ID_SCR_SERVICE_SETTINGS_MAX , // 579
};
enum EVT_STATE_ID_SCR_SELECT_YOUR_LOCKDOWN_PERIOD
{
- EVT_STATE_ID_SCR_SELECT_YOUR_LOCKDOWN_PERIOD_MIN=EVT_STATE_ID_SCR_SERVICE_SETTINGS_MAX+1, // 578
- EVT_INPUT_DAYS_VALUE_REQUEST , // 579
- EVT_LOCKDOWN_ANSER_SECURITY_QUESTION_REQUEST , // 580
- EVT_STATE_ID_SCR_SELECT_YOUR_LOCKDOWN_PERIOD_MAX , // 581
+ EVT_STATE_ID_SCR_SELECT_YOUR_LOCKDOWN_PERIOD_MIN=EVT_STATE_ID_SCR_SERVICE_SETTINGS_MAX+1, // 580
+ EVT_INPUT_DAYS_VALUE_REQUEST , // 581
+ EVT_LOCKDOWN_ANSER_SECURITY_QUESTION_REQUEST , // 582
+ EVT_STATE_ID_SCR_SELECT_YOUR_LOCKDOWN_PERIOD_MAX , // 583
};
enum EVT_STATE_ID_SCR_LOCKDOWN_ANSER_SECURITY_QUESTION
{
- EVT_STATE_ID_SCR_LOCKDOWN_ANSER_SECURITY_QUESTION_MIN=EVT_STATE_ID_SCR_SELECT_YOUR_LOCKDOWN_PERIOD_MAX+1, // 582
- EVT_INPUT_LOCKDOWN_ANSER_REQUEST , // 583
- EVT_LOCKDOWN_ANSER_SECURITY_QUESTION_BACK , // 584
- EVT_STATE_ID_SCR_LOCKDOWN_ANSER_SECURITY_QUESTION_MAX , // 585
+ EVT_STATE_ID_SCR_LOCKDOWN_ANSER_SECURITY_QUESTION_MIN=EVT_STATE_ID_SCR_SELECT_YOUR_LOCKDOWN_PERIOD_MAX+1, // 584
+ EVT_INPUT_LOCKDOWN_ANSER_REQUEST , // 585
+ EVT_LOCKDOWN_ANSER_SECURITY_QUESTION_BACK , // 586
+ EVT_STATE_ID_SCR_LOCKDOWN_ANSER_SECURITY_QUESTION_MAX , // 587
};
enum EVT_STATE_ID_SCR_LOCKDOWN_SUCCESS
{
- EVT_STATE_ID_SCR_LOCKDOWN_SUCCESS_MIN=EVT_STATE_ID_SCR_LOCKDOWN_ANSER_SECURITY_QUESTION_MAX+1, // 586
- EVT_LOCKDOWN_SUCCESS_CLOSE_REQUEST , // 587
- EVT_CLOSE_LOCKDOWN_SUCCESS , // 588
- EVT_STATE_ID_SCR_LOCKDOWN_SUCCESS_MAX , // 589
+ EVT_STATE_ID_SCR_LOCKDOWN_SUCCESS_MIN=EVT_STATE_ID_SCR_LOCKDOWN_ANSER_SECURITY_QUESTION_MAX+1, // 588
+ EVT_LOCKDOWN_SUCCESS_CLOSE_REQUEST , // 589
+ EVT_CLOSE_LOCKDOWN_SUCCESS , // 590
+ EVT_STATE_ID_SCR_LOCKDOWN_SUCCESS_MAX , // 591
};
enum EVT_STATE_ID_SCR_DUMMY_TRANSACTION_INFO
{
- EVT_STATE_ID_SCR_DUMMY_TRANSACTION_INFO_MIN=EVT_STATE_ID_SCR_LOCKDOWN_SUCCESS_MAX+1, // 590
- EVT_DUMMY_TRANSACTION_ACTION_ENTER_REQUEST , // 591
- EVT_DUMMY_TRANSACTION_INFO_BACK , // 592
- EVT_STATE_ID_SCR_DUMMY_TRANSACTION_INFO_MAX , // 593
+ EVT_STATE_ID_SCR_DUMMY_TRANSACTION_INFO_MIN=EVT_STATE_ID_SCR_LOCKDOWN_SUCCESS_MAX+1, // 592
+ EVT_DUMMY_TRANSACTION_ACTION_ENTER_REQUEST , // 593
+ EVT_DUMMY_TRANSACTION_INFO_BACK , // 594
+ EVT_STATE_ID_SCR_DUMMY_TRANSACTION_INFO_MAX , // 595
};
enum EVT_STATE_ID_SCR_INHERITANCE_CONFIRM_TRANSACTION
{
- EVT_STATE_ID_SCR_INHERITANCE_CONFIRM_TRANSACTION_MIN=EVT_STATE_ID_SCR_DUMMY_TRANSACTION_INFO_MAX+1, // 594
- EVT_INHERITANCE_CREATE_DRAFT_TX_FEE_REQ , // 595
- EVT_INHERITANCE_TRANSACTION_DETAILS_REQUEST , // 596
- EVT_INHERITANCE_CONFIRM_TRANSACTION_BACK , // 597
- EVT_STATE_ID_SCR_INHERITANCE_CONFIRM_TRANSACTION_MAX , // 598
+ EVT_STATE_ID_SCR_INHERITANCE_CONFIRM_TRANSACTION_MIN=EVT_STATE_ID_SCR_DUMMY_TRANSACTION_INFO_MAX+1, // 596
+ EVT_INHERITANCE_CREATE_DRAFT_TX_FEE_REQ , // 597
+ EVT_INHERITANCE_TRANSACTION_DETAILS_REQUEST , // 598
+ EVT_INHERITANCE_CONFIRM_TRANSACTION_BACK , // 599
+ EVT_STATE_ID_SCR_INHERITANCE_CONFIRM_TRANSACTION_MAX , // 600
};
enum EVT_STATE_ID_SCR_INHERITANCE_TRANSACTION_DETAILS
{
- EVT_STATE_ID_SCR_INHERITANCE_TRANSACTION_DETAILS_MIN=EVT_STATE_ID_SCR_INHERITANCE_CONFIRM_TRANSACTION_MAX+1, // 599
- EVT_INHERITANCE_TRANSACTION_DETAILS_BACK , // 600
- EVT_STATE_ID_SCR_INHERITANCE_TRANSACTION_DETAILS_MAX , // 601
+ EVT_STATE_ID_SCR_INHERITANCE_TRANSACTION_DETAILS_MIN=EVT_STATE_ID_SCR_INHERITANCE_CONFIRM_TRANSACTION_MAX+1, // 601
+ EVT_INHERITANCE_TRANSACTION_DETAILS_BACK , // 602
+ EVT_STATE_ID_SCR_INHERITANCE_TRANSACTION_DETAILS_MAX , // 603
};
enum EVT_STATE_ID_SCR_INHERITANCE_WITHDRAW_BALANCE
{
- EVT_STATE_ID_SCR_INHERITANCE_WITHDRAW_BALANCE_MIN=EVT_STATE_ID_SCR_INHERITANCE_TRANSACTION_DETAILS_MAX+1, // 602
- EVT_INHERITANCE_CREATE_DRAFT_TX_REQUEST , // 603
- EVT_INHERITANCE_NEW_TRANSACTION_REQ , // 604
- EVT_INHERITANCE_WITHDRAW_BALANCE_BACK , // 605
- EVT_INHERITANCE_CONFIRM_TRANSACTION_REQUEST , // 606
- EVT_STATE_ID_SCR_INHERITANCE_WITHDRAW_BALANCE_MAX , // 607
+ EVT_STATE_ID_SCR_INHERITANCE_WITHDRAW_BALANCE_MIN=EVT_STATE_ID_SCR_INHERITANCE_TRANSACTION_DETAILS_MAX+1, // 604
+ EVT_INHERITANCE_CREATE_DRAFT_TX_REQUEST , // 605
+ EVT_INHERITANCE_NEW_TRANSACTION_REQ , // 606
+ EVT_INHERITANCE_WITHDRAW_BALANCE_BACK , // 607
+ EVT_INHERITANCE_CONFIRM_TRANSACTION_REQUEST , // 608
+ EVT_STATE_ID_SCR_INHERITANCE_WITHDRAW_BALANCE_MAX , // 609
};
enum EVT_STATE_ID_SCR_ADD_HARDWARE_ASK
{
- EVT_STATE_ID_SCR_ADD_HARDWARE_ASK_MIN=EVT_STATE_ID_SCR_INHERITANCE_WITHDRAW_BALANCE_MAX+1, // 608
- EVT_ADD_HARDWARE_ASK_ENTER , // 609
- EVT_STATE_ID_SCR_ADD_HARDWARE_ASK_MAX , // 610
+ EVT_STATE_ID_SCR_ADD_HARDWARE_ASK_MIN=EVT_STATE_ID_SCR_INHERITANCE_WITHDRAW_BALANCE_MAX+1, // 610
+ EVT_ADD_HARDWARE_ASK_ENTER , // 611
+ EVT_STATE_ID_SCR_ADD_HARDWARE_ASK_MAX , // 612
};
enum EVT_STATE_ID_SCR_ADD_HARDWARE
{
- EVT_STATE_ID_SCR_ADD_HARDWARE_MIN=EVT_STATE_ID_SCR_ADD_HARDWARE_ASK_MAX+1, // 611
- EVT_SCAN_HARDWARE_DEVICE_REQUEST , // 612
- EVT_ADD_HARDWARE_DEVICE_REQUEST , // 613
- EVT_STATE_ID_SCR_ADD_HARDWARE_MAX , // 614
+ EVT_STATE_ID_SCR_ADD_HARDWARE_MIN=EVT_STATE_ID_SCR_ADD_HARDWARE_ASK_MAX+1, // 613
+ EVT_SCAN_HARDWARE_DEVICE_REQUEST , // 614
+ EVT_ADD_HARDWARE_DEVICE_REQUEST , // 615
+ EVT_STATE_ID_SCR_ADD_HARDWARE_MAX , // 616
};
enum EVT_STATE_ID_SCR_SELECT_WALLET_CO_SIGN_POLICE
{
- EVT_STATE_ID_SCR_SELECT_WALLET_CO_SIGN_POLICE_MIN=EVT_STATE_ID_SCR_ADD_HARDWARE_MAX+1, // 615
- EVT_SELECT_WALLET_REQUEST , // 616
- EVT_STATE_ID_SCR_SELECT_WALLET_CO_SIGN_POLICE_MAX , // 617
+ EVT_STATE_ID_SCR_SELECT_WALLET_CO_SIGN_POLICE_MIN=EVT_STATE_ID_SCR_ADD_HARDWARE_MAX+1, // 617
+ EVT_SELECT_WALLET_REQUEST , // 618
+ EVT_STATE_ID_SCR_SELECT_WALLET_CO_SIGN_POLICE_MAX , // 619
};
enum EVT_STATE_ID_SCR_EDIT_YOUR_INHERITANCE_PLAN
{
- EVT_STATE_ID_SCR_EDIT_YOUR_INHERITANCE_PLAN_MIN=EVT_STATE_ID_SCR_SELECT_WALLET_CO_SIGN_POLICE_MAX+1, // 618
- EVT_UPDATE_ACTIVATION_DATE_REQUEST , // 619
- EVT_UPDATE_MESSAGE_REQUEST , // 620
- EVT_UPDATE_BUFFER_PERIOD_REQUEST , // 621
- EVT_UPDATE_NOTIFICATION_PREFERENCE_REQ , // 622
- EVT_NOT_UPDATE_ANY_NOTI_REQ , // 623
- EVT_STATE_ID_SCR_EDIT_YOUR_INHERITANCE_PLAN_MAX , // 624
+ EVT_STATE_ID_SCR_EDIT_YOUR_INHERITANCE_PLAN_MIN=EVT_STATE_ID_SCR_SELECT_WALLET_CO_SIGN_POLICE_MAX+1, // 620
+ EVT_UPDATE_ACTIVATION_DATE_REQUEST , // 621
+ EVT_UPDATE_MESSAGE_REQUEST , // 622
+ EVT_UPDATE_BUFFER_PERIOD_REQUEST , // 623
+ EVT_UPDATE_NOTIFICATION_PREFERENCE_REQ , // 624
+ EVT_NOT_UPDATE_ANY_NOTI_REQ , // 625
+ EVT_STATE_ID_SCR_EDIT_YOUR_INHERITANCE_PLAN_MAX , // 626
};
enum EVT_STATE_ID_SCR_SHARE_YOUR_SECRETS
{
- EVT_STATE_ID_SCR_SHARE_YOUR_SECRETS_MIN=EVT_STATE_ID_SCR_EDIT_YOUR_INHERITANCE_PLAN_MAX+1, // 625
- EVT_UPDATE_YOUR_SECRET_REQUEST , // 626
- EVT_STATE_ID_SCR_SHARE_YOUR_SECRETS_MAX , // 627
+ EVT_STATE_ID_SCR_SHARE_YOUR_SECRETS_MIN=EVT_STATE_ID_SCR_EDIT_YOUR_INHERITANCE_PLAN_MAX+1, // 627
+ EVT_UPDATE_YOUR_SECRET_REQUEST , // 628
+ EVT_STATE_ID_SCR_SHARE_YOUR_SECRETS_MAX , // 629
};
enum EVT_STATE_ID_SCR_ADD_HARDWARE_EXIST
{
- EVT_STATE_ID_SCR_ADD_HARDWARE_EXIST_MIN=EVT_STATE_ID_SCR_SHARE_YOUR_SECRETS_MAX+1, // 628
- EVT_ADD_EXIST_HARDWARE_REQUEST , // 629
- EVT_ADD_NEW_HARDWARE_REQUEST , // 630
- EVT_STATE_ID_SCR_ADD_HARDWARE_EXIST_MAX , // 631
+ EVT_STATE_ID_SCR_ADD_HARDWARE_EXIST_MIN=EVT_STATE_ID_SCR_SHARE_YOUR_SECRETS_MAX+1, // 630
+ EVT_ADD_EXIST_HARDWARE_REQUEST , // 631
+ EVT_ADD_NEW_HARDWARE_REQUEST , // 632
+ EVT_STATE_ID_SCR_ADD_HARDWARE_EXIST_MAX , // 633
};
enum EVT_STATE_ID_SCR_DASHBOARD_ALERT_INFO
{
- EVT_STATE_ID_SCR_DASHBOARD_ALERT_INFO_MIN=EVT_STATE_ID_SCR_ADD_HARDWARE_EXIST_MAX+1, // 632
- EVT_DASHBOARD_ALERT_INFO_ENTER , // 633
- EVT_ADD_HARDWARE_KEY_EXIST_REQ , // 634
- EVT_ADD_HARDWARE_KEY_REQUEST , // 635
- EVT_STATE_ID_SCR_DASHBOARD_ALERT_INFO_MAX , // 636
+ EVT_STATE_ID_SCR_DASHBOARD_ALERT_INFO_MIN=EVT_STATE_ID_SCR_ADD_HARDWARE_EXIST_MAX+1, // 634
+ EVT_DASHBOARD_ALERT_INFO_ENTER , // 635
+ EVT_ADD_HARDWARE_KEY_EXIST_REQ , // 636
+ EVT_ADD_HARDWARE_KEY_REQUEST , // 637
+ EVT_STATE_ID_SCR_DASHBOARD_ALERT_INFO_MAX , // 638
};
enum EVT_STATE_ID_SCR_KEY_HEALTH_CHECK_STATUS
{
- EVT_STATE_ID_SCR_KEY_HEALTH_CHECK_STATUS_MIN=EVT_STATE_ID_SCR_DASHBOARD_ALERT_INFO_MAX+1, // 637
- EVT_KEY_HEALTH_CHECK_STATUS_ENTER , // 638
- EVT_STATE_ID_SCR_KEY_HEALTH_CHECK_STATUS_MAX , // 639
+ EVT_STATE_ID_SCR_KEY_HEALTH_CHECK_STATUS_MIN=EVT_STATE_ID_SCR_DASHBOARD_ALERT_INFO_MAX+1, // 639
+ EVT_KEY_HEALTH_CHECK_STATUS_ENTER , // 640
+ EVT_STATE_ID_SCR_KEY_HEALTH_CHECK_STATUS_MAX , // 641
};
enum EVT_STATE_ID_SCR_HEALTH_CHECK_STARTING
{
- EVT_STATE_ID_SCR_HEALTH_CHECK_STARTING_MIN=EVT_STATE_ID_SCR_KEY_HEALTH_CHECK_STATUS_MAX+1, // 640
- EVT_HEALTH_CHECK_ACTION_ENTER_REQUEST , // 641
- EVT_HEALTH_CHECK_STARTING_CLOSE , // 642
- EVT_STATE_ID_SCR_HEALTH_CHECK_STARTING_MAX , // 643
+ EVT_STATE_ID_SCR_HEALTH_CHECK_STARTING_MIN=EVT_STATE_ID_SCR_KEY_HEALTH_CHECK_STATUS_MAX+1, // 642
+ EVT_HEALTH_CHECK_ACTION_ENTER_REQUEST , // 643
+ EVT_HEALTH_CHECK_STARTING_CLOSE , // 644
+ EVT_STATE_ID_SCR_HEALTH_CHECK_STARTING_MAX , // 645
};
enum EVT_STATE_ID_SCR_DASHBOARD_ALERT_SUCCESS
{
- EVT_STATE_ID_SCR_DASHBOARD_ALERT_SUCCESS_MIN=EVT_STATE_ID_SCR_HEALTH_CHECK_STARTING_MAX+1, // 644
- EVT_DASHBOARD_ALERT_SUCCESS_ENTER_REQUEST , // 645
- EVT_DASHBOARD_ALERT_SUCCESS_CLOSE , // 646
- EVT_STATE_ID_SCR_DASHBOARD_ALERT_SUCCESS_MAX , // 647
+ EVT_STATE_ID_SCR_DASHBOARD_ALERT_SUCCESS_MIN=EVT_STATE_ID_SCR_HEALTH_CHECK_STARTING_MAX+1, // 646
+ EVT_DASHBOARD_ALERT_SUCCESS_ENTER_REQUEST , // 647
+ EVT_DASHBOARD_ALERT_SUCCESS_CLOSE , // 648
+ EVT_STATE_ID_SCR_DASHBOARD_ALERT_SUCCESS_MAX , // 649
};
enum EVT_STATE_ID_SCR_SETUP_SECURITY_QUESTION
{
- EVT_STATE_ID_SCR_SETUP_SECURITY_QUESTION_MIN=EVT_STATE_ID_SCR_DASHBOARD_ALERT_SUCCESS_MAX+1, // 648
- EVT_INPUT_SECURITY_QUESTION_REQUEST , // 649
- EVT_SETUP_ANSWER_SECURITY_QUESTION_REQ , // 650
- EVT_STATE_ID_SCR_SETUP_SECURITY_QUESTION_MAX , // 651
+ EVT_STATE_ID_SCR_SETUP_SECURITY_QUESTION_MIN=EVT_STATE_ID_SCR_DASHBOARD_ALERT_SUCCESS_MAX+1, // 650
+ EVT_INPUT_SECURITY_QUESTION_REQUEST , // 651
+ EVT_SETUP_ANSWER_SECURITY_QUESTION_REQ , // 652
+ EVT_STATE_ID_SCR_SETUP_SECURITY_QUESTION_MAX , // 653
};
enum EVT_STATE_ID_SCR_SETUP_ANSWER_SECURITY_QUESTION
{
- EVT_STATE_ID_SCR_SETUP_ANSWER_SECURITY_QUESTION_MIN=EVT_STATE_ID_SCR_SETUP_SECURITY_QUESTION_MAX+1, // 652
- EVT_INPUT_ANSWER_SECURITY_QUESTION_REQ , // 653
- EVT_SETUP_ANSWER_SECURITY_QUESTION_BACK , // 654
- EVT_STATE_ID_SCR_SETUP_ANSWER_SECURITY_QUESTION_MAX , // 655
+ EVT_STATE_ID_SCR_SETUP_ANSWER_SECURITY_QUESTION_MIN=EVT_STATE_ID_SCR_SETUP_SECURITY_QUESTION_MAX+1, // 654
+ EVT_INPUT_ANSWER_SECURITY_QUESTION_REQ , // 655
+ EVT_SETUP_ANSWER_SECURITY_QUESTION_BACK , // 656
+ EVT_STATE_ID_SCR_SETUP_ANSWER_SECURITY_QUESTION_MAX , // 657
};
enum EVT_STATE_ID_SCR_RECURRING_PAYMENTS
{
- EVT_STATE_ID_SCR_RECURRING_PAYMENTS_MIN=EVT_STATE_ID_SCR_SETUP_ANSWER_SECURITY_QUESTION_MAX+1, // 656
- EVT_RECURRING_PAYMENTS_ENTER , // 657
- EVT_STATE_ID_SCR_RECURRING_PAYMENTS_MAX , // 658
+ EVT_STATE_ID_SCR_RECURRING_PAYMENTS_MIN=EVT_STATE_ID_SCR_SETUP_ANSWER_SECURITY_QUESTION_MAX+1, // 658
+ EVT_RECURRING_PAYMENTS_ENTER , // 659
+ EVT_STATE_ID_SCR_RECURRING_PAYMENTS_MAX , // 660
};
enum EVT_STATE_ID_SCR_ONBOARDING
{
- EVT_STATE_ID_SCR_ONBOARDING_MIN=EVT_STATE_ID_SCR_RECURRING_PAYMENTS_MAX+1, // 659
- EVT_ONBOARDING_ACTION_REQUEST , // 660
- EVT_ONBOARDING_CLOSE , // 661
- EVT_STATE_ID_SCR_ONBOARDING_MAX , // 662
+ EVT_STATE_ID_SCR_ONBOARDING_MIN=EVT_STATE_ID_SCR_RECURRING_PAYMENTS_MAX+1, // 661
+ EVT_ONBOARDING_ACTION_REQUEST , // 662
+ EVT_ONBOARDING_CLOSE , // 663
+ EVT_STATE_ID_SCR_ONBOARDING_MAX , // 664
};
enum EVT_STATE_ID_SCR_SELECT_SERVER
{
- EVT_STATE_ID_SCR_SELECT_SERVER_MIN=EVT_STATE_ID_SCR_ONBOARDING_MAX+1, // 663
- EVT_SELECT_SERVER_ENTER , // 664
- EVT_STATE_ID_SCR_SELECT_SERVER_MAX , // 665
+ EVT_STATE_ID_SCR_SELECT_SERVER_MIN=EVT_STATE_ID_SCR_ONBOARDING_MAX+1, // 665
+ EVT_SELECT_SERVER_ENTER , // 666
+ EVT_STATE_ID_SCR_SELECT_SERVER_MAX , // 667
};
enum EVT_STATE_ID_SCR_CHANGE_EMAIL
{
- EVT_STATE_ID_SCR_CHANGE_EMAIL_MIN=EVT_STATE_ID_SCR_SELECT_SERVER_MAX+1, // 666
- EVT_CHANGE_EMAIL_ENTER , // 667
- EVT_STATE_ID_SCR_CHANGE_EMAIL_MAX , // 668
+ EVT_STATE_ID_SCR_CHANGE_EMAIL_MIN=EVT_STATE_ID_SCR_SELECT_SERVER_MAX+1, // 668
+ EVT_CHANGE_EMAIL_ENTER , // 669
+ EVT_STATE_ID_SCR_CHANGE_EMAIL_MAX , // 670
};
enum EVT_STATE_ID_SCR_REPLACE_SELECT_KEY
{
- EVT_STATE_ID_SCR_REPLACE_SELECT_KEY_MIN=EVT_STATE_ID_SCR_CHANGE_EMAIL_MAX+1, // 669
- EVT_REPLACE_SELECT_KEY_ENTER , // 670
- EVT_STATE_ID_SCR_REPLACE_SELECT_KEY_MAX , // 671
+ EVT_STATE_ID_SCR_REPLACE_SELECT_KEY_MIN=EVT_STATE_ID_SCR_CHANGE_EMAIL_MAX+1, // 671
+ EVT_REPLACE_SELECT_KEY_ENTER , // 672
+ EVT_STATE_ID_SCR_REPLACE_SELECT_KEY_MAX , // 673
};
enum EVT_STATE_ID_SCR_REPLACE_KEYS
{
- EVT_STATE_ID_SCR_REPLACE_KEYS_MIN=EVT_STATE_ID_SCR_REPLACE_SELECT_KEY_MAX+1, // 672
- EVT_REPLACE_KEYS_ENTER , // 673
- EVT_STATE_ID_SCR_REPLACE_KEYS_MAX , // 674
+ EVT_STATE_ID_SCR_REPLACE_KEYS_MIN=EVT_STATE_ID_SCR_REPLACE_SELECT_KEY_MAX+1, // 674
+ EVT_REPLACE_KEYS_ENTER , // 675
+ EVT_STATE_ID_SCR_REPLACE_KEYS_MAX , // 676
+ };
+ enum EVT_STATE_ID_SCR_EDIT_MEMBERS
+ {
+ EVT_STATE_ID_SCR_EDIT_MEMBERS_MIN=EVT_STATE_ID_SCR_REPLACE_KEYS_MAX+1, // 677
+ EVT_EDIT_MEMBERS_ENTER_REQUEST , // 678
+ EVT_EDIT_MEMBERS_CLOSE , // 679
+ EVT_STATE_ID_SCR_EDIT_MEMBERS_MAX , // 680
};
enum EVT_STATE_ID_SCR_SIGN_IN_VIA_XPUB
{
- EVT_STATE_ID_SCR_SIGN_IN_VIA_XPUB_MIN=EVT_STATE_ID_SCR_REPLACE_KEYS_MAX+1, // 675
- EVT_SIGN_IN_VIA_XPUB_ENTER , // 676
- EVT_STATE_ID_SCR_SIGN_IN_VIA_XPUB_MAX , // 677
+ EVT_STATE_ID_SCR_SIGN_IN_VIA_XPUB_MIN=EVT_STATE_ID_SCR_EDIT_MEMBERS_MAX+1, // 681
+ EVT_SIGN_IN_VIA_XPUB_ENTER , // 682
+ EVT_SIGN_IN_VIA_XPUB_CLOSE , // 683
+ EVT_STATE_ID_SCR_SIGN_IN_VIA_XPUB_MAX , // 684
};
};
diff --git a/Views/Diagram/NunchuckDiagram.asta b/Views/Diagram/NunchuckDiagram.asta
index daebc6ee..62051bf4 100644
Binary files a/Views/Diagram/NunchuckDiagram.asta and b/Views/Diagram/NunchuckDiagram.asta differ
diff --git a/Views/Diagram/NunchuckDiagram.xml b/Views/Diagram/NunchuckDiagram.xml
index 3b4f1f91..ee5897b8 100644
--- a/Views/Diagram/NunchuckDiagram.xml
+++ b/Views/Diagram/NunchuckDiagram.xml
@@ -212,6 +212,8 @@
+
+
@@ -232,6 +234,8 @@
+
+
@@ -5602,6 +5606,82 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -9103,6 +9183,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -9232,6 +9380,10 @@
+
+
+
+
@@ -11095,6 +11247,46 @@
2192.0087014603932
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -1929.6916523863752
+ 3800.960212035567
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -598.0433333298256
+ 3800.9567398133486
+
+
@@ -11114,7 +11306,7 @@
-701.6562500151983
-
+
-3465.4366360765816
-613.8537542150955
@@ -11164,7 +11356,7 @@
-701.6562500151983
-
+
-3416.6932082294265
-574.9310010848872
@@ -11214,7 +11406,7 @@
-701.6562500151983
-
+
-3263.720099783978
151.24276517468422
@@ -11272,7 +11464,7 @@
-701.6562500151983
-
+
-3300.3752721977708
201.30950309789685
@@ -11330,7 +11522,7 @@
-701.6562500151983
-
+
-4025.858169082271
-45.62217743994472
@@ -11373,7 +11565,7 @@
-701.6562500151983
-
+
-4135.358169082271
-45.62217743994472
@@ -11416,7 +11608,7 @@
-701.6562500151983
-
+
-4001.5976339008776
-590.6012374151242
@@ -11459,7 +11651,7 @@
-701.6562500151983
-
+
-4588.967982269121
-543.1036283238357
@@ -11509,7 +11701,7 @@
-701.6562500151983
-
+
-4550.765506583886
-584.1292693494768
@@ -11559,7 +11751,7 @@
-701.6562500151983
-
+
-3781.6313790954027
281.7354294057032
@@ -11602,7 +11794,7 @@
-701.6562500151983
-
+
-4058.896569990833
281.7354294057032
@@ -11645,7 +11837,7 @@
-697.1107954697438
-
+
-1984.4200166608694
-606.1922695046433
@@ -11688,7 +11880,7 @@
-697.1107954697438
-
+
-1958.4200166608694
-568.6571484166282
@@ -11731,7 +11923,7 @@
-697.1107954697438
-
+
-920.2899035516436
-725.550841097089
@@ -11774,7 +11966,7 @@
-697.1107954697438
-
+
-1500.1558264929793
-725.550841097089
@@ -11817,7 +12009,7 @@
-697.1107954697438
-
+
-3315.847955490415
-677.3342736809511
@@ -11875,7 +12067,7 @@
-697.1107954697438
-
+
-879.351963353248
-371.21915424301585
@@ -11918,7 +12110,7 @@
-697.1107954697438
-
+
-1429.4740034672288
960.2456015034014
@@ -11968,7 +12160,7 @@
-697.1107954697438
-
+
-752.4577489822182
1060.2456015034013
@@ -12026,7 +12218,7 @@
-697.1107954697438
-
+
-4653.890837923096
-236.30685241647302
@@ -12065,7 +12257,7 @@
-697.1107954697438
-
+
-4656.890837923096
-284.1641345101294
@@ -12104,7 +12296,7 @@
-697.1107954697438
-
+
-3439.088367287303
-780.1689771295894
@@ -12158,7 +12350,7 @@
-697.1107954697438
-
+
-5255.802841817371
-56.38024610783256
@@ -12201,7 +12393,7 @@
-697.1107954697438
-
+
-5604.078703886336
-56.38024610783256
@@ -12244,7 +12436,7 @@
-697.1107954697438
-
+
-4991.015329810498
458.4836088756332
@@ -12302,7 +12494,7 @@
-697.1107954697438
-
+
-5061.681996477164
248.07292199643342
@@ -12356,7 +12548,7 @@
-697.1107954697438
-
+
-4066.678678624242
-590.6012374151242
@@ -12399,7 +12591,7 @@
-697.1107954697438
-
+
-5183.002908335401
-661.5062753953052
@@ -12442,7 +12634,7 @@
-697.1107954697438
-
+
-5639.175322128504
-661.5062753953052
@@ -12485,7 +12677,7 @@
-697.1107954697438
-
+
-4670.441156136609
-304.8065514706275
@@ -12539,7 +12731,7 @@
-697.1107954697438
-
+
-4880.441156136609
-165.90251657422627
@@ -12593,7 +12785,7 @@
-697.1107954697438
-
+
-4022.7490550219
-1439.8727559557838
@@ -12651,7 +12843,7 @@
-697.1107954697438
-
+
-2739.9841864450864
352.7882200288675
@@ -12694,7 +12886,7 @@
-697.1107954697438
-
+
-3185.6856170253577
32.91579937266545
@@ -12752,7 +12944,7 @@
-697.1107954697438
-
+
-2073.403245404529
-45.51654719046505
@@ -12806,7 +12998,7 @@
-697.1107954697438
-
+
-1752.0211115196848
504.2718242731226
@@ -12856,7 +13048,7 @@
-697.1107954697438
-
+
-1506.1724761737607
-371.21915424301585
@@ -12899,7 +13091,7 @@
-697.1107954697438
-
+
-4282.055711405376
-1348.4009403407922
@@ -12957,7 +13149,7 @@
-697.1107954697438
-
+
-6308.295283512095
1012.1499364604692
@@ -13019,7 +13211,7 @@
-697.1107954697438
-
+
-4454.075208127684
624.1001437629707
@@ -13073,7 +13265,7 @@
-697.1107954697438
-
+
-4474.842972606101
740.3192959189714
@@ -13127,7 +13319,7 @@
-697.1107954697438
-
+
-5886.247958636628
1069.7005049108807
@@ -13185,7 +13377,7 @@
-697.1107954697438
-
+
-5943.273006957754
1119.7005049108807
@@ -13243,7 +13435,7 @@
-697.1107954697438
-
+
-4560.719833599496
-962.8294344195647
@@ -13301,7 +13493,7 @@
-697.1107954697438
-
+
-3079.9028171392406
-1457.8916969890574
@@ -13355,7 +13547,7 @@
-697.1107954697438
-
+
-5132.85798739706
169.43523766029574
@@ -13398,7 +13590,7 @@
-697.1107954697438
-
+
-5577.843062023925
169.43523766029574
@@ -13441,7 +13633,7 @@
-697.1107954697438
-
+
-4702.8047604943995
360.47656701048686
@@ -13487,7 +13679,7 @@
-697.1107954697438
-
+
-4666.5884336158015
299.51207266539507
@@ -13533,7 +13725,7 @@
-697.1107954697438
-
+
-5745.891419549895
468.6543410400628
@@ -13587,7 +13779,7 @@
-697.1107954697438
-
+
-5840.891419549895
462.10619674191867
@@ -13641,7 +13833,7 @@
-697.1107954697438
-
+
-6082.513041171516
30.646382803747372
@@ -13695,7 +13887,7 @@
-697.1107954697438
-
+
-6134.567095225569
38.717014554805246
@@ -13749,7 +13941,7 @@
-697.1107954697438
-
+
-4172.487432044621
-473.6097165263192
@@ -13807,7 +13999,7 @@
-697.1107954697438
-
+
-1929.900103661164
556.9271752366052
@@ -13861,7 +14053,7 @@
-697.1107954697438
-
+
-3402.358169082272
151.04923552755167
@@ -13919,7 +14111,7 @@
-697.1107954697438
-
+
-3322.478720473633
206.48217202544276
@@ -13977,7 +14169,7 @@
-697.1107954697438
-
+
-253.58393141203692
-1414.0137126630211
@@ -14031,7 +14223,7 @@
-697.1107954697438
-
+
-256.5996510851721
-1278.0323744257933
@@ -14085,7 +14277,7 @@
-697.1107954697438
-
+
-2097.9622528579835
23.236635594918766
@@ -14128,7 +14320,7 @@
-697.1107954697438
-
+
-2485.860889521144
23.236635594918766
@@ -14171,7 +14363,7 @@
-697.1107954697438
-
+
-3242.356730883347
-232.66985136607218
@@ -14225,7 +14417,7 @@
-697.1107954697438
-
+
-3239.356730883347
-173.15455797735405
@@ -14279,7 +14471,7 @@
-697.1107954697438
-
+
-3048.4231188109125
480.60966615364754
@@ -14337,7 +14529,7 @@
-697.1107954697438
-
+
-3085.4744008621938
652.7078750098394
@@ -14395,7 +14587,7 @@
-697.1107954697438
-
+
-1926.4385651996251
501.7285568993941
@@ -14449,7 +14641,7 @@
-697.1107954697438
-
+
-1868.9550487161089
665.9876123661734
@@ -14503,7 +14695,7 @@
-697.1107954697438
-
+
-1512.4481751037233
1296.681105023576
@@ -14546,7 +14738,7 @@
-697.1107954697438
-
+
-1551.4481751037233
1343.399175135743
@@ -14589,7 +14781,7 @@
-697.1107954697438
-
+
-1642.2169126975837
1660.9235803859483
@@ -14632,7 +14824,7 @@
-697.1107954697438
-
+
-1011.6627627625651
1433.737730963425
@@ -14671,7 +14863,7 @@
-697.1107954697438
-
+
-806.041938240259
21.737629164096518
@@ -14714,7 +14906,7 @@
-697.1107954697438
-
+
-1142.249319614799
21.737629164096518
@@ -14757,7 +14949,7 @@
-697.1107954697438
-
+
-1834.5771584480074
525.1658878667756
@@ -14811,7 +15003,7 @@
-697.1107954697438
-
+
-1831.4964345090943
603.4755051010169
@@ -14865,7 +15057,7 @@
-697.1107954697438
-
+
-1763.2355649438766
804.4631891798043
@@ -14919,7 +15111,7 @@
-697.1107954697438
-
+
-1756.4275682373125
874.1818397172829
@@ -14973,7 +15165,7 @@
-697.1107954697438
-
+
-499.7653268651295
1433.737730963425
@@ -15016,7 +15208,7 @@
-697.1107954697438
-
+
-416.8284211241636
163.78380386749092
@@ -15070,7 +15262,7 @@
-697.1107954697438
-
+