From b3b6aae659411f57c413827e38ba6a80d0d02a0b Mon Sep 17 00:00:00 2001 From: erict875 Date: Thu, 14 Mar 2024 23:41:30 +0000 Subject: [PATCH 1/4] Refactoring --- .../src/main/java/nostr/api/EventNostr.java | 16 +- .../src/main/java/nostr/api/NIP01.java | 25 +-- .../src/main/java/nostr/api/NIP03.java | 5 - .../src/main/java/nostr/api/NIP08.java | 4 +- .../src/main/java/nostr/api/NIP09.java | 4 +- .../src/main/java/nostr/api/NIP12.java | 3 +- .../src/main/java/nostr/api/NIP15.java | 2 +- .../src/main/java/nostr/api/NIP23.java | 7 +- .../src/main/java/nostr/api/NIP25.java | 6 +- .../src/main/java/nostr/api/NIP32.java | 3 +- .../src/main/java/nostr/api/NIP46.java | 177 +++++++++++++++--- .../src/main/java/nostr/api/Nostr.java | 35 ++-- .../java/nostr/api/factory/EventFactory.java | 6 +- .../java/nostr/api/factory/TagFactory.java | 5 +- .../nostr/api/factory/impl/NIP01Impl.java | 17 +- .../nostr/api/factory/impl/NIP02Impl.java | 3 +- .../nostr/api/factory/impl/NIP03Impl.java | 3 - .../nostr/api/factory/impl/NIP04Impl.java | 4 +- .../nostr/api/factory/impl/NIP08Impl.java | 4 +- .../nostr/api/factory/impl/NIP09Impl.java | 4 +- .../nostr/api/factory/impl/NIP12Impl.java | 3 +- .../nostr/api/factory/impl/NIP15Impl.java | 12 +- .../nostr/api/factory/impl/NIP23Impl.java | 5 +- .../nostr/api/factory/impl/NIP25Impl.java | 4 +- .../nostr/api/factory/impl/NIP28Impl.java | 10 +- .../nostr/api/factory/impl/NIP32Impl.java | 8 +- .../nostr/api/factory/impl/NIP42Impl.java | 8 +- .../nostr/api/factory/impl/NIP46Impl.java | 7 +- .../nostr/crypto/nip44/EncryptedPayloads.java | 11 +- .../encryption/nip44/MessageCipher44.java | 4 +- .../main/java/nostr/id/CustomIdentity.java | 2 - 31 files changed, 253 insertions(+), 154 deletions(-) diff --git a/nostr-java-api/src/main/java/nostr/api/EventNostr.java b/nostr-java-api/src/main/java/nostr/api/EventNostr.java index 59c680a3e..e34d556c0 100644 --- a/nostr-java-api/src/main/java/nostr/api/EventNostr.java +++ b/nostr-java-api/src/main/java/nostr/api/EventNostr.java @@ -5,6 +5,7 @@ package nostr.api; import lombok.Getter; +import lombok.NoArgsConstructor; import lombok.NonNull; import lombok.Setter; import nostr.api.factory.impl.GenericEventFactory; @@ -18,6 +19,7 @@ /** * @author guilhermegps */ +@NoArgsConstructor public abstract class EventNostr extends Nostr { @Getter @@ -27,6 +29,10 @@ public abstract class EventNostr extends Nostr { @Getter private PublicKey recipient; + public EventNostr(@NonNull Identity sender) { + super(sender); + } + public EventNostr sign() { super.sign(getSender(), event); @@ -72,12 +78,18 @@ public EventNostr addTag(@NonNull BaseTag tag) { return this; } - public static class Event extends EventNostr { + @NoArgsConstructor + public static class GenericEventNostr extends EventNostr { + + public GenericEventNostr(@NonNull Identity sender) { + super.setSender(sender); + } + /** * @param content * @return */ - public Event createGenericEvent(@NonNull Integer kind, @NonNull String content) { + public GenericEventNostr createGenericEvent(@NonNull Integer kind, @NonNull String content) { var factory = new GenericEventFactory(getSender(), kind, content); var event = factory.create(); setEvent((T) event); diff --git a/nostr-java-api/src/main/java/nostr/api/NIP01.java b/nostr-java-api/src/main/java/nostr/api/NIP01.java index 52bf9fec8..196bbce91 100644 --- a/nostr-java-api/src/main/java/nostr/api/NIP01.java +++ b/nostr-java-api/src/main/java/nostr/api/NIP01.java @@ -4,23 +4,8 @@ */ package nostr.api; -import java.util.List; - import lombok.NonNull; -import nostr.api.factory.impl.NIP01Impl.AddressTagFactory; -import nostr.api.factory.impl.NIP01Impl.CloseMessageFactory; -import nostr.api.factory.impl.NIP01Impl.EoseMessageFactory; -import nostr.api.factory.impl.NIP01Impl.EphemeralEventFactory; -import nostr.api.factory.impl.NIP01Impl.EventMessageFactory; -import nostr.api.factory.impl.NIP01Impl.EventTagFactory; -import nostr.api.factory.impl.NIP01Impl.IdentifierTagFactory; -import nostr.api.factory.impl.NIP01Impl.MetadataEventFactory; -import nostr.api.factory.impl.NIP01Impl.NoticeMessageFactory; -import nostr.api.factory.impl.NIP01Impl.ParameterizedReplaceableEventFactory; -import nostr.api.factory.impl.NIP01Impl.PubKeyTagFactory; -import nostr.api.factory.impl.NIP01Impl.ReplaceableEventFactory; -import nostr.api.factory.impl.NIP01Impl.ReqMessageFactory; -import nostr.api.factory.impl.NIP01Impl.TextNoteEventFactory; +import nostr.api.factory.impl.NIP01Impl.*; import nostr.base.IEvent; import nostr.base.PublicKey; import nostr.base.Relay; @@ -33,17 +18,15 @@ import nostr.event.list.GenericTagQueryList; import nostr.event.list.KindList; import nostr.event.list.PublicKeyList; -import nostr.event.message.CloseMessage; -import nostr.event.message.EoseMessage; -import nostr.event.message.EventMessage; -import nostr.event.message.NoticeMessage; -import nostr.event.message.ReqMessage; +import nostr.event.message.*; import nostr.event.tag.AddressTag; import nostr.event.tag.EventTag; import nostr.event.tag.IdentifierTag; import nostr.event.tag.PubKeyTag; import nostr.id.IIdentity; +import java.util.List; + /** * * @author eric diff --git a/nostr-java-api/src/main/java/nostr/api/NIP03.java b/nostr-java-api/src/main/java/nostr/api/NIP03.java index 2bd6fee08..0b8bdc22a 100644 --- a/nostr-java-api/src/main/java/nostr/api/NIP03.java +++ b/nostr-java-api/src/main/java/nostr/api/NIP03.java @@ -4,15 +4,10 @@ */ package nostr.api; -import java.util.List; import lombok.NonNull; -import nostr.api.factory.impl.NIP02Impl; import nostr.api.factory.impl.NIP03Impl; -import nostr.api.factory.impl.NIP03Impl.OtsEventFactory; import nostr.base.IEvent; -import nostr.event.BaseTag; import nostr.event.impl.GenericEvent; -import nostr.event.impl.OtsEvent; import nostr.id.IIdentity; /** diff --git a/nostr-java-api/src/main/java/nostr/api/NIP08.java b/nostr-java-api/src/main/java/nostr/api/NIP08.java index 8199067f3..da2ad8e37 100644 --- a/nostr-java-api/src/main/java/nostr/api/NIP08.java +++ b/nostr-java-api/src/main/java/nostr/api/NIP08.java @@ -4,8 +4,6 @@ */ package nostr.api; -import java.util.List; - import lombok.NonNull; import nostr.api.factory.impl.NIP08Impl.MentionsEventFactory; import nostr.event.BaseTag; @@ -13,6 +11,8 @@ import nostr.event.impl.MentionsEvent; import nostr.id.IIdentity; +import java.util.List; + /** * * @author eric diff --git a/nostr-java-api/src/main/java/nostr/api/NIP09.java b/nostr-java-api/src/main/java/nostr/api/NIP09.java index 30251645f..9dad6c837 100644 --- a/nostr-java-api/src/main/java/nostr/api/NIP09.java +++ b/nostr-java-api/src/main/java/nostr/api/NIP09.java @@ -4,8 +4,6 @@ */ package nostr.api; -import java.util.List; - import lombok.NonNull; import nostr.api.factory.impl.NIP09Impl.DeletionEventFactory; import nostr.event.BaseTag; @@ -13,6 +11,8 @@ import nostr.event.tag.EventTag; import nostr.id.IIdentity; +import java.util.List; + /** * * @author eric diff --git a/nostr-java-api/src/main/java/nostr/api/NIP12.java b/nostr-java-api/src/main/java/nostr/api/NIP12.java index 4035b2021..b5d4cec93 100644 --- a/nostr-java-api/src/main/java/nostr/api/NIP12.java +++ b/nostr-java-api/src/main/java/nostr/api/NIP12.java @@ -4,7 +4,6 @@ */ package nostr.api; -import java.net.URL; import lombok.NonNull; import nostr.api.factory.impl.NIP12Impl.GeohashTagFactory; import nostr.api.factory.impl.NIP12Impl.HashtagTagFactory; @@ -13,6 +12,8 @@ import nostr.event.tag.HashtagTag; import nostr.event.tag.ReferenceTag; +import java.net.URL; + /** * * @author eric diff --git a/nostr-java-api/src/main/java/nostr/api/NIP15.java b/nostr-java-api/src/main/java/nostr/api/NIP15.java index f0e3416a9..d283225a9 100644 --- a/nostr-java-api/src/main/java/nostr/api/NIP15.java +++ b/nostr-java-api/src/main/java/nostr/api/NIP15.java @@ -6,9 +6,9 @@ import lombok.NonNull; import nostr.api.factory.impl.NIP15Impl; -import nostr.event.impl.*; import nostr.event.impl.CreateOrUpdateStallEvent.Stall; import nostr.event.impl.CustomerOrderEvent.Customer; +import nostr.event.impl.GenericEvent; import nostr.event.impl.MerchantRequestPaymentEvent.Payment; import nostr.event.impl.NostrMarketplaceEvent.Product; import nostr.event.impl.VerifyPaymentOrShippedEvent.PaymentShipmentStatus; diff --git a/nostr-java-api/src/main/java/nostr/api/NIP23.java b/nostr-java-api/src/main/java/nostr/api/NIP23.java index 8b1215d13..83618d273 100644 --- a/nostr-java-api/src/main/java/nostr/api/NIP23.java +++ b/nostr-java-api/src/main/java/nostr/api/NIP23.java @@ -6,8 +6,10 @@ import lombok.NonNull; import nostr.api.factory.impl.NIP23Impl; -import nostr.api.factory.impl.NIP23Impl.*; -import nostr.event.BaseTag; +import nostr.api.factory.impl.NIP23Impl.ImageTagFactory; +import nostr.api.factory.impl.NIP23Impl.PublishedAtTagFactory; +import nostr.api.factory.impl.NIP23Impl.SummaryTagFactory; +import nostr.api.factory.impl.NIP23Impl.TitleTagFactory; import nostr.event.impl.GenericEvent; import nostr.event.impl.GenericTag; import nostr.event.tag.AddressTag; @@ -15,7 +17,6 @@ import nostr.id.IIdentity; import java.net.URL; -import java.util.List; /** * @author eric diff --git a/nostr-java-api/src/main/java/nostr/api/NIP25.java b/nostr-java-api/src/main/java/nostr/api/NIP25.java index 92c1345fb..2c529b2c9 100644 --- a/nostr-java-api/src/main/java/nostr/api/NIP25.java +++ b/nostr-java-api/src/main/java/nostr/api/NIP25.java @@ -4,9 +4,6 @@ */ package nostr.api; -import java.util.ArrayList; -import java.util.List; - import lombok.NonNull; import nostr.api.factory.impl.NIP25Impl.ReactionEventFactory; import nostr.event.BaseTag; @@ -16,6 +13,9 @@ import nostr.event.tag.EmojiTag; import nostr.id.IIdentity; +import java.util.ArrayList; +import java.util.List; + public class NIP25 extends EventNostr { public NIP25(@NonNull IIdentity sender) { diff --git a/nostr-java-api/src/main/java/nostr/api/NIP32.java b/nostr-java-api/src/main/java/nostr/api/NIP32.java index ae3d3a055..777f51284 100644 --- a/nostr-java-api/src/main/java/nostr/api/NIP32.java +++ b/nostr-java-api/src/main/java/nostr/api/NIP32.java @@ -4,7 +4,6 @@ */ package nostr.api; -import java.util.Map; import lombok.NonNull; import nostr.api.factory.impl.NIP32Impl.Label; import nostr.api.factory.impl.NIP32Impl.LabelTagFactory; @@ -12,6 +11,8 @@ import nostr.api.factory.impl.NIP32Impl.NamespaceTagFactory; import nostr.event.impl.GenericTag; +import java.util.Map; + /** * * @author eric diff --git a/nostr-java-api/src/main/java/nostr/api/NIP46.java b/nostr-java-api/src/main/java/nostr/api/NIP46.java index bd56b49aa..b150774d9 100644 --- a/nostr-java-api/src/main/java/nostr/api/NIP46.java +++ b/nostr-java-api/src/main/java/nostr/api/NIP46.java @@ -1,5 +1,6 @@ package nostr.api; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.AllArgsConstructor; @@ -12,9 +13,10 @@ import nostr.event.impl.GenericEvent; import nostr.id.IIdentity; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.LinkedHashSet; +import java.util.Set; import java.util.logging.Level; public final class NIP46 extends EventNostr { @@ -29,7 +31,7 @@ public NIP46(@NonNull IIdentity sender) { * @param signer * @return */ - public NIP46 createRequestEvent(@NonNull NIP46.NIP46Request request, @NonNull PublicKey signer) { + public NIP46 createRequestEvent(@NonNull NIP46.Request request, @NonNull PublicKey signer) { var factory = new NIP46Impl.NostrConnectEventFactory(getSender(), request, signer); var event = factory.create(); setEvent((T) event); @@ -42,7 +44,7 @@ public NIP46 createRequestEvent(@NonNull NIP46.NIP46Request request, @NonNull * @param app * @return */ - public NIP46 createResponseEvent(@NonNull NIP46.NIP46Response response, @NonNull PublicKey app) { + public NIP46 createResponseEvent(@NonNull NIP46.Response response, @NonNull PublicKey app) { var factory = new NIP46Impl.NostrConnectEventFactory(getSender(), response, app); var event = factory.create(); setEvent((T) event); @@ -58,32 +60,111 @@ public interface NIP46ReqRes { @AllArgsConstructor @NoArgsConstructor @Log - public static final class NIP46Request implements NIP46ReqRes { - private String id; - private String method; - private List params; - private String sessionId; + public static final class Request implements Serializable { + private String initiator; + private String token; + private LocalDateTime createdAt; + private String requestUuid; + @JsonIgnore + private Method method; + @JsonIgnore + private Session session; + private Set parameters = new LinkedHashSet<>(); + + public void addParameter(Parameter parameter) { + this.parameters.add(parameter); + } + + public String toString() { + try { + ObjectMapper objectMapper = new ObjectMapper(); + return objectMapper.writeValueAsString(this); + } catch (JsonProcessingException ex) { + // Handle the exception if needed + log.log(Level.WARNING, "Error converting to JSON: {0}", ex.getMessage()); + return "{}"; // Return an empty JSON object as a fallback + } + } + + public static Request fromString(@NonNull String jsonString) { + ObjectMapper objectMapper = new ObjectMapper(); + try { + return objectMapper.readValue(jsonString, Request.class); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + } + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Log + public static final class Response implements Serializable { + private Long id; + private String responseUuid; + private String result; + @JsonIgnore + private Method method; + @JsonIgnore + private Session session; + private LocalDateTime createdAt; + + public String toString() { + try { + ObjectMapper objectMapper = new ObjectMapper(); + return objectMapper.writeValueAsString(this); + } catch (JsonProcessingException ex) { + // Handle the exception if needed + log.log(Level.WARNING, "Error converting to JSON: {0}", ex.getMessage()); + return "{}"; // Return an empty JSON object as a fallback + } + } + + public static Response fromString(@NonNull String jsonString) { + ObjectMapper objectMapper = new ObjectMapper(); + try { + return objectMapper.readValue(jsonString, Response.class); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + } - public NIP46Request(@NonNull String method) { - this(UUID.randomUUID().toString(), method, new ArrayList<>(), null); + @Data + @AllArgsConstructor + @NoArgsConstructor + @Log + public static final class Method implements Serializable { + private Long id; + private String name; + private String description; + private Set requests = new LinkedHashSet<>(); + private Set responses = new LinkedHashSet<>(); + + public void addRequest(@NonNull Request request) { + this.requests.add(request); + } + + public void addResponse(@NonNull Response response) { + this.responses.add(response); } - @Override public String toString() { try { ObjectMapper objectMapper = new ObjectMapper(); return objectMapper.writeValueAsString(this); } catch (JsonProcessingException ex) { // Handle the exception if needed - log.log(Level.WARNING, ex.getMessage()); + log.log(Level.WARNING, "Error converting to JSON: {0}", ex.getMessage()); return "{}"; // Return an empty JSON object as a fallback } } - public static NIP46Request fromString(@NonNull String jsonString) { + public static Method fromString(@NonNull String jsonString) { ObjectMapper objectMapper = new ObjectMapper(); try { - return objectMapper.readValue(jsonString, NIP46Request.class); + return objectMapper.readValue(jsonString, Method.class); } catch (JsonProcessingException e) { throw new RuntimeException(e); } @@ -94,37 +175,75 @@ public static NIP46Request fromString(@NonNull String jsonString) { @AllArgsConstructor @NoArgsConstructor @Log - public static final class NIP46Response implements NIP46ReqRes { - private String id; - private String method; - private Object result; - private String error; + public static final class Session implements Serializable { + private Long id; private String sessionId; + private String status; + private String app; + private String account; + private LocalDateTime createdAt; + private String token; + private Set requests = new LinkedHashSet<>(); + private Set responses = new LinkedHashSet<>(); + + public void addRequest(@NonNull Request request) { + this.requests.add(request); + } - public NIP46Response(@NonNull String id, @NonNull String method, @NonNull String result) { - this(id, method, result, null, null); + public void addResponse(@NonNull Response response) { + this.responses.add(response); } - @Override public String toString() { try { - var objectMapper = new ObjectMapper(); + ObjectMapper objectMapper = new ObjectMapper(); return objectMapper.writeValueAsString(this); } catch (JsonProcessingException ex) { // Handle the exception if needed - log.log(Level.WARNING, ex.getMessage()); + log.log(Level.WARNING, "Error converting to JSON: {0}", ex.getMessage()); return "{}"; // Return an empty JSON object as a fallback } } - public static NIP46Response fromString(@NonNull String jsonString) { + public static Session fromString(@NonNull String jsonString) { + ObjectMapper objectMapper = new ObjectMapper(); try { - var objectMapper = new ObjectMapper(); - return objectMapper.readValue(jsonString, NIP46Response.class); + return objectMapper.readValue(jsonString, Session.class); } catch (JsonProcessingException e) { throw new RuntimeException(e); } } + } + @Data + @AllArgsConstructor + @NoArgsConstructor + @Log + public static final class Parameter implements Serializable { + private Long id; + private String name; + private String value; + @JsonIgnore + private Request request; + + public String toString() { + try { + ObjectMapper objectMapper = new ObjectMapper(); + return objectMapper.writeValueAsString(this); + } catch (JsonProcessingException ex) { + log.log(Level.WARNING, "Error converting to JSON: {0}", ex.getMessage()); + return "{}"; // Return an empty JSON object as a fallback + } + } + + public static Parameter fromString(@NonNull String jsonString) { + ObjectMapper objectMapper = new ObjectMapper(); + try { + return objectMapper.readValue(jsonString, Parameter.class); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } } + } diff --git a/nostr-java-api/src/main/java/nostr/api/Nostr.java b/nostr-java-api/src/main/java/nostr/api/Nostr.java index 98a646e2c..24a7a9990 100644 --- a/nostr-java-api/src/main/java/nostr/api/Nostr.java +++ b/nostr-java-api/src/main/java/nostr/api/Nostr.java @@ -4,36 +4,26 @@ */ package nostr.api; -import java.util.List; -import java.util.Map; - import lombok.Getter; +import lombok.NoArgsConstructor; import lombok.NonNull; -import nostr.base.GenericTagQuery; -import nostr.base.IElement; -import nostr.base.IEvent; -import nostr.base.ISignable; -import nostr.base.Relay; +import nostr.base.*; import nostr.client.Client; import nostr.event.BaseEvent; import nostr.event.BaseMessage; import nostr.event.BaseTag; import nostr.event.impl.Filters; import nostr.event.impl.GenericEvent; -import nostr.event.json.codec.BaseEventEncoder; -import nostr.event.json.codec.BaseMessageDecoder; -import nostr.event.json.codec.BaseMessageEncoder; -import nostr.event.json.codec.BaseTagDecoder; -import nostr.event.json.codec.BaseTagEncoder; -import nostr.event.json.codec.FiltersDecoder; -import nostr.event.json.codec.FiltersEncoder; -import nostr.event.json.codec.GenericEventDecoder; -import nostr.event.json.codec.GenericTagQueryEncoder; +import nostr.event.json.codec.*; import nostr.id.IIdentity; +import java.util.List; +import java.util.Map; + /** * @author eric */ +@NoArgsConstructor public class Nostr { private static Nostr INSTANCE; @@ -45,6 +35,14 @@ public class Nostr { public static Nostr getInstance() { return (INSTANCE == null) ? new Nostr() : INSTANCE; } + + public static Nostr getInstance(@NonNull IIdentity sender) { + return (INSTANCE == null) ? new Nostr(sender) : INSTANCE; + } + + public Nostr(@NonNull IIdentity sender) { + this.sender = sender; + } public Nostr setSender(@NonNull IIdentity sender) { this.sender = sender; @@ -85,12 +83,13 @@ public Nostr sign(@NonNull IIdentity identity, @NonNull ISignable signable) { return this; } +/* public Nostr sign(@NonNull ISignable signable) { sender.sign(signable); return this; } - +*/ public static class Json { diff --git a/nostr-java-api/src/main/java/nostr/api/factory/EventFactory.java b/nostr-java-api/src/main/java/nostr/api/factory/EventFactory.java index afdd7a514..d4d10631d 100644 --- a/nostr-java-api/src/main/java/nostr/api/factory/EventFactory.java +++ b/nostr-java-api/src/main/java/nostr/api/factory/EventFactory.java @@ -4,9 +4,6 @@ */ package nostr.api.factory; -import java.util.ArrayList; -import java.util.List; - import lombok.Data; import nostr.base.IEvent; import nostr.base.PublicKey; @@ -14,6 +11,9 @@ import nostr.id.IIdentity; import nostr.id.Identity; +import java.util.ArrayList; +import java.util.List; + /** * * @author eric diff --git a/nostr-java-api/src/main/java/nostr/api/factory/TagFactory.java b/nostr-java-api/src/main/java/nostr/api/factory/TagFactory.java index 4b254c9e3..72c3ca8bf 100644 --- a/nostr-java-api/src/main/java/nostr/api/factory/TagFactory.java +++ b/nostr-java-api/src/main/java/nostr/api/factory/TagFactory.java @@ -4,13 +4,14 @@ */ package nostr.api.factory; -import java.util.ArrayList; -import java.util.List; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NonNull; import nostr.event.impl.GenericTag; +import java.util.ArrayList; +import java.util.List; + /** * * @author eric diff --git a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP01Impl.java b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP01Impl.java index 957930bd3..7991bbe91 100644 --- a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP01Impl.java +++ b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP01Impl.java @@ -4,8 +4,6 @@ */ package nostr.api.factory.impl; -import java.util.List; - import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; @@ -19,23 +17,16 @@ import nostr.base.UserProfile; import nostr.event.BaseTag; import nostr.event.Marker; -import nostr.event.impl.EphemeralEvent; -import nostr.event.impl.Filters; -import nostr.event.impl.MetadataEvent; -import nostr.event.impl.ParameterizedReplaceableEvent; -import nostr.event.impl.ReplaceableEvent; -import nostr.event.impl.TextNoteEvent; -import nostr.event.message.CloseMessage; -import nostr.event.message.EoseMessage; -import nostr.event.message.EventMessage; -import nostr.event.message.NoticeMessage; -import nostr.event.message.ReqMessage; +import nostr.event.impl.*; +import nostr.event.message.*; import nostr.event.tag.AddressTag; import nostr.event.tag.EventTag; import nostr.event.tag.IdentifierTag; import nostr.event.tag.PubKeyTag; import nostr.id.IIdentity; +import java.util.List; + /** * * @author eric diff --git a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP02Impl.java b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP02Impl.java index 61013b144..6492e4a81 100644 --- a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP02Impl.java +++ b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP02Impl.java @@ -4,7 +4,6 @@ */ package nostr.api.factory.impl; -import java.util.List; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NonNull; @@ -13,6 +12,8 @@ import nostr.event.impl.ContactListEvent; import nostr.id.IIdentity; +import java.util.List; + /** * * @author eric diff --git a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP03Impl.java b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP03Impl.java index d0a924b84..f2ac087f1 100644 --- a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP03Impl.java +++ b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP03Impl.java @@ -4,7 +4,6 @@ */ package nostr.api.factory.impl; -import java.util.List; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NonNull; @@ -12,10 +11,8 @@ import nostr.api.NIP31; import nostr.api.factory.EventFactory; import nostr.base.IEvent; -import nostr.event.BaseTag; import nostr.event.impl.OtsEvent; import nostr.id.IIdentity; -import nostr.id.Identity; /** * diff --git a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP04Impl.java b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP04Impl.java index 7917d3376..6e2614712 100644 --- a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP04Impl.java +++ b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP04Impl.java @@ -4,8 +4,6 @@ */ package nostr.api.factory.impl; -import java.util.List; - import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NonNull; @@ -15,6 +13,8 @@ import nostr.event.impl.DirectMessageEvent; import nostr.id.IIdentity; +import java.util.List; + /** * * @author eric diff --git a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP08Impl.java b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP08Impl.java index cd73844d7..cecddfbd4 100644 --- a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP08Impl.java +++ b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP08Impl.java @@ -4,8 +4,6 @@ */ package nostr.api.factory.impl; -import java.util.List; - import lombok.NonNull; import nostr.api.factory.EventFactory; import nostr.base.PublicKey; @@ -13,6 +11,8 @@ import nostr.event.tag.PubKeyTag; import nostr.id.Identity; +import java.util.List; + /** * * @author eric diff --git a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP09Impl.java b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP09Impl.java index f10f2057d..d5ff5f16a 100644 --- a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP09Impl.java +++ b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP09Impl.java @@ -4,8 +4,6 @@ */ package nostr.api.factory.impl; -import java.util.List; - import lombok.Data; import lombok.EqualsAndHashCode; import nostr.api.factory.EventFactory; @@ -13,6 +11,8 @@ import nostr.event.impl.DeletionEvent; import nostr.id.IIdentity; +import java.util.List; + /** * * @author eric diff --git a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP12Impl.java b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP12Impl.java index f39c11b54..9ac1d042c 100644 --- a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP12Impl.java +++ b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP12Impl.java @@ -4,7 +4,6 @@ */ package nostr.api.factory.impl; -import java.net.URL; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NonNull; @@ -13,6 +12,8 @@ import nostr.event.tag.HashtagTag; import nostr.event.tag.ReferenceTag; +import java.net.URL; + /** * * @author eric diff --git a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP15Impl.java b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP15Impl.java index 45d127222..ab3cb40d1 100644 --- a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP15Impl.java +++ b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP15Impl.java @@ -4,23 +4,19 @@ */ package nostr.api.factory.impl; -import java.util.ArrayList; -import java.util.List; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NonNull; import nostr.api.factory.EventFactory; import nostr.event.BaseTag; -import nostr.event.impl.CreateOrUpdateProductEvent; -import nostr.event.impl.CreateOrUpdateStallEvent; -import nostr.event.impl.CustomerOrderEvent; -import nostr.event.impl.MerchantRequestPaymentEvent; -import nostr.event.impl.NostrMarketplaceEvent; -import nostr.event.impl.VerifyPaymentOrShippedEvent; +import nostr.event.impl.*; import nostr.event.tag.HashtagTag; import nostr.event.tag.IdentifierTag; import nostr.id.IIdentity; +import java.util.ArrayList; +import java.util.List; + /** * * @author eric diff --git a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP23Impl.java b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP23Impl.java index 2ec9a0646..ad361b6c6 100644 --- a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP23Impl.java +++ b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP23Impl.java @@ -4,8 +4,6 @@ */ package nostr.api.factory.impl; -import java.net.URL; -import java.util.List; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NonNull; @@ -15,6 +13,9 @@ import nostr.event.impl.GenericEvent; import nostr.id.IIdentity; +import java.net.URL; +import java.util.List; + /** * * @author eric diff --git a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP25Impl.java b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP25Impl.java index e6076a7b4..89e9efe02 100644 --- a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP25Impl.java +++ b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP25Impl.java @@ -4,8 +4,6 @@ */ package nostr.api.factory.impl; -import java.util.List; - import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NonNull; @@ -16,6 +14,8 @@ import nostr.event.impl.ReactionEvent; import nostr.id.IIdentity; +import java.util.List; + /** * * @author eric diff --git a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP28Impl.java b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP28Impl.java index 22fb76c21..ee4219520 100644 --- a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP28Impl.java +++ b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP28Impl.java @@ -4,8 +4,6 @@ */ package nostr.api.factory.impl; -import static nostr.util.NostrUtil.escapeJsonString; - import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NonNull; @@ -14,13 +12,11 @@ import nostr.base.ContentReason; import nostr.base.PublicKey; import nostr.base.Relay; -import nostr.event.impl.ChannelCreateEvent; -import nostr.event.impl.ChannelMessageEvent; -import nostr.event.impl.ChannelMetadataEvent; -import nostr.event.impl.HideMessageEvent; -import nostr.event.impl.MuteUserEvent; +import nostr.event.impl.*; import nostr.id.IIdentity; +import static nostr.util.NostrUtil.escapeJsonString; + /** * * @author eric diff --git a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP32Impl.java b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP32Impl.java index 7ef770686..be2e04303 100644 --- a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP32Impl.java +++ b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP32Impl.java @@ -6,14 +6,16 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NonNull; import nostr.api.factory.TagFactory; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + import static nostr.util.NostrUtil.escapeJsonString; /** diff --git a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP42Impl.java b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP42Impl.java index 1cdc03f6c..16051b174 100644 --- a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP42Impl.java +++ b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP42Impl.java @@ -4,10 +4,6 @@ */ package nostr.api.factory.impl; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; @@ -24,6 +20,10 @@ import nostr.event.message.ClientAuthenticationMessage; import nostr.id.IIdentity; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + /** * * @author eric diff --git a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP46Impl.java b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP46Impl.java index 54c3b9021..0877387be 100644 --- a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP46Impl.java +++ b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP46Impl.java @@ -5,8 +5,7 @@ import lombok.NonNull; import lombok.extern.java.Log; import nostr.api.NIP04; -import nostr.api.NIP46.NIP46Request; -import nostr.api.NIP46.NIP46Response; +import nostr.api.NIP46; import nostr.api.factory.EventFactory; import nostr.base.PublicKey; import nostr.event.impl.NostrConnectEvent; @@ -23,14 +22,14 @@ public static class NostrConnectEventFactory extends EventFactory Date: Fri, 15 Mar 2024 17:34:14 +0000 Subject: [PATCH 2/4] Minimal logging changes --- nostr-java-api/src/main/java/nostr/api/NIP04.java | 2 +- nostr-java-api/src/main/java/nostr/api/NIP44.java | 2 +- .../src/main/java/nostr/api/factory/impl/NIP46Impl.java | 4 ++-- .../src/main/java/nostr/crypto/nip44/EncryptedPayloads.java | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/nostr-java-api/src/main/java/nostr/api/NIP04.java b/nostr-java-api/src/main/java/nostr/api/NIP04.java index 4e9282eb5..76ddca9be 100644 --- a/nostr-java-api/src/main/java/nostr/api/NIP04.java +++ b/nostr-java-api/src/main/java/nostr/api/NIP04.java @@ -135,7 +135,7 @@ public static String decrypt(@NonNull IIdentity rcptId, @NonNull GenericEvent ev // I am the message recipient var sender = event.getPubKey(); - log.log(Level.INFO, "The message is being decrypted for {0}", sender); + log.log(Level.FINE, "The message is being decrypted for {0}", sender); MessageCipher cipher = new MessageCipher04(rcptId.getPrivateKey().getRawData(), sender.getRawData()); return cipher.decrypt(event.getContent()); } diff --git a/nostr-java-api/src/main/java/nostr/api/NIP44.java b/nostr-java-api/src/main/java/nostr/api/NIP44.java index 3539c98ca..cee8cc0f2 100644 --- a/nostr-java-api/src/main/java/nostr/api/NIP44.java +++ b/nostr-java-api/src/main/java/nostr/api/NIP44.java @@ -119,7 +119,7 @@ public static String decrypt(@NonNull IIdentity rcptId, @NonNull GenericEvent ev // I am the message recipient var sender = event.getPubKey(); - log.log(Level.INFO, "The message is being decrypted for {0}", sender); + log.log(Level.FINE, "The message is being decrypted for {0}", sender); MessageCipher cipher = new MessageCipher44(rcptId.getPrivateKey().toString(), sender.toString()); return cipher.decrypt(event.getContent()); } diff --git a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP46Impl.java b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP46Impl.java index 0877387be..3e868c88d 100644 --- a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP46Impl.java +++ b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP46Impl.java @@ -26,14 +26,14 @@ public NostrConnectEventFactory(@NonNull IIdentity sender, @NonNull NIP46.Reques super(sender, NIP04.encrypt(sender, request.toString(), recipient)); this.recipient = recipient; var senderPk = getIdentity().getPublicKey(); - log.log(Level.INFO, "NostrConnectEventFactory Sender: {0} - Request: {1}", new Object[]{senderPk, request}); + log.log(Level.FINE, "NostrConnectEventFactory Sender: {0} - Request: {1}", new Object[]{senderPk, request}); } public NostrConnectEventFactory(@NonNull IIdentity sender, @NonNull NIP46.Response response, @NonNull PublicKey recipient) { super(sender, NIP04.encrypt(sender, response.toString(), recipient)); this.recipient = recipient; var senderPk = getIdentity().getPublicKey(); - log.log(Level.INFO, "NostrConnectEventFactory Sender: {0} - Response: {1}", new Object[]{senderPk, response}); + log.log(Level.FINE, "NostrConnectEventFactory Sender: {0} - Response: {1}", new Object[]{senderPk, response}); } public NostrConnectEvent create() { diff --git a/nostr-java-crypto/src/main/java/nostr/crypto/nip44/EncryptedPayloads.java b/nostr-java-crypto/src/main/java/nostr/crypto/nip44/EncryptedPayloads.java index 8410ed97f..924de9caf 100644 --- a/nostr-java-crypto/src/main/java/nostr/crypto/nip44/EncryptedPayloads.java +++ b/nostr-java-crypto/src/main/java/nostr/crypto/nip44/EncryptedPayloads.java @@ -78,7 +78,7 @@ public static String decrypt(String payload, byte[] conversationKey) throws Exce byte[] calculatedMac = hmac.doFinal(); if (!MessageDigest.isEqual(calculatedMac, mac)) { - log.log(Level.INFO, "Calculated MAC = {0} --- Mac = {1}", new Object[]{Arrays.toString(calculatedMac), Arrays.toString(mac)}); + log.log(Level.FINE, "Calculated MAC = {0} --- Mac = {1}", new Object[]{Arrays.toString(calculatedMac), Arrays.toString(mac)}); throw new Exception("Invalid MAC"); } From dd680ea1d32312019c74d7c57f451fb20c0e985e Mon Sep 17 00:00:00 2001 From: erict875 Date: Sun, 17 Mar 2024 16:35:41 +0000 Subject: [PATCH 3/4] Using single class imports --- .../src/main/java/nostr/api/NIP01.java | 21 ++++++++- .../src/main/java/nostr/api/Nostr.java | 16 ++++++- .../nostr/api/factory/impl/NIP01Impl.java | 13 +++++- .../nostr/api/factory/impl/NIP15Impl.java | 7 ++- .../nostr/api/factory/impl/NIP28Impl.java | 6 ++- .../java/nostr/base/ElementAttribute.java | 7 ++- .../src/main/java/nostr/base/Relay.java | 11 +++-- .../main/java/nostr/event/impl/OtsEvent.java | 2 - .../java/nostr/examples/NostrApiExamples.java | 46 ++++++++++++------- .../main/java/nostr/id/CustomIdentity.java | 3 -- .../src/main/java/nostr/id/Identity.java | 2 - .../java/nostr/test/event/ApiEventTest.java | 20 ++++---- 12 files changed, 109 insertions(+), 45 deletions(-) diff --git a/nostr-java-api/src/main/java/nostr/api/NIP01.java b/nostr-java-api/src/main/java/nostr/api/NIP01.java index 196bbce91..a6b4291bf 100644 --- a/nostr-java-api/src/main/java/nostr/api/NIP01.java +++ b/nostr-java-api/src/main/java/nostr/api/NIP01.java @@ -5,7 +5,20 @@ package nostr.api; import lombok.NonNull; -import nostr.api.factory.impl.NIP01Impl.*; +import nostr.api.factory.impl.NIP01Impl.AddressTagFactory; +import nostr.api.factory.impl.NIP01Impl.CloseMessageFactory; +import nostr.api.factory.impl.NIP01Impl.EoseMessageFactory; +import nostr.api.factory.impl.NIP01Impl.EphemeralEventFactory; +import nostr.api.factory.impl.NIP01Impl.EventMessageFactory; +import nostr.api.factory.impl.NIP01Impl.EventTagFactory; +import nostr.api.factory.impl.NIP01Impl.IdentifierTagFactory; +import nostr.api.factory.impl.NIP01Impl.MetadataEventFactory; +import nostr.api.factory.impl.NIP01Impl.NoticeMessageFactory; +import nostr.api.factory.impl.NIP01Impl.ParameterizedReplaceableEventFactory; +import nostr.api.factory.impl.NIP01Impl.PubKeyTagFactory; +import nostr.api.factory.impl.NIP01Impl.ReplaceableEventFactory; +import nostr.api.factory.impl.NIP01Impl.ReqMessageFactory; +import nostr.api.factory.impl.NIP01Impl.TextNoteEventFactory; import nostr.base.IEvent; import nostr.base.PublicKey; import nostr.base.Relay; @@ -18,7 +31,11 @@ import nostr.event.list.GenericTagQueryList; import nostr.event.list.KindList; import nostr.event.list.PublicKeyList; -import nostr.event.message.*; +import nostr.event.message.CloseMessage; +import nostr.event.message.EoseMessage; +import nostr.event.message.EventMessage; +import nostr.event.message.NoticeMessage; +import nostr.event.message.ReqMessage; import nostr.event.tag.AddressTag; import nostr.event.tag.EventTag; import nostr.event.tag.IdentifierTag; diff --git a/nostr-java-api/src/main/java/nostr/api/Nostr.java b/nostr-java-api/src/main/java/nostr/api/Nostr.java index 24a7a9990..9fad2645e 100644 --- a/nostr-java-api/src/main/java/nostr/api/Nostr.java +++ b/nostr-java-api/src/main/java/nostr/api/Nostr.java @@ -7,14 +7,26 @@ import lombok.Getter; import lombok.NoArgsConstructor; import lombok.NonNull; -import nostr.base.*; +import nostr.base.GenericTagQuery; +import nostr.base.IElement; +import nostr.base.IEvent; +import nostr.base.ISignable; +import nostr.base.Relay; import nostr.client.Client; import nostr.event.BaseEvent; import nostr.event.BaseMessage; import nostr.event.BaseTag; import nostr.event.impl.Filters; import nostr.event.impl.GenericEvent; -import nostr.event.json.codec.*; +import nostr.event.json.codec.BaseEventEncoder; +import nostr.event.json.codec.BaseMessageDecoder; +import nostr.event.json.codec.BaseMessageEncoder; +import nostr.event.json.codec.BaseTagDecoder; +import nostr.event.json.codec.BaseTagEncoder; +import nostr.event.json.codec.FiltersDecoder; +import nostr.event.json.codec.FiltersEncoder; +import nostr.event.json.codec.GenericEventDecoder; +import nostr.event.json.codec.GenericTagQueryEncoder; import nostr.id.IIdentity; import java.util.List; diff --git a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP01Impl.java b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP01Impl.java index 7991bbe91..af57dcb6d 100644 --- a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP01Impl.java +++ b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP01Impl.java @@ -17,8 +17,17 @@ import nostr.base.UserProfile; import nostr.event.BaseTag; import nostr.event.Marker; -import nostr.event.impl.*; -import nostr.event.message.*; +import nostr.event.impl.EphemeralEvent; +import nostr.event.impl.Filters; +import nostr.event.impl.MetadataEvent; +import nostr.event.impl.ParameterizedReplaceableEvent; +import nostr.event.impl.ReplaceableEvent; +import nostr.event.impl.TextNoteEvent; +import nostr.event.message.CloseMessage; +import nostr.event.message.EoseMessage; +import nostr.event.message.EventMessage; +import nostr.event.message.NoticeMessage; +import nostr.event.message.ReqMessage; import nostr.event.tag.AddressTag; import nostr.event.tag.EventTag; import nostr.event.tag.IdentifierTag; diff --git a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP15Impl.java b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP15Impl.java index ab3cb40d1..06bfd72ff 100644 --- a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP15Impl.java +++ b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP15Impl.java @@ -9,7 +9,12 @@ import lombok.NonNull; import nostr.api.factory.EventFactory; import nostr.event.BaseTag; -import nostr.event.impl.*; +import nostr.event.impl.CreateOrUpdateProductEvent; +import nostr.event.impl.CreateOrUpdateStallEvent; +import nostr.event.impl.CustomerOrderEvent; +import nostr.event.impl.MerchantRequestPaymentEvent; +import nostr.event.impl.NostrMarketplaceEvent; +import nostr.event.impl.VerifyPaymentOrShippedEvent; import nostr.event.tag.HashtagTag; import nostr.event.tag.IdentifierTag; import nostr.id.IIdentity; diff --git a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP28Impl.java b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP28Impl.java index ee4219520..47732a080 100644 --- a/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP28Impl.java +++ b/nostr-java-api/src/main/java/nostr/api/factory/impl/NIP28Impl.java @@ -12,7 +12,11 @@ import nostr.base.ContentReason; import nostr.base.PublicKey; import nostr.base.Relay; -import nostr.event.impl.*; +import nostr.event.impl.ChannelCreateEvent; +import nostr.event.impl.ChannelMessageEvent; +import nostr.event.impl.ChannelMetadataEvent; +import nostr.event.impl.HideMessageEvent; +import nostr.event.impl.MuteUserEvent; import nostr.id.IIdentity; import static nostr.util.NostrUtil.escapeJsonString; diff --git a/nostr-java-base/src/main/java/nostr/base/ElementAttribute.java b/nostr-java-base/src/main/java/nostr/base/ElementAttribute.java index 8e41c5b07..804a58682 100644 --- a/nostr-java-base/src/main/java/nostr/base/ElementAttribute.java +++ b/nostr-java-base/src/main/java/nostr/base/ElementAttribute.java @@ -2,7 +2,12 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NonNull; +import lombok.ToString; /** * diff --git a/nostr-java-base/src/main/java/nostr/base/Relay.java b/nostr-java-base/src/main/java/nostr/base/Relay.java index 2e4ef950e..0f072d826 100644 --- a/nostr-java-base/src/main/java/nostr/base/Relay.java +++ b/nostr-java-base/src/main/java/nostr/base/Relay.java @@ -2,15 +2,20 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.NonNull; +import lombok.ToString; +import lombok.extern.java.Log; import java.net.URI; import java.net.URISyntaxException; import java.util.ArrayList; import java.util.List; -import lombok.*; -import lombok.extern.java.Log; - /** * @author squirrel */ diff --git a/nostr-java-event/src/main/java/nostr/event/impl/OtsEvent.java b/nostr-java-event/src/main/java/nostr/event/impl/OtsEvent.java index 09bd28f47..09d52a3a5 100644 --- a/nostr-java-event/src/main/java/nostr/event/impl/OtsEvent.java +++ b/nostr-java-event/src/main/java/nostr/event/impl/OtsEvent.java @@ -2,10 +2,8 @@ package nostr.event.impl; import java.util.List; -import java.util.Map; import lombok.NonNull; -import nostr.base.ElementAttribute; import nostr.base.PublicKey; import nostr.base.annotation.Event; import nostr.event.BaseTag; diff --git a/nostr-java-examples/src/main/java/nostr/examples/NostrApiExamples.java b/nostr-java-examples/src/main/java/nostr/examples/NostrApiExamples.java index d306bfd37..2665c03f0 100644 --- a/nostr-java-examples/src/main/java/nostr/examples/NostrApiExamples.java +++ b/nostr-java-examples/src/main/java/nostr/examples/NostrApiExamples.java @@ -1,20 +1,5 @@ package nostr.examples; -import java.io.IOException; -import java.io.InputStream; -import java.net.MalformedURLException; -import java.net.URI; -import java.net.URISyntaxException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; -import java.util.Map; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; -import java.util.logging.Level; -import java.util.logging.LogManager; - import lombok.extern.java.Log; import nostr.api.NIP01; import nostr.api.NIP04; @@ -24,14 +9,26 @@ import nostr.api.NIP25; import nostr.api.NIP28; import nostr.api.NIP30; -import nostr.api.Nostr; import nostr.base.ChannelProfile; import nostr.base.PublicKey; import nostr.base.UserProfile; import nostr.event.BaseTag; import nostr.event.Kind; import nostr.event.Reaction; -import nostr.event.impl.*; +import nostr.event.impl.ChannelCreateEvent; +import nostr.event.impl.ChannelMessageEvent; +import nostr.event.impl.DeletionEvent; +import nostr.event.impl.DirectMessageEvent; +import nostr.event.impl.EphemeralEvent; +import nostr.event.impl.Filters; +import nostr.event.impl.GenericEvent; +import nostr.event.impl.HideMessageEvent; +import nostr.event.impl.InternetIdentifierMetadataEvent; +import nostr.event.impl.MentionsEvent; +import nostr.event.impl.MetadataEvent; +import nostr.event.impl.MuteUserEvent; +import nostr.event.impl.ReactionEvent; +import nostr.event.impl.TextNoteEvent; import nostr.event.list.KindList; import nostr.event.list.PublicKeyList; import nostr.event.tag.EventTag; @@ -39,6 +36,21 @@ import nostr.id.Identity; import nostr.util.NostrException; +import java.io.IOException; +import java.io.InputStream; +import java.net.MalformedURLException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; +import java.util.logging.Level; +import java.util.logging.LogManager; + /** * * @author eric diff --git a/nostr-java-id/src/main/java/nostr/id/CustomIdentity.java b/nostr-java-id/src/main/java/nostr/id/CustomIdentity.java index 809eca95d..7b5ea1fc9 100644 --- a/nostr-java-id/src/main/java/nostr/id/CustomIdentity.java +++ b/nostr-java-id/src/main/java/nostr/id/CustomIdentity.java @@ -4,10 +4,7 @@ import lombok.EqualsAndHashCode; import lombok.NonNull; import lombok.ToString; -import nostr.base.ISignable; import nostr.base.PrivateKey; -import nostr.base.PublicKey; -import nostr.base.Signature; import nostr.util.NostrException; import java.io.IOException; diff --git a/nostr-java-id/src/main/java/nostr/id/Identity.java b/nostr-java-id/src/main/java/nostr/id/Identity.java index eddd77b09..3e3908cd9 100644 --- a/nostr-java-id/src/main/java/nostr/id/Identity.java +++ b/nostr-java-id/src/main/java/nostr/id/Identity.java @@ -8,10 +8,8 @@ import lombok.NonNull; import lombok.ToString; import lombok.extern.java.Log; -import nostr.base.ISignable; import nostr.base.PrivateKey; import nostr.base.PublicKey; -import nostr.base.Signature; import nostr.crypto.bech32.Bech32; import nostr.crypto.bech32.Bech32Prefix; import nostr.crypto.schnorr.Schnorr; diff --git a/nostr-java-test/src/test/java/nostr/test/event/ApiEventTest.java b/nostr-java-test/src/test/java/nostr/test/event/ApiEventTest.java index 8ba636ad0..2cc2e6ac8 100644 --- a/nostr-java-test/src/test/java/nostr/test/event/ApiEventTest.java +++ b/nostr-java-test/src/test/java/nostr/test/event/ApiEventTest.java @@ -1,16 +1,7 @@ package nostr.test.event; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - -import nostr.event.impl.*; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; - import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; - import nostr.api.NIP01; import nostr.api.NIP04; import nostr.api.NIP15; @@ -21,10 +12,21 @@ import nostr.crypto.bech32.Bech32; import nostr.crypto.bech32.Bech32Prefix; import nostr.event.BaseTag; +import nostr.event.impl.CreateOrUpdateStallEvent; import nostr.event.impl.CreateOrUpdateStallEvent.Stall; +import nostr.event.impl.DirectMessageEvent; +import nostr.event.impl.EncryptedPayloadEvent; +import nostr.event.impl.NostrMarketplaceEvent; import nostr.event.impl.NostrMarketplaceEvent.Product.Spec; +import nostr.event.impl.TextNoteEvent; import nostr.id.Identity; import nostr.util.NostrException; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; /** * From bc87c6bc5ab8e3924a690205e917f63648b3cb56 Mon Sep 17 00:00:00 2001 From: erict875 Date: Sun, 17 Mar 2024 17:03:42 +0000 Subject: [PATCH 4/4] Issue #100 --- nostr-java-api/src/main/java/nostr/api/NIP04.java | 8 +++++--- .../src/main/java/nostr/examples/NostrApiExamples.java | 1 - .../src/test/java/nostr/test/event/ApiEventTest.java | 1 - 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/nostr-java-api/src/main/java/nostr/api/NIP04.java b/nostr-java-api/src/main/java/nostr/api/NIP04.java index 76ddca9be..f6861a366 100644 --- a/nostr-java-api/src/main/java/nostr/api/NIP04.java +++ b/nostr-java-api/src/main/java/nostr/api/NIP04.java @@ -41,7 +41,8 @@ public NIP04(@NonNull IIdentity sender, @NonNull PublicKey recipient) { * @param content the DM content in clear-text */ public NIP04 createDirectMessageEvent(@NonNull String content) { - var event = new DirectMessageEventFactory(getSender(), getRecipient(), content).create(); + var encryptedContent = encrypt(getSender(), content, getRecipient()); + var event = new DirectMessageEventFactory(getSender(), getRecipient(), encryptedContent).create(); this.setEvent((T) event); return this; @@ -56,7 +57,8 @@ public NIP04 createDirectMessageEvent(@NonNull String content) { * @return the DM event */ public NIP04 createDirectMessageEvent(@NonNull List tags, @NonNull PublicKey recipient, @NonNull String content) { - var event = new DirectMessageEventFactory(tags, recipient, content).create(); + var encryptedContent = encrypt(getSender(), content, recipient); + var event = new DirectMessageEventFactory(tags, recipient, encryptedContent).create(); this.setEvent((T) event); return this; @@ -66,7 +68,7 @@ public NIP04 createDirectMessageEvent(@NonNull List tags, @NonNull P * Encrypt the direct message * @return the current instance with an encrypted message */ - public NIP04 encrypt() { + private NIP04 encrypt() { encryptDirectMessage(getSender(), (DirectMessageEvent) getEvent()); return this; } diff --git a/nostr-java-examples/src/main/java/nostr/examples/NostrApiExamples.java b/nostr-java-examples/src/main/java/nostr/examples/NostrApiExamples.java index 2665c03f0..680685e04 100644 --- a/nostr-java-examples/src/main/java/nostr/examples/NostrApiExamples.java +++ b/nostr-java-examples/src/main/java/nostr/examples/NostrApiExamples.java @@ -203,7 +203,6 @@ private static void sendEncryptedDirectMessage() { var nip04 = new NIP04(SENDER, RECIPIENT.getPublicKey()); nip04.createDirectMessageEvent("Hello Nakamoto!") - .encrypt() .sign() .send(RELAYS); } diff --git a/nostr-java-test/src/test/java/nostr/test/event/ApiEventTest.java b/nostr-java-test/src/test/java/nostr/test/event/ApiEventTest.java index 2cc2e6ac8..1e1d179b4 100644 --- a/nostr-java-test/src/test/java/nostr/test/event/ApiEventTest.java +++ b/nostr-java-test/src/test/java/nostr/test/event/ApiEventTest.java @@ -108,7 +108,6 @@ public void testNIP04EncryptDecrypt() throws NostrException { var nip04 = new NIP04(Identity.getInstance(), nostr_java); var instance = nip04.createDirectMessageEvent("Quand on n'a que l'amour pour tracer un chemin et forcer le destin...") - .encrypt() .sign(); var message = NIP04.decrypt(Identity.getInstance(), instance.getEvent());