1 package org.ldk.structs;
3 import org.ldk.impl.bindings;
4 import org.ldk.enums.*;
6 import java.util.Arrays;
7 import java.lang.ref.Reference;
8 import javax.annotation.Nullable;
10 public class WitnessProgram extends CommonBase {
11 /** The witness program bytes themselves */
12 public final byte[] program;
13 /** The witness version */
14 public final WitnessVersion version;
16 WitnessProgram(java.lang.Object _dummy, long ptr) {
18 this.program = bindings.WitnessProgram_get_program(ptr);
19 this.version = new WitnessVersion(bindings.WitnessProgram_get_version(ptr));
21 static byte check_args(byte[] program, WitnessVersion version) {
22 if (program.length < 2 || program.length > 40) throw new IllegalArgumentException();
23 if (version.getVal() == 0 && program.length != 20 && program.length != 32) throw new IllegalArgumentException();
24 return version.getVal();
26 public WitnessProgram(byte[] program, WitnessVersion version) {
27 super(bindings.WitnessProgram_new(check_args(program, version), program));
28 this.program = bindings.WitnessProgram_get_program(ptr);
29 this.version = new WitnessVersion(bindings.WitnessProgram_get_version(ptr));
32 @Override @SuppressWarnings("deprecation")
33 protected void finalize() throws Throwable {
35 if (ptr != 0) { bindings.WitnessProgram_free(ptr); }