mirror of
https://github.com/haveno-dex/haveno.git
synced 2025-06-23 06:14:11 -04:00
support ach transfer payment account over grpc api
This commit is contained in:
parent
49005d604e
commit
ae650c6ee1
5 changed files with 39 additions and 7 deletions
|
@ -83,7 +83,8 @@ public final class PaymentAccountForm implements PersistablePayload {
|
||||||
ALI_PAY,
|
ALI_PAY,
|
||||||
SWISH,
|
SWISH,
|
||||||
TRANSFERWISE_USD,
|
TRANSFERWISE_USD,
|
||||||
AMAZON_GIFT_CARD;
|
AMAZON_GIFT_CARD,
|
||||||
|
ACH_TRANSFER;
|
||||||
|
|
||||||
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());
|
||||||
|
|
|
@ -19,6 +19,7 @@ package haveno.core.payment;
|
||||||
|
|
||||||
import haveno.core.api.model.PaymentAccountFormField;
|
import haveno.core.api.model.PaymentAccountFormField;
|
||||||
import haveno.core.locale.TraditionalCurrency;
|
import haveno.core.locale.TraditionalCurrency;
|
||||||
|
import haveno.core.locale.BankUtil;
|
||||||
import haveno.core.locale.TradeCurrency;
|
import haveno.core.locale.TradeCurrency;
|
||||||
import haveno.core.payment.payload.AchTransferAccountPayload;
|
import haveno.core.payment.payload.AchTransferAccountPayload;
|
||||||
import haveno.core.payment.payload.BankAccountPayload;
|
import haveno.core.payment.payload.BankAccountPayload;
|
||||||
|
@ -34,6 +35,19 @@ public final class AchTransferAccount extends CountryBasedPaymentAccount impleme
|
||||||
|
|
||||||
public static final List<TradeCurrency> SUPPORTED_CURRENCIES = List.of(new TraditionalCurrency("USD"));
|
public static final List<TradeCurrency> SUPPORTED_CURRENCIES = List.of(new TraditionalCurrency("USD"));
|
||||||
|
|
||||||
|
private static final List<PaymentAccountFormField.FieldId> INPUT_FIELD_IDS = List.of(
|
||||||
|
PaymentAccountFormField.FieldId.HOLDER_NAME,
|
||||||
|
PaymentAccountFormField.FieldId.HOLDER_ADDRESS,
|
||||||
|
PaymentAccountFormField.FieldId.BANK_NAME,
|
||||||
|
PaymentAccountFormField.FieldId.BRANCH_ID,
|
||||||
|
PaymentAccountFormField.FieldId.ACCOUNT_NR,
|
||||||
|
PaymentAccountFormField.FieldId.ACCOUNT_TYPE,
|
||||||
|
PaymentAccountFormField.FieldId.COUNTRY,
|
||||||
|
PaymentAccountFormField.FieldId.TRADE_CURRENCIES,
|
||||||
|
PaymentAccountFormField.FieldId.ACCOUNT_NAME,
|
||||||
|
PaymentAccountFormField.FieldId.SALT
|
||||||
|
);
|
||||||
|
|
||||||
public AchTransferAccount() {
|
public AchTransferAccount() {
|
||||||
super(PaymentMethod.ACH_TRANSFER);
|
super(PaymentMethod.ACH_TRANSFER);
|
||||||
}
|
}
|
||||||
|
@ -79,6 +93,15 @@ public final class AchTransferAccount extends CountryBasedPaymentAccount impleme
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NonNull List<PaymentAccountFormField.FieldId> getInputFieldIds() {
|
public @NonNull List<PaymentAccountFormField.FieldId> getInputFieldIds() {
|
||||||
throw new RuntimeException("Not implemented");
|
return INPUT_FIELD_IDS;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected PaymentAccountFormField getEmptyFormField(PaymentAccountFormField.FieldId fieldId) {
|
||||||
|
var field = super.getEmptyFormField(fieldId);
|
||||||
|
if (field.getId() == PaymentAccountFormField.FieldId.TRADE_CURRENCIES) field.setComponent(PaymentAccountFormField.Component.SELECT_ONE);
|
||||||
|
if (field.getId() == PaymentAccountFormField.FieldId.BRANCH_ID) field.setLabel(BankUtil.getBranchIdLabel("US"));
|
||||||
|
if (field.getId() == PaymentAccountFormField.FieldId.ACCOUNT_TYPE) field.setLabel(BankUtil.getAccountTypeLabel("US"));
|
||||||
|
return field;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -435,7 +435,8 @@ public abstract class PaymentAccount implements PersistablePayload {
|
||||||
processValidationResult(new LengthValidator(2, 100).validate(value));
|
processValidationResult(new LengthValidator(2, 100).validate(value));
|
||||||
break;
|
break;
|
||||||
case ACCOUNT_TYPE:
|
case ACCOUNT_TYPE:
|
||||||
throw new IllegalArgumentException("Not implemented");
|
processValidationResult(new LengthValidator(2, 100).validate(value));
|
||||||
|
break;
|
||||||
case ANSWER:
|
case ANSWER:
|
||||||
throw new IllegalArgumentException("Not implemented");
|
throw new IllegalArgumentException("Not implemented");
|
||||||
case BANK_ACCOUNT_NAME:
|
case BANK_ACCOUNT_NAME:
|
||||||
|
@ -491,7 +492,8 @@ public abstract class PaymentAccount implements PersistablePayload {
|
||||||
processValidationResult(new BICValidator().validate(value));
|
processValidationResult(new BICValidator().validate(value));
|
||||||
break;
|
break;
|
||||||
case BRANCH_ID:
|
case BRANCH_ID:
|
||||||
throw new IllegalArgumentException("Not implemented");
|
processValidationResult(new LengthValidator(2, 34).validate(value));
|
||||||
|
break;
|
||||||
case CITY:
|
case CITY:
|
||||||
processValidationResult(new LengthValidator(2, 34).validate(value));
|
processValidationResult(new LengthValidator(2, 34).validate(value));
|
||||||
break;
|
break;
|
||||||
|
@ -624,7 +626,9 @@ public abstract class PaymentAccount implements PersistablePayload {
|
||||||
field.setLabel(Res.get("payment.account.owner"));
|
field.setLabel(Res.get("payment.account.owner"));
|
||||||
break;
|
break;
|
||||||
case ACCOUNT_TYPE:
|
case ACCOUNT_TYPE:
|
||||||
throw new IllegalArgumentException("Not implemented");
|
field.setComponent(PaymentAccountFormField.Component.SELECT_ONE);
|
||||||
|
field.setLabel(Res.get("payment.select.account"));
|
||||||
|
break;
|
||||||
case ANSWER:
|
case ANSWER:
|
||||||
throw new IllegalArgumentException("Not implemented");
|
throw new IllegalArgumentException("Not implemented");
|
||||||
case BANK_ACCOUNT_NAME:
|
case BANK_ACCOUNT_NAME:
|
||||||
|
@ -692,7 +696,9 @@ public abstract class PaymentAccount implements PersistablePayload {
|
||||||
field.setLabel("BIC");
|
field.setLabel("BIC");
|
||||||
break;
|
break;
|
||||||
case BRANCH_ID:
|
case BRANCH_ID:
|
||||||
throw new IllegalArgumentException("Not implemented");
|
field.setComponent(PaymentAccountFormField.Component.TEXT);
|
||||||
|
//field.setLabel("Not implemented"); // expected to be overridden by subclasses
|
||||||
|
break;
|
||||||
case CITY:
|
case CITY:
|
||||||
field.setComponent(PaymentAccountFormField.Component.TEXT);
|
field.setComponent(PaymentAccountFormField.Component.TEXT);
|
||||||
field.setLabel(Res.get("payment.account.city"));
|
field.setLabel(Res.get("payment.account.city"));
|
||||||
|
|
|
@ -374,7 +374,8 @@ public final class PaymentMethod implements PersistablePayload, Comparable<Payme
|
||||||
ALI_PAY_ID,
|
ALI_PAY_ID,
|
||||||
SWISH_ID,
|
SWISH_ID,
|
||||||
TRANSFERWISE_USD_ID,
|
TRANSFERWISE_USD_ID,
|
||||||
AMAZON_GIFT_CARD_ID);
|
AMAZON_GIFT_CARD_ID,
|
||||||
|
ACH_TRANSFER_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());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1908,6 +1908,7 @@ message PaymentAccountForm {
|
||||||
SWISH = 22;
|
SWISH = 22;
|
||||||
TRANSFERWISE_USD = 23;
|
TRANSFERWISE_USD = 23;
|
||||||
AMAZON_GIFT_CARD = 24;
|
AMAZON_GIFT_CARD = 24;
|
||||||
|
ACH_TRANSFER = 25;
|
||||||
}
|
}
|
||||||
FormId id = 1;
|
FormId id = 1;
|
||||||
repeated PaymentAccountFormField fields = 2;
|
repeated PaymentAccountFormField fields = 2;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue