X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=java_strings.py;h=fe3b498181ebf1d67ee054c3f16c47605ea3ebc5;hb=3d1f246d05172683acd3b81836de4e4e9f0c1afd;hp=abe038d0f403a74bb0ba2735818d087921b3248d;hpb=7811d2191440c55034e1abfbf3be442d4b25481b;p=ldk-java diff --git a/java_strings.py b/java_strings.py index abe038d0..fe3b4981 100644 --- a/java_strings.py +++ b/java_strings.py @@ -184,6 +184,34 @@ class CommonBase { } }""" + 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 // On OSX jlong (ie long long) is not equivalent to int64_t, so we override here @@ -627,7 +655,7 @@ import javax.annotation.Nullable; 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, ", ")")