support extra info for australia payid account #976

This commit is contained in:
woodser 2024-06-04 11:54:08 -04:00
parent f252265ede
commit f6c35ba6f3
12 changed files with 101 additions and 10 deletions

View file

@ -73,7 +73,8 @@ public final class PaymentAccountForm implements PersistablePayload {
SWIFT, SWIFT,
TRANSFERWISE, TRANSFERWISE,
UPHOLD, UPHOLD,
ZELLE; ZELLE,
AUSTRALIA_PAYID;
public static PaymentAccountForm.FormId fromProto(protobuf.PaymentAccountForm.FormId formId) { public static PaymentAccountForm.FormId fromProto(protobuf.PaymentAccountForm.FormId formId) {
return ProtoUtil.enumFromProto(PaymentAccountForm.FormId.class, formId.name()); return ProtoUtil.enumFromProto(PaymentAccountForm.FormId.class, formId.name());

View file

@ -408,6 +408,8 @@ public class Offer implements NetworkPayload, PersistablePayload {
return getExtraDataMap().get(OfferPayload.F2F_EXTRA_INFO); return getExtraDataMap().get(OfferPayload.F2F_EXTRA_INFO);
else if (getExtraDataMap() != null && getExtraDataMap().containsKey(OfferPayload.PAY_BY_MAIL_EXTRA_INFO)) else if (getExtraDataMap() != null && getExtraDataMap().containsKey(OfferPayload.PAY_BY_MAIL_EXTRA_INFO))
return getExtraDataMap().get(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 else
return ""; return "";
} }

View file

@ -99,6 +99,7 @@ public final class OfferPayload implements ProtectedStoragePayload, ExpirablePay
public static final String F2F_CITY = "f2fCity"; public static final String F2F_CITY = "f2fCity";
public static final String F2F_EXTRA_INFO = "f2fExtraInfo"; public static final String F2F_EXTRA_INFO = "f2fExtraInfo";
public static final String PAY_BY_MAIL_EXTRA_INFO = "payByMailExtraInfo"; 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 // 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 // Capability.SIGNED_ACCOUNT_AGE_WITNESS is 11 and Capability.MEDIATION is 12 so if we want to signal that maker

View file

@ -35,6 +35,7 @@ import haveno.core.monetary.Price;
import haveno.core.monetary.TraditionalMoney; import haveno.core.monetary.TraditionalMoney;
import haveno.core.monetary.Volume; import haveno.core.monetary.Volume;
import static haveno.core.offer.OfferPayload.ACCOUNT_AGE_WITNESS_HASH; 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.CAPABILITIES;
import static haveno.core.offer.OfferPayload.F2F_CITY; import static haveno.core.offer.OfferPayload.F2F_CITY;
import static haveno.core.offer.OfferPayload.F2F_EXTRA_INFO; 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.REFERRAL_ID;
import static haveno.core.offer.OfferPayload.XMR_AUTO_CONF; import static haveno.core.offer.OfferPayload.XMR_AUTO_CONF;
import static haveno.core.offer.OfferPayload.XMR_AUTO_CONF_ENABLED_VALUE; 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.F2FAccount;
import haveno.core.payment.PayByMailAccount; import haveno.core.payment.PayByMailAccount;
import haveno.core.payment.PaymentAccount; import haveno.core.payment.PaymentAccount;
@ -197,6 +200,10 @@ public class OfferUtil {
extraDataMap.put(PAY_BY_MAIL_EXTRA_INFO, ((PayByMailAccount) paymentAccount).getExtraInfo()); 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()); extraDataMap.put(CAPABILITIES, Capabilities.app.toStringList());
if (currencyCode.equals("XMR") && direction == OfferDirection.SELL) { if (currencyCode.equals("XMR") && direction == OfferDirection.SELL) {

View file

@ -36,6 +36,14 @@ public final class AustraliaPayidAccount extends PaymentAccount {
setSingleTradeCurrency(SUPPORTED_CURRENCIES.get(0)); 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 @Override
protected PaymentAccountPayload createPayload() { protected PaymentAccountPayload createPayload() {
return new AustraliaPayidAccountPayload(paymentMethod.getId(), id); return new AustraliaPayidAccountPayload(paymentMethod.getId(), id);
@ -48,7 +56,7 @@ public final class AustraliaPayidAccount extends PaymentAccount {
@Override @Override
public @NonNull List<PaymentAccountFormField.FieldId> getInputFieldIds() { public @NonNull List<PaymentAccountFormField.FieldId> getInputFieldIds() {
throw new RuntimeException("Not implemented"); return INPUT_FIELD_IDS;
} }
public String getPayid() { public String getPayid() {
@ -68,4 +76,12 @@ public final class AustraliaPayidAccount extends PaymentAccount {
if (bankAccountName == null) bankAccountName = ""; if (bankAccountName == null) bankAccountName = "";
((AustraliaPayidAccountPayload) paymentAccountPayload).setBankAccountName(bankAccountName); ((AustraliaPayidAccountPayload) paymentAccountPayload).setBankAccountName(bankAccountName);
} }
public void setExtraInfo(String extraInfo) {
((AustraliaPayidAccountPayload) paymentAccountPayload).setExtraInfo(extraInfo);
}
public String getExtraInfo() {
return ((AustraliaPayidAccountPayload) paymentAccountPayload).getExtraInfo();
}
} }

View file

@ -416,7 +416,8 @@ public abstract class PaymentAccount implements PersistablePayload {
case ANSWER: case ANSWER:
throw new IllegalArgumentException("Not implemented"); throw new IllegalArgumentException("Not implemented");
case BANK_ACCOUNT_NAME: case BANK_ACCOUNT_NAME:
throw new IllegalArgumentException("Not implemented"); processValidationResult(new LengthValidator(2, 100).validate(value));
break;
case BANK_ACCOUNT_NUMBER: case BANK_ACCOUNT_NUMBER:
throw new IllegalArgumentException("Not implemented"); throw new IllegalArgumentException("Not implemented");
case BANK_ACCOUNT_TYPE: case BANK_ACCOUNT_TYPE:
@ -515,7 +516,8 @@ public abstract class PaymentAccount implements PersistablePayload {
case NATIONAL_ACCOUNT_ID: case NATIONAL_ACCOUNT_ID:
throw new IllegalArgumentException("Not implemented"); throw new IllegalArgumentException("Not implemented");
case PAYID: case PAYID:
throw new IllegalArgumentException("Not implemented"); processValidationResult(new LengthValidator(2, 100).validate(value));
break;
case PIX_KEY: case PIX_KEY:
throw new IllegalArgumentException("Not implemented"); throw new IllegalArgumentException("Not implemented");
case POSTAL_ADDRESS: case POSTAL_ADDRESS:
@ -596,7 +598,11 @@ public abstract class PaymentAccount implements PersistablePayload {
case ANSWER: case ANSWER:
throw new IllegalArgumentException("Not implemented"); throw new IllegalArgumentException("Not implemented");
case BANK_ACCOUNT_NAME: 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: case BANK_ACCOUNT_NUMBER:
throw new IllegalArgumentException("Not implemented"); throw new IllegalArgumentException("Not implemented");
case BANK_ACCOUNT_TYPE: case BANK_ACCOUNT_TYPE:
@ -724,7 +730,9 @@ public abstract class PaymentAccount implements PersistablePayload {
case NATIONAL_ACCOUNT_ID: case NATIONAL_ACCOUNT_ID:
throw new IllegalArgumentException("Not implemented"); throw new IllegalArgumentException("Not implemented");
case PAYID: case PAYID:
throw new IllegalArgumentException("Not implemented"); field.setComponent(PaymentAccountFormField.Component.TEXT);
field.setLabel(Res.get("payment.email.mobile"));
break;
case PIX_KEY: case PIX_KEY:
throw new IllegalArgumentException("Not implemented"); throw new IllegalArgumentException("Not implemented");
case POSTAL_ADDRESS: case POSTAL_ADDRESS:

View file

@ -38,6 +38,7 @@ import java.util.Map;
public final class AustraliaPayidAccountPayload extends PaymentAccountPayload { public final class AustraliaPayidAccountPayload extends PaymentAccountPayload {
private String payid = ""; private String payid = "";
private String bankAccountName = ""; private String bankAccountName = "";
private String extraInfo = "";
public AustraliaPayidAccountPayload(String paymentMethod, String id) { public AustraliaPayidAccountPayload(String paymentMethod, String id) {
super(paymentMethod, id); super(paymentMethod, id);
@ -52,6 +53,7 @@ public final class AustraliaPayidAccountPayload extends PaymentAccountPayload {
String id, String id,
String payid, String payid,
String bankAccountName, String bankAccountName,
String extraInfo,
long maxTradePeriod, long maxTradePeriod,
Map<String, String> excludeFromJsonDataMap) { Map<String, String> excludeFromJsonDataMap) {
super(paymentMethod, super(paymentMethod,
@ -61,6 +63,7 @@ public final class AustraliaPayidAccountPayload extends PaymentAccountPayload {
this.payid = payid; this.payid = payid;
this.bankAccountName = bankAccountName; this.bankAccountName = bankAccountName;
this.extraInfo = extraInfo;
} }
@Override @Override
@ -70,6 +73,7 @@ public final class AustraliaPayidAccountPayload extends PaymentAccountPayload {
protobuf.AustraliaPayidPayload.newBuilder() protobuf.AustraliaPayidPayload.newBuilder()
.setPayid(payid) .setPayid(payid)
.setBankAccountName(bankAccountName) .setBankAccountName(bankAccountName)
.setExtraInfo(extraInfo)
).build(); ).build();
} }
@ -79,6 +83,7 @@ public final class AustraliaPayidAccountPayload extends PaymentAccountPayload {
proto.getId(), proto.getId(),
AustraliaPayidPayload.getPayid(), AustraliaPayidPayload.getPayid(),
AustraliaPayidPayload.getBankAccountName(), AustraliaPayidPayload.getBankAccountName(),
AustraliaPayidPayload.getExtraInfo(),
proto.getMaxTradePeriod(), proto.getMaxTradePeriod(),
CollectionUtils.isEmpty(proto.getExcludeFromJsonDataMap()) ? null : new HashMap<>(proto.getExcludeFromJsonDataMap())); CollectionUtils.isEmpty(proto.getExcludeFromJsonDataMap()) ? null : new HashMap<>(proto.getExcludeFromJsonDataMap()));
} }
@ -97,7 +102,8 @@ public final class AustraliaPayidAccountPayload extends PaymentAccountPayload {
public String getPaymentDetailsForTradePopup() { public String getPaymentDetailsForTradePopup() {
return return
Res.get("payment.australia.payid") + ": " + payid + "\n" + 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;
} }

View file

@ -363,7 +363,8 @@ public final class PaymentMethod implements PersistablePayload, Comparable<Payme
SWIFT_ID, SWIFT_ID,
TRANSFERWISE_ID, TRANSFERWISE_ID,
UPHOLD_ID, UPHOLD_ID,
ZELLE_ID); ZELLE_ID,
AUSTRALIA_PAYID_ID);
return paymentMethods.stream().filter(paymentMethod -> paymentMethodIds.contains(paymentMethod.getId())).collect(Collectors.toList()); return paymentMethods.stream().filter(paymentMethod -> paymentMethodIds.contains(paymentMethod.getId())).collect(Collectors.toList());
} }

View file

@ -29,12 +29,17 @@ import haveno.core.util.coin.CoinFormatter;
import haveno.core.util.validation.InputValidator; import haveno.core.util.validation.InputValidator;
import haveno.desktop.components.InputTextField; import haveno.desktop.components.InputTextField;
import haveno.desktop.util.FormBuilder; import haveno.desktop.util.FormBuilder;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField; import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane; import javafx.scene.layout.GridPane;
import static haveno.desktop.util.FormBuilder.addCompactTopLabelTextArea;
import static haveno.desktop.util.FormBuilder.addCompactTopLabelTextField; import static haveno.desktop.util.FormBuilder.addCompactTopLabelTextField;
import static haveno.desktop.util.FormBuilder.addTopLabelTextArea;
import static haveno.desktop.util.FormBuilder.addTopLabelTextField; import static haveno.desktop.util.FormBuilder.addTopLabelTextField;
import com.jfoenix.controls.JFXTextArea;
public class AustraliaPayidForm extends PaymentMethodForm { public class AustraliaPayidForm extends PaymentMethodForm {
private final AustraliaPayidAccount australiaPayidAccount; private final AustraliaPayidAccount australiaPayidAccount;
private final AustraliaPayidValidator australiaPayidValidator; private final AustraliaPayidValidator australiaPayidValidator;
@ -42,8 +47,15 @@ public class AustraliaPayidForm extends PaymentMethodForm {
public static int addFormForBuyer(GridPane gridPane, int gridRow, PaymentAccountPayload paymentAccountPayload) { public static int addFormForBuyer(GridPane gridPane, int gridRow, PaymentAccountPayload paymentAccountPayload) {
addCompactTopLabelTextField(gridPane, ++gridRow, Res.get("payment.account.owner"), addCompactTopLabelTextField(gridPane, ++gridRow, Res.get("payment.account.owner"),
((AustraliaPayidAccountPayload) paymentAccountPayload).getBankAccountName()); ((AustraliaPayidAccountPayload) paymentAccountPayload).getBankAccountName());
addCompactTopLabelTextField(gridPane, ++gridRow, Res.get("payment.payid"), addCompactTopLabelTextField(gridPane, ++gridRow, Res.get("payment.payid"),
((AustraliaPayidAccountPayload) paymentAccountPayload).getPayid()); ((AustraliaPayidAccountPayload) paymentAccountPayload).getPayid());
AustraliaPayidAccountPayload payId = (AustraliaPayidAccountPayload) paymentAccountPayload;
TextArea textExtraInfo = addCompactTopLabelTextArea(gridPane, gridRow, 1, Res.get("payment.shared.extraInfo"), "").second;
textExtraInfo.setMinHeight(70);
textExtraInfo.setEditable(false);
textExtraInfo.setText(payId.getExtraInfo());
return gridRow; return gridRow;
} }
@ -78,6 +90,15 @@ public class AustraliaPayidForm extends PaymentMethodForm {
updateFromInputs(); updateFromInputs();
}); });
TextArea extraTextArea = addTopLabelTextArea(gridPane, ++gridRow,
Res.get("payment.shared.optionalExtra"), Res.get("payment.shared.extraInfo.prompt")).second;
extraTextArea.setMinHeight(70);
((JFXTextArea) extraTextArea).setLabelFloat(false);
extraTextArea.textProperty().addListener((ov, oldValue, newValue) -> {
australiaPayidAccount.setExtraInfo(newValue);
updateFromInputs();
});
TradeCurrency singleTradeCurrency = australiaPayidAccount.getSingleTradeCurrency(); TradeCurrency singleTradeCurrency = australiaPayidAccount.getSingleTradeCurrency();
String nameAndCode = singleTradeCurrency != null ? singleTradeCurrency.getNameAndCode() : "null"; String nameAndCode = singleTradeCurrency != null ? singleTradeCurrency.getNameAndCode() : "null";
addTopLabelTextField(gridPane, ++gridRow, Res.get("shared.currency"), nameAndCode); addTopLabelTextField(gridPane, ++gridRow, Res.get("shared.currency"), nameAndCode);
@ -96,11 +117,19 @@ public class AustraliaPayidForm extends PaymentMethodForm {
addAccountNameTextFieldWithAutoFillToggleButton(); addAccountNameTextFieldWithAutoFillToggleButton();
addCompactTopLabelTextField(gridPane, ++gridRow, Res.get("shared.paymentMethod"), addCompactTopLabelTextField(gridPane, ++gridRow, Res.get("shared.paymentMethod"),
Res.get(australiaPayidAccount.getPaymentMethod().getId())); Res.get(australiaPayidAccount.getPaymentMethod().getId()));
addCompactTopLabelTextField(gridPane, ++gridRow, Res.get("payment.payid"), addCompactTopLabelTextField(gridPane, ++gridRow, Res.get("payment.payid"),
australiaPayidAccount.getPayid()); australiaPayidAccount.getPayid());
TextField field = addCompactTopLabelTextField(gridPane, ++gridRow, Res.get("payment.account.owner"), TextField field = addCompactTopLabelTextField(gridPane, ++gridRow, Res.get("payment.account.owner"),
australiaPayidAccount.getBankAccountName()).second; australiaPayidAccount.getBankAccountName()).second;
field.setMouseTransparent(false); field.setMouseTransparent(false);
TextArea textAreaExtra = addCompactTopLabelTextArea(gridPane, ++gridRow, Res.get("payment.shared.extraInfo"), "").second;
textAreaExtra.setText(australiaPayidAccount.getExtraInfo());
textAreaExtra.setMinHeight(70);
textAreaExtra.setEditable(false);
TradeCurrency singleTradeCurrency = australiaPayidAccount.getSingleTradeCurrency(); TradeCurrency singleTradeCurrency = australiaPayidAccount.getSingleTradeCurrency();
String nameAndCode = singleTradeCurrency != null ? singleTradeCurrency.getNameAndCode() : "null"; String nameAndCode = singleTradeCurrency != null ? singleTradeCurrency.getNameAndCode() : "null";
addCompactTopLabelTextField(gridPane, ++gridRow, Res.get("shared.currency"), nameAndCode); addCompactTopLabelTextField(gridPane, ++gridRow, Res.get("shared.currency"), nameAndCode);

View file

@ -158,7 +158,7 @@ public class TakeOfferView extends ActivatableViewAndModel<AnchorPane, TakeOffer
private int gridRow = 0; private int gridRow = 0;
private final HashMap<String, Boolean> paymentAccountWarningDisplayed = new HashMap<>(); private final HashMap<String, Boolean> paymentAccountWarningDisplayed = new HashMap<>();
private boolean offerDetailsWindowDisplayed, zelleWarningDisplayed, fasterPaymentsWarningDisplayed, private boolean offerDetailsWindowDisplayed, zelleWarningDisplayed, fasterPaymentsWarningDisplayed,
takeOfferFromUnsignedAccountWarningDisplayed, payByMailWarningDisplayed, cashAtAtmWarningDisplayed; takeOfferFromUnsignedAccountWarningDisplayed, payByMailWarningDisplayed, cashAtAtmWarningDisplayed, australiaPayidWarningDisplayed;
private SimpleBooleanProperty errorPopupDisplayed; private SimpleBooleanProperty errorPopupDisplayed;
private ChangeListener<Boolean> amountFocusedListener, getShowWalletFundedNotificationListener; private ChangeListener<Boolean> amountFocusedListener, getShowWalletFundedNotificationListener;
@ -267,6 +267,7 @@ public class TakeOfferView extends ActivatableViewAndModel<AnchorPane, TakeOffer
maybeShowAccountWarning(lastPaymentAccount, model.dataModel.isBuyOffer()); maybeShowAccountWarning(lastPaymentAccount, model.dataModel.isBuyOffer());
maybeShowPayByMailWarning(lastPaymentAccount, model.dataModel.getOffer()); maybeShowPayByMailWarning(lastPaymentAccount, model.dataModel.getOffer());
maybeShowCashAtAtmWarning(lastPaymentAccount, model.dataModel.getOffer()); maybeShowCashAtAtmWarning(lastPaymentAccount, model.dataModel.getOffer());
maybeShowAustraliaPayidWarning(lastPaymentAccount, model.dataModel.getOffer());
if (!model.isRange()) { if (!model.isRange()) {
nextButton.setVisible(false); nextButton.setVisible(false);
@ -1139,6 +1140,23 @@ public class TakeOfferView extends ActivatableViewAndModel<AnchorPane, TakeOffer
} }
} }
private void maybeShowAustraliaPayidWarning(PaymentAccount paymentAccount, Offer offer) {
if (paymentAccount.getPaymentMethod().getId().equals(PaymentMethod.AUSTRALIA_PAYID_ID) &&
!australiaPayidWarningDisplayed && !offer.getExtraInfo().isEmpty()) {
australiaPayidWarningDisplayed = true;
UserThread.runAfter(() -> {
new GenericMessageWindow()
.preamble(Res.get("payment.tradingRestrictions"))
.instruction(offer.getExtraInfo())
.actionButtonText(Res.get("shared.iConfirm"))
.closeButtonText(Res.get("shared.close"))
.width(Layout.INITIAL_WINDOW_WIDTH)
.onClose(() -> close(false))
.show();
}, 500, TimeUnit.MILLISECONDS);
}
}
private Tuple2<Label, VBox> getTradeInputBox(HBox amountValueBox, String promptText) { private Tuple2<Label, VBox> getTradeInputBox(HBox amountValueBox, String promptText) {
Label descriptionLabel = new AutoTooltipLabel(promptText); Label descriptionLabel = new AutoTooltipLabel(promptText);
descriptionLabel.setId("input-description-label"); descriptionLabel.setId("input-description-label");

View file

@ -174,7 +174,7 @@ public class OfferDetailsWindow extends Overlay<OfferDetailsWindow> {
List<String> acceptedCountryCodes = offer.getAcceptedCountryCodes(); List<String> acceptedCountryCodes = offer.getAcceptedCountryCodes();
boolean showAcceptedCountryCodes = acceptedCountryCodes != null && !acceptedCountryCodes.isEmpty(); boolean showAcceptedCountryCodes = acceptedCountryCodes != null && !acceptedCountryCodes.isEmpty();
boolean isF2F = offer.getPaymentMethod().equals(PaymentMethod.F2F); boolean isF2F = offer.getPaymentMethod().equals(PaymentMethod.F2F);
boolean showExtraInfo = offer.getPaymentMethod().equals(PaymentMethod.F2F) || offer.getPaymentMethod().equals(PaymentMethod.PAY_BY_MAIL); boolean showExtraInfo = offer.getPaymentMethod().equals(PaymentMethod.F2F) || offer.getPaymentMethod().equals(PaymentMethod.PAY_BY_MAIL) || offer.getPaymentMethod().equals(PaymentMethod.AUSTRALIA_PAYID);
if (!takeOfferHandlerOptional.isPresent()) if (!takeOfferHandlerOptional.isPresent())
rows++; rows++;
if (showAcceptedBanks) if (showAcceptedBanks)

View file

@ -971,6 +971,7 @@ message JapanBankAccountPayload {
message AustraliaPayidPayload { message AustraliaPayidPayload {
string bank_account_name = 1; string bank_account_name = 1;
string payid = 2; string payid = 2;
string extra_info = 3;
} }
message SpecificBanksAccountPayload { message SpecificBanksAccountPayload {
@ -1870,6 +1871,7 @@ message PaymentAccountForm {
PAXUM = 12; PAXUM = 12;
PAY_BY_MAIL = 13; PAY_BY_MAIL = 13;
CASH_AT_ATM = 14; CASH_AT_ATM = 14;
AUSTRALIA_PAYID = 15;
} }
FormId id = 1; FormId id = 1;
repeated PaymentAccountFormField fields = 2; repeated PaymentAccountFormField fields = 2;