From f148a22b9475841a8ac180588609636bb17c282a Mon Sep 17 00:00:00 2001 From: Rogosha Date: Thu, 7 Aug 2025 18:58:47 +0300 Subject: [PATCH 1/4] First commit --- .idea/.gitignore | 5 + .idea/compiler.xml | 16 ++++ .idea/encodings.xml | 17 ++++ .idea/jarRepositories.xml | 30 ++++++ .idea/misc.xml | 12 +++ .idea/vcs.xml | 6 ++ plugin/core/pom.xml | 13 ++- plugin/gradle/pom.xml | 10 +- plugin/maven/pom.xml | 9 +- pom.xml | 93 ++++++++++++------- sdk/get-dependencies.xml | 4 + sdk/pom.xml | 74 +++++++++++++-- .../ConfigurationDependencyFactory.java | 1 - .../sdk/registry/EndpointGroup.java | 8 +- .../registry/RegistryMetadataProvider.java | 10 +- .../sdk/mpe/MultiPartyEscrowMock.java | 23 +++++ .../sdk/registry/RegistryMock.java | 50 ++++++---- 17 files changed, 307 insertions(+), 74 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/compiler.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/vcs.xml diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 00000000..a0ccf77b --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,5 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Environment-dependent path to Maven home directory +/mavenHomeManager.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 00000000..58854cde --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 00000000..5857d777 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 00000000..710bfc3e --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 00000000..9dc782bb --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 00000000..35eb1ddf --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/plugin/core/pom.xml b/plugin/core/pom.xml index e1219b56..528f285b 100644 --- a/plugin/core/pom.xml +++ b/plugin/core/pom.xml @@ -21,6 +21,7 @@ + com.github.singnet.snet-sdk-java snet-sdk-java @@ -39,36 +40,44 @@ guava + + com.google.guava guava - - 29.0-jre + 33.4.0-jre org.apache.commons commons-compress + org.slf4j slf4j-api + 2.0.16 junit junit + 4.13.2 test + org.mockito mockito-core + 5.18.0 test + org.slf4j slf4j-simple + 2.0.16 test diff --git a/plugin/gradle/pom.xml b/plugin/gradle/pom.xml index 81c34eeb..5dbdd539 100644 --- a/plugin/gradle/pom.xml +++ b/plugin/gradle/pom.xml @@ -39,22 +39,26 @@ com.github.singnet.snet-sdk-java snet-sdk-plugin-core + org.projectlombok lombok + 1.18.30 provided + + org.codehaus.groovy groovy - 2.5.14 - provided + 3.0.21 + org.gradle gradle-core - ${gradle.version} + 6.1.1 provided diff --git a/plugin/maven/pom.xml b/plugin/maven/pom.xml index ae848446..4ec2bb97 100644 --- a/plugin/maven/pom.xml +++ b/plugin/maven/pom.xml @@ -30,9 +30,12 @@ com.github.singnet.snet-sdk-java snet-sdk-plugin-core + + org.projectlombok lombok + 1.18.30 provided @@ -66,17 +69,21 @@ junit junit + 4.13.2 test + org.slf4j slf4j-simple + 2.0.16 test + commons-io commons-io - test + 2.19.0 diff --git a/pom.xml b/pom.xml index cfaa39b0..434e065c 100644 --- a/pom.xml +++ b/pom.xml @@ -10,8 +10,8 @@ true UTF-8 - 1.8 - 1.8 + 21 + 21 1.0.1 3.0.0 3.5.1 @@ -53,43 +53,52 @@ snet-sdk-plugin-core ${project.version} + + com.google.protobuf protobuf-java - ${protobuf.version} + 4.31.1 + io.grpc grpc-bom - ${grpc.version} + 1.73.0 pom import + - javax.annotation - javax.annotation-api - 1.3.2 + jakarta.annotation + jakarta.annotation-api + 2.1.1 + + org.web3j core - ${web3j.version} + 5.0.0 + org.web3j codegen - ${web3j.version} + 5.0.0 provided + + com.github.ipfs java-ipfs-http-client - 1.2.3 + v1.4.4 com.github.multiformats @@ -97,51 +106,66 @@ 1.2.1 + + org.apache.commons commons-compress - 1.21 + 1.27.1 + + commons-io commons-io - 2.7 + 2.19.0 + + org.projectlombok lombok - 1.18.10 + 1.18.30 provided + + org.slf4j slf4j-api - 1.7.29 + 2.0.16 + org.slf4j slf4j-simple - 1.7.29 + 2.0.16 + test + + com.google.code.gson gson - 2.8.5 + 2.10.1 + + - javax.json - javax.json-api - 1.1.4 + jakarta.json + jakarta.json-api + 2.1.3 + org.glassfish - javax.json - 1.1.4 + jakarta.json + 2.0.1 @@ -149,13 +173,14 @@ junit junit - 4.13.1 + 4.13.2 test + org.mockito mockito-core - 3.1.0 + 5.18.0 test @@ -214,7 +239,7 @@ org.apache.maven.plugins maven-antrun-plugin - 1.6 + 3.1.0 io.fabric8 @@ -262,7 +287,11 @@ maven-compiler-plugin - 3.8.0 + 3.13.0 + + 17 + 17 + maven-surefire-plugin @@ -291,12 +320,12 @@ - - - - maven-project-info-reports-plugin - - - + + + + + + + diff --git a/sdk/get-dependencies.xml b/sdk/get-dependencies.xml index 107504d4..a0ec2f2f 100644 --- a/sdk/get-dependencies.xml +++ b/sdk/get-dependencies.xml @@ -34,6 +34,8 @@ + + @@ -44,6 +46,8 @@ + + diff --git a/sdk/pom.xml b/sdk/pom.xml index d74624d5..eea5a1a9 100644 --- a/sdk/pom.xml +++ b/sdk/pom.xml @@ -20,86 +20,146 @@ + + + + + + + com.google.protobuf protobuf-java + 3.21.12 + io.grpc grpc-netty-shaded + 1.71.0 + io.grpc grpc-protobuf + 1.71.0 + io.grpc grpc-stub + 1.71.0 + + + jakarta.annotation + jakarta.annotation-api + 2.1.1 + + javax.annotation javax.annotation-api + 1.3.2 + org.projectlombok lombok + 1.18.30 provided + org.web3j core + 5.0.0 + org.web3j codegen + 5.0.0 + provided + + + com.github.ipfs - java-ipfs-http-client + java-ipfs-api + 1.4.4 + com.github.multiformats java-multihash + 1.2.1 + + com.google.code.gson gson + 2.10.1 + org.slf4j slf4j-api + 2.0.16 junit junit + 4.13.2 test + org.mockito mockito-core + 5.18.0 test + org.slf4j slf4j-simple + 2.0.16 test - - javax.json - javax.json-api - test - + + + + + + + + + + + + + org.glassfish javax.json + 1.1.4 test + + + javax.json + javax.json-api + 1.1.4 + @@ -127,7 +187,9 @@ + + run diff --git a/sdk/src/main/java/io/singularitynet/sdk/client/ConfigurationDependencyFactory.java b/sdk/src/main/java/io/singularitynet/sdk/client/ConfigurationDependencyFactory.java index 35e9ca09..e24694eb 100644 --- a/sdk/src/main/java/io/singularitynet/sdk/client/ConfigurationDependencyFactory.java +++ b/sdk/src/main/java/io/singularitynet/sdk/client/ConfigurationDependencyFactory.java @@ -6,7 +6,6 @@ import org.web3j.protocol.http.HttpService; import org.web3j.protocol.exceptions.ClientConnectionException; import org.web3j.tx.gas.StaticGasProvider; -import org.web3j.tx.gas.DefaultGasProvider; import org.web3j.tx.RawTransactionManager; import org.web3j.tx.TransactionManager; import org.slf4j.Logger; diff --git a/sdk/src/main/java/io/singularitynet/sdk/registry/EndpointGroup.java b/sdk/src/main/java/io/singularitynet/sdk/registry/EndpointGroup.java index b04c0c4b..bf70bb40 100644 --- a/sdk/src/main/java/io/singularitynet/sdk/registry/EndpointGroup.java +++ b/sdk/src/main/java/io/singularitynet/sdk/registry/EndpointGroup.java @@ -1,13 +1,13 @@ package io.singularitynet.sdk.registry; +import com.google.gson.annotations.SerializedName; +import io.singularitynet.sdk.ethereum.Address; import lombok.EqualsAndHashCode; import lombok.ToString; + import java.net.URL; -import java.util.List; import java.util.ArrayList; -import com.google.gson.annotations.SerializedName; - -import io.singularitynet.sdk.ethereum.Address; +import java.util.List; @EqualsAndHashCode @ToString diff --git a/sdk/src/main/java/io/singularitynet/sdk/registry/RegistryMetadataProvider.java b/sdk/src/main/java/io/singularitynet/sdk/registry/RegistryMetadataProvider.java index 176d896c..35091e04 100644 --- a/sdk/src/main/java/io/singularitynet/sdk/registry/RegistryMetadataProvider.java +++ b/sdk/src/main/java/io/singularitynet/sdk/registry/RegistryMetadataProvider.java @@ -1,14 +1,14 @@ package io.singularitynet.sdk.registry; import com.google.gson.*; +import io.singularitynet.sdk.common.Utils; +import io.singularitynet.sdk.ethereum.Address; import org.slf4j.Logger; import org.slf4j.LoggerFactory; + import java.lang.reflect.Type; -import java.util.List; import java.net.URL; - -import io.singularitynet.sdk.common.Utils; -import io.singularitynet.sdk.ethereum.Address; +import java.util.List; /** * Metadata provider implementation which synchronously forwards calls to the @@ -31,7 +31,7 @@ public class RegistryMetadataProvider implements MetadataProvider { * @param metadataStorage metadata storage implementation. */ public RegistryMetadataProvider(String orgId, String serviceId, - RegistryContract registryContract, MetadataStorage metadataStorage) { + RegistryContract registryContract, MetadataStorage metadataStorage) { this.orgId = orgId; this.serviceId = serviceId; this.registryContract = registryContract; diff --git a/sdk/src/test/java/io/singularitynet/sdk/mpe/MultiPartyEscrowMock.java b/sdk/src/test/java/io/singularitynet/sdk/mpe/MultiPartyEscrowMock.java index 3abca956..c9250e26 100644 --- a/sdk/src/test/java/io/singularitynet/sdk/mpe/MultiPartyEscrowMock.java +++ b/sdk/src/test/java/io/singularitynet/sdk/mpe/MultiPartyEscrowMock.java @@ -1,9 +1,16 @@ package io.singularitynet.sdk.mpe; import java.math.BigInteger; +import java.util.Collections; +import java.util.List; + +import io.singularitynet.sdk.common.Utils; +import org.web3j.abi.datatypes.Int; import org.web3j.protocol.core.*; import org.web3j.tuples.generated.*; import io.singularitynet.sdk.contracts.MultiPartyEscrow; + +import static java.util.stream.Collectors.toList; import static org.mockito.Mockito.*; import static io.singularitynet.sdk.common.Utils.*; @@ -28,6 +35,22 @@ public void addPaymentChannel(PaymentChannel paymentChannel) { paymentChannel.getValue(), paymentChannel.getExpiration()); })); + RemoteFunctionCall> remoteCall = + mock(RemoteFunctionCall.class); +// try { +// when(remoteCall.send()).thenReturn(new Tuple6<>( +// true, +// Utils.strToBytes32(registration.getOrgId()), +// Utils.strToBytes(registration.getMetadataUri().toString()), +// "0xfA8a01E837c30a3DA3Ea862e6dB5C6232C9b800A", +// Collections.EMPTY_LIST, +// registration.getServiceIds().stream().map(Utils::strToBytes32).collect(toList()) +// )); +// } catch (Exception e) { +// throw new RuntimeException(e); +// } +// when(registry.getOrganizationById(eq(Utils.strToBytes32(orgId)))) +// .thenReturn(remoteCall); } public void setContractAddress(Address address) { diff --git a/sdk/src/test/java/io/singularitynet/sdk/registry/RegistryMock.java b/sdk/src/test/java/io/singularitynet/sdk/registry/RegistryMock.java index 3c304e83..f826d860 100644 --- a/sdk/src/test/java/io/singularitynet/sdk/registry/RegistryMock.java +++ b/sdk/src/test/java/io/singularitynet/sdk/registry/RegistryMock.java @@ -6,6 +6,7 @@ import static org.mockito.Mockito.*; import static java.util.stream.Collectors.toList; import java.util.Collections; +import java.util.List; import io.singularitynet.sdk.common.Utils; @@ -19,32 +20,41 @@ public Registry get() { public void addServiceRegistration(String orgId, String serviceId, ServiceRegistration registration) { + RemoteFunctionCall> remoteCall = mock(RemoteFunctionCall.class); + try { + when(remoteCall.send()).thenReturn(new Tuple3<>( + true, + Utils.strToBytes32(registration.getServiceId()), + Utils.strToBytes(registration.getMetadataUri().toString()) + )); + } catch (Exception e) { + throw new RuntimeException(e); + } + when(registry.getServiceRegistrationById(eq(Utils.strToBytes32(orgId)), - eq(Utils.strToBytes32(serviceId)))) - .thenReturn(new RemoteCall<>( - () -> { - return new Tuple3<>(true, - Utils.strToBytes32(registration.getServiceId()), - Utils.strToBytes(registration.getMetadataUri().toString()) - ); - }) - ); + eq(Utils.strToBytes32(serviceId)))) + .thenReturn(remoteCall); + } public void addOrganizationRegistration(String orgId, OrganizationRegistration registration) { + RemoteFunctionCall, List>> remoteCall = + mock(RemoteFunctionCall.class); + try { + when(remoteCall.send()).thenReturn(new Tuple6<>( + true, + Utils.strToBytes32(registration.getOrgId()), + Utils.strToBytes(registration.getMetadataUri().toString()), + "0xfA8a01E837c30a3DA3Ea862e6dB5C6232C9b800A", + Collections.EMPTY_LIST, + registration.getServiceIds().stream().map(Utils::strToBytes32).collect(toList()) + )); + } catch (Exception e) { + throw new RuntimeException(e); + } when(registry.getOrganizationById(eq(Utils.strToBytes32(orgId)))) - .thenReturn(new RemoteCall<>( - () -> { - return new Tuple6<>(true, - Utils.strToBytes32(registration.getOrgId()), - Utils.strToBytes(registration.getMetadataUri().toString()), - "0xfA8a01E837c30a3DA3Ea862e6dB5C6232C9b800A", - Collections.EMPTY_LIST, - registration.getServiceIds().stream().map(Utils::strToBytes32).collect(toList()) - ); - }) - ); + .thenReturn(remoteCall); } } From e8a7f68cae3bf04b191c42a0a1d9f8d5e03bd438 Mon Sep 17 00:00:00 2001 From: Rogosha Date: Thu, 7 Aug 2025 19:08:25 +0300 Subject: [PATCH 2/4] Fixed MultiPartyEscrowMock.java --- .../sdk/mpe/MultiPartyEscrowMock.java | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/sdk/src/test/java/io/singularitynet/sdk/mpe/MultiPartyEscrowMock.java b/sdk/src/test/java/io/singularitynet/sdk/mpe/MultiPartyEscrowMock.java index c9250e26..36c02e02 100644 --- a/sdk/src/test/java/io/singularitynet/sdk/mpe/MultiPartyEscrowMock.java +++ b/sdk/src/test/java/io/singularitynet/sdk/mpe/MultiPartyEscrowMock.java @@ -25,18 +25,22 @@ public MultiPartyEscrow get() { } public void addPaymentChannel(PaymentChannel paymentChannel) { - when(mpe.channels(eq(paymentChannel.getChannelId()))). - thenReturn(new RemoteCall<>(() -> { - return new Tuple7<>(paymentChannel.getNonce(), - paymentChannel.getSender().toString(), - paymentChannel.getSigner().toString(), - paymentChannel.getRecipient().toString(), - paymentChannel.getPaymentGroupId().getBytes(), - paymentChannel.getValue(), - paymentChannel.getExpiration()); - })); RemoteFunctionCall> remoteCall = mock(RemoteFunctionCall.class); + try { + when(remoteCall.send()).thenReturn(new Tuple7<>(paymentChannel.getNonce(), + paymentChannel.getSender().toString(), + paymentChannel.getSigner().toString(), + paymentChannel.getRecipient().toString(), + paymentChannel.getPaymentGroupId().getBytes(), + paymentChannel.getValue(), + paymentChannel.getExpiration())); + } catch (Exception e) { + throw new RuntimeException(e); + } + when(mpe.channels(eq(paymentChannel.getChannelId()))). + thenReturn(remoteCall); + // try { // when(remoteCall.send()).thenReturn(new Tuple6<>( // true, From b00cb0105d7c99187eb6bc900df407be71624e12 Mon Sep 17 00:00:00 2001 From: Rogosha Date: Fri, 8 Aug 2025 13:31:58 +0300 Subject: [PATCH 3/4] Fixed ServiceApiGetterTest Fixed Gradle dependencies problem using old version of gradle Functional version, tests passed successfully --- .idea/jarRepositories.xml | 10 +++ .../sdk/plugin/ServiceApiGetterTest.java | 78 +++++++++++++------ plugin/gradle/pom.xml | 2 +- .../gradle/GetSingularityNetServiceApi.java | 2 +- plugin/maven/pom.xml | 6 +- pom.xml | 4 +- sdk/pom.xml | 1 + 7 files changed, 74 insertions(+), 29 deletions(-) diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml index 710bfc3e..b4339cc3 100644 --- a/.idea/jarRepositories.xml +++ b/.idea/jarRepositories.xml @@ -16,6 +16,11 @@