fixed rail & operation names

This commit is contained in:
Stephan D
2026-02-27 02:33:40 +01:00
parent 82cf91e703
commit 747153bdbf
73 changed files with 877 additions and 667 deletions

View File

@@ -2,28 +2,6 @@ package discovery
import "strings"
const (
RailCrypto = "CRYPTO"
RailProviderSettlement = "SETTLEMENT"
RailLedger = "LEDGER"
RailCardPayout = "CARD"
RailFiatOnRamp = "ONRAMP"
)
const (
RailOperationDebit = "DEBIT"
RailOperationCredit = "CREDIT"
RailOperationExternalDebit = "EXTERNAL_DEBIT"
RailOperationExternalCredit = "EXTERNAL_CREDIT"
RailOperationMove = "MOVE"
RailOperationSend = "SEND"
RailOperationFee = "FEE"
RailOperationObserveConfirm = "OBSERVE_CONFIRM"
RailOperationFXConvert = "FX_CONVERT"
RailOperationBlock = "BLOCK"
RailOperationRelease = "RELEASE"
)
var knownRails = map[string]struct{}{
RailCrypto: {},
RailProviderSettlement: {},
@@ -57,21 +35,7 @@ func NormalizeRail(value string) string {
for strings.Contains(clean, "__") {
clean = strings.ReplaceAll(clean, "__", "_")
}
switch clean {
case RailCrypto, "RAIL_CRYPTO":
return RailCrypto
case RailProviderSettlement, "PROVIDER_SETTLEMENT", "RAIL_SETTLEMENT", "RAIL_PROVIDER_SETTLEMENT":
return RailProviderSettlement
case RailLedger, "RAIL_LEDGER":
return RailLedger
case RailCardPayout, "CARD_PAYOUT", "RAIL_CARD", "RAIL_CARD_PAYOUT":
return RailCardPayout
case RailFiatOnRamp, "FIAT_ONRAMP", "RAIL_ONRAMP", "RAIL_FIAT_ONRAMP":
return RailFiatOnRamp
default:
return clean
}
return clean
}
// IsKnownRail reports whether the value is a recognized payment rail.
@@ -82,11 +46,7 @@ func IsKnownRail(value string) bool {
// NormalizeRailOperation canonicalizes a rail operation token.
func NormalizeRailOperation(value string) string {
clean := strings.ToUpper(strings.TrimSpace(value))
if after, ok := strings.CutPrefix(clean, "RAIL_OPERATION_"); ok {
clean = after
}
return clean
return strings.ToUpper(strings.TrimSpace(value))
}
// IsKnownRailOperation reports whether the value is a recognized rail operation.
@@ -104,24 +64,16 @@ func ExpandRailOperation(value string) []string {
}
switch strings.ToLower(strings.TrimSpace(value)) {
case OperationExternalDebit, "external_debit":
case OperationExternalDebit:
return []string{RailOperationExternalDebit}
case OperationExternalCredit, "external_credit":
case OperationExternalCredit:
return []string{RailOperationExternalCredit}
case "payin", "payin.crypto", "payin.fiat", "payin.card":
return []string{RailOperationExternalDebit}
case "payout", "payout.crypto", "payout.fiat", "payout.card":
return []string{RailOperationExternalCredit, RailOperationSend}
case "fee.send", "fees.send", OperationFee:
case OperationFee:
return []string{RailOperationFee}
case OperationObserveConfirm, "observe_confirm":
case OperationObserveConfirm:
return []string{RailOperationObserveConfirm}
case OperationFXConvert, "fx_convert":
case OperationFXConvert:
return []string{RailOperationFXConvert}
case "funds.block", "hold.balance", "block":
return []string{RailOperationBlock}
case "funds.release", "release", "unblock":
return []string{RailOperationRelease}
default:
return nil
}
@@ -159,12 +111,6 @@ func CryptoRailGatewayOperations() []string {
OperationExternalCredit,
OperationFee,
OperationObserveConfirm,
// Legacy rail tokens retained for backward compatibility.
RailOperationSend,
RailOperationExternalDebit,
RailOperationExternalCredit,
RailOperationFee,
RailOperationObserveConfirm,
}
}
@@ -174,10 +120,6 @@ func CardPayoutRailGatewayOperations() []string {
OperationSend,
OperationExternalCredit,
OperationObserveConfirm,
// Legacy rail tokens retained for backward compatibility.
RailOperationSend,
RailOperationExternalCredit,
RailOperationObserveConfirm,
}
}
@@ -186,8 +128,5 @@ func ProviderSettlementRailGatewayOperations() []string {
return []string{
OperationFXConvert,
OperationObserveConfirm,
// Legacy rail tokens retained for backward compatibility.
RailOperationFXConvert,
RailOperationObserveConfirm,
}
}