· 6 years ago · Mar 23, 2019, 11:30 PM
1import time
2import hashlib
3import hmac
4import requests
5import json
6from urllib.parse import urlparse
7
8secretKey = '7axS-G4XQZtP_P6p092ZInnC2Pw6Dp2AlHLb9qUPHLEdSKzn'
9apiKey = '1fwAVskyv7JULehbcG9hsZcP'
10baisUrl = 'https://testnet.bitmex.com'
11
12
13def generate_signature(secret, verb, url, expires, data):
14 parsedURL = urlparse(url)
15 path = parsedURL.path
16
17 if parsedURL.query:
18 path = path + '?' + parsedURL.query
19
20 if isinstance(data, (bytes, bytearray)):
21 data = data.decode('utf8')
22
23 message = verb + path + str(expires) + data
24
25 signature = hmac.new(bytes(secret, 'utf8'), bytes(message, 'utf8'), digestmod=hashlib.sha256).hexdigest()
26 return signature
27
28
29def request(url, methad, params=None):
30 if params is None:
31 params = ''
32 else:
33 params = json.dumps(params).replace(' ', '')
34
35 expires = int(round(time.time()) + 35)
36
37 headers = {
38 'Content-Type': 'application/json',
39 'api-expires': str(expires),
40 'api-key': apiKey,
41 'api-signature': generate_signature(secretKey, methad, '/api/v1/' + url, expires, params)
42 }
43
44 if methad == 'GET':
45 r = requests.get(baisUrl + '/api/v1/' + url, headers=headers)
46 elif methad == 'DELETE':
47 r = requests.delete(baisUrl + '/api/v1/' + url, headers=headers, data=params, stream=True)
48
49 return r.text
50
51
52def clear_all():
53 r = request('order/all', 'DELETE')
54 print(r)
55
56
57clear_all()