4545#from decimal import Decimal
4646
4747from coinbase .config import COINBASE_ENDPOINT
48- from coinbase .models import CoinbaseAmount , CoinbaseTransaction , CoinbaseUser
48+ from coinbase .models import CoinbaseAmount , CoinbaseTransaction , CoinbaseUser , CoinbaseTransfer
4949
5050
5151class CoinbaseAccount (object ):
@@ -328,6 +328,34 @@ def transactions(self, count=30):
328328 transactions .append (CoinbaseTransaction (transaction ['transaction' ]))
329329
330330 return transactions
331+
332+ def transfers (self , count = 30 ):
333+ """
334+ Retrieve the list of transfers for the current account
335+ :param count: How many transfers to retrieve
336+ :return: List of CoinbaseTransfer objects
337+ """
338+ url = COINBASE_ENDPOINT + '/transfers'
339+ pages = count / 30 + 1
340+ transfers = []
341+
342+ reached_final_page = False
343+
344+ for page in xrange (1 , pages + 1 ):
345+
346+ if not reached_final_page :
347+ params = {'page' : page }
348+ params .update (self .global_request_params )
349+ response = self .session .get (url = url , params = params )
350+ parsed_transfers = response .json ()
351+
352+ if parsed_transfers ['num_pages' ] == page :
353+ reached_final_page = True
354+
355+ for transfer in parsed_transfers ['transfers' ]:
356+ transfers .append (CoinbaseTransfer (transfer ['transfer' ]))
357+
358+ return transfers
331359
332360 def get_transaction (self , transaction_id ):
333361 """
@@ -388,4 +416,7 @@ def generate_receive_address(self, callback_url=None):
388416 }
389417 }
390418 response = self .session .post (url = url , data = json .dumps (request_data ), params = self .global_request_params )
391- return response .json ()['address' ]
419+ return response .json ()['address' ]
420+
421+
422+
0 commit comments