import org.junit.jupiter.api.Test;
import org.ldk.impl.bindings;
import org.ldk.enums.*;
+import org.ldk.structs.Record;
public class ManualMsgHandlingPeerTest {
@Test
void test_message_handler() {
- long logger = bindings.LDKLogger_new((String arg)->{
- System.out.println(arg);
+ long logger = bindings.LDKLogger_new((long arg)->{
+ System.out.println(bindings.Record_get_args(arg));
+ bindings.Record_free(arg);
});
long chan_handler = bindings.LDKChannelMessageHandler_new(new bindings.LDKChannelMessageHandler() {
@Override
}
@Override
- public void handle_shutdown(byte[] their_node_id, long msg) {
+ public void handle_shutdown(byte[] their_node_id, long their_features, long msg) {
}
}
+ @Override
+ public void handle_channel_update(byte[] their_node_id, long msg) {
+
+ }
+
@Override
public void handle_error(byte[] their_node_id, long msg) {
}
- }, () -> 0);
+ }, () -> new long[0]);
long route_handler = bindings.LDKRoutingMessageHandler_new(new bindings.LDKRoutingMessageHandler() {
@Override public long handle_node_announcement(long msg) {
return 0;
@Override public long handle_channel_update(long msg) {
return 0;
}
- @Override public void handle_htlc_fail_channel_update(long update) {
+ @Override public long[] get_next_channel_announcements(long starting_point, byte batch_amount) {
+ return new long[0];
+ }
+ @Override public long[] get_next_node_announcements(byte[] starting_point, byte batch_amount) {
+ return new long[0];
+ }
+
+ @Override
+ public void sync_routing_table(byte[] their_node_id, long init) {
+
+ }
+ @Override
+ public long handle_reply_channel_range(byte[] their_node_id, long msg) {
+ return 0;
}
- @Override public long get_next_channel_announcements(long starting_point, byte batch_amount) {
+
+ @Override
+ public long handle_reply_short_channel_ids_end(byte[] their_node_id, long msg) {
return 0;
}
- @Override public long get_next_node_announcements(byte[] starting_point, byte batch_amount) {
+
+ @Override
+ public long handle_query_channel_range(byte[] their_node_id, long msg) {
return 0;
}
- @Override public boolean should_request_full_sync(byte[] node_id) {
- return false;
+
+ @Override
+ public long handle_query_short_channel_ids(byte[] their_node_id, long msg) {
+ return 0;
}
- });
+ }, () -> new long[0]);
long message_handler = bindings.MessageHandler_new(chan_handler, route_handler);
- long our_node_secret = bindings.LDKSecretKey_new(); //TODO: Need LDKSecretKey constructor
+ byte[] our_node_secret = new byte[32];
byte[] random_data = new byte[32];
- for (byte i = 0; i < 32; i++) { random_data[i] = i; }
+ for (byte i = 0; i < 32; i++) { random_data[i] = i; our_node_secret[i] = (byte) (i ^ 0xff); }
- long peer_manager = bindings.PeerManager_new(message_handler, our_node_secret, random_data, logger);
+ long ignoring_message_handler = bindings.IgnoringMessageHandler_new();
+ long peer_manager = bindings.PeerManager_new(message_handler, our_node_secret, random_data, logger,
+ bindings.IgnoringMessageHandler_as_CustomMessageHandler(ignoring_message_handler));
// Test Level_max() since its the only place we create a java object from a Rust-returned enum.
- assert bindings.Level_max() == LDKLevel.LDKLevel_Trace;
+ assert bindings.Level_max() == Level.LDKLevel_Trace;
// Note that we can't rely on finalizer order, so don't bother trying to rely on it here
bindings.Logger_free(logger);