Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- import urllib
- import urllib2
- import json
- import time
- import hmac
- import hashlib
- import base64
- import sys
- import requests
- class cryptopia(object):
- def __init__(self, key, secret):
- self.key = key
- self.secret = secret
- self.public = ['GetCurrencies', 'GetTradePairs', 'GetMarkets', 'GetMarket', 'GetMarketHistory', 'GetMarketOrders', 'GetMarketOrderGroups']
- self.private = ['GetBalance', 'GetDepositAddress', 'GetOpenOrders', 'GetTradeHistory', 'GetTransactions', 'SubmitTrade', 'CancelTrade', 'SubmitTip', 'SubmitWithdraw', 'SubmitTransfer']
- def api_query(self, method, values, req = None ):
- if not req:
- req = {}
- #print "def api_query( method = " + method + ", req = " + str( req ) + " ):"
- time.sleep(1)
- if method in self.public:
- url = 'https://www.cryptopia.co.nz/api/'
- elif method in self.private:
- url = 'https://www.cryptopia.co.nz/api/'
- else:
- return 'Call Not Identified - Something Went Wrong.'
- url += method + '?' + urllib.urlencode(values)
- if method not in self.public:
- url = "https://www.cryptopia.co.nz/Api/" + method
- nonce = str( int( time.time() ) )
- post_data = json.dumps( req );
- m = hashlib.md5()
- m.update(post_data)
- requestContentBase64String = base64.b64encode(m.digest())
- signature = self.key + "POST" + urllib.quote_plus( url ).lower() + nonce + requestContentBase64String
- hmacsignature = base64.b64encode(hmac.new(base64.b64decode( self.secret ), signature, hashlib.sha256).digest())
- header_value = "amx " + self.key + ":" + hmacsignature + ":" + nonce
- headers = { 'Authorization': header_value, 'Content-Type':'application/json; charset=utf-8' }
- r = requests.post( url, data = post_data, headers = headers )
- response = r.text
- print "( Response ): " + response
- return response.replace("false","False").replace("true","True").replace('":null','":None' )
- def GetCurrencies(self):
- return self.api_query('GetCurrencies')
- def GetTradePairs(self):
- return self.api_query('GetTradePairs')
- def GetMarkets(self):
- return self.api_query('GetMarkets')
- def GetMarket(self, market):
- return self.api_query('GetMarket', {'market': market})
- def GetMarketHistory(self, market):
- return self.api_query('GetMarketHistory', {'market': market})
- def GetMarketOrders(self, market):
- return self.api_query('GetMarketOrders', {'market': market})
- def GetMarketOrderGroups(self, markets):
- return self.api_query('GetMarketOrderGroups', {'markets': markets})
- def GetBalance(self, Currency):
- return self.api_query('GetBalance', {'Currency': Currency})
- def GetOpenOrders(self, Market):
- return self.api_query('GetOpenOrders', {'Market': Market})
- def GetDepositAddress(self, Currency):
- return self.api_query('GetDepositAddress', {'Currency': Currency})
- def GetOpenOrders(self, Market):
- return self.api_query('GetOpenOrders', {'Market': Market})
- def GetTradeHistory(self, Market):
- return self.api_query('GetTradeHistory', {'Market': Market})
- def GetTransactions(self, Type):
- return self.api_query('GetTransactions', {'Type': Type})
- def SubmitTrade(self, Market, Type, Rate, Amount):
- return self.api_query('SubmitTrade', {'Market': Market, 'Type': Type, 'Rate': Rate, 'Amount': Amount})
- def CancelTrade(self, Type, OrderID, TradePairID):
- return self.api_query('CancelTrade', {'Type': Type, 'OrderID': OrderID, 'TradePairID': TradePairID})
- def SubmitTip(self, Currency, ActiveUsers, Amount):
- return self.api_query('SubmitTip', {'Currency': Currency, 'ActiveUsers': ActiveUsers, 'Amount': Amount})
- def SubmitWithdraw(self, Currency, Address, Amount):
- return self.api_query('SubmitWithdraw', {'Currency': Currency, 'Address': Address, 'Amount': Amount})
- def SubmitTransfer(self, Currency, Username, Amount):
- return self.api_query('SubmitTransfer', {'Currency': Currency, 'Username': Username, 'Amount': Amount})
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement