From 4f05b61a8ee3d156dff821d5a4a1a0f86789b008 Mon Sep 17 00:00:00 2001 From: kennycud Date: Thu, 25 Jul 2024 15:38:56 -0700 Subject: [PATCH] Support for responding to multiple crosschain sell offers. --- .../controller/tradebot/TradeStates.java | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/main/java/org/qortal/controller/tradebot/TradeStates.java diff --git a/src/main/java/org/qortal/controller/tradebot/TradeStates.java b/src/main/java/org/qortal/controller/tradebot/TradeStates.java new file mode 100644 index 00000000..a1dbb081 --- /dev/null +++ b/src/main/java/org/qortal/controller/tradebot/TradeStates.java @@ -0,0 +1,47 @@ +package org.qortal.controller.tradebot; + +import java.util.Map; + +import static java.util.Arrays.stream; +import static java.util.stream.Collectors.toMap; + +public class TradeStates { + public enum State implements TradeBot.StateNameAndValueSupplier { + BOB_WAITING_FOR_AT_CONFIRM(10, false, false), + BOB_WAITING_FOR_MESSAGE(15, true, true), + BOB_WAITING_FOR_AT_REDEEM(25, true, true), + BOB_DONE(30, false, false), + BOB_REFUNDED(35, false, false), + + ALICE_WAITING_FOR_AT_LOCK(85, true, true), + ALICE_DONE(95, false, false), + ALICE_REFUNDING_A(105, true, true), + ALICE_REFUNDED(110, false, false); + + private static final Map map = stream(State.values()).collect(toMap(state -> state.value, state -> state)); + + public final int value; + public final boolean requiresAtData; + public final boolean requiresTradeData; + + State(int value, boolean requiresAtData, boolean requiresTradeData) { + this.value = value; + this.requiresAtData = requiresAtData; + this.requiresTradeData = requiresTradeData; + } + + public static State valueOf(int value) { + return map.get(value); + } + + @Override + public String getState() { + return this.name(); + } + + @Override + public int getStateValue() { + return this.value; + } + } +}