#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')