internal static RecentPaymentDetails constr_from_ptr(long ptr) {
long raw_ty = bindings.LDKRecentPaymentDetails_ty_from_ptr(ptr);
switch (raw_ty) {
- case 0: return new RecentPaymentDetails_Pending(ptr);
- case 1: return new RecentPaymentDetails_Fulfilled(ptr);
- case 2: return new RecentPaymentDetails_Abandoned(ptr);
+ case 0: return new RecentPaymentDetails_AwaitingInvoice(ptr);
+ case 1: return new RecentPaymentDetails_Pending(ptr);
+ case 2: return new RecentPaymentDetails_Fulfilled(ptr);
+ case 3: return new RecentPaymentDetails_Abandoned(ptr);
default:
throw new ArgumentException("Impossible enum variant");
}
}
+ /** A RecentPaymentDetails of type AwaitingInvoice */
+ public class RecentPaymentDetails_AwaitingInvoice : RecentPaymentDetails {
+ /**
+ * A user-provided identifier in [`ChannelManager::send_payment`] used to uniquely identify
+ * a payment and ensure idempotency in LDK.
+ */
+ public byte[] payment_id;
+ internal RecentPaymentDetails_AwaitingInvoice(long ptr) : base(null, ptr) {
+ long payment_id = bindings.LDKRecentPaymentDetails_AwaitingInvoice_get_payment_id(ptr);
+ byte[] payment_id_conv = InternalUtils.decodeUint8Array(payment_id);
+ this.payment_id = payment_id_conv;
+ }
+ }
/** A RecentPaymentDetails of type Pending */
public class RecentPaymentDetails_Pending : RecentPaymentDetails {
+ /**
+ * A user-provided identifier in [`ChannelManager::send_payment`] used to uniquely identify
+ * a payment and ensure idempotency in LDK.
+ */
+ public byte[] payment_id;
/**
* Hash of the payment that is currently being sent but has yet to be fulfilled or
* abandoned.
*/
public long total_msat;
internal RecentPaymentDetails_Pending(long ptr) : base(null, ptr) {
- this.payment_hash = bindings.LDKRecentPaymentDetails_Pending_get_payment_hash(ptr);
+ long payment_id = bindings.LDKRecentPaymentDetails_Pending_get_payment_id(ptr);
+ byte[] payment_id_conv = InternalUtils.decodeUint8Array(payment_id);
+ this.payment_id = payment_id_conv;
+ long payment_hash = bindings.LDKRecentPaymentDetails_Pending_get_payment_hash(ptr);
+ byte[] payment_hash_conv = InternalUtils.decodeUint8Array(payment_hash);
+ this.payment_hash = payment_hash_conv;
this.total_msat = bindings.LDKRecentPaymentDetails_Pending_get_total_msat(ptr);
}
}
/** A RecentPaymentDetails of type Fulfilled */
public class RecentPaymentDetails_Fulfilled : RecentPaymentDetails {
+ /**
+ * A user-provided identifier in [`ChannelManager::send_payment`] used to uniquely identify
+ * a payment and ensure idempotency in LDK.
+ */
+ public byte[] payment_id;
/**
* Hash of the payment that was claimed. `None` for serializations of [`ChannelManager`]
* made before LDK version 0.0.104.
*/
- public Option_PaymentHashZ payment_hash;
+ public Option_ThirtyTwoBytesZ payment_hash;
internal RecentPaymentDetails_Fulfilled(long ptr) : base(null, ptr) {
+ long payment_id = bindings.LDKRecentPaymentDetails_Fulfilled_get_payment_id(ptr);
+ byte[] payment_id_conv = InternalUtils.decodeUint8Array(payment_id);
+ this.payment_id = payment_id_conv;
long payment_hash = bindings.LDKRecentPaymentDetails_Fulfilled_get_payment_hash(ptr);
- org.ldk.structs.Option_PaymentHashZ payment_hash_hu_conv = org.ldk.structs.Option_PaymentHashZ.constr_from_ptr(payment_hash);
+ org.ldk.structs.Option_ThirtyTwoBytesZ payment_hash_hu_conv = org.ldk.structs.Option_ThirtyTwoBytesZ.constr_from_ptr(payment_hash);
if (payment_hash_hu_conv != null) { payment_hash_hu_conv.ptrs_to.AddLast(this); };
this.payment_hash = payment_hash_hu_conv;
}
}
/** A RecentPaymentDetails of type Abandoned */
public class RecentPaymentDetails_Abandoned : RecentPaymentDetails {
+ /**
+ * A user-provided identifier in [`ChannelManager::send_payment`] used to uniquely identify
+ * a payment and ensure idempotency in LDK.
+ */
+ public byte[] payment_id;
/**
* Hash of the payment that we have given up trying to send.
*/
public byte[] payment_hash;
internal RecentPaymentDetails_Abandoned(long ptr) : base(null, ptr) {
- this.payment_hash = bindings.LDKRecentPaymentDetails_Abandoned_get_payment_hash(ptr);
+ long payment_id = bindings.LDKRecentPaymentDetails_Abandoned_get_payment_id(ptr);
+ byte[] payment_id_conv = InternalUtils.decodeUint8Array(payment_id);
+ this.payment_id = payment_id_conv;
+ long payment_hash = bindings.LDKRecentPaymentDetails_Abandoned_get_payment_hash(ptr);
+ byte[] payment_hash_conv = InternalUtils.decodeUint8Array(payment_hash);
+ this.payment_hash = payment_hash_conv;
}
}
internal long clone_ptr() {
return ret_hu_conv;
}
+ /**
+ * Utility method to constructs a new AwaitingInvoice-variant RecentPaymentDetails
+ */
+ public static RecentPaymentDetails awaiting_invoice(byte[] payment_id) {
+ long ret = bindings.RecentPaymentDetails_awaiting_invoice(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(payment_id, 32)));
+ GC.KeepAlive(payment_id);
+ if (ret >= 0 && ret <= 4096) { return null; }
+ org.ldk.structs.RecentPaymentDetails ret_hu_conv = org.ldk.structs.RecentPaymentDetails.constr_from_ptr(ret);
+ if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); };
+ return ret_hu_conv;
+ }
+
/**
* Utility method to constructs a new Pending-variant RecentPaymentDetails
*/
- public static RecentPaymentDetails pending(byte[] payment_hash, long total_msat) {
- long ret = bindings.RecentPaymentDetails_pending(InternalUtils.check_arr_len(payment_hash, 32), total_msat);
+ public static RecentPaymentDetails pending(byte[] payment_id, byte[] payment_hash, long total_msat) {
+ long ret = bindings.RecentPaymentDetails_pending(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(payment_id, 32)), InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(payment_hash, 32)), total_msat);
+ GC.KeepAlive(payment_id);
GC.KeepAlive(payment_hash);
GC.KeepAlive(total_msat);
if (ret >= 0 && ret <= 4096) { return null; }
/**
* Utility method to constructs a new Fulfilled-variant RecentPaymentDetails
*/
- public static RecentPaymentDetails fulfilled(org.ldk.structs.Option_PaymentHashZ payment_hash) {
- long ret = bindings.RecentPaymentDetails_fulfilled(payment_hash.ptr);
+ public static RecentPaymentDetails fulfilled(byte[] payment_id, org.ldk.structs.Option_ThirtyTwoBytesZ payment_hash) {
+ long ret = bindings.RecentPaymentDetails_fulfilled(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(payment_id, 32)), payment_hash.ptr);
+ GC.KeepAlive(payment_id);
GC.KeepAlive(payment_hash);
if (ret >= 0 && ret <= 4096) { return null; }
org.ldk.structs.RecentPaymentDetails ret_hu_conv = org.ldk.structs.RecentPaymentDetails.constr_from_ptr(ret);
/**
* Utility method to constructs a new Abandoned-variant RecentPaymentDetails
*/
- public static RecentPaymentDetails abandoned(byte[] payment_hash) {
- long ret = bindings.RecentPaymentDetails_abandoned(InternalUtils.check_arr_len(payment_hash, 32));
+ public static RecentPaymentDetails abandoned(byte[] payment_id, byte[] payment_hash) {
+ long ret = bindings.RecentPaymentDetails_abandoned(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(payment_id, 32)), InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(payment_hash, 32)));
+ GC.KeepAlive(payment_id);
GC.KeepAlive(payment_hash);
if (ret >= 0 && ret <= 4096) { return null; }
org.ldk.structs.RecentPaymentDetails ret_hu_conv = org.ldk.structs.RecentPaymentDetails.constr_from_ptr(ret);