mirror of
https://github.com/bisq-network/bisq-api-reference.git
synced 2026-03-30 03:50:19 +00:00
99 lines
3.9 KiB
Java
99 lines
3.9 KiB
Java
package bisq.rpccalls;
|
|
|
|
import bisq.proto.grpc.EditOfferRequest;
|
|
import bisq.proto.grpc.OffersGrpc;
|
|
import io.grpc.ManagedChannelBuilder;
|
|
|
|
import static bisq.proto.grpc.EditOfferRequest.EditType.*;
|
|
import static bisq.proto.grpc.EditOfferRequest.newBuilder;
|
|
import static java.lang.System.out;
|
|
|
|
public class EditOffer extends BaseJavaExample {
|
|
|
|
public static void main(String[] args) {
|
|
try {
|
|
var channel = ManagedChannelBuilder.forAddress("localhost", 9998).usePlaintext().build();
|
|
addChannelShutdownHook(channel);
|
|
var credentials = buildCallCredentials(getApiPassword());
|
|
var stub = OffersGrpc.newBlockingStub(channel).withCallCredentials(credentials);
|
|
|
|
var disableOfferRequest = createDisableOfferRequest();
|
|
stub.editOffer(disableOfferRequest);
|
|
out.println("Offer is disabled (removed from peers' offer book).");
|
|
waitForOfferToBeRepublished(2_500);
|
|
|
|
var editFixedPriceRequest = createEditFixedPriceRequest();
|
|
stub.editOffer(editFixedPriceRequest);
|
|
out.println("Offer has been re-published with new fixed-price.");
|
|
waitForOfferToBeRepublished(2_500);
|
|
|
|
var editFixedPriceAndEnableRequest = createEditFixedPriceAndEnableRequest();
|
|
stub.editOffer(editFixedPriceAndEnableRequest);
|
|
out.println("Offer has been re-published with new fixed-price, and enabled.");
|
|
waitForOfferToBeRepublished(2_500);
|
|
|
|
var editPriceMarginRequest = createEditPriceMarginRequest();
|
|
stub.editOffer(editPriceMarginRequest);
|
|
out.println("Offer has been re-published with new price margin.");
|
|
waitForOfferToBeRepublished(2_500);
|
|
|
|
var editTriggerPriceRequest = createEditTriggerPriceRequest();
|
|
stub.editOffer(editTriggerPriceRequest);
|
|
out.println("Offer has been re-published with new trigger price.");
|
|
} catch (Throwable t) {
|
|
handleError(t);
|
|
}
|
|
}
|
|
|
|
private static EditOfferRequest createDisableOfferRequest() {
|
|
return newBuilder()
|
|
.setId("83e8b2e2-51b6-4f39-a748-3ebd29c22aea")
|
|
.setEditType(ACTIVATION_STATE_ONLY)
|
|
.setEnable(0) // -1 = ignore this parameter, 0 = disable offer, 1 = enable offer
|
|
.build();
|
|
}
|
|
|
|
private static EditOfferRequest createEditFixedPriceRequest() {
|
|
return newBuilder()
|
|
.setId("83e8b2e2-51b6-4f39-a748-3ebd29c22aea")
|
|
.setEditType(FIXED_PRICE_ONLY)
|
|
.setPrice("30000.99")
|
|
.build();
|
|
}
|
|
|
|
private static EditOfferRequest createEditFixedPriceAndEnableRequest() {
|
|
return newBuilder()
|
|
.setId("83e8b2e2-51b6-4f39-a748-3ebd29c22aea")
|
|
.setEditType(FIXED_PRICE_AND_ACTIVATION_STATE)
|
|
.setPrice("30000.99")
|
|
.setEnable(1)
|
|
.build();
|
|
}
|
|
|
|
private static EditOfferRequest createEditPriceMarginRequest() {
|
|
return newBuilder()
|
|
.setId("83e8b2e2-51b6-4f39-a748-3ebd29c22aea")
|
|
.setEditType(MKT_PRICE_MARGIN_ONLY)
|
|
.setUseMarketBasedPrice(true)
|
|
.setMarketPriceMarginPct(2.00) // 2.00%
|
|
.build();
|
|
}
|
|
|
|
private static EditOfferRequest createEditTriggerPriceRequest() {
|
|
return newBuilder()
|
|
.setId("83e8b2e2-51b6-4f39-a748-3ebd29c22aea")
|
|
.setEditType(TRIGGER_PRICE_ONLY)
|
|
.setTriggerPrice("29000.00") // Trigger price is disabled when set to "0".
|
|
.build();
|
|
}
|
|
|
|
private static void waitForOfferToBeRepublished(long ms) {
|
|
try {
|
|
// Wait for edited offer to be removed from offer-book, edited, and re-published.
|
|
Thread.sleep(ms);
|
|
} catch (InterruptedException ex) {
|
|
// ignored
|
|
}
|
|
}
|
|
}
|