Fix Bridge swap destination + add confirmed Kurdish translation

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.
This commit is contained in:
2026-07-14 21:22:04 -07:00
parent ae2754d7a3
commit 6c70c91730
2 changed files with 12 additions and 2 deletions
+1 -1
View File
@@ -2756,7 +2756,7 @@
<string name="bridge_enter_amount">Mîqdar binivîse</string>
<string name="bridge_hez_to_dot_warning">Guherandina HEZ→DOT li gorî rewşa DOT sînordar dibe.</string>
<string name="bridge_hez_to_dot_blocked">Guherandina HEZ→DOT niha tune. Dema DOT têr bibe dîsa biceribîne.</string>
<string name="bridge_wusdt_to_usdt_blocked">Guherandina USDT(Pez)→USDT(Pol) niha tune. Li benda damezrandina lîkîdîteya 1:1.</string>
<string name="bridge_wusdt_to_usdt_blocked">Ev mîqdar ji rezerva berdest a pireyê (%s USDT) zêdetir e. Mîqdarek biçûktir biceribîne.</string>
<string name="staking_dashboard_syncing">Agahdariya staking tê barkirin…</string>
@@ -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