X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fldk%2Fstructs%2FMessageRouter.java;fp=src%2Fmain%2Fjava%2Forg%2Fldk%2Fstructs%2FMessageRouter.java;h=a00d5e0a234849faac4648fd85b8def419d113ac;hb=2bb592fb946e316dba9f4d1123f8ac72ff4e9bf8;hp=95bd437934fcd5c955e7e302e9f2db8c8a51f04c;hpb=519dc944de5b88f95975140a13fbc6d77dd15a95;p=ldk-java diff --git a/src/main/java/org/ldk/structs/MessageRouter.java b/src/main/java/org/ldk/structs/MessageRouter.java index 95bd4379..a00d5e0a 100644 --- a/src/main/java/org/ldk/structs/MessageRouter.java +++ b/src/main/java/org/ldk/structs/MessageRouter.java @@ -41,6 +41,11 @@ public class MessageRouter extends CommonBase { * Returns a route for sending an [`OnionMessage`] to the given [`Destination`]. */ 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) { @@ -54,6 +59,12 @@ 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; } @@ -72,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; + } + }