X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fldk%2Fstructs%2FSendError.java;h=73a030c8dcd45bfe6d638e96d662a5d3df6f94d9;hb=2f0e19ab23f28c5c1bc11dc6bff24e156da3ec01;hp=573aea9d50fb9cae251ffb51efdc4fbc86253758;hpb=76982ad5233afc2759d085bb243f33149369ab9b;p=ldk-java diff --git a/src/main/java/org/ldk/structs/SendError.java b/src/main/java/org/ldk/structs/SendError.java index 573aea9d..73a030c8 100644 --- a/src/main/java/org/ldk/structs/SendError.java +++ b/src/main/java/org/ldk/structs/SendError.java @@ -35,9 +35,18 @@ public class SendError extends CommonBase { if (raw_val.getClass() == bindings.LDKSendError.InvalidFirstHop.class) { return new InvalidFirstHop(ptr, (bindings.LDKSendError.InvalidFirstHop)raw_val); } + if (raw_val.getClass() == bindings.LDKSendError.InvalidMessage.class) { + return new InvalidMessage(ptr, (bindings.LDKSendError.InvalidMessage)raw_val); + } if (raw_val.getClass() == bindings.LDKSendError.BufferFull.class) { return new BufferFull(ptr, (bindings.LDKSendError.BufferFull)raw_val); } + if (raw_val.getClass() == bindings.LDKSendError.GetNodeIdFailed.class) { + return new GetNodeIdFailed(ptr, (bindings.LDKSendError.GetNodeIdFailed)raw_val); + } + if (raw_val.getClass() == bindings.LDKSendError.BlindedPathAdvanceFailed.class) { + return new BlindedPathAdvanceFailed(ptr, (bindings.LDKSendError.BlindedPathAdvanceFailed)raw_val); + } assert false; return null; // Unreachable without extending the (internal) bindings interface } @@ -61,8 +70,8 @@ public class SendError extends CommonBase { } } /** - * The provided [`Destination`] was an invalid [`BlindedRoute`], due to having fewer than two - * blinded hops. + * The provided [`Destination`] was an invalid [`BlindedPath`] due to not having any blinded + * hops. */ public final static class TooFewBlindedHops extends SendError { private TooFewBlindedHops(long ptr, bindings.LDKSendError.TooFewBlindedHops obj) { @@ -77,6 +86,14 @@ public class SendError extends CommonBase { super(null, ptr); } } + /** + * Onion message contents must have a TLV type >= 64. + */ + public final static class InvalidMessage extends SendError { + private InvalidMessage(long ptr, bindings.LDKSendError.InvalidMessage obj) { + super(null, ptr); + } + } /** * Our next-hop peer's buffer was full or our total outbound buffer was full. */ @@ -85,6 +102,27 @@ public class SendError extends CommonBase { super(null, ptr); } } + /** + * Failed to retrieve our node id from the provided [`NodeSigner`]. + * + * [`NodeSigner`]: crate::sign::NodeSigner + */ + public final static class GetNodeIdFailed extends SendError { + private GetNodeIdFailed(long ptr, bindings.LDKSendError.GetNodeIdFailed obj) { + super(null, ptr); + } + } + /** + * We attempted to send to a blinded path where we are the introduction node, and failed to + * advance the blinded path to make the second hop the new introduction node. Either + * [`NodeSigner::ecdh`] failed, we failed to tweak the current blinding point to get the + * new blinding point, or we were attempting to send to ourselves. + */ + public final static class BlindedPathAdvanceFailed extends SendError { + private BlindedPathAdvanceFailed(long ptr, bindings.LDKSendError.BlindedPathAdvanceFailed obj) { + super(null, ptr); + } + } long clone_ptr() { long ret = bindings.SendError_clone_ptr(this.ptr); Reference.reachabilityFence(this); @@ -148,6 +186,17 @@ public class SendError extends CommonBase { return ret_hu_conv; } + /** + * Utility method to constructs a new InvalidMessage-variant SendError + */ + public static SendError invalid_message() { + long ret = bindings.SendError_invalid_message(); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.SendError ret_hu_conv = org.ldk.structs.SendError.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); }; + return ret_hu_conv; + } + /** * Utility method to constructs a new BufferFull-variant SendError */ @@ -159,4 +208,41 @@ public class SendError extends CommonBase { return ret_hu_conv; } + /** + * Utility method to constructs a new GetNodeIdFailed-variant SendError + */ + public static SendError get_node_id_failed() { + long ret = bindings.SendError_get_node_id_failed(); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.SendError ret_hu_conv = org.ldk.structs.SendError.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); }; + return ret_hu_conv; + } + + /** + * Utility method to constructs a new BlindedPathAdvanceFailed-variant SendError + */ + public static SendError blinded_path_advance_failed() { + long ret = bindings.SendError_blinded_path_advance_failed(); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.SendError ret_hu_conv = org.ldk.structs.SendError.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); }; + return ret_hu_conv; + } + + /** + * Checks if two SendErrors contain equal inner contents. + * This ignores pointers and is_owned flags and looks at the values in fields. + */ + public boolean eq(org.ldk.structs.SendError b) { + boolean ret = bindings.SendError_eq(this.ptr, b == null ? 0 : b.ptr); + Reference.reachabilityFence(this); + Reference.reachabilityFence(b); + return ret; + } + + @Override public boolean equals(Object o) { + if (!(o instanceof SendError)) return false; + return this.eq((SendError)o); + } }