Decred J Wallet -- Java Gui Wallet

Discussion in 'User Projects' started by SG-O, Jan 30, 2016.

  1. 2017/12/15 - Decred v1.1.2 released! → Release Notes  → Downloads
  1. SG-O

    SG-O Member
    Developer

    Jan 13, 2016
    104
    86
    Male
    Software Dev
    Milky Way
    Another update is out that introduces some new features including the ability to change the transaction fee and receive payments via URI and QR Code.

    [​IMG]

    If you have enabled automatic updates in Version a2 and later you will be prompted to do so. If you are not comfortable with it updating itself, you can also download it manually.
    Please note that the automatic update of the official Decred binaries currently only works on Windows when auto update is enabled!
    For this version to run you will need the latest Decred version.
     
    tacotime, Emilio Mann, Estb and 2 others like this.
  2. SG-O

    SG-O Member
    Developer

    Jan 13, 2016
    104
    86
    Male
    Software Dev
    Milky Way
    I just have punlished my DecredJWallet on GitHub so all of you can check it and build it yourself.
    https://github.com/SG-O/DecredJWallet/
    There is still a LOT of ugly or non commented code, but I really wanted to release this as soon as possible so all of you can be assured that the code has no hidden features that steal from you.

    Any contribution would also be a great thing.
     
  3. BrandonReynolds

    BrandonReynolds Jr. Member

    Dec 28, 2015
    47
    36
    Male
    Software Engineer
    SG-O: I have sort of left my windows UI behind with the Paymetheus project being ported at the moment. I might jump in and help if you'd like. Do you have a list of short-term enhancements you would like to add?
     
  4. SG-O

    SG-O Member
    Developer

    Jan 13, 2016
    104
    86
    Male
    Software Dev
    Milky Way
    Its great to here that you would like to help! There is still a lot of stuff missing:
    Creating a wallet from the GUI (GUI is finished, but I can't create the wallet in dcrwallet, because it relies on terminal password input which I can't emulate).
    Sending to multiple addresses with one transaction. (That shouldn't be too hard)
    Multiple accounts (Involves rewriting and changing a lot of code)
    Translation (at this time all strings have been hard coded to speed up development, so that's a lot of boring work)
    Better documentation (At this time a lot of code has not been documented very well or at all. Only the most important methods have been)
    Add code for unpacking tar.gz files to allow updates of the decred binaries for other platforms than Linux. (This shouldn't bee too hard as it would be easily integrated into an existing code skeleton)
    Move the starting of the decred executable into a separate class and add unlocking of a wallet with public key encryption.

    And as always I an happy to get new suggestions
     
    tacotime likes this.
  5. CodyF86

    CodyF86 New Member

    Feb 14, 2016
    32
    1
    Male
    #25 CodyF86, Feb 16, 2016
    Last edited: Feb 16, 2016
    A suggestion if I may, since you can't emulate terminal input. Either add the wallet creator thing everyone was using before launch to create the wallet into your package and have your program run that to create a wallet, then pass the terminal command to import it via passphrase/hex key.

    Or the same as above, but add the actual code the wallet creator used to generate a new wallet.

    Edit: nm here it is. This may make it easier on you.

    https://github.com/decred/dcraddrgen

    Use that or the code from that to generate an address then import it via passphrase/hex key.
     
  6. SG-O

    SG-O Member
    Developer

    Jan 13, 2016
    104
    86
    Male
    Software Dev
    Milky Way
    #26 SG-O, Feb 17, 2016
    Last edited: Feb 17, 2016
    Generating the keys is not the problem. Generating the initial database in which dcrwallet relies, a modified version of BoldDB (https://github.com/boltdb/bolt) which is only available for go, not for Java, is the real problem. Rewriting the database implementation is not an option.
    Another thing you mentioned would be to start the wallet and then import the key via RPC. That is not possible, because dcrwallet won't even start until you create a wallet with the --create command (https://github.com/decred/dcrwallet/blob/master/config.go#L500-L512).
    None of these workarounds should be necessary, as implementing a method to create a wallet from the command line would in my opinion be quite easy, as most of the code already exists in a slightly altered form.
     
    tacotime likes this.
  7. CodyF86

    CodyF86 New Member

    Feb 14, 2016
    32
    1
    Male
    #27 CodyF86, Feb 17, 2016
    Last edited: Feb 17, 2016
    Yeah a command line implementation would be best, hopefully that will get added soon. I was just throwing the only thing that popped into my head out there, wasn't sure if it was even doable in it's current state. :)

    Python is the only thing I'm really good at, messing around with the command line wallet and node control almost make me want to find something to write in python. This whole project actually has me excited, compared to most crap altcoins that offer no new technology.
     
  8. SG-O

    SG-O Member
    Developer

    Jan 13, 2016
    104
    86
    Male
    Software Dev
    Milky Way
    I'm sure there will be an update soon.
    If you'd like to look at my code you can do it on github, it hasn't been documented very well, but most of the code is self explanatory. If you'd like to build it yourself, get IntelliJ IDEA Community edition (Get it here for free: https://www.jetbrains.com/idea/download/). Also you will need to install the free JDK 8 (http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html).
     
    tacotime likes this.
  9. skavi

    skavi New Member

    Feb 18, 2016
    1
    1
    Male
    Nice work, I just started with setting up the internationalization.

    Don't have much time the coming days but I expect to be able to create a pull request this Sunday.
     
    SG-O likes this.
  10. SG-O

    SG-O Member
    Developer

    Jan 13, 2016
    104
    86
    Male
    Software Dev
    Milky Way
    That would be awesome! There will be an update to the main method today or tomorrow, so maybe wait for those changes.
     
    tacotime likes this.
  11. Layle

    Layle New Member

    Jan 16, 2016
    17
    0
    Male
    Hey, nice tool, but i sent 1 DCR and it sent all DCRs...
     
  12. SG-O

    SG-O Member
    Developer

    Jan 13, 2016
    104
    86
    Male
    Software Dev
    Milky Way
    Hey there,

    I think what you describe has nothing to do with my GUI, it happens in the official Decred wallet. With every transaction, you send the amount you want to transfer to your payee to the correct address. Because all input coins have to be spent, the rest of the unspent coins are being sent back to you. For this second transfer the official wallet creates a new address to which your rest funds will be sent.This new address is generated from your seed.For a short period of time your wallet balance will be zero in the Gui as the transaction has not yet been verified. After a certain amount of blocks have been processed your new wallet balance will be shown again.

    If this is NOT what happened here, please send me a PM and I will try to resolve this issue as fast as possible.
    Also I added to my to-do list that there has to bee a display of unverified funds in your wallet.
     
    tacotime likes this.
  13. CodyF86

    CodyF86 New Member

    Feb 14, 2016
    32
    1
    Male
    #33 CodyF86, Feb 22, 2016
    Last edited: Feb 23, 2016
    edit: Blah weird way to display change addr back.
     
  14. David

    David Sr. Member

    Jan 22, 2016
    364
    207
    Male
    USA
    Hey @SG-O, I like what you've done so far. Viewing transactions worked perfectly for me on Windows 8.1 x64. I didn't try to generate or receive any funds so I can't comment there. I have one question though... how did you implement the transaction history? I would assume it was through the command "dcrctl --wallet listtransactions default 1000" (for 1000 transaction logs), but that command in the CLI shows "-4: Transactions are not yet grouped by account". I'd like to get the same output in the CLI as you somehow called in your program.
     
  15. SG-O

    SG-O Member
    Developer

    Jan 13, 2016
    104
    86
    Male
    Software Dev
    Milky Way
    #35 SG-O, Feb 23, 2016
    Last edited: Feb 23, 2016
    Nice to hear that you liked my software! The transaction history uses the listtransactions command but decred has no implementation to get the transactions from a specific account (that's what the error said) so at this moment I list all transactions from all accounts. the correct command is for example:
    "dcrctl --wallet listtransactions * 1000 0"
    You can see all the commands used to interact with the decred binaries here:
    https://github.com/SG-O/DecredJWallet/blob/master/src/main/java/comunicationStrings.java#L19-L21
     
    tacotime and David like this.
  16. David

    David Sr. Member

    Jan 22, 2016
    364
    207
    Male
    USA
    Perfect, thank you! I did take a look through the source code before asking you to see if I could find it but I guess I'm not familiar enough with JS to recognize it. :eek: Thanks again!
     
  17. SG-O

    SG-O Member
    Developer

    Jan 13, 2016
    104
    86
    Male
    Software Dev
    Milky Way
    I just released a new version that has some new stuff and a LOT of improvements:

    New completely rewritten main interface
    You now can use wallets with an encrypted public key
    All forms now have a proper icon
    You now can see your unconfirmed balance
    A new class that starts and monitors the Decred binaries.
    Completely rewritten implementation of the internal representation of coins.
     
    tacotime and kaida like this.
  18. tacotime

    tacotime Hero Member

    Dec 7, 2015
    410
    1,133
    @SG-O, this is excellent work! I've made a new section on the forum called User Projects and moved this project there. I figured we could move projects that mature from other sections of the forum into this area and give them more exposure. Forgive the x-post, as I'm posting this to all the newly created user projects.

    Let me know if you have a Twitter handle, so the project can create awareness for you that way too. Regardless, will tweet about them and direct people here. Would love to drive some interest into these to help them mature even further.
     
  19. SG-O

    SG-O Member
    Developer

    Jan 13, 2016
    104
    86
    Male
    Software Dev
    Milky Way
    Thanks for the great feedback! My Twitter handle is @OfficialSgo. Could you please wait until I release the latest version this afternoon? It introduces a lot of new features as well as fixing some bugs and improving performance.
     
    tacotime likes this.
  20. tacotime

    tacotime Hero Member

    Dec 7, 2015
    410
    1,133
    Definitely, just let me know, and I'll get on it! I look forward to it.
     

Share This Page