Duke
1 year ago
1 changed files with 60 additions and 0 deletions
@ -0,0 +1,60 @@ |
|||
# 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 |
|||
... |
|||
} |
|||
``` |
|||
|
|||
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 |
|||
... |
|||
} |
|||
``` |
Loading…
Reference in new issue