Fixed bug in Serum lot size conversions.

This commit is contained in:
Geoff Taylor 2021-08-26 18:23:09 +01:00
parent e670611722
commit ad86430638
2 changed files with 8 additions and 4 deletions

View File

@ -16,6 +16,7 @@
import itertools
import typing
from decimal import Decimal
from pyserum.market import Market as PySerumMarket
from pyserum.market.orderbook import OrderBook as PySerumOrderBook
from solana.publickey import PublicKey
@ -37,8 +38,9 @@ class SerumMarket(Market):
def __init__(self, serum_program_address: PublicKey, address: PublicKey, base: Token, quote: Token, underlying_serum_market: PySerumMarket):
super().__init__(serum_program_address, address, InventorySource.SPL_TOKENS, base, quote, RaisingLotSizeConverter())
self.underlying_serum_market: PySerumMarket = underlying_serum_market
self.lot_size_converter: LotSizeConverter = LotSizeConverter(
base, underlying_serum_market.state.base_lot_size, quote, underlying_serum_market.state.quote_lot_size)
base_lot_size: Decimal = Decimal(underlying_serum_market.state.base_lot_size())
quote_lot_size: Decimal = Decimal(underlying_serum_market.state.quote_lot_size())
self.lot_size_converter: LotSizeConverter = LotSizeConverter(base, base_lot_size, quote, quote_lot_size)
def unprocessed_events(self, context: Context) -> typing.Sequence[SerumEvent]:
event_queue: SerumEventQueue = SerumEventQueue.load(context, self.underlying_serum_market.state.event_queue())

View File

@ -16,6 +16,7 @@
import itertools
import typing
from decimal import Decimal
from pyserum.market import Market as PySerumMarket
from pyserum.market.orderbook import OrderBook as PySerumOrderBook
from solana.publickey import PublicKey
@ -39,8 +40,9 @@ class SpotMarket(Market):
super().__init__(serum_program_address, address, InventorySource.ACCOUNT, base, quote, RaisingLotSizeConverter())
self.group: Group = group
self.underlying_serum_market: PySerumMarket = underlying_serum_market
self.lot_size_converter: LotSizeConverter = LotSizeConverter(
base, underlying_serum_market.state.base_lot_size, quote, underlying_serum_market.state.quote_lot_size)
base_lot_size: Decimal = Decimal(underlying_serum_market.state.base_lot_size())
quote_lot_size: Decimal = Decimal(underlying_serum_market.state.quote_lot_size())
self.lot_size_converter: LotSizeConverter = LotSizeConverter(base, base_lot_size, quote, quote_lot_size)
def unprocessed_events(self, context: Context) -> typing.Sequence[SerumEvent]:
event_queue: SerumEventQueue = SerumEventQueue.load(context, self.underlying_serum_market.state.event_queue())