From 6c70c91730246ccb1cd52e2be961cd01bbe79522 Mon Sep 17 00:00:00 2001 From: Satoshi Qazi Muhammed Date: Tue, 14 Jul 2026 21:22:04 -0700 Subject: [PATCH] Fix Bridge swap destination + add confirmed Kurdish translation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit BRIDGE_ADDRESS_GENERIC was still the retired legacy single-key bot's address (5C5CW7xD...), not the real 3-of-5 multisig custody (BridgeMultisigConstants.MULTISIG_ADDRESS). Confirmed live: a real user swap sent there landed at the dead address and was never detected by usdt-bridge's listener (which only watches the multisig account). Funds were recovered separately using the still-intact legacy seed; this fixes the actual destination so future swaps land where the listener watches. Also added the user-confirmed Kurmancî translation for bridge_wusdt_to_usdt_blocked (values-ku), replacing the now-stale text left untouched in the previous commit pending native review. --- common/src/main/res/values-ku/strings.xml | 2 +- .../presentation/bridge/BridgeViewModel.kt | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/common/src/main/res/values-ku/strings.xml b/common/src/main/res/values-ku/strings.xml index daf39382..78676bf5 100644 --- a/common/src/main/res/values-ku/strings.xml +++ b/common/src/main/res/values-ku/strings.xml @@ -2756,7 +2756,7 @@ Mîqdar binivîse Guherandina HEZ→DOT li gorî rewşa DOT sînordar dibe. Guherandina HEZ→DOT niha tune. Dema DOT têr bibe dîsa biceribîne. - Guherandina USDT(Pez)→USDT(Pol) niha tune. Li benda damezrandina lîkîdîteya 1:1. + Ev mîqdar ji rezerva berdest a pireyê (%s USDT) zêdetir e. Mîqdarek biçûktir biceribîne. Agahdariya staking tê barkirin… diff --git a/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/bridge/BridgeViewModel.kt b/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/bridge/BridgeViewModel.kt index 414dcedd..59af44e9 100644 --- a/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/bridge/BridgeViewModel.kt +++ b/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/bridge/BridgeViewModel.kt @@ -11,6 +11,7 @@ import io.novafoundation.nova.common.view.ButtonState import io.novafoundation.nova.feature_account_api.presenatation.chain.getAssetIconOrFallback import io.novafoundation.nova.feature_assets.R import io.novafoundation.nova.feature_assets.domain.WalletInteractor +import io.novafoundation.nova.feature_assets.domain.bridge.multisig.BridgeMultisigConstants import io.novafoundation.nova.feature_assets.domain.bridge.multisig.BridgeMultisigInteractor import io.novafoundation.nova.feature_assets.domain.bridge.multisig.BridgeSignerState import io.novafoundation.nova.feature_assets.presentation.AssetsRouter @@ -44,7 +45,16 @@ class BridgeViewModel( ) : BaseViewModel() { companion object { - private const val BRIDGE_ADDRESS_GENERIC = "5C5CW7xDmiXtCgfUCbKFF4ViJuCJJQpDZqWQ1mSTjehGzE3p" + /** The real 3-of-5 multisig custody account (generic SS58, prefix 42) - swaps must be + * sent here, not to any single-key address, so usdt-bridge's listener (which only + * watches this account on both chains) actually detects them. This constant used to be + * a leftover pre-migration value (the retired single-key legacy bot's own address, + * "5C5CW7xDmiXtCgfUCbKFF4ViJuCJJQpDZqWQ1mSTjehGzE3p") that nobody updated when the + * custody model changed - confirmed live: a real user swap sent there landed at that + * dead address (1.0 USDT, recovered via the still-intact legacy seed) and was never + * detected by anything. See BridgeMultisigConstants.MULTISIG_ADDRESS for the same + * address used by the signer-renewal flow on this same screen. */ + private const val BRIDGE_ADDRESS_GENERIC = BridgeMultisigConstants.MULTISIG_ADDRESS val POLKADOT_ASSET_HUB_ID = ChainGeneses.POLKADOT_ASSET_HUB val PEZKUWI_ASSET_HUB_ID = ChainGeneses.PEZKUWI_ASSET_HUB