· 6 years ago · Mar 15, 2019, 01:12 PM
1import hashlib
2import hmac
3import urllib2
4import urllib
5import time
6import ssl
7
8access_key = 'my access key'
9secret_key = 'my secret key'
10
11# 0. making ssl context - verify should be turned off
12ctx = ssl.create_default_context()
13ctx.check_hostname = False
14ctx.verify_mode = ssl.CERT_NONE
15
16# ------------------
17# Get markets list
18# ------------------
19
20# 1. list markets
21epoch_time = str(int(time.time())) + '000'
22request = 'access_key=' + access_key + '&tonce=' + epoch_time
23message = 'GET|/api/v2/markets|' + request
24
25# 1.1 generate the hash.
26signature = hmac.new(
27 secret_key,
28 message,
29 hashlib.sha256
30).hexdigest()
31
32# 1.2 list markets
33query = 'https://graviex.net/api/v2/markets?' + request + '&signature=' + signature
34content = urllib2.urlopen(query, context=ctx).read()
35print(content)
36
37# ------------------
38# Put sell order
39# ------------------
40
41# 2. put order
42epoch_time = str(int(time.time())) + '001' # tonce should be different from previous one
43
44request = 'access_key=' + access_key + '&market=giobtc&price=0.000000042&side=sell' + '&tonce=' + epoch_time + '&volume=100.0'
45message = 'POST|/api/v2/orders|' + request
46
47# 2.1 generate the hash.
48signature = hmac.new(
49 secret_key,
50 message,
51 hashlib.sha256
52).hexdigest()
53
54# 2.2 put order
55query = 'https://graviex.net/api/v2/orders?' + request
56result = urllib2.Request(query, urllib.urlencode({'signature' : signature})) #there is a trick - we need a POST request, thats why urlencode used
57content = urllib2.urlopen(result, context=ctx).read()
58print(content)