#DONATION 16RdQZ86NUWQbE6rM86JbxnnaCDcAKqa9 ####HASHNET API HELPER#### from urllib import urlencode import urllib2 import time from datetime import datetime import hashlib import hmac import base64 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 return hmac.new(SECRET_KEY, 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 = urlencode(req) headers = {} headers['User-Agent'] = 'ApeGoxApi' return (post_data, headers) def perform_query(url,data,headers={}): global URL url=URL+url count=0 while True: if count==3: exit(0) count+=1 try: req = urllib2.Request(url, data, headers) res = urllib2.urlopen(req,data) return json.load(res) except Exception,e: print 'ERROR:' + str(Exception) + '---' + str(e)+"\n"+url+"\n"+data time.sleep(10) 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') def cancel_order(order_id): param={'order_id':order_id} return perform_private('orders/revoke') def cancell_all_orders(cmi): param={'currency_market_id':cmi} return perform_private('orders/quick_revoke',param) def get_opened_markets(): return perform_private('currency_markets') def get_currency_orders(cmi,category): param={'currency_market_id':cmi} param['category']=category return perform_private('currency_markets/order_history',param)