Pages:
Author

Topic: [C#] Watch Only Bitcoin Wallet. Support SegWit and Forks (V3.1) (Read 17014 times)

member
Activity: 174
Merit: 12
Could you post the compiled exe?
legendary
Activity: 1040
Merit: 2785
Bitcoin and C♯ Enthusiast
Tiny version update (V. 3.2.1). Fixed some bugs with the APIs and removed the dead ones. Now we have only two and both support Bech32 addresses.

PS. I may continue back-porting features to this project but my focus is going to be on my new project, Denovo, which would eventually be a much more advanced version of this project.
legendary
Activity: 1610
Merit: 1183
My suggestion is to add a column that has a value of "value at time of transaction", this would be extremely useful for, for instance, dealing with taxes when you have a ton of transactions. The value could be fetched from blockchain.info for instance, im not sure about their API but I have been using that site to manually check the value of BTC in fiat at the time a particular transaction happened. I don't know any software or website that does this so manually put it inside an .csv which is annoying. Would be cool if you could dump an export .csv from Core's client into your software and get this column neatly displayed.

I've added "price history" feature that will add a new field to each transaction based on its confirmation time that includes the USD value of that transaction at that time. It will use CoinDesk API since it is more common as an average price source.

The problem is that I'm not sure how to display this feature. For now you can only update this through the ForkBalance window and there is no displaying option but you could use your wallet.json file to analyze if you wanted. I'll probably do some major changes in this app as soon as I get some more free time, making things more automated and update everything in one place and skip repetition (since some parts are updated multiple times even if you already have the history).
Do you have any suggestions for displaying it? I was thinking a line chart showing the history.

As for bitcoin-core compatibility I have it in my TODO list but it is at the bottom of it.


Unfortunately im not familiar with the CoinDesk API. Im really looking forward to "fiat price at the time" information. A graph per each tx would be nice, but maybe a bit overkill for now. Just a simple column next to the txid that shows the value at the time of said tx would be incredibly useful for, like I said, filling taxes.

I would make txid's clickable and an explorer of choice would be opened because sometimes you want to check something and you like the layout of a certain explorer but this just comes to personal preference in how to design the program.

If importing the csv is not near, then it may be a bit of a PITA for those that have tons of transactions, one would need to import each tx one by one and in chronological order but I guess it's better than nothing for now, since all I have right now is manually checking each tx on an explorer id which is hell (btw im talking about having the entire tx history imported in your program with all the data, not just current watch only addresses with funds, so you would have a window for watch only current funds and another window where you can import your entire wallet.dat tx history so you can check those things without having to fire the resource consuming full client in your airgapped computer or wherever you store tx history)
legendary
Activity: 1040
Merit: 2785
Bitcoin and C♯ Enthusiast
My suggestion is to add a column that has a value of "value at time of transaction", this would be extremely useful for, for instance, dealing with taxes when you have a ton of transactions. The value could be fetched from blockchain.info for instance, im not sure about their API but I have been using that site to manually check the value of BTC in fiat at the time a particular transaction happened. I don't know any software or website that does this so manually put it inside an .csv which is annoying. Would be cool if you could dump an export .csv from Core's client into your software and get this column neatly displayed.

I've added "price history" feature that will add a new field to each transaction based on its confirmation time that includes the USD value of that transaction at that time. It will use CoinDesk API since it is more common as an average price source.

The problem is that I'm not sure how to display this feature. For now you can only update this through the ForkBalance window and there is no displaying option but you could use your wallet.json file to analyze if you wanted. I'll probably do some major changes in this app as soon as I get some more free time, making things more automated and update everything in one place and skip repetition (since some parts are updated multiple times even if you already have the history).
Do you have any suggestions for displaying it? I was thinking a line chart showing the history.

As for bitcoin-core compatibility I have it in my TODO list but it is at the bottom of it.
legendary
Activity: 1610
Merit: 1183
My suggestion is to add a column that has a value of "value at time of transaction", this would be extremely useful for, for instance, dealing with taxes when you have a ton of transactions. The value could be fetched from blockchain.info for instance, im not sure about their API but I have been using that site to manually check the value of BTC in fiat at the time a particular transaction happened. I don't know any software or website that does this so manually put it inside an .csv which is annoying. Would be cool if you could dump an export .csv from Core's client into your software and get this column neatly displayed.
legendary
Activity: 1040
Merit: 2785
Bitcoin and C♯ Enthusiast
Speaking of forks, does the software support Bitcoin Cash? Bitcoin Gold? Etc?
The way the forks balance goes is that you can check your balance on a specific block height. So everything is based on bitcoin blockchain not each of these forks' blockchains and it can support anything.
In other words the software can get your transactions and the block height each of these transactions were included in and based on that tells you how much of these fork coins you have.

If you just wanted to see how much balance you have on different chains just use a website like this one: http://www.findmycoins.ninja/

Can it be used on Linux, such as Debian/Ubuntu?
Unfortunately no.
sr. member
Activity: 296
Merit: 250
Questions:
Speaking of forks, does the software support Bitcoin Cash? Bitcoin Gold? Etc?
Can it be used on Linux, such as Debian/Ubuntu?

Thanks.
legendary
Activity: 1040
Merit: 2785
Bitcoin and C♯ Enthusiast
The list of address is simply a GridView. You can select address(es) and simply press Delete on your keyboard to remove them. Press Ctrl+A to select all of them and press Delete on your keyboard.

By the way the wallet file is stored in your "My Documents" path inside a folder called "C.E. Watch Only Bitcoin Wallet":
https://github.com/Coding-Enthusiast/Watch-Only-Bitcoin-Wallet/blob/master/WatchOnlyBitcoinWallet/Services/DataManager.cs#L12
full member
Activity: 199
Merit: 102
Thanks again for the bug report. This commit should fix it:
68e04c9e17ec48b6e0a3634da274086c094c68b6

Thank you, that works better now.

If we want to delete all addresses and start over, is there a database file to delete? Perhaps this could be added to the info or the option to start over could be added to the dropdown menu.

Thanks again.
legendary
Activity: 1040
Merit: 2785
Bitcoin and C♯ Enthusiast
Thanks again for the bug report. This commit should fix it:
68e04c9e17ec48b6e0a3634da274086c094c68b6
full member
Activity: 199
Merit: 102
Thanks for your reply!

The new import worked for me, although I have only imported one address Smiley

Just to let you know, when I go to the "Fork Balance Window" and click on "Update Txs" I get a crash: System.OverflowException: 'Value was either too large or too small for an Int32.'

(This seems to happen regardless of whether a specific fork has been chosen from the drop-down or a custom block height has been entered.)
legendary
Activity: 1040
Merit: 2785
Bitcoin and C♯ Enthusiast
Released version 3.1.0
  • Added two ways for importing addresses in bulk: from file and from text. Addresses need to be separated by a new line (1 address per line).

Preview of the "Import From text" window:
legendary
Activity: 1040
Merit: 2785
Bitcoin and C♯ Enthusiast
Where is it "released"? I do not see 3.0.0 at https://github.com/Coding-Enthusiast/Watch-Only-Bitcoin-Wallet/releases (I guess I should just download latest source)

Releases are basically doing the same thing as "Clone or download" button at this link: https://github.com/Coding-Enthusiast/Watch-Only-Bitcoin-Wallet/archive/master.zip but at different versions (times). so yeah just use "Clone or download" button.
I can add additional files like binaries, but since I am not doing that I didn't see any point in releasing more versions after 1.1.0

Thanks for the help on my previous Q's - I'm looking forward to the bulk import option!

No problem. I've added "bulk import option". Just need to bump the version and update ReadMe file.
full member
Activity: 199
Merit: 102
Released version 3.0.0
  • Added a new block explorer (the only API that supports Bech32 address format) called Blockonomics.
  • The wallet now supports Bech32 SegWit address format, uses Blockonomics api for their balances explicitly.
  • Wallet also has verification capabilities for Bech32 format.
  • Also moved verification classes (Base58 and Bech32) to a new assembly and added some unit tests.
Where is it "released"? I do not see 3.0.0 at https://github.com/Coding-Enthusiast/Watch-Only-Bitcoin-Wallet/releases (I guess I should just download latest source)

Thanks for the help on my previous Q's - I'm looking forward to the bulk import option!
legendary
Activity: 1040
Merit: 2785
Bitcoin and C♯ Enthusiast
Released version 3.0.0
  • Added a new block explorer (the only API that supports Bech32 address format) called Blockonomics.
  • The wallet now supports Bech32 SegWit address format, uses Blockonomics api for their balances explicitly.
  • Wallet also has verification capabilities for Bech32 format.
  • Also moved verification classes (Base58 and Bech32) to a new assembly and added some unit tests.
legendary
Activity: 1040
Merit: 2785
Bitcoin and C♯ Enthusiast
When checking the balance of addresses, both in fork balances and main page,  I am receiving the error "Value was either too large or too small for an Int32." Any suggestions to fix this?
Thanks for the bug report. This commit should fix it:
https://github.com/Coding-Enthusiast/Watch-Only-Bitcoin-Wallet/commit/263665deb3ce3543fa7ab30ec46329837e25fe5c

Also, is there any way to import bulk addresses (if not through gui then by editing a file)?
Working on it. Will release soon.
full member
Activity: 199
Merit: 102
Cool project! It's encouraged me to install Visual Studio to try it, and follow the progress.

When checking the balance of addresses, both in fork balances and main page,  I am receiving the error "Value was either too large or too small for an Int32." Any suggestions to fix this?

Also, is there any way to import bulk addresses (if not through gui then by editing a file)?

Thanks
legendary
Activity: 1040
Merit: 2785
Bitcoin and C♯ Enthusiast
I have a plan to either
- add multiple wallet support, for example you can switch between your bitcoin, bitcoin cash, litecoin,... wallet each a different file with different addresses.
- or make this like a portfolio kind of thing, add something like "addressType" variable and keep everything inside one file
Then check balances from different block explorers for different chains.

Name of the project (Watch Only Bitcoin Wallet doesn't exactly go with this addition, but I think it may be a useful addition.
newbie
Activity: 40
Merit: 0
I don't want to enter the thread, but WalletChecker is missing https - therefore I would not use it. Should by easy to fix by them.
Excellent project for learning.

On a side note; I have been using this web based tool to keep track of my paper wallets across multiple forks. No private keys and looks perfect on my phone. It also links out to the chain's corresponding explorer for further balance verification.

WalletChecker.com
Pages:
Jump to: