Coding-Enthusiast / FinderOuter

Easy to use bitcoin recovery tool to fix damaged private key, mini-private key, address, BIP38 encrypted key, mnemonic (seed phrase), BIP-32 derivation path, Armory backups, recover passwords and more
MIT License
283 stars 107 forks source link

API / command line version #43

Closed MonkishMan closed 2 years ago

MonkishMan commented 2 years ago

hi is there a command line version of the software? or some kind of API? I would like to be able to run multiple searches without using the user interface.

Coding-Enthusiast commented 2 years ago

No. Because the point of this project is to simplify everything so that there is no need for command line.
If you want to recover different keys you have to do it one by one, otherwise if it is same key with different changes it could be implemented if you explain what exactly you are trying to do.

MonkishMan commented 2 years ago

I have a partial key and need to try different combinations. I don't know which bits are correct so I need to run different combinations. I'm trying manually through the user interface but it's really time consuming. If I could automate it with code it would really help.

MonkishMan commented 2 years ago

I suppose you have unit tests and I could possibly write some similar code to interact with the main library?

Coding-Enthusiast commented 2 years ago

You could write a loop and call Find method (works on any of the service classes) repeatedly with different keys.

MonkishMan commented 2 years ago

That would be great. Thanks

MonkishMan commented 2 years ago

hi, im struggling to understand the code here, I can call the 'Find' method, but I don't understand where the results are meant to be? Sorry I'm more of a backend dev so this reactive stuff is pretty new to me. does the report object not contain the results of the search? its seems to get to the right states using sample keys i feed it, but I just dont see how to output the results its found.

Coding-Enthusiast commented 2 years ago

The search will continue until a correct result is found or it reaches the end. The FoundAnyResult property on IReport instance will be set to true if anything was found; otherwise to false. Since this is UI focused, it will simultaneously print the result by setting the Message property.
Since report is a dependency you can write your own class and inject its instance so that instead of setting Message you do something else like writing to a file or doing another check depending on what you need.

MonkishMan commented 2 years ago

ok will give it a go, thanks

MonkishMan commented 2 years ago

Thanks for your help, I was able to cobble something together that did what I needed. Managed to get it to loop around and try many combinations with a single click of a button.