#DONATION 16RdQZ86NUWQbE6rM86JbxnnaCDcAKqa9 ####HASHNET API HELPER#### import urllib.parse import urllib.request import time import hashlib import hmac import json USERNAME='' ACCESS_KEY='' SECRET_KEY='' BASEURL='https://www.hashnest.com/api/' APIVERSION='v1' URL=BASEURL+APIVERSION+'/' def get_nonce(): return int(time.time()*100000); def get_signature(nonce): global ACCESS_KEY,USERNAME,SECRET_KEY message = (str(nonce) + USERNAME + ACCESS_KEY).encode(encoding='utf_8', errors='strict') return hmac.new(bytearray(SECRET_KEY,'utf-8'), msg=message, digestmod=hashlib.sha256).hexdigest() def check_result(result): pass def get_verification(): out={} global ACCESS_KEY out['access_key']=ACCESS_KEY out['nonce']=get_nonce() out['signature']=get_signature(out['nonce']) return out def build_query(req={}): req.update(get_verification()) post_data = urllib.parse.urlencode(req) headers = {} headers['User-Agent'] = 'ApeGoxApi' return (post_data, headers) def perform_query(url,data,headers={}): global URL url=URL+url try: requete = urllib.request.Request(url, data.encode(encoding='utf_8', errors='strict'), headers) reponse = urllib.request.urlopen(requete) return json.load(str(reponse)) except Exception as e: print ('ERROR:' + str(Exception) + '---' + str(e)+"\n"+url+"\n"+data) def perform_private(url,req={}): data, headers = build_query(req) return perform_query(url,data,headers) def get_account_info(): return perform_private('account'); def get_account_balance(): return perform_private('currency_accounts') def get_account_hashrate(): return perform_private('hash_accounts') def get_orders(cmi): param={'currency_market_id':cmi} return perform_private('orders/active',param) def get_history(cmi,page=None,page_amount=None): param={'currency_market_id':cmi} if page is not None:param['page']=page if page_amount is not None:param['page_per_amount']=page_amount return perform_private('orders/history',param) def create_order(cmi,amount,ppc,category): param={'currency_market_id':cmi} param['amount']=amount param['ppc']=ppc param['category']=category return perform_private('orders')