# usage example # obj = nicehash_request("/main/api/v2/accounting/accounts2","fiat=USD") def nicehash_request(url, query=""): start = utime.ticks_ms() localtime = str('{0:f}'.format(get_time(False,True) * 1000)).split('.')[0] # epoch in ms nonce = str(uuid.uuid4()) reqid = str(uuid.uuid4()) message = bytearray(secrets['nicehash_key'],"utf-8") # api key message += b'\x00' message += bytearray(localtime,"utf-8") message += b'\x00' message += bytearray(nonce,"utf-8") message += b'\x00' message += b'\x00' message += bytearray(secrets['nicehash_org'],"utf-8") # api organization message += b'\x00' message += b'\x00' message += bytearray("GET","utf-8") message += b'\x00' message += bytearray(url,"utf-8") if query != "": message += b'\x00' message += bytearray(query,"utf-8") hmacs = hmac.HMAC(bytearray(secrets['nicehash_secret'],"utf-8"), message, hashlib.sha256) # api secret hashed_string = hmacs.hexdigest() auth = secrets['nicehash_key']+":"+hashed_string; # api key headers = { "X-Time": localtime, "X-Nonce": nonce, "X-Organization-ID": secrets['nicehash_org'], # api organization "X-Request-ID": reqid, "X-Auth": auth } response = urequests.get("https://api2.nicehash.com"+url+"?"+query, headers=headers) obj = json.loads(response.text) response.close() delta = utime.ticks_diff(utime.ticks_ms(), start) debug("Received response from Nicehash API (took "+str(delta)+"ms)") return obj