Rewrite the world, with several interdependant changes (but several still WIP)
[ldk-java] / src / main / java / org / ldk / structs / ChannelManager.java
1 package org.ldk.structs;
2
3 import org.ldk.impl.bindings;
4 import org.ldk.enums.*;
5 import org.ldk.util.*;
6 import java.util.Arrays;
7
8 @SuppressWarnings("unchecked") // We correctly assign various generic arrays
9 public class ChannelManager extends CommonBase {
10         ChannelManager(Object _dummy, long ptr) { super(ptr); }
11         @Override @SuppressWarnings("deprecation")
12         protected void finalize() throws Throwable {
13                 super.finalize();
14                 bindings.ChannelManager_free(ptr);
15         }
16
17         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) {
18                 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);
19                 ChannelManager ret_hu_conv = new ChannelManager(null, ret);
20                 ret_hu_conv.ptrs_to.add(fee_est);
21                 ret_hu_conv.ptrs_to.add(chain_monitor);
22                 ret_hu_conv.ptrs_to.add(tx_broadcaster);
23                 ret_hu_conv.ptrs_to.add(logger);
24                 ret_hu_conv.ptrs_to.add(keys_manager);
25                 ret_hu_conv.ptrs_to.add(config);
26                 return ret_hu_conv;
27         }
28
29         // Skipped ChannelManager_create_channel
30         public ChannelDetails[] list_channels() {
31                 long[] ret = bindings.ChannelManager_list_channels(this.ptr);
32                 ChannelDetails[] arr_conv_16_arr = new ChannelDetails[ret.length];
33                 for (int q = 0; q < ret.length; q++) {
34                         long arr_conv_16 = ret[q];
35                         ChannelDetails arr_conv_16_hu_conv = new ChannelDetails(null, arr_conv_16);
36                         arr_conv_16_arr[q] = arr_conv_16_hu_conv;
37                 }
38                 return arr_conv_16_arr;
39         }
40
41         public ChannelDetails[] list_usable_channels() {
42                 long[] ret = bindings.ChannelManager_list_usable_channels(this.ptr);
43                 ChannelDetails[] arr_conv_16_arr = new ChannelDetails[ret.length];
44                 for (int q = 0; q < ret.length; q++) {
45                         long arr_conv_16 = ret[q];
46                         ChannelDetails arr_conv_16_hu_conv = new ChannelDetails(null, arr_conv_16);
47                         arr_conv_16_arr[q] = arr_conv_16_hu_conv;
48                 }
49                 return arr_conv_16_arr;
50         }
51
52         // Skipped ChannelManager_close_channel
53         public void force_close_channel(byte[] channel_id) {
54                 bindings.ChannelManager_force_close_channel(this.ptr, channel_id);
55         }
56
57         public void force_close_all_channels() {
58                 bindings.ChannelManager_force_close_all_channels(this.ptr);
59         }
60
61         // Skipped ChannelManager_send_payment
62         public void funding_transaction_generated(byte[] temporary_channel_id, OutPoint funding_txo) {
63                 bindings.ChannelManager_funding_transaction_generated(this.ptr, temporary_channel_id, funding_txo == null ? 0 : funding_txo.ptr & ~1);
64                 this.ptrs_to.add(funding_txo);
65         }
66
67         public void broadcast_node_announcement(byte[] rgb, byte[] alias, NetAddress[] addresses) {
68                 bindings.ChannelManager_broadcast_node_announcement(this.ptr, rgb, alias, Arrays.stream(addresses).mapToLong(arr_conv_12 -> arr_conv_12.conv_to_c()).toArray());
69                 /* TODO 2 NetAddress  */;
70         }
71
72         public void process_pending_htlc_forwards() {
73                 bindings.ChannelManager_process_pending_htlc_forwards(this.ptr);
74         }
75
76         public void timer_chan_freshness_every_min() {
77                 bindings.ChannelManager_timer_chan_freshness_every_min(this.ptr);
78         }
79
80         public boolean fail_htlc_backwards(byte[] payment_hash, byte[] payment_secret) {
81                 boolean ret = bindings.ChannelManager_fail_htlc_backwards(this.ptr, payment_hash, payment_secret);
82                 return ret;
83         }
84
85         public boolean claim_funds(byte[] payment_preimage, byte[] payment_secret, long expected_amount) {
86                 boolean ret = bindings.ChannelManager_claim_funds(this.ptr, payment_preimage, payment_secret, expected_amount);
87                 return ret;
88         }
89
90         public byte[] get_our_node_id() {
91                 byte[] ret = bindings.ChannelManager_get_our_node_id(this.ptr);
92                 return ret;
93         }
94
95         public void channel_monitor_updated(OutPoint funding_txo, long highest_applied_update_id) {
96                 bindings.ChannelManager_channel_monitor_updated(this.ptr, funding_txo == null ? 0 : funding_txo.ptr & ~1, highest_applied_update_id);
97                 this.ptrs_to.add(funding_txo);
98         }
99
100         public MessageSendEventsProvider as_MessageSendEventsProvider() {
101                 long ret = bindings.ChannelManager_as_MessageSendEventsProvider(this.ptr);
102                 MessageSendEventsProvider ret_hu_conv = new MessageSendEventsProvider(null, ret);
103                 ret_hu_conv.ptrs_to.add(this);
104                 return ret_hu_conv;
105         }
106
107         public EventsProvider as_EventsProvider() {
108                 long ret = bindings.ChannelManager_as_EventsProvider(this.ptr);
109                 EventsProvider ret_hu_conv = new EventsProvider(null, ret);
110                 ret_hu_conv.ptrs_to.add(this);
111                 return ret_hu_conv;
112         }
113
114         public void block_connected(byte[] header, TwoTuple<Long, Transaction>[] txdata, int height) {
115                 bindings.ChannelManager_block_connected(this.ptr, header, Arrays.stream(txdata).mapToLong(arr_conv_29 -> /*TODO b*/0).toArray(), height);
116                 /* TODO 2 TwoTuple<Long, Transaction>  */;
117         }
118
119         public void block_disconnected(byte[] header) {
120                 bindings.ChannelManager_block_disconnected(this.ptr, header);
121         }
122
123         public ChannelMessageHandler as_ChannelMessageHandler() {
124                 long ret = bindings.ChannelManager_as_ChannelMessageHandler(this.ptr);
125                 ChannelMessageHandler ret_hu_conv = new ChannelMessageHandler(null, ret);
126                 ret_hu_conv.ptrs_to.add(this);
127                 return ret_hu_conv;
128         }
129
130 }