Skip to content

Commit a28bee0

Browse files
committed
Bug fixes with MaxAssets not being honored as it should be.
You will need to update youe exchanges with ./UpdateplaceOrder. Version updated. Changes to be committed: modified: Base/CCXT-PlaceOrder.future modified: Base/CCXT-PlaceOrder.margin modified: Base/CCXT-PlaceOrder.spot modified: Base/CCXT-PlaceOrder.swap modified: Base/JackrabbitLocker modified: Base/JackrabbitOliverTwist modified: Base/JackrabbitRelay modified: Base/Library/JRRmimic.py modified: Base/Library/JRRsupport.py modified: Base/Library/JackrabbitProxy.py modified: Base/Library/JackrabbitRelay.py modified: Base/MIMIC-PlaceOrder modified: Base/OANDA-PlaceOrder modified: Base/PROXY-PlaceOrder
1 parent 4ad1cb1 commit a28bee0

14 files changed

+91
-84
lines changed

Base/CCXT-PlaceOrder.future

+1-1
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ def main():
162162
else:
163163
expire=(31*86400)
164164
results=maxAssetsList.update(relay.Order['Asset'],json.dumps(relay.Order),expire)
165-
if results['Status']=='ErrorLimit' and relay.Order['Action']=='buy':
165+
if results['Status']=='Error' and relay.Order['Action']=='buy':
166166
relay.JRLog.Error("MaxAssets","maximum limit exceeded")
167167

168168
# Check for reduce only in active config. This is a futures only setting.

Base/CCXT-PlaceOrder.margin

+1-1
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ def main():
162162
else:
163163
expire=(31*86400)
164164
results=maxAssetsList.update(relay.Order['Asset'],json.dumps(relay.Order),expire)
165-
if results['Status']=='ErrorLimit' and relay.Order['Action']=='buy':
165+
if results['Status']=='Error' and relay.Order['Action']=='buy':
166166
relay.JRLog.Error("MaxAssets","maximum limit exceeded")
167167

168168
# Check for reduce only in active config. This is a argin/futures only setting.

Base/CCXT-PlaceOrder.spot

+1-1
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ def main():
171171
else:
172172
expire=(31*86400)
173173
results=maxAssetsList.update(relay.Order['Asset'],json.dumps(relay.Order),expire)
174-
if results['Status']=='ErrorLimit' and relay.Order['Action']=='buy':
174+
if results['Status']=='Error' and relay.Order['Action']=='buy':
175175
relay.JRLog.Error("MaxAssets","maximum limit exceeded")
176176

177177
# Get Minimum allowed amount (units) and cost

Base/CCXT-PlaceOrder.swap

+1-1
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ def main():
162162
else:
163163
expire=(31*86400)
164164
results=maxAssetsList.update(relay.Order['Asset'],json.dumps(relay.Order),expire)
165-
if results['Status']=='ErrorLimit' and relay.Order['Action']=='buy':
165+
if results['Status']=='Error' and relay.Order['Action']=='buy':
166166
relay.JRLog.Error("MaxAssets","maximum limit exceeded")
167167

168168
# Check for reduce only in active config. This is a futures only setting.

Base/JackrabbitLocker

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import json
2828

2929
import JRRsupport
3030

31-
Version="0.0.0.1.1070"
31+
Version="0.0.0.1.1075"
3232
BaseDirectory='/home/JackrabbitRelay2/Base'
3333
ConfigDirectory='/home/JackrabbitRelay2/Config'
3434
LogDirectory="/home/JackrabbitRelay2/Logs"

Base/JackrabbitOliverTwist

+1-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ import subprocess
6767
import JRRsupport
6868
import JackrabbitRelay as JRR
6969

70-
Version="0.0.0.1.1070"
70+
Version="0.0.0.1.1075"
7171
BaseDirectory='/home/JackrabbitRelay2/Base'
7272
DataDirectory='/home/JackrabbitRelay2/Data'
7373
ConfigDirectory='/home/JackrabbitRelay2/Config'

Base/JackrabbitRelay

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import json
1616

1717
import JRRsupport
1818

19-
Version="0.0.0.1.1070"
19+
Version="0.0.0.1.1075"
2020
BaseDirectory='/home/JackrabbitRelay2/Base'
2121
ConfigDirectory='/home/JackrabbitRelay2/Config'
2222
LogDirectory="/home/JackrabbitRelay2/Logs"

Base/Library/JRRmimic.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class mimic:
4848
# released at exit.
4949

5050
def __init__(self,Exchange,Config,Active,DataDirectory=None):
51-
self.Version="0.0.0.1.1070"
51+
self.Version="0.0.0.1.1075"
5252

5353
self.StableCoinUSD=['USDT','USDC','BUSD','UST','DAI','FRAX','TUSD', \
5454
'USDP','LUSD','USDN','HUSD','FEI','TRIBE','RSR','OUSD','XSGD', \

Base/Library/JRRsupport.py

+78-71
Original file line numberDiff line numberDiff line change
@@ -835,15 +835,17 @@ def __init__(self,title,fname,maxsize=0,Timeout=180,Log=None):
835835
def read(self):
836836
dataDB=None
837837

838-
self.fw.Lock()
839-
try:
840-
data=ReadFile(self.fname)
841-
dataDB=json.loads(data)
842-
except:
843-
pass
844-
self.fw.Unlock()
838+
l=self.fw.Lock()
839+
if l=='locked':
840+
try:
841+
data=ReadFile(self.fname)
842+
dataDB=json.loads(data)
843+
except:
844+
pass
845+
self.fw.Unlock()
845846

846-
return dataDB
847+
return dataDB
848+
return False
847849

848850
# Return a count that does NOT include expired items
849851

@@ -861,62 +863,66 @@ def update(self,key,payload,expire):
861863
dataDB={}
862864
results={}
863865

864-
self.fw.Lock()
865-
try:
866-
data=ReadFile(self.fname)
867-
868-
if data!=None and data!='':
869-
dataDB=json.loads(data)
870-
if dataDB!=None:
871-
if key in dataDB:
872-
dataItem=json.loads(dataDB[key])
873-
if dataItem['Expire']>time.time():
874-
# Found and not expired, return result
875-
if expire==0:
876-
# Force kill item
877-
dataItem['Expire']=expire
878-
dataDB[key]=json.dumps(dataItem)
879-
results['Status']='Expired'
880-
results['Payload']=dataItem
881-
else:
882-
results['Status']='Found'
883-
results['Payload']=dataItem
884-
else: # Found and expired, replace old data with new data
866+
l=self.fw.Lock()
867+
if l=='locked':
868+
try:
869+
data=ReadFile(self.fname)
870+
871+
if data!=None and data!='':
872+
dataDB=json.loads(data)
873+
if dataDB!=None:
874+
if key in dataDB:
875+
dataItem=json.loads(dataDB[key])
876+
if dataItem['Expire']>time.time():
877+
# Found and not expired, return result
878+
if expire==0:
879+
# Force kill item
880+
dataItem['Expire']=expire
881+
dataDB[key]=json.dumps(dataItem)
882+
results['Status']='Expired'
883+
results['Payload']=dataItem
884+
else:
885+
results['Status']='Found'
886+
results['Payload']=dataItem
887+
else: # Found and expired, replace old data with new data
888+
c=self.countDB(dataDB)
889+
if (self.maxsize==0) or (self.maxsize>0 and c<self.maxsize):
890+
dataItem['Expire']=time.time()+expire
891+
dataItem['Payload']=payload
892+
dataDB[key]=json.dumps(dataItem)
893+
results['Status']='Replaced'
894+
results['Payload']=dataItem
895+
else: # Size limit hit
896+
results['Status']='Error'
897+
results['Payload']='Maximum size limit exceeded'
898+
else: # New item
899+
# Needs to deal with expired item not being counted in limits
885900
c=self.countDB(dataDB)
886901
if (self.maxsize==0) or (self.maxsize>0 and c<self.maxsize):
902+
dataItem={}
887903
dataItem['Expire']=time.time()+expire
888904
dataItem['Payload']=payload
889905
dataDB[key]=json.dumps(dataItem)
890-
results['Status']='Replaced'
906+
results['Status']='Added'
891907
results['Payload']=dataItem
892908
else: # Size limit hit
893909
results['Status']='Error'
894910
results['Payload']='Maximum size limit exceeded'
895-
else: # New item
896-
# Needs to deal with expired item not being counted in limits
897-
c=self.countDB(dataDB)
898-
if (self.maxsize==0) or (self.maxsize>0 and c<self.maxsize):
899-
dataItem={}
900-
dataItem['Expire']=time.time()+expire
901-
dataItem['Payload']=payload
902-
dataDB[key]=json.dumps(dataItem)
903-
results['Status']='Added'
904-
results['Payload']=dataItem
905-
else: # Size limit hit
906-
results['Status']='ErrorLimit'
907-
results['Payload']='Maximum size limit exceeded'
908-
else: # First Item
909-
dataItem={}
910-
dataItem['Expire']=time.time()+expire
911-
dataItem['Payload']=payload
912-
dataDB[key]=json.dumps(dataItem)
913-
results['Status']='Added'
914-
results['Payload']=dataItem
915-
916-
WriteFile(self.fname,json.dumps(dataDB))
917-
self.fw.Unlock()
918-
except:
919-
self.fw.Unlock()
911+
else: # First Item
912+
dataItem={}
913+
dataItem['Expire']=time.time()+expire
914+
dataItem['Payload']=payload
915+
dataDB[key]=json.dumps(dataItem)
916+
results['Status']='Added'
917+
results['Payload']=dataItem
918+
919+
WriteFile(self.fname,json.dumps(dataDB))
920+
self.fw.Unlock()
921+
except:
922+
self.fw.Unlock()
923+
else:
924+
results['Status']='Error'
925+
results['Payload']='Locked Failed'
920926
return results
921927

922928
# Search for a specific item
@@ -939,22 +945,23 @@ def search(self,key):
939945

940946
def purge(self):
941947
dataDB={}
942-
self.fw.Lock()
943-
try:
944-
data=ReadFile(self.fname)
945-
if data!=None and data!='':
946-
dataDB=json.loads(data)
947-
948-
# Remove expired entries
949-
NewDataDB={}
950-
for cur in dataDB:
951-
dataItem=json.loads(dataDB[cur])
952-
if dataItem['Expire']>time.time():
953-
NewDataDB[cur]=dataDB[cur]
954-
WriteFile(self.fname,json.dumps(NewDataDB))
955-
self.fw.Unlock()
956-
except:
957-
self.fw.Unlock()
948+
l=self.fw.Lock()
949+
if l=='locked':
950+
try:
951+
data=ReadFile(self.fname)
952+
if data!=None and data!='':
953+
dataDB=json.loads(data)
954+
955+
# Remove expired entries
956+
NewDataDB={}
957+
for cur in dataDB:
958+
dataItem=json.loads(dataDB[cur])
959+
if dataItem['Expire']>time.time():
960+
NewDataDB[cur]=dataDB[cur]
961+
WriteFile(self.fname,json.dumps(NewDataDB))
962+
self.fw.Unlock()
963+
except:
964+
self.fw.Unlock()
958965

959966
###
960967
### End of module

Base/Library/JackrabbitProxy.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
class JackrabbitProxy:
5151
def __init__(self,framework=None,payload=None,exchange=None,account=None,asset=None,Usage=None):
5252
# All the default locations
53-
self.Version="0.0.0.1.1070"
53+
self.Version="0.0.0.1.1075"
5454
self.BaseDirectory='/home/JackrabbitRelay2/Base'
5555
self.ConfigDirectory='/home/JackrabbitRelay2/Config'
5656
self.DataDirectory="/home/JackrabbitRelay2/Data"

Base/Library/JackrabbitRelay.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ def Success(self,f,s):
110110
class JackrabbitRelay:
111111
def __init__(self,framework=None,payload=None,exchange=None,account=None,asset=None,secondary=None,NoIdentityVerification=False,Usage=None,RaiseError=False):
112112
# All the default locations
113-
self.Version="0.0.0.1.1070"
113+
self.Version="0.0.0.1.1075"
114114
self.NOhtml='<html><title>NO!</title><body style="background-color:#ffff00;display:flex;weight:100vw;height:100vh;align-items:center;justify-content:center"><h1 style="color:#ff0000;font-weight:1000;font-size:10rem">NO!</h1></body></html>'
115115
self.Directories={}
116116
self.Directories['Base']='/home/JackrabbitRelay2/Base'

Base/MIMIC-PlaceOrder

+1-1
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ def main():
157157
else:
158158
expire=(31*86400)
159159
results=maxAssetsList.update(relay.Order['Asset'],json.dumps(relay.Order),expire)
160-
if results['Status']=='ErrorLimit' and relay.Order['Action']=='buy':
160+
if results['Status']=='Error' and relay.Order['Action']=='buy':
161161
relay.JRLog.Error("MaxAssets","maximum limit exceeded")
162162

163163
# Check for reduce only in active config. This is a argin/futures only setting.

Base/OANDA-PlaceOrder

+1-1
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ def main():
246246
else:
247247
expire=(31*86400)
248248
results=maxAssetsList.update(relay.Order['Asset'],json.dumps(relay.Order),expire)
249-
if results['Status']=='ErrorLimit' and relay.Order['Action']=='buy':
249+
if results['Status']=='Error' and relay.Order['Action']=='buy':
250250
relay.JRLog.Error("MaxAssets","maximum limit exceeded")
251251

252252
# Check for reduce only in active config. This is a futures only setting.

Base/PROXY-PlaceOrder

+1-1
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@ def main():
305305
else:
306306
expire=(31*86400)
307307
results=maxAssetsList.update(relay.Order['Asset'],json.dumps(relay.Order),expire)
308-
if results['Status']=='ErrorLimit' and relay.Order['Action']=='buy':
308+
if results['Status']=='Error' and relay.Order['Action']=='buy':
309309
relay.JRLog.Error("MaxAssets","maximum limit exceeded")
310310
311311
# Check for reduce only in active config. This is a futures only setting.

0 commit comments

Comments
 (0)