diff --git a/.github/workflows/binance-lev-tier_update.yml b/.github/workflows/binance-lev-tier_update.yml new file mode 100644 index 000000000..045e811b8 --- /dev/null +++ b/.github/workflows/binance-lev-tier_update.yml @@ -0,0 +1,47 @@ +name: Binance Leverage tiers update + +on: + # schedule: + # - cron: "0 3 * * 2" + # on demand + workflow_dispatch: + +permissions: + contents: read + +jobs: + auto-update: + runs-on: ubuntu-latest + environment: + name: develop + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-python@v5 + with: + python-version: "3.11" + + - name: Install ccxt + run: pip install ccxt + + - name: Run leverage tier update + env: + CI_WEB_PROXY: secrets.CI_WEB_PROXY + FREQTRADE__EXCHANGE__KEY: secrets.BINANCE_EXCHANGE_KEY + FREQTRADE__EXCHANGE__SECRET: secrets.BINANCE_EXCHANGE_SECRET + run: python build_helpers/binance_update_lev_tiers.py + + + - uses: peter-evans/create-pull-request@v6 + with: + token: ${{ secrets.REPO_SCOPED_TOKEN }} + add-paths: freqtrade/exchange/binance_leverage_tiers.json + labels: | + Tech maintenance + Dependencies + branch: update/pre-commit-hooks + title: Update Binance Leverage Tiers + commit-message: "chore: update pre-commit hooks" + committer: Freqtrade Bot + body: Update binance leverage tiers. + delete-branch: true diff --git a/build_helpers/binance_update_lev_tiers.py b/build_helpers/binance_update_lev_tiers.py new file mode 100644 index 000000000..c0f3a7c1c --- /dev/null +++ b/build_helpers/binance_update_lev_tiers.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python3 +import json +import os +from pathlib import Path + +import ccxt + + +key = os.environ.get('FREQTRADE__EXCHANGE__KEY') +secret = os.environ.get('FREQTRADE__EXCHANGE__SECRET') + +proxy = os.environ.get('CI_WEB_PROXY') + +exchange = ccxt.binance({ + 'apiKey': key, + 'secret': secret, + 'httpsProxy': proxy, + 'options': {'defaultType': 'swap'} + }) +_ = exchange.load_markets() + +lev_tiers = exchange.fetch_leverage_tiers() + +# Assumes this is running in the root of the repository. +file = Path('freqtrade/exchange/binance_leverage_tiers.json') +json.dump(dict(sorted(lev_tiers.items())), file.open('w'), indent=2)