- bindings.PeerManager_process_events(peer1.peer_manager);
- bindings.PeerManager_process_events(peer2.peer_manager);
- while (!list.isEmpty()) { list.poll().join(); }
-
- long peer1_chans = bindings.ChannelManager_list_channels(peer1.chan_manager);
- long peer2_chans = bindings.ChannelManager_list_channels(peer2.chan_manager);
- assert bindings.vec_slice_len(peer1_chans) == 1;
- assert bindings.vec_slice_len(peer2_chans) == 1;
- long[] peer_1_chan_info = bindings.LDKCVecTempl_ChannelDetails_arr_info(peer1_chans);
- assert peer_1_chan_info.length == 1;
- assert bindings.ChannelDetails_get_channel_value_satoshis(peer_1_chan_info[0]) == 10000;
- assert bindings.ChannelDetails_get_is_live(peer_1_chan_info[0]);
- assert Arrays.equals(bindings.ChannelDetails_get_channel_id(peer_1_chan_info[0]), funding.getTxId().getReversedBytes());
- assert Arrays.equals(bindings.ChannelDetails_get_channel_id(bindings.LDKCVecTempl_ChannelDetails_arr_info(peer2_chans)[0]), funding.getTxId().getReversedBytes());
- bindings.CVec_ChannelDetailsZ_free(peer2_chans);
-
- byte[] payment_preimage = new byte[32];
- for (int i = 0; i < 32; i++) payment_preimage[i] = (byte) (i ^ 0x0f);
- byte[] payment_hash = Sha256Hash.hash(payment_preimage);
- long netgraph = bindings.NetGraphMsgHandler_read_locked_graph(peer1.router);
- long route = bindings.get_route(peer1.node_id, bindings.LockedNetworkGraph_graph(netgraph), peer2.node_id, peer1_chans,
- bindings.LDKCVecTempl_RouteHint_new(new long[0]), 1000, 42, peer1.logger);
- bindings.CVec_ChannelDetailsZ_free(peer1_chans);
+ deliver_peer_messages(list, peer1.peer_manager, peer2.peer_manager);
+
+ long[] peer1_chans = bindings.ChannelManager_list_channels(peer1.chan_manager);
+ long[] peer2_chans = bindings.ChannelManager_list_channels(peer2.chan_manager);
+ assert peer1_chans.length == 1;
+ assert peer2_chans.length == 1;
+ assert bindings.ChannelDetails_get_channel_value_satoshis(peer1_chans[0]) == 10000;
+ assert bindings.ChannelDetails_get_is_usable(peer1_chans[0]);
+ assert Arrays.equals(bindings.ChannelDetails_get_channel_id(peer1_chans[0]), funding.getTxId().getReversedBytes());
+ assert Arrays.equals(bindings.ChannelDetails_get_channel_id(peer2_chans[0]), funding.getTxId().getReversedBytes());
+ for (long chan : peer2_chans) bindings.ChannelDetails_free(chan);
+
+ long no_min_val = bindings.COption_u64Z_none();
+ long inbound_payment = bindings.ChannelManager_create_inbound_payment(peer2.chan_manager, no_min_val, 7200, 42);
+ bindings.COption_u64Z_free(no_min_val);
+ long scorer = bindings.Scorer_default();
+ long scorer_interface = bindings.Scorer_as_Score(scorer);
+
+ long no_u64 = bindings.COption_u64Z_none();
+ long invoice_features = bindings.InvoiceFeatures_known();
+ long payee = bindings.Payee_new(peer2.node_id, invoice_features, new long[0], no_u64);
+ bindings.InvoiceFeatures_free(invoice_features);
+ bindings.COption_u64Z_free(no_u64);
+ long route_params = bindings.RouteParameters_new(payee, 1000, 42);
+ long route = bindings.find_route(peer1.node_id, route_params, peer1.router, peer1_chans,
+ peer1.logger, scorer_interface);
+ bindings.RouteParameters_free(route_params);
+ bindings.Payee_free(payee);
+ bindings.Score_free(scorer_interface);
+ bindings.Scorer_free(scorer);
+
+ for (long chan : peer1_chans) bindings.ChannelDetails_free(chan);