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 itertools
import typing import typing
from decimal import Decimal
from pyserum.market import Market as PySerumMarket from pyserum.market import Market as PySerumMarket
from pyserum.market.orderbook import OrderBook as PySerumOrderBook from pyserum.market.orderbook import OrderBook as PySerumOrderBook
from solana.publickey import PublicKey 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): 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()) super().__init__(serum_program_address, address, InventorySource.SPL_TOKENS, base, quote, RaisingLotSizeConverter())
self.underlying_serum_market: PySerumMarket = underlying_serum_market self.underlying_serum_market: PySerumMarket = underlying_serum_market
self.lot_size_converter: LotSizeConverter = LotSizeConverter( base_lot_size: Decimal = Decimal(underlying_serum_market.state.base_lot_size())
base, underlying_serum_market.state.base_lot_size, quote, underlying_serum_market.state.quote_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]: def unprocessed_events(self, context: Context) -> typing.Sequence[SerumEvent]:
event_queue: SerumEventQueue = SerumEventQueue.load(context, self.underlying_serum_market.state.event_queue()) event_queue: SerumEventQueue = SerumEventQueue.load(context, self.underlying_serum_market.state.event_queue())

View File

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