fixed settlement mode import

This commit is contained in:
Stephan D
2026-02-13 15:41:42 +01:00
parent 52c4c046c9
commit 01020bb694
7 changed files with 35 additions and 30 deletions

View File

@@ -12,6 +12,7 @@ import (
fxv1 "github.com/tech/sendico/pkg/proto/common/fx/v1"
gatewayv1 "github.com/tech/sendico/pkg/proto/common/gateway/v1"
moneyv1 "github.com/tech/sendico/pkg/proto/common/money/v1"
paymentv1 "github.com/tech/sendico/pkg/proto/common/payment/v1"
chainv1 "github.com/tech/sendico/pkg/proto/gateway/chain/v1"
oraclev1 "github.com/tech/sendico/pkg/proto/oracle/v1"
orchestratorv1 "github.com/tech/sendico/pkg/proto/payments/orchestration/v1"
@@ -553,25 +554,25 @@ func protoFailureFromModel(code model.PaymentFailureCode) sharedv1.PaymentFailur
}
}
func settlementModeFromProto(mode sharedv1.SettlementMode) model.SettlementMode {
func settlementModeFromProto(mode paymentv1.SettlementMode) model.SettlementMode {
switch mode {
case sharedv1.SettlementMode_SETTLEMENT_FIX_SOURCE:
case paymentv1.SettlementMode_SETTLEMENT_FIX_SOURCE:
return model.SettlementModeFixSource
case sharedv1.SettlementMode_SETTLEMENT_FIX_RECEIVED:
case paymentv1.SettlementMode_SETTLEMENT_FIX_RECEIVED:
return model.SettlementModeFixReceived
default:
return model.SettlementModeUnspecified
}
}
func settlementModeToProto(mode model.SettlementMode) sharedv1.SettlementMode {
func settlementModeToProto(mode model.SettlementMode) paymentv1.SettlementMode {
switch mode {
case model.SettlementModeFixSource:
return sharedv1.SettlementMode_SETTLEMENT_FIX_SOURCE
return paymentv1.SettlementMode_SETTLEMENT_FIX_SOURCE
case model.SettlementModeFixReceived:
return sharedv1.SettlementMode_SETTLEMENT_FIX_RECEIVED
return paymentv1.SettlementMode_SETTLEMENT_FIX_RECEIVED
default:
return sharedv1.SettlementMode_SETTLEMENT_UNSPECIFIED
return paymentv1.SettlementMode_SETTLEMENT_UNSPECIFIED
}
}

View File

@@ -14,6 +14,7 @@ import (
accountingv1 "github.com/tech/sendico/pkg/proto/common/accounting/v1"
fxv1 "github.com/tech/sendico/pkg/proto/common/fx/v1"
moneyv1 "github.com/tech/sendico/pkg/proto/common/money/v1"
paymentv1 "github.com/tech/sendico/pkg/proto/common/payment/v1"
)
type moneyGetter interface {
@@ -100,7 +101,7 @@ func resolveTradeAmounts(intentAmount *moneyv1.Money, fxQuote *oraclev1.Quote, s
}
}
func computeAggregates(pay, settlement, fee *moneyv1.Money, network *chainv1.EstimateTransferFeeResponse, fxQuote *oraclev1.Quote, mode sharedv1.SettlementMode) (*moneyv1.Money, *moneyv1.Money) {
func computeAggregates(pay, settlement, fee *moneyv1.Money, network *chainv1.EstimateTransferFeeResponse, fxQuote *oraclev1.Quote, mode paymentv1.SettlementMode) (*moneyv1.Money, *moneyv1.Money) {
if pay == nil {
return nil, nil
}
@@ -142,7 +143,7 @@ func computeAggregates(pay, settlement, fee *moneyv1.Money, network *chainv1.Est
}
switch mode {
case sharedv1.SettlementMode_SETTLEMENT_FIX_RECEIVED:
case paymentv1.SettlementMode_SETTLEMENT_FIX_RECEIVED:
// Sender pays the fee: keep settlement fixed, increase debit.
applyChargeToDebit(fee)
default:
@@ -152,7 +153,7 @@ func computeAggregates(pay, settlement, fee *moneyv1.Money, network *chainv1.Est
if network != nil && network.GetNetworkFee() != nil {
switch mode {
case sharedv1.SettlementMode_SETTLEMENT_FIX_RECEIVED:
case paymentv1.SettlementMode_SETTLEMENT_FIX_RECEIVED:
applyChargeToDebit(network.GetNetworkFee())
default:
applyChargeToSettlement(network.GetNetworkFee())

View File

@@ -7,9 +7,9 @@ import (
accountingv1 "github.com/tech/sendico/pkg/proto/common/accounting/v1"
fxv1 "github.com/tech/sendico/pkg/proto/common/fx/v1"
moneyv1 "github.com/tech/sendico/pkg/proto/common/money/v1"
paymentv1 "github.com/tech/sendico/pkg/proto/common/payment/v1"
chainv1 "github.com/tech/sendico/pkg/proto/gateway/chain/v1"
oraclev1 "github.com/tech/sendico/pkg/proto/oracle/v1"
sharedv1 "github.com/tech/sendico/pkg/proto/payments/shared/v1"
)
func TestResolveTradeAmountsBuyBase(t *testing.T) {
@@ -50,7 +50,7 @@ func TestComputeAggregatesConvertsCurrencies(t *testing.T) {
},
}
debit, settlement := computeAggregates(pay, settle, fee, network, fxQuote, sharedv1.SettlementMode_SETTLEMENT_FIX_RECEIVED)
debit, settlement := computeAggregates(pay, settle, fee, network, fxQuote, paymentv1.SettlementMode_SETTLEMENT_FIX_RECEIVED)
if debit.GetCurrency() != "USD" || debit.GetAmount() != "115" {
t.Fatalf("expected debit 115 USD, got %s %s", debit.GetCurrency(), debit.GetAmount())
}
@@ -71,7 +71,7 @@ func TestComputeAggregatesRecipientPaysFee(t *testing.T) {
},
}
debit, settlement := computeAggregates(pay, settle, fee, nil, fxQuote, sharedv1.SettlementMode_SETTLEMENT_FIX_SOURCE)
debit, settlement := computeAggregates(pay, settle, fee, nil, fxQuote, paymentv1.SettlementMode_SETTLEMENT_FIX_SOURCE)
if debit.GetCurrency() != "USDT" || debit.GetAmount() != "100" {
t.Fatalf("expected debit 100 USDT, got %s %s", debit.GetCurrency(), debit.GetAmount())
}

View File

@@ -14,6 +14,7 @@ import (
"github.com/tech/sendico/pkg/model/account_role"
paymenttypes "github.com/tech/sendico/pkg/payments/types"
moneyv1 "github.com/tech/sendico/pkg/proto/common/money/v1"
paymentv1 "github.com/tech/sendico/pkg/proto/common/payment/v1"
connectorv1 "github.com/tech/sendico/pkg/proto/connector/v1"
ledgerv1 "github.com/tech/sendico/pkg/proto/ledger/v1"
orchestratorv1 "github.com/tech/sendico/pkg/proto/payments/orchestration/v1"
@@ -60,7 +61,7 @@ func TestNewPayment(t *testing.T) {
intent := &sharedv1.PaymentIntent{
Ref: "ref-1",
Amount: &moneyv1.Money{Currency: "USD", Amount: "10"},
SettlementMode: sharedv1.SettlementMode_SETTLEMENT_FIX_RECEIVED,
SettlementMode: paymentv1.SettlementMode_SETTLEMENT_FIX_RECEIVED,
SettlementCurrency: "USD",
}
quote := &sharedv1.PaymentQuote{QuoteRef: "q1"}

View File

@@ -11,6 +11,7 @@ import (
accountingv1 "github.com/tech/sendico/pkg/proto/common/accounting/v1"
fxv1 "github.com/tech/sendico/pkg/proto/common/fx/v1"
moneyv1 "github.com/tech/sendico/pkg/proto/common/money/v1"
paymentv1 "github.com/tech/sendico/pkg/proto/common/payment/v1"
chainv1 "github.com/tech/sendico/pkg/proto/gateway/chain/v1"
oraclev1 "github.com/tech/sendico/pkg/proto/oracle/v1"
sharedv1 "github.com/tech/sendico/pkg/proto/payments/shared/v1"
@@ -293,25 +294,25 @@ func modelKindFromProto(kind sharedv1.PaymentKind) model.PaymentKind {
}
}
func settlementModeFromProto(mode sharedv1.SettlementMode) model.SettlementMode {
func settlementModeFromProto(mode paymentv1.SettlementMode) model.SettlementMode {
switch mode {
case sharedv1.SettlementMode_SETTLEMENT_FIX_SOURCE:
case paymentv1.SettlementMode_SETTLEMENT_FIX_SOURCE:
return model.SettlementModeFixSource
case sharedv1.SettlementMode_SETTLEMENT_FIX_RECEIVED:
case paymentv1.SettlementMode_SETTLEMENT_FIX_RECEIVED:
return model.SettlementModeFixReceived
default:
return model.SettlementModeUnspecified
}
}
func settlementModeToProto(mode model.SettlementMode) sharedv1.SettlementMode {
func settlementModeToProto(mode model.SettlementMode) paymentv1.SettlementMode {
switch mode {
case model.SettlementModeFixSource:
return sharedv1.SettlementMode_SETTLEMENT_FIX_SOURCE
return paymentv1.SettlementMode_SETTLEMENT_FIX_SOURCE
case model.SettlementModeFixReceived:
return sharedv1.SettlementMode_SETTLEMENT_FIX_RECEIVED
return paymentv1.SettlementMode_SETTLEMENT_FIX_RECEIVED
default:
return sharedv1.SettlementMode_SETTLEMENT_UNSPECIFIED
return paymentv1.SettlementMode_SETTLEMENT_UNSPECIFIED
}
}

View File

@@ -8,7 +8,6 @@ import (
oracleclient "github.com/tech/sendico/fx/oracle/client"
chainv1 "github.com/tech/sendico/pkg/proto/gateway/chain/v1"
oraclev1 "github.com/tech/sendico/pkg/proto/oracle/v1"
sharedv1 "github.com/tech/sendico/pkg/proto/payments/shared/v1"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/timestamppb"
@@ -16,6 +15,7 @@ import (
accountingv1 "github.com/tech/sendico/pkg/proto/common/accounting/v1"
fxv1 "github.com/tech/sendico/pkg/proto/common/fx/v1"
moneyv1 "github.com/tech/sendico/pkg/proto/common/money/v1"
paymentv1 "github.com/tech/sendico/pkg/proto/common/payment/v1"
)
type moneyGetter interface {
@@ -174,7 +174,7 @@ func resolveTradeAmounts(intentAmount *moneyv1.Money, fxQuote *oraclev1.Quote, s
}
}
func computeAggregates(pay, settlement, fee *moneyv1.Money, network *chainv1.EstimateTransferFeeResponse, fxQuote *oraclev1.Quote, mode sharedv1.SettlementMode) (*moneyv1.Money, *moneyv1.Money) {
func computeAggregates(pay, settlement, fee *moneyv1.Money, network *chainv1.EstimateTransferFeeResponse, fxQuote *oraclev1.Quote, mode paymentv1.SettlementMode) (*moneyv1.Money, *moneyv1.Money) {
if pay == nil {
return nil, nil
}
@@ -216,7 +216,7 @@ func computeAggregates(pay, settlement, fee *moneyv1.Money, network *chainv1.Est
}
switch mode {
case sharedv1.SettlementMode_SETTLEMENT_FIX_RECEIVED:
case paymentv1.SettlementMode_SETTLEMENT_FIX_RECEIVED:
// Sender pays the fee: keep settlement fixed, increase debit.
applyChargeToDebit(fee)
default:
@@ -226,7 +226,7 @@ func computeAggregates(pay, settlement, fee *moneyv1.Money, network *chainv1.Est
if network != nil && network.GetNetworkFee() != nil {
switch mode {
case sharedv1.SettlementMode_SETTLEMENT_FIX_RECEIVED:
case paymentv1.SettlementMode_SETTLEMENT_FIX_RECEIVED:
applyChargeToDebit(network.GetNetworkFee())
default:
applyChargeToSettlement(network.GetNetworkFee())