}
}"""
+ self.witness_program_defn = """public class WitnessProgram extends CommonBase {
+ /** The witness program bytes themselves */
+ public final byte[] program;
+ /** The witness version */
+ public final WitnessVersion version;
+
+ WitnessProgram(java.lang.Object _dummy, long ptr) {
+ super(ptr);
+ this.program = bindings.WitnessProgram_get_program(ptr);
+ this.version = new WitnessVersion(bindings.WitnessProgram_get_version(ptr));
+ }
+ static byte check_args(byte[] program, WitnessVersion version) {
+ if (program.length < 2 || program.length > 40) throw new IllegalArgumentException();
+ if (version.getVal() == 0 && program.length != 20 && program.length != 32) throw new IllegalArgumentException();
+ return version.getVal();
+ }
+ public WitnessProgram(byte[] program, WitnessVersion version) {
+ super(bindings.WitnessProgram_new(check_args(program, version), program));
+ this.program = bindings.WitnessProgram_get_program(ptr);
+ this.version = new WitnessVersion(bindings.WitnessProgram_get_version(ptr));
+ }
+
+ @Override @SuppressWarnings(\"deprecation\")
+ protected void finalize() throws Throwable {
+ super.finalize();
+ if (ptr != 0) { bindings.WitnessProgram_free(ptr); }
+ }
+}"""
self.c_file_pfx = """#include <jni.h>
// On OSX jlong (ie long long) is not equivalent to int64_t, so we override here
self.usize_c_ty = "int64_t"
self.usize_native_ty = "long"
self.native_zero_ptr = "0"
- self.result_c_ty = "jclass"
+ self.unitary_enum_c_ty = "jclass"
self.ptr_arr = "jobjectArray"
self.is_arr_some_check = ("", " != NULL")
self.get_native_arr_len_call = ("(*env)->GetArrayLength(env, ", ")")