Add FfiResultVoid type
This commit is contained in:
18
cc/bdk_ffi.h
18
cc/bdk_ffi.h
@@ -37,19 +37,13 @@ FfiResult_OpaqueWallet_ptr_t new_wallet_result (
|
||||
void free_wallet_result (
|
||||
FfiResult_OpaqueWallet_ptr_t wallet_result);
|
||||
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
||||
typedef struct {
|
||||
|
||||
int32_t ok;
|
||||
|
||||
char * err;
|
||||
|
||||
} FfiResult_int32_t;
|
||||
} FfiResultVoid_t;
|
||||
|
||||
FfiResult_int32_t sync_wallet (
|
||||
FfiResultVoid_t sync_wallet (
|
||||
OpaqueWallet_t const * opaque_wallet);
|
||||
|
||||
typedef struct {
|
||||
@@ -63,6 +57,10 @@ typedef struct {
|
||||
FfiResult_char_ptr_t new_address (
|
||||
OpaqueWallet_t const * opaque_wallet);
|
||||
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
||||
typedef struct {
|
||||
|
||||
char * txid;
|
||||
@@ -137,8 +135,8 @@ void free_database_config (
|
||||
void free_string_result (
|
||||
FfiResult_char_ptr_t string_result);
|
||||
|
||||
void free_int_result (
|
||||
FfiResult_int32_t int_result);
|
||||
void free_void_result (
|
||||
FfiResultVoid_t void_result);
|
||||
|
||||
/** \brief
|
||||
* Free a Rust-allocated string
|
||||
|
||||
@@ -48,10 +48,9 @@ int main (int argc, char const * const argv[])
|
||||
OpaqueWallet_t *wallet = wallet_result.ok;
|
||||
|
||||
// sync wallet
|
||||
FfiResult_int32_t sync_result = sync_wallet(wallet);
|
||||
assert(sync_result.ok == 0);
|
||||
FfiResultVoid_t sync_result = sync_wallet(wallet);
|
||||
assert(strlen(sync_result.err) == 0);
|
||||
free_int_result(sync_result);
|
||||
free_void_result(sync_result);
|
||||
|
||||
// new address
|
||||
FfiResult_char_ptr_t address1_result = new_address(wallet);
|
||||
@@ -75,7 +74,7 @@ int main (int argc, char const * const argv[])
|
||||
//// free_wallet_result(wallet_result);
|
||||
|
||||
// verify sync_wallet after free_wallet fails (core dumped)
|
||||
//// FfiResult_int32_t sync_result2 = sync_wallet(wallet);
|
||||
//// FfiResultVoid_t sync_result2 = sync_wallet(wallet);
|
||||
}
|
||||
|
||||
// test get unspent utxos
|
||||
@@ -97,10 +96,9 @@ int main (int argc, char const * const argv[])
|
||||
OpaqueWallet_t *wallet = wallet_result.ok;
|
||||
|
||||
// sync wallet
|
||||
FfiResult_int32_t sync_result = sync_wallet(wallet);
|
||||
assert(sync_result.ok == 0);
|
||||
FfiResultVoid_t sync_result = sync_wallet(wallet);
|
||||
assert(strlen(sync_result.err) == 0);
|
||||
free_int_result(sync_result);
|
||||
free_void_result(sync_result);
|
||||
|
||||
// list unspent
|
||||
FfiResult_Vec_LocalUtxo_t unspent_result = list_unspent(wallet);
|
||||
@@ -144,10 +142,9 @@ int main (int argc, char const * const argv[])
|
||||
OpaqueWallet_t *wallet = wallet_result.ok;
|
||||
|
||||
// sync wallet
|
||||
FfiResult_int32_t sync_result = sync_wallet(wallet);
|
||||
assert(sync_result.ok == 0);
|
||||
FfiResultVoid_t sync_result = sync_wallet(wallet);
|
||||
assert(sync_result.err == NULL);
|
||||
free_int_result(sync_result);
|
||||
free_void_result(sync_result);
|
||||
|
||||
// get balance
|
||||
FfiResultT_uint64_t balance_result = balance(wallet);
|
||||
|
||||
Reference in New Issue
Block a user