added Helium wallet parser
- added parsing support for Helium wallet (HNT)
@nanonano can you review this change and accept this Pull Request? Thanks.
Hi @rsnodgrass, thanks for the new parser, please can you provide an example header/rows for each of the different transaction types so I can test it.
Hi @rsnodgrass, thanks for the new parser, please can you provide an example header/rows for each of the different transaction types so I can test it.
Aha! Good point. Maybe example file(s) should be checked into:
test/conv/examples/<parser>/
This would be useful for future unit tests/etc.
Thoughts? I can also attach an example here.
@nanonano I just added the following test file:
tests/conv/examples/helium/helium-fairspot.csv
Thanks! The plan is to migrate my private test suite (bash scripts for Mac/Linux and batch files for Windows) to pytest and add to the repo, but all takes time. It is closed source currently as it contains lots of personal data/csv exports.
For the moment, best to raise an issue (with label data file request) for any new parser required, and then attach examples to that so it's easy to track, and for others to see what's being worked on.
Did you run the conv tool output through the audit, does it balance with your helium wallet correctly?
Is the hnt_amount quantity gross or net of fees?
Love the suggestion of data file request label on new parsers, will do.
Great catch that hnt_amount was net of fees -- I added fees to gross up properly for the transaction records.
This balanced with my test wallet (for the Helium Explorer import). The only issue during report generation is the longer precision for HNT transactions this warning:
"WARNING 15-digit precision exceeded for Buy Quantity: 0.20460346000000001"
I understand Excel's built-in 15-digit limitation. However, this floating point issue is actually introduced in Helium Fairspot's export process. I added a Helium Explorer export file format support to helium.py and that works perfectly and shows that the Fairspot export precision is slightly off.
This balances. I have brought up the issue with Fairspot's floating point precision export issues on their Discord, so that should be fixed for users. The Helium Explorer transaction exports work perfectly fine.
This is ready for final test and merge.
Hi @rsnodgrass, do you have a Helium wallet address example I could use to test with? One which will work here: https://www.fairspot.host/hnt-export-mining-tax.
Here is for the official Helium explorer CSV export (click on Activity tab and then Export CSV). This is probably the preferred CSV file format to use for Helium tax files.
https://explorer.helium.com/accounts/14fHTWrP3guai42Vy8XXqpjKSzV3hKqRcxNZ5at5iUSJ7mcoMSe
For the FairSpot tax tool you can use wallet address 14fHTWrP3guai42Vy8XXqpjKSzV3hKqRcxNZ5at5iUSJ7mcoMSe.
Thanks @rsnodgrass, do you have another wallet address example which has payments send/received?
FYI, I checked in example test files for all the formats with each of the supported transaction types.
I’ll try tonight to find another wallet address with send/receive.
On Jun 23, 2021 at 3:51 PM, <Scott Green @.***)> wrote:
Thanks @rsnodgrass (https://github.com/rsnodgrass), do you have another wallet address example which has payments send/received?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub (https://github.com/BittyTax/BittyTax/pull/127#issuecomment-867209843), or unsubscribe (https://github.com/notifications/unsubscribe-auth/AAQY4XED7XBMYIXITBT6JA3TUJQQRANCNFSM45V2ROHQ).
-
See tests/conv/examples/helium for sample files for all the file formats for Helium.
-
For wallets with payments sent/received see this wallet I found:
https://explorer.helium.com/accounts/13JeXpVTzpceSwCJ5ejZxZr1mnrSCCmQbGYLV1uZRxL5x5zY1CY
Wallet address: 13JeXpVTzpceSwCJ5ejZxZr1mnrSCCmQbGYLV1uZRxL5x5zY1CY
Thanks!
Hi @rsnodgrass I re-worked the parser and added it here https://github.com/BittyTax/BittyTax/commit/45b21005014d3483094b7a1d5f6910d4ad600c45, I couldn't get your code to balance correctly. This version balances and also handles (in the case of fairspot) converting the USD prices to what ever local_currency is being used.
I noticed there is some difference in rounding between the wallet output and the explorer, take for example 13JeXpVTzpceSwCJ5ejZxZr1mnrSCCmQbGYLV1uZRxL5x5zY1CY.
Audit
Final Balances
Wallet Asset Balance
Helium HNT 0.97289443542017431
Audit
Final Balances
Wallet Asset Balance
Helium HNT 0.97289441
It's a shame the explorer only shows the balance to 2 decimal places.

FYI, there were useful updates to README.md in this change as well (for instance on the "hidden" config key local_currency).
That got lost with just replacing the helium parser.
I would suggest local_currency appear in the default bittytax.conf file as well.
FYI, there were useful updates to README.md in this change as well (for instance on the "hidden" config key local_currency).
That got lost with just replacing the helium parser.
Thanks, will be adding links in the updated documentation.
The current README reflects the latest pip install version, once updated for new release, the new features like local_currency support will be added. Good idea to add it to the default config.