Compare commits

...

2 Commits

Author SHA1 Message Date
scoobybejesus a44e0f145d README: small updates. 2020-11-27 17:55:23 -05:00
scoobybejesus 3c7e01a42c Documented how create_lots_and_movements() works.
Completed documenting create_lots_and_movements()
2020-11-27 17:34:57 -05:00
4 changed files with 462 additions and 209 deletions

View File

@ -1,6 +1,6 @@
[package]
name = "cryptools"
version = "0.9.2"
version = "0.9.3"
authors = ["scoobybejesus <scoobybejesus@users.noreply.github.com>"]
edition = "2018"
description = "Command-line utility for processing cryptocurrency transactions into 'lots' and 'movements'."

View File

@ -60,11 +60,11 @@ The truth is that the input file is simple to maintain once it is brought curren
The rules for successfully preparing and maintaining the input file can generally be summarized as follows:
1. The first account must be given number `1`, and each additional account must count up sequentially.
2. Margin quote account `ticker`s must be followed by an underscore and the base account ticker (i.e., `BTC_xmr`).
3. `Proceeds` is the value of the transaction (measured in the home currency), whether spent, received, or exchanged.
2. `Proceeds` is the value of the transaction (measured in the home currency), whether spent, received, or exchanged.
It is **required** in order to properly calculate income/expense/gain/loss.
4. `Proceeds` must have a period as a decimal separator (`1,000.00` not `1.000,00`) and must not contain the ticker or symbol (USD or $).
5. Only home currency accounts can have negative balances. Crypto accounts may not go negative at any time.
3. `Proceeds` must have a period as the decimal separator (`1,000.00` not `1.000,00`) and must not contain the ticker or symbol (USD or $).
4. Margin quote account `ticker`s must be followed by an underscore and the base account ticker (i.e., `BTC_xmr`).
5. Only home currency accounts can have negative balances. Non-margin crypto accounts may not go negative at any time.
(Exception: crypto margin accounts may go negative.)
As you can see, most of the rules can generally be ignored.

View File

@ -8,6 +8,8 @@ This is a command-line tool that calculates income, expenses, realized gains, re
and holding period from cryptocurrency activity and denominates the results in the user's home currency.
The default home currency is USD, but any currency can be substituted.
This tool is probably most useful for filling out a tax return or making tax planning decisions.
It is already mildly difficult to do the prep work (CSV input file, below) for using a tool like this,
so a person wanted this for a quick fix may be disappointed.
---
@ -70,6 +72,8 @@ The program is right, and your data is right, but Excel modified your data, so t
The solution is to have Excel already open, then in the ribbon's Data tab, you'll import your CSV file "From Text."
You'll choose Delimited, and Comma, and then highlight every column and choose Text as the data type.
* Currently, does not build on Windows due to the Termion crate (used for the print menu).
## Installation
1. `git clone https://github.com/scoobybejesus/cryptools.git`
@ -89,7 +93,7 @@ To skip the wizard, there are three requirements:
* The `-a` flag must be passed.
* The configuration settings you require are the same as default, or you set the appropriate environment variables, or you have a `.env` file.
`cryptools` will panic and spit out an error message if your CSV input file is malformed.
`cryptools` will spit out an error message and then exit/panic if your CSV input file is malformed.
The error message will generally tell you why.
Consider using the python script (root directory of the repo) to sanitize your input file,
in case the file contains negative numbers in parentheses, numbers with commas, or extra rows/columns.
@ -103,6 +107,12 @@ If you wish to skip the wizard but require changes to default settings, copy `.e
The `.env` file must be placed in the directory from which `cryptools` is run or a parent directory.
Alternatively, the respective environment variables may be set manually.
#### Pro Tip
Hop into `/usr/local/bin`, and run `ln -s /path/to/cryptools/target/debug/cryptools cryptools`
and `ln -s /path/to/cryptools/clean_input_csv.py clean_input_csv` to be able to run the sanitizer
script and `cryptools` from the directory where you keep your CSV Input File.
## Development state
As of fall 2020, the code does not require additional features in order for it to serve the project's founder.

File diff suppressed because it is too large Load Diff