Map Transactions as byte[] instead of trying to keep a ptr
[ldk-java] / src / main / java / org / ldk / structs / ChannelManager.java
index beadcad71efe2317f9fa22a72af23e3fb81c1d16..a2c6859f6835442d9806704128ddb9043d5b63a5 100644 (file)
@@ -11,7 +11,7 @@ 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) {
@@ -26,7 +26,14 @@ 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);
+               ret_hu_conv.ptrs_to.add(this);
+               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];
@@ -49,7 +56,13 @@ public class ChannelManager extends CommonBase {
                return arr_conv_16_arr;
        }
 
-       // Skipped ChannelManager_close_channel
+       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);
+               ret_hu_conv.ptrs_to.add(this);
+               return ret_hu_conv;
+       }
+
        public void force_close_channel(byte[] channel_id) {
                bindings.ChannelManager_force_close_channel(this.ptr, channel_id);
        }
@@ -58,14 +71,21 @@ public class ChannelManager extends CommonBase {
                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);
+               ret_hu_conv.ptrs_to.add(this);
+               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 +131,9 @@ public class ChannelManager extends CommonBase {
                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>  */;
+       public void block_connected(byte[] header, TwoTuple<Long, byte[]>[] 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<Long, byte[]>  */;
        }
 
        public void block_disconnected(byte[] header) {