4878056820d2e08f2ad72dcd374cd2b7461e65e7
[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                 if (ptr != 0) { bindings.ChannelManager_free(ptr); }
15         }
16
17         public static ChannelManager constructor_new(FeeEstimator fee_est, Watch chain_monitor, BroadcasterInterface tx_broadcaster, Logger logger, KeysInterface keys_manager, UserConfig config, LDKNetwork params_network_arg, byte[] params_latest_hash_arg, long params_latest_height_arg) {
18                 long ret = bindings.ChannelManager_new(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, bindings.ChainParameters_new(params_network_arg, params_latest_hash_arg, params_latest_height_arg));
19                 ChannelManager ret_hu_conv = new ChannelManager(null, ret);
20                 ret_hu_conv.ptrs_to.add(ret_hu_conv);
21                 ret_hu_conv.ptrs_to.add(fee_est);
22                 ret_hu_conv.ptrs_to.add(chain_monitor);
23                 ret_hu_conv.ptrs_to.add(tx_broadcaster);
24                 ret_hu_conv.ptrs_to.add(logger);
25                 ret_hu_conv.ptrs_to.add(keys_manager);
26                 ret_hu_conv.ptrs_to.add(config);
27                 return ret_hu_conv;
28         }
29
30         public Result_NoneAPIErrorZ create_channel(byte[] their_network_key, long channel_value_satoshis, long push_msat, long user_id, UserConfig override_config) {
31                 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);
32                 Result_NoneAPIErrorZ ret_hu_conv = Result_NoneAPIErrorZ.constr_from_ptr(ret);
33                 this.ptrs_to.add(override_config);
34                 return ret_hu_conv;
35         }
36
37         public ChannelDetails[] list_channels() {
38                 long[] ret = bindings.ChannelManager_list_channels(this.ptr);
39                 ChannelDetails[] ret_conv_16_arr = new ChannelDetails[ret.length];
40                 for (int q = 0; q < ret.length; q++) {
41                         long ret_conv_16 = ret[q];
42                         ChannelDetails ret_conv_16_hu_conv = new ChannelDetails(null, ret_conv_16);
43                         ret_conv_16_hu_conv.ptrs_to.add(this);
44                         ret_conv_16_arr[q] = ret_conv_16_hu_conv;
45                 }
46                 return ret_conv_16_arr;
47         }
48
49         public ChannelDetails[] list_usable_channels() {
50                 long[] ret = bindings.ChannelManager_list_usable_channels(this.ptr);
51                 ChannelDetails[] ret_conv_16_arr = new ChannelDetails[ret.length];
52                 for (int q = 0; q < ret.length; q++) {
53                         long ret_conv_16 = ret[q];
54                         ChannelDetails ret_conv_16_hu_conv = new ChannelDetails(null, ret_conv_16);
55                         ret_conv_16_hu_conv.ptrs_to.add(this);
56                         ret_conv_16_arr[q] = ret_conv_16_hu_conv;
57                 }
58                 return ret_conv_16_arr;
59         }
60
61         public Result_NoneAPIErrorZ close_channel(byte[] channel_id) {
62                 long ret = bindings.ChannelManager_close_channel(this.ptr, channel_id);
63                 Result_NoneAPIErrorZ ret_hu_conv = Result_NoneAPIErrorZ.constr_from_ptr(ret);
64                 return ret_hu_conv;
65         }
66
67         public Result_NoneAPIErrorZ force_close_channel(byte[] channel_id) {
68                 long ret = bindings.ChannelManager_force_close_channel(this.ptr, channel_id);
69                 Result_NoneAPIErrorZ ret_hu_conv = Result_NoneAPIErrorZ.constr_from_ptr(ret);
70                 return ret_hu_conv;
71         }
72
73         public void force_close_all_channels() {
74                 bindings.ChannelManager_force_close_all_channels(this.ptr);
75         }
76
77         public Result_NonePaymentSendFailureZ send_payment(Route route, byte[] payment_hash, byte[] payment_secret) {
78                 long ret = bindings.ChannelManager_send_payment(this.ptr, route == null ? 0 : route.ptr & ~1, payment_hash, payment_secret);
79                 Result_NonePaymentSendFailureZ ret_hu_conv = Result_NonePaymentSendFailureZ.constr_from_ptr(ret);
80                 this.ptrs_to.add(route);
81                 return ret_hu_conv;
82         }
83
84         public void funding_transaction_generated(byte[] temporary_channel_id, OutPoint funding_txo) {
85                 bindings.ChannelManager_funding_transaction_generated(this.ptr, temporary_channel_id, funding_txo == null ? 0 : funding_txo.ptr & ~1);
86                 this.ptrs_to.add(funding_txo);
87         }
88
89         public void broadcast_node_announcement(byte[] rgb, byte[] alias, NetAddress[] addresses) {
90                 bindings.ChannelManager_broadcast_node_announcement(this.ptr, rgb, alias, Arrays.stream(addresses).mapToLong(addresses_conv_12 -> addresses_conv_12.ptr).toArray());
91                 /* TODO 2 NetAddress  */;
92         }
93
94         public void process_pending_htlc_forwards() {
95                 bindings.ChannelManager_process_pending_htlc_forwards(this.ptr);
96         }
97
98         public void timer_chan_freshness_every_min() {
99                 bindings.ChannelManager_timer_chan_freshness_every_min(this.ptr);
100         }
101
102         public boolean fail_htlc_backwards(byte[] payment_hash, byte[] payment_secret) {
103                 boolean ret = bindings.ChannelManager_fail_htlc_backwards(this.ptr, payment_hash, payment_secret);
104                 return ret;
105         }
106
107         public boolean claim_funds(byte[] payment_preimage, byte[] payment_secret, long expected_amount) {
108                 boolean ret = bindings.ChannelManager_claim_funds(this.ptr, payment_preimage, payment_secret, expected_amount);
109                 return ret;
110         }
111
112         public byte[] get_our_node_id() {
113                 byte[] ret = bindings.ChannelManager_get_our_node_id(this.ptr);
114                 return ret;
115         }
116
117         public void channel_monitor_updated(OutPoint funding_txo, long highest_applied_update_id) {
118                 bindings.ChannelManager_channel_monitor_updated(this.ptr, funding_txo == null ? 0 : funding_txo.ptr & ~1, highest_applied_update_id);
119                 this.ptrs_to.add(funding_txo);
120         }
121
122         public MessageSendEventsProvider as_MessageSendEventsProvider() {
123                 long ret = bindings.ChannelManager_as_MessageSendEventsProvider(this.ptr);
124                 MessageSendEventsProvider ret_hu_conv = new MessageSendEventsProvider(null, ret);
125                 ret_hu_conv.ptrs_to.add(this);
126                 return ret_hu_conv;
127         }
128
129         public EventsProvider as_EventsProvider() {
130                 long ret = bindings.ChannelManager_as_EventsProvider(this.ptr);
131                 EventsProvider ret_hu_conv = new EventsProvider(null, ret);
132                 ret_hu_conv.ptrs_to.add(this);
133                 return ret_hu_conv;
134         }
135
136         public Listen as_Listen() {
137                 long ret = bindings.ChannelManager_as_Listen(this.ptr);
138                 Listen ret_hu_conv = new Listen(null, ret);
139                 ret_hu_conv.ptrs_to.add(this);
140                 return ret_hu_conv;
141         }
142
143         public void block_connected(byte[] header, TwoTuple<Long, byte[]>[] txdata, int height) {
144                 bindings.ChannelManager_block_connected(this.ptr, header, Arrays.stream(txdata).mapToLong(txdata_conv_24 -> bindings.C2Tuple_usizeTransactionZ_new(txdata_conv_24.a, txdata_conv_24.b)).toArray(), height);
145                 /* TODO 2 TwoTuple<Long, byte[]>  */;
146         }
147
148         public void block_disconnected(byte[] header) {
149                 bindings.ChannelManager_block_disconnected(this.ptr, header);
150         }
151
152         public void await_persistable_update() {
153                 bindings.ChannelManager_await_persistable_update(this.ptr);
154         }
155
156         public ChannelMessageHandler as_ChannelMessageHandler() {
157                 long ret = bindings.ChannelManager_as_ChannelMessageHandler(this.ptr);
158                 ChannelMessageHandler ret_hu_conv = new ChannelMessageHandler(null, ret);
159                 ret_hu_conv.ptrs_to.add(this);
160                 return ret_hu_conv;
161         }
162
163         public byte[] write() {
164                 byte[] ret = bindings.ChannelManager_write(this.ptr);
165                 return ret;
166         }
167
168 }