From 02ab2d8e09fbfc05361ea5e3e013dffeb17bccd8 Mon Sep 17 00:00:00 2001 From: Carsten Otto Date: Sun, 27 Mar 2022 19:14:27 +0200 Subject: [PATCH] include MPP fee rate in output --- .../controller/PickhardtPaymentsControllerIT.java | 4 ++++ .../lndmanagej/controller/dto/MultiPathPaymentDto.java | 9 ++++++++- .../controller/dto/MultiPathPaymentDtoTest.java | 1 + 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/web/src/integrationTest/java/de/cotto/lndmanagej/controller/PickhardtPaymentsControllerIT.java b/web/src/integrationTest/java/de/cotto/lndmanagej/controller/PickhardtPaymentsControllerIT.java index e24e1158..5045da24 100644 --- a/web/src/integrationTest/java/de/cotto/lndmanagej/controller/PickhardtPaymentsControllerIT.java +++ b/web/src/integrationTest/java/de/cotto/lndmanagej/controller/PickhardtPaymentsControllerIT.java @@ -49,6 +49,7 @@ class PickhardtPaymentsControllerIT { .andExpect(jsonPath("$.probability", is(expectedProbability))) .andExpect(jsonPath("$.amountSat", is(amountAsString))) .andExpect(jsonPath("$.feesMilliSat", is(feesAsString))) + .andExpect(jsonPath("$.feeRate", is(200))) .andExpect(jsonPath("$.routes", hasSize(1))) .andExpect(jsonPath("$.routes[0].amountSat", is(amountAsString))) .andExpect(jsonPath("$.routes[0].channelIds", contains(CHANNEL_ID.toString()))) @@ -59,6 +60,7 @@ class PickhardtPaymentsControllerIT { void send() throws Exception { Coins amount = MULTI_PATH_PAYMENT.amount(); String amountAsString = String.valueOf(amount.satoshis()); + String feesAsString = String.valueOf(MULTI_PATH_PAYMENT.fees().milliSatoshis()); double expectedProbability = MULTI_PATH_PAYMENT.probability(); when(multiPathPaymentSplitter.getMultiPathPaymentTo(PUBKEY, amount)) .thenReturn(MULTI_PATH_PAYMENT); @@ -67,6 +69,8 @@ class PickhardtPaymentsControllerIT { mockMvc.perform(get(PREFIX + "/from/" + PUBKEY + "/to/" + PUBKEY_2 + "/amount/" + 1_234)) .andExpect(jsonPath("$.probability", is(expectedProbability))) .andExpect(jsonPath("$.amountSat", is(amountAsString))) + .andExpect(jsonPath("$.feesMilliSat", is(feesAsString))) + .andExpect(jsonPath("$.feeRate", is(200))) .andExpect(jsonPath("$.routes", hasSize(1))) .andExpect(jsonPath("$.routes[0].amountSat", is(amountAsString))) .andExpect(jsonPath("$.routes[0].channelIds", contains(CHANNEL_ID.toString()))) diff --git a/web/src/main/java/de/cotto/lndmanagej/controller/dto/MultiPathPaymentDto.java b/web/src/main/java/de/cotto/lndmanagej/controller/dto/MultiPathPaymentDto.java index 624413c0..513546a2 100644 --- a/web/src/main/java/de/cotto/lndmanagej/controller/dto/MultiPathPaymentDto.java +++ b/web/src/main/java/de/cotto/lndmanagej/controller/dto/MultiPathPaymentDto.java @@ -7,12 +7,19 @@ import java.util.List; import java.util.Set; import java.util.stream.Collectors; -public record MultiPathPaymentDto(String amountSat, double probability, String feesMilliSat, List routes) { +public record MultiPathPaymentDto( + String amountSat, + double probability, + String feesMilliSat, + long feeRate, + List routes +) { public static MultiPathPaymentDto fromModel(MultiPathPayment multiPathPayment) { return new MultiPathPaymentDto( String.valueOf(multiPathPayment.amount().satoshis()), multiPathPayment.probability(), String.valueOf(multiPathPayment.fees().milliSatoshis()), + multiPathPayment.getFeeRate(), getRoutes(multiPathPayment.routes()) ); } diff --git a/web/src/test/java/de/cotto/lndmanagej/controller/dto/MultiPathPaymentDtoTest.java b/web/src/test/java/de/cotto/lndmanagej/controller/dto/MultiPathPaymentDtoTest.java index ed782802..574d39bc 100644 --- a/web/src/test/java/de/cotto/lndmanagej/controller/dto/MultiPathPaymentDtoTest.java +++ b/web/src/test/java/de/cotto/lndmanagej/controller/dto/MultiPathPaymentDtoTest.java @@ -18,6 +18,7 @@ class MultiPathPaymentDtoTest { amountSat, probability, String.valueOf(MULTI_PATH_PAYMENT.fees().milliSatoshis()), + MULTI_PATH_PAYMENT.getFeeRate(), List.of(new RouteDto(amountSat, List.of(CHANNEL_ID), probability, feesMilliSat))) ); }