[Java] Update auto-generated Java bindings to LDK 0.0.121
[ldk-java] / src / main / java / org / ldk / structs / WitnessProgram.java
1 package org.ldk.structs;
2
3 import org.ldk.impl.bindings;
4 import org.ldk.enums.*;
5 import org.ldk.util.*;
6 import java.util.Arrays;
7 import java.lang.ref.Reference;
8 import javax.annotation.Nullable;
9
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;
15
16         WitnessProgram(java.lang.Object _dummy, long ptr) {
17                 super(ptr);
18                 this.program = bindings.WitnessProgram_get_program(ptr);
19                 this.version = new WitnessVersion(bindings.WitnessProgram_get_version(ptr));
20         }
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();
25         }
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));
30         }
31
32         @Override @SuppressWarnings("deprecation")
33         protected void finalize() throws Throwable {
34                 super.finalize();
35                 if (ptr != 0) { bindings.WitnessProgram_free(ptr); }
36         }
37 }