W powyzszym kodzie sa dwa bledy.
1. dane do requesta nalezy podac jako "data" a nie "params"
2. "data" nalezy podac jako string (albo json.dumps()) a nie dict
3. nie jest to obowiazkowe ale powinno sie rowniez okreslic parametry 'postOnly', 'hidden' oraz 'fillOrKill'
4. rowniez nie obowiazkowo, ale w nowej dokumentacji znalazlem ze nalezy rowniez podac header 'Content-Type' - nie wiem po co to jest, dziala bez tego
Poprawiony, dzialajacy kod:
import json
import uuid
import time
import hashlib
import hmac
credentials = {'priv': 'xxx', 'pub': 'xxx'}
payload = {
'url':'https://api.bitbay.net/rest/trading/offer/BTC-PLN',
'data':str(
{
'amount':0.01,
'rate':30000.0,
'offerType':'sell',
'mode':'limit',
'postOnly':False,
'hidden':False,
'fillOrKill':False,
}
)
}
timestamp = str(int(time.time()))
string_data = credentials['pub'] + timestamp + payload['data']
sign = hmac.new(
credentials['priv'].encode(),
string_data.encode(),
hashlib.sha512
)
payload['headers'] = {
'API-Hash':sign.hexdigest(),
'API-Key': credentials['pub'],
'Request-Timestamp': timestamp,
'operation-id': str(uuid.uuid4()),
'Content-Type':'application/json',
}
raw_response = requests.post(**payload).json()
Pozatym bitbay udostepnil wzbogacona dokumentacje ktora jest o wiele bardziej kompletna
https://docs.bitbay.net/v3.2.1/
Pozdrawiam,
Wojtek;)