Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(js): add missing parameters to rn wrapper #218

Merged
merged 1 commit into from
Sep 19, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 22 additions & 4 deletions libindy_vdr/include/README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,33 @@
_Generating the C header:_

Install [cbindgen](https://github.com/eqrion/cbindgen/):

1. use `nightly` instead of `stable`

```sh
rustup default nightly
```
> **Note**: If you run into _'unknown feature'_ issues by using latest nightly, force it to 1.72.0 by executing: `rustup default nightly-2023-06-15`

2. Install [cbindgen](https://github.com/eqrion/cbindgen/)

```sh
cargo install cbindgen
```

From the `libindy_vdr` directory, generate the header file:
3. Install [cargo expand](https://github.com/dtolnay/cargo-expand)

```sh
cargo install cargo-expand
```

4. Generate the header file:

```sh
cbindgen --config include/cbindgen.toml --crate indy-vdr --output include/libindy_vdr.h
cbindgen --config libindy_vdr/include/cbindgen.toml --crate indy-vdr --lockfile Cargo.lock --output libindy_vdr/include/libindy_vdr.h
```

Note that a few types are currently defined manually, such as `ByteBuffer`, because of limitations in the binding generator.
5. Copy to React Native:

```sh
cp libindy_vdr/include/libindy_vdr.h wrappers/javascript/indy-vdr-react-native/cpp/include/
```
146 changes: 5 additions & 141 deletions libindy_vdr/include/cbindgen.toml
Original file line number Diff line number Diff line change
@@ -1,151 +1,15 @@
# This is a template cbindgen.toml file with all of the default values.
# Some values are commented out because their absence is the real default.
#
# See https://github.com/eqrion/cbindgen/blob/master/docs.md#cbindgentoml
# for detailed documentation of every option here.



language = "C"
cpp_compat = true


############## Options for Wrapping the Contents of the Header #################

# header = "/* Text to put at the beginning of the generated file. Probably a license. */"
# trailer = "/* Text to put at the end of the generated file */"
# include_guard = "my_bindings_h"
# pragma_once = true
# autogen_warning = "/* Warning, this file is autogenerated by cbindgen. Don't modify this manually. */"
include_version = false
# namespace = "my_namespace"
namespaces = []
using_namespaces = []
sys_includes = []
includes = []
no_includes = false
after_includes = ""




############################ Code Style Options ################################

braces = "SameLine"
line_length = 100
tab_width = 2
documentation = true
documentation_style = "auto"
# documentation_length = "full"
line_endings = "LF" # also "CR", "CRLF", "Native"




############################# Codegen Options ##################################

style = "both"
sort_by = "Name" # default for `fn.sort_by` and `const.sort_by`
pragma_once = true
autogen_warning = "/* Warning, this file is autogenerated by cbindgen. Don't modify this manually. */"
include_version = true
usize_is_size_t = true



[defines]
# "target_os = freebsd" = "DEFINE_FREEBSD"
# "feature = serde" = "DEFINE_SERDE"
"feature = rich_schema" = "DEFINE_RICH_SCHEMA"
"test" = "DEFINE_TEST"

[export]
include = []
exclude = []
# prefix = "CAPI_"
item_types = []
renaming_overrides_prefixing = false



[export.rename]


[export.body]


[export.mangle]


[fn]
rename_args = "None"
# must_use = "MUST_USE_FUNC"
# no_return = "NO_RETURN"
# prefix = "START_FUNC"
# postfix = "END_FUNC"
args = "auto"
sort_by = "Name"




[struct]
rename_fields = "None"
# must_use = "MUST_USE_STRUCT"
derive_constructor = false
derive_eq = false
derive_neq = false
derive_lt = false
derive_lte = false
derive_gt = false
derive_gte = false




[enum]
rename_variants = "None"
# must_use = "MUST_USE_ENUM"
add_sentinel = false
prefix_with_name = false
derive_helper_methods = false
derive_const_casts = false
derive_mut_casts = false
# cast_assert_name = "ASSERT"
derive_tagged_enum_destructor = false
derive_tagged_enum_copy_constructor = false
enum_class = true
private_default_tagged_enum_constructor = false




[const]
allow_static_const = true
allow_constexpr = false
sort_by = "Name"




[macro_expansion]
bitflags = false






############## Options for How Your Rust library Should Be Parsed ##############

[parse]
parse_deps = true
include = ["ffi-support"]
exclude = []
clean = false
extra_bindings = []


include = ["ffi-support", "ffi"]

[parse.expand]
crates = []
all_features = false
default_features = true
features = []
crates = ["indy-vdr"]
82 changes: 50 additions & 32 deletions libindy_vdr/include/libindy_vdr.h
Original file line number Diff line number Diff line change
@@ -1,11 +1,29 @@
#pragma once

/* Generated with cbindgen:0.24.5 */

/* Warning, this file is autogenerated by cbindgen. Don't modify this manually. */

#include <stdarg.h>
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include <stdlib.h>

/**
* No (enforced) self-certification
*/
#define CERT_DEFAULT 0

#define DEFAULT 0
/**
* Self-certification based on did:indy method spec
*/
#define CERT_DID_INDY 2

/**
* Legacy self-certification
*/
#define CERT_DID_SOV 1

#define DEFAULT_ACK_TIMEOUT 20

Expand All @@ -19,9 +37,13 @@

#define DEFAULT_REQUEST_READ_NODES 2

#define DID_INDY 2
#define ROLE_ENDORSER 101

#define ROLE_NETWORK_MONITOR 201

#define DID_SOV 1
#define ROLE_STEWARD 2

#define ROLE_TRUSTEE 0

enum ErrorCode
#ifdef __cplusplus
Expand Down Expand Up @@ -290,20 +312,6 @@ ErrorCode indy_vdr_build_get_revoc_reg_request(FfiStr submitter_did,
int64_t timestamp,
RequestHandle *handle_p);

#if (defined(DEFINE_RICH_SCHEMA) || defined(DEFINE_TEST))
ErrorCode indy_vdr_build_get_rich_schema_object_by_id_request(FfiStr submitter_did,
FfiStr rs_id,
RequestHandle *handle_p);
#endif

#if (defined(DEFINE_RICH_SCHEMA) || defined(DEFINE_TEST))
ErrorCode indy_vdr_build_get_rich_schema_object_by_metadata_request(FfiStr submitter_did,
FfiStr rs_type,
FfiStr rs_name,
FfiStr rs_version,
RequestHandle *handle_p);
#endif

ErrorCode indy_vdr_build_get_schema_request(FfiStr submitter_did,
FfiStr schema_id,
RequestHandle *handle_p);
Expand Down Expand Up @@ -370,17 +378,6 @@ ErrorCode indy_vdr_build_revoc_reg_entry_request(FfiStr submitter_did,
FfiStr revoc_reg_entry,
RequestHandle *handle_p);

#if (defined(DEFINE_RICH_SCHEMA) || defined(DEFINE_TEST))
ErrorCode indy_vdr_build_rich_schema_request(FfiStr submitter_did,
FfiStr rs_id,
FfiStr rs_content,
FfiStr rs_name,
FfiStr rs_version,
FfiStr rs_type,
FfiStr ver,
RequestHandle *handle_p);
#endif

ErrorCode indy_vdr_build_schema_request(FfiStr submitter_did,
FfiStr schema,
RequestHandle *handle_p);
Expand Down Expand Up @@ -408,11 +405,15 @@ ErrorCode indy_vdr_pool_get_status(PoolHandle pool_handle,
CallbackId cb_id);

ErrorCode indy_vdr_pool_get_transactions(PoolHandle pool_handle,
void (*cb)(CallbackId cb_id, ErrorCode err, const char *response),
void (*cb)(CallbackId cb_id,
ErrorCode err,
const char *response),
CallbackId cb_id);

ErrorCode indy_vdr_pool_get_verifiers(PoolHandle pool_handle,
void (*cb)(CallbackId cb_id, ErrorCode err, const char *response),
void (*cb)(CallbackId cb_id,
ErrorCode err,
const char *response),
CallbackId cb_id);

ErrorCode indy_vdr_pool_refresh(PoolHandle pool_handle,
Expand All @@ -423,12 +424,16 @@ ErrorCode indy_vdr_pool_submit_action(PoolHandle pool_handle,
RequestHandle request_handle,
FfiStr nodes,
int32_t timeout,
void (*cb)(CallbackId cb_id, ErrorCode err, const char *response),
void (*cb)(CallbackId cb_id,
ErrorCode err,
const char *response),
CallbackId cb_id);

ErrorCode indy_vdr_pool_submit_request(PoolHandle pool_handle,
RequestHandle request_handle,
void (*cb)(CallbackId cb_id, ErrorCode err, const char *response),
void (*cb)(CallbackId cb_id,
ErrorCode err,
const char *response),
CallbackId cb_id);

/**
Expand Down Expand Up @@ -482,6 +487,19 @@ ErrorCode indy_vdr_set_protocol_version(int64_t version);

ErrorCode indy_vdr_set_socks_proxy(FfiStr socks_proxy);

/**
* Public destructor for strings managed by the other side of the FFI.
*
* # Safety
*
* This will free the string pointer it gets passed in as an argument,
* and thus can be wildly unsafe if misused.
*
* See the documentation of `ffi_support::destroy_c_string` and
* `ffi_support::define_string_destructor!` for further info.
*/
void indy_vdr_string_free(char *s);

char *indy_vdr_version(void);

#ifdef __cplusplus
Expand Down
1 change: 1 addition & 0 deletions wrappers/javascript/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,4 @@ react-native/android/gradle*

**/build
**/native/mobile
genesis.txn
Loading