1 package org.ldk.structs;
3 import org.ldk.impl.bindings;
4 import org.ldk.enums.*;
6 import java.util.Arrays;
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 {
14 bindings.ChannelManager_free(ptr);
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);
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;
38 return arr_conv_16_arr;
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;
49 return arr_conv_16_arr;
52 // Skipped ChannelManager_close_channel
53 public void force_close_channel(byte[] channel_id) {
54 bindings.ChannelManager_force_close_channel(this.ptr, channel_id);
57 public void force_close_all_channels() {
58 bindings.ChannelManager_force_close_all_channels(this.ptr);
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);
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 */;
72 public void process_pending_htlc_forwards() {
73 bindings.ChannelManager_process_pending_htlc_forwards(this.ptr);
76 public void timer_chan_freshness_every_min() {
77 bindings.ChannelManager_timer_chan_freshness_every_min(this.ptr);
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);
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);
90 public byte[] get_our_node_id() {
91 byte[] ret = bindings.ChannelManager_get_our_node_id(this.ptr);
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);
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);
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);
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> */;
119 public void block_disconnected(byte[] header) {
120 bindings.ChannelManager_block_disconnected(this.ptr, header);
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);