mirror of
https://github.com/bisq-network/bisq.git
synced 2024-11-19 09:52:23 +01:00
Factor out repeated 'new CallRateMeteringInterceptor' calls
Move this into a static CallRateMeteringInterceptor.valueOf(Map) method.
This commit is contained in:
parent
4eed44d350
commit
c99624015b
@ -56,14 +56,13 @@ class GrpcDisputeAgentsService extends DisputeAgentsGrpc.DisputeAgentsImplBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final Optional<ServerInterceptor> rateMeteringInterceptor() {
|
final Optional<ServerInterceptor> rateMeteringInterceptor() {
|
||||||
CallRateMeteringInterceptor defaultCallRateMeteringInterceptor =
|
|
||||||
new CallRateMeteringInterceptor(new HashMap<>() {{
|
|
||||||
// You can only register mainnet dispute agents in the UI.
|
|
||||||
// Do not limit devs' ability to register test agents.
|
|
||||||
put("registerDisputeAgent", new GrpcCallRateMeter(1, SECONDS));
|
|
||||||
}});
|
|
||||||
|
|
||||||
return getCustomRateMeteringInterceptor(coreApi.getConfig().appDataDir, this.getClass())
|
return getCustomRateMeteringInterceptor(coreApi.getConfig().appDataDir, this.getClass())
|
||||||
.or(() -> Optional.of(defaultCallRateMeteringInterceptor));
|
.or(() -> Optional.of(CallRateMeteringInterceptor.valueOf(
|
||||||
|
new HashMap<>() {{
|
||||||
|
// You can only register mainnet dispute agents in the UI.
|
||||||
|
// Do not limit devs' ability to register test agents.
|
||||||
|
put("registerDisputeAgent", new GrpcCallRateMeter(1, SECONDS));
|
||||||
|
}}
|
||||||
|
)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -58,12 +58,11 @@ class GrpcGetTradeStatisticsService extends GetTradeStatisticsGrpc.GetTradeStati
|
|||||||
}
|
}
|
||||||
|
|
||||||
final Optional<ServerInterceptor> rateMeteringInterceptor() {
|
final Optional<ServerInterceptor> rateMeteringInterceptor() {
|
||||||
CallRateMeteringInterceptor defaultCallRateMeteringInterceptor =
|
|
||||||
new CallRateMeteringInterceptor(new HashMap<>() {{
|
|
||||||
put("getTradeStatistics", new GrpcCallRateMeter(1, SECONDS));
|
|
||||||
}});
|
|
||||||
|
|
||||||
return getCustomRateMeteringInterceptor(coreApi.getConfig().appDataDir, this.getClass())
|
return getCustomRateMeteringInterceptor(coreApi.getConfig().appDataDir, this.getClass())
|
||||||
.or(() -> Optional.of(defaultCallRateMeteringInterceptor));
|
.or(() -> Optional.of(CallRateMeteringInterceptor.valueOf(
|
||||||
|
new HashMap<>() {{
|
||||||
|
put("getTradeStatistics", new GrpcCallRateMeter(1, SECONDS));
|
||||||
|
}}
|
||||||
|
)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -73,12 +73,11 @@ class GrpcHelpService extends HelpGrpc.HelpImplBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final Optional<ServerInterceptor> rateMeteringInterceptor() {
|
final Optional<ServerInterceptor> rateMeteringInterceptor() {
|
||||||
CallRateMeteringInterceptor defaultCallRateMeteringInterceptor =
|
|
||||||
new CallRateMeteringInterceptor(new HashMap<>() {{
|
|
||||||
put("getMethodHelp", new GrpcCallRateMeter(1, SECONDS));
|
|
||||||
}});
|
|
||||||
|
|
||||||
return getCustomRateMeteringInterceptor(coreApi.getConfig().appDataDir, this.getClass())
|
return getCustomRateMeteringInterceptor(coreApi.getConfig().appDataDir, this.getClass())
|
||||||
.or(() -> Optional.of(defaultCallRateMeteringInterceptor));
|
.or(() -> Optional.of(CallRateMeteringInterceptor.valueOf(
|
||||||
|
new HashMap<>() {{
|
||||||
|
put("getMethodHelp", new GrpcCallRateMeter(1, SECONDS));
|
||||||
|
}}
|
||||||
|
)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -190,17 +190,16 @@ class GrpcOffersService extends OffersGrpc.OffersImplBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final Optional<ServerInterceptor> rateMeteringInterceptor() {
|
final Optional<ServerInterceptor> rateMeteringInterceptor() {
|
||||||
CallRateMeteringInterceptor defaultCallRateMeteringInterceptor =
|
|
||||||
new CallRateMeteringInterceptor(new HashMap<>() {{
|
|
||||||
put("getOffer", new GrpcCallRateMeter(1, SECONDS));
|
|
||||||
put("getMyOffer", new GrpcCallRateMeter(1, SECONDS));
|
|
||||||
put("getOffers", new GrpcCallRateMeter(1, SECONDS));
|
|
||||||
put("getMyOffers", new GrpcCallRateMeter(1, SECONDS));
|
|
||||||
put("createOffer", new GrpcCallRateMeter(1, MINUTES));
|
|
||||||
put("cancelOffer", new GrpcCallRateMeter(1, MINUTES));
|
|
||||||
}});
|
|
||||||
|
|
||||||
return getCustomRateMeteringInterceptor(coreApi.getConfig().appDataDir, this.getClass())
|
return getCustomRateMeteringInterceptor(coreApi.getConfig().appDataDir, this.getClass())
|
||||||
.or(() -> Optional.of(defaultCallRateMeteringInterceptor));
|
.or(() -> Optional.of(CallRateMeteringInterceptor.valueOf(
|
||||||
|
new HashMap<>() {{
|
||||||
|
put("getOffer", new GrpcCallRateMeter(1, SECONDS));
|
||||||
|
put("getMyOffer", new GrpcCallRateMeter(1, SECONDS));
|
||||||
|
put("getOffers", new GrpcCallRateMeter(1, SECONDS));
|
||||||
|
put("getMyOffers", new GrpcCallRateMeter(1, SECONDS));
|
||||||
|
put("createOffer", new GrpcCallRateMeter(1, MINUTES));
|
||||||
|
put("cancelOffer", new GrpcCallRateMeter(1, MINUTES));
|
||||||
|
}}
|
||||||
|
)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -130,15 +130,14 @@ class GrpcPaymentAccountsService extends PaymentAccountsGrpc.PaymentAccountsImpl
|
|||||||
}
|
}
|
||||||
|
|
||||||
final Optional<ServerInterceptor> rateMeteringInterceptor() {
|
final Optional<ServerInterceptor> rateMeteringInterceptor() {
|
||||||
CallRateMeteringInterceptor defaultCallRateMeteringInterceptor =
|
|
||||||
new CallRateMeteringInterceptor(new HashMap<>() {{
|
|
||||||
put("createPaymentAccount", new GrpcCallRateMeter(1, MINUTES));
|
|
||||||
put("getPaymentAccounts", new GrpcCallRateMeter(1, SECONDS));
|
|
||||||
put("getPaymentMethods", new GrpcCallRateMeter(1, SECONDS));
|
|
||||||
put("getPaymentAccountForm", new GrpcCallRateMeter(1, SECONDS));
|
|
||||||
}});
|
|
||||||
|
|
||||||
return getCustomRateMeteringInterceptor(coreApi.getConfig().appDataDir, this.getClass())
|
return getCustomRateMeteringInterceptor(coreApi.getConfig().appDataDir, this.getClass())
|
||||||
.or(() -> Optional.of(defaultCallRateMeteringInterceptor));
|
.or(() -> Optional.of(CallRateMeteringInterceptor.valueOf(
|
||||||
|
new HashMap<>() {{
|
||||||
|
put("createPaymentAccount", new GrpcCallRateMeter(1, MINUTES));
|
||||||
|
put("getPaymentAccounts", new GrpcCallRateMeter(1, SECONDS));
|
||||||
|
put("getPaymentMethods", new GrpcCallRateMeter(1, SECONDS));
|
||||||
|
put("getPaymentAccountForm", new GrpcCallRateMeter(1, SECONDS));
|
||||||
|
}}
|
||||||
|
)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -75,12 +75,11 @@ class GrpcPriceService extends PriceGrpc.PriceImplBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final Optional<ServerInterceptor> rateMeteringInterceptor() {
|
final Optional<ServerInterceptor> rateMeteringInterceptor() {
|
||||||
CallRateMeteringInterceptor defaultCallRateMeteringInterceptor =
|
|
||||||
new CallRateMeteringInterceptor(new HashMap<>() {{
|
|
||||||
put("getMarketPrice", new GrpcCallRateMeter(1, SECONDS));
|
|
||||||
}});
|
|
||||||
|
|
||||||
return getCustomRateMeteringInterceptor(coreApi.getConfig().appDataDir, this.getClass())
|
return getCustomRateMeteringInterceptor(coreApi.getConfig().appDataDir, this.getClass())
|
||||||
.or(() -> Optional.of(defaultCallRateMeteringInterceptor));
|
.or(() -> Optional.of(CallRateMeteringInterceptor.valueOf(
|
||||||
|
new HashMap<>() {{
|
||||||
|
put("getMarketPrice", new GrpcCallRateMeter(1, SECONDS));
|
||||||
|
}}
|
||||||
|
)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -162,17 +162,16 @@ class GrpcTradesService extends TradesGrpc.TradesImplBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final Optional<ServerInterceptor> rateMeteringInterceptor() {
|
final Optional<ServerInterceptor> rateMeteringInterceptor() {
|
||||||
CallRateMeteringInterceptor defaultCallRateMeteringInterceptor =
|
|
||||||
new CallRateMeteringInterceptor(new HashMap<>() {{
|
|
||||||
put("getTrade", new GrpcCallRateMeter(1, SECONDS));
|
|
||||||
put("takeOffer", new GrpcCallRateMeter(1, MINUTES));
|
|
||||||
put("confirmPaymentStarted", new GrpcCallRateMeter(1, MINUTES));
|
|
||||||
put("confirmPaymentReceived", new GrpcCallRateMeter(1, MINUTES));
|
|
||||||
put("keepFunds", new GrpcCallRateMeter(1, MINUTES));
|
|
||||||
put("withdrawFunds", new GrpcCallRateMeter(1, MINUTES));
|
|
||||||
}});
|
|
||||||
|
|
||||||
return getCustomRateMeteringInterceptor(coreApi.getConfig().appDataDir, this.getClass())
|
return getCustomRateMeteringInterceptor(coreApi.getConfig().appDataDir, this.getClass())
|
||||||
.or(() -> Optional.of(defaultCallRateMeteringInterceptor));
|
.or(() -> Optional.of(CallRateMeteringInterceptor.valueOf(
|
||||||
|
new HashMap<>() {{
|
||||||
|
put("getTrade", new GrpcCallRateMeter(1, SECONDS));
|
||||||
|
put("takeOffer", new GrpcCallRateMeter(1, MINUTES));
|
||||||
|
put("confirmPaymentStarted", new GrpcCallRateMeter(1, MINUTES));
|
||||||
|
put("confirmPaymentReceived", new GrpcCallRateMeter(1, MINUTES));
|
||||||
|
put("keepFunds", new GrpcCallRateMeter(1, MINUTES));
|
||||||
|
put("withdrawFunds", new GrpcCallRateMeter(1, MINUTES));
|
||||||
|
}}
|
||||||
|
)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -74,12 +74,11 @@ public class GrpcVersionService extends GetVersionGrpc.GetVersionImplBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final Optional<ServerInterceptor> rateMeteringInterceptor() {
|
final Optional<ServerInterceptor> rateMeteringInterceptor() {
|
||||||
CallRateMeteringInterceptor defaultCallRateMeteringInterceptor =
|
|
||||||
new CallRateMeteringInterceptor(new HashMap<>() {{
|
|
||||||
put("getVersion", new GrpcCallRateMeter(1, SECONDS));
|
|
||||||
}});
|
|
||||||
|
|
||||||
return getCustomRateMeteringInterceptor(coreApi.getConfig().appDataDir, this.getClass())
|
return getCustomRateMeteringInterceptor(coreApi.getConfig().appDataDir, this.getClass())
|
||||||
.or(() -> Optional.of(defaultCallRateMeteringInterceptor));
|
.or(() -> Optional.of(CallRateMeteringInterceptor.valueOf(
|
||||||
|
new HashMap<>() {{
|
||||||
|
put("getVersion", new GrpcCallRateMeter(1, SECONDS));
|
||||||
|
}}
|
||||||
|
)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -349,29 +349,28 @@ class GrpcWalletsService extends WalletsGrpc.WalletsImplBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final Optional<ServerInterceptor> rateMeteringInterceptor() {
|
final Optional<ServerInterceptor> rateMeteringInterceptor() {
|
||||||
CallRateMeteringInterceptor defaultCallRateMeteringInterceptor =
|
|
||||||
new CallRateMeteringInterceptor(new HashMap<>() {{
|
|
||||||
put("getBalances", new GrpcCallRateMeter(1, SECONDS));
|
|
||||||
put("getAddressBalance", new GrpcCallRateMeter(1, SECONDS));
|
|
||||||
put("getFundingAddresses", new GrpcCallRateMeter(1, SECONDS));
|
|
||||||
put("getUnusedBsqAddress", new GrpcCallRateMeter(1, SECONDS));
|
|
||||||
put("sendBsq", new GrpcCallRateMeter(1, MINUTES));
|
|
||||||
put("sendBtc", new GrpcCallRateMeter(1, MINUTES));
|
|
||||||
put("getTxFeeRate", new GrpcCallRateMeter(1, SECONDS));
|
|
||||||
put("setTxFeeRatePreference", new GrpcCallRateMeter(1, SECONDS));
|
|
||||||
put("unsetTxFeeRatePreference", new GrpcCallRateMeter(1, SECONDS));
|
|
||||||
put("getTransaction", new GrpcCallRateMeter(1, SECONDS));
|
|
||||||
|
|
||||||
// Trying to set or remove a wallet password several times before the 1st attempt has time to
|
|
||||||
// persist the change to disk may corrupt the wallet, so allow only 1 attempt per 5 seconds.
|
|
||||||
put("setWalletPassword", new GrpcCallRateMeter(1, SECONDS, 5));
|
|
||||||
put("removeWalletPassword", new GrpcCallRateMeter(1, SECONDS, 5));
|
|
||||||
|
|
||||||
put("lockWallet", new GrpcCallRateMeter(1, SECONDS));
|
|
||||||
put("unlockWallet", new GrpcCallRateMeter(1, SECONDS));
|
|
||||||
}});
|
|
||||||
|
|
||||||
return getCustomRateMeteringInterceptor(coreApi.getConfig().appDataDir, this.getClass())
|
return getCustomRateMeteringInterceptor(coreApi.getConfig().appDataDir, this.getClass())
|
||||||
.or(() -> Optional.of(defaultCallRateMeteringInterceptor));
|
.or(() -> Optional.of(CallRateMeteringInterceptor.valueOf(
|
||||||
|
new HashMap<>() {{
|
||||||
|
put("getBalances", new GrpcCallRateMeter(1, SECONDS));
|
||||||
|
put("getAddressBalance", new GrpcCallRateMeter(1, SECONDS));
|
||||||
|
put("getFundingAddresses", new GrpcCallRateMeter(1, SECONDS));
|
||||||
|
put("getUnusedBsqAddress", new GrpcCallRateMeter(1, SECONDS));
|
||||||
|
put("sendBsq", new GrpcCallRateMeter(1, MINUTES));
|
||||||
|
put("sendBtc", new GrpcCallRateMeter(1, MINUTES));
|
||||||
|
put("getTxFeeRate", new GrpcCallRateMeter(1, SECONDS));
|
||||||
|
put("setTxFeeRatePreference", new GrpcCallRateMeter(1, SECONDS));
|
||||||
|
put("unsetTxFeeRatePreference", new GrpcCallRateMeter(1, SECONDS));
|
||||||
|
put("getTransaction", new GrpcCallRateMeter(1, SECONDS));
|
||||||
|
|
||||||
|
// Trying to set or remove a wallet password several times before the 1st attempt has time to
|
||||||
|
// persist the change to disk may corrupt the wallet, so allow only 1 attempt per 5 seconds.
|
||||||
|
put("setWalletPassword", new GrpcCallRateMeter(1, SECONDS, 5));
|
||||||
|
put("removeWalletPassword", new GrpcCallRateMeter(1, SECONDS, 5));
|
||||||
|
|
||||||
|
put("lockWallet", new GrpcCallRateMeter(1, SECONDS));
|
||||||
|
put("unlockWallet", new GrpcCallRateMeter(1, SECONDS));
|
||||||
|
}}
|
||||||
|
)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,7 @@ import io.grpc.StatusRuntimeException;
|
|||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
@ -124,4 +125,10 @@ public final class CallRateMeteringInterceptor implements ServerInterceptor {
|
|||||||
rateMetersString + "\n\t" + "}" + "\n"
|
rateMetersString + "\n\t" + "}" + "\n"
|
||||||
+ "}";
|
+ "}";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static CallRateMeteringInterceptor valueOf(Map<String, GrpcCallRateMeter> rateMeters) {
|
||||||
|
return new CallRateMeteringInterceptor(new HashMap<>() {{
|
||||||
|
putAll(rateMeters);
|
||||||
|
}});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user