diff --git a/app/src/main/java/com/tangem/tap/network/exchangeServices/mercuryo/MercuryoService.kt b/app/src/main/java/com/tangem/tap/network/exchangeServices/mercuryo/MercuryoService.kt index a0068b9ce1..428b1bb0b3 100644 --- a/app/src/main/java/com/tangem/tap/network/exchangeServices/mercuryo/MercuryoService.kt +++ b/app/src/main/java/com/tangem/tap/network/exchangeServices/mercuryo/MercuryoService.kt @@ -6,6 +6,7 @@ import com.tangem.common.extensions.calculateSha512 import com.tangem.common.extensions.toHexString import com.tangem.common.services.Result import com.tangem.common.services.performRequest +import com.tangem.domain.common.extensions.removePrefixFromAddress import com.tangem.network.common.createRetrofitInstance import com.tangem.tap.common.extensions.urlEncode import com.tangem.tap.common.redux.global.CryptoCurrencyName @@ -103,14 +104,15 @@ class MercuryoService( ): String? { if (action == CurrencyExchangeManager.Action.Sell) throw UnsupportedOperationException() + val walletAddressCorrected = blockchain.removePrefixFromAddress(walletAddress) val builder = Uri.Builder() .scheme(ExchangeUrlBuilder.SCHEME) .authority("exchange.mercuryo.io") .appendQueryParameter("widget_id", mercuryoWidgetId) .appendQueryParameter("type", action.name.lowercase()) .appendQueryParameter("currency", cryptoCurrencyName) - .appendQueryParameter("address", walletAddress.urlEncode()) - .appendQueryParameter("signature", signature(walletAddress).urlEncode()) + .appendQueryParameter("address", walletAddressCorrected.urlEncode()) + .appendQueryParameter("signature", signature(walletAddressCorrected).urlEncode()) .appendQueryParameter("fix_currency", "true") .appendQueryParameter("return_url", ExchangeUrlBuilder.SUCCESS_URL) diff --git a/domain/src/main/java/com/tangem/domain/common/extensions/Blockchain.kt b/domain/src/main/java/com/tangem/domain/common/extensions/Blockchain.kt index b69ffb1c49..ec8fcce10c 100644 --- a/domain/src/main/java/com/tangem/domain/common/extensions/Blockchain.kt +++ b/domain/src/main/java/com/tangem/domain/common/extensions/Blockchain.kt @@ -1,5 +1,6 @@ package com.tangem.domain.common.extensions +import com.tangem.blockchain.blockchains.bitcoincash.cashaddr.CashAddr import com.tangem.blockchain.common.Blockchain fun Blockchain.Companion.fromNetworkId(networkId: String): Blockchain? { @@ -104,4 +105,12 @@ fun Blockchain.toCoinId(): String { Blockchain.Tron, Blockchain.TronTestnet -> "tron" else -> "unknown" } +} + +fun Blockchain.removePrefixFromAddress(address: String): String { + return when (this) { + Blockchain.BitcoinCash -> address + .removePrefix(CashAddr.MAIN_NET_PREFIX).removePrefix(":") + else -> address + } } \ No newline at end of file