Skip to content

Commit dc43e1c

Browse files
committed
re-sign offers on edit if applicable
1 parent 93369c4 commit dc43e1c

File tree

6 files changed

+154
-134
lines changed

6 files changed

+154
-134
lines changed

core/src/main/java/haveno/core/offer/OpenOfferManager.java

Lines changed: 123 additions & 114 deletions
Large diffs are not rendered by default.

core/src/main/java/haveno/core/offer/placeoffer/PlaceOfferProtocol.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import haveno.common.taskrunner.TaskRunner;
2424
import haveno.core.locale.Res;
2525
import haveno.core.offer.messages.SignOfferResponse;
26-
import haveno.core.offer.placeoffer.tasks.AddToOfferBook;
26+
import haveno.core.offer.placeoffer.tasks.MaybeAddToOfferBook;
2727
import haveno.core.offer.placeoffer.tasks.MakerProcessSignOfferResponse;
2828
import haveno.core.offer.placeoffer.tasks.MakerReserveOfferFunds;
2929
import haveno.core.offer.placeoffer.tasks.MakerSendSignOfferRequest;
@@ -135,7 +135,7 @@ public void handleSignOfferResponse(SignOfferResponse response, NodeAddress send
135135
);
136136
taskRunner.addTasks(
137137
MakerProcessSignOfferResponse.class,
138-
AddToOfferBook.class
138+
MaybeAddToOfferBook.class
139139
);
140140

141141
taskRunner.run();

core/src/main/java/haveno/core/offer/placeoffer/tasks/AddToOfferBook.java renamed to core/src/main/java/haveno/core/offer/placeoffer/tasks/MaybeAddToOfferBook.java

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,14 @@
2020
import haveno.common.taskrunner.Task;
2121
import haveno.common.taskrunner.TaskRunner;
2222
import haveno.core.offer.Offer;
23+
import haveno.core.offer.OpenOffer;
2324
import haveno.core.offer.placeoffer.PlaceOfferModel;
2425

2526
import static com.google.common.base.Preconditions.checkNotNull;
2627

27-
public class AddToOfferBook extends Task<PlaceOfferModel> {
28+
public class MaybeAddToOfferBook extends Task<PlaceOfferModel> {
2829

29-
public AddToOfferBook(TaskRunner<PlaceOfferModel> taskHandler, PlaceOfferModel model) {
30+
public MaybeAddToOfferBook(TaskRunner<PlaceOfferModel> taskHandler, PlaceOfferModel model) {
3031
super(taskHandler, model);
3132
}
3233

@@ -35,17 +36,22 @@ protected void run() {
3536
try {
3637
runInterceptHook();
3738
checkNotNull(model.getSignOfferResponse().getSignedOfferPayload().getArbitratorSignature(), "Offer's arbitrator signature is null: " + model.getOpenOffer().getOffer().getId());
38-
model.getOfferBookService().addOffer(new Offer(model.getSignOfferResponse().getSignedOfferPayload()),
39-
() -> {
40-
model.setOfferAddedToOfferBook(true);
41-
complete();
42-
},
43-
errorMessage -> {
44-
model.getOpenOffer().getOffer().setErrorMessage("Could not add offer to offerbook.\n" +
45-
"Please check your network connection and try again.");
46-
47-
failed(errorMessage);
48-
});
39+
if (model.getOpenOffer().isPending() || model.getOpenOffer().isAvailable()) {
40+
model.getOfferBookService().addOffer(new Offer(model.getSignOfferResponse().getSignedOfferPayload()),
41+
() -> {
42+
model.getOpenOffer().setState(OpenOffer.State.AVAILABLE);
43+
model.setOfferAddedToOfferBook(true);
44+
complete();
45+
},
46+
errorMessage -> {
47+
model.getOpenOffer().getOffer().setErrorMessage("Could not add offer to offerbook.\n" +
48+
"Please check your network connection and try again.");
49+
failed(errorMessage);
50+
});
51+
} else {
52+
complete();
53+
return;
54+
}
4955
} catch (Throwable t) {
5056
model.getOpenOffer().getOffer().setErrorMessage("An error occurred.\n" +
5157
"Error message:\n"

desktop/src/main/java/haveno/desktop/main/debug/DebugView.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import haveno.common.util.Tuple2;
2323
import haveno.core.offer.availability.tasks.ProcessOfferAvailabilityResponse;
2424
import haveno.core.offer.availability.tasks.SendOfferAvailabilityRequest;
25-
import haveno.core.offer.placeoffer.tasks.AddToOfferBook;
25+
import haveno.core.offer.placeoffer.tasks.MaybeAddToOfferBook;
2626
import haveno.core.offer.placeoffer.tasks.MakerReserveOfferFunds;
2727
import haveno.core.offer.placeoffer.tasks.ValidateOffer;
2828
import haveno.core.trade.protocol.tasks.ApplyFilter;
@@ -72,7 +72,7 @@ public void initialize() {
7272
FXCollections.observableArrayList(Arrays.asList(
7373
ValidateOffer.class,
7474
MakerReserveOfferFunds.class,
75-
AddToOfferBook.class)
75+
MaybeAddToOfferBook.class)
7676
));
7777

7878

desktop/src/main/java/haveno/desktop/main/portfolio/editoffer/EditOfferDataModel.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020

2121
import com.google.inject.Inject;
2222
import com.google.inject.name.Named;
23+
24+
import haveno.common.UserThread;
2325
import haveno.common.handlers.ErrorMessageHandler;
2426
import haveno.common.handlers.ResultHandler;
2527
import haveno.core.account.witness.AccountAgeWitnessService;
@@ -226,8 +228,10 @@ public void onPublishOffer(ResultHandler resultHandler, ErrorMessageHandler erro
226228

227229
openOfferManager.editOpenOfferPublish(editedOffer, triggerPrice, initialState, () -> {
228230
openOffer = null;
229-
resultHandler.handleResult();
230-
}, errorMessageHandler);
231+
UserThread.execute(() -> resultHandler.handleResult());
232+
}, (errorMsg) -> {
233+
UserThread.execute(() -> errorMessageHandler.handleErrorMessage(errorMsg));
234+
});
231235
}
232236

233237
public void onCancelEditOffer(ErrorMessageHandler errorMessageHandler) {

desktop/src/main/java/haveno/desktop/main/portfolio/editoffer/EditOfferView.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,8 @@ private void addConfirmEditGroup() {
205205
cancelButton.setDisable(true);
206206
busyAnimation.play();
207207
spinnerInfoLabel.setText(Res.get("editOffer.publishOffer"));
208-
//edit offer
208+
209+
// edit offer
209210
model.onPublishOffer(() -> {
210211
String key = "editOfferSuccess";
211212
if (DontShowAgainLookup.showAgain(key)) {

0 commit comments

Comments
 (0)