X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fldk%2Fstructs%2FChainParameters.java;h=50ce5e6d3ef9b58e81952f8cbe47a10a32e3fe4d;hb=6f84978154512148a47502caad48038e3f264392;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..50ce5e6d 100644 --- a/src/main/java/org/ldk/structs/ChainParameters.java +++ b/src/main/java/org/ldk/structs/ChainParameters.java @@ -5,6 +5,14 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * 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 +22,51 @@ public class ChainParameters extends CommonBase { if (ptr != 0) { bindings.ChainParameters_free(ptr); } } + /** + * The network for determining the `chain_hash` in Lightning messages. + */ public LDKNetwork get_network() { LDKNetwork ret = bindings.ChainParameters_get_network(this.ptr); return ret; } + /** + * The network for determining the `chain_hash` in Lightning messages. + */ public void set_network(LDKNetwork val) { bindings.ChainParameters_set_network(this.ptr, val); } - public byte[] get_latest_hash() { - byte[] ret = bindings.ChainParameters_get_latest_hash(this.ptr); - return ret; - } - - public void set_latest_hash(byte[] val) { - bindings.ChainParameters_set_latest_hash(this.ptr, val); - } - - public long get_latest_height() { - long ret = bindings.ChainParameters_get_latest_height(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); + BestBlock ret_hu_conv = new BestBlock(null, ret); + ret_hu_conv.ptrs_to.add(this); + return ret_hu_conv; } - public void set_latest_height(long val) { - bindings.ChainParameters_set_latest_height(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); + this.ptrs_to.add(val); } - 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); + /** + * Constructs a new ChainParameters given each field + */ + public static ChainParameters constructor_new(LDKNetwork network_arg, BestBlock best_block_arg) { + long ret = bindings.ChainParameters_new(network_arg, best_block_arg == null ? 0 : best_block_arg.ptr & ~1); ChainParameters ret_hu_conv = new ChainParameters(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); + ret_hu_conv.ptrs_to.add(best_block_arg); return ret_hu_conv; }