Updated on 2026-08-14

This commit is contained in:
Tangem 2020-06-17 19:18:37 +03:00
parent df2d4a8154
commit 64b52bae02
3 changed files with 27 additions and 8 deletions

View file

@ -1098,8 +1098,12 @@ public class BtcEngine extends CoinEngine {
}
}
if (validateAddress(resolvedAddress)) {
coinData.setResolvedPayIdAddress(resolvedAddress);
observer.onComplete();
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("Unknown address format in PayID response"));
}

View file

@ -684,11 +684,16 @@ public class EthEngine extends CoinEngine {
}
}
if (validateAddress(resolvedAddress)) {
coinData.setResolvedPayIdAddress(resolvedAddress);
if (serverApiInfura.isRequestsSequenceCompleted() && serverApiPayId.isRequestsSequenceCompleted()) {
blockchainRequestsCallbacks.onComplete(!ctx.hasError());
if (resolvedAddress.equals(coinData.getWallet())) {
ctx.setError(R.string.prepare_transaction_error_same_address);
blockchainRequestsCallbacks.onComplete(false);
} else {
blockchainRequestsCallbacks.onProgress();
coinData.setResolvedPayIdAddress(resolvedAddress);
if (serverApiInfura.isRequestsSequenceCompleted() && serverApiPayId.isRequestsSequenceCompleted()) {
blockchainRequestsCallbacks.onComplete(!ctx.hasError());
} else {
blockchainRequestsCallbacks.onProgress();
}
}
} else {
ctx.setError("Unknown address format in PayID response");

View file

@ -633,9 +633,19 @@ public class XrpEngine extends CoinEngine {
XrpXAddressDecoded xAddressDecoded = XrpXAddressService.Companion.decode(resolvedAddress);
if (xAddressDecoded == null) { // classic address
serverApiRipple.requestData(ServerApiRipple.RIPPLE_ACCOUNT_INFO, resolvedAddress, ""); //TODO: maybe just assume PayID account is created?
if (resolvedAddress.equals(coinData.getWallet())) {
ctx.setError(R.string.prepare_transaction_error_same_address);
blockchainRequestsCallbacks.onComplete(false);
} else {
serverApiRipple.requestData(ServerApiRipple.RIPPLE_ACCOUNT_INFO, resolvedAddress, "");
}
} else { // X-address
serverApiRipple.requestData(ServerApiRipple.RIPPLE_ACCOUNT_INFO, xAddressDecoded.getAddress(), "");
if (xAddressDecoded.getAddress().equals(coinData.getWallet())) {
ctx.setError(R.string.prepare_transaction_error_same_address);
blockchainRequestsCallbacks.onComplete(false);
} else {
serverApiRipple.requestData(ServerApiRipple.RIPPLE_ACCOUNT_INFO, xAddressDecoded.getAddress(), "");
}
}
} else {
ctx.setError("Unknown address format in PayID response");