#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
import hashnest_auth
BASEURL='https://www.hashnest.com/api/'
APIVERSION='v1'
URL=BASEURL+APIVERSION+'/'
SELL='sale'
BUY='purchase'
def get_nonce():
return int(time.time()*100000);
def check_result(result):
pass
def get_verification():
out={}
nonce= get_nonce()
message = str(nonce) + hashnest_auth.USERNAME + hashnest_auth.ACCESS_KEY
out['access_key']=hashnest_auth.ACCESS_KEY
out['nonce']=nonce
out['signature']= hmac.new( hashnest_auth.SECRET_KEY, msg=message, digestmod=hashlib.sha256).hexdigest()
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
print url
print data
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(1)
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/orders',param)
def get_currency_trades(cmi):
param={'currency_market_id':cmi}
return perform_private('currency_markets/order_history',param)