Skip to content

Commit 63bbd48

Browse files
fix: changes made for listenForWallet method to prevent NullPointerException
1 parent 4c54f50 commit 63bbd48

1 file changed

Lines changed: 29 additions & 25 deletions

File tree

  • bitmex-adapter/src/com/bookmap/plugins/layer0/bitmex

bitmex-adapter/src/com/bookmap/plugins/layer0/bitmex/Provider.java

Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -892,27 +892,31 @@ public void listenForPosition(UnitPosition pos) {
892892

893893
public void listenForWallet(UnitWallet wallet) {
894894
BalanceInfo.BalanceInCurrency currentBic = balanceMap.get(wallet.getCurrency());
895-
BalanceInfo.BalanceInCurrency newBic;
895+
String currency = wallet.getCurrency();
896896
if (currentBic == null) {// no current balance balance
897-
newBic = new BalanceInfo.BalanceInCurrency(0.0, 0.0, 0.0, 0.0, 0.0,
898-
null, null);
897+
currentBic = new BalanceInfo.BalanceInCurrency(0.0, 0.0, 0.0, 0.0, 0.0,
898+
currency, null);
899899
}
900900

901901
long tempMultiplier = 100000000;// temp
902902
// PNLs and NetLiquidityValue are taken from UnitMargin topic
903-
Double netLiquidityValue = 0.0;// to be calculated
904-
String currency = wallet.getCurrency();
903+
// Double netLiquidityValue = 0.0;// to be calculated
904+
905905
Double rateToBase = null;
906906

907-
newBic = new BalanceInfo.BalanceInCurrency(
907+
currentBic = new BalanceInfo.BalanceInCurrency(
908908
wallet.getAmount() == null ? currentBic.balance : (double) wallet.getAmount() / tempMultiplier,
909-
currentBic.realizedPnl, currentBic.unrealizedPnl,
910-
wallet.getPrevAmount() == null ? currentBic.previousDayBalance : (double) wallet.getPrevAmount() / tempMultiplier,
911-
netLiquidityValue == null ? currentBic.netLiquidityValue : netLiquidityValue, currentBic.currency,
909+
currentBic.realizedPnl,
910+
currentBic.unrealizedPnl,
911+
wallet.getPrevAmount() == null ? currentBic.previousDayBalance
912+
: (double) wallet.getPrevAmount() / tempMultiplier,
913+
// netLiquidityValue == null ? currentBic.netLiquidityValue :
914+
// netLiquidityValue,
915+
currentBic.netLiquidityValue,
916+
currency,
912917
rateToBase == null ? currentBic.rateToBase : rateToBase);
913918

914-
balanceMap.remove(currency);
915-
balanceMap.put(currency, newBic);
919+
balanceMap.put(currency, currentBic);
916920
BalanceInfo info = new BalanceInfo(new ArrayList<BalanceInfo.BalanceInCurrency>(balanceMap.values()));
917921
tradingListeners.forEach(l -> l.onBalance(info));
918922
}
@@ -921,22 +925,22 @@ public void listenForMargin(UnitMargin margin) {
921925
long tempMultiplier = 100000000;// temp
922926
String currency = margin.getCurrency();
923927
BalanceInfo.BalanceInCurrency currentBic = balanceMap.get(margin.getCurrency());
924-
BalanceInfo.BalanceInCurrency newBic;
925928
if (currentBic == null) {// no current balance balance
926-
newBic = new BalanceInfo.BalanceInCurrency(0.0, 0.0, 0.0, 0.0, 0.0, margin.getCurrency(), null);
927-
} else {
928-
newBic = new BalanceInfo.BalanceInCurrency(currentBic.balance,
929-
margin.getRealisedPnl() == null ? currentBic.realizedPnl
930-
: (double) margin.getRealisedPnl() / tempMultiplier,
931-
margin.getUnrealisedPnl() == null ? currentBic.unrealizedPnl
932-
: (double) margin.getUnrealisedPnl() / tempMultiplier,
933-
currentBic.previousDayBalance, margin.getAvailableMargin() == null ? currentBic.netLiquidityValue
934-
: (double) margin.getAvailableMargin() / tempMultiplier,
935-
currency, currentBic.rateToBase);
929+
currentBic = new BalanceInfo.BalanceInCurrency(0.0, 0.0, 0.0, 0.0, 0.0, currency, null);
936930
}
937-
938-
balanceMap.remove(currency);
939-
balanceMap.put(currency, newBic);
931+
currentBic = new BalanceInfo.BalanceInCurrency(
932+
currentBic.balance,
933+
margin.getRealisedPnl() == null ? currentBic.realizedPnl
934+
: (double) margin.getRealisedPnl() / tempMultiplier,
935+
margin.getUnrealisedPnl() == null ? currentBic.unrealizedPnl
936+
: (double) margin.getUnrealisedPnl() / tempMultiplier,
937+
currentBic.previousDayBalance,
938+
margin.getAvailableMargin() == null ? currentBic.netLiquidityValue
939+
: (double) margin.getAvailableMargin() / tempMultiplier,
940+
currency,
941+
currentBic.rateToBase);
942+
943+
balanceMap.put(currency, currentBic);
940944
BalanceInfo info = new BalanceInfo(new ArrayList<BalanceInfo.BalanceInCurrency>(balanceMap.values()));
941945
tradingListeners.forEach(l -> l.onBalance(info));
942946
}

0 commit comments

Comments
 (0)