No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Latest commit 30a654d Dec 2, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src Add files via upload Nov 29, 2018
LICENSE Initial commit Nov 28, 2018
README.md Update README.md Dec 1, 2018
pom.xml Add files via upload Nov 29, 2018

README.md

Crypto FX Wallet



What is Crypto FX Wallet?

Crypto FX Wallet is a layer working above the command line wallet of a crypto node. It handles just a limited subset of all the available commands.
It should work on Bitcoin and all the cryptocoins derivated from it, like Bitcoin Cash, ZCash, Bitcoin Gold... maybe for BCHABC and BCHSV too.



Why Crypto FX Wallet?

Crypto FX Wallet started as a personal project to see my BitcoinZ wallet using a GUI.
Previous to the fork in June 2018, there was a graphical Java Swing wallet based on a ZenCash project, but after the fork it didn't work anymore for me. Of course, I could do the usual operations through the command line, but I wanted something faster and less prone to errors.
The project is based on JavaFX 11 and the Eclipse IDE and allows to change some features (explained below) avoiding the process of rebuilding everything.



What do I need to run Crypto FX Wallet?

A proper configuration to run a crypto node

This is basically a layer over the command line of a crypto node, so you should follow the official instructions to set up your desired node.
https://github.com/bitcoin/bitcoin (for Bitcoin Core),
https://github.com/btcz/bitcoinz (for BitcoinZ),
etc.

Java 11

Download and install the last Java SE Development Kit 11 for your OS.
https://www.oracle.com/technetwork/java/javase/downloads/index.html

JavaFX 11

Download JavaFX 11 for your OS and unzip it in a known folder.
https://gluonhq.com/products/javafx/

A proper configuration of the 'wallet.properties' file

You can follow the examples uploaded in the Release tab, but here you can get a glimpse about what every line means:

node.path: absolute path to the executables of the node, usually inside the 'src' folder.
javafx.sdk.path: <folder_where_you_unzip_javafx>/lib.
blockchain.explorer.blockcount.api: URL to some web service providing the total amount of blocks for the crypto coin.
time.zone: to use the same time zone as the blockchain to follow the transaction history.
coin.code: the code of the cryptocoin. ZEC for ZCash, LTC for Litecoin, etc.
start.command: executable file inside node.path to start the node.
cli.command: executable file inside node.path to query to the blockchain.
system.command: system interpreter. 'sh' on linux distros, 'cmd.exe' in Windows.
system.command.parameter: parameter going with the system interpreter. '-c' in linux distros, '/c' in Windows.
encode: to get a proper string configuration according to the desired foreign language.
foreign.language: Second language written in English. If you want to replace the second language, let's say to German, then you should put German here.
two.kind.of.addresses: true if there are Z and T addresses; false, otherwise.
donate.address: if you are moving to another crypto coin, let's say X Coin, and you want to put one of my X Coin addresses here.

A proper configuration of the 'command.properties' file

You should be able to replace the BitcoinZ commands for the ones of the other crypto coin. They are very similar, but they are not the same.
You can find them inside of the src folder of the crypto node.



How should I run Crypto FX Wallet?

You can use the package for your OS in the tab Releases or build the jar file from the source code and run them with the corresponding parameters to call the JavaFX libraries, but I advise you to use the scripts to make it easier.
I couldn't test it in Mac OS, but it should be able to run it too.



How should I construct Crypto FX Wallet from the source code?

Maybe it is not the best advice, but it was the easier way to me. The code was managed from an Eclipse IDE, so I have created the jar files doing the following from Eclipse:
File->Export...->Java->Runnable JAR file->Extract required libraries into generated JAR->Finish.
It is a Maven project, but I have used Maven just to manage the dependencies. I didn't find a way to set up a convincing building task. Maybe in the next release.
If you want to run the jar file directly, remember to run it with the required parameters to <javafx_sdk_folder>/lib. That is what the included scripts are for.



How should I use Crypto FX Wallet?

After the application is started you can see in the top of the window a bar menu with options to backup or import the addresses of your wallet. The backup will save a file called "cryptoBackup.txt" in the folder you choose. To import an addresses you need to choose a file with an UTF-8 encode from your file system (it doesn't matter its name or its extension), but the application will expect to find the character '-' in every line. If the left side of the character '-' starts with a z, then the address to import is a Z address. If the left side of the character '-' starts with anything else, then it tries to import the transparent address handled by the wallet. The right side of the character '-' should be the private key of the address.
Next I show you a few valid lines you can set in the file, replacing <private_key> by your own private key:

-<private_key> (for T address)
z-<private_key> (for Z address)
zzzzzasddss-<private_key> (for Z address)
3*/3/\4re-<private_key> (for T address)

Below the bar menu, in the left side, there are three panels.
The top panel shows the balance of the wallet.
The middle panel shows the synchronization of the node respect to a full synchronized node.
The bottom panel shows the balance of the addresses of your wallet and allows to send coins to another addresses.
To send money you should choose an Address from the table 'My addresses', set a destination address in the corresponding text field, put the amount to send in the corresponding text field and click on the send button.
Donate button is just a stupidity showing an animation, but its only utility is to change the destination address to one of my addresses. Next you should click on the send button if you really want to donate.

The right side of the application shows the last 100 transactions associated with addresses of the wallet.



Flexibility of Crypto FX Wallet

If you are not a coder you can do several changes to the application without rebuilding the whole thing.

The video of the splash screen is boring

You can change it for one of your election, but remember to call it splashScreenVideo.mp4 and to put it inside the folder resources.

I would like to change some colors, fonts, etc.

You can edit the files style.css and messagePopupStyle.css inside the resources folder to do it. I suggest you to keep an eye on the .fxml files in the source code to get a better understanding about what you are changing.

I would like to use another English sentences in the application

Yoo should edit the english.properties file inside the resource folder.

I don't want Spanish as a second language

You can edit the foreign.properties file with your own language.

I don't want to have the logo from BitcoinZ inside the application

Change the images background.png and mainLogo.png for your desired images. Remember to keep the same names and keep in mind that mainLogo.png is hide when the synchronization is not of 100%. So play with that.

I would like use it with another crypto coin

You can do it modifying the files wallet.properties and command.properties as it's explained above.

Remember not to change the left side of the '=' in the .properties files, just the right side

The application is expecting to find those name.

I would like to paint the arrow of pink

Ok, do it.



Donate

Buy me a building, an helicopter, a yacht, etc.

BTC: t1NmxPMWY8EPELxAKRnHi9NGW9NWNypzLzo
ETH: 0xe897cF267CE2bad3C571940F5a1176Ddcf0819f7
Any token based on ETH like OMG, USDT, TUSD, BTM, PAY, etc.: 0xe897cF267CE2bad3C571940F5a1176Ddcf0819f7

Pay some of my vices like alcohol, cigarettes, casino, etc.

BTCZ: t1NmxPMWY8EPELxAKRnHi9NGW9NWNypzLzo
XMR: 45jzGRAM3pAJ19fdtVagrTUzwfpL6EbKo7bvK8jybRJaQcpQYXd4pWE7DKurUvq7pe7w2TbnEatuWAw7ArfRu1Jd33oBWTb
IOTA: T9LERQPWWYOUFPJKQPRSWUTJWOCG9TLPMOROFNZV9IGYQEPINZPGUFFGYFPREMWFWATZNTQFNYMEYMMEAUDECTMZMW
ETC: 0x009e9791b8da25bBda05aD0b92f83615a623D544
BTG: GNDeARn5SG9EpZKCWqWT1FAyp8DjtTRtyx
QTUM: QRoxfYMNadqeQmtNWhajVjX5JgRgZczaC9
DOGE: DDKL7UuK6jEATb87BMxRP5bWJi18soqKD3
XLM: GA2BI5XZ6DXITCF36TSPFTOACUONI2524Z4IF2CGWR7CRIPN6MRBC7ZT

Think about the hungry children (my hungry children)

ZEC: t1ZzxhxiXcUWsaSCTUzKxBNepq5ScBQsFLK
BCH: 1Lw5m8KVU9ww9mpK92mvAzgu1xXhygDQLp
LTC: LNAGuJFRSaahaGYi7cGAbYfdANtwAw6BcS



FAQ

I'm getting this error 'Error: JavaFX runtime components are missing, and are required to run this application' when I try to run the application from my IDE or running directly the executable jar file.

Probably, you have forgotten (or mistyped) to set the parameters to the absolute JavaFX SDK 11 path.
If you are trying to run the jar file directly, then you should put the following in between java -jar and cryptoFXWallet.jar.
If you are trying to run it from your console, then you should add the following in the VM arguments options (Run as...->Run Configurations...->Arguments->VM Arguments for the Eclipse IDE):

--module-path=<javafx_sdk_folder>/lib --add-modules=javafx.controls --add-modules=javafx.fxml --add-modules=javafx.media


That's why run it using the script is easier once you set the required absolute paths there.

The update of Crypto FX Wallet is too slow

The wallet will look for updates every minute. If you do an operation that should be super fast (to create a new address, for example), hopefully it will be visible in the next updating.

Every kind of transfer from my Z address to another address set the balance of my Z address almost to zero

Don be panic! In a few minutes it will be normalized again. It's a weird behavior, at least of BitcoinZ, that I don't know why is happening.

There are some things I can't do with Crypto FX Wallet

Crypto FX Wallet is just a subset of the command line wallet, handling the more relevant commands to me.

Is Crypto FX Wallet safe?

I guess it should be as safe as your command line wallet, but I'm not a security expert, so I can't confirm that. Use it at your own risk.

I want to pay you with another crypto coin, not listed before, what should I do?

Let me know it and I'll be glad to create a new wallet for that cryptocoin.

I want to hire you, how can I contact you?

Ok, then send me a direct message through twitter to @donlaiq.

I want to follow you in twitter. Is @donlaiq your twitter?

Why would you do that? There's nothing interesting to follow.

Your English sucks. Do you think to work on it?

Yes, definitely.

Your application sucks too.

Well... you'll get a proper discount with your next donation.



License

Crypto FX Wallet is released under the terms of the MIT license. See https://opensource.org/licenses/MIT.