Added simple events and fills properties to event queues.

This commit is contained in:
Geoff Taylor 2022-03-08 09:42:21 +00:00
parent 6f7d402c12
commit a5ce59fe90
2 changed files with 33 additions and 1 deletions

View File

@ -361,6 +361,26 @@ class PerpEventQueue(AddressableAccount):
return distinct
@property
def events(self) -> typing.Sequence[PerpEvent]:
return [*self.processed_events, *self.unprocessed_events]
@property
def fills(self) -> typing.Sequence[PerpFillEvent]:
fills: typing.List[PerpFillEvent] = []
for event in self.events:
if isinstance(event, PerpFillEvent):
fills += [event]
return fills
@property
def liquidations(self) -> typing.Sequence[PerpLiquidateEvent]:
liquidations: typing.List[PerpLiquidateEvent] = []
for event in self.events:
if isinstance(event, PerpLiquidateEvent):
liquidations += [event]
return liquidations
def subscribe(
self,
context: Context,
@ -380,7 +400,7 @@ class PerpEventQueue(AddressableAccount):
self, mango_account_address: PublicKey
) -> typing.Sequence[PerpEvent]:
events: typing.List[PerpEvent] = []
for event in [*self.processed_events, *self.unprocessed_events]:
for event in self.events:
if mango_account_address in event.accounts_to_crank:
events += [event]
return events

View File

@ -234,6 +234,18 @@ class SerumEventQueue(AddressableAccount):
return distinct
@property
def events(self) -> typing.Sequence[SerumEvent]:
return [*self.processed_events, *self.unprocessed_events]
@property
def fills(self) -> typing.Sequence[SerumEvent]:
fills: typing.List[SerumEvent] = []
for event in self.events:
if event.event_flags.fill:
fills += [event]
return fills
@property
def capacity(self) -> int:
return len(self.unprocessed_events) + len(self.processed_events)