1
0
crypto-tax/crypto_tax/__main__.py
Jon Michael Aanes cd630de70b
Some checks failed
Run Python tests (through Pytest) / Test (push) Failing after 24s
Verify Python project can be installed, loaded and have version checked / Test (push) Failing after 22s
Plans for the future
2024-12-22 06:25:07 +01:00

59 lines
1.5 KiB
Python

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 . import compute_tax
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')
if __name__ == '__main__':
main()