X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fldk%2Fstructs%2FChainParameters.java;h=403a4d36236a28ff0d17ed6dd606176705b20ed2;hb=c6bac88847b7c09560af81f00ba8dd3c2ebe3a19;hp=06e56937ebdd583c2ade078d1f62081e33814077;hpb=246459dcbc3be28c38b4951140a5933f4b3aa024;p=ldk-java diff --git a/src/main/java/org/ldk/structs/ChainParameters.java b/src/main/java/org/ldk/structs/ChainParameters.java index 06e56937..403a4d36 100644 --- a/src/main/java/org/ldk/structs/ChainParameters.java +++ b/src/main/java/org/ldk/structs/ChainParameters.java @@ -4,7 +4,16 @@ import org.ldk.impl.bindings; import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; +import javax.annotation.Nullable; + +/** + * Chain-related parameters used to construct a new `ChannelManager`. + * + * Typically, the block-specific parameters are derived from the best block hash for the network, + * as a newly constructed `ChannelManager` will not have created any channels yet. These parameters + * are not needed when deserializing a previously constructed `ChannelManager`. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class ChainParameters extends CommonBase { ChainParameters(Object _dummy, long ptr) { super(ptr); } @@ -14,37 +23,62 @@ public class ChainParameters extends CommonBase { if (ptr != 0) { bindings.ChainParameters_free(ptr); } } - public LDKNetwork get_network() { - LDKNetwork ret = bindings.ChainParameters_get_network(this.ptr); + /** + * The network for determining the `chain_hash` in Lightning messages. + */ + public Network get_network() { + Network ret = bindings.ChainParameters_get_network(this.ptr); return ret; } - public void set_network(LDKNetwork val) { + /** + * The network for determining the `chain_hash` in Lightning messages. + */ + public void set_network(org.ldk.enums.Network val) { bindings.ChainParameters_set_network(this.ptr, val); } - public byte[] get_latest_hash() { - byte[] ret = bindings.ChainParameters_get_latest_hash(this.ptr); - return ret; + /** + * The hash and height of the latest block successfully connected. + * + * Used to track on-chain channel funding outputs and send payments with reliable timelocks. + */ + public BestBlock get_best_block() { + long ret = bindings.ChainParameters_get_best_block(this.ptr); + if (ret >= 0 && ret <= 4096) { return null; } + BestBlock ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new BestBlock(null, ret); } + ret_hu_conv.ptrs_to.add(this); + return ret_hu_conv; } - public void set_latest_hash(byte[] val) { - bindings.ChainParameters_set_latest_hash(this.ptr, val); + /** + * The hash and height of the latest block successfully connected. + * + * Used to track on-chain channel funding outputs and send payments with reliable timelocks. + */ + public void set_best_block(BestBlock val) { + bindings.ChainParameters_set_best_block(this.ptr, val == null ? 0 : val.ptr & ~1); } - public long get_latest_height() { - long ret = bindings.ChainParameters_get_latest_height(this.ptr); - return ret; - } - - public void set_latest_height(long val) { - bindings.ChainParameters_set_latest_height(this.ptr, val); + /** + * Constructs a new ChainParameters given each field + */ + public static ChainParameters of(org.ldk.enums.Network network_arg, BestBlock best_block_arg) { + long ret = bindings.ChainParameters_new(network_arg, best_block_arg == null ? 0 : best_block_arg.ptr & ~1); + if (ret >= 0 && ret <= 4096) { return null; } + ChainParameters ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new ChainParameters(null, ret); } + ret_hu_conv.ptrs_to.add(ret_hu_conv); + return ret_hu_conv; } - public static ChainParameters constructor_new(LDKNetwork network_arg, byte[] latest_hash_arg, long latest_height_arg) { - long ret = bindings.ChainParameters_new(network_arg, latest_hash_arg, latest_height_arg); - ChainParameters ret_hu_conv = new ChainParameters(null, ret); - ret_hu_conv.ptrs_to.add(ret_hu_conv); + /** + * Creates a copy of the ChainParameters + */ + public ChainParameters clone() { + long ret = bindings.ChainParameters_clone(this.ptr); + if (ret >= 0 && ret <= 4096) { return null; } + ChainParameters ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new ChainParameters(null, ret); } + ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; }