• Stars
    star
    245
  • Rank 165,304 (Top 4 %)
  • Language
    Python
  • License
    MIT License
  • Created almost 3 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

python repo to create blockchain CSVs

staketaxcsv

Install

  1. Install python 3.9 (one way)

  2. Install pip packages

    pip3 install -r requirements.txt
    

Usage

  • Load environment variables (add to ~/.bash_profile or ~/.bashrc to avoid doing every time):

    set -o allexport
    source sample.env
    set +o allexport
    
  • Usage as CLI

    • Remember to add your path to staketaxcsv/src to the PYTHONPATH environment variable.
    • Same arguments apply for report_algo.py (ALGO), report_atom.py (ATOM), report_*.py:
    cd src
    
    # Create default CSV
    python3 staketaxcsv/report_atom.py <wallet_address>
    
    # Create all CSV formats (i.e. koinly, cointracking, etc.)
    python3 staketaxcsv/report_atom.py <wallet_address> --format all
    
    # Show CSV result for single transaction (great for development/debugging)
    python3 staketaxcsv/report_atom.py <wallet_address> --txid <txid>
    
    # Show CSV result for single transaction in debug mode (great for development/debugging)
    python3 staketaxcsv/report_atom.py <wallet_address> --txid <txid> --debug
  • Usage as staketaxcsv module

      >>> import staketaxcsv
      >>> help(staketaxcsv.api)
      >>>
      >>> address = "<SOME_ADDRESS>"
      >>> txid = "<SOME_TXID>"
      >>>
      >>> staketaxcsv.formats()
      ['default', 'balances', 'accointing', 'bitcointax', 'coinledger', 'coinpanda', 'cointelli', 'cointracking', 'cointracker', 'cryptio', 'cryptocom', 'cryptotaxcalculator', 'cryptoworth', 'koinly', 'recap', 'taxbit', 'tokentax', 'zenledger']
      >>>
      >>> staketaxcsv.tickers()
      ['ALGO', 'ATOM', 'BLD', 'BTSG', 'DVPN', 'EVMOS', 'FET', 'HUAHUA', 'IOTX', 'JUNO', 'KUJI', 'LUNA1', 'LUNA2', 'OSMO', 'REGEN', 'SOL', 'STARS']
      >>>
      >>> # write single transaction CSV
      >>> staketaxcsv.transaction("ATOM", address, txid, "koinly")
      ...
      >>> # write koinly CSV
      >>> staketaxcsv.csv("ATOM", address, "koinly")
      ...
      >>> # write all CSVs (koinly, cointracking, etc.)
      >>> staketaxcsv.csv_all("ATOM", address)
      ...
      >>> # check address is valid
      >>> staketaxcsv.has_csv("ATOM", address)
      True
    

Docker

See Docker to alternatively install/run in docker container.

Contributing Code

  • See Linting to see code style feedback.

  • Providing a sample txid will expedite a pull request (email [email protected], DM @staketax, etc.):

    # For a given txid, your PR (most commonly) should print different output before/after:
    python3 staketaxcsv/report_osmo.py <wallet_address> --txid <txid>
    

Reference

See README_reference.md: