Rewrite the world, with several interdependant changes (but several still WIP)
[ldk-java] / src / main / java / org / ldk / structs / ChannelManager.java
index ec82ff9e609b74b598f1b5d58451a8a9ca0084c2..beadcad71efe2317f9fa22a72af23e3fb81c1d16 100644 (file)
@@ -2,7 +2,10 @@ package org.ldk.structs;
 
 import org.ldk.impl.bindings;
 import org.ldk.enums.*;
+import org.ldk.util.*;
+import java.util.Arrays;
 
+@SuppressWarnings("unchecked") // We correctly assign various generic arrays
 public class ChannelManager extends CommonBase {
        ChannelManager(Object _dummy, long ptr) { super(ptr); }
        @Override @SuppressWarnings("deprecation")
@@ -11,19 +14,41 @@ public class ChannelManager extends CommonBase {
                bindings.ChannelManager_free(ptr);
        }
 
-       public ChannelManager(LDKNetwork network, FeeEstimator fee_est, Watch chain_monitor, BroadcasterInterface tx_broadcaster, Logger logger, KeysInterface keys_manager, UserConfig config, long current_blockchain_height) {
-               super(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));
-               this.ptrs_to.add(fee_est);
-               this.ptrs_to.add(chain_monitor);
-               this.ptrs_to.add(tx_broadcaster);
-               this.ptrs_to.add(logger);
-               this.ptrs_to.add(keys_manager);
-               this.ptrs_to.add(config);
+       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(fee_est);
+               ret_hu_conv.ptrs_to.add(chain_monitor);
+               ret_hu_conv.ptrs_to.add(tx_broadcaster);
+               ret_hu_conv.ptrs_to.add(logger);
+               ret_hu_conv.ptrs_to.add(keys_manager);
+               ret_hu_conv.ptrs_to.add(config);
+               return ret_hu_conv;
        }
 
        // Skipped ChannelManager_create_channel
-       // Skipped ChannelManager_list_channels
-       // Skipped ChannelManager_list_usable_channels
+       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_arr[q] = arr_conv_16_hu_conv;
+               }
+               return arr_conv_16_arr;
+       }
+
+       public ChannelDetails[] list_usable_channels() {
+               long[] ret = bindings.ChannelManager_list_usable_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_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);
@@ -39,7 +64,11 @@ public class ChannelManager extends CommonBase {
                this.ptrs_to.add(funding_txo);
        }
 
-       // Skipped ChannelManager_broadcast_node_announcement
+       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());
+               /* TODO 2 NetAddress  */;
+       }
+
        public void process_pending_htlc_forwards() {
                bindings.ChannelManager_process_pending_htlc_forwards(this.ptr);
        }
@@ -69,26 +98,33 @@ public class ChannelManager extends CommonBase {
        }
 
        public MessageSendEventsProvider as_MessageSendEventsProvider() {
-               MessageSendEventsProvider ret = new MessageSendEventsProvider(null, bindings.ChannelManager_as_MessageSendEventsProvider(this.ptr));
-               ret.ptrs_to.add(this);
-               return ret;
+               long ret = bindings.ChannelManager_as_MessageSendEventsProvider(this.ptr);
+               MessageSendEventsProvider ret_hu_conv = new MessageSendEventsProvider(null, ret);
+               ret_hu_conv.ptrs_to.add(this);
+               return ret_hu_conv;
        }
 
        public EventsProvider as_EventsProvider() {
-               EventsProvider ret = new EventsProvider(null, bindings.ChannelManager_as_EventsProvider(this.ptr));
-               ret.ptrs_to.add(this);
-               return ret;
+               long ret = bindings.ChannelManager_as_EventsProvider(this.ptr);
+               EventsProvider ret_hu_conv = new EventsProvider(null, ret);
+               ret_hu_conv.ptrs_to.add(this);
+               return ret_hu_conv;
+       }
+
+       public void block_connected(byte[] header, TwoTuple<Long, Transaction>[] 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<Long, Transaction>  */;
        }
 
-       // Skipped ChannelManager_block_connected
        public void block_disconnected(byte[] header) {
                bindings.ChannelManager_block_disconnected(this.ptr, header);
        }
 
        public ChannelMessageHandler as_ChannelMessageHandler() {
-               ChannelMessageHandler ret = new ChannelMessageHandler(null, bindings.ChannelManager_as_ChannelMessageHandler(this.ptr));
-               ret.ptrs_to.add(this);
-               return ret;
+               long ret = bindings.ChannelManager_as_ChannelMessageHandler(this.ptr);
+               ChannelMessageHandler ret_hu_conv = new ChannelMessageHandler(null, ret);
+               ret_hu_conv.ptrs_to.add(this);
+               return ret_hu_conv;
        }
 
 }