fillFeeBP in SwapOrderStatus

This commit is contained in:
7400
2024-01-30 18:56:23 -08:00
parent 878679c9d5
commit bfcd87e9b0

View File

@@ -75,6 +75,7 @@ SwapOrder
@dataclass @dataclass
class SwapStatus: class SwapStatus:
# this is an elaborated version of the on-chain status # this is an elaborated version of the on-chain status
fillFeeBP: int
state: SwapOrderState state: SwapOrderState
start: int start: int
ocoGroup: Optional[int] ocoGroup: Optional[int]
@@ -96,37 +97,40 @@ class SwapOrderStatus(SwapStatus):
@staticmethod @staticmethod
def load(obj): def load(obj):
order = SwapOrder.load(obj[0]) order = SwapOrder.load(obj[0])
state = SwapOrderState(obj[1]) fillFeeBP = int(obj[1])
start = obj[2] state = SwapOrderState(obj[2])
ocoGroup = None if obj[3] == NO_OCO else obj[3] start = obj[3]
filledIn = int(obj[4]) ocoGroup = None if obj[4] == NO_OCO else obj[4]
filledOut = int(obj[5]) filledIn = int(obj[5])
trancheFilledIn = [int(f) for f in obj[6]] filledOut = int(obj[6])
trancheFilledOut = [int(f) for f in obj[7]] trancheFilledIn = [int(f) for f in obj[7]]
return SwapOrderStatus(order, state, start, ocoGroup, filledIn, filledOut, trancheFilledIn, trancheFilledOut) trancheFilledOut = [int(f) for f in obj[8]]
return SwapOrderStatus(order, fillFeeBP, state, start, ocoGroup, filledIn, filledOut, trancheFilledIn, trancheFilledOut)
@staticmethod @staticmethod
def load_from_chain(obj): def load_from_chain(obj):
# 0 SwapOrder order; # 0 SwapOrder order;
# 1 bool canceled; # 1 int fillFeeBP
# 2 uint32 start; # 2 bool canceled;
# 3 uint64 ocoGroup; # 3 uint32 start;
# 4 uint256 filled; // total # 4 uint64 ocoGroup;
# 5 uint256[] trancheFilled; // sum(trancheFilled) == filled # 5 uint256 filled; // total
# 6 uint256[] trancheFilled; // sum(trancheFilled) == filled
order = SwapOrder.load(obj[0]) order = SwapOrder.load(obj[0])
state = SwapOrderState.Canceled if obj[1] else SwapOrderState.Open fillFeeBP = obj[1]
start = obj[2] state = SwapOrderState.Canceled if obj[2] else SwapOrderState.Open
ocoGroup = None if obj[3] == NO_OCO else obj[3] start = obj[3]
ocoGroup = None if obj[4] == NO_OCO else obj[4]
# we ignore any fill values from the on-chain struct, because we will subsequently detect the DexorderSwapFilled events and add them in # we ignore any fill values from the on-chain struct, because we will subsequently detect the DexorderSwapFilled events and add them in
filledIn = 0 filledIn = 0
filledOut = 0 filledOut = 0
trancheFilledIn = [0 for _ in range(len(obj[5]))] trancheFilledIn = [0 for _ in range(len(obj[6]))]
trancheFilledOut = [0 for _ in range(len(obj[5]))] trancheFilledOut = [0 for _ in range(len(obj[6]))]
return SwapOrderStatus(order, state, start, ocoGroup, filledIn, filledOut, trancheFilledIn, trancheFilledOut) return SwapOrderStatus(order, fillFeeBP, state, start, ocoGroup, filledIn, filledOut, trancheFilledIn, trancheFilledOut)
def dump(self): def dump(self):
return (self.order.dump(), self.state.value, self.start, self.ocoGroup, return (self.order.dump(), self.fillFeeBP, self.state.value, self.start, self.ocoGroup,
str(self.filledIn), str(self.filledOut), str(self.filledIn), str(self.filledOut),
[str(f) for f in self.trancheFilledIn], [str(f) for f in self.trancheFilledOut]) [str(f) for f in self.trancheFilledIn], [str(f) for f in self.trancheFilledOut])