bdk-ffi/cc/bdk_ffi.h

153 lines
2.6 KiB
C
Raw Normal View History

/*! \file */
/*******************************************
* *
* File auto-generated by `::safer_ffi`. *
* *
* Do not manually edit this file. *
* *
*******************************************/
#ifndef __RUST_BDK_FFI__
#define __RUST_BDK_FFI__
#ifdef __cplusplus
extern "C" {
#endif
typedef struct BlockchainConfig BlockchainConfig_t;
typedef struct DatabaseConfig DatabaseConfig_t;
typedef struct OpaqueWallet OpaqueWallet_t;
typedef struct {
OpaqueWallet_t * ok;
char * err;
} FfiResult_OpaqueWallet_ptr_t;
FfiResult_OpaqueWallet_ptr_t new_wallet_result (
char const * descriptor,
char const * change_descriptor,
BlockchainConfig_t const * blockchain_config,
DatabaseConfig_t const * database_config);
void free_wallet_result (
FfiResult_OpaqueWallet_ptr_t wallet_result);
typedef struct {
char * err;
2021-07-03 19:24:29 -07:00
} FfiResultVoid_t;
2021-07-03 19:24:29 -07:00
FfiResultVoid_t sync_wallet (
OpaqueWallet_t const * opaque_wallet);
typedef struct {
char * ok;
char * err;
} FfiResult_char_ptr_t;
FfiResult_char_ptr_t new_address (
OpaqueWallet_t const * opaque_wallet);
2021-07-03 19:24:29 -07:00
#include <stddef.h>
#include <stdint.h>
typedef struct {
char * txid;
uint32_t vout;
} OutPoint_t;
typedef struct {
uint64_t value;
char * script_pubkey;
} TxOut_t;
typedef struct {
OutPoint_t outpoint;
TxOut_t txout;
uint16_t keychain;
} LocalUtxo_t;
/** \brief
* Same as [`Vec<T>`][`rust::Vec`], but with guaranteed `#[repr(C)]` layout
*/
typedef struct {
LocalUtxo_t * ptr;
size_t len;
size_t cap;
} Vec_LocalUtxo_t;
typedef struct {
Vec_LocalUtxo_t ok;
char * err;
} FfiResult_Vec_LocalUtxo_t;
FfiResult_Vec_LocalUtxo_t list_unspent (
OpaqueWallet_t const * opaque_wallet);
void free_unspent_result (
FfiResult_Vec_LocalUtxo_t unspent_result);
BlockchainConfig_t * new_electrum_config (
char const * url,
char const * socks5,
int16_t retry,
int16_t timeout);
void free_blockchain_config (
BlockchainConfig_t * blockchain_config);
DatabaseConfig_t * new_memory_config (void);
DatabaseConfig_t * new_sled_config (
char const * path,
char const * tree_name);
void free_database_config (
DatabaseConfig_t * database_config);
void free_string_result (
FfiResult_char_ptr_t string_result);
2021-07-03 19:24:29 -07:00
void free_void_result (
FfiResultVoid_t void_result);
/** \brief
* Free a Rust-allocated string
*/
void free_string (
char * string);
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* __RUST_BDK_FFI__ */