1 package org.ldk.structs;
3 import org.ldk.impl.bindings;
4 import org.ldk.enums.*;
6 import java.util.Arrays;
7 import javax.annotation.Nullable;
11 * Represents an syntactically correct Invoice for a payment on the lightning network,
12 * but without the signature information.
13 * De- and encoding should not lead to information loss but may lead to different hashes.
15 * For methods without docs see the corresponding methods in `Invoice`.
17 @SuppressWarnings("unchecked") // We correctly assign various generic arrays
18 public class RawInvoice extends CommonBase {
19 RawInvoice(Object _dummy, long ptr) { super(ptr); }
20 @Override @SuppressWarnings("deprecation")
21 protected void finalize() throws Throwable {
23 if (ptr != 0) { bindings.RawInvoice_free(ptr); }
29 public RawDataPart get_data() {
30 long ret = bindings.RawInvoice_get_data(this.ptr);
31 if (ret < 1024) { return null; }
32 RawDataPart ret_hu_conv = new RawDataPart(null, ret);
33 ret_hu_conv.ptrs_to.add(this);
40 public void set_data(RawDataPart val) {
41 bindings.RawInvoice_set_data(this.ptr, val == null ? 0 : val.ptr & ~1);
45 * Checks if two RawInvoices contain equal inner contents.
46 * This ignores pointers and is_owned flags and looks at the values in fields.
47 * Two objects with NULL inner values will be considered "equal" here.
49 public boolean eq(RawInvoice b) {
50 boolean ret = bindings.RawInvoice_eq(this.ptr, b == null ? 0 : b.ptr & ~1);
56 * Creates a copy of the RawInvoice
58 public RawInvoice clone() {
59 long ret = bindings.RawInvoice_clone(this.ptr);
60 if (ret < 1024) { return null; }
61 RawInvoice ret_hu_conv = new RawInvoice(null, ret);
62 ret_hu_conv.ptrs_to.add(this);
67 * Calculate the hash of the encoded `RawInvoice`
69 public byte[] hash() {
70 byte[] ret = bindings.RawInvoice_hash(this.ptr);
75 * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None
78 public Sha256 payment_hash() {
79 long ret = bindings.RawInvoice_payment_hash(this.ptr);
80 if (ret < 1024) { return null; }
81 Sha256 ret_hu_conv = new Sha256(null, ret);
82 ret_hu_conv.ptrs_to.add(this);
87 * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None
90 public Description description() {
91 long ret = bindings.RawInvoice_description(this.ptr);
92 if (ret < 1024) { return null; }
93 Description ret_hu_conv = new Description(null, ret);
94 ret_hu_conv.ptrs_to.add(this);
99 * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None
102 public PayeePubKey payee_pub_key() {
103 long ret = bindings.RawInvoice_payee_pub_key(this.ptr);
104 if (ret < 1024) { return null; }
105 PayeePubKey ret_hu_conv = new PayeePubKey(null, ret);
106 ret_hu_conv.ptrs_to.add(this);
111 * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None
114 public Sha256 description_hash() {
115 long ret = bindings.RawInvoice_description_hash(this.ptr);
116 if (ret < 1024) { return null; }
117 Sha256 ret_hu_conv = new Sha256(null, ret);
118 ret_hu_conv.ptrs_to.add(this);
123 * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None
126 public ExpiryTime expiry_time() {
127 long ret = bindings.RawInvoice_expiry_time(this.ptr);
128 if (ret < 1024) { return null; }
129 ExpiryTime ret_hu_conv = new ExpiryTime(null, ret);
130 ret_hu_conv.ptrs_to.add(this);
135 * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None
138 public MinFinalCltvExpiry min_final_cltv_expiry() {
139 long ret = bindings.RawInvoice_min_final_cltv_expiry(this.ptr);
140 if (ret < 1024) { return null; }
141 MinFinalCltvExpiry ret_hu_conv = new MinFinalCltvExpiry(null, ret);
142 ret_hu_conv.ptrs_to.add(this);
147 * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None
150 public byte[] payment_secret() {
151 byte[] ret = bindings.RawInvoice_payment_secret(this.ptr);
156 * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None
159 public InvoiceFeatures features() {
160 long ret = bindings.RawInvoice_features(this.ptr);
161 if (ret < 1024) { return null; }
162 InvoiceFeatures ret_hu_conv = new InvoiceFeatures(null, ret);
163 ret_hu_conv.ptrs_to.add(this);
167 public PrivateRoute[] private_routes() {
168 long[] ret = bindings.RawInvoice_private_routes(this.ptr);
169 PrivateRoute[] ret_conv_14_arr = new PrivateRoute[ret.length];
170 for (int o = 0; o < ret.length; o++) {
171 long ret_conv_14 = ret[o];
172 PrivateRoute ret_conv_14_hu_conv = new PrivateRoute(null, ret_conv_14);
173 ret_conv_14_hu_conv.ptrs_to.add(this);
174 ret_conv_14_arr[o] = ret_conv_14_hu_conv;
176 return ret_conv_14_arr;
179 public Option_u64Z amount_pico_btc() {
180 long ret = bindings.RawInvoice_amount_pico_btc(this.ptr);
181 if (ret < 1024) { return null; }
182 Option_u64Z ret_hu_conv = Option_u64Z.constr_from_ptr(ret);
183 ret_hu_conv.ptrs_to.add(this);
187 public Currency currency() {
188 Currency ret = bindings.RawInvoice_currency(this.ptr);