From 2846d0b470b622c1859332b6bb8b8034355ce057 Mon Sep 17 00:00:00 2001 From: dancoffman Date: Tue, 1 Nov 2022 19:40:28 -0700 Subject: [PATCH] checkpoint 2 --- bindings/node.js/Makefile | 4 +- bindings/node.js/binding.gyp | 7 +- bindings/node.js/{ckzg.c => ckzg.cxx} | 14 +- bindings/node.js/ckzg.h | 2 + bindings/node.js/ckzg_wrap.c | 2200 ------------------------- bindings/node.js/runnable.js | 4 +- 6 files changed, 19 insertions(+), 2212 deletions(-) rename bindings/node.js/{ckzg.c => ckzg.cxx} (87%) delete mode 100644 bindings/node.js/ckzg_wrap.c diff --git a/bindings/node.js/Makefile b/bindings/node.js/Makefile index 418871b..3f6911d 100644 --- a/bindings/node.js/Makefile +++ b/bindings/node.js/Makefile @@ -3,8 +3,8 @@ clean: rm -f ckzg.node rm -f ckzg_wrap.cxx -build: ckzg.c ckzg.h - swig -javascript -node ckzg.swg +build: ckzg.cxx ckzg.h + swig -c++ -javascript -node ckzg.swg node-gyp rebuild cp build/Release/ckzg.node . diff --git a/bindings/node.js/binding.gyp b/bindings/node.js/binding.gyp index fffdec0..24daa80 100644 --- a/bindings/node.js/binding.gyp +++ b/bindings/node.js/binding.gyp @@ -3,10 +3,11 @@ { 'target_name': 'ckzg', 'sources': [ + 'ckzg.cxx', 'ckzg_wrap.cxx', - '../../src/c_kzg_4844.c', ], - 'include_dirs': [ '../../inc' ] - }, + 'include_dirs': ['../../inc', '../../src'], + 'libraries': ['/Users/coffman@coinbase.com/src/c-kzg/bindings/node.js/libckzg.a'], + } ] } diff --git a/bindings/node.js/ckzg.c b/bindings/node.js/ckzg.cxx similarity index 87% rename from bindings/node.js/ckzg.c rename to bindings/node.js/ckzg.cxx index 077a465..5a58c0f 100644 --- a/bindings/node.js/ckzg.c +++ b/bindings/node.js/ckzg.cxx @@ -1,10 +1,12 @@ #include #include #include -#include "c_kzg_4844.h" +#include "ckzg.h" + +void testFunction() {} KZGSettings* loadTrustSetup(const char* file) { - KZGSettings* out = malloc(sizeof(KZGSettings)); + KZGSettings* out = (KZGSettings*)malloc(sizeof(KZGSettings)); if (out == NULL) return NULL; @@ -34,10 +36,10 @@ void blobToKzgCommitment(uint8_t out[48], const uint8_t blob[FIELD_ELEMENTS_PER_ } int verifyAggregateKzgProof(const uint8_t blobs[], const uint8_t commitments[], size_t n, const uint8_t proof[48], const KZGSettings *s) { - Polynomial* p = calloc(n, sizeof(Polynomial)); + Polynomial* p = (Polynomial*)calloc(n, sizeof(Polynomial)); if (p == NULL) return -1; - KZGCommitment* c = calloc(n, sizeof(KZGCommitment)); + KZGCommitment* c = (KZGCommitment*)calloc(n, sizeof(KZGCommitment)); if (c == NULL) { free(p); return -1; } C_KZG_RET ret; @@ -62,8 +64,8 @@ int verifyAggregateKzgProof(const uint8_t blobs[], const uint8_t commitments[], } C_KZG_RET computeAggregateKzgProof(uint8_t out[48], const uint8_t blobs[], size_t n, const KZGSettings *s) { - Polynomial* p = calloc(n, sizeof(Polynomial)); - if (p == NULL) return -1; + Polynomial* p = (Polynomial*)calloc(n, sizeof(Polynomial)); + if (p == NULL) return C_KZG_ERROR; for (size_t i = 0; i < n; i++) for (size_t j = 0; j < FIELD_ELEMENTS_PER_BLOB; j++) diff --git a/bindings/node.js/ckzg.h b/bindings/node.js/ckzg.h index 084896c..423a6ca 100644 --- a/bindings/node.js/ckzg.h +++ b/bindings/node.js/ckzg.h @@ -3,6 +3,8 @@ #include #include "c_kzg_4844.h" +void testFunction(); + KZGSettings* loadTrustSetup(const char* file); void freeTrustedSetup(KZGSettings *s); diff --git a/bindings/node.js/ckzg_wrap.c b/bindings/node.js/ckzg_wrap.c deleted file mode 100644 index 5721056..0000000 --- a/bindings/node.js/ckzg_wrap.c +++ /dev/null @@ -1,2200 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (https://www.swig.org). - * Version 4.1.0 - * - * Do not make changes to this file unless you know what you are doing - modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - - -#define SWIG_VERSION 0x040100 -#define SWIGJAVASCRIPT -/* ----------------------------------------------------------------------------- - * This section contains generic SWIG labels for method/variable - * declarations/attributes, and other compiler dependent labels. - * ----------------------------------------------------------------------------- */ - -/* template workaround for compilers that cannot correctly implement the C++ standard */ -#ifndef SWIGTEMPLATEDISAMBIGUATOR -# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) -# define SWIGTEMPLATEDISAMBIGUATOR template -# elif defined(__HP_aCC) -/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ -/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ -# define SWIGTEMPLATEDISAMBIGUATOR template -# else -# define SWIGTEMPLATEDISAMBIGUATOR -# endif -#endif - -/* inline attribute */ -#ifndef SWIGINLINE -# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) -# define SWIGINLINE inline -# else -# define SWIGINLINE -# endif -#endif - -/* attribute recognised by some compilers to avoid 'unused' warnings */ -#ifndef SWIGUNUSED -# if defined(__GNUC__) -# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) -# define SWIGUNUSED __attribute__ ((__unused__)) -# else -# define SWIGUNUSED -# endif -# elif defined(__ICC) -# define SWIGUNUSED __attribute__ ((__unused__)) -# else -# define SWIGUNUSED -# endif -#endif - -#ifndef SWIG_MSC_UNSUPPRESS_4505 -# if defined(_MSC_VER) -# pragma warning(disable : 4505) /* unreferenced local function has been removed */ -# endif -#endif - -#ifndef SWIGUNUSEDPARM -# ifdef __cplusplus -# define SWIGUNUSEDPARM(p) -# else -# define SWIGUNUSEDPARM(p) p SWIGUNUSED -# endif -#endif - -/* internal SWIG method */ -#ifndef SWIGINTERN -# define SWIGINTERN static SWIGUNUSED -#endif - -/* internal inline SWIG method */ -#ifndef SWIGINTERNINLINE -# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE -#endif - -/* exporting methods */ -#if defined(__GNUC__) -# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) -# ifndef GCC_HASCLASSVISIBILITY -# define GCC_HASCLASSVISIBILITY -# endif -# endif -#endif - -#ifndef SWIGEXPORT -# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) -# if defined(STATIC_LINKED) -# define SWIGEXPORT -# else -# define SWIGEXPORT __declspec(dllexport) -# endif -# else -# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) -# define SWIGEXPORT __attribute__ ((visibility("default"))) -# else -# define SWIGEXPORT -# endif -# endif -#endif - -/* calling conventions for Windows */ -#ifndef SWIGSTDCALL -# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) -# define SWIGSTDCALL __stdcall -# else -# define SWIGSTDCALL -# endif -#endif - -/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ -#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) -# define _CRT_SECURE_NO_DEPRECATE -#endif - -/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ -#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) -# define _SCL_SECURE_NO_DEPRECATE -#endif - -/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ -#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) -# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 -#endif - -/* Intel's compiler complains if a variable which was never initialised is - * cast to void, which is a common idiom which we use to indicate that we - * are aware a variable isn't used. So we just silence that warning. - * See: https://github.com/swig/swig/issues/192 for more discussion. - */ -#ifdef __INTEL_COMPILER -# pragma warning disable 592 -#endif - - - -#define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0) - -#define SWIG_contract_assert(expr, msg) do { if (!(expr)) { SWIG_Error(SWIG_RuntimeError, msg); SWIG_fail; } } while (0) - - - -#include -//Older version of node.h does not include this -#include - - -#include - -#undef SWIG_V8_VERSION -#define SWIG_V8_VERSION ((V8_MAJOR_VERSION / 10) * 4096 + \ - (V8_MAJOR_VERSION % 10) * 256 + \ - (V8_MINOR_VERSION / 10) * 16 + \ - (V8_MINOR_VERSION % 10)) - -#include -#include -#include -#include - -/* ----------------------------------------------------------------------------- - * swigrun.swg - * - * This file contains generic C API SWIG runtime support for pointer - * type checking. - * ----------------------------------------------------------------------------- */ - -/* This should only be incremented when either the layout of swig_type_info changes, - or for whatever reason, the runtime changes incompatibly */ -#define SWIG_RUNTIME_VERSION "4" - -/* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */ -#ifdef SWIG_TYPE_TABLE -# define SWIG_QUOTE_STRING(x) #x -# define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x) -# define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE) -#else -# define SWIG_TYPE_TABLE_NAME -#endif - -/* - You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for - creating a static or dynamic library from the SWIG runtime code. - In 99.9% of the cases, SWIG just needs to declare them as 'static'. - - But only do this if strictly necessary, ie, if you have problems - with your compiler or suchlike. -*/ - -#ifndef SWIGRUNTIME -# define SWIGRUNTIME SWIGINTERN -#endif - -#ifndef SWIGRUNTIMEINLINE -# define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE -#endif - -/* Generic buffer size */ -#ifndef SWIG_BUFFER_SIZE -# define SWIG_BUFFER_SIZE 1024 -#endif - -/* Flags for pointer conversions */ -#define SWIG_POINTER_DISOWN 0x1 -#define SWIG_CAST_NEW_MEMORY 0x2 -#define SWIG_POINTER_NO_NULL 0x4 -#define SWIG_POINTER_CLEAR 0x8 -#define SWIG_POINTER_RELEASE (SWIG_POINTER_CLEAR | SWIG_POINTER_DISOWN) - -/* Flags for new pointer objects */ -#define SWIG_POINTER_OWN 0x1 - - -/* - Flags/methods for returning states. - - The SWIG conversion methods, as ConvertPtr, return an integer - that tells if the conversion was successful or not. And if not, - an error code can be returned (see swigerrors.swg for the codes). - - Use the following macros/flags to set or process the returning - states. - - In old versions of SWIG, code such as the following was usually written: - - if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) { - // success code - } else { - //fail code - } - - Now you can be more explicit: - - int res = SWIG_ConvertPtr(obj,vptr,ty.flags); - if (SWIG_IsOK(res)) { - // success code - } else { - // fail code - } - - which is the same really, but now you can also do - - Type *ptr; - int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags); - if (SWIG_IsOK(res)) { - // success code - if (SWIG_IsNewObj(res) { - ... - delete *ptr; - } else { - ... - } - } else { - // fail code - } - - I.e., now SWIG_ConvertPtr can return new objects and you can - identify the case and take care of the deallocation. Of course that - also requires SWIG_ConvertPtr to return new result values, such as - - int SWIG_ConvertPtr(obj, ptr,...) { - if () { - if () { - *ptr = ; - return SWIG_NEWOBJ; - } else { - *ptr = ; - return SWIG_OLDOBJ; - } - } else { - return SWIG_BADOBJ; - } - } - - Of course, returning the plain '0(success)/-1(fail)' still works, but you can be - more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the - SWIG errors code. - - Finally, if the SWIG_CASTRANK_MODE is enabled, the result code - allows returning the 'cast rank', for example, if you have this - - int food(double) - int fooi(int); - - and you call - - food(1) // cast rank '1' (1 -> 1.0) - fooi(1) // cast rank '0' - - just use the SWIG_AddCast()/SWIG_CheckState() -*/ - -#define SWIG_OK (0) -/* Runtime errors are < 0 */ -#define SWIG_ERROR (-1) -/* Errors in range -1 to -99 are in swigerrors.swg (errors for all languages including those not using the runtime) */ -/* Errors in range -100 to -199 are language specific errors defined in *errors.swg */ -/* Errors < -200 are generic runtime specific errors */ -#define SWIG_ERROR_RELEASE_NOT_OWNED (-200) - -#define SWIG_IsOK(r) (r >= 0) -#define SWIG_ArgError(r) ((r != SWIG_ERROR) ? r : SWIG_TypeError) - -/* The CastRankLimit says how many bits are used for the cast rank */ -#define SWIG_CASTRANKLIMIT (1 << 8) -/* The NewMask denotes the object was created (using new/malloc) */ -#define SWIG_NEWOBJMASK (SWIG_CASTRANKLIMIT << 1) -/* The TmpMask is for in/out typemaps that use temporal objects */ -#define SWIG_TMPOBJMASK (SWIG_NEWOBJMASK << 1) -/* Simple returning values */ -#define SWIG_BADOBJ (SWIG_ERROR) -#define SWIG_OLDOBJ (SWIG_OK) -#define SWIG_NEWOBJ (SWIG_OK | SWIG_NEWOBJMASK) -#define SWIG_TMPOBJ (SWIG_OK | SWIG_TMPOBJMASK) -/* Check, add and del object mask methods */ -#define SWIG_AddNewMask(r) (SWIG_IsOK(r) ? (r | SWIG_NEWOBJMASK) : r) -#define SWIG_DelNewMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_NEWOBJMASK) : r) -#define SWIG_IsNewObj(r) (SWIG_IsOK(r) && (r & SWIG_NEWOBJMASK)) -#define SWIG_AddTmpMask(r) (SWIG_IsOK(r) ? (r | SWIG_TMPOBJMASK) : r) -#define SWIG_DelTmpMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r) -#define SWIG_IsTmpObj(r) (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK)) - -/* Cast-Rank Mode */ -#if defined(SWIG_CASTRANK_MODE) -# ifndef SWIG_TypeRank -# define SWIG_TypeRank unsigned long -# endif -# ifndef SWIG_MAXCASTRANK /* Default cast allowed */ -# define SWIG_MAXCASTRANK (2) -# endif -# define SWIG_CASTRANKMASK ((SWIG_CASTRANKLIMIT) -1) -# define SWIG_CastRank(r) (r & SWIG_CASTRANKMASK) -SWIGINTERNINLINE int SWIG_AddCast(int r) { - return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r; -} -SWIGINTERNINLINE int SWIG_CheckState(int r) { - return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0; -} -#else /* no cast-rank mode */ -# define SWIG_AddCast(r) (r) -# define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0) -#endif - - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef void *(*swig_converter_func)(void *, int *); -typedef struct swig_type_info *(*swig_dycast_func)(void **); - -/* Structure to store information on one type */ -typedef struct swig_type_info { - const char *name; /* mangled name of this type */ - const char *str; /* human readable name of this type */ - swig_dycast_func dcast; /* dynamic cast function down a hierarchy */ - struct swig_cast_info *cast; /* linked list of types that can cast into this type */ - void *clientdata; /* language specific type data */ - int owndata; /* flag if the structure owns the clientdata */ -} swig_type_info; - -/* Structure to store a type and conversion function used for casting */ -typedef struct swig_cast_info { - swig_type_info *type; /* pointer to type that is equivalent to this type */ - swig_converter_func converter; /* function to cast the void pointers */ - struct swig_cast_info *next; /* pointer to next cast in linked list */ - struct swig_cast_info *prev; /* pointer to the previous cast */ -} swig_cast_info; - -/* Structure used to store module information - * Each module generates one structure like this, and the runtime collects - * all of these structures and stores them in a circularly linked list.*/ -typedef struct swig_module_info { - swig_type_info **types; /* Array of pointers to swig_type_info structures that are in this module */ - size_t size; /* Number of types in this module */ - struct swig_module_info *next; /* Pointer to next element in circularly linked list */ - swig_type_info **type_initial; /* Array of initially generated type structures */ - swig_cast_info **cast_initial; /* Array of initially generated casting structures */ - void *clientdata; /* Language specific module data */ -} swig_module_info; - -/* - Compare two type names skipping the space characters, therefore - "char*" == "char *" and "Class" == "Class", etc. - - Return 0 when the two name types are equivalent, as in - strncmp, but skipping ' '. -*/ -SWIGRUNTIME int -SWIG_TypeNameComp(const char *f1, const char *l1, - const char *f2, const char *l2) { - for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) { - while ((*f1 == ' ') && (f1 != l1)) ++f1; - while ((*f2 == ' ') && (f2 != l2)) ++f2; - if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1; - } - return (int)((l1 - f1) - (l2 - f2)); -} - -/* - Check type equivalence in a name list like ||... - Return 0 if equal, -1 if nb < tb, 1 if nb > tb -*/ -SWIGRUNTIME int -SWIG_TypeCmp(const char *nb, const char *tb) { - int equiv = 1; - const char* te = tb + strlen(tb); - const char* ne = nb; - while (equiv != 0 && *ne) { - for (nb = ne; *ne; ++ne) { - if (*ne == '|') break; - } - equiv = SWIG_TypeNameComp(nb, ne, tb, te); - if (*ne) ++ne; - } - return equiv; -} - -/* - Check type equivalence in a name list like ||... - Return 0 if not equal, 1 if equal -*/ -SWIGRUNTIME int -SWIG_TypeEquiv(const char *nb, const char *tb) { - return SWIG_TypeCmp(nb, tb) == 0 ? 1 : 0; -} - -/* - Check the typename -*/ -SWIGRUNTIME swig_cast_info * -SWIG_TypeCheck(const char *c, swig_type_info *ty) { - if (ty) { - swig_cast_info *iter = ty->cast; - while (iter) { - if (strcmp(iter->type->name, c) == 0) { - if (iter == ty->cast) - return iter; - /* Move iter to the top of the linked list */ - iter->prev->next = iter->next; - if (iter->next) - iter->next->prev = iter->prev; - iter->next = ty->cast; - iter->prev = 0; - if (ty->cast) ty->cast->prev = iter; - ty->cast = iter; - return iter; - } - iter = iter->next; - } - } - return 0; -} - -/* - Identical to SWIG_TypeCheck, except strcmp is replaced with a pointer comparison -*/ -SWIGRUNTIME swig_cast_info * -SWIG_TypeCheckStruct(const swig_type_info *from, swig_type_info *ty) { - if (ty) { - swig_cast_info *iter = ty->cast; - while (iter) { - if (iter->type == from) { - if (iter == ty->cast) - return iter; - /* Move iter to the top of the linked list */ - iter->prev->next = iter->next; - if (iter->next) - iter->next->prev = iter->prev; - iter->next = ty->cast; - iter->prev = 0; - if (ty->cast) ty->cast->prev = iter; - ty->cast = iter; - return iter; - } - iter = iter->next; - } - } - return 0; -} - -/* - Cast a pointer up an inheritance hierarchy -*/ -SWIGRUNTIMEINLINE void * -SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) { - return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory); -} - -/* - Dynamic pointer casting. Down an inheritance hierarchy -*/ -SWIGRUNTIME swig_type_info * -SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) { - swig_type_info *lastty = ty; - if (!ty || !ty->dcast) return ty; - while (ty && (ty->dcast)) { - ty = (*ty->dcast)(ptr); - if (ty) lastty = ty; - } - return lastty; -} - -/* - Return the name associated with this type -*/ -SWIGRUNTIMEINLINE const char * -SWIG_TypeName(const swig_type_info *ty) { - return ty->name; -} - -/* - Return the pretty name associated with this type, - that is an unmangled type name in a form presentable to the user. -*/ -SWIGRUNTIME const char * -SWIG_TypePrettyName(const swig_type_info *type) { - /* The "str" field contains the equivalent pretty names of the - type, separated by vertical-bar characters. Choose the last - name. It should be the most specific; a fully resolved name - but not necessarily with default template parameters expanded. */ - if (!type) return NULL; - if (type->str != NULL) { - const char *last_name = type->str; - const char *s; - for (s = type->str; *s; s++) - if (*s == '|') last_name = s+1; - return last_name; - } - else - return type->name; -} - -/* - Set the clientdata field for a type -*/ -SWIGRUNTIME void -SWIG_TypeClientData(swig_type_info *ti, void *clientdata) { - swig_cast_info *cast = ti->cast; - /* if (ti->clientdata == clientdata) return; */ - ti->clientdata = clientdata; - - while (cast) { - if (!cast->converter) { - swig_type_info *tc = cast->type; - if (!tc->clientdata) { - SWIG_TypeClientData(tc, clientdata); - } - } - cast = cast->next; - } -} -SWIGRUNTIME void -SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) { - SWIG_TypeClientData(ti, clientdata); - ti->owndata = 1; -} - -/* - Search for a swig_type_info structure only by mangled name - Search is a O(log #types) - - We start searching at module start, and finish searching when start == end. - Note: if start == end at the beginning of the function, we go all the way around - the circular list. -*/ -SWIGRUNTIME swig_type_info * -SWIG_MangledTypeQueryModule(swig_module_info *start, - swig_module_info *end, - const char *name) { - swig_module_info *iter = start; - do { - if (iter->size) { - size_t l = 0; - size_t r = iter->size - 1; - do { - /* since l+r >= 0, we can (>> 1) instead (/ 2) */ - size_t i = (l + r) >> 1; - const char *iname = iter->types[i]->name; - if (iname) { - int compare = strcmp(name, iname); - if (compare == 0) { - return iter->types[i]; - } else if (compare < 0) { - if (i) { - r = i - 1; - } else { - break; - } - } else if (compare > 0) { - l = i + 1; - } - } else { - break; /* should never happen */ - } - } while (l <= r); - } - iter = iter->next; - } while (iter != end); - return 0; -} - -/* - Search for a swig_type_info structure for either a mangled name or a human readable name. - It first searches the mangled names of the types, which is a O(log #types) - If a type is not found it then searches the human readable names, which is O(#types). - - We start searching at module start, and finish searching when start == end. - Note: if start == end at the beginning of the function, we go all the way around - the circular list. -*/ -SWIGRUNTIME swig_type_info * -SWIG_TypeQueryModule(swig_module_info *start, - swig_module_info *end, - const char *name) { - /* STEP 1: Search the name field using binary search */ - swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name); - if (ret) { - return ret; - } else { - /* STEP 2: If the type hasn't been found, do a complete search - of the str field (the human readable name) */ - swig_module_info *iter = start; - do { - size_t i = 0; - for (; i < iter->size; ++i) { - if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name))) - return iter->types[i]; - } - iter = iter->next; - } while (iter != end); - } - - /* neither found a match */ - return 0; -} - -/* - Pack binary data into a string -*/ -SWIGRUNTIME char * -SWIG_PackData(char *c, void *ptr, size_t sz) { - static const char hex[17] = "0123456789abcdef"; - const unsigned char *u = (unsigned char *) ptr; - const unsigned char *eu = u + sz; - for (; u != eu; ++u) { - unsigned char uu = *u; - *(c++) = hex[(uu & 0xf0) >> 4]; - *(c++) = hex[uu & 0xf]; - } - return c; -} - -/* - Unpack binary data from a string -*/ -SWIGRUNTIME const char * -SWIG_UnpackData(const char *c, void *ptr, size_t sz) { - unsigned char *u = (unsigned char *) ptr; - const unsigned char *eu = u + sz; - for (; u != eu; ++u) { - char d = *(c++); - unsigned char uu; - if ((d >= '0') && (d <= '9')) - uu = (unsigned char)((d - '0') << 4); - else if ((d >= 'a') && (d <= 'f')) - uu = (unsigned char)((d - ('a'-10)) << 4); - else - return (char *) 0; - d = *(c++); - if ((d >= '0') && (d <= '9')) - uu |= (unsigned char)(d - '0'); - else if ((d >= 'a') && (d <= 'f')) - uu |= (unsigned char)(d - ('a'-10)); - else - return (char *) 0; - *u = uu; - } - return c; -} - -/* - Pack 'void *' into a string buffer. -*/ -SWIGRUNTIME char * -SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) { - char *r = buff; - if ((2*sizeof(void *) + 2) > bsz) return 0; - *(r++) = '_'; - r = SWIG_PackData(r,&ptr,sizeof(void *)); - if (strlen(name) + 1 > (bsz - (r - buff))) return 0; - strcpy(r,name); - return buff; -} - -SWIGRUNTIME const char * -SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) { - if (*c != '_') { - if (strcmp(c,"NULL") == 0) { - *ptr = (void *) 0; - return name; - } else { - return 0; - } - } - return SWIG_UnpackData(++c,ptr,sizeof(void *)); -} - -SWIGRUNTIME char * -SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) { - char *r = buff; - size_t lname = (name ? strlen(name) : 0); - if ((2*sz + 2 + lname) > bsz) return 0; - *(r++) = '_'; - r = SWIG_PackData(r,ptr,sz); - if (lname) { - strncpy(r,name,lname+1); - } else { - *r = 0; - } - return buff; -} - -SWIGRUNTIME const char * -SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) { - if (*c != '_') { - if (strcmp(c,"NULL") == 0) { - memset(ptr,0,sz); - return name; - } else { - return 0; - } - } - return SWIG_UnpackData(++c,ptr,sz); -} - -#ifdef __cplusplus -} -#endif - -/* SWIG Errors applicable to all language modules, values are reserved from -1 to -99 */ -#define SWIG_UnknownError -1 -#define SWIG_IOError -2 -#define SWIG_RuntimeError -3 -#define SWIG_IndexError -4 -#define SWIG_TypeError -5 -#define SWIG_DivisionByZero -6 -#define SWIG_OverflowError -7 -#define SWIG_SyntaxError -8 -#define SWIG_ValueError -9 -#define SWIG_SystemError -10 -#define SWIG_AttributeError -11 -#define SWIG_MemoryError -12 -#define SWIG_NullReferenceError -13 - - -/* --------------------------------------------------------------------------- - * These typedefs and defines are used to deal with v8 API changes - * - * Useful table of versions: https://nodejs.org/en/download/releases/ - * ---------------------------------------------------------------------------*/ - -#if (SWIG_V8_VERSION < 0x0704) -#define SWIGV8_STRING_NEW2(cstr, len) v8::String::NewFromUtf8(v8::Isolate::GetCurrent(), cstr, v8::String::kNormalString, len) -#else -#define SWIGV8_STRING_NEW2(cstr, len) (v8::String::NewFromUtf8(v8::Isolate::GetCurrent(), cstr, v8::NewStringType::kNormal, len)).ToLocalChecked() -#endif - -typedef void SwigV8ReturnValue; -typedef v8::FunctionCallbackInfo SwigV8Arguments; -typedef v8::PropertyCallbackInfo SwigV8PropertyCallbackInfo; -#define SWIGV8_RETURN(val) args.GetReturnValue().Set(val); return -#define SWIGV8_RETURN_INFO(val, info) info.GetReturnValue().Set(val); return - -#define SWIGV8_HANDLESCOPE() v8::HandleScope scope(v8::Isolate::GetCurrent()); -#define SWIGV8_HANDLESCOPE_ESC() v8::EscapableHandleScope scope(v8::Isolate::GetCurrent()); -#define SWIGV8_ESCAPE(val) return scope.Escape(val) - -#define SWIGV8_ADJUST_MEMORY(size) v8::Isolate::GetCurrent()->AdjustAmountOfExternalAllocatedMemory(size) -#define SWIGV8_CURRENT_CONTEXT() v8::Isolate::GetCurrent()->GetCurrentContext() -#define SWIGV8_THROW_EXCEPTION(err) v8::Isolate::GetCurrent()->ThrowException(err) - -#if (SWIG_V8_VERSION < 0x0704) -#define SWIGV8_STRING_NEW(str) v8::String::NewFromUtf8(v8::Isolate::GetCurrent(), str, v8::String::kNormalString) -#define SWIGV8_SYMBOL_NEW(sym) v8::String::NewFromUtf8(v8::Isolate::GetCurrent(), sym, v8::String::kNormalString) -#else -#define SWIGV8_STRING_NEW(str) (v8::String::NewFromUtf8(v8::Isolate::GetCurrent(), str, v8::NewStringType::kNormal)).ToLocalChecked() -#define SWIGV8_SYMBOL_NEW(sym) (v8::String::NewFromUtf8(v8::Isolate::GetCurrent(), sym, v8::NewStringType::kNormal)).ToLocalChecked() -#endif - -#if (SWIG_V8_VERSION < 0x0704) -#define SWIGV8_MAYBE_CHECK(maybe) maybe.FromJust() -#else -#define SWIGV8_MAYBE_CHECK(maybe) maybe.Check() -#endif - -#define SWIGV8_ARRAY_NEW(size) v8::Array::New(v8::Isolate::GetCurrent(), size) -#define SWIGV8_BOOLEAN_NEW(bool) v8::Boolean::New(v8::Isolate::GetCurrent(), bool) -#define SWIGV8_EXTERNAL_NEW(val) v8::External::New(v8::Isolate::GetCurrent(), val) -#define SWIGV8_FUNCTEMPLATE_NEW(func) v8::FunctionTemplate::New(v8::Isolate::GetCurrent(), func) -#define SWIGV8_FUNCTEMPLATE_NEW_VOID() v8::FunctionTemplate::New(v8::Isolate::GetCurrent()) -#define SWIGV8_INT32_NEW(num) v8::Int32::New(v8::Isolate::GetCurrent(), num) -#define SWIGV8_INTEGER_NEW(num) v8::Integer::New(v8::Isolate::GetCurrent(), num) -#define SWIGV8_INTEGER_NEW_UNS(num) v8::Integer::NewFromUnsigned(v8::Isolate::GetCurrent(), num) -#define SWIGV8_NUMBER_NEW(num) v8::Number::New(v8::Isolate::GetCurrent(), num) -#define SWIGV8_OBJECT_NEW() v8::Object::New(v8::Isolate::GetCurrent()) -#define SWIGV8_UNDEFINED() v8::Undefined(v8::Isolate::GetCurrent()) -#define SWIGV8_ARRAY v8::Local -#define SWIGV8_FUNCTION_TEMPLATE v8::Local -#define SWIGV8_OBJECT v8::Local -#define SWIGV8_OBJECT_TEMPLATE v8::Local -#define SWIGV8_VALUE v8::Local -#define SWIGV8_NULL() v8::Null(v8::Isolate::GetCurrent()) -#define SWIGV8_ARRAY_GET(array, index) (array)->Get(SWIGV8_CURRENT_CONTEXT(), index).ToLocalChecked() -#define SWIGV8_ARRAY_SET(array, index, value) SWIGV8_MAYBE_CHECK((array)->Set(SWIGV8_CURRENT_CONTEXT(), index, value)) - -#define SWIGV8_SET_CLASS_TEMPL(class_templ, class) class_templ.Reset(v8::Isolate::GetCurrent(), class); - -#if SWIG_V8_VERSION < 0x0608 -#define SWIGV8_TO_OBJECT(handle) (handle)->ToObject() -#define SWIGV8_TO_STRING(handle) (handle)->ToString() -#define SWIGV8_NUMBER_VALUE(handle) (handle)->NumberValue() -#define SWIGV8_INTEGER_VALUE(handle) (handle)->IntegerValue() -#define SWIGV8_BOOLEAN_VALUE(handle) (handle)->BooleanValue() -#define SWIGV8_WRITE_UTF8(handle, buffer, len) (handle)->WriteUtf8(buffer, len) -#define SWIGV8_UTF8_LENGTH(handle) (handle)->Utf8Length() -#else -#define SWIGV8_TO_OBJECT(handle) (handle)->ToObject(SWIGV8_CURRENT_CONTEXT()).ToLocalChecked() -#define SWIGV8_TO_STRING(handle) (handle)->ToString(SWIGV8_CURRENT_CONTEXT()).ToLocalChecked() -#define SWIGV8_NUMBER_VALUE(handle) (handle)->NumberValue(SWIGV8_CURRENT_CONTEXT()).ToChecked() -#define SWIGV8_INTEGER_VALUE(handle) (handle)->IntegerValue(SWIGV8_CURRENT_CONTEXT()).ToChecked() -#define SWIGV8_WRITE_UTF8(handle, buffer, len) (handle)->WriteUtf8(v8::Isolate::GetCurrent(), buffer, len) -#define SWIGV8_UTF8_LENGTH(handle) (handle)->Utf8Length(v8::Isolate::GetCurrent()) -#if (SWIG_V8_VERSION < 0x0704) -#define SWIGV8_BOOLEAN_VALUE(handle) (handle)->BooleanValue(SWIGV8_CURRENT_CONTEXT()).ToChecked() -#else -#define SWIGV8_BOOLEAN_VALUE(handle) (handle)->BooleanValue(v8::Isolate::GetCurrent()) -#endif -#endif - -/* --------------------------------------------------------------------------- - * Error handling - * - * ---------------------------------------------------------------------------*/ - -#define SWIG_Error(code, msg) SWIGV8_ErrorHandler.error(code, msg) -#define SWIG_exception(code, msg) do { SWIGV8_ErrorHandler.error(code, msg); SWIG_fail; } while (0) -#define SWIG_fail goto fail -#define SWIGV8_OVERLOAD false - -SWIGINTERN void SWIG_V8_Raise(const char *msg) { - SWIGV8_THROW_EXCEPTION(v8::Exception::Error(SWIGV8_STRING_NEW(msg))); -} - -SWIGINTERN void SWIG_V8_Raise(SWIGV8_VALUE obj, const char *msg) { - SWIGV8_THROW_EXCEPTION(v8::Exception::Error(SWIGV8_TO_STRING(obj))); -} - - -/* - Note: There are two contexts for handling errors. - A static V8ErrorHandler is used in not overloaded methods. - For overloaded methods the throwing type checking mechanism is used - during dispatching. As V8 exceptions can not be reset properly - the trick is to use a dynamic ErrorHandler with same local name as the global - one. - - - See definition of SWIG_Error above. - - See code templates 'JS_function_dispatcher', 'JS_functionwrapper_overload', - and 'JS_function_dispatch_case' in javascriptcode.swg - -*/ -class V8ErrorHandler { -public: - virtual ~V8ErrorHandler() {} - virtual void error(int code, const char *msg) { - SWIG_V8_Raise(msg); - } -}; -// this is used in usually -SWIGRUNTIME V8ErrorHandler SWIGV8_ErrorHandler; - -// instances of this are used in overloaded functions -class OverloadErrorHandler: public V8ErrorHandler { -public: - virtual void error(int code, const char *msg) { - err = v8::Exception::Error(SWIGV8_STRING_NEW(msg)); - if(code != SWIG_TypeError) { - SWIGV8_THROW_EXCEPTION(err); - } - } - SWIGV8_VALUE err; -}; - -/* --------------------------------------------------------------------------- - * Basic Proxy object - * - * ---------------------------------------------------------------------------*/ - -// Note: to trigger the v8 gc more often one can tell v8 about the memory consumption -// TODO: we could add a v8 specific parameter to control this value -#define SWIGV8_AVG_OBJ_SIZE 1000 - -class SWIGV8_Proxy { -public: - SWIGV8_Proxy(): swigCMemOwn(false), swigCObject(0), info(0) { - SWIGV8_ADJUST_MEMORY(SWIGV8_AVG_OBJ_SIZE); - }; - - ~SWIGV8_Proxy() { - handle.ClearWeak(); - handle.Reset(); - - SWIGV8_ADJUST_MEMORY(-SWIGV8_AVG_OBJ_SIZE); - } - - bool swigCMemOwn; - void *swigCObject; - swig_type_info *info; - v8::Persistent handle; -}; - -class SWIGV8_ClientData { -public: - v8::Persistent class_templ; - - void (*dtor) (const v8::WeakCallbackInfo &data); -}; - -SWIGRUNTIME v8::Persistent SWIGV8_SWIGTYPE_Proxy_class_templ; - -SWIGRUNTIME int SWIG_V8_ConvertInstancePtr(SWIGV8_OBJECT objRef, void **ptr, swig_type_info *info, int flags) { - SWIGV8_HANDLESCOPE(); - - if(objRef->InternalFieldCount() < 1) return SWIG_ERROR; - - SWIGV8_Proxy *cdata = static_cast(objRef->GetAlignedPointerFromInternalField(0)); - - if(cdata == NULL) { - return SWIG_ERROR; - } - if(info && cdata->info != info) { - swig_cast_info *tc = SWIG_TypeCheckStruct(cdata->info, info); - if (!tc && cdata->info->name) { - tc = SWIG_TypeCheck(cdata->info->name, info); - } - bool type_valid = tc != 0; - if(!type_valid) { - return SWIG_TypeError; - } - int newmemory = 0; - *ptr = SWIG_TypeCast(tc, cdata->swigCObject, &newmemory); - assert(!newmemory); /* newmemory handling not yet implemented */ - } else { - *ptr = cdata->swigCObject; - } - - if (((flags & SWIG_POINTER_RELEASE) == SWIG_POINTER_RELEASE) && !cdata->swigCMemOwn) { - return SWIG_ERROR_RELEASE_NOT_OWNED; - } else { - if (flags & SWIG_POINTER_DISOWN) { - cdata->swigCMemOwn = false; - } - if (flags & SWIG_POINTER_CLEAR) { - cdata->swigCObject = 0; - } - } - return SWIG_OK; -} - - -SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(const v8::WeakCallbackInfo &data) { - SWIGV8_Proxy *proxy = data.GetParameter(); - delete proxy; -} - -SWIGRUNTIME int SWIG_V8_GetInstancePtr(SWIGV8_VALUE valRef, void **ptr) { - if(!valRef->IsObject()) { - return SWIG_TypeError; - } - SWIGV8_OBJECT objRef = SWIGV8_OBJECT::Cast(valRef); - - if(objRef->InternalFieldCount() < 1) return SWIG_ERROR; - - SWIGV8_Proxy *cdata = static_cast(objRef->GetAlignedPointerFromInternalField(0)); - - if(cdata == NULL) { - return SWIG_ERROR; - } - - *ptr = cdata->swigCObject; - - return SWIG_OK; -} - -SWIGRUNTIME void SWIGV8_SetPrivateData(SWIGV8_OBJECT obj, void *ptr, swig_type_info *info, int flags) { - SWIGV8_Proxy *cdata = new SWIGV8_Proxy(); - cdata->swigCObject = ptr; - cdata->swigCMemOwn = (flags & SWIG_POINTER_OWN) ? 1 : 0; - cdata->info = info; - - obj->SetAlignedPointerInInternalField(0, cdata); - - cdata->handle.Reset(v8::Isolate::GetCurrent(), obj); - - if(cdata->swigCMemOwn && (SWIGV8_ClientData*)info->clientdata) { - cdata->handle.SetWeak(cdata, ((SWIGV8_ClientData*)info->clientdata)->dtor, v8::WeakCallbackType::kParameter); - } else { - cdata->handle.SetWeak(cdata, SWIGV8_Proxy_DefaultDtor, v8::WeakCallbackType::kParameter); - } - -#if (SWIG_V8_VERSION < 0x0704) - cdata->handle.MarkIndependent(); -// Looks like future versions do not require that anymore: -// https://monorail-prod.appspot.com/p/chromium/issues/detail?id=923361#c11 -#endif -} - -SWIGRUNTIME int SWIG_V8_ConvertPtr(SWIGV8_VALUE valRef, void **ptr, swig_type_info *info, int flags) { - SWIGV8_HANDLESCOPE(); - - /* special case: JavaScript null => C NULL pointer */ - if(valRef->IsNull()) { - *ptr=0; - return (flags & SWIG_POINTER_NO_NULL) ? SWIG_NullReferenceError : SWIG_OK; - } - if(!valRef->IsObject()) { - return SWIG_TypeError; - } - SWIGV8_OBJECT objRef = SWIGV8_OBJECT::Cast(valRef); - return SWIG_V8_ConvertInstancePtr(objRef, ptr, info, flags); -} - -SWIGRUNTIME SWIGV8_VALUE SWIG_V8_NewPointerObj(void *ptr, swig_type_info *info, int flags) { - SWIGV8_HANDLESCOPE_ESC(); - - SWIGV8_FUNCTION_TEMPLATE class_templ; - - if (ptr == NULL) { - v8::Local result = SWIGV8_NULL(); - SWIGV8_ESCAPE(result); - } - - v8::Isolate *isolate = v8::Isolate::GetCurrent(); - - if(info->clientdata != 0) { - class_templ = v8::Local::New(isolate, ((SWIGV8_ClientData*) info->clientdata)->class_templ); - } else { - class_templ = v8::Local::New(isolate, SWIGV8_SWIGTYPE_Proxy_class_templ); - } - - v8::Local result = class_templ->InstanceTemplate()->NewInstance(SWIGV8_CURRENT_CONTEXT()).ToLocalChecked(); - - SWIGV8_SetPrivateData(result, ptr, info, flags); - - SWIGV8_ESCAPE(result); -} - -#define SWIG_ConvertPtr(obj, ptr, info, flags) SWIG_V8_ConvertPtr(obj, ptr, info, flags) -#define SWIG_NewPointerObj(ptr, info, flags) SWIG_V8_NewPointerObj(ptr, info, flags) - -#define SWIG_ConvertInstance(obj, pptr, type, flags) SWIG_V8_ConvertInstancePtr(obj, pptr, type, flags) -#define SWIG_NewInstanceObj(thisvalue, type, flags) SWIG_V8_NewPointerObj(thisvalue, type, flags) - -#define SWIG_ConvertFunctionPtr(obj, pptr, type) SWIG_V8_ConvertPtr(obj, pptr, type, 0) -#define SWIG_NewFunctionPtrObj(ptr, type) SWIG_V8_NewPointerObj(ptr, type, 0) - -#define SWIG_GetInstancePtr(obj, ptr) SWIG_V8_GetInstancePtr(obj, ptr) - -SWIGRUNTIME SwigV8ReturnValue _SWIGV8_wrap_equals(const SwigV8Arguments &args) { - SWIGV8_HANDLESCOPE(); - - SWIGV8_VALUE jsresult; - void *arg1 = (void *) 0 ; - void *arg2 = (void *) 0 ; - bool result; - int res1; - int res2; - - if(args.Length() != 1) SWIG_exception_fail(SWIG_ERROR, "Illegal number of arguments for equals."); - - res1 = SWIG_GetInstancePtr(args.Holder(), &arg1); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ERROR, "Could not get pointer from 'this' object for equals."); - } - res2 = SWIG_GetInstancePtr(args[0], &arg2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "equals" "', argument " "1"" of type '" "void *""'"); - } - - result = (bool)(arg1 == arg2); - jsresult = SWIGV8_BOOLEAN_NEW(result); - - SWIGV8_RETURN(jsresult); - goto fail; -fail: - SWIGV8_RETURN(SWIGV8_UNDEFINED()); -} - -SWIGRUNTIME SwigV8ReturnValue _wrap_getCPtr(const SwigV8Arguments &args) { - SWIGV8_HANDLESCOPE(); - - SWIGV8_VALUE jsresult; - void *arg1 = (void *) 0 ; - long result; - int res1; - - res1 = SWIG_GetInstancePtr(args.Holder(), &arg1); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "getCPtr" "', argument " "1"" of type '" "void *""'"); - } - - result = (long)arg1; - jsresult = SWIGV8_NUMBER_NEW(result); - - SWIGV8_RETURN(jsresult); - goto fail; -fail: - SWIGV8_RETURN(SWIGV8_UNDEFINED()); -} - -/* --------------------------------------------------------------------------- - * PackedData object - * - * ---------------------------------------------------------------------------*/ - -class SwigV8PackedData { -public: - SwigV8PackedData(void *data, size_t size, swig_type_info *type): data(data), size(size), type(type) {}; - - ~SwigV8PackedData() { - }; - - void *data; - size_t size; - swig_type_info *type; - - v8::Persistent handle; -}; - -SWIGRUNTIMEINLINE -int SwigV8Packed_Check(SWIGV8_VALUE valRef) { - SWIGV8_HANDLESCOPE(); - - SWIGV8_OBJECT objRef = SWIGV8_TO_OBJECT(valRef); - if(objRef->InternalFieldCount() < 1) return false; - v8::Local privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("__swig__packed_data__")); - v8::Local flag; - if (!objRef->GetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey).ToLocal(&flag)) - return false; - return (flag->IsBoolean() && SWIGV8_BOOLEAN_VALUE(flag)); -} - -SWIGRUNTIME -swig_type_info *SwigV8Packed_UnpackData(SWIGV8_VALUE valRef, void *ptr, size_t size) { - if (SwigV8Packed_Check(valRef)) { - SWIGV8_HANDLESCOPE(); - - SwigV8PackedData *sobj; - - SWIGV8_OBJECT objRef = SWIGV8_TO_OBJECT(valRef); - - sobj = static_cast(objRef->GetAlignedPointerFromInternalField(0)); - if (sobj == NULL || sobj->size != size) return 0; - memcpy(ptr, sobj->data, size); - return sobj->type; - } else { - return 0; - } -} - -SWIGRUNTIME -int SWIGV8_ConvertPacked(SWIGV8_VALUE valRef, void *ptr, size_t sz, swig_type_info *ty) { - swig_type_info *to = SwigV8Packed_UnpackData(valRef, ptr, sz); - if (!to) return SWIG_ERROR; - if (ty) { - if (to != ty) { - /* check type cast? */ - swig_cast_info *tc = SWIG_TypeCheck(to->name,ty); - if (!tc) return SWIG_ERROR; - } - } - return SWIG_OK; -} - -SWIGRUNTIME void _wrap_SwigV8PackedData_delete(const v8::WeakCallbackInfo &data) { - SwigV8PackedData *cdata = data.GetParameter(); - delete cdata; -} - -SWIGRUNTIME -SWIGV8_VALUE SWIGV8_NewPackedObj(void *data, size_t size, swig_type_info *type) { - SWIGV8_HANDLESCOPE_ESC(); - - SwigV8PackedData *cdata = new SwigV8PackedData(data, size, type); -// v8::Handle obj = SWIGV8_OBJECT_NEW(); - v8::Local obj = SWIGV8_OBJECT_NEW(); - - v8::Local privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("__swig__packed_data__")); - obj->SetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey, SWIGV8_BOOLEAN_NEW(true)); - - obj->SetAlignedPointerInInternalField(0, cdata); - - cdata->handle.Reset(v8::Isolate::GetCurrent(), obj); - - cdata->handle.SetWeak(cdata, _wrap_SwigV8PackedData_delete, v8::WeakCallbackType::kParameter); - -#if (SWIG_V8_VERSION < 0x0704) - cdata->handle.MarkIndependent(); -// Looks like future versions do not require that anymore: -// https://monorail-prod.appspot.com/p/chromium/issues/detail?id=923361#c11 -#endif - - SWIGV8_ESCAPE(obj); - -} - -#define SWIG_ConvertMember(obj, ptr, sz, ty) SWIGV8_ConvertPacked(obj, ptr, sz, ty) -#define SWIG_NewMemberObj(ptr, sz, type) SWIGV8_NewPackedObj(ptr, sz, type) - - -/* --------------------------------------------------------------------------- - * Support for IN/OUTPUT typemaps (see Lib/typemaps/inoutlist.swg) - * - * ---------------------------------------------------------------------------*/ - -SWIGRUNTIME - -SWIGV8_VALUE SWIGV8_AppendOutput(SWIGV8_VALUE result, SWIGV8_VALUE obj) { - SWIGV8_HANDLESCOPE_ESC(); - - if (result->IsUndefined()) { - result = SWIGV8_ARRAY_NEW(0); - } else if (!result->IsArray()) { - SWIGV8_ARRAY tmparr = SWIGV8_ARRAY_NEW(0); - SWIGV8_ARRAY_SET(tmparr, 0, result); - result = tmparr; - } - - SWIGV8_ARRAY arr = SWIGV8_ARRAY::Cast(result); - SWIGV8_ARRAY_SET(arr, arr->Length(), obj); - SWIGV8_ESCAPE(arr); -} - - - -typedef v8::FunctionCallback SwigV8FunctionCallback; -typedef v8::AccessorNameGetterCallback SwigV8AccessorGetterCallback; -typedef v8::AccessorNameSetterCallback SwigV8AccessorSetterCallback; -typedef v8::PropertyCallbackInfo SwigV8PropertyCallbackInfoVoid; - -/** - * Creates a class template for a class with specified initialization function. - */ -SWIGRUNTIME SWIGV8_FUNCTION_TEMPLATE SWIGV8_CreateClassTemplate(const char* symbol) { - SWIGV8_HANDLESCOPE_ESC(); - - v8::Local class_templ = SWIGV8_FUNCTEMPLATE_NEW_VOID(); - class_templ->SetClassName(SWIGV8_SYMBOL_NEW(symbol)); - - SWIGV8_OBJECT_TEMPLATE inst_templ = class_templ->InstanceTemplate(); - inst_templ->SetInternalFieldCount(1); - - SWIGV8_OBJECT_TEMPLATE equals_templ = class_templ->PrototypeTemplate(); - equals_templ->Set(SWIGV8_SYMBOL_NEW("equals"), SWIGV8_FUNCTEMPLATE_NEW(_SWIGV8_wrap_equals)); - - SWIGV8_OBJECT_TEMPLATE cptr_templ = class_templ->PrototypeTemplate(); - cptr_templ->Set(SWIGV8_SYMBOL_NEW("getCPtr"), SWIGV8_FUNCTEMPLATE_NEW(_wrap_getCPtr)); - - SWIGV8_ESCAPE(class_templ); -} - -/** - * Registers a class method with given name for a given class template. - */ -SWIGRUNTIME void SWIGV8_AddMemberFunction(SWIGV8_FUNCTION_TEMPLATE class_templ, const char* symbol, - SwigV8FunctionCallback _func) { - SWIGV8_OBJECT_TEMPLATE proto_templ = class_templ->PrototypeTemplate(); - proto_templ->Set(SWIGV8_SYMBOL_NEW(symbol), SWIGV8_FUNCTEMPLATE_NEW(_func)); -} - -/** - * Registers a class property with given name for a given class template. - */ -SWIGRUNTIME void SWIGV8_AddMemberVariable(SWIGV8_FUNCTION_TEMPLATE class_templ, const char* symbol, - SwigV8AccessorGetterCallback getter, SwigV8AccessorSetterCallback setter) { - SWIGV8_OBJECT_TEMPLATE proto_templ = class_templ->InstanceTemplate(); - proto_templ->SetAccessor(SWIGV8_SYMBOL_NEW(symbol), getter, setter); -} - -/** - * Registers a class method with given name for a given object. - */ -SWIGRUNTIME void SWIGV8_AddStaticFunction(SWIGV8_OBJECT obj, const char* symbol, - const SwigV8FunctionCallback& _func, v8::Local context) { - SWIGV8_MAYBE_CHECK(obj->Set(context, SWIGV8_SYMBOL_NEW(symbol), SWIGV8_FUNCTEMPLATE_NEW(_func)->GetFunction(context).ToLocalChecked())); -} - -/** - * Registers a class method with given name for a given object. - */ -SWIGRUNTIME void SWIGV8_AddStaticVariable(SWIGV8_OBJECT obj, const char* symbol, - SwigV8AccessorGetterCallback getter, SwigV8AccessorSetterCallback setter, - v8::Local context) { - SWIGV8_MAYBE_CHECK(obj->SetAccessor(context, SWIGV8_SYMBOL_NEW(symbol), getter, setter)); -} - -SWIGRUNTIME void JS_veto_set_variable(v8::Local property, v8::Local value, const SwigV8PropertyCallbackInfoVoid& info) -{ - char buffer[256]; - char msg[512]; - int res; - - v8::Local sproperty; - if (property->ToString(SWIGV8_CURRENT_CONTEXT()).ToLocal(&sproperty)) { - SWIGV8_WRITE_UTF8(sproperty, buffer, 256); - res = sprintf(msg, "Tried to write read-only variable: %s.", buffer); - } - else { - res = -1; - } - - if(res<0) { - SWIG_exception(SWIG_ERROR, "Tried to write read-only variable."); - } else { - SWIG_exception(SWIG_ERROR, msg); - } -fail: ; -} - - - -/* -------- TYPES TABLE (BEGIN) -------- */ - -#define SWIGTYPE_p_C_KZG_RET swig_types[0] -#define SWIGTYPE_p_KZGSettings swig_types[1] -#define SWIGTYPE_p_char swig_types[2] -#define SWIGTYPE_p_uint8_t swig_types[3] -static swig_type_info *swig_types[5]; -static swig_module_info swig_module = {swig_types, 4, 0, 0, 0, 0}; -#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name) -#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name) - -/* -------- TYPES TABLE (END) -------- */ - - - -#define SWIG_as_voidptr(a) (void *)((const void *)(a)) -#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) - - -#include - - -#include "ckzg.h" - - -SWIGINTERN swig_type_info* -SWIG_pchar_descriptor(void) -{ - static int init = 0; - static swig_type_info* info = 0; - if (!init) { - info = SWIG_TypeQuery("_p_char"); - init = 1; - } - return info; -} - - -SWIGINTERN int -SWIG_AsCharPtrAndSize(SWIGV8_VALUE valRef, char** cptr, size_t* psize, int *alloc) -{ - if(valRef->IsString()) { - v8::Local js_str = v8::Local::Cast(valRef); - - size_t len = SWIGV8_UTF8_LENGTH(js_str) + 1; - char* cstr = (char*) (char *)calloc(len, sizeof(char)); - SWIGV8_WRITE_UTF8(js_str, cstr, len); - - if(alloc) *alloc = SWIG_NEWOBJ; - if(psize) *psize = len; - if(cptr) *cptr = cstr; - - return SWIG_OK; - } else { - if(valRef->IsObject()) { - SWIGV8_OBJECT obj = SWIGV8_OBJECT::Cast(valRef); - // try if the object is a wrapped char[] - swig_type_info* pchar_descriptor = SWIG_pchar_descriptor(); - if (pchar_descriptor) { - void* vptr = 0; - if (SWIG_ConvertPtr(obj, &vptr, pchar_descriptor, 0) == SWIG_OK) { - if (cptr) *cptr = (char *) vptr; - if (psize) *psize = vptr ? (strlen((char *)vptr) + 1) : 0; - if (alloc) *alloc = SWIG_OLDOBJ; - return SWIG_OK; - } - } - return SWIG_TypeError; - } else { - return SWIG_TypeError; - } - } -} - - - - - -SWIGINTERNINLINE -SWIGV8_VALUE SWIG_From_int (int value) -{ - return SWIGV8_INT32_NEW(value); -} - - -SWIGINTERN -int SWIG_AsVal_double (SWIGV8_VALUE obj, double *val) -{ - if(!obj->IsNumber()) { - return SWIG_TypeError; - } - if(val) *val = SWIGV8_NUMBER_VALUE(obj); - - return SWIG_OK; -} - - -#include - - -#include - - -SWIGINTERNINLINE int -SWIG_CanCastAsInteger(double *d, double min, double max) { - double x = *d; - if ((min <= x && x <= max)) { - double fx = floor(x); - double cx = ceil(x); - double rd = ((x - fx) < 0.5) ? fx : cx; /* simple rint */ - if ((errno == EDOM) || (errno == ERANGE)) { - errno = 0; - } else { - double summ, reps, diff; - if (rd < x) { - diff = x - rd; - } else if (rd > x) { - diff = rd - x; - } else { - return 1; - } - summ = rd + x; - reps = diff/summ; - if (reps < 8*DBL_EPSILON) { - *d = rd; - return 1; - } - } - } - return 0; -} - - -SWIGINTERN -int SWIG_AsVal_unsigned_SS_long (SWIGV8_VALUE obj, unsigned long *val) -{ - if(!obj->IsNumber()) { - return SWIG_TypeError; - } - - long longVal = (long) SWIGV8_NUMBER_VALUE(obj); - - if(longVal < 0) { - return SWIG_OverflowError; - } - - if(val) *val = longVal; - - return SWIG_OK; -} - - -#include -#if !defined(SWIG_NO_LLONG_MAX) -# if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__) -# define LLONG_MAX __LONG_LONG_MAX__ -# define LLONG_MIN (-LLONG_MAX - 1LL) -# define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL) -# endif -#endif - - -#if defined(LLONG_MAX) && !defined(SWIG_LONG_LONG_AVAILABLE) -# define SWIG_LONG_LONG_AVAILABLE -#endif - - -#ifdef SWIG_LONG_LONG_AVAILABLE -SWIGINTERN -int SWIG_AsVal_unsigned_SS_long_SS_long (SWIGV8_VALUE obj, unsigned long long *val) -{ - if(!obj->IsNumber()) { - return SWIG_TypeError; - } - - long long longVal = (long long) SWIGV8_NUMBER_VALUE(obj); - - if(longVal < 0) { - return SWIG_OverflowError; - } - - if(val) *val = longVal; - - return SWIG_OK; -} -#endif - - -SWIGINTERNINLINE int -SWIG_AsVal_size_t (SWIGV8_VALUE obj, size_t *val) -{ - int res = SWIG_TypeError; -#ifdef SWIG_LONG_LONG_AVAILABLE - if (sizeof(size_t) <= sizeof(unsigned long)) { -#endif - unsigned long v; - res = SWIG_AsVal_unsigned_SS_long (obj, val ? &v : 0); - if (SWIG_IsOK(res) && val) *val = (size_t)(v); -#ifdef SWIG_LONG_LONG_AVAILABLE - } else if (sizeof(size_t) <= sizeof(unsigned long long)) { - unsigned long long v; - res = SWIG_AsVal_unsigned_SS_long_SS_long (obj, val ? &v : 0); - if (SWIG_IsOK(res) && val) *val = (size_t)(v); - } -#endif - return res; -} - - -#define SWIGV8_INIT ckzg_initialize - - - - -static SwigV8ReturnValue _wrap_loadTrustSetup(const SwigV8Arguments &args) { - SWIGV8_HANDLESCOPE(); - - SWIGV8_VALUE jsresult; - char *arg1 = (char *) 0 ; - int res1 ; - char *buf1 = 0 ; - int alloc1 = 0 ; - KZGSettings *result = 0 ; - - if(args.Length() != 1) SWIG_exception_fail(SWIG_ERROR, "Illegal number of arguments for _wrap_loadTrustSetup."); - - res1 = SWIG_AsCharPtrAndSize(args[0], &buf1, NULL, &alloc1); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "loadTrustSetup" "', argument " "1"" of type '" "char const *""'"); - } - arg1 = (char *)(buf1); - result = (KZGSettings *)loadTrustSetup((char const *)arg1); - jsresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_KZGSettings, 0 | 0 ); - if (alloc1 == SWIG_NEWOBJ) free((char*)buf1); - - SWIGV8_RETURN(jsresult); - - goto fail; -fail: - SWIGV8_RETURN(SWIGV8_UNDEFINED()); -} - - -static SwigV8ReturnValue _wrap_freeTrustedSetup(const SwigV8Arguments &args) { - SWIGV8_HANDLESCOPE(); - - SWIGV8_VALUE jsresult; - KZGSettings *arg1 = (KZGSettings *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - - if(args.Length() != 1) SWIG_exception_fail(SWIG_ERROR, "Illegal number of arguments for _wrap_freeTrustedSetup."); - - res1 = SWIG_ConvertPtr(args[0], &argp1,SWIGTYPE_p_KZGSettings, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "freeTrustedSetup" "', argument " "1"" of type '" "KZGSettings *""'"); - } - arg1 = (KZGSettings *)(argp1); - freeTrustedSetup(arg1); - jsresult = SWIGV8_UNDEFINED(); - - - SWIGV8_RETURN(jsresult); - - goto fail; -fail: - SWIGV8_RETURN(SWIGV8_UNDEFINED()); -} - - -static SwigV8ReturnValue _wrap_blobToKzgCommitment(const SwigV8Arguments &args) { - SWIGV8_HANDLESCOPE(); - - SWIGV8_VALUE jsresult; - uint8_t *arg1 ; - uint8_t *arg2 ; - KZGSettings *arg3 = (KZGSettings *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - void *argp2 = 0 ; - int res2 = 0 ; - void *argp3 = 0 ; - int res3 = 0 ; - - if(args.Length() != 3) SWIG_exception_fail(SWIG_ERROR, "Illegal number of arguments for _wrap_blobToKzgCommitment."); - - res1 = SWIG_ConvertPtr(args[0], &argp1,SWIGTYPE_p_uint8_t, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "blobToKzgCommitment" "', argument " "1"" of type '" "uint8_t [48]""'"); - } - arg1 = (uint8_t *)(argp1); - res2 = SWIG_ConvertPtr(args[1], &argp2,SWIGTYPE_p_uint8_t, 0 | 0 ); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "blobToKzgCommitment" "', argument " "2"" of type '" "uint8_t const [FIELD_ELEMENTS_PER_BLOB*32]""'"); - } - arg2 = (uint8_t *)(argp2); - res3 = SWIG_ConvertPtr(args[2], &argp3,SWIGTYPE_p_KZGSettings, 0 | 0 ); - if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "blobToKzgCommitment" "', argument " "3"" of type '" "KZGSettings const *""'"); - } - arg3 = (KZGSettings *)(argp3); - blobToKzgCommitment(arg1,(uint8_t const (*))arg2,(KZGSettings const *)arg3); - jsresult = SWIGV8_UNDEFINED(); - - - - - SWIGV8_RETURN(jsresult); - - goto fail; -fail: - SWIGV8_RETURN(SWIGV8_UNDEFINED()); -} - - -static SwigV8ReturnValue _wrap_verifyKzgProof(const SwigV8Arguments &args) { - SWIGV8_HANDLESCOPE(); - - SWIGV8_VALUE jsresult; - uint8_t *arg1 ; - uint8_t *arg2 ; - uint8_t *arg3 ; - uint8_t *arg4 ; - KZGSettings *arg5 = (KZGSettings *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - void *argp2 = 0 ; - int res2 = 0 ; - void *argp3 = 0 ; - int res3 = 0 ; - void *argp4 = 0 ; - int res4 = 0 ; - void *argp5 = 0 ; - int res5 = 0 ; - int result; - - if(args.Length() != 5) SWIG_exception_fail(SWIG_ERROR, "Illegal number of arguments for _wrap_verifyKzgProof."); - - res1 = SWIG_ConvertPtr(args[0], &argp1,SWIGTYPE_p_uint8_t, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "verifyKzgProof" "', argument " "1"" of type '" "uint8_t const [48]""'"); - } - arg1 = (uint8_t *)(argp1); - res2 = SWIG_ConvertPtr(args[1], &argp2,SWIGTYPE_p_uint8_t, 0 | 0 ); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "verifyKzgProof" "', argument " "2"" of type '" "uint8_t const [32]""'"); - } - arg2 = (uint8_t *)(argp2); - res3 = SWIG_ConvertPtr(args[2], &argp3,SWIGTYPE_p_uint8_t, 0 | 0 ); - if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "verifyKzgProof" "', argument " "3"" of type '" "uint8_t const [32]""'"); - } - arg3 = (uint8_t *)(argp3); - res4 = SWIG_ConvertPtr(args[3], &argp4,SWIGTYPE_p_uint8_t, 0 | 0 ); - if (!SWIG_IsOK(res4)) { - SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "verifyKzgProof" "', argument " "4"" of type '" "uint8_t const [48]""'"); - } - arg4 = (uint8_t *)(argp4); - res5 = SWIG_ConvertPtr(args[4], &argp5,SWIGTYPE_p_KZGSettings, 0 | 0 ); - if (!SWIG_IsOK(res5)) { - SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "verifyKzgProof" "', argument " "5"" of type '" "KZGSettings *""'"); - } - arg5 = (KZGSettings *)(argp5); - result = (int)verifyKzgProof((uint8_t const (*))arg1,(uint8_t const (*))arg2,(uint8_t const (*))arg3,(uint8_t const (*))arg4,arg5); - jsresult = SWIG_From_int((int)(result)); - - - - - - - SWIGV8_RETURN(jsresult); - - goto fail; -fail: - SWIGV8_RETURN(SWIGV8_UNDEFINED()); -} - - -static SwigV8ReturnValue _wrap_verifyAggregateKzgProof(const SwigV8Arguments &args) { - SWIGV8_HANDLESCOPE(); - - SWIGV8_VALUE jsresult; - uint8_t *arg1 ; - uint8_t *arg2 ; - size_t arg3 ; - uint8_t *arg4 ; - KZGSettings *arg5 = (KZGSettings *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - void *argp2 = 0 ; - int res2 = 0 ; - size_t val3 ; - int ecode3 = 0 ; - void *argp4 = 0 ; - int res4 = 0 ; - void *argp5 = 0 ; - int res5 = 0 ; - int result; - - if(args.Length() != 5) SWIG_exception_fail(SWIG_ERROR, "Illegal number of arguments for _wrap_verifyAggregateKzgProof."); - - res1 = SWIG_ConvertPtr(args[0], &argp1,SWIGTYPE_p_uint8_t, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "verifyAggregateKzgProof" "', argument " "1"" of type '" "uint8_t const []""'"); - } - arg1 = (uint8_t *)(argp1); - res2 = SWIG_ConvertPtr(args[1], &argp2,SWIGTYPE_p_uint8_t, 0 | 0 ); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "verifyAggregateKzgProof" "', argument " "2"" of type '" "uint8_t const []""'"); - } - arg2 = (uint8_t *)(argp2); - ecode3 = SWIG_AsVal_size_t(args[2], &val3); - if (!SWIG_IsOK(ecode3)) { - SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "verifyAggregateKzgProof" "', argument " "3"" of type '" "size_t""'"); - } - arg3 = (size_t)(val3); - res4 = SWIG_ConvertPtr(args[3], &argp4,SWIGTYPE_p_uint8_t, 0 | 0 ); - if (!SWIG_IsOK(res4)) { - SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "verifyAggregateKzgProof" "', argument " "4"" of type '" "uint8_t const [48]""'"); - } - arg4 = (uint8_t *)(argp4); - res5 = SWIG_ConvertPtr(args[4], &argp5,SWIGTYPE_p_KZGSettings, 0 | 0 ); - if (!SWIG_IsOK(res5)) { - SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "verifyAggregateKzgProof" "', argument " "5"" of type '" "KZGSettings const *""'"); - } - arg5 = (KZGSettings *)(argp5); - result = (int)verifyAggregateKzgProof((uint8_t const (*))arg1,(uint8_t const (*))arg2,arg3,(uint8_t const (*))arg4,(KZGSettings const *)arg5); - jsresult = SWIG_From_int((int)(result)); - - - - - - - SWIGV8_RETURN(jsresult); - - goto fail; -fail: - SWIGV8_RETURN(SWIGV8_UNDEFINED()); -} - - -static SwigV8ReturnValue _wrap_computeAggregateKzgProof(const SwigV8Arguments &args) { - SWIGV8_HANDLESCOPE(); - - SWIGV8_VALUE jsresult; - uint8_t *arg1 ; - uint8_t *arg2 ; - size_t arg3 ; - KZGSettings *arg4 = (KZGSettings *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - void *argp2 = 0 ; - int res2 = 0 ; - size_t val3 ; - int ecode3 = 0 ; - void *argp4 = 0 ; - int res4 = 0 ; - C_KZG_RET result; - - if(args.Length() != 4) SWIG_exception_fail(SWIG_ERROR, "Illegal number of arguments for _wrap_computeAggregateKzgProof."); - - res1 = SWIG_ConvertPtr(args[0], &argp1,SWIGTYPE_p_uint8_t, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "computeAggregateKzgProof" "', argument " "1"" of type '" "uint8_t [48]""'"); - } - arg1 = (uint8_t *)(argp1); - res2 = SWIG_ConvertPtr(args[1], &argp2,SWIGTYPE_p_uint8_t, 0 | 0 ); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "computeAggregateKzgProof" "', argument " "2"" of type '" "uint8_t const []""'"); - } - arg2 = (uint8_t *)(argp2); - ecode3 = SWIG_AsVal_size_t(args[2], &val3); - if (!SWIG_IsOK(ecode3)) { - SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "computeAggregateKzgProof" "', argument " "3"" of type '" "size_t""'"); - } - arg3 = (size_t)(val3); - res4 = SWIG_ConvertPtr(args[3], &argp4,SWIGTYPE_p_KZGSettings, 0 | 0 ); - if (!SWIG_IsOK(res4)) { - SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "computeAggregateKzgProof" "', argument " "4"" of type '" "KZGSettings const *""'"); - } - arg4 = (KZGSettings *)(argp4); - result = computeAggregateKzgProof(arg1,(uint8_t const (*))arg2,arg3,(KZGSettings const *)arg4); - jsresult = SWIG_NewPointerObj((C_KZG_RET *)memcpy((C_KZG_RET *)calloc(1,sizeof(C_KZG_RET)),&result,sizeof(C_KZG_RET)), SWIGTYPE_p_C_KZG_RET, SWIG_POINTER_OWN | 0 ); - - - - - - SWIGV8_RETURN(jsresult); - - goto fail; -fail: - SWIGV8_RETURN(SWIGV8_UNDEFINED()); -} - - -/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */ - -static swig_type_info _swigt__p_C_KZG_RET = {"_p_C_KZG_RET", "C_KZG_RET *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_KZGSettings = {"_p_KZGSettings", "KZGSettings *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_uint8_t = {"_p_uint8_t", "uint8_t *", 0, 0, (void*)0, 0}; - -static swig_type_info *swig_type_initial[] = { - &_swigt__p_C_KZG_RET, - &_swigt__p_KZGSettings, - &_swigt__p_char, - &_swigt__p_uint8_t, -}; - -static swig_cast_info _swigc__p_C_KZG_RET[] = { {&_swigt__p_C_KZG_RET, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_KZGSettings[] = { {&_swigt__p_KZGSettings, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_char[] = { {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_uint8_t[] = { {&_swigt__p_uint8_t, 0, 0, 0},{0, 0, 0, 0}}; - -static swig_cast_info *swig_cast_initial[] = { - _swigc__p_C_KZG_RET, - _swigc__p_KZGSettings, - _swigc__p_char, - _swigc__p_uint8_t, -}; - - -/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */ - - - - -SWIGRUNTIME void -SWIG_V8_SetModule(v8::Local context, swig_module_info *swig_module) { - v8::Local global_obj = context->Global(); - v8::Local mod = SWIGV8_EXTERNAL_NEW(swig_module); - assert(!mod.IsEmpty()); - v8::Local privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("swig_module_info_data")); - global_obj->SetPrivate(context, privateKey, mod); -} - -SWIGRUNTIME swig_module_info * -SWIG_V8_GetModule(v8::Local context) { - v8::Local global_obj = context->Global(); - v8::Local privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("swig_module_info_data")); - v8::Local moduleinfo; - if (!global_obj->GetPrivate(context, privateKey).ToLocal(&moduleinfo)) - return 0; - - if (moduleinfo.IsEmpty() || moduleinfo->IsNull() || moduleinfo->IsUndefined()) - { - // It's not yet loaded - return 0; - } - - v8::Local moduleinfo_extern = v8::Local::Cast(moduleinfo); - - if (moduleinfo_extern.IsEmpty() || moduleinfo_extern->IsNull() || moduleinfo_extern->IsUndefined()) - { - // Something's not right - return 0; - } - - void *ptr = moduleinfo_extern->Value(); - assert(ptr); - swig_module_info *retptr = static_cast(ptr); - assert(retptr); - return retptr; -} - -#define SWIG_GetModule(clientdata) SWIG_V8_GetModule(clientdata) -#define SWIG_SetModule(clientdata, pointer) SWIG_V8_SetModule(clientdata, pointer) -#define SWIG_INIT_CLIENT_DATA_TYPE v8::Local - - -/* ----------------------------------------------------------------------------- - * Type initialization: - * This problem is tough by the requirement that no dynamic - * memory is used. Also, since swig_type_info structures store pointers to - * swig_cast_info structures and swig_cast_info structures store pointers back - * to swig_type_info structures, we need some lookup code at initialization. - * The idea is that swig generates all the structures that are needed. - * The runtime then collects these partially filled structures. - * The SWIG_InitializeModule function takes these initial arrays out of - * swig_module, and does all the lookup, filling in the swig_module.types - * array with the correct data and linking the correct swig_cast_info - * structures together. - * - * The generated swig_type_info structures are assigned statically to an initial - * array. We just loop through that array, and handle each type individually. - * First we lookup if this type has been already loaded, and if so, use the - * loaded structure instead of the generated one. Then we have to fill in the - * cast linked list. The cast data is initially stored in something like a - * two-dimensional array. Each row corresponds to a type (there are the same - * number of rows as there are in the swig_type_initial array). Each entry in - * a column is one of the swig_cast_info structures for that type. - * The cast_initial array is actually an array of arrays, because each row has - * a variable number of columns. So to actually build the cast linked list, - * we find the array of casts associated with the type, and loop through it - * adding the casts to the list. The one last trick we need to do is making - * sure the type pointer in the swig_cast_info struct is correct. - * - * First off, we lookup the cast->type name to see if it is already loaded. - * There are three cases to handle: - * 1) If the cast->type has already been loaded AND the type we are adding - * casting info to has not been loaded (it is in this module), THEN we - * replace the cast->type pointer with the type pointer that has already - * been loaded. - * 2) If BOTH types (the one we are adding casting info to, and the - * cast->type) are loaded, THEN the cast info has already been loaded by - * the previous module so we just ignore it. - * 3) Finally, if cast->type has not already been loaded, then we add that - * swig_cast_info to the linked list (because the cast->type) pointer will - * be correct. - * ----------------------------------------------------------------------------- */ - -#ifdef __cplusplus -extern "C" { -#if 0 -} /* c-mode */ -#endif -#endif - -#if 0 -#define SWIGRUNTIME_DEBUG -#endif - -#ifndef SWIG_INIT_CLIENT_DATA_TYPE -#define SWIG_INIT_CLIENT_DATA_TYPE void * -#endif - -SWIGRUNTIME void -SWIG_InitializeModule(SWIG_INIT_CLIENT_DATA_TYPE clientdata) { - size_t i; - swig_module_info *module_head, *iter; - int init; - - /* check to see if the circular list has been setup, if not, set it up */ - if (swig_module.next==0) { - /* Initialize the swig_module */ - swig_module.type_initial = swig_type_initial; - swig_module.cast_initial = swig_cast_initial; - swig_module.next = &swig_module; - init = 1; - } else { - init = 0; - } - - /* Try and load any already created modules */ - module_head = SWIG_GetModule(clientdata); - if (!module_head) { - /* This is the first module loaded for this interpreter */ - /* so set the swig module into the interpreter */ - SWIG_SetModule(clientdata, &swig_module); - } else { - /* the interpreter has loaded a SWIG module, but has it loaded this one? */ - iter=module_head; - do { - if (iter==&swig_module) { - /* Our module is already in the list, so there's nothing more to do. */ - return; - } - iter=iter->next; - } while (iter!= module_head); - - /* otherwise we must add our module into the list */ - swig_module.next = module_head->next; - module_head->next = &swig_module; - } - - /* When multiple interpreters are used, a module could have already been initialized in - a different interpreter, but not yet have a pointer in this interpreter. - In this case, we do not want to continue adding types... everything should be - set up already */ - if (init == 0) return; - - /* Now work on filling in swig_module.types */ -#ifdef SWIGRUNTIME_DEBUG - printf("SWIG_InitializeModule: size %lu\n", (unsigned long)swig_module.size); -#endif - for (i = 0; i < swig_module.size; ++i) { - swig_type_info *type = 0; - swig_type_info *ret; - swig_cast_info *cast; - -#ifdef SWIGRUNTIME_DEBUG - printf("SWIG_InitializeModule: type %lu %s\n", (unsigned long)i, swig_module.type_initial[i]->name); -#endif - - /* if there is another module already loaded */ - if (swig_module.next != &swig_module) { - type = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, swig_module.type_initial[i]->name); - } - if (type) { - /* Overwrite clientdata field */ -#ifdef SWIGRUNTIME_DEBUG - printf("SWIG_InitializeModule: found type %s\n", type->name); -#endif - if (swig_module.type_initial[i]->clientdata) { - type->clientdata = swig_module.type_initial[i]->clientdata; -#ifdef SWIGRUNTIME_DEBUG - printf("SWIG_InitializeModule: found and overwrite type %s \n", type->name); -#endif - } - } else { - type = swig_module.type_initial[i]; - } - - /* Insert casting types */ - cast = swig_module.cast_initial[i]; - while (cast->type) { - - /* Don't need to add information already in the list */ - ret = 0; -#ifdef SWIGRUNTIME_DEBUG - printf("SWIG_InitializeModule: look cast %s\n", cast->type->name); -#endif - if (swig_module.next != &swig_module) { - ret = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, cast->type->name); -#ifdef SWIGRUNTIME_DEBUG - if (ret) printf("SWIG_InitializeModule: found cast %s\n", ret->name); -#endif - } - if (ret) { - if (type == swig_module.type_initial[i]) { -#ifdef SWIGRUNTIME_DEBUG - printf("SWIG_InitializeModule: skip old type %s\n", ret->name); -#endif - cast->type = ret; - ret = 0; - } else { - /* Check for casting already in the list */ - swig_cast_info *ocast = SWIG_TypeCheck(ret->name, type); -#ifdef SWIGRUNTIME_DEBUG - if (ocast) printf("SWIG_InitializeModule: skip old cast %s\n", ret->name); -#endif - if (!ocast) ret = 0; - } - } - - if (!ret) { -#ifdef SWIGRUNTIME_DEBUG - printf("SWIG_InitializeModule: adding cast %s\n", cast->type->name); -#endif - if (type->cast) { - type->cast->prev = cast; - cast->next = type->cast; - } - type->cast = cast; - } - cast++; - } - /* Set entry in modules->types array equal to the type */ - swig_module.types[i] = type; - } - swig_module.types[i] = 0; - -#ifdef SWIGRUNTIME_DEBUG - printf("**** SWIG_InitializeModule: Cast List ******\n"); - for (i = 0; i < swig_module.size; ++i) { - int j = 0; - swig_cast_info *cast = swig_module.cast_initial[i]; - printf("SWIG_InitializeModule: type %lu %s\n", (unsigned long)i, swig_module.type_initial[i]->name); - while (cast->type) { - printf("SWIG_InitializeModule: cast type %s\n", cast->type->name); - cast++; - ++j; - } - printf("---- Total casts: %d\n",j); - } - printf("**** SWIG_InitializeModule: Cast List ******\n"); -#endif -} - -/* This function will propagate the clientdata field of type to -* any new swig_type_info structures that have been added into the list -* of equivalent types. It is like calling -* SWIG_TypeClientData(type, clientdata) a second time. -*/ -SWIGRUNTIME void -SWIG_PropagateClientData(void) { - size_t i; - swig_cast_info *equiv; - static int init_run = 0; - - if (init_run) return; - init_run = 1; - - for (i = 0; i < swig_module.size; i++) { - if (swig_module.types[i]->clientdata) { - equiv = swig_module.types[i]->cast; - while (equiv) { - if (!equiv->converter) { - if (equiv->type && !equiv->type->clientdata) - SWIG_TypeClientData(equiv->type, swig_module.types[i]->clientdata); - } - equiv = equiv->next; - } - } - } -} - -#ifdef __cplusplus -#if 0 -{ /* c-mode */ -#endif -} -#endif - - -#if !defined(NODE_MODULE_VERSION) || (NODE_MODULE_VERSION < 12) -// Note: 'extern "C"'' disables name mangling which makes it easier to load the symbol manually -extern "C" void SWIGV8_INIT (SWIGV8_OBJECT exports_obj) -#elif (NODE_MODULE_VERSION < 64) -void SWIGV8_INIT (SWIGV8_OBJECT exports_obj, SWIGV8_VALUE /*module*/, void*) -#else -void SWIGV8_INIT (SWIGV8_OBJECT exports_obj, SWIGV8_VALUE /*module*/, v8::Local context, void*) -#endif -{ -#if !defined(NODE_MODULE_VERSION) || NODE_MODULE_VERSION < 64 - v8::Local context = SWIGV8_CURRENT_CONTEXT(); -#endif - - SWIG_InitializeModule(context); - - - // a class template for creating proxies of undefined types - SWIGV8_SET_CLASS_TEMPL(SWIGV8_SWIGTYPE_Proxy_class_templ, SWIGV8_CreateClassTemplate("SwigProxy")); - - /* create objects for namespaces */ - - - /* create class templates */ - - - /* register wrapper functions */ - - - /* setup inheritances */ - - - /* class instances */ - - - /* add static class functions and variables */ - SWIGV8_AddStaticFunction(exports_obj, "loadTrustSetup", _wrap_loadTrustSetup, context); -SWIGV8_AddStaticFunction(exports_obj, "freeTrustedSetup", _wrap_freeTrustedSetup, context); -SWIGV8_AddStaticFunction(exports_obj, "blobToKzgCommitment", _wrap_blobToKzgCommitment, context); -SWIGV8_AddStaticFunction(exports_obj, "verifyKzgProof", _wrap_verifyKzgProof, context); -SWIGV8_AddStaticFunction(exports_obj, "verifyAggregateKzgProof", _wrap_verifyAggregateKzgProof, context); -SWIGV8_AddStaticFunction(exports_obj, "computeAggregateKzgProof", _wrap_computeAggregateKzgProof, context); - - - /* register classes */ - - - /* create and register namespace objects */ - -} - -#if defined(BUILDING_NODE_EXTENSION) -#if (NODE_MODULE_VERSION < 64) -NODE_MODULE(ckzg, ckzg_initialize) -#else -NODE_MODULE_CONTEXT_AWARE(ckzg, ckzg_initialize) -#endif -#endif diff --git a/bindings/node.js/runnable.js b/bindings/node.js/runnable.js index 7599098..abada17 100644 --- a/bindings/node.js/runnable.js +++ b/bindings/node.js/runnable.js @@ -6,4 +6,6 @@ const kzg = require('ckzg'); console.log(kzg); -kzg.testFunction(); +console.log('Invoking function...', kzg.testFunction()); + +console.log('Invoking freeTrustedSetup...', kzg.freeTrustedSetup(null));