1 package org.ldk.structs;
3 import org.ldk.impl.bindings;
4 import org.ldk.enums.*;
6 import java.util.Arrays;
10 * Represents an syntactically correct Invoice for a payment on the lightning network,
11 * but without the signature information.
12 * De- and encoding should not lead to information loss but may lead to different hashes.
14 * For methods without docs see the corresponding methods in `Invoice`.
16 @SuppressWarnings("unchecked") // We correctly assign various generic arrays
17 public class RawInvoice extends CommonBase {
18 RawInvoice(Object _dummy, long ptr) { super(ptr); }
19 @Override @SuppressWarnings("deprecation")
20 protected void finalize() throws Throwable {
22 if (ptr != 0) { bindings.RawInvoice_free(ptr); }
28 public RawDataPart get_data() {
29 long ret = bindings.RawInvoice_get_data(this.ptr);
30 if (ret < 1024) { return null; }
31 RawDataPart ret_hu_conv = new RawDataPart(null, ret);
32 ret_hu_conv.ptrs_to.add(this);
39 public void set_data(RawDataPart val) {
40 bindings.RawInvoice_set_data(this.ptr, val == null ? 0 : val.ptr & ~1);
41 this.ptrs_to.add(val);
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);
170 public PrivateRoute[] private_routes() {
171 long[] ret = bindings.RawInvoice_private_routes(this.ptr);
172 PrivateRoute[] ret_conv_14_arr = new PrivateRoute[ret.length];
173 for (int o = 0; o < ret.length; o++) {
174 long ret_conv_14 = ret[o];
175 PrivateRoute ret_conv_14_hu_conv = new PrivateRoute(null, ret_conv_14);
176 ret_conv_14_hu_conv.ptrs_to.add(this);
177 ret_conv_14_arr[o] = ret_conv_14_hu_conv;
179 return ret_conv_14_arr;
185 public Option_u64Z amount_pico_btc() {
186 long ret = bindings.RawInvoice_amount_pico_btc(this.ptr);
187 if (ret < 1024) { return null; }
188 Option_u64Z ret_hu_conv = Option_u64Z.constr_from_ptr(ret);
189 ret_hu_conv.ptrs_to.add(this);
196 public Currency currency() {
197 Currency ret = bindings.RawInvoice_currency(this.ptr);