1
0
fin-depo/fin_depo/defi_kucoin.py
Jon Michael Aanes 58b5a204f4
Some checks failed
Test Python / Test (push) Failing after 20s
Kraken and Kucoin depos
2024-05-29 22:29:44 +02:00

38 lines
1.3 KiB
Python

from .data import DepoSingle, DepoGroup
import dataclasses
import datetime
import fin_defs
import logging
from collections.abc import Iterator, Mapping
from decimal import Decimal
import kucoin.client
from frozendict import frozendict
from personal_data.data import DeduplicateMode, Scraper
logger = logging.getLogger(__name__)
class KucoinDepoFetcher:
def __init__(self, kucoin_key: str, kucoin_secret: str, kucoin_pass: str):
self.client = kucoin.client.Client(
kucoin_key,
kucoin_secret,
kucoin_pass,
)
def get_depo(self) -> DepoGroup:
now = datetime.datetime.now(tz=datetime.UTC)
assets_by_account_type: dict[str, dict[fin_defs.Asset, Decimal]] = {}
for account_data in self.client.get_accounts():
asset = fin_defs.WELL_KNOWN_SYMBOLS[account_data['currency']]
balance = Decimal( account_data['balance'])
assets_for_account_type = assets_by_account_type.get(account_data['type'], {})
assets_for_account_type[asset] = assets_for_account_type.get(asset, Decimal(0)) +balance
del account_data, asset, balance
return DepoGroup("Kucoin", now, [
DepoSingle("Kucoin " + account_type, now, assets) for account_type,
assets in assets_by_account_type.items()
])