@@ -584,48 +584,57 @@ def WriteLedger(self,**kwargs):
584
584
IsLog = kwargs .get ('Log' )
585
585
LedgerDirectory = kwargs .get ('LedgerDirectory' )
586
586
587
- if 'ID' in Order :
588
- Order .pop ('Identity' ,None )
589
- id = Order ['ID' ]
590
- if Response != None :
591
- Response .pop ('Identity' ,None )
592
- if 'orderCreateTransaction' in Response :
593
- id = Response ['orderCreateTransaction' ]['id' ]
594
- elif 'longOrderCreateTransaction' in Response :
595
- id = Response ['longOrderCreateTransaction' ]['id' ]
596
- elif 'shortOrderCreateTransaction' in Response :
597
- id = Response ['shortOrderCreateTransaction' ]['id' ]
598
-
599
- detail = self .GetOrderDetails (OrderID = id )
600
-
601
- ledger = {}
602
- ledger ['DateTime' ]= (datetime .now ().strftime ('%Y-%m-%d %H:%M:%S.%f' ))
603
- ledger ['ID' ]= id
604
- ledger ['Order' ]= Order
605
- if Response != None :
606
- ledger ['Response' ]= Response
607
- ledger ['Detail' ]= detail
608
-
609
- # We need the embedded order reference if comming from OliverTwist
610
- if 'Order' in Order :
611
- subOrder = json .loads (Order ['Order' ])
612
- else :
613
- subOrder = Order
614
- if subOrder ['Exchange' ]!= None and subOrder ['Account' ]!= None and subOrder ['Asset' ]!= None :
615
- fname = subOrder ['Exchange' ]+ '.' + subOrder ['Account' ]+ '.' + subOrder ['Asset' ]
616
- fname = fname .replace ('/' ,'' ).replace ('-' ,'' ).replace (':' ,'' ).replace (' ' ,'' )
617
- lname = LedgerDirectory + '/' + fname + '.ledger'
618
-
619
- # Strip Identity
620
- ledger .pop ('Identity' ,None )
621
-
622
- ledgerLock = JRRsupport .Locker (lname )
623
- ledgerLock .Lock ()
624
- JRRsupport .AppendFile (lname ,json .dumps (ledger )+ '\n ' )
625
- ledgerLock .Unlock ()
626
-
627
- if type (IsLog )== bool and IsLog == True :
628
- self .Log .Write (f"Ledgered: { subOrder ['Exchange' ]} :{ id } " ,stdOut = False )
587
+ if type (Order ) is str :
588
+ Order = json .loads (Order )
589
+ if type (Response ) is str :
590
+ Response = json .loads (Response )
591
+
592
+ try :
593
+ if 'ID' in Order :
594
+ Order .pop ('Identity' ,None )
595
+ id = Order ['ID' ]
596
+ if Response != None :
597
+ Response .pop ('Identity' ,None )
598
+ if 'orderCreateTransaction' in Response :
599
+ id = Response ['orderCreateTransaction' ]['id' ]
600
+ elif 'longOrderCreateTransaction' in Response :
601
+ id = Response ['longOrderCreateTransaction' ]['id' ]
602
+ elif 'shortOrderCreateTransaction' in Response :
603
+ id = Response ['shortOrderCreateTransaction' ]['id' ]
604
+
605
+ detail = self .GetOrderDetails (OrderID = id )
606
+
607
+ ledger = {}
608
+ ledger ['DateTime' ]= (datetime .now ().strftime ('%Y-%m-%d %H:%M:%S.%f' ))
609
+ ledger ['ID' ]= id
610
+ ledger ['Order' ]= Order
611
+ if Response != None :
612
+ ledger ['Response' ]= Response
613
+ ledger ['Detail' ]= detail
614
+
615
+ # We need the embedded order reference if comming from OliverTwist
616
+ if 'Order' in Order :
617
+ subOrder = json .loads (Order ['Order' ])
618
+ else :
619
+ subOrder = Order
620
+ if subOrder ['Exchange' ]!= None and subOrder ['Account' ]!= None and subOrder ['Asset' ]!= None :
621
+ fname = subOrder ['Exchange' ]+ '.' + subOrder ['Account' ]+ '.' + subOrder ['Asset' ]
622
+ fname = fname .replace ('/' ,'' ).replace ('-' ,'' ).replace (':' ,'' ).replace (' ' ,'' )
623
+ lname = LedgerDirectory + '/' + fname + '.ledger'
624
+
625
+ # Strip Identity
626
+ if 'Identity' in ledger :
627
+ ledger .pop ('Identity' ,None )
628
+
629
+ ledgerLock = JRRsupport .Locker (lname )
630
+ ledgerLock .Lock ()
631
+ JRRsupport .AppendFile (lname ,json .dumps (ledger )+ '\n ' )
632
+ ledgerLock .Unlock ()
633
+
634
+ if type (IsLog )== bool and IsLog == True :
635
+ self .Log .Write (f"Ledgered: { subOrder ['Exchange' ]} :{ id } " ,stdOut = False )
636
+ except Exception as err :
637
+ self .Log .Write (f"WriteLedger Code Error - { sys .exc_info ()[- 1 ].tb_lineno } /{ str (err )} " ,stdOut = False )
629
638
630
639
# Read ledger entry and locate by ID
631
640
0 commit comments