X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fldk%2Fstructs%2FMessageRouter.java;h=a00d5e0a234849faac4648fd85b8def419d113ac;hb=2bb592fb946e316dba9f4d1123f8ac72ff4e9bf8;hp=82be8420739e8d1710bc461cdfe6ffd43a6c7420;hpb=3e33cfde4213dafe90eb976eb67224e2451da855;p=ldk-java diff --git a/src/main/java/org/ldk/structs/MessageRouter.java b/src/main/java/org/ldk/structs/MessageRouter.java index 82be8420..a00d5e0a 100644 --- a/src/main/java/org/ldk/structs/MessageRouter.java +++ b/src/main/java/org/ldk/structs/MessageRouter.java @@ -9,8 +9,6 @@ import javax.annotation.Nullable; /** * A trait defining behavior for routing an [`OnionMessage`]. - * - * [`OnionMessage`]: msgs::OnionMessage */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class MessageRouter extends CommonBase { @@ -41,10 +39,13 @@ public class MessageRouter extends CommonBase { public static interface MessageRouterInterface { /** * Returns a route for sending an [`OnionMessage`] to the given [`Destination`]. - * - * [`OnionMessage`]: msgs::OnionMessage */ Result_OnionMessagePathNoneZ find_path(byte[] sender, byte[][] peers, Destination destination); + /** + * Creates [`BlindedPath`]s to the `recipient` node. The nodes in `peers` are assumed to be + * direct peers with the `recipient`. + */ + Result_CVec_BlindedPathZNoneZ create_blinded_paths(byte[] recipient, byte[][] peers); } private static class LDKMessageRouterHolder { MessageRouter held; } public static MessageRouter new_impl(MessageRouterInterface arg) { @@ -58,13 +59,17 @@ public class MessageRouter extends CommonBase { long result = ret == null ? 0 : ret.clone_ptr(); return result; } + @Override public long create_blinded_paths(byte[] recipient, byte[][] peers) { + Result_CVec_BlindedPathZNoneZ ret = arg.create_blinded_paths(recipient, peers); + Reference.reachabilityFence(arg); + long result = ret == null ? 0 : ret.clone_ptr(); + return result; + } }); return impl_holder.held; } /** * Returns a route for sending an [`OnionMessage`] to the given [`Destination`]. - * - * [`OnionMessage`]: msgs::OnionMessage */ public Result_OnionMessagePathNoneZ find_path(byte[] sender, byte[][] peers, org.ldk.structs.Destination destination) { long ret = bindings.MessageRouter_find_path(this.ptr, InternalUtils.check_arr_len(sender, 33), peers != null ? Arrays.stream(peers).map(peers_conv_8 -> InternalUtils.check_arr_len(peers_conv_8, 33)).toArray(byte[][]::new) : null, destination.ptr); @@ -78,4 +83,18 @@ public class MessageRouter extends CommonBase { return ret_hu_conv; } + /** + * Creates [`BlindedPath`]s to the `recipient` node. The nodes in `peers` are assumed to be + * direct peers with the `recipient`. + */ + public Result_CVec_BlindedPathZNoneZ create_blinded_paths(byte[] recipient, byte[][] peers) { + long ret = bindings.MessageRouter_create_blinded_paths(this.ptr, InternalUtils.check_arr_len(recipient, 33), peers != null ? Arrays.stream(peers).map(peers_conv_8 -> InternalUtils.check_arr_len(peers_conv_8, 33)).toArray(byte[][]::new) : null); + Reference.reachabilityFence(this); + Reference.reachabilityFence(recipient); + Reference.reachabilityFence(peers); + if (ret >= 0 && ret <= 4096) { return null; } + Result_CVec_BlindedPathZNoneZ ret_hu_conv = Result_CVec_BlindedPathZNoneZ.constr_from_ptr(ret); + return ret_hu_conv; + } + }