Compare commits

..

No commits in common. "a44e0f145d9a801629964c31db31800d51967419" and "9a28bfbf64c5e8003696467ff25938c23d36815f" have entirely different histories.

4 changed files with 208 additions and 461 deletions

View File

@ -1,6 +1,6 @@
[package] [package]
name = "cryptools" name = "cryptools"
version = "0.9.3" version = "0.9.2"
authors = ["scoobybejesus <scoobybejesus@users.noreply.github.com>"] authors = ["scoobybejesus <scoobybejesus@users.noreply.github.com>"]
edition = "2018" edition = "2018"
description = "Command-line utility for processing cryptocurrency transactions into 'lots' and 'movements'." 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: 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. 1. The first account must be given number `1`, and each additional account must count up sequentially.
2. `Proceeds` is the value of the transaction (measured in the home currency), whether spent, received, or exchanged. 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.
It is **required** in order to properly calculate income/expense/gain/loss. It is **required** in order to properly calculate income/expense/gain/loss.
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. `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 $).
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. Crypto accounts may not go negative at any time.
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.) (Exception: crypto margin accounts may go negative.)
As you can see, most of the rules can generally be ignored. As you can see, most of the rules can generally be ignored.

View File

@ -8,8 +8,6 @@ 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. 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. 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. 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.
--- ---
@ -72,8 +70,6 @@ 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." 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. 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 ## Installation
1. `git clone https://github.com/scoobybejesus/cryptools.git` 1. `git clone https://github.com/scoobybejesus/cryptools.git`
@ -93,7 +89,7 @@ To skip the wizard, there are three requirements:
* The `-a` flag must be passed. * 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. * 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 spit out an error message and then exit/panic if your CSV input file is malformed. `cryptools` will panic and spit out an error message if your CSV input file is malformed.
The error message will generally tell you why. The error message will generally tell you why.
Consider using the python script (root directory of the repo) to sanitize your input file, 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. in case the file contains negative numbers in parentheses, numbers with commas, or extra rows/columns.
@ -107,12 +103,6 @@ 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. 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. 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 ## Development state
As of fall 2020, the code does not require additional features in order for it to serve the project's founder. 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