3 import CommonBase from './CommonBase';
4 import * as bindings from '../bindings' // TODO: figure out location
8 export default class ChannelManager extends CommonBase {
9 constructor(_dummy: object, ptr: number) {
14 protected finalize() {
18 bindings.ChannelManager_free(this.ptr);
21 public static ChannelManager constructor_new(LDKNetwork network, FeeEstimator fee_est, Watch chain_monitor, BroadcasterInterface tx_broadcaster, Logger logger, KeysInterface keys_manager, UserConfig config, number current_blockchain_height) {
22 number 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);
23 const ret_hu_conv: ChannelManager = new ChannelManager(null, ret);
24 ret_hu_conv.ptrs_to.add(fee_est);
25 ret_hu_conv.ptrs_to.add(chain_monitor);
26 ret_hu_conv.ptrs_to.add(tx_broadcaster);
27 ret_hu_conv.ptrs_to.add(logger);
28 ret_hu_conv.ptrs_to.add(keys_manager);
29 ret_hu_conv.ptrs_to.add(config);
33 public Result_NoneAPIErrorZ create_channel(Uint8Array their_network_key, number channel_value_satoshis, number push_msat, number user_id, UserConfig override_config) {
34 number 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);
35 Result_NoneAPIErrorZ ret_hu_conv = Result_NoneAPIErrorZ.constr_from_ptr(ret);
36 this.ptrs_to.add(override_config);
40 public ChannelDetails[] list_channels() {
41 number[] ret = bindings.ChannelManager_list_channels(this.ptr);
42 ChannelDetails[] arr_conv_16_arr = new ChannelDetails[ret.length];
43 for (int q = 0; q < ret.length; q++) {
44 number arr_conv_16 = ret[q];
45 const arr_conv_16_hu_conv: ChannelDetails = new ChannelDetails(null, arr_conv_16);
46 arr_conv_16_arr[q] = arr_conv_16_hu_conv;
48 return arr_conv_16_arr;
51 public ChannelDetails[] list_usable_channels() {
52 number[] ret = bindings.ChannelManager_list_usable_channels(this.ptr);
53 ChannelDetails[] arr_conv_16_arr = new ChannelDetails[ret.length];
54 for (int q = 0; q < ret.length; q++) {
55 number arr_conv_16 = ret[q];
56 const arr_conv_16_hu_conv: ChannelDetails = new ChannelDetails(null, arr_conv_16);
57 arr_conv_16_arr[q] = arr_conv_16_hu_conv;
59 return arr_conv_16_arr;
62 public Result_NoneAPIErrorZ close_channel(Uint8Array channel_id) {
63 number ret = bindings.ChannelManager_close_channel(this.ptr, channel_id);
64 Result_NoneAPIErrorZ ret_hu_conv = Result_NoneAPIErrorZ.constr_from_ptr(ret);
68 public void force_close_channel(Uint8Array channel_id) {
69 bindings.ChannelManager_force_close_channel(this.ptr, channel_id);
72 public void force_close_all_channels() {
73 bindings.ChannelManager_force_close_all_channels(this.ptr);
76 public Result_NonePaymentSendFailureZ send_payment(Route route, Uint8Array payment_hash, Uint8Array payment_secret) {
77 number ret = bindings.ChannelManager_send_payment(this.ptr, route == null ? 0 : route.ptr & ~1, payment_hash, payment_secret);
78 Result_NonePaymentSendFailureZ ret_hu_conv = Result_NonePaymentSendFailureZ.constr_from_ptr(ret);
79 this.ptrs_to.add(route);
83 public void funding_transaction_generated(Uint8Array temporary_channel_id, OutPoint funding_txo) {
84 bindings.ChannelManager_funding_transaction_generated(this.ptr, temporary_channel_id, funding_txo == null ? 0 : funding_txo.ptr & ~1);
85 this.ptrs_to.add(funding_txo);
88 public void broadcast_node_announcement(Uint8Array rgb, Uint8Array alias, NetAddress[] addresses) {
89 bindings.ChannelManager_broadcast_node_announcement(this.ptr, rgb, alias, (number[])Arrays.stream(addresses).map(arr_conv_12 -> arr_conv_12.ptr).toArray());
90 /* TODO 2 NetAddress */;
93 public void process_pending_htlc_forwards() {
94 bindings.ChannelManager_process_pending_htlc_forwards(this.ptr);
97 public void timer_chan_freshness_every_min() {
98 bindings.ChannelManager_timer_chan_freshness_every_min(this.ptr);
101 public boolean fail_htlc_backwards(Uint8Array payment_hash, Uint8Array payment_secret) {
102 boolean ret = bindings.ChannelManager_fail_htlc_backwards(this.ptr, payment_hash, payment_secret);
106 public boolean claim_funds(Uint8Array payment_preimage, Uint8Array payment_secret, number expected_amount) {
107 boolean ret = bindings.ChannelManager_claim_funds(this.ptr, payment_preimage, payment_secret, expected_amount);
111 public Uint8Array get_our_node_id() {
112 Uint8Array ret = bindings.ChannelManager_get_our_node_id(this.ptr);
116 public void channel_monitor_updated(OutPoint funding_txo, number highest_applied_update_id) {
117 bindings.ChannelManager_channel_monitor_updated(this.ptr, funding_txo == null ? 0 : funding_txo.ptr & ~1, highest_applied_update_id);
118 this.ptrs_to.add(funding_txo);
121 public MessageSendEventsProvider as_MessageSendEventsProvider() {
122 number ret = bindings.ChannelManager_as_MessageSendEventsProvider(this.ptr);
123 MessageSendEventsProvider ret_hu_conv = new MessageSendEventsProvider(null, ret);
124 ret_hu_conv.ptrs_to.add(this);
128 public EventsProvider as_EventsProvider() {
129 number ret = bindings.ChannelManager_as_EventsProvider(this.ptr);
130 EventsProvider ret_hu_conv = new EventsProvider(null, ret);
131 ret_hu_conv.ptrs_to.add(this);
135 public void block_connected(Uint8Array header, TwoTuple<Number, Uint8Array>[] txdata, number height) {
136 bindings.ChannelManager_block_connected(this.ptr, header, (number[])Arrays.stream(txdata).map(arr_conv_30 -> bindings.C2Tuple_usizeTransactionZ_new(arr_conv_30.a, arr_conv_30.b)).toArray(), height);
137 /* TODO 2 TwoTuple<Number, Uint8Array> */;
140 public void block_disconnected(Uint8Array header) {
141 bindings.ChannelManager_block_disconnected(this.ptr, header);
144 public ChannelMessageHandler as_ChannelMessageHandler() {
145 number ret = bindings.ChannelManager_as_ChannelMessageHandler(this.ptr);
146 ChannelMessageHandler ret_hu_conv = new ChannelMessageHandler(null, ret);
147 ret_hu_conv.ptrs_to.add(this);
151 public Uint8Array write() {
152 Uint8Array ret = bindings.ChannelManager_write(this.ptr);