From 574cb5501d7e0bb610ffa69c407b2475ae613070 Mon Sep 17 00:00:00 2001 From: Ian Haywood Date: Mon, 6 Nov 2017 03:26:24 +1100 Subject: [PATCH 1/2] new functions transfer_history and withdraw_aud --- btcmarkets.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/btcmarkets.py b/btcmarkets.py index f2ef506..0bcc51e 100644 --- a/btcmarkets.py +++ b/btcmarkets.py @@ -23,10 +23,14 @@ def request(action, key, signature, timestamp, path, data): return json.load(response) -def get_request(key, secret, path): +def get_request(key, secret, path, queryString=None): nowInMilisecond = str(int(time.time() * 1000)) - stringToSign = path + "\n" + nowInMilisecond + "\n" + stringToSign = path + "\n" + if stringToSign: + stringToSign += queryString + '\n' + path += '?'+queryString + stringToSign += nowInMilisecond + "\n" signature = base64.b64encode(hmac.new(secret, stringToSign, digestmod=hashlib.sha512).digest()) @@ -70,6 +74,8 @@ def order_history(self, currency, instrument, limit, since): postData = json.dumps(data, separators=(',', ':')) return post_request(self.key, self.secret, '/order/history', postData) + + def order_open(self, currency, instrument, limit, since): data = OrderedDict([('currency', currency),('instrument', instrument),('limit', limit),('since', since)]) @@ -77,7 +83,7 @@ def order_open(self, currency, instrument, limit, since): return post_request(self.key, self.secret, '/order/open', postData) def order_detail(self, order_ids): - data_obj = {'orderIds':order_ids} + data_obj = {'orderIds':order_ids} postData = json.dumps(data_obj, separators=(',', ':')) return post_request(self.key, self.secret, '/order/detail', postData) @@ -97,6 +103,12 @@ def get_market_trades(self,currency_in,currency_out): return get_request(self.key, self.secret, '/market/%s/%s/trades' % (currency_in,currency_out)) + def transfer_history(self,limit=20): + return get_request(self.key, self.secret, '/fundtransfer/history', 'limit=%d' % limit) + def withdraw_aud(self, name, bank, bsb, account_no, amount): + data = OrderedDict([("accountName",name),("accountNumber",account_no),("bankName",bank),("bsbNumber",bsb),("amount",int(amount*100000000)),("currency","AUD")]) + postData = json.dumps(data, separators=(',', ':')) + return post_request(self.key, self.secret, '/fundtransfer/withdrawEFT', postData) From 05dce365d8d051ac1f18040ddabe0aafa886ced9 Mon Sep 17 00:00:00 2001 From: Ian Haywood Date: Wed, 15 Nov 2017 20:40:38 +1100 Subject: [PATCH 2/2] add query for account balances --- btcmarkets.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/btcmarkets.py b/btcmarkets.py index 0bcc51e..29b187b 100644 --- a/btcmarkets.py +++ b/btcmarkets.py @@ -27,7 +27,7 @@ def get_request(key, secret, path, queryString=None): nowInMilisecond = str(int(time.time() * 1000)) stringToSign = path + "\n" - if stringToSign: + if queryString: stringToSign += queryString + '\n' path += '?'+queryString stringToSign += nowInMilisecond + "\n" @@ -108,7 +108,10 @@ def transfer_history(self,limit=20): return get_request(self.key, self.secret, '/fundtransfer/history', 'limit=%d' % limit) def withdraw_aud(self, name, bank, bsb, account_no, amount): - data = OrderedDict([("accountName",name),("accountNumber",account_no),("bankName",bank),("bsbNumber",bsb),("amount",int(amount*100000000)),("currency","AUD")]) + data = OrderedDict([("accountName",name),("accountNumber",account_no),("bankName",bank),("bsbNumber",bsb),("amount",int(amount*100)*1000000),("currency","AUD")]) postData = json.dumps(data, separators=(',', ':')) return post_request(self.key, self.secret, '/fundtransfer/withdrawEFT', postData) + + def account_balance(self): + return get_request(self.key, self.secret, '/account/balance')