X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fldk%2Fstructs%2FChannelManager.java;h=b89636f69541e399beb5e4b3078e0f7e6b77da80;hb=fed2245c60159f6c074c9ed5c0f3ce273ad9841b;hp=beadcad71efe2317f9fa22a72af23e3fb81c1d16;hpb=110f2f104ba8fc34caa7e34e04737f36f064b050;p=ldk-java diff --git a/src/main/java/org/ldk/structs/ChannelManager.java b/src/main/java/org/ldk/structs/ChannelManager.java index beadcad7..b89636f6 100644 --- a/src/main/java/org/ldk/structs/ChannelManager.java +++ b/src/main/java/org/ldk/structs/ChannelManager.java @@ -11,12 +11,13 @@ public class ChannelManager extends CommonBase { @Override @SuppressWarnings("deprecation") protected void finalize() throws Throwable { super.finalize(); - bindings.ChannelManager_free(ptr); + if (ptr != 0) { bindings.ChannelManager_free(ptr); } } public static ChannelManager constructor_new(LDKNetwork network, FeeEstimator fee_est, Watch chain_monitor, BroadcasterInterface tx_broadcaster, Logger logger, KeysInterface keys_manager, UserConfig config, long current_blockchain_height) { long ret = bindings.ChannelManager_new(network, fee_est == null ? 0 : fee_est.ptr, chain_monitor == null ? 0 : chain_monitor.ptr, tx_broadcaster == null ? 0 : tx_broadcaster.ptr, logger == null ? 0 : logger.ptr, keys_manager == null ? 0 : keys_manager.ptr, config == null ? 0 : config.ptr & ~1, current_blockchain_height); ChannelManager ret_hu_conv = new ChannelManager(null, ret); + ret_hu_conv.ptrs_to.add(ret_hu_conv); ret_hu_conv.ptrs_to.add(fee_est); ret_hu_conv.ptrs_to.add(chain_monitor); ret_hu_conv.ptrs_to.add(tx_broadcaster); @@ -26,13 +27,20 @@ public class ChannelManager extends CommonBase { return ret_hu_conv; } - // Skipped ChannelManager_create_channel + public Result_NoneAPIErrorZ create_channel(byte[] their_network_key, long channel_value_satoshis, long push_msat, long user_id, UserConfig override_config) { + long ret = bindings.ChannelManager_create_channel(this.ptr, their_network_key, channel_value_satoshis, push_msat, user_id, override_config == null ? 0 : override_config.ptr & ~1); + Result_NoneAPIErrorZ ret_hu_conv = Result_NoneAPIErrorZ.constr_from_ptr(ret); + this.ptrs_to.add(override_config); + return ret_hu_conv; + } + public ChannelDetails[] list_channels() { long[] ret = bindings.ChannelManager_list_channels(this.ptr); ChannelDetails[] arr_conv_16_arr = new ChannelDetails[ret.length]; for (int q = 0; q < ret.length; q++) { long arr_conv_16 = ret[q]; ChannelDetails arr_conv_16_hu_conv = new ChannelDetails(null, arr_conv_16); + arr_conv_16_hu_conv.ptrs_to.add(this); arr_conv_16_arr[q] = arr_conv_16_hu_conv; } return arr_conv_16_arr; @@ -44,28 +52,42 @@ public class ChannelManager extends CommonBase { for (int q = 0; q < ret.length; q++) { long arr_conv_16 = ret[q]; ChannelDetails arr_conv_16_hu_conv = new ChannelDetails(null, arr_conv_16); + arr_conv_16_hu_conv.ptrs_to.add(this); arr_conv_16_arr[q] = arr_conv_16_hu_conv; } return arr_conv_16_arr; } - // Skipped ChannelManager_close_channel - public void force_close_channel(byte[] channel_id) { - bindings.ChannelManager_force_close_channel(this.ptr, channel_id); + public Result_NoneAPIErrorZ close_channel(byte[] channel_id) { + long ret = bindings.ChannelManager_close_channel(this.ptr, channel_id); + Result_NoneAPIErrorZ ret_hu_conv = Result_NoneAPIErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + + public Result_NoneAPIErrorZ force_close_channel(byte[] channel_id) { + long ret = bindings.ChannelManager_force_close_channel(this.ptr, channel_id); + Result_NoneAPIErrorZ ret_hu_conv = Result_NoneAPIErrorZ.constr_from_ptr(ret); + return ret_hu_conv; } public void force_close_all_channels() { bindings.ChannelManager_force_close_all_channels(this.ptr); } - // Skipped ChannelManager_send_payment + public Result_NonePaymentSendFailureZ send_payment(Route route, byte[] payment_hash, byte[] payment_secret) { + long ret = bindings.ChannelManager_send_payment(this.ptr, route == null ? 0 : route.ptr & ~1, payment_hash, payment_secret); + Result_NonePaymentSendFailureZ ret_hu_conv = Result_NonePaymentSendFailureZ.constr_from_ptr(ret); + this.ptrs_to.add(route); + return ret_hu_conv; + } + public void funding_transaction_generated(byte[] temporary_channel_id, OutPoint funding_txo) { bindings.ChannelManager_funding_transaction_generated(this.ptr, temporary_channel_id, funding_txo == null ? 0 : funding_txo.ptr & ~1); this.ptrs_to.add(funding_txo); } public void broadcast_node_announcement(byte[] rgb, byte[] alias, NetAddress[] addresses) { - bindings.ChannelManager_broadcast_node_announcement(this.ptr, rgb, alias, Arrays.stream(addresses).mapToLong(arr_conv_12 -> arr_conv_12.conv_to_c()).toArray()); + bindings.ChannelManager_broadcast_node_announcement(this.ptr, rgb, alias, Arrays.stream(addresses).mapToLong(arr_conv_12 -> arr_conv_12.ptr).toArray()); /* TODO 2 NetAddress */; } @@ -111,9 +133,9 @@ public class ChannelManager extends CommonBase { return ret_hu_conv; } - public void block_connected(byte[] header, TwoTuple[] txdata, int height) { - bindings.ChannelManager_block_connected(this.ptr, header, Arrays.stream(txdata).mapToLong(arr_conv_29 -> /*TODO b*/0).toArray(), height); - /* TODO 2 TwoTuple */; + public void block_connected(byte[] header, TwoTuple[] txdata, int height) { + bindings.ChannelManager_block_connected(this.ptr, header, Arrays.stream(txdata).mapToLong(arr_conv_24 -> bindings.C2Tuple_usizeTransactionZ_new(arr_conv_24.a, arr_conv_24.b)).toArray(), height); + /* TODO 2 TwoTuple */; } public void block_disconnected(byte[] header) { @@ -127,4 +149,9 @@ public class ChannelManager extends CommonBase { return ret_hu_conv; } + public byte[] write() { + byte[] ret = bindings.ChannelManager_write(this.ptr); + return ret; + } + }