import sys import requests import fin_depo from . import secrets from fin_defs import CryptoCurrency, AssetAmount, MPC, Asset, USDT from decimal import Decimal from collections import deque from fin_depo.data import * import datetime import dataclasses import logging from pathlib import Path from . import compute_tax, output_excel KUCOIN_CLIENT = fin_depo.defi_kucoin.KucoinDepoFetcher( secrets.KUCOIN_KEY, secrets.KUCOIN_SECRET, secrets.KUCOIN_PASS, ) KRAKEN_CLIENT = fin_depo.defi_kraken.KrakenDepoFetcher( secrets.KRAKEN_KEY, secrets.KRAKEN_SECRET, ) def main(): """Main function.""" logging.basicConfig() logger = logging.getLogger('crypto_tax') logger.setLevel('INFO') TRANSFERS = list(KRAKEN_CLIENT._get_double_registers()) #TRANSFERS += list(KUCOIN_CLIENT._get_double_registers()) tax_report = compute_tax(TRANSFERS) logger.info('-'*80) if True: logger.info('Bought for:') for asset, prices in tax_report.current_assets.items(): price_sum = sum((p.amount for p in prices), start=AssetAmount.ZERO) sys.stdout.write(f' - {asset.raw_short_name():10} ({price_sum}): ') for price in prices: sys.stdout.write(str(price.amount.amount)) sys.stdout.write(', ') del price sys.stdout.write('\n') del asset, prices for bas in tax_report.bought_and_sold_for: sys.stdout.write(f'{bas.amount} ({bas.time_bought} ----> {bas.time_sold})\n') output_path = Path('./output/report.xlsx') output_excel.produce_excel_report(tax_report, output_path) if __name__ == '__main__': main()