Update Friday November 23rd, 2018
There appears to be some sort of mandatory thanking-type holiday going on in the US, so the community’s been a bit more quiet than usual over the past couple of days. I’ve had a solid week smashing away at the keyboard in front of several vim/tmux windows. The small matter of a release date being announced (on or around Jan 15th) has helped focus the mind on what absolutely, positively needs to be done by then, so I’ve altered course slightly. Here’s what happened:
The ‘plugin’ refactoring PR referenced last week is done, tested, and merged. There should still be a few things left to work out on that functionality, such as how to pass parameters into a plugin and whether/how to separate ‘plugins’ builds from the main code base. I’m hoping someone from the community interested in seeing wallet exchanges happen over their medium of choice will have a look at it, but otherwise I’m quite interested in integrating a keybase exchange when it can be appropriately prioritised.
Of more pressing concern now is BIP39 support and better handling of the wallet seed BIP 39 simply means “wallet recovery word lists”, but some changes to how we use the password and store seeds were also necessary to support this. This, I think, was the most obvious piece of user functionality missing from the command-line wallet, and will be in place once a cursory review or two is done and I push the big green merge button. Full details on what’s changing exactly are in the comments section of the PR, and the ever-growing wallet usage doc has been updated to reflect the changes.
I’ve also undertaken to start properly documenting all of the wallet API layers as an ongoing project. Putting together documentation, especially good documentation with code examples is quite painful (rust even tests documentation code examples to make sure they compile,) and much better done over time in short, focused sessions as opposed to marathons where you start taking shortcuts cause you’re sick of looking at it after 10 minutes. So more to come there over time, particularly on the more ‘inner’ layers of the wallet libraries, which I think are less likely to change now.
Just quickly on that, while the lower layer apis (
libwallet) are of decent enough quality now (or so I think), the wrapper portion that currently comprises the HTTP
owner api listener has more or less been thrown together over time and there’s no coherent JSON api into the various functions. This will need to be addressed at some stage, but it’ll probably be on lower priority than ensuring the command line wallet is ready for launch. I know quite a few people have been using it for their own projects, so if you have any suggestions for making the HTTP wrapper more coherent, let me know. Also keep in mind that when this happens everyone will likely need to update their applications to use a newer API.
Right, that’s it for now. Please return to your thankful bird slaughter or further fraying your relationships with your family or whatever it is you do over there.