mirror of
https://github.com/haveno-dex/haveno.git
synced 2025-05-22 00:11:19 -04:00
support extra info for australia payid account #976
This commit is contained in:
parent
f252265ede
commit
f6c35ba6f3
12 changed files with 101 additions and 10 deletions
|
@ -73,7 +73,8 @@ public final class PaymentAccountForm implements PersistablePayload {
|
|||
SWIFT,
|
||||
TRANSFERWISE,
|
||||
UPHOLD,
|
||||
ZELLE;
|
||||
ZELLE,
|
||||
AUSTRALIA_PAYID;
|
||||
|
||||
public static PaymentAccountForm.FormId fromProto(protobuf.PaymentAccountForm.FormId formId) {
|
||||
return ProtoUtil.enumFromProto(PaymentAccountForm.FormId.class, formId.name());
|
||||
|
|
|
@ -408,6 +408,8 @@ public class Offer implements NetworkPayload, PersistablePayload {
|
|||
return getExtraDataMap().get(OfferPayload.F2F_EXTRA_INFO);
|
||||
else if (getExtraDataMap() != null && getExtraDataMap().containsKey(OfferPayload.PAY_BY_MAIL_EXTRA_INFO))
|
||||
return getExtraDataMap().get(OfferPayload.PAY_BY_MAIL_EXTRA_INFO);
|
||||
else if (getExtraDataMap() != null && getExtraDataMap().containsKey(OfferPayload.AUSTRALIA_PAYID_EXTRA_INFO))
|
||||
return getExtraDataMap().get(OfferPayload.AUSTRALIA_PAYID_EXTRA_INFO);
|
||||
else
|
||||
return "";
|
||||
}
|
||||
|
|
|
@ -99,6 +99,7 @@ public final class OfferPayload implements ProtectedStoragePayload, ExpirablePay
|
|||
public static final String F2F_CITY = "f2fCity";
|
||||
public static final String F2F_EXTRA_INFO = "f2fExtraInfo";
|
||||
public static final String PAY_BY_MAIL_EXTRA_INFO = "payByMailExtraInfo";
|
||||
public static final String AUSTRALIA_PAYID_EXTRA_INFO = "australiaPayidExtraInfo";
|
||||
|
||||
// Comma separated list of ordinal of a haveno.common.app.Capability. E.g. ordinal of
|
||||
// Capability.SIGNED_ACCOUNT_AGE_WITNESS is 11 and Capability.MEDIATION is 12 so if we want to signal that maker
|
||||
|
|
|
@ -35,6 +35,7 @@ import haveno.core.monetary.Price;
|
|||
import haveno.core.monetary.TraditionalMoney;
|
||||
import haveno.core.monetary.Volume;
|
||||
import static haveno.core.offer.OfferPayload.ACCOUNT_AGE_WITNESS_HASH;
|
||||
import static haveno.core.offer.OfferPayload.AUSTRALIA_PAYID_EXTRA_INFO;
|
||||
import static haveno.core.offer.OfferPayload.CAPABILITIES;
|
||||
import static haveno.core.offer.OfferPayload.F2F_CITY;
|
||||
import static haveno.core.offer.OfferPayload.F2F_EXTRA_INFO;
|
||||
|
@ -42,6 +43,8 @@ import static haveno.core.offer.OfferPayload.PAY_BY_MAIL_EXTRA_INFO;
|
|||
import static haveno.core.offer.OfferPayload.REFERRAL_ID;
|
||||
import static haveno.core.offer.OfferPayload.XMR_AUTO_CONF;
|
||||
import static haveno.core.offer.OfferPayload.XMR_AUTO_CONF_ENABLED_VALUE;
|
||||
|
||||
import haveno.core.payment.AustraliaPayidAccount;
|
||||
import haveno.core.payment.F2FAccount;
|
||||
import haveno.core.payment.PayByMailAccount;
|
||||
import haveno.core.payment.PaymentAccount;
|
||||
|
@ -197,6 +200,10 @@ public class OfferUtil {
|
|||
extraDataMap.put(PAY_BY_MAIL_EXTRA_INFO, ((PayByMailAccount) paymentAccount).getExtraInfo());
|
||||
}
|
||||
|
||||
if (paymentAccount instanceof AustraliaPayidAccount) {
|
||||
extraDataMap.put(AUSTRALIA_PAYID_EXTRA_INFO, ((AustraliaPayidAccount) paymentAccount).getExtraInfo());
|
||||
}
|
||||
|
||||
extraDataMap.put(CAPABILITIES, Capabilities.app.toStringList());
|
||||
|
||||
if (currencyCode.equals("XMR") && direction == OfferDirection.SELL) {
|
||||
|
|
|
@ -36,6 +36,14 @@ public final class AustraliaPayidAccount extends PaymentAccount {
|
|||
setSingleTradeCurrency(SUPPORTED_CURRENCIES.get(0));
|
||||
}
|
||||
|
||||
private static final List<PaymentAccountFormField.FieldId> INPUT_FIELD_IDS = List.of(
|
||||
PaymentAccountFormField.FieldId.BANK_ACCOUNT_NAME,
|
||||
PaymentAccountFormField.FieldId.PAYID,
|
||||
PaymentAccountFormField.FieldId.EXTRA_INFO,
|
||||
PaymentAccountFormField.FieldId.ACCOUNT_NAME,
|
||||
PaymentAccountFormField.FieldId.SALT
|
||||
);
|
||||
|
||||
@Override
|
||||
protected PaymentAccountPayload createPayload() {
|
||||
return new AustraliaPayidAccountPayload(paymentMethod.getId(), id);
|
||||
|
@ -48,7 +56,7 @@ public final class AustraliaPayidAccount extends PaymentAccount {
|
|||
|
||||
@Override
|
||||
public @NonNull List<PaymentAccountFormField.FieldId> getInputFieldIds() {
|
||||
throw new RuntimeException("Not implemented");
|
||||
return INPUT_FIELD_IDS;
|
||||
}
|
||||
|
||||
public String getPayid() {
|
||||
|
@ -68,4 +76,12 @@ public final class AustraliaPayidAccount extends PaymentAccount {
|
|||
if (bankAccountName == null) bankAccountName = "";
|
||||
((AustraliaPayidAccountPayload) paymentAccountPayload).setBankAccountName(bankAccountName);
|
||||
}
|
||||
|
||||
public void setExtraInfo(String extraInfo) {
|
||||
((AustraliaPayidAccountPayload) paymentAccountPayload).setExtraInfo(extraInfo);
|
||||
}
|
||||
|
||||
public String getExtraInfo() {
|
||||
return ((AustraliaPayidAccountPayload) paymentAccountPayload).getExtraInfo();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -416,7 +416,8 @@ public abstract class PaymentAccount implements PersistablePayload {
|
|||
case ANSWER:
|
||||
throw new IllegalArgumentException("Not implemented");
|
||||
case BANK_ACCOUNT_NAME:
|
||||
throw new IllegalArgumentException("Not implemented");
|
||||
processValidationResult(new LengthValidator(2, 100).validate(value));
|
||||
break;
|
||||
case BANK_ACCOUNT_NUMBER:
|
||||
throw new IllegalArgumentException("Not implemented");
|
||||
case BANK_ACCOUNT_TYPE:
|
||||
|
@ -515,7 +516,8 @@ public abstract class PaymentAccount implements PersistablePayload {
|
|||
case NATIONAL_ACCOUNT_ID:
|
||||
throw new IllegalArgumentException("Not implemented");
|
||||
case PAYID:
|
||||
throw new IllegalArgumentException("Not implemented");
|
||||
processValidationResult(new LengthValidator(2, 100).validate(value));
|
||||
break;
|
||||
case PIX_KEY:
|
||||
throw new IllegalArgumentException("Not implemented");
|
||||
case POSTAL_ADDRESS:
|
||||
|
@ -596,7 +598,11 @@ public abstract class PaymentAccount implements PersistablePayload {
|
|||
case ANSWER:
|
||||
throw new IllegalArgumentException("Not implemented");
|
||||
case BANK_ACCOUNT_NAME:
|
||||
throw new IllegalArgumentException("Not implemented");
|
||||
field.setComponent(PaymentAccountFormField.Component.TEXT);
|
||||
field.setLabel(Res.get("payment.account.owner"));
|
||||
field.setMinLength(2);
|
||||
field.setMaxLength(100);
|
||||
break;
|
||||
case BANK_ACCOUNT_NUMBER:
|
||||
throw new IllegalArgumentException("Not implemented");
|
||||
case BANK_ACCOUNT_TYPE:
|
||||
|
@ -724,7 +730,9 @@ public abstract class PaymentAccount implements PersistablePayload {
|
|||
case NATIONAL_ACCOUNT_ID:
|
||||
throw new IllegalArgumentException("Not implemented");
|
||||
case PAYID:
|
||||
throw new IllegalArgumentException("Not implemented");
|
||||
field.setComponent(PaymentAccountFormField.Component.TEXT);
|
||||
field.setLabel(Res.get("payment.email.mobile"));
|
||||
break;
|
||||
case PIX_KEY:
|
||||
throw new IllegalArgumentException("Not implemented");
|
||||
case POSTAL_ADDRESS:
|
||||
|
|
|
@ -38,6 +38,7 @@ import java.util.Map;
|
|||
public final class AustraliaPayidAccountPayload extends PaymentAccountPayload {
|
||||
private String payid = "";
|
||||
private String bankAccountName = "";
|
||||
private String extraInfo = "";
|
||||
|
||||
public AustraliaPayidAccountPayload(String paymentMethod, String id) {
|
||||
super(paymentMethod, id);
|
||||
|
@ -52,6 +53,7 @@ public final class AustraliaPayidAccountPayload extends PaymentAccountPayload {
|
|||
String id,
|
||||
String payid,
|
||||
String bankAccountName,
|
||||
String extraInfo,
|
||||
long maxTradePeriod,
|
||||
Map<String, String> excludeFromJsonDataMap) {
|
||||
super(paymentMethod,
|
||||
|
@ -61,6 +63,7 @@ public final class AustraliaPayidAccountPayload extends PaymentAccountPayload {
|
|||
|
||||
this.payid = payid;
|
||||
this.bankAccountName = bankAccountName;
|
||||
this.extraInfo = extraInfo;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -70,6 +73,7 @@ public final class AustraliaPayidAccountPayload extends PaymentAccountPayload {
|
|||
protobuf.AustraliaPayidPayload.newBuilder()
|
||||
.setPayid(payid)
|
||||
.setBankAccountName(bankAccountName)
|
||||
.setExtraInfo(extraInfo)
|
||||
).build();
|
||||
}
|
||||
|
||||
|
@ -79,6 +83,7 @@ public final class AustraliaPayidAccountPayload extends PaymentAccountPayload {
|
|||
proto.getId(),
|
||||
AustraliaPayidPayload.getPayid(),
|
||||
AustraliaPayidPayload.getBankAccountName(),
|
||||
AustraliaPayidPayload.getExtraInfo(),
|
||||
proto.getMaxTradePeriod(),
|
||||
CollectionUtils.isEmpty(proto.getExcludeFromJsonDataMap()) ? null : new HashMap<>(proto.getExcludeFromJsonDataMap()));
|
||||
}
|
||||
|
@ -97,7 +102,8 @@ public final class AustraliaPayidAccountPayload extends PaymentAccountPayload {
|
|||
public String getPaymentDetailsForTradePopup() {
|
||||
return
|
||||
Res.get("payment.australia.payid") + ": " + payid + "\n" +
|
||||
Res.get("payment.account.owner") + ": " + bankAccountName;
|
||||
Res.get("payment.account.owner") + ": " + bankAccountName + "\n" +
|
||||
Res.get("payment.shared.extraInfo") + ": " + extraInfo;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -363,7 +363,8 @@ public final class PaymentMethod implements PersistablePayload, Comparable<Payme
|
|||
SWIFT_ID,
|
||||
TRANSFERWISE_ID,
|
||||
UPHOLD_ID,
|
||||
ZELLE_ID);
|
||||
ZELLE_ID,
|
||||
AUSTRALIA_PAYID_ID);
|
||||
return paymentMethods.stream().filter(paymentMethod -> paymentMethodIds.contains(paymentMethod.getId())).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue