import org.ldk.enums.*;
import org.ldk.util.*;
import java.util.Arrays;
+import javax.annotation.Nullable;
/**
* The genesis hash of the blockchain where the channel is to be opened
*/
public void set_chain_hash(byte[] val) {
- bindings.UnsignedChannelUpdate_set_chain_hash(this.ptr, val);
+ bindings.UnsignedChannelUpdate_set_chain_hash(this.ptr, InternalUtils.check_arr_len(val, 32));
}
/**
}
/**
- * The number of blocks to subtract from incoming HTLC cltv_expiry values
+ * The number of blocks such that if:
+ * `incoming_htlc.cltv_expiry < outgoing_htlc.cltv_expiry + cltv_expiry_delta`
+ * then we need to fail the HTLC backwards. When forwarding an HTLC, cltv_expiry_delta determines
+ * the outgoing HTLC's minimum cltv_expiry value -- so, if an incoming HTLC comes in with a
+ * cltv_expiry of 100000, and the node we're forwarding to has a cltv_expiry_delta value of 10,
+ * then we'll check that the outgoing HTLC's cltv_expiry value is at least 100010 before
+ * forwarding. Note that the HTLC sender is the one who originally sets this value when
+ * constructing the route.
*/
public short get_cltv_expiry_delta() {
short ret = bindings.UnsignedChannelUpdate_get_cltv_expiry_delta(this.ptr);
}
/**
- * The number of blocks to subtract from incoming HTLC cltv_expiry values
+ * The number of blocks such that if:
+ * `incoming_htlc.cltv_expiry < outgoing_htlc.cltv_expiry + cltv_expiry_delta`
+ * then we need to fail the HTLC backwards. When forwarding an HTLC, cltv_expiry_delta determines
+ * the outgoing HTLC's minimum cltv_expiry value -- so, if an incoming HTLC comes in with a
+ * cltv_expiry of 100000, and the node we're forwarding to has a cltv_expiry_delta value of 10,
+ * then we'll check that the outgoing HTLC's cltv_expiry value is at least 100010 before
+ * forwarding. Note that the HTLC sender is the one who originally sets this value when
+ * constructing the route.
*/
public void set_cltv_expiry_delta(short val) {
bindings.UnsignedChannelUpdate_set_cltv_expiry_delta(this.ptr, val);
bindings.UnsignedChannelUpdate_set_fee_proportional_millionths(this.ptr, val);
}
+ long clone_ptr() {
+ long ret = bindings.UnsignedChannelUpdate_clone_ptr(this.ptr);
+ return ret;
+ }
+
/**
* Creates a copy of the UnsignedChannelUpdate
*/
public UnsignedChannelUpdate clone() {
long ret = bindings.UnsignedChannelUpdate_clone(this.ptr);
- UnsignedChannelUpdate ret_hu_conv = new UnsignedChannelUpdate(null, ret);
+ if (ret >= 0 && ret <= 4096) { return null; }
+ UnsignedChannelUpdate ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new UnsignedChannelUpdate(null, ret); }
ret_hu_conv.ptrs_to.add(this);
return ret_hu_conv;
}
/**
* Read a UnsignedChannelUpdate from a byte array, created by UnsignedChannelUpdate_write
*/
- public static Result_UnsignedChannelUpdateDecodeErrorZ constructor_read(byte[] ser) {
+ public static Result_UnsignedChannelUpdateDecodeErrorZ read(byte[] ser) {
long ret = bindings.UnsignedChannelUpdate_read(ser);
+ if (ret >= 0 && ret <= 4096) { return null; }
Result_UnsignedChannelUpdateDecodeErrorZ ret_hu_conv = Result_UnsignedChannelUpdateDecodeErrorZ.constr_from_ptr(ret);
return ret_hu_conv;
}