Fixed timezone comparisons for time-in-force checks.

This commit is contained in:
Geoff Taylor 2022-02-21 21:00:08 +00:00
parent 3302f5088c
commit c3f7ad60f6
2 changed files with 6 additions and 3 deletions

View File

@ -147,7 +147,8 @@ class PerpOrderBookSide(AddressableAccount):
node = self.nodes[index]
if node.type_name == "leaf":
expiration = (
node.timestamp + timedelta(seconds=float(node.time_in_force))
node.timestamp.astimezone(timezone.utc)
+ timedelta(seconds=float(node.time_in_force))
if node.time_in_force == 0
else Order.NoExpiration
)

View File

@ -20,7 +20,7 @@ import pyserum.enums
import typing
from dataclasses import dataclass
from datetime import datetime, timedelta
from datetime import datetime, timedelta, timezone
from decimal import Decimal
from pyserum.market.types import Order as PySerumOrder
from solana.publickey import PublicKey
@ -144,7 +144,9 @@ class OrderType(enum.Enum):
@dataclass
class Order:
DefaultMatchLimit: typing.ClassVar[int] = 20
NoExpiration: typing.ClassVar[datetime] = datetime.fromtimestamp(0)
NoExpiration: typing.ClassVar[datetime] = datetime.fromtimestamp(0).astimezone(
timezone.utc
)
id: int
client_id: int
owner: PublicKey