support activating and deactivating offers over grpc api

This commit is contained in:
woodser 2025-10-04 00:41:08 -04:00
parent 5a5e1653c0
commit 057cf8fab6
No known key found for this signature in database
GPG key ID: 55A10DD48ADEE5EF
4 changed files with 74 additions and 0 deletions

View file

@ -480,6 +480,14 @@ public class CoreApi {
extraInfo);
}
public void deactivateOffer(String offerId, ResultHandler resultHandler, ErrorMessageHandler errorMessageHandler) {
coreOffersService.deactivateOffer(offerId, resultHandler, errorMessageHandler);
}
public void activateOffer(String offerId, ResultHandler resultHandler, ErrorMessageHandler errorMessageHandler) {
coreOffersService.activateOffer(offerId, resultHandler, errorMessageHandler);
}
public void cancelOffer(String id, ResultHandler resultHandler, ErrorMessageHandler errorMessageHandler) {
coreOffersService.cancelOffer(id, resultHandler, errorMessageHandler);
}

View file

@ -313,6 +313,14 @@ public class CoreOffersService {
extraInfo);
}
void deactivateOffer(String offerId, ResultHandler resultHandler, ErrorMessageHandler errorMessageHandler) {
openOfferManager.deactivateOpenOffer(getMyOffer(offerId), false, resultHandler, errorMessageHandler);
}
void activateOffer(String offerId, ResultHandler resultHandler, ErrorMessageHandler errorMessageHandler) {
openOfferManager.activateOpenOffer(getMyOffer(offerId), resultHandler, errorMessageHandler);
}
void cancelOffer(String id, ResultHandler resultHandler, ErrorMessageHandler errorMessageHandler) {
Offer offer = getMyOffer(id).getOffer();
openOfferManager.removeOffer(offer, resultHandler, errorMessageHandler);

View file

@ -26,8 +26,12 @@ import haveno.core.offer.OpenOffer;
import haveno.daemon.grpc.interceptor.CallRateMeteringInterceptor;
import haveno.daemon.grpc.interceptor.GrpcCallRateMeter;
import static haveno.daemon.grpc.interceptor.GrpcServiceRateMeteringConfig.getCustomRateMeteringInterceptor;
import haveno.proto.grpc.ActivateOfferReply;
import haveno.proto.grpc.ActivateOfferRequest;
import haveno.proto.grpc.CancelOfferReply;
import haveno.proto.grpc.CancelOfferRequest;
import haveno.proto.grpc.DeactivateOfferReply;
import haveno.proto.grpc.DeactivateOfferRequest;
import haveno.proto.grpc.GetMyOfferReply;
import haveno.proto.grpc.GetMyOfferRequest;
import haveno.proto.grpc.GetMyOffersReply;
@ -38,6 +42,8 @@ import haveno.proto.grpc.GetOffersReply;
import haveno.proto.grpc.GetOffersRequest;
import static haveno.proto.grpc.OffersGrpc.OffersImplBase;
import static haveno.proto.grpc.OffersGrpc.getCancelOfferMethod;
import static haveno.proto.grpc.OffersGrpc.getDeactivateOfferMethod;
import static haveno.proto.grpc.OffersGrpc.getActivateOfferMethod;
import static haveno.proto.grpc.OffersGrpc.getGetMyOfferMethod;
import static haveno.proto.grpc.OffersGrpc.getGetMyOffersMethod;
import static haveno.proto.grpc.OffersGrpc.getGetOfferMethod;
@ -177,6 +183,40 @@ class GrpcOffersService extends OffersImplBase {
}
}
@Override
public void deactivateOffer(DeactivateOfferRequest req,
StreamObserver<DeactivateOfferReply> responseObserver) {
GrpcErrorMessageHandler errorMessageHandler = new GrpcErrorMessageHandler(getDeactivateOfferMethod().getFullMethodName(), responseObserver, exceptionHandler, log);
try {
coreApi.deactivateOffer(req.getOfferId(), () -> {
var reply = DeactivateOfferReply.newBuilder().build();
responseObserver.onNext(reply);
responseObserver.onCompleted();
}, errorMessage -> {
if (!errorMessageHandler.isErrorHandled()) errorMessageHandler.handleErrorMessage(errorMessage);
});
} catch (Throwable cause) {
exceptionHandler.handleException(log, cause, responseObserver);
}
}
@Override
public void activateOffer(ActivateOfferRequest req,
StreamObserver<ActivateOfferReply> responseObserver) {
GrpcErrorMessageHandler errorMessageHandler = new GrpcErrorMessageHandler(getActivateOfferMethod().getFullMethodName(), responseObserver, exceptionHandler, log);
try {
coreApi.activateOffer(req.getOfferId(), () -> {
var reply = ActivateOfferReply.newBuilder().build();
responseObserver.onNext(reply);
responseObserver.onCompleted();
}, errorMessage -> {
if (!errorMessageHandler.isErrorHandled()) errorMessageHandler.handleErrorMessage(errorMessage);
});
} catch (Throwable cause) {
exceptionHandler.handleException(log, cause, responseObserver);
}
}
@Override
public void cancelOffer(CancelOfferRequest req,
StreamObserver<CancelOfferReply> responseObserver) {

View file

@ -475,6 +475,10 @@ service Offers {
}
rpc PostOffer (PostOfferRequest) returns (PostOfferReply) {
}
rpc DeactivateOffer (DeactivateOfferRequest) returns (DeactivateOfferReply) {
}
rpc ActivateOffer (ActivateOfferRequest) returns (ActivateOfferReply) {
}
rpc CancelOffer (CancelOfferRequest) returns (CancelOfferReply) {
}
}
@ -535,6 +539,20 @@ message PostOfferReply {
OfferInfo offer = 1;
}
message DeactivateOfferRequest {
string offer_id = 1;
}
message DeactivateOfferReply {
}
message ActivateOfferRequest {
string offer_id = 1;
}
message ActivateOfferReply {
}
message CancelOfferRequest {
string id = 1;
}