mirror of
https://github.com/sparrowwallet/sparrow.git
synced 2024-12-25 05:06:45 +00:00
label invalid notification transactions and avoid relink attempts
This commit is contained in:
parent
a765e07c10
commit
04cb27f85e
2 changed files with 6 additions and 2 deletions
2
drongo
2
drongo
|
@ -1 +1 @@
|
||||||
Subproject commit 04631be8c10bf0ef72ebd7f7ef26254cccecb282
|
Subproject commit 640176153016e6b38b367d6d7e37ecf15cfee745
|
|
@ -43,6 +43,7 @@ public class PayNymController {
|
||||||
private static final Logger log = LoggerFactory.getLogger(PayNymController.class);
|
private static final Logger log = LoggerFactory.getLogger(PayNymController.class);
|
||||||
|
|
||||||
public static final Pattern PAYNYM_REGEX = Pattern.compile("\\+[a-z]+[0-9][0-9a-fA-F][0-9a-fA-F]");
|
public static final Pattern PAYNYM_REGEX = Pattern.compile("\\+[a-z]+[0-9][0-9a-fA-F][0-9a-fA-F]");
|
||||||
|
public static final String INVALID_PAYMENT_CODE_LABEL = "Invalid Payment Code";
|
||||||
|
|
||||||
private String walletId;
|
private String walletId;
|
||||||
private boolean selectLinkedOnly;
|
private boolean selectLinkedOnly;
|
||||||
|
@ -344,7 +345,7 @@ public class PayNymController {
|
||||||
if(!isLinked(payNym)) {
|
if(!isLinked(payNym)) {
|
||||||
PaymentCode externalPaymentCode = payNym.paymentCode();
|
PaymentCode externalPaymentCode = payNym.paymentCode();
|
||||||
Map<BlockTransaction, WalletNode> unlinkedNotification = getMasterWallet().getNotificationTransaction(externalPaymentCode);
|
Map<BlockTransaction, WalletNode> unlinkedNotification = getMasterWallet().getNotificationTransaction(externalPaymentCode);
|
||||||
if(!unlinkedNotification.isEmpty()) {
|
if(!unlinkedNotification.isEmpty() && !INVALID_PAYMENT_CODE_LABEL.equals(unlinkedNotification.keySet().iterator().next().getLabel())) {
|
||||||
unlinkedNotifications.putAll(unlinkedNotification);
|
unlinkedNotifications.putAll(unlinkedNotification);
|
||||||
unlinkedPayNyms.put(unlinkedNotification.keySet().iterator().next(), payNym);
|
unlinkedPayNyms.put(unlinkedNotification.keySet().iterator().next(), payNym);
|
||||||
}
|
}
|
||||||
|
@ -397,6 +398,9 @@ public class PayNymController {
|
||||||
byte[] opReturnData = PaymentCode.getOpReturnData(blockTransaction.getTransaction());
|
byte[] opReturnData = PaymentCode.getOpReturnData(blockTransaction.getTransaction());
|
||||||
if(Arrays.equals(opReturnData, blindedPaymentCode)) {
|
if(Arrays.equals(opReturnData, blindedPaymentCode)) {
|
||||||
addedWallets.addAll(addChildWallets(payNym, externalPaymentCode));
|
addedWallets.addAll(addChildWallets(payNym, externalPaymentCode));
|
||||||
|
} else {
|
||||||
|
blockTransaction.setLabel(INVALID_PAYMENT_CODE_LABEL);
|
||||||
|
EventManager.get().post(new WalletEntryLabelsChangedEvent(input0Node.getWallet(), new TransactionEntry(input0Node.getWallet(), blockTransaction, Collections.emptyMap(), Collections.emptyMap())));
|
||||||
}
|
}
|
||||||
} catch(Exception e) {
|
} catch(Exception e) {
|
||||||
log.error("Error adding linked contact from notification transaction", e);
|
log.error("Error adding linked contact from notification transaction", e);
|
||||||
|
|
Loading…
Reference in a new issue