Untitled


SUBMITTED BY: Guest

DATE: April 15, 2015, 5:27 p.m.

FORMAT: Python

SIZE: 2.7 kB

HITS: 1043

  1. #DONATION 16RdQZ86NUWQbE6rM86JbxnnaCDcAKqa9
  2. ####HASHNET API HELPER####
  3. import urllib.parse
  4. import urllib.request
  5. import time
  6. import hashlib
  7. import hmac
  8. import json
  9. USERNAME=''
  10. ACCESS_KEY=''
  11. SECRET_KEY=''
  12. BASEURL='https://www.hashnest.com/api/'
  13. APIVERSION='v1'
  14. URL=BASEURL+APIVERSION+'/'
  15. def get_nonce():
  16. return int(time.time()*100000);
  17. def get_signature(nonce):
  18. global ACCESS_KEY,USERNAME,SECRET_KEY
  19. message = (str(nonce) + USERNAME + ACCESS_KEY).encode(encoding='utf_8', errors='strict')
  20. return hmac.new(bytearray(SECRET_KEY,'utf-8'), msg=message, digestmod=hashlib.sha256).hexdigest()
  21. def check_result(result):
  22. pass
  23. def get_verification():
  24. out={}
  25. global ACCESS_KEY
  26. out['access_key']=ACCESS_KEY
  27. out['nonce']=get_nonce()
  28. out['signature']=get_signature(out['nonce'])
  29. return out
  30. def build_query(req={}):
  31. req.update(get_verification())
  32. post_data = urllib.parse.urlencode(req)
  33. headers = {}
  34. headers['User-Agent'] = 'ApeGoxApi'
  35. return (post_data, headers)
  36. def perform_query(url,data,headers={}):
  37. global URL
  38. url=URL+url+data.encode(encoding='utf_8', errors='strict')
  39. try:
  40. requete = urllib.request.Request(url, '', headers)
  41. reponse = urllib.request.urlopen(requete)
  42. return json.load(str(reponse))
  43. except Exception as e:
  44. print ('ERROR:' + str(Exception) + '---' + str(e)+"\n"+url+"\n"+data)
  45. def perform_private(url,req={}):
  46. data, headers = build_query(req)
  47. return perform_query(url,data,headers)
  48. def get_account_info():
  49. return perform_private('account');
  50. def get_account_balance():
  51. return perform_private('currency_accounts')
  52. def get_account_hashrate():
  53. return perform_private('hash_accounts')
  54. def get_orders(cmi):
  55. param={'currency_market_id':cmi}
  56. return perform_private('orders/active',param)
  57. def get_history(cmi,page=None,page_amount=None):
  58. param={'currency_market_id':cmi}
  59. if page is not None:param['page']=page
  60. if page_amount is not None:param['page_per_amount']=page_amount
  61. return perform_private('orders/history',param)
  62. def create_order(cmi,amount,ppc,category):
  63. param={'currency_market_id':cmi}
  64. param['amount']=amount
  65. param['ppc']=ppc
  66. param['category']=category
  67. return perform_private('orders')

comments powered by Disqus