From c63b0f47dc647ea7dc8479659470254e00272281 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 27 Jul 2020 16:43:32 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .idea/dictionaries/.xml | 7 +++++++ .../java/com/tangem/wallet/bch/BtcCashEngine.java | 8 ++++++-- .../com/tangem/wallet/binance/BinanceEngine.java | 8 ++++++-- .../main/java/com/tangem/wallet/btc/BtcEngine.java | 4 ++-- .../com/tangem/wallet/cardano/CardanoEngine.java | 8 ++++++-- .../com/tangem/wallet/ducatus/DucatusEngine.java | 8 ++++++-- .../main/java/com/tangem/wallet/eth/EthEngine.java | 2 +- .../main/java/com/tangem/wallet/ltc/LtcEngine.java | 8 ++++++-- .../main/java/com/tangem/wallet/rsk/RskEngine.java | 12 +++++++++++- .../java/com/tangem/wallet/rsk/RskTokenEngine.java | 12 +++++++++++- .../java/com/tangem/wallet/token/TokenEngine.java | 2 +- .../java/com/tangem/wallet/xlm/XlmAssetEngine.java | 8 ++++++-- .../main/java/com/tangem/wallet/xlm/XlmEngine.java | 8 ++++++-- .../main/java/com/tangem/wallet/xrp/XrpEngine.java | 4 ++-- 14 files changed, 77 insertions(+), 22 deletions(-) create mode 100644 .idea/dictionaries/.xml diff --git a/.idea/dictionaries/.xml b/.idea/dictionaries/.xml new file mode 100644 index 0000000000..fc9ea1f34e --- /dev/null +++ b/.idea/dictionaries/.xml @@ -0,0 +1,7 @@ + + + + blockchains + + + \ No newline at end of file diff --git a/app/src/main/java/com/tangem/wallet/bch/BtcCashEngine.java b/app/src/main/java/com/tangem/wallet/bch/BtcCashEngine.java index 8f1ec5fc5e..e8aa917c5b 100644 --- a/app/src/main/java/com/tangem/wallet/bch/BtcCashEngine.java +++ b/app/src/main/java/com/tangem/wallet/bch/BtcCashEngine.java @@ -679,8 +679,12 @@ public class BtcCashEngine extends CoinEngine { } } if (validateAddress(resolvedAddress)) { - coinData.setResolvedPayIdAddress(resolvedAddress); - observer.onComplete(); + if (resolvedAddress.equals(coinData.getWallet())) { + coinData.setResolvedPayIdAddress(resolvedAddress); + observer.onComplete(); + } else { + observer.onError(new Exception("Resolved PayID address equals source address")); + } } else { observer.onError(new Exception("Unknown address format in PayID response")); } diff --git a/app/src/main/java/com/tangem/wallet/binance/BinanceEngine.java b/app/src/main/java/com/tangem/wallet/binance/BinanceEngine.java index a8f459b4bc..92198a18d2 100644 --- a/app/src/main/java/com/tangem/wallet/binance/BinanceEngine.java +++ b/app/src/main/java/com/tangem/wallet/binance/BinanceEngine.java @@ -575,8 +575,12 @@ public class BinanceEngine extends CoinEngine { } } if (validateAddress(resolvedAddress)) { - coinData.setResolvedPayIdAddress(resolvedAddress); - observer.onComplete(); + if (resolvedAddress.equals(coinData.getWallet())) { + coinData.setResolvedPayIdAddress(resolvedAddress); + observer.onComplete(); + } else { + observer.onError(new Exception("Resolved PayID address equals source address")); + } } else { observer.onError(new Exception("Unknown address format in PayID response")); } diff --git a/app/src/main/java/com/tangem/wallet/btc/BtcEngine.java b/app/src/main/java/com/tangem/wallet/btc/BtcEngine.java index 062f544334..5d9960bc70 100644 --- a/app/src/main/java/com/tangem/wallet/btc/BtcEngine.java +++ b/app/src/main/java/com/tangem/wallet/btc/BtcEngine.java @@ -1088,10 +1088,10 @@ public class BtcEngine extends CoinEngine { } if (validateAddress(resolvedAddress)) { if (resolvedAddress.equals(coinData.getWallet())) { - observer.onError(new Exception(ctx.getString(R.string.prepare_transaction_error_same_address))); - } else { coinData.setResolvedPayIdAddress(resolvedAddress); observer.onComplete(); + } else { + observer.onError(new Exception("Resolved PayID address equals source address")); } } else { observer.onError(new Exception("Unknown address format in PayID response")); diff --git a/app/src/main/java/com/tangem/wallet/cardano/CardanoEngine.java b/app/src/main/java/com/tangem/wallet/cardano/CardanoEngine.java index 68037e128b..b0621dae0d 100644 --- a/app/src/main/java/com/tangem/wallet/cardano/CardanoEngine.java +++ b/app/src/main/java/com/tangem/wallet/cardano/CardanoEngine.java @@ -776,8 +776,12 @@ public class CardanoEngine extends CoinEngine { } } if (validateAddress(resolvedAddress)) { - coinData.setResolvedPayIdAddress(resolvedAddress); - observer.onComplete(); + if (resolvedAddress.equals(coinData.getWallet())) { + coinData.setResolvedPayIdAddress(resolvedAddress); + observer.onComplete(); + } else { + observer.onError(new Exception("Resolved PayID address equals source address")); + } } else { observer.onError(new Exception("Unknown address format in PayID response")); } diff --git a/app/src/main/java/com/tangem/wallet/ducatus/DucatusEngine.java b/app/src/main/java/com/tangem/wallet/ducatus/DucatusEngine.java index 307adbee55..07fb1ce855 100644 --- a/app/src/main/java/com/tangem/wallet/ducatus/DucatusEngine.java +++ b/app/src/main/java/com/tangem/wallet/ducatus/DucatusEngine.java @@ -604,8 +604,12 @@ public class DucatusEngine extends BtcEngine { } } if (validateAddress(resolvedAddress)) { - coinData.setResolvedPayIdAddress(resolvedAddress); - observer.onComplete(); + if (resolvedAddress.equals(coinData.getWallet())) { + coinData.setResolvedPayIdAddress(resolvedAddress); + observer.onComplete(); + } else { + observer.onError(new Exception("Resolved PayID address equals source address")); + } } else { observer.onError(new Exception("Unknown address format in PayID response")); } diff --git a/app/src/main/java/com/tangem/wallet/eth/EthEngine.java b/app/src/main/java/com/tangem/wallet/eth/EthEngine.java index a0aae17a7d..0b8cf41106 100644 --- a/app/src/main/java/com/tangem/wallet/eth/EthEngine.java +++ b/app/src/main/java/com/tangem/wallet/eth/EthEngine.java @@ -674,7 +674,7 @@ public class EthEngine extends CoinEngine { } if (validateAddress(resolvedAddress)) { if (resolvedAddress.equals(coinData.getWallet())) { - ctx.setError(R.string.prepare_transaction_error_same_address); + ctx.setError("Resolved PayID address equals source address"); blockchainRequestsCallbacks.onComplete(false); } else { coinData.setResolvedPayIdAddress(resolvedAddress); diff --git a/app/src/main/java/com/tangem/wallet/ltc/LtcEngine.java b/app/src/main/java/com/tangem/wallet/ltc/LtcEngine.java index 6a303a449d..bdbdf8461a 100644 --- a/app/src/main/java/com/tangem/wallet/ltc/LtcEngine.java +++ b/app/src/main/java/com/tangem/wallet/ltc/LtcEngine.java @@ -758,8 +758,12 @@ public class LtcEngine extends BtcEngine { } } if (validateAddress(resolvedAddress)) { - coinData.setResolvedPayIdAddress(resolvedAddress); - observer.onComplete(); + if (resolvedAddress.equals(coinData.getWallet())) { + coinData.setResolvedPayIdAddress(resolvedAddress); + observer.onComplete(); + } else { + observer.onError(new Exception("Resolved PayID address equals source address")); + } } else { observer.onError(new Exception("Unknown address format in PayID response")); } diff --git a/app/src/main/java/com/tangem/wallet/rsk/RskEngine.java b/app/src/main/java/com/tangem/wallet/rsk/RskEngine.java index 0e981ad42e..826158771f 100644 --- a/app/src/main/java/com/tangem/wallet/rsk/RskEngine.java +++ b/app/src/main/java/com/tangem/wallet/rsk/RskEngine.java @@ -200,7 +200,17 @@ public class RskEngine extends EthEngine { } } if (validateAddress(resolvedAddress)) { - coinData.setResolvedPayIdAddress(resolvedAddress); + if (resolvedAddress.equals(coinData.getWallet())) { + ctx.setError("Resolved PayID address equals source address"); + blockchainRequestsCallbacks.onComplete(false); + } else { + coinData.setResolvedPayIdAddress(resolvedAddress); + if (serverApiRootstock.isRequestsSequenceCompleted() && serverApiPayId.isRequestsSequenceCompleted()) { + blockchainRequestsCallbacks.onComplete(!ctx.hasError()); + } else { + blockchainRequestsCallbacks.onProgress(); + } + } } else { ctx.setError("Unknown address format in PayID response"); blockchainRequestsCallbacks.onComplete(false); diff --git a/app/src/main/java/com/tangem/wallet/rsk/RskTokenEngine.java b/app/src/main/java/com/tangem/wallet/rsk/RskTokenEngine.java index 4907b39831..efa84c9476 100644 --- a/app/src/main/java/com/tangem/wallet/rsk/RskTokenEngine.java +++ b/app/src/main/java/com/tangem/wallet/rsk/RskTokenEngine.java @@ -231,7 +231,17 @@ public class RskTokenEngine extends TokenEngine { } } if (validateAddress(resolvedAddress)) { - coinData.setResolvedPayIdAddress(resolvedAddress); + if (resolvedAddress.equals(coinData.getWallet())) { + ctx.setError("Resolved PayID address equals source address"); + blockchainRequestsCallbacks.onComplete(false); + } else { + coinData.setResolvedPayIdAddress(resolvedAddress); + if (serverApiRootstock.isRequestsSequenceCompleted() && serverApiPayId.isRequestsSequenceCompleted()) { + blockchainRequestsCallbacks.onComplete(!ctx.hasError()); + } else { + blockchainRequestsCallbacks.onProgress(); + } + } } else { ctx.setError("Unknown address format in PayID response"); blockchainRequestsCallbacks.onComplete(false); diff --git a/app/src/main/java/com/tangem/wallet/token/TokenEngine.java b/app/src/main/java/com/tangem/wallet/token/TokenEngine.java index a04ca3fa6d..cae64f6f2b 100644 --- a/app/src/main/java/com/tangem/wallet/token/TokenEngine.java +++ b/app/src/main/java/com/tangem/wallet/token/TokenEngine.java @@ -877,7 +877,7 @@ public class TokenEngine extends CoinEngine { } if (validateAddress(resolvedAddress)) { if (resolvedAddress.equals(coinData.getWallet())) { - ctx.setError(R.string.prepare_transaction_error_same_address); + ctx.setError("Resolved PayID address equals source address"); blockchainRequestsCallbacks.onComplete(false); } else { coinData.setResolvedPayIdAddress(resolvedAddress); diff --git a/app/src/main/java/com/tangem/wallet/xlm/XlmAssetEngine.java b/app/src/main/java/com/tangem/wallet/xlm/XlmAssetEngine.java index 882e4e8c7c..72ae1f00e4 100644 --- a/app/src/main/java/com/tangem/wallet/xlm/XlmAssetEngine.java +++ b/app/src/main/java/com/tangem/wallet/xlm/XlmAssetEngine.java @@ -622,8 +622,12 @@ public class XlmAssetEngine extends CoinEngine { } } if (validateAddress(resolvedAddress)) { - coinData.setResolvedPayIdAddress(resolvedAddress); - observer.onComplete(); + if (resolvedAddress.equals(coinData.getWallet())) { + coinData.setResolvedPayIdAddress(resolvedAddress); + observer.onComplete(); + } else { + observer.onError(new Exception("Resolved PayID address equals source address")); + } } else { observer.onError(new Exception("Unknown address format in PayID response")); } diff --git a/app/src/main/java/com/tangem/wallet/xlm/XlmEngine.java b/app/src/main/java/com/tangem/wallet/xlm/XlmEngine.java index ff9c7303cc..7008da837a 100644 --- a/app/src/main/java/com/tangem/wallet/xlm/XlmEngine.java +++ b/app/src/main/java/com/tangem/wallet/xlm/XlmEngine.java @@ -598,8 +598,12 @@ public class XlmEngine extends CoinEngine { } } if (validateAddress(resolvedAddress)) { - coinData.setResolvedPayIdAddress(resolvedAddress); - observer.onComplete(); + if (resolvedAddress.equals(coinData.getWallet())) { + coinData.setResolvedPayIdAddress(resolvedAddress); + observer.onComplete(); + } else { + observer.onError(new Exception("Resolved PayID address equals source address")); + } } else { observer.onError(new Exception("Unknown address format in PayID response")); } diff --git a/app/src/main/java/com/tangem/wallet/xrp/XrpEngine.java b/app/src/main/java/com/tangem/wallet/xrp/XrpEngine.java index 29a57b9457..6ea70b9d81 100644 --- a/app/src/main/java/com/tangem/wallet/xrp/XrpEngine.java +++ b/app/src/main/java/com/tangem/wallet/xrp/XrpEngine.java @@ -635,14 +635,14 @@ public class XrpEngine extends CoinEngine { XrpXAddressDecoded xAddressDecoded = XrpXAddressService.Companion.decode(resolvedAddress); if (xAddressDecoded == null) { // classic address if (resolvedAddress.equals(coinData.getWallet())) { - ctx.setError(R.string.prepare_transaction_error_same_address); + ctx.setError("Resolved PayID address equals source address"); blockchainRequestsCallbacks.onComplete(false); } else { serverApiRipple.requestData(ServerApiRipple.RIPPLE_ACCOUNT_INFO, resolvedAddress, ""); } } else { // X-address if (xAddressDecoded.getAddress().equals(coinData.getWallet())) { - ctx.setError(R.string.prepare_transaction_error_same_address); + ctx.setError("Resolved PayID address equals source address"); blockchainRequestsCallbacks.onComplete(false); } else { serverApiRipple.requestData(ServerApiRipple.RIPPLE_ACCOUNT_INFO, xAddressDecoded.getAddress(), "");