diff --git a/src/ui/dashpay/contact_requests.rs b/src/ui/dashpay/contact_requests.rs index 3a63a0fe9..f06cf346e 100644 --- a/src/ui/dashpay/contact_requests.rs +++ b/src/ui/dashpay/contact_requests.rs @@ -103,11 +103,10 @@ impl ContactRequests { .id() .to_string(dash_sdk::dpp::platform_value::string_encoding::Encoding::Base58); - // Get wallet for the selected identity + // Get wallet for the selected identity (don't show error on auto-select; + // some identities like evonodes may lack document signing keys) new_self.selected_wallet = - get_selected_wallet(&identities[0], Some(&app_context), None) - .or_show_error(app_context.egui_ctx()) - .unwrap_or(None); + get_selected_wallet(&identities[0], Some(&app_context), None).unwrap_or(None); // Load requests from database for this identity new_self.load_requests_from_database(); diff --git a/src/ui/dashpay/qr_code_generator.rs b/src/ui/dashpay/qr_code_generator.rs index 412c690f8..1e71046f6 100644 --- a/src/ui/dashpay/qr_code_generator.rs +++ b/src/ui/dashpay/qr_code_generator.rs @@ -77,11 +77,10 @@ impl QRCodeGeneratorScreen { new_self.selected_identity_string = identities[0].identity.id().to_string(Encoding::Base58); - // Get wallet for the selected identity + // Get wallet for the selected identity (don't show error on auto-select; + // some identities like evonodes may lack document signing keys) new_self.selected_wallet = - get_selected_wallet(&identities[0], Some(&app_context), None) - .or_show_error(app_context.egui_ctx()) - .unwrap_or(None); + get_selected_wallet(&identities[0], Some(&app_context), None).unwrap_or(None); } new_self diff --git a/src/ui/identities/mod.rs b/src/ui/identities/mod.rs index d582aa176..165a5f034 100644 --- a/src/ui/identities/mod.rs +++ b/src/ui/identities/mod.rs @@ -78,8 +78,17 @@ pub fn get_selected_wallet( qualified_identity .document_signing_key(&preorder_document_type) .ok_or_else(|| { - "Identity doesn't have an authentication key for signing document transitions" - .to_string() + use dash_sdk::dpp::identity::accessors::IdentityGettersV0; + let identity_label = qualified_identity + .alias + .as_deref() + .or_else(|| qualified_identity.dpns_names.first().map(|n| n.name.as_str())) + .unwrap_or("unknown"); + format!( + "Identity '{}' ({}) doesn't have an authentication key for signing document transitions", + identity_label, + qualified_identity.identity.id() + ) })? } else { // Fallback: directly use the provided selected key.