From 7a8ce7e4162e65196469d4811f8e44232682a609 Mon Sep 17 00:00:00 2001 From: DiTus Date: Sat, 2 Aug 2025 21:43:27 +0200 Subject: [PATCH] =?UTF-8?q?python=203.11=20flex=20SDK=20dzia=C5=82a?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 142 ++++++++++++++++++++++++++++++++++++++++++++++++ 02_market.py | 84 ++++++++++++++++++++++++++++ fp-sdk-python | 1 + market.py | 0 python venv.PNG | Bin 0 -> 23941 bytes 5 files changed, 227 insertions(+) create mode 100644 .gitignore create mode 100644 02_market.py create mode 160000 fp-sdk-python create mode 100644 market.py create mode 100644 python venv.PNG diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..71748a7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,142 @@ +# Environment variables +.env +.env.local +.env.development.local +.env.test.local +.env.production.local + +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +Pipfile.lock + +# PEP 582 +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# IDE files +.vscode/ +.idea/ +*.swp +*.swo +*~ + +# OS generated files +.DS_Store +.DS_Store? +._* +.Spotlight-V100 +.Trashes +ehthumbs.db +Thumbs.db + +# Logs +*.log +logs/ + +# Node modules (if using any JS tools) +node_modules/ + +# Private keys and certificates +*.pem +*.key +*.crt +*.csr +*.p12 +*.pfx + +# Database files +*.db +*.sqlite +*.sqlite3 + +# Configuration files with sensitive data +config.json +secrets.json diff --git a/02_market.py b/02_market.py new file mode 100644 index 0000000..a893542 --- /dev/null +++ b/02_market.py @@ -0,0 +1,84 @@ +import os +import asyncio +from flextrade.flextrade_client import Client +from flextrade.constants.markets import ( + BASE_MARKET_ETH_USD, BASE_MARKET_BTC_USD, BASE_MARKET_BNB_USD, + BASE_MARKET_SHIB_USD, BASE_MARKET_PEPE_USD, BASE_MARKET_SUI_USD, + BASE_MARKET_DOGE_USD, BASE_MARKET_AAVE_USD, BASE_MARKET_HBAR_USD, + BASE_MARKET_VIRTUAL_USD, BASE_MARKET_ADA_USD, BASE_MARKET_PENDLE_USD, + BASE_MARKET_TRX_USD, BASE_MARKET_AVAX_USD, BASE_MARKET_UNI_USD, + BASE_MARKET_SOL_USD, BASE_MARKET_LINK_USD, BASE_MARKET_XRP_USD, + BASE_MARKET_TON_USD +) +from dotenv import load_dotenv + +load_dotenv() + +RPC_URL = os.getenv("RPC_URL") +PRIVATE_KEY = os.getenv("PRIVATE_KEY") + +# List of all markets to test +MARKETS = [ + BASE_MARKET_ETH_USD, + BASE_MARKET_BTC_USD, + BASE_MARKET_BNB_USD, + BASE_MARKET_SHIB_USD, + BASE_MARKET_PEPE_USD, + BASE_MARKET_SUI_USD, + BASE_MARKET_DOGE_USD, + BASE_MARKET_AAVE_USD, + BASE_MARKET_HBAR_USD, + BASE_MARKET_VIRTUAL_USD, + BASE_MARKET_ADA_USD, + BASE_MARKET_PENDLE_USD, + BASE_MARKET_TRX_USD, + BASE_MARKET_AVAX_USD, + BASE_MARKET_UNI_USD, + BASE_MARKET_SOL_USD, + BASE_MARKET_LINK_USD, + BASE_MARKET_XRP_USD, + BASE_MARKET_TON_USD +] + +def print_market_info(market_info): + """Helper function to print market information""" + print('Market {0}'.format(market_info["market"])) + print('Price: {0:.4f}'.format(market_info["price"])) + print('Long: {0:.2f}'.format((market_info["long_size"]))) + print('Short: {0:.2f}'.format((market_info["short_size"]))) + print('Funding rate 1H: {0:.6f}%'.format( + (market_info["funding_rate"]["1H"]))) + print('Funding rate 8H: {0:.6f}%'.format( + (market_info["funding_rate"]["8H"]))) + print('Funding rate 24H: {0:.6f}%'.format( + (market_info["funding_rate"]["24H"]))) + print('Funding rate 1Y: {0:.6f}%'.format( + (market_info["funding_rate"]["1Y"]))) + print('Borrowing rate 1H: {0:.6f}%'.format( + (market_info["borrowing_rate"]["1H"]))) + print('Borrowing rate 8H: {0:.6f}%'.format( + (market_info["borrowing_rate"]["8H"]))) + print('Borrowing rate 24H: {0:.6f}%'.format( + (market_info["borrowing_rate"]["24H"]))) + print('Borrowing rate 1Y: {0:.6f}%'.format( + (market_info["borrowing_rate"]["1Y"]))) + print('-' * 50) # Separator line + +async def main(): + client = Client( + eth_private_key=PRIVATE_KEY, + rpc_url=RPC_URL + ) + + print("Testing all markets...\n") + + for market in MARKETS: + try: + market_info = client.public.get_market_info(market) + print_market_info(market_info) + except Exception as e: + print(f"Error fetching market {market}: {e}") + print('-' * 50) + +if __name__ == '__main__': + asyncio.run(main()) \ No newline at end of file diff --git a/fp-sdk-python b/fp-sdk-python new file mode 160000 index 0000000..afa1153 --- /dev/null +++ b/fp-sdk-python @@ -0,0 +1 @@ +Subproject commit afa11536010bf63feb26817b1a2fc0a1df9cf060 diff --git a/market.py b/market.py new file mode 100644 index 0000000..e69de29 diff --git a/python venv.PNG b/python venv.PNG new file mode 100644 index 0000000000000000000000000000000000000000..8ba5f22975878dcf5ce6bced2ef22556d530e9bb GIT binary patch literal 23941 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