Advertisement
Guest User

Untitled

a guest
Aug 19th, 2019
470
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.83 KB | None | 0 0
  1. key_id = '5ae9193a-a842-4017-0007-f30c914ca11b'
  2. private_key  = 'MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAItark70eaHuBNhWXyXuPsHNVvrNNIsFdZJdxiWOQ4nF++xXcgFxA9kcQeS/wyi1xu5KnPIeLLEusBaeYpNI5mkep8QguEOEXaCFkFW3fntyGGj8kZgG8eOjWVb6OHQYAFh4OYX6krxVcDDNilERhgNI4Z/GrdDBxkK1jJiQu5CjAgMBAAECgYAxYu/Hd4jrxGjfKq0Jykdfc6BRvgvTARpLxwQEJ0j0OMAxYEQ9EopklUkdAoDtmo5nwPWiMONx37P0MCmLPRi6vSqv5F4+B0DXbjZG4oE2AW5NTOIAXoaWlHW3TzzIegg8+aoq7/l39mtoVDm1XlgQygKXa5LMlWSt/TI/fK7v8QJBANoFMO0f3VT4u2WbALFG6ACQ6EoUR8Xs/3I2bSxxWirF2RXI1/Xgcdy5/x5UiRFWCI+7C+ofY8aPkVf1dDBFAqcCQQCjoU6LSTCUPK3ClQI3qUvyZYvnmhFEiR9pzxTeJ9WrLQ/A4yB+HJxu7lUiuLqH9tmn8OJQtIQ2vcPLw9cfmq2lAkEAobkUD/GBFxTivX37R4VXd4QGK11b2D/zRN+GoF79CZl1bKltOSBild8KlY8Tld6Bv0x6jBL4ykOZBuw2Yc/vJQJAGEDmlXqpuq8ryjWv+HQdj7ZBgHizqobwowxQuYUKBK9PMHX58PdosICfGeBrtY9/P4dS5Ed9eWezR9alYkfZCQJAJ40PLkCSHP21UfHIzhIhYFS1o+JkYdEKn8Byn/VXm8anviVz0JVGiABacZi+3SE8qhXmI83e16Gnz3m/cvHbqg=='
  3. import hashlib
  4. import time
  5. import base64
  6. import jwt
  7. import requests
  8. from pprint import pprint
  9. from cryptography.hazmat.primitives.serialization import load_pem_private_key, load_der_private_key
  10. from cryptography.hazmat.backends.openssl import backend
  11. from tabulate import tabulate
  12. def print_orders(orders):
  13.     orders_list = []
  14.     for order in orders:
  15.        
  16.         if order['symbol'] == 'TRXXBT':
  17.             #pprint(order)
  18.             orders_list.append((order['price']*1e8,order['side'], order['size'] - order['filled']))
  19.            
  20.     print(tabulate(sorted(orders_list, reverse=True), floatfmt=(".0f", "{:d}")))
  21.  
  22.  
  23.  
  24.  
  25.  
  26. def create_digest(method, uri, query_str, body):
  27.     data = method + uri + query_str + body
  28.     return hashlib.md5(data.encode()).hexdigest()
  29.  
  30. def generate_token(key_id, private_key, method, exp, uri="/", query_str="", body=""):
  31.     digest = create_digest(method, uri, query_str, body)
  32.     der = base64.b64decode(private_key)
  33.     pem_key = load_der_private_key(der, password=None, backend=backend)
  34.     jwt_encode = jwt.encode({'digest': digest, 'exp': exp}, pem_key, algorithm='RS512', headers={'kid': key_id})
  35.     return jwt_encode.decode("utf-8")
  36.  
  37. def get_header(endpoint):
  38.        
  39.     url = 'https://api.basefex.com' + endpoint
  40.     auth_token = generate_token(key_id, private_key, "GET", 1584014794, endpoint)
  41.     hed = {'authorization': 'Bearer ' + auth_token}
  42.     return hed
  43.  
  44. hed_position = get_header('/accounts')
  45. hed_orders = get_header('/orders/opening')
  46.  
  47. while True:
  48.    
  49.     response_pos = requests.get('https://api.basefex.com/accounts', headers=hed_position)
  50.     pos = response_pos.json()
  51.     response_orders = requests.get('https://api.basefex.com/orders/opening', headers=hed_orders)
  52.    
  53.     orders = response_orders.json()
  54.     print('\n'*50)
  55.     print(f"{pos['positions']['TRXXBT']['size']:,} @ {pos['positions']['TRXXBT']['entryPrice']}")
  56.     print_orders(orders)
  57.     time.sleep(5)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement