aboutsummaryrefslogtreecommitdiffstats
path: root/service/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'service/src/main')
-rw-r--r--service/src/main/java/market/guess/service/catalog/infrastructure/adapter/EventDeserializer.java6
-rw-r--r--service/src/main/java/market/guess/service/catalog/infrastructure/adapter/TradingMechanismAdapter.java6
-rw-r--r--service/src/main/java/market/guess/service/catalog/infrastructure/mapper/v1/EventMapperV1.java2
-rw-r--r--service/src/main/java/market/guess/service/catalog/infrastructure/mapper/v2/EventMapperV2.java2
-rw-r--r--service/src/main/java/market/guess/service/domain/Event.java2
-rw-r--r--service/src/main/java/market/guess/service/fulfillment/LocalFulfillmentContext.java2
-rw-r--r--service/src/main/java/market/guess/service/mechanism/LmsrTradingMechanism.java2
-rw-r--r--service/src/main/java/market/guess/service/mechanism/OrderBookTradingMechanism.java2
-rw-r--r--service/src/main/java/market/guess/service/mechanism/TradingMechanism.java2
-rw-r--r--service/src/main/java/market/guess/service/settlement/LocalSettlementContext.java6
10 files changed, 17 insertions, 15 deletions
diff --git a/service/src/main/java/market/guess/service/catalog/infrastructure/adapter/EventDeserializer.java b/service/src/main/java/market/guess/service/catalog/infrastructure/adapter/EventDeserializer.java
index 69a8447..e40d633 100644
--- a/service/src/main/java/market/guess/service/catalog/infrastructure/adapter/EventDeserializer.java
+++ b/service/src/main/java/market/guess/service/catalog/infrastructure/adapter/EventDeserializer.java
@@ -7,7 +7,7 @@ import com.google.gson.JsonParseException;
7import com.google.gson.reflect.TypeToken; 7import com.google.gson.reflect.TypeToken;
8import java.lang.reflect.Type; 8import java.lang.reflect.Type;
9import java.util.List; 9import java.util.List;
10import market.guess.api.CommissionTiming; 10import market.guess.model.event.CommissionTiming;
11import market.guess.model.event.EventStatus; 11import market.guess.model.event.EventStatus;
12import market.guess.service.domain.Event; 12import market.guess.service.domain.Event;
13import market.guess.service.domain.Market; 13import market.guess.service.domain.Market;
@@ -45,7 +45,9 @@ public final class EventDeserializer implements JsonDeserializer<Event> {
45 obj.get("runningId").getAsInt(), 45 obj.get("runningId").getAsInt(),
46 trades, 46 trades,
47 context.deserialize(obj.get("state"), EventStatus.class), 47 context.deserialize(obj.get("state"), EventStatus.class),
48 winningOptionKey == null || winningOptionKey.isJsonNull() ? null : winningOptionKey.getAsString(), 48 winningOptionKey == null || winningOptionKey.isJsonNull()
49 ? null
50 : winningOptionKey.getAsString(),
49 obj.get("settlementCommission").getAsBigDecimal()); 51 obj.get("settlementCommission").getAsBigDecimal());
50 } 52 }
51} 53}
diff --git a/service/src/main/java/market/guess/service/catalog/infrastructure/adapter/TradingMechanismAdapter.java b/service/src/main/java/market/guess/service/catalog/infrastructure/adapter/TradingMechanismAdapter.java
index ac3da8b..1fa2b9a 100644
--- a/service/src/main/java/market/guess/service/catalog/infrastructure/adapter/TradingMechanismAdapter.java
+++ b/service/src/main/java/market/guess/service/catalog/infrastructure/adapter/TradingMechanismAdapter.java
@@ -7,14 +7,14 @@ import com.google.gson.JsonParseException;
7import com.google.gson.JsonSerializationContext; 7import com.google.gson.JsonSerializationContext;
8import com.google.gson.JsonSerializer; 8import com.google.gson.JsonSerializer;
9import java.lang.reflect.Type; 9import java.lang.reflect.Type;
10import market.guess.api.MechanismType; 10import market.guess.model.event.MechanismType;
11import market.guess.service.mechanism.LmsrTradingMechanism; 11import market.guess.service.mechanism.LmsrTradingMechanism;
12import market.guess.service.mechanism.OrderBookTradingMechanism; 12import market.guess.service.mechanism.OrderBookTradingMechanism;
13import market.guess.service.mechanism.TradingMechanism; 13import market.guess.service.mechanism.TradingMechanism;
14 14
15/** 15/**
16 * TradingMechanism is a sealed interface, so Gson can't tell which implementation to build from 16 * TradingMechanism is a sealed interface, so Gson can't tell which implementation to build from the
17 * the JSON alone; this tags the JSON with a type discriminator and dispatches on it. 17 * JSON alone; this tags the JSON with a type discriminator and dispatches on it.
18 */ 18 */
19public final class TradingMechanismAdapter 19public final class TradingMechanismAdapter
20 implements JsonSerializer<TradingMechanism>, JsonDeserializer<TradingMechanism> { 20 implements JsonSerializer<TradingMechanism>, JsonDeserializer<TradingMechanism> {
diff --git a/service/src/main/java/market/guess/service/catalog/infrastructure/mapper/v1/EventMapperV1.java b/service/src/main/java/market/guess/service/catalog/infrastructure/mapper/v1/EventMapperV1.java
index b9c43bb..fa1c5ab 100644
--- a/service/src/main/java/market/guess/service/catalog/infrastructure/mapper/v1/EventMapperV1.java
+++ b/service/src/main/java/market/guess/service/catalog/infrastructure/mapper/v1/EventMapperV1.java
@@ -2,7 +2,7 @@ package market.guess.service.catalog.infrastructure.mapper.v1;
2 2
3import java.util.ArrayList; 3import java.util.ArrayList;
4import java.util.List; 4import java.util.List;
5import market.guess.api.CommissionTiming; 5import market.guess.model.event.CommissionTiming;
6import market.guess.model.event.EventStatus; 6import market.guess.model.event.EventStatus;
7import market.guess.service.catalog.infrastructure.mapper.Mapper; 7import market.guess.service.catalog.infrastructure.mapper.Mapper;
8import market.guess.service.catalog.model.v1.GMEvent; 8import market.guess.service.catalog.model.v1.GMEvent;
diff --git a/service/src/main/java/market/guess/service/catalog/infrastructure/mapper/v2/EventMapperV2.java b/service/src/main/java/market/guess/service/catalog/infrastructure/mapper/v2/EventMapperV2.java
index 82455f1..bcdce94 100644
--- a/service/src/main/java/market/guess/service/catalog/infrastructure/mapper/v2/EventMapperV2.java
+++ b/service/src/main/java/market/guess/service/catalog/infrastructure/mapper/v2/EventMapperV2.java
@@ -2,7 +2,7 @@ package market.guess.service.catalog.infrastructure.mapper.v2;
2 2
3import java.util.ArrayList; 3import java.util.ArrayList;
4import java.util.List; 4import java.util.List;
5import market.guess.api.CommissionTiming; 5import market.guess.model.event.CommissionTiming;
6import market.guess.model.event.EventStatus; 6import market.guess.model.event.EventStatus;
7import market.guess.service.catalog.infrastructure.mapper.Mapper; 7import market.guess.service.catalog.infrastructure.mapper.Mapper;
8import market.guess.service.catalog.model.v2.GMEvent; 8import market.guess.service.catalog.model.v2.GMEvent;
diff --git a/service/src/main/java/market/guess/service/domain/Event.java b/service/src/main/java/market/guess/service/domain/Event.java
index e1b366e..1e17457 100644
--- a/service/src/main/java/market/guess/service/domain/Event.java
+++ b/service/src/main/java/market/guess/service/domain/Event.java
@@ -4,10 +4,10 @@ import java.math.BigDecimal;
4import java.time.Instant; 4import java.time.Instant;
5import java.util.ArrayList; 5import java.util.ArrayList;
6import java.util.List; 6import java.util.List;
7import market.guess.api.CommissionTiming;
8import market.guess.api.MarketDTO; 7import market.guess.api.MarketDTO;
9import market.guess.api.MarketStateDTO; 8import market.guess.api.MarketStateDTO;
10import market.guess.api.TradeRowDTO; 9import market.guess.api.TradeRowDTO;
10import market.guess.model.event.CommissionTiming;
11import market.guess.model.event.EventStatus; 11import market.guess.model.event.EventStatus;
12import market.guess.model.event.EventSummaryDTO; 12import market.guess.model.event.EventSummaryDTO;
13import market.guess.model.ledger.LedgerType; 13import market.guess.model.ledger.LedgerType;
diff --git a/service/src/main/java/market/guess/service/fulfillment/LocalFulfillmentContext.java b/service/src/main/java/market/guess/service/fulfillment/LocalFulfillmentContext.java
index cbbfafd..d1006bc 100644
--- a/service/src/main/java/market/guess/service/fulfillment/LocalFulfillmentContext.java
+++ b/service/src/main/java/market/guess/service/fulfillment/LocalFulfillmentContext.java
@@ -3,7 +3,7 @@ package market.guess.service.fulfillment;
3import java.math.BigDecimal; 3import java.math.BigDecimal;
4import java.util.ArrayList; 4import java.util.ArrayList;
5import java.util.List; 5import java.util.List;
6import market.guess.api.CommissionTiming; 6import market.guess.model.event.CommissionTiming;
7import market.guess.model.ledger.LedgerType; 7import market.guess.model.ledger.LedgerType;
8import market.guess.service.domain.Order; 8import market.guess.service.domain.Order;
9import market.guess.service.domain.Trade; 9import market.guess.service.domain.Trade;
diff --git a/service/src/main/java/market/guess/service/mechanism/LmsrTradingMechanism.java b/service/src/main/java/market/guess/service/mechanism/LmsrTradingMechanism.java
index 981e733..c133ac7 100644
--- a/service/src/main/java/market/guess/service/mechanism/LmsrTradingMechanism.java
+++ b/service/src/main/java/market/guess/service/mechanism/LmsrTradingMechanism.java
@@ -5,7 +5,7 @@ import java.time.Clock;
5import java.time.Instant; 5import java.time.Instant;
6import java.util.Arrays; 6import java.util.Arrays;
7import java.util.List; 7import java.util.List;
8import market.guess.api.MechanismType; 8import market.guess.model.event.MechanismType;
9import market.guess.service.domain.Event; 9import market.guess.service.domain.Event;
10import market.guess.service.domain.Market; 10import market.guess.service.domain.Market;
11import market.guess.service.domain.Trade; 11import market.guess.service.domain.Trade;
diff --git a/service/src/main/java/market/guess/service/mechanism/OrderBookTradingMechanism.java b/service/src/main/java/market/guess/service/mechanism/OrderBookTradingMechanism.java
index fd03750..ba88d06 100644
--- a/service/src/main/java/market/guess/service/mechanism/OrderBookTradingMechanism.java
+++ b/service/src/main/java/market/guess/service/mechanism/OrderBookTradingMechanism.java
@@ -5,7 +5,7 @@ import java.math.RoundingMode;
5import java.time.Instant; 5import java.time.Instant;
6import java.util.ArrayList; 6import java.util.ArrayList;
7import java.util.List; 7import java.util.List;
8import market.guess.api.MechanismType; 8import market.guess.model.event.MechanismType;
9import market.guess.service.domain.Event; 9import market.guess.service.domain.Event;
10import market.guess.service.domain.Market; 10import market.guess.service.domain.Market;
11import market.guess.service.domain.Trade; 11import market.guess.service.domain.Trade;
diff --git a/service/src/main/java/market/guess/service/mechanism/TradingMechanism.java b/service/src/main/java/market/guess/service/mechanism/TradingMechanism.java
index 30d076d..90e696d 100644
--- a/service/src/main/java/market/guess/service/mechanism/TradingMechanism.java
+++ b/service/src/main/java/market/guess/service/mechanism/TradingMechanism.java
@@ -3,7 +3,7 @@ package market.guess.service.mechanism;
3import java.math.BigDecimal; 3import java.math.BigDecimal;
4import java.time.Instant; 4import java.time.Instant;
5import java.util.List; 5import java.util.List;
6import market.guess.api.MechanismType; 6import market.guess.model.event.MechanismType;
7import market.guess.service.domain.Event; 7import market.guess.service.domain.Event;
8import market.guess.service.domain.Market; 8import market.guess.service.domain.Market;
9import market.guess.service.domain.Trade; 9import market.guess.service.domain.Trade;
diff --git a/service/src/main/java/market/guess/service/settlement/LocalSettlementContext.java b/service/src/main/java/market/guess/service/settlement/LocalSettlementContext.java
index f6e9b67..d970b03 100644
--- a/service/src/main/java/market/guess/service/settlement/LocalSettlementContext.java
+++ b/service/src/main/java/market/guess/service/settlement/LocalSettlementContext.java
@@ -2,7 +2,7 @@ package market.guess.service.settlement;
2 2
3import java.math.BigDecimal; 3import java.math.BigDecimal;
4import java.util.HashMap; 4import java.util.HashMap;
5import market.guess.api.CommissionTiming; 5import market.guess.model.event.CommissionTiming;
6import market.guess.model.event.EventStatus; 6import market.guess.model.event.EventStatus;
7import market.guess.model.ledger.LedgerType; 7import market.guess.model.ledger.LedgerType;
8import market.guess.service.domain.Event; 8import market.guess.service.domain.Event;
@@ -20,6 +20,7 @@ public final class LocalSettlementContext implements SettlementContext {
20 public BigDecimal settle(Event event, String winningOptionKey) { 20 public BigDecimal settle(Event event, String winningOptionKey) {
21 event.setWinningOptionKey(winningOptionKey); 21 event.setWinningOptionKey(winningOptionKey);
22 22
23 // TODO: abstract the commission charge away
23 var chargeCommission = event.getCommissionTiming() == CommissionTiming.ON_CLOSE; 24 var chargeCommission = event.getCommissionTiming() == CommissionTiming.ON_CLOSE;
24 var rate = BigDecimal.valueOf(event.getCommissionPercent()).divide(BigDecimal.valueOf(100)); 25 var rate = BigDecimal.valueOf(event.getCommissionPercent()).divide(BigDecimal.valueOf(100));
25 var winningOption = event.getOption(winningOptionKey); 26 var winningOption = event.getOption(winningOptionKey);
@@ -40,8 +41,7 @@ public final class LocalSettlementContext implements SettlementContext {
40 var net = gross.subtract(commission); 41 var net = gross.subtract(commission);
41 42
42 ledger.credit(entry.getKey(), LedgerType.PAYOUT, net, "Payout: " + winningOption.getName()); 43 ledger.credit(entry.getKey(), LedgerType.PAYOUT, net, "Payout: " + winningOption.getName());
43 ledger.debit( 44 ledger.debit(event.getLedger(), LedgerType.PAYOUT, net, "Payout: " + winningOption.getName());
44 event.getLedger(), LedgerType.PAYOUT, net, "Payout: " + winningOption.getName());
45 event.addSettlementCommission(commission); 45 event.addSettlementCommission(commission);
46 totalPayout = totalPayout.add(net); 46 totalPayout = totalPayout.add(net);
47 } 47 }