mirror of
https://github.com/aljazceru/lnd-manageJ.git
synced 2026-01-21 23:14:27 +01:00
add incoming-fee-rate and outgoing-fee-rate endpoints
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
package de.cotto.lndmanagej.controller;
|
||||
|
||||
import de.cotto.lndmanagej.model.ChannelId;
|
||||
import org.springframework.core.convert.converter.Converter;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
@Component
|
||||
public class ChannelIdConverter implements Converter<String, ChannelId> {
|
||||
public ChannelIdConverter() {
|
||||
// default constructor
|
||||
}
|
||||
|
||||
@Override
|
||||
public ChannelId convert(@Nonnull String source) {
|
||||
try {
|
||||
long shortChannelId = Long.parseLong(source);
|
||||
return ChannelId.fromShortChannelId(shortChannelId);
|
||||
} catch (NumberFormatException numberFormatException) {
|
||||
return ChannelId.fromCompactForm(source);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,7 @@ import de.cotto.lndmanagej.model.ChannelId;
|
||||
import de.cotto.lndmanagej.model.LocalChannel;
|
||||
import de.cotto.lndmanagej.model.Pubkey;
|
||||
import de.cotto.lndmanagej.service.ChannelService;
|
||||
import de.cotto.lndmanagej.service.FeeService;
|
||||
import de.cotto.lndmanagej.service.NodeService;
|
||||
import de.cotto.lndmanagej.service.OwnNodeService;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
@@ -21,11 +22,18 @@ public class LegacyController {
|
||||
private final NodeService nodeService;
|
||||
private final ChannelService channelService;
|
||||
private final OwnNodeService ownNodeService;
|
||||
private final FeeService feeService;
|
||||
|
||||
public LegacyController(NodeService nodeService, ChannelService channelService, OwnNodeService ownNodeService) {
|
||||
public LegacyController(
|
||||
NodeService nodeService,
|
||||
ChannelService channelService,
|
||||
OwnNodeService ownNodeService,
|
||||
FeeService feeService
|
||||
) {
|
||||
this.nodeService = nodeService;
|
||||
this.channelService = channelService;
|
||||
this.ownNodeService = ownNodeService;
|
||||
this.feeService = feeService;
|
||||
}
|
||||
|
||||
@GetMapping("/node/{pubkey}/alias")
|
||||
@@ -56,4 +64,14 @@ public class LegacyController {
|
||||
public boolean syncedToChain() {
|
||||
return ownNodeService.isSyncedToChain();
|
||||
}
|
||||
|
||||
@GetMapping("/channel/{channelId}/incoming-fee-rate")
|
||||
public long getIncomingFeeRate(@PathVariable ChannelId channelId) {
|
||||
return feeService.getIncomingFeeRate(channelId);
|
||||
}
|
||||
|
||||
@GetMapping("/channel/{channelId}/outgoing-fee-rate")
|
||||
public long getOutgoingFeeRate(@PathVariable ChannelId channelId) {
|
||||
return feeService.getOutgoingFeeRate(channelId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package de.cotto.lndmanagej.service;
|
||||
|
||||
import de.cotto.lndmanagej.grpc.GrpcFees;
|
||||
import de.cotto.lndmanagej.model.ChannelId;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class FeeService {
|
||||
private final GrpcFees grpcFees;
|
||||
|
||||
public FeeService(GrpcFees grpcFees) {
|
||||
this.grpcFees = grpcFees;
|
||||
}
|
||||
|
||||
public long getIncomingFeeRate(ChannelId channelId) {
|
||||
return grpcFees.getIncomingFeeRate(channelId).orElseThrow(IllegalStateException::new);
|
||||
}
|
||||
|
||||
public long getOutgoingFeeRate(ChannelId channelId) {
|
||||
return grpcFees.getOutgoingFeeRate(channelId).orElseThrow(IllegalStateException::new);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user