Merge branch 'master' into electrumpref

This commit is contained in:
Marcos Rodriguez Vélez 2025-01-06 20:47:01 -04:00 committed by GitHub
commit 0b096f77d6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 49 additions and 41 deletions

View File

@ -14,6 +14,8 @@ export const NOTIFICATIONS_NO_AND_DONT_ASK_FLAG = 'NOTIFICATIONS_NO_AND_DONT_ASK
let alreadyConfigured = false;
let baseURI = groundControlUri;
const deepClone = obj => JSON.parse(JSON.stringify(obj));
const checkAndroidNotificationPermission = async () => {
try {
const { status } = await checkNotifications();
@ -323,8 +325,8 @@ export const configureNotifications = async onProcessNotifications => {
};
const handleNotification = async notification => {
// Deep clone to avoid modifying the original object
const payload = structuredClone({
// Deep clone to avoid modifying the original object
const payload = deepClone({
...notification,
...notification.data,
});

View File

@ -1315,7 +1315,7 @@ PODS:
- Yoga
- react-native-ios-context-menu (1.15.3):
- React-Core
- react-native-menu (1.1.7):
- react-native-menu (1.2.0):
- React
- react-native-randombytes (3.6.1):
- React-Core
@ -1650,7 +1650,7 @@ PODS:
- Yoga
- RNLocalize (3.3.0):
- React-Core
- RNPermissions (5.2.1):
- RNPermissions (5.2.2):
- React-Core
- RNQrGenerator (1.4.2):
- React
@ -1680,7 +1680,7 @@ PODS:
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- Yoga
- RNReanimated (3.16.5):
- RNReanimated (3.16.6):
- DoubleConversion
- glog
- hermes-engine
@ -1700,10 +1700,10 @@ PODS:
- ReactCodegen
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- RNReanimated/reanimated (= 3.16.5)
- RNReanimated/worklets (= 3.16.5)
- RNReanimated/reanimated (= 3.16.6)
- RNReanimated/worklets (= 3.16.6)
- Yoga
- RNReanimated/reanimated (3.16.5):
- RNReanimated/reanimated (3.16.6):
- DoubleConversion
- glog
- hermes-engine
@ -1723,9 +1723,9 @@ PODS:
- ReactCodegen
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- RNReanimated/reanimated/apple (= 3.16.5)
- RNReanimated/reanimated/apple (= 3.16.6)
- Yoga
- RNReanimated/reanimated/apple (3.16.5):
- RNReanimated/reanimated/apple (3.16.6):
- DoubleConversion
- glog
- hermes-engine
@ -1746,7 +1746,7 @@ PODS:
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- Yoga
- RNReanimated/worklets (3.16.5):
- RNReanimated/worklets (3.16.6):
- DoubleConversion
- glog
- hermes-engine
@ -2226,7 +2226,7 @@ SPEC CHECKSUMS:
react-native-document-picker: 530879d9e89b490f0954bcc4ab697c5b5e35d659
react-native-image-picker: 19a8d8471a239890675726f88f9c18dd213656d5
react-native-ios-context-menu: 986da6dcba70094bcc2a8049f68410fe7d25aff1
react-native-menu: 5779f6bd7a4e58d457ca5e0a6f164651dd26cd7f
react-native-menu: 74230a5879e0ca697e98ee7c3087297dc774bf06
react-native-randombytes: 3c8f3e89d12487fd03a2f966c288d495415fc116
react-native-safe-area-context: 758e894ca5a9bd1868d2a9cfbca7326a2b6bf9dc
react-native-screen-capture: 7b6121f529681ed2fde36cdedadd0bb39e9a3796
@ -2270,12 +2270,12 @@ SPEC CHECKSUMS:
RNHandoff: bc8af5a86853ff13b033e7ba1114c3c5b38e6385
RNKeychain: 4df48b5186ca2b6a99f5ead69ad587154e084a32
RNLocalize: d024afa9204c13885e61dc88b8190651bcaabac9
RNPermissions: 979aa94a1a2091e3b2c3e7130ef0a1a6e331e05a
RNPermissions: 6f08c623b0c8ca7d95faa71c3956b159b34f25c3
RNQrGenerator: 7c604c0eb608af64ff586ab0c040796a04eff247
RNQuickAction: c2c8f379e614428be0babe4d53a575739667744d
RNRate: 7641919330e0d6688ad885a985b4bd697ed7d14c
RNReactNativeHapticFeedback: 00ba111b82aa266bb3ee1aa576831c2ea9a9dfad
RNReanimated: ae56eba247f82fa0d8bbf52bb0e7a34a218482de
RNReanimated: 000b758cfbcd9c20c15b7ef305f98f036b288feb
RNScreens: 35bb8e81aeccf111baa0ea01a54231390dbbcfd9
RNShare: 6204e6a1987ba3e7c47071ef703e5449a0e3548a
RNSVG: 3421710ac15f4f2dc47e5c122f2c2e4282116830

View File

@ -28,6 +28,7 @@
"enter_amount": "Ingresa la cantidad",
"qr_custom_input_button": "Pulsa 10 veces para ingresar una entrada personalizada",
"unlock": "Desbloquear",
"port": "Puerto",
"suggested": "Sugerido"
},
"azteco": {
@ -74,6 +75,7 @@
"please_pay": "Pagar por favor",
"preimage": "Imagen previa",
"sats": "sats.",
"date_time": "Fecha y hora",
"wasnt_paid_and_expired": "Esta factura no se pagó y ha caducado."
},
"plausibledeniability": {
@ -190,7 +192,7 @@
"outdated_rate": "La tarifa se actualizó por última vez: {date}",
"psbt_tx_open": "Abrir transacción firmada",
"psbt_tx_scan": "Escanear transacción firmada",
"qr_error_no_qrcode": "No pudimos encontrar un código QR en la imagen seleccionada. Asegúrate de que la imagen contenga solo un código QR y ningún contenido adicional como texto o botones.",
"qr_error_no_qrcode": "No pudimos encontrar un código QR válido en la imagen seleccionada. Asegúrate de que la imagen contenga solo un código QR y ningún contenido adicional, como texto o botones.",
"reset_amount": "Restablecer monto",
"reset_amount_confirm": "¿Te gustaría restablecer la cantidad?",
"success_done": "Hecho",
@ -215,6 +217,7 @@
"block_explorer_invalid_custom_url": "La URL proporcionada no es válida. Ingresa una URL válida que comience con http:// o https://.",
"about_selftest_electrum_disabled": "La autocomprobación no está disponible con el modo sin conexión de Electrum. Desactiva el modo sin conexión y vuelve a intentarlo. ",
"about_selftest_ok": "Todas las pruebas internas han pasado satisfactoriamente. La billetera funciona bien.",
"about_sm_github": "GitHub",
"about_sm_discord": "Servidor Discord",
"about_sm_telegram": "Chat de Telegram ",
@ -249,15 +252,14 @@
"electrum_settings_server": "Servidor Electrum",
"electrum_status": "Estado",
"electrum_preferred_server": "Servidor preferido",
"electrum_preferred_server_description": "Introduce el servidor que deseas que tu billetera utilice para todas las actividades de Bitcoin. Una vez configurado, tu billetera utilizará exclusivamente este servidor para comprobar saldos, enviar transacciones y obtener datos de la red. Asegúrate de que confías en este servidor antes de configurarlo.",
"electrum_clear_alert_title": "¿Borrar historial?",
"electrum_preferred_server_description": "Introduce el servidor que deseas que tu billetera utilice para todas las actividades de Bitcoin. Una vez configurado, tu billetera utilizará exclusivamente este servidor para comprobar saldos, enviar transacciones y obtener datos de la red. Asegúrate de que confías en este servidor antes de configurarlo.", "electrum_clear_alert_title": "¿Borrar historial?",
"electrum_clear_alert_message": "¿Quieres borrar el historial de los servidores de Electrum?",
"electrum_clear_alert_cancel": "Cancelar",
"electrum_clear_alert_ok": "Ok",
"electrum_reset": "Restablecer a predeterminado",
"only_use_preferred": "Conectarse únicamente al servidor preferido",
"electrum_unable_to_connect": "No se puede conectar al {server}.",
"electrum_history": "Historial",
"electrum_reset_to_default": "¿Estás seguro de querer restablecer la configuración de Electrum a los valores predeterminados?",
"electrum_reset_to_default": "Esto permitirá que BlueWallet elija aleatoriamente un servidor de la lista sugerida y del historial. El historial de tu servidor permanecerá sin cambios",
"electrum_reset": "Restablecer a predeterminado",
"electrum_clear": "Borrar historial",
"encrypt_decrypt": "Descifrar Almacenamiento",
"encrypt_decrypt_q": "¿Estás seguro de que deseas descifrar tu almacenamiento? Esto permitirá acceder a tus billeteras sin una contraseña.",
@ -272,6 +274,7 @@
"encrypt_title": "Seguridad",
"encrypt_tstorage": "Almacenamiento",
"encrypt_use": "Usar {type}",
"set_as_preferred": "Establecer como preferido",
"encrypted_feature_disabled": "Esta función no se puede utilizar con el almacenamiento cifrado habilitado.",
"encrypt_use_expl": "{type} se utilizará para confirmar tu identidad antes de realizar una transacción, desbloquear, exportar o eliminar una billetera. {type} no se utilizará para desbloquear el almacenamiento encriptado.",
"biometrics_fail": "Si {type} no está activado o no se desbloquea, puedes utilizar el código de acceso de tu dispositivo como alternativa.",
@ -291,6 +294,7 @@
"network": "Red",
"network_broadcast": "Publicar transacción",
"network_electrum": "Servidor Electrum",
"electrum_suggested_description": "Cuando no se establece un servidor preferido, se seleccionará un servidor sugerido para su uso al azar.",
"not_a_valid_uri": "URI inválido",
"notifications": "Notificaciones",
"open_link_in_explorer": "Abrir enlace en el explorador",
@ -323,7 +327,7 @@
"permission_denied_message": "Has denegado el envío de notificaciones. Si deseas recibirlas, actívalas en la configuración de tu dispositivo."
},
"transactions": {
"cancel_explain": "Reemplazaremos esta transacción con una que te pague y tenga tarifas más altas. Esto cancela efectivamente la transacción actual. Esto se llama RBF—Replace by Fee.",
"cancel_explain": "Reemplazaremos esta transacción con una que te pague y tenga tarifas más altas. Esto cancela efectivamente la transacción actual. Esto se llama RBF (Replace by Fee).",
"cancel_no": "Esta transacción no es reemplazable.",
"cancel_title": "Cancelar ésta transacción (RBF)",
"transaction_loading_error": "Se ha producido un problema al cargar la transacción. Vuelve a intentarlo más tarde.",
@ -332,7 +336,7 @@
"copy_link": "Copiar enlace",
"expand_note": "Expandir Nota",
"cpfp_create": "Crear",
"cpfp_exp": "Crearemos otra transacción que gaste tu transacción no confirmada. La tarifa total será más alta que la tarifa de la transacción original, por lo que debería extraerse más rápido. Esto se llama CPFP — Child Pays for Parent.",
"cpfp_exp": "Crearemos otra transacción que gaste tu transacción no confirmada. La tarifa total será más alta que la tarifa de la transacción original, por lo que debería extraerse más rápido. Esto se llama CPFP (Child Pays for Parent).",
"cpfp_no_bump": "Esta transacción no se puede acelerar.",
"cpfp_title": "Aumentar Comisión (CPFP)",
"details_balance_hide": "Ocultar Balance",
@ -367,7 +371,7 @@
"list_title": "Transacciones",
"transaction": "Transacción",
"open_url_error": "No se puede abrir el enlace con el navegador predeterminado. Cambia tu navegador predeterminado y vuelve a intentarlo.",
"rbf_explain": "Reemplazaremos esta transacción con una con una tarifa más alta para que se extraiga más rápido. Esto se llama RBF—Replace by Fee.",
"rbf_explain": "Reemplazaremos esta transacción con una con una tarifa más alta para que se extraiga más rápido. Esto se llama RBF (Replace by Fee)",
"rbf_title": "Aumentar Comisión (RBF)",
"status_bump": "Aumentar Comisión",
"status_cancel": "Cancelar Transacción",
@ -567,7 +571,7 @@
"ms_help_title": "Cómo funcionan las Bóvedas Multifirma: Consejos y Trucos",
"ms_help_text": "Una billetera con varias llaves para mayor seguridad o custodia compartida",
"ms_help_title1": "Se recomiendan varios dispositivos.",
"ms_help_1": "La Bóveda funcionará con otras apps de BlueWallet instalada en otros dispositivos y billeteras compatibles con PSBT, como Electrum, Spectre, Coldcard, Cobo Vault, etc.",
"ms_help_1": "La Bóveda funcionará con BlueWallet instalada en otros dispositivos y billeteras compatibles con PSBT, como Electrum, Spectre, Coldcard, Keystone, etc.",
"ms_help_title2": "Editar Claves",
"ms_help_2": "Puedes crear todas las claves de la Bóveda en este dispositivo y eliminarlas o editarlas después. Tener todas las claves en el mismo dispositivo tiene la seguridad equivalente a la de un monedero de Bitcoin normal.",
"ms_help_title3": "Copias de seguridad de la Bóveda",
@ -654,6 +658,8 @@
"bip47": {
"payment_code": "Código de pago",
"contacts": "Contactos",
"bip47_explain": "Código reutilizable y compartible",
"bip47_explain_subtitle": "BIP47",
"purpose": "Código reutilizable y compartible (BIP47)",
"pay_this_contact": "Paga a este contacto",
"rename_contact": "Renombrar contacto",
@ -667,7 +673,7 @@
"notification_tx_unconfirmed": "La transacción de notificación aún no está confirmada, espera",
"failed_create_notif_tx": "No se pudo crear una transacción en cadena",
"onchain_tx_needed": "Se necesita transacción en cadena",
"notif_tx_sent": "Transacción de notificación enviada. Espera a que se confirme",
"notif_tx_sent" : "Transacción de notificación enviada. Espera a que se confirme",
"notif_tx": "Transacción de notificación",
"not_found": "Código de pago no encontrado"
}

8
package-lock.json generated
View File

@ -78,7 +78,7 @@
"react-native-keychain": "9.1.0",
"react-native-linear-gradient": "2.8.3",
"react-native-localize": "3.3.0",
"react-native-permissions": "5.2.1",
"react-native-permissions": "5.2.2",
"react-native-prompt-android": "github:BlueWallet/react-native-prompt-android#ed168d66fed556bc2ed07cf498770f058b78a376",
"react-native-push-notification": "8.1.1",
"react-native-qrcode-svg": "6.3.2",
@ -20747,9 +20747,9 @@
}
},
"node_modules/react-native-permissions": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/react-native-permissions/-/react-native-permissions-5.2.1.tgz",
"integrity": "sha512-F8CaDVi+zYjl2pO4Fwh5n5SCi5s0TvvRzQnczb8nwkzHJTv6HqlO6Sj1ZmqrAeuCN06b5Ysu9BEWhK4qT4ekXg==",
"version": "5.2.2",
"resolved": "https://registry.npmjs.org/react-native-permissions/-/react-native-permissions-5.2.2.tgz",
"integrity": "sha512-Mae5VKT8bjliksONZ+jMYTPf90wxuhn1H1FiH/kRfw0Y5tW5WIV1P8t/KiEHKZRvimnrInimuCr+EpRzK0IPWQ==",
"license": "MIT",
"peerDependencies": {
"react": ">=18.1.0",

View File

@ -142,7 +142,7 @@
"react-native-keychain": "9.1.0",
"react-native-linear-gradient": "2.8.3",
"react-native-localize": "3.3.0",
"react-native-permissions": "5.2.1",
"react-native-permissions": "5.2.2",
"react-native-prompt-android": "github:BlueWallet/react-native-prompt-android#ed168d66fed556bc2ed07cf498770f058b78a376",
"react-native-push-notification": "8.1.1",
"react-native-qrcode-svg": "6.3.2",

View File

@ -83,17 +83,17 @@ const icons = {
ScanQR: { iconValue: Platform.OS === 'ios' ? 'qrcode.viewfinder' : 'ic_menu_camera' },
ChoosePhoto: { iconValue: Platform.OS === 'ios' ? 'photo.on.rectangle' : 'ic_menu_gallery' },
Clipboard: { iconValue: Platform.OS === 'ios' ? 'document.on.clipboard' : 'ic_menu_file' },
ExportPrivateKey: { iconValue: 'key' },
Share: { iconValue: 'square.and.arrow.up' },
Signature: { iconValue: 'signature' },
PasteFromClipboard: { iconValue: 'document.on.clipboard' },
ImportFile: { iconValue: 'document.viewfinder' },
Hide: { iconValue: 'eye.slash' },
ClearClipboard: { iconValue: 'clipboard' },
SortASC: { iconValue: 'arrow.down.to.line' },
SortDESC: { iconValue: 'arrow.up.to.line' },
SaveFile: { iconValue: 'square.and.arrow.down' },
Delete: { iconValue: 'trash' },
ExportPrivateKey: { iconValue: Platform.OS === 'ios' ? 'key' : 'ic_lock_idle_lock' },
Share: { iconValue: Platform.OS === 'ios' ? 'square.and.arrow.up' : 'ic_menu_share' },
Signature: { iconValue: Platform.OS === 'ios' ? 'signature' : 'ic_menu_edit' },
PasteFromClipboard: { iconValue: Platform.OS === 'ios' ? 'document.on.clipboard' : 'ic_menu_paste' },
ImportFile: { iconValue: Platform.OS === 'ios' ? 'document.viewfinder' : 'ic_menu_upload' },
Hide: { iconValue: Platform.OS === 'ios' ? 'eye.slash' : 'ic_menu_close_clear_cancel' },
ClearClipboard: { iconValue: Platform.OS === 'ios' ? 'clipboard' : 'ic_menu_delete' },
SortASC: { iconValue: Platform.OS === 'ios' ? 'arrow.down.to.line' : 'ic_menu_sort_alphabetically' },
SortDESC: { iconValue: Platform.OS === 'ios' ? 'arrow.up.to.line' : 'ic_menu_sort_by_size' },
SaveFile: { iconValue: Platform.OS === 'ios' ? 'square.and.arrow.down' : 'ic_menu_save' },
Delete: { iconValue: Platform.OS === 'ios' ? 'trash' : 'ic_menu_delete' },
} as const;
export type ToolTipAction = {