*snip* Laat dit soort flauw geneuzel gewoon achterwege joh.
PS. Heb deze vraag ook gepost op Cryptocurrencies maar ik weet niet of deze daar wel echt thuishoort.
Hoi,
Ik probeer een automatische trade te doen via Python.
Wat ik al heb:
Ik blijf echter terugkrijgen:
k heb de API documentatie erop nageslagen:
https://docs.bitvavo.com/#tag/Transfer-endpoints
En ik denk dat het in de generering van de signature zit.
Hier op Tweakers is er ook een forum met een .net variant:
https://gathering.tweakers.net/forum/list_messages/2075884
en die heb ik geprobeerd te repliceren in Python maar dat lukt me nog niet helemaal. Wat gaat hier mis? Vermoeddelijk in het stukje timestamp. Ik heb ook getracht om de timestamp van Bitvavo op te vragen, te vergelijken met die van mijn vps en met het verschil weer terug te sturen maar ook dat levert geen succes op:
PS. Heb deze vraag ook gepost op Cryptocurrencies maar ik weet niet of deze daar wel echt thuishoort.
Hoi,
Ik probeer een automatische trade te doen via Python.
Wat ik al heb:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| import requests import os import time import hashlib import hmac response = requests.get('https://api.bitvavo.com/v2/time') API_Data = response.json() bitvavo_tijd = API_Data['time'] os.system('clear') #message = str(bitvavo_tijd)+'GET/order' message = str(bitvavo_tijd)+'GET/order{\"market\":\"BTC-EUR\"}' print(message) secret = "Lange sleutel" signature = hmac.new(bytes(secret , 'utf-8'), msg = bytes(message , 'utf-8'), digestmod = hashlib.sha256).hexdigest().upper() print(signature) headers = { 'Bitvavo-Access-Key': 'Korte_sleutel', 'Bitvavo-Access-Signature': signature, 'Bitvavo-Access-Timestamp': str(bitvavo_tijd), 'Bitvavo-Access-Window': '10000', 'Content-Type': 'application/json', } json_data = { 'market': 'BTC-EUR', 'side': 'buy', 'orderType': 'market', 'amount': '10', 'responseRequired': True, } response = requests.post('https://api.bitvavo.com/v2/order', headers=headers, json=json_data) print(response.text) |
Ik blijf echter terugkrijgen:
code:
1
| {"errorCode":309,"error":"The signature is invalid."} |
k heb de API documentatie erop nageslagen:
https://docs.bitvavo.com/#tag/Transfer-endpoints
En ik denk dat het in de generering van de signature zit.
Hier op Tweakers is er ook een forum met een .net variant:
https://gathering.tweakers.net/forum/list_messages/2075884
en die heb ik geprobeerd te repliceren in Python maar dat lukt me nog niet helemaal. Wat gaat hier mis? Vermoeddelijk in het stukje timestamp. Ik heb ook getracht om de timestamp van Bitvavo op te vragen, te vergelijken met die van mijn vps en met het verschil weer terug te sturen maar ook dat levert geen succes op:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
| import requests import os import time import hashlib import hmac os.system('clear') #Lokale tijd obj = time.gmtime(0) epoch = time.asctime(obj) curr_time = round(time.time()*1000) print("Lokale tijd: ",curr_time) #Bitvavo tijd response = requests.get('https://api.bitvavo.com/v2/time') API_Data = response.json() bitvavo_tijd = API_Data['time'] print('Bitvavo tijd: '+str(bitvavo_tijd)) verschil = bitvavo_tijd - curr_time print("Verschil: " + str(verschil)) message = str(bitvavo_tijd+verschil)+'GET/v2/order{\"market\":\"BTC-EUR\"}' print(message) secret = "Lange_key" signature = hmac.new(bytes(secret , 'utf-8'), msg = bytes(message , 'utf-8'), digestmod = hashlib.sha256).hexdigest().upper() print(signature) headers = { 'Bitvavo-Access-Key': 'Korte_key', 'Bitvavo-Access-Signature': signature, 'Bitvavo-Access-Timestamp': str(bitvavo_tijd+verschil), 'Bitvavo-Access-Window': '60000', 'Content-Type': 'application/json', } json_data = { 'market': 'BTC-EUR', 'side': 'buy', 'orderType': 'market', 'amount': '10', 'responseRequired': True, } response = requests.post('https://api.bitvavo.com/v2/order', headers=headers, json=json_data) print(response.text) |
[ Voor 1% gewijzigd door RobIII op 07-12-2023 12:25 ]