62
doc/developer.md
Normal file
62
doc/developer.md
Normal file
@@ -0,0 +1,62 @@
|
||||
# Developer Docs for SDL
|
||||
|
||||
Random stuff that is useful for devs.
|
||||
|
||||
# Checking return values from litelib
|
||||
|
||||
There are 3 functions written in Rust that live in lib/src/lib.rs :
|
||||
|
||||
* `litelib_initialize_new`
|
||||
* create a new client/connection and brand new wallet
|
||||
* `litelib_initialize_new_from_phrase`
|
||||
* create a new client/connection from a seedphrase (restoring from seedphrase)
|
||||
* `litelib_initialize_existing`
|
||||
* create a new client/connection with an already existing wallet
|
||||
|
||||
The Rust code calls it a "LightClient" while the C++ of SDL calls it a "Connection".
|
||||
|
||||
When `litelib_initialize_existing` or `litelib_initialize_new_from_phrase` return successfully, they return the string "OK" (which is not JSON).
|
||||
|
||||
When `litelib_initialize_new` returns successfully it returns JSON that looks like :
|
||||
|
||||
```
|
||||
{"seed":"seed","birthday":birthday}
|
||||
```
|
||||
|
||||
where "seed" is a 24 word seed and birthday is an integer block height.
|
||||
|
||||
So when calling these 3 functions, which looks almost the same in the calling code, the code which checks if they worked will be different, depending on what each returns on success.
|
||||
|
||||
When checking the return value of `litelib_initialize_existing` or `litelib_initialize_new_from_phrase` it should look like :
|
||||
|
||||
```
|
||||
QString reply = "";
|
||||
try {
|
||||
char* resp = litelib_initialize_new_from_phrase(...);
|
||||
reply = litelib_process_response(resp);
|
||||
} catch {
|
||||
...
|
||||
}
|
||||
if (reply.isEmpty())) {
|
||||
// litelib_initialize_new_from_phrase failed
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
Yes, `isEmpty()` is not a very strict check, we could actually check for valid-looking JSON (starts with a { and ends with a }) as well as making sure the keys "seed" and "birthday" exist. Please implement this.
|
||||
|
||||
When checking the return value of `litelib_initialize_new` it should look like :
|
||||
|
||||
```
|
||||
QString reply = "";
|
||||
try {
|
||||
char* resp = litelib_initialize_new(...);
|
||||
reply = litelib_process_response(resp);
|
||||
} catch {
|
||||
...
|
||||
}
|
||||
if (reply.toUpper().trimmed() != "OK") {
|
||||
// litelib_initialize_new failed
|
||||
...
|
||||
}
|
||||
```
|
||||
@@ -55,4 +55,13 @@ To update the file run `cargo vendor` as was mentioned in https://git.hush.is/hu
|
||||
|
||||
## Release process
|
||||
|
||||
...
|
||||
* Write release notes
|
||||
* Choose a release name
|
||||
* Make Gitea release from master branch
|
||||
* You can either manually make a git tag or let Gitea do it, which is easier
|
||||
* Make binaries
|
||||
* Windows exe
|
||||
* Windows msi
|
||||
* Linux
|
||||
* Mac
|
||||
* Debian package
|
||||
|
||||
@@ -1,3 +1,23 @@
|
||||
# SilentDragonLite v1.5.4 "Shielded Supersonic"
|
||||
|
||||
* Mempool integration: https://git.hush.is/hush/SilentDragonLite/commit/3962b42e3098863a8b959de1b12b029c13008cbe, https://git.hush.is/hush/SilentDragonLite/pulls/126.
|
||||
* Improve error handling when restoring from seedphrase: https://git.hush.is/hush/SilentDragonLite/commit/5d5447aced2c6b2a16e7dc1efd6a235c478480fb, https://git.hush.is/hush/SilentDragonLite/commit/6165733e039defc58d56fb34add5b0be43dba72d, https://git.hush.is/hush/SilentDragonLite/commit/1e6e77055b2df916af69c1c5ab16cc9294b29344.
|
||||
* Remove websockets, we now have a standalone Android wallet: https://git.hush.is/hush/SilentDragonLite/commit/430a7ab47424a3b5f9af95f47913cecb7aee05d0, https://git.hush.is/hush/SilentDragonLite/commit/3b6da338c910f4a901d65cae3fad262db09c393f.
|
||||
* Try another server if current is down when creating new seed: https://git.hush.is/hush/SilentDragonLite/commit/3f8ae1f9d75766331e3d1bb7689e7b18850061e1, https://git.hush.is/hush/SilentDragonLite/commit/557e10e5e8c35a102e82370517bf3a7a5ab25fca.
|
||||
* Try another server if current is down when restoring during a rescan; report down server in error: https://git.hush.is/hush/SilentDragonLite/commit/f7787fe9e92ec560b48550728315e7068f8f815f.
|
||||
* Report server in error when saving wallet as part of rescan: https://git.hush.is/hush/SilentDragonLite/commit/17fcb84a897ddc5b8e62241d2a3da2576200e618, https://git.hush.is/hush/SilentDragonLite/commit/51483843ac148be7d2c6956147e2fc57e144c387.
|
||||
* Make sure to init from phrase when trying a new server during restore in first time wizard: https://git.hush.is/hush/SilentDragonLite/commit/ad5b294d95953bfe2f6061e20829da79919647a6.
|
||||
* Initialize a new server connection from seedphrase when restoring from seed: https://git.hush.is/hush/SilentDragonLite/commit/c7e0f0fae6ea41e23ef3abc3035ecaa807201d95.
|
||||
* Try another server if current is down when saving wallet via a rescan: https://git.hush.is/hush/SilentDragonLite/commit/9befa3450fdeea8a76bae324811f49b0593a151f.
|
||||
* Try another server if we get an error when executing an RPC: https://git.hush.is/hush/SilentDragonLite/commit/7e54360b7215627a613a309960386ebd455a68dd, https://git.hush.is/hush/SilentDragonLite/commit/b84828604f8c9aa25acf41e90fdf5e9f4118e6bd, https://git.hush.is/hush/SilentDragonLite/commit/77ac1f99ae9a2b0b42ae752e1ce457ff9abdfcd8, https://git.hush.is/hush/SilentDragonLite/commit/f46e1b4a578b3af2d4b6cbe4754959278bbfdba9, https://git.hush.is/hush/SilentDragonLite/commit/bfdda1f1af7e4bc42dc1a4e10985e6c152dad8bd, https://git.hush.is/hush/SilentDragonLite/issues/119. (NOT READY YET)
|
||||
* Update current server on info tab since it can change at run-time: https://git.hush.is/hush/SilentDragonLite/commit/a080d0ca80d757519367a38a480caee0fb1f0173.
|
||||
* Misc: https://git.hush.is/hush/SilentDragonLite/commit/5508050fcca66cda38045b0f80535e3aea2aad50, https://git.hush.is/hush/SilentDragonLite/commit/cb0de2c3f6fd4b378fbfe9d37d90287c38196be4.
|
||||
* Look for non-empty responses instead of the string "OK": https://git.hush.is/hush/SilentDragonLite/commit/51fe4d6cde15c1ae6b7c7930bfd4878a174f5ac5.
|
||||
* Check for a non-empty response from litelib_execute: https://git.hush.is/hush/SilentDragonLite/commit/7364e21f999693825f1bd59a0814f7534e9d6f90.
|
||||
* Docs: https://git.hush.is/hush/SilentDragonLite/commit/d05d8271ecc78cad6acae8d335ada7f394d72fe6, https://git.hush.is/hush/SilentDragonLite/commit/9a7e87fa1d089c2c8eb7c8abfe843d6954f384cf.
|
||||
* Debug: https://git.hush.is/hush/SilentDragonLite/commit/5b33cb3638adc17f414e1f211d90b124b4f0dc69.
|
||||
* deb stuff: https://git.hush.is/hush/SilentDragonLite/commit/aa58e3a4ce162e828a1ae25a2f242285296b33db, https://git.hush.is/hush/SilentDragonLite/commit/d8ff0de15d78d6daf3dc280f4f70c62adae40340, https://git.hush.is/hush/SilentDragonLite/commit/b8c18aa38b3b18d0e630423004fbf70284446a21, https://git.hush.is/hush/SilentDragonLite/commit/eca9c53ff7346f48706740443f10273a91df4475.
|
||||
|
||||
# SilentDragonLite v1.5.3 "Mythical Coelacanth"
|
||||
|
||||
* Change lite server after sending a tx for improved privacy: https://git.hush.is/hush/SilentDragonLite/commit/a8fc12e0e2b2324db21407f4848f2d4aa59f4575.
|
||||
|
||||
@@ -56,7 +56,7 @@ mkdir ~/git && cd ~/git
|
||||
git clone https://github.com/mxe/mxe.git
|
||||
cd mxe
|
||||
|
||||
make -j$(nproc) MXE_TARGETS=x86_64-w64-mingw32.static qtbase qtwebsockets
|
||||
make -j$(nproc) MXE_TARGETS=x86_64-w64-mingw32.static qtbase
|
||||
|
||||
```
|
||||
# Build SilentDragonLite .exe
|
||||
|
||||
Reference in New Issue
Block a user