}
const fn_list = ["uuuuuu", "buuuuu", "bbuuuu", "bbbuuu", "bbbbuu", "bbbbbu",
- "bbbbbb", "ubuubu", "ubuuuu", "ubbuuu", "uubuuu", "uububu", "ububuu"];
+ "bbbbbb", "ubuubu", "ubuuuu", "ubbuuu", "uubuuu", "uubbuu", "uububu", "ububuu"];
/* @internal */
export async function initializeWasmFromUint8Array(wasmBinary: Uint8Array) {
}"""
self.obj_defined(["BigEndianScalar"], "structs")
+ self.witness_program_defn = """export class WitnessProgram extends CommonBase {
+ /** The witness program bytes themselves */
+ public program: Uint8Array;
+ /** The witness program version */
+ public version: WitnessVersion;
+
+ /* @internal */
+ public constructor(_dummy: null, ptr: bigint) {
+ super(ptr, bindings.WitnessProgram_free);
+ this.program = bindings.decodeUint8Array(bindings.WitnessProgram_get_program(ptr));
+ this.version = new WitnessVersion(bindings.WitnessProgram_get_version(ptr));
+ }
+ public static constructor_new(program: Uint8Array, version: WitnessVersion): WitnessProgram {
+ if (program.length < 2 || program.length > 40)
+ throw new Error("WitnessProgram must be between 2 and 40 bytes long");
+ if (version.getVal() == 0 && program.length != 20 && program.length != 32)
+ throw new Error("WitnessProgram for version 0 must be between either 20 or 30 bytes");
+ return new WitnessProgram(null, bindings.WitnessProgram_new(version.getVal(), bindings.encodeUint8Array(program)));
+ }
+}"""
+ self.obj_defined(["WitnessProgram"], "structs")
+
self.c_file_pfx = """#include "js-wasm.h"
#include <stdatomic.h>
#include <lightning.h>
self.usize_c_ty = "uint32_t"
self.usize_native_ty = "number"
self.native_zero_ptr = "0n"
- self.result_c_ty = "uint32_t"
+ self.unitary_enum_c_ty = "uint32_t"
self.ptr_arr = "ptrArray"
self.is_arr_some_check = ("", " != 0")
self.get_native_arr_len_call = ("", "->arr_len")
out_c += "\t" + struct_name + " *obj = (" + struct_name + "*)untag_ptr(ptr);\n"
out_c += f"\tassert(obj->tag == {struct_name}_{var.var_name});\n"
if field_map.ret_conv is not None:
- out_c += ("\t\t\t" + field_map.ret_conv[0].replace("\n", "\n\t\t\t"))
+ out_c += ("\t" + field_map.ret_conv[0].replace("\n", "\n\t"))
if var.tuple_variant:
out_c += "obj->" + camel_to_snake(var.var_name)
else: