Updated on 2026-08-14

This commit is contained in:
Tangem 2020-07-27 16:43:32 +03:00
parent 04b9f020af
commit c63b0f47dc
14 changed files with 77 additions and 22 deletions

View file

@ -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"));
}

View file

@ -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"));
}

View file

@ -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"));

View file

@ -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"));
}

View file

@ -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"));
}

View file

@ -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);

View file

@ -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"));
}

View file

@ -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);

View file

@ -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);

View file

@ -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);

View file

@ -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"));
}

View file

@ -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"));
}

View file

@ -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(), "");