26 lines
685 B
Python
26 lines
685 B
Python
|
|
import hmac
|
|
import hashlib
|
|
import time
|
|
|
|
|
|
class ExchangeAuth:
|
|
def __init__(self, api_key: str, api_secret: str):
|
|
self.api_key = api_key
|
|
self.api_secret = api_secret.encode()
|
|
|
|
def sign(self, query: str) -> str:
|
|
return hmac.new(self.api_secret, query.encode(), hashlib.sha256).hexdigest()
|
|
|
|
def build_headers(self):
|
|
return {
|
|
"X-MBX-APIKEY": self.api_key,
|
|
}
|
|
|
|
def build_signed_params(self, params: dict):
|
|
params["timestamp"] = int(time.time() * 1000)
|
|
query = "&".join(f"{k}={v}" for k, v in params.items())
|
|
signature = self.sign(query)
|
|
params["signature"] = signature
|
|
return params
|