diff --git a/api/build.gradle b/api/build.gradle index 8fe92f04..30e9f7b2 100644 --- a/api/build.gradle +++ b/api/build.gradle @@ -1,19 +1,21 @@ dependencies { implementation project(':common') + implementation project(':crypto') implementation project(':pallet') implementation project(':rpc') - implementation project(':rpc:rpc-core') - implementation project(':rpc:rpc-sections') - implementation project(':rpc:rpc-types') + implementation project(':rpc:rpc-api') implementation project(':scale') - implementation project(':storage') implementation project(':transport') - implementation project(':types') + + annotationProcessor project(':pallet:pallet-codegen') + annotationProcessor project(':rpc:rpc-codegen') testImplementation project(':tests') + testAnnotationProcessor project(':pallet:pallet-codegen') + + testImplementation 'ch.qos.logback:logback-classic:1.2.11' testImplementation 'org.testcontainers:testcontainers:1.17.1' testImplementation 'org.testcontainers:junit-jupiter:1.17.1' - - testAnnotationProcessor project(':pallet:pallet-codegen') + testImplementation 'org.awaitility:awaitility:4.2.0' } \ No newline at end of file diff --git a/api/src/main/java/com/strategyobject/substrateclient/api/Api.java b/api/src/main/java/com/strategyobject/substrateclient/api/Api.java index fbb8575f..bc064268 100644 --- a/api/src/main/java/com/strategyobject/substrateclient/api/Api.java +++ b/api/src/main/java/com/strategyobject/substrateclient/api/Api.java @@ -1,33 +1,65 @@ package com.strategyobject.substrateclient.api; import com.strategyobject.substrateclient.pallet.GeneratedPalletResolver; -import com.strategyobject.substrateclient.rpc.Rpc; -import com.strategyobject.substrateclient.rpc.RpcImpl; +import com.strategyobject.substrateclient.pallet.PalletResolver; +import com.strategyobject.substrateclient.rpc.RpcGeneratedSectionFactory; +import com.strategyobject.substrateclient.rpc.api.section.State; import com.strategyobject.substrateclient.transport.ProviderInterface; +import lombok.NonNull; import lombok.val; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + /** * Provides the ability to query a node and interact with the Polkadot or Substrate chains. * It allows interacting with blockchain in various ways: using RPC's queries directly or * accessing Pallets and its APIs, such as storages, transactions, etc. */ -public interface Api { - static DefaultApi with(ProviderInterface provider) { - val rpc = RpcImpl.with(provider); +public class Api implements AutoCloseable { + private final @NonNull ProviderInterface providerInterface; + private final @NonNull PalletResolver palletResolver; + private final Map, Object> resolvedCache = new ConcurrentHashMap<>(); + + private Api(@NonNull ProviderInterface providerInterface) { + this.providerInterface = providerInterface; - return DefaultApi.with(rpc, GeneratedPalletResolver.with(rpc)); + val state = RpcGeneratedSectionFactory.create(State.class, providerInterface); + this.palletResolver = GeneratedPalletResolver.with(state); } /** - * @return the instance that provides a proper API for querying the RPC's methods. + * Resolves the instance of a rpc by its definition. + * + * @param clazz the class of the rpc + * @param the type of the rpc + * @return appropriate instance of the rpc */ - Rpc rpc(); + public T rpc(Class clazz) { + return clazz.cast(resolvedCache + .computeIfAbsent(clazz, x -> RpcGeneratedSectionFactory.create(x, providerInterface))); + } /** * Resolves the instance of a pallet by its definition. + * * @param clazz the class of the pallet - * @param the type of the pallet + * @param the type of the pallet * @return appropriate instance of the pallet */ - T pallet(Class clazz); -} + public T pallet(@NonNull Class clazz) { + return clazz.cast(resolvedCache + .computeIfAbsent(clazz, palletResolver::resolve)); + } + + public static Api with(ProviderInterface providerInterface) { + return new Api(providerInterface); + } + + @Override + public void close() throws Exception { + if (providerInterface instanceof AutoCloseable) { + ((AutoCloseable) providerInterface).close(); + } + } +} \ No newline at end of file diff --git a/api/src/main/java/com/strategyobject/substrateclient/api/DefaultApi.java b/api/src/main/java/com/strategyobject/substrateclient/api/DefaultApi.java deleted file mode 100644 index 2ca53390..00000000 --- a/api/src/main/java/com/strategyobject/substrateclient/api/DefaultApi.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.strategyobject.substrateclient.api; - -import com.strategyobject.substrateclient.pallet.PalletResolver; -import com.strategyobject.substrateclient.rpc.Rpc; -import lombok.NonNull; -import lombok.RequiredArgsConstructor; - -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -@RequiredArgsConstructor(staticName = "with") -public class DefaultApi implements Api, AutoCloseable { - private final @NonNull Rpc rpc; - private final @NonNull PalletResolver palletResolver; - private final Map, Object> palletCache = new ConcurrentHashMap<>(); - - @Override - public Rpc rpc() { - return rpc; - } - - @Override - public T pallet(@NonNull Class clazz) { - return clazz.cast(palletCache - .computeIfAbsent(clazz, palletResolver::resolve)); - } - - @Override - public void close() throws Exception { - if (rpc instanceof AutoCloseable) { - ((AutoCloseable) rpc).close(); - } - } -} \ No newline at end of file diff --git a/api/src/test/java/com/strategyobject/substrateclient/api/ApiTests.java b/api/src/test/java/com/strategyobject/substrateclient/api/ApiTests.java index dab720dc..7dd24fc9 100644 --- a/api/src/test/java/com/strategyobject/substrateclient/api/ApiTests.java +++ b/api/src/test/java/com/strategyobject/substrateclient/api/ApiTests.java @@ -15,14 +15,14 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; @Testcontainers -public class ApiTests { +class ApiTests { private static final int WAIT_TIMEOUT = 1000; @Container private final TestSubstrateContainer substrate = new TestSubstrateContainer(SubstrateVersion.V3_0_0); @Test - public void getSystemPalletAndCall() throws Exception { // TODO move the test out of the project + void getSystemPalletAndCall() throws Exception { // TODO move the test out of the project val wsProvider = WsProvider.builder() .setEndpoint(substrate.getWsAddress()) .build(); diff --git a/api/src/test/java/com/strategyobject/substrateclient/api/SystemPallet.java b/api/src/test/java/com/strategyobject/substrateclient/api/SystemPallet.java index fd5a9250..e2b4e725 100644 --- a/api/src/test/java/com/strategyobject/substrateclient/api/SystemPallet.java +++ b/api/src/test/java/com/strategyobject/substrateclient/api/SystemPallet.java @@ -1,12 +1,12 @@ package com.strategyobject.substrateclient.api; -import com.strategyobject.substrateclient.pallet.annotations.Pallet; -import com.strategyobject.substrateclient.pallet.annotations.Storage; -import com.strategyobject.substrateclient.pallet.annotations.StorageHasher; -import com.strategyobject.substrateclient.pallet.annotations.StorageKey; -import com.strategyobject.substrateclient.rpc.types.BlockHash; -import com.strategyobject.substrateclient.scale.annotations.Scale; -import com.strategyobject.substrateclient.storage.StorageNMap; +import com.strategyobject.substrateclient.pallet.annotation.Pallet; +import com.strategyobject.substrateclient.pallet.annotation.Storage; +import com.strategyobject.substrateclient.pallet.annotation.StorageHasher; +import com.strategyobject.substrateclient.pallet.annotation.StorageKey; +import com.strategyobject.substrateclient.pallet.storage.StorageNMap; +import com.strategyobject.substrateclient.rpc.api.BlockHash; +import com.strategyobject.substrateclient.scale.annotation.Scale; @Pallet("System") public interface SystemPallet { @@ -15,7 +15,7 @@ public interface SystemPallet { keys = { @StorageKey( type = @Scale(Integer.class), - hasher = StorageHasher.TwoX64Concat + hasher = StorageHasher.TWOX_64_CONCAT ) }) StorageNMap blockHash(); diff --git a/build.gradle b/build.gradle index f99f518e..a53b1cbf 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ plugins { allprojects { group = 'com.strategyobject.substrateclient' - version = '0.1.1-SNAPSHOT' + version = '0.1.2-SNAPSHOT' repositories { mavenLocal() diff --git a/common/src/main/java/com/strategyobject/substrateclient/common/codegen/ProcessorContext.java b/common/src/main/java/com/strategyobject/substrateclient/common/codegen/ProcessorContext.java index 301b7fa5..8e42f698 100644 --- a/common/src/main/java/com/strategyobject/substrateclient/common/codegen/ProcessorContext.java +++ b/common/src/main/java/com/strategyobject/substrateclient/common/codegen/ProcessorContext.java @@ -43,7 +43,7 @@ public boolean isNonGeneric(@NonNull TypeMirror type) { return type.getKind().isPrimitive() || ((TypeElement) typeUtils.asElement(type)) .getTypeParameters() - .size() == 0; + .isEmpty(); } public TypeMirror erasure(@NonNull TypeMirror type) { diff --git a/common/src/main/java/com/strategyobject/substrateclient/common/codegen/TypeTraverser.java b/common/src/main/java/com/strategyobject/substrateclient/common/codegen/TypeTraverser.java index c97e7f8d..67b48136 100644 --- a/common/src/main/java/com/strategyobject/substrateclient/common/codegen/TypeTraverser.java +++ b/common/src/main/java/com/strategyobject/substrateclient/common/codegen/TypeTraverser.java @@ -160,7 +160,7 @@ public T traverse(@NonNull TypeTraverser.TypeTreeNode typeOverride) { } val declaredType = (DeclaredType) typeOverride.type; - if (typeOverride.children.size() == 0) { + if (typeOverride.children.isEmpty()) { return whenNonGenericType(declaredType, typeOverride.type); } diff --git a/common/src/main/java/com/strategyobject/substrateclient/common/codegen/TypeUtils.java b/common/src/main/java/com/strategyobject/substrateclient/common/codegen/TypeUtils.java index 26b17de8..9bb24b01 100644 --- a/common/src/main/java/com/strategyobject/substrateclient/common/codegen/TypeUtils.java +++ b/common/src/main/java/com/strategyobject/substrateclient/common/codegen/TypeUtils.java @@ -48,4 +48,7 @@ public static String getSimpleName(TypeMirror type) { throw new IllegalArgumentException(String.format("Cannot populate the name of %s", type)); } + + private TypeUtils() { + } } diff --git a/common/src/main/java/com/strategyobject/substrateclient/common/types/Array.java b/common/src/main/java/com/strategyobject/substrateclient/common/types/Array.java new file mode 100644 index 00000000..0fbc2434 --- /dev/null +++ b/common/src/main/java/com/strategyobject/substrateclient/common/types/Array.java @@ -0,0 +1,4 @@ +package com.strategyobject.substrateclient.common.types; + +public interface Array { +} diff --git a/common/src/main/java/com/strategyobject/substrateclient/common/types/Bounded.java b/common/src/main/java/com/strategyobject/substrateclient/common/types/Bounded.java new file mode 100644 index 00000000..c509ee88 --- /dev/null +++ b/common/src/main/java/com/strategyobject/substrateclient/common/types/Bounded.java @@ -0,0 +1,22 @@ +package com.strategyobject.substrateclient.common.types; + +import com.google.common.base.Preconditions; + +/** + * Upperbounds the size of a class. + * + * @param Size + */ +public interface Bounded { + /** + * Asserts that the size is correct. + * + * @param expected Expected size + * @param actual Actual size + */ + default void assertSize(S expected, int actual) { + Preconditions.checkArgument( + actual <= expected.getValue(), + "Provided size (%s) is invalid. Expected not more than %s.", actual, expected.getValue()); + } +} diff --git a/common/src/main/java/com/strategyobject/substrateclient/common/types/Fixed.java b/common/src/main/java/com/strategyobject/substrateclient/common/types/Fixed.java new file mode 100644 index 00000000..3798a8a3 --- /dev/null +++ b/common/src/main/java/com/strategyobject/substrateclient/common/types/Fixed.java @@ -0,0 +1,23 @@ +package com.strategyobject.substrateclient.common.types; + +import com.google.common.base.Preconditions; + +/** + * Sets the size of a class. + * + * @param Size + */ +public interface Fixed { + + /** + * Asserts that the size is correct. + * + * @param expected Expected size + * @param actual Actual size + */ + default void assertSize(S expected, int actual) { + Preconditions.checkArgument( + actual == expected.getValue(), + "Provided size (%s) is invalid. Expected %s.", actual, expected.getValue()); + } +} diff --git a/types/src/main/java/com/strategyobject/substrateclient/types/FixedBytes.java b/common/src/main/java/com/strategyobject/substrateclient/common/types/FixedBytes.java similarity index 56% rename from types/src/main/java/com/strategyobject/substrateclient/types/FixedBytes.java rename to common/src/main/java/com/strategyobject/substrateclient/common/types/FixedBytes.java index 1668900c..75f8ff5d 100644 --- a/types/src/main/java/com/strategyobject/substrateclient/types/FixedBytes.java +++ b/common/src/main/java/com/strategyobject/substrateclient/common/types/FixedBytes.java @@ -1,19 +1,17 @@ -package com.strategyobject.substrateclient.types; +package com.strategyobject.substrateclient.common.types; import com.google.common.base.Preconditions; import lombok.EqualsAndHashCode; import lombok.Getter; @EqualsAndHashCode -public abstract class FixedBytes { +public abstract class FixedBytes implements Fixed { @Getter private final byte[] data; protected FixedBytes(byte[] data, S size) { Preconditions.checkNotNull(data); - Preconditions.checkArgument( - data.length == size.getValue(), - "The data size must be %s; received %s.", size.getValue(), data.length); + assertSize(size, data.length); this.data = data; } diff --git a/types/src/main/java/com/strategyobject/substrateclient/types/Result.java b/common/src/main/java/com/strategyobject/substrateclient/common/types/Result.java similarity index 99% rename from types/src/main/java/com/strategyobject/substrateclient/types/Result.java rename to common/src/main/java/com/strategyobject/substrateclient/common/types/Result.java index f36f5039..51325dcf 100644 --- a/types/src/main/java/com/strategyobject/substrateclient/types/Result.java +++ b/common/src/main/java/com/strategyobject/substrateclient/common/types/Result.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.types; +package com.strategyobject.substrateclient.common.types; import lombok.val; diff --git a/types/src/main/java/com/strategyobject/substrateclient/types/Size.java b/common/src/main/java/com/strategyobject/substrateclient/common/types/Size.java similarity index 79% rename from types/src/main/java/com/strategyobject/substrateclient/types/Size.java rename to common/src/main/java/com/strategyobject/substrateclient/common/types/Size.java index 11a1c49b..156ddc2a 100644 --- a/types/src/main/java/com/strategyobject/substrateclient/types/Size.java +++ b/common/src/main/java/com/strategyobject/substrateclient/common/types/Size.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.types; +package com.strategyobject.substrateclient.common.types; public interface Size { int getValue(); @@ -8,6 +8,7 @@ public interface Size { Of64 of64 = new Of64(); Of96 of96 = new Of96(); Of128 of128 = new Of128(); + Of256 of256 = new Of256(); class Zero implements Size { @Override @@ -43,4 +44,11 @@ public int getValue() { return 128; } } + + class Of256 implements Size { + @Override + public int getValue() { + return 256; + } + } } diff --git a/types/src/main/java/com/strategyobject/substrateclient/types/Unit.java b/common/src/main/java/com/strategyobject/substrateclient/common/types/Unit.java similarity index 73% rename from types/src/main/java/com/strategyobject/substrateclient/types/Unit.java rename to common/src/main/java/com/strategyobject/substrateclient/common/types/Unit.java index c561276c..85059d52 100644 --- a/types/src/main/java/com/strategyobject/substrateclient/types/Unit.java +++ b/common/src/main/java/com/strategyobject/substrateclient/common/types/Unit.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.types; +package com.strategyobject.substrateclient.common.types; public class Unit { private static final Unit UNIT = new Unit(); diff --git a/types/src/main/java/com/strategyobject/substrateclient/types/tuples/Pair.java b/common/src/main/java/com/strategyobject/substrateclient/common/types/tuple/Pair.java similarity index 76% rename from types/src/main/java/com/strategyobject/substrateclient/types/tuples/Pair.java rename to common/src/main/java/com/strategyobject/substrateclient/common/types/tuple/Pair.java index 52fb6c04..2c1f23eb 100644 --- a/types/src/main/java/com/strategyobject/substrateclient/types/tuples/Pair.java +++ b/common/src/main/java/com/strategyobject/substrateclient/common/types/tuple/Pair.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.types.tuples; +package com.strategyobject.substrateclient.common.types.tuple; import lombok.Getter; import lombok.RequiredArgsConstructor; diff --git a/types/src/main/java/com/strategyobject/substrateclient/types/union/Union.java b/common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union.java similarity index 69% rename from types/src/main/java/com/strategyobject/substrateclient/types/union/Union.java rename to common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union.java index 7a0c24a4..15bf5c2c 100644 --- a/types/src/main/java/com/strategyobject/substrateclient/types/union/Union.java +++ b/common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.types.union; +package com.strategyobject.substrateclient.common.types.union; public abstract class Union { protected int index; diff --git a/types/src/main/java/com/strategyobject/substrateclient/types/union/Union1.java b/common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union1.java similarity index 89% rename from types/src/main/java/com/strategyobject/substrateclient/types/union/Union1.java rename to common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union1.java index 966238a8..9665f46f 100644 --- a/types/src/main/java/com/strategyobject/substrateclient/types/union/Union1.java +++ b/common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union1.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.types.union; +package com.strategyobject.substrateclient.common.types.union; import lombok.NonNull; import lombok.val; diff --git a/types/src/main/java/com/strategyobject/substrateclient/types/union/Union10.java b/common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union10.java similarity index 98% rename from types/src/main/java/com/strategyobject/substrateclient/types/union/Union10.java rename to common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union10.java index 0e17291c..78cd0bf5 100644 --- a/types/src/main/java/com/strategyobject/substrateclient/types/union/Union10.java +++ b/common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union10.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.types.union; +package com.strategyobject.substrateclient.common.types.union; import com.google.common.base.Preconditions; import lombok.NonNull; diff --git a/types/src/main/java/com/strategyobject/substrateclient/types/union/Union11.java b/common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union11.java similarity index 99% rename from types/src/main/java/com/strategyobject/substrateclient/types/union/Union11.java rename to common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union11.java index 15777e79..e48725ee 100644 --- a/types/src/main/java/com/strategyobject/substrateclient/types/union/Union11.java +++ b/common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union11.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.types.union; +package com.strategyobject.substrateclient.common.types.union; import com.google.common.base.Preconditions; import lombok.NonNull; diff --git a/types/src/main/java/com/strategyobject/substrateclient/types/union/Union12.java b/common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union12.java similarity index 99% rename from types/src/main/java/com/strategyobject/substrateclient/types/union/Union12.java rename to common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union12.java index 07bfe149..68dcd6f0 100644 --- a/types/src/main/java/com/strategyobject/substrateclient/types/union/Union12.java +++ b/common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union12.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.types.union; +package com.strategyobject.substrateclient.common.types.union; import com.google.common.base.Preconditions; import lombok.NonNull; diff --git a/types/src/main/java/com/strategyobject/substrateclient/types/union/Union2.java b/common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union2.java similarity index 94% rename from types/src/main/java/com/strategyobject/substrateclient/types/union/Union2.java rename to common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union2.java index 3bd1608d..102cfad0 100644 --- a/types/src/main/java/com/strategyobject/substrateclient/types/union/Union2.java +++ b/common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union2.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.types.union; +package com.strategyobject.substrateclient.common.types.union; import com.google.common.base.Preconditions; import lombok.NonNull; diff --git a/types/src/main/java/com/strategyobject/substrateclient/types/union/Union3.java b/common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union3.java similarity index 96% rename from types/src/main/java/com/strategyobject/substrateclient/types/union/Union3.java rename to common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union3.java index 6627d8c4..f0f3e083 100644 --- a/types/src/main/java/com/strategyobject/substrateclient/types/union/Union3.java +++ b/common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union3.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.types.union; +package com.strategyobject.substrateclient.common.types.union; import com.google.common.base.Preconditions; import lombok.NonNull; diff --git a/types/src/main/java/com/strategyobject/substrateclient/types/union/Union4.java b/common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union4.java similarity index 97% rename from types/src/main/java/com/strategyobject/substrateclient/types/union/Union4.java rename to common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union4.java index 137720aa..776ccdc4 100644 --- a/types/src/main/java/com/strategyobject/substrateclient/types/union/Union4.java +++ b/common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union4.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.types.union; +package com.strategyobject.substrateclient.common.types.union; import com.google.common.base.Preconditions; import lombok.NonNull; diff --git a/types/src/main/java/com/strategyobject/substrateclient/types/union/Union5.java b/common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union5.java similarity index 97% rename from types/src/main/java/com/strategyobject/substrateclient/types/union/Union5.java rename to common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union5.java index e25c7435..f0143292 100644 --- a/types/src/main/java/com/strategyobject/substrateclient/types/union/Union5.java +++ b/common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union5.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.types.union; +package com.strategyobject.substrateclient.common.types.union; import com.google.common.base.Preconditions; import lombok.NonNull; diff --git a/types/src/main/java/com/strategyobject/substrateclient/types/union/Union6.java b/common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union6.java similarity index 98% rename from types/src/main/java/com/strategyobject/substrateclient/types/union/Union6.java rename to common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union6.java index fc864618..e6fe50e7 100644 --- a/types/src/main/java/com/strategyobject/substrateclient/types/union/Union6.java +++ b/common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union6.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.types.union; +package com.strategyobject.substrateclient.common.types.union; import com.google.common.base.Preconditions; import lombok.NonNull; diff --git a/types/src/main/java/com/strategyobject/substrateclient/types/union/Union7.java b/common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union7.java similarity index 98% rename from types/src/main/java/com/strategyobject/substrateclient/types/union/Union7.java rename to common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union7.java index 0bd0ebf3..c89b34da 100644 --- a/types/src/main/java/com/strategyobject/substrateclient/types/union/Union7.java +++ b/common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union7.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.types.union; +package com.strategyobject.substrateclient.common.types.union; import com.google.common.base.Preconditions; import lombok.NonNull; diff --git a/types/src/main/java/com/strategyobject/substrateclient/types/union/Union8.java b/common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union8.java similarity index 98% rename from types/src/main/java/com/strategyobject/substrateclient/types/union/Union8.java rename to common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union8.java index 91157fdc..34cc694f 100644 --- a/types/src/main/java/com/strategyobject/substrateclient/types/union/Union8.java +++ b/common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union8.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.types.union; +package com.strategyobject.substrateclient.common.types.union; import com.google.common.base.Preconditions; import lombok.NonNull; diff --git a/types/src/main/java/com/strategyobject/substrateclient/types/union/Union9.java b/common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union9.java similarity index 98% rename from types/src/main/java/com/strategyobject/substrateclient/types/union/Union9.java rename to common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union9.java index c2ae5055..b90903c9 100644 --- a/types/src/main/java/com/strategyobject/substrateclient/types/union/Union9.java +++ b/common/src/main/java/com/strategyobject/substrateclient/common/types/union/Union9.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.types.union; +package com.strategyobject.substrateclient.common.types.union; import com.google.common.base.Preconditions; import lombok.NonNull; diff --git a/common/src/main/java/com/strategyobject/substrateclient/common/utils/HexConverter.java b/common/src/main/java/com/strategyobject/substrateclient/common/utils/HexConverter.java index 14427fe8..7136b08f 100644 --- a/common/src/main/java/com/strategyobject/substrateclient/common/utils/HexConverter.java +++ b/common/src/main/java/com/strategyobject/substrateclient/common/utils/HexConverter.java @@ -50,4 +50,7 @@ public static byte[] toBytes(@NonNull String hex) { return bytes; } + + private HexConverter() { + } } diff --git a/common/src/test/java/com/strategyobject/substrateclient/common/eventemitter/EventEmitterTest.java b/common/src/test/java/com/strategyobject/substrateclient/common/eventemitter/EventEmitterTest.java index 81436286..3fbc7776 100644 --- a/common/src/test/java/com/strategyobject/substrateclient/common/eventemitter/EventEmitterTest.java +++ b/common/src/test/java/com/strategyobject/substrateclient/common/eventemitter/EventEmitterTest.java @@ -43,7 +43,7 @@ void HandlerNotCalledOnDifferentEvent() { emitter.emit(TestEvents.TWO); - assertEquals(hitCount[0], 0); + assertEquals(0, hitCount[0]); } @Test diff --git a/types/src/test/java/com/strategyobject/substrateclient/types/ResultTest.java b/common/src/test/java/com/strategyobject/substrateclient/common/types/ResultTest.java similarity index 98% rename from types/src/test/java/com/strategyobject/substrateclient/types/ResultTest.java rename to common/src/test/java/com/strategyobject/substrateclient/common/types/ResultTest.java index a8debcdf..f1f6f03a 100644 --- a/types/src/test/java/com/strategyobject/substrateclient/types/ResultTest.java +++ b/common/src/test/java/com/strategyobject/substrateclient/common/types/ResultTest.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.types; +package com.strategyobject.substrateclient.common.types; import lombok.val; import org.junit.jupiter.api.Test; @@ -9,8 +9,7 @@ import static org.junit.jupiter.api.Assertions.*; class ResultTest { - - + @Test void isOk() { assertTrue(Result.ok(1).isOk()); diff --git a/types/src/test/java/com/strategyobject/substrateclient/types/union/Union10Test.java b/common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union10Test.java similarity index 88% rename from types/src/test/java/com/strategyobject/substrateclient/types/union/Union10Test.java rename to common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union10Test.java index abf62b66..3e9d5253 100644 --- a/types/src/test/java/com/strategyobject/substrateclient/types/union/Union10Test.java +++ b/common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union10Test.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.types.union; +package com.strategyobject.substrateclient.common.types.union; import lombok.val; import org.junit.jupiter.api.Assertions; @@ -16,8 +16,8 @@ void getItem0() { val expected = false; val union = Union10.withItem0(expected); - Assertions.assertEquals(0, union.getIndex()); - Assertions.assertEquals(expected, union.getItem0()); + assertEquals(0, union.getIndex()); + assertEquals(expected, union.getItem0()); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); @@ -34,9 +34,9 @@ void getItem1() { val expected = 1; val union = Union10.withItem1(expected); - Assertions.assertEquals(1, union.getIndex()); + assertEquals(1, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); - Assertions.assertEquals(expected, union.getItem1()); + assertEquals(expected, union.getItem1()); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); Assertions.assertThrows(IllegalStateException.class, union::getItem4); @@ -52,10 +52,10 @@ void getItem2() { val expected = "2"; val union = Union10.withItem2(expected); - Assertions.assertEquals(2, union.getIndex()); + assertEquals(2, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); - Assertions.assertEquals(expected, union.getItem2()); + assertEquals(expected, union.getItem2()); Assertions.assertThrows(IllegalStateException.class, union::getItem3); Assertions.assertThrows(IllegalStateException.class, union::getItem4); Assertions.assertThrows(IllegalStateException.class, union::getItem5); @@ -70,11 +70,11 @@ void getItem3() { val expected = 3f; val union = Union10.withItem3(expected); - Assertions.assertEquals(3, union.getIndex()); + assertEquals(3, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); - Assertions.assertEquals(expected, union.getItem3()); + assertEquals(expected, union.getItem3()); Assertions.assertThrows(IllegalStateException.class, union::getItem4); Assertions.assertThrows(IllegalStateException.class, union::getItem5); Assertions.assertThrows(IllegalStateException.class, union::getItem6); @@ -88,12 +88,12 @@ void getItem4() { val expected = true; val union = Union10.withItem4(expected); - Assertions.assertEquals(4, union.getIndex()); + assertEquals(4, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); - Assertions.assertEquals(expected, union.getItem4()); + assertEquals(expected, union.getItem4()); Assertions.assertThrows(IllegalStateException.class, union::getItem5); Assertions.assertThrows(IllegalStateException.class, union::getItem6); Assertions.assertThrows(IllegalStateException.class, union::getItem7); @@ -106,13 +106,13 @@ void getItem5() { val expected = 5; val union = Union10.withItem5(expected); - Assertions.assertEquals(5, union.getIndex()); + assertEquals(5, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); Assertions.assertThrows(IllegalStateException.class, union::getItem4); - Assertions.assertEquals(expected, union.getItem5()); + assertEquals(expected, union.getItem5()); Assertions.assertThrows(IllegalStateException.class, union::getItem6); Assertions.assertThrows(IllegalStateException.class, union::getItem7); Assertions.assertThrows(IllegalStateException.class, union::getItem8); @@ -124,14 +124,14 @@ void getItem6() { val expected = "6"; val union = Union10.withItem6(expected); - Assertions.assertEquals(6, union.getIndex()); + assertEquals(6, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); Assertions.assertThrows(IllegalStateException.class, union::getItem4); Assertions.assertThrows(IllegalStateException.class, union::getItem5); - Assertions.assertEquals(expected, union.getItem6()); + assertEquals(expected, union.getItem6()); Assertions.assertThrows(IllegalStateException.class, union::getItem7); Assertions.assertThrows(IllegalStateException.class, union::getItem8); Assertions.assertThrows(IllegalStateException.class, union::getItem9); @@ -142,7 +142,7 @@ void getItem7() { val expected = 7f; val union = Union10.withItem7(expected); - Assertions.assertEquals(7, union.getIndex()); + assertEquals(7, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); @@ -150,7 +150,7 @@ void getItem7() { Assertions.assertThrows(IllegalStateException.class, union::getItem4); Assertions.assertThrows(IllegalStateException.class, union::getItem5); Assertions.assertThrows(IllegalStateException.class, union::getItem6); - Assertions.assertEquals(expected, union.getItem7()); + assertEquals(expected, union.getItem7()); Assertions.assertThrows(IllegalStateException.class, union::getItem8); Assertions.assertThrows(IllegalStateException.class, union::getItem9); } @@ -160,7 +160,7 @@ void getItem8() { val expected = false; val union = Union10.withItem8(expected); - Assertions.assertEquals(8, union.getIndex()); + assertEquals(8, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); @@ -169,7 +169,7 @@ void getItem8() { Assertions.assertThrows(IllegalStateException.class, union::getItem5); Assertions.assertThrows(IllegalStateException.class, union::getItem6); Assertions.assertThrows(IllegalStateException.class, union::getItem7); - Assertions.assertEquals(expected, union.getItem8()); + assertEquals(expected, union.getItem8()); Assertions.assertThrows(IllegalStateException.class, union::getItem9); } @@ -178,7 +178,7 @@ void getItem9() { val expected = 9; val union = Union10.withItem9(expected); - Assertions.assertEquals(9, union.getIndex()); + assertEquals(9, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); @@ -188,7 +188,7 @@ void getItem9() { Assertions.assertThrows(IllegalStateException.class, union::getItem6); Assertions.assertThrows(IllegalStateException.class, union::getItem7); Assertions.assertThrows(IllegalStateException.class, union::getItem8); - Assertions.assertEquals(expected, union.getItem9()); + assertEquals(expected, union.getItem9()); } @SuppressWarnings({"unchecked", "rawtypes"}) diff --git a/types/src/test/java/com/strategyobject/substrateclient/types/union/Union11Test.java b/common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union11Test.java similarity index 89% rename from types/src/test/java/com/strategyobject/substrateclient/types/union/Union11Test.java rename to common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union11Test.java index 19a501db..489262ae 100644 --- a/types/src/test/java/com/strategyobject/substrateclient/types/union/Union11Test.java +++ b/common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union11Test.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.types.union; +package com.strategyobject.substrateclient.common.types.union; import lombok.val; import org.junit.jupiter.api.Assertions; @@ -16,8 +16,8 @@ void getItem0() { val expected = false; val union = Union11.withItem0(expected); - Assertions.assertEquals(0, union.getIndex()); - Assertions.assertEquals(expected, union.getItem0()); + assertEquals(0, union.getIndex()); + assertEquals(expected, union.getItem0()); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); @@ -35,9 +35,9 @@ void getItem1() { val expected = 1; val union = Union11.withItem1(expected); - Assertions.assertEquals(1, union.getIndex()); + assertEquals(1, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); - Assertions.assertEquals(expected, union.getItem1()); + assertEquals(expected, union.getItem1()); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); Assertions.assertThrows(IllegalStateException.class, union::getItem4); @@ -54,10 +54,10 @@ void getItem2() { val expected = "2"; val union = Union11.withItem2(expected); - Assertions.assertEquals(2, union.getIndex()); + assertEquals(2, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); - Assertions.assertEquals(expected, union.getItem2()); + assertEquals(expected, union.getItem2()); Assertions.assertThrows(IllegalStateException.class, union::getItem3); Assertions.assertThrows(IllegalStateException.class, union::getItem4); Assertions.assertThrows(IllegalStateException.class, union::getItem5); @@ -73,11 +73,11 @@ void getItem3() { val expected = 3f; val union = Union11.withItem3(expected); - Assertions.assertEquals(3, union.getIndex()); + assertEquals(3, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); - Assertions.assertEquals(expected, union.getItem3()); + assertEquals(expected, union.getItem3()); Assertions.assertThrows(IllegalStateException.class, union::getItem4); Assertions.assertThrows(IllegalStateException.class, union::getItem5); Assertions.assertThrows(IllegalStateException.class, union::getItem6); @@ -92,12 +92,12 @@ void getItem4() { val expected = true; val union = Union11.withItem4(expected); - Assertions.assertEquals(4, union.getIndex()); + assertEquals(4, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); - Assertions.assertEquals(expected, union.getItem4()); + assertEquals(expected, union.getItem4()); Assertions.assertThrows(IllegalStateException.class, union::getItem5); Assertions.assertThrows(IllegalStateException.class, union::getItem6); Assertions.assertThrows(IllegalStateException.class, union::getItem7); @@ -111,13 +111,13 @@ void getItem5() { val expected = 5; val union = Union11.withItem5(expected); - Assertions.assertEquals(5, union.getIndex()); + assertEquals(5, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); Assertions.assertThrows(IllegalStateException.class, union::getItem4); - Assertions.assertEquals(expected, union.getItem5()); + assertEquals(expected, union.getItem5()); Assertions.assertThrows(IllegalStateException.class, union::getItem6); Assertions.assertThrows(IllegalStateException.class, union::getItem7); Assertions.assertThrows(IllegalStateException.class, union::getItem8); @@ -130,14 +130,14 @@ void getItem6() { val expected = "6"; val union = Union11.withItem6(expected); - Assertions.assertEquals(6, union.getIndex()); + assertEquals(6, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); Assertions.assertThrows(IllegalStateException.class, union::getItem4); Assertions.assertThrows(IllegalStateException.class, union::getItem5); - Assertions.assertEquals(expected, union.getItem6()); + assertEquals(expected, union.getItem6()); Assertions.assertThrows(IllegalStateException.class, union::getItem7); Assertions.assertThrows(IllegalStateException.class, union::getItem8); Assertions.assertThrows(IllegalStateException.class, union::getItem9); @@ -149,7 +149,7 @@ void getItem7() { val expected = 7f; val union = Union11.withItem7(expected); - Assertions.assertEquals(7, union.getIndex()); + assertEquals(7, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); @@ -157,7 +157,7 @@ void getItem7() { Assertions.assertThrows(IllegalStateException.class, union::getItem4); Assertions.assertThrows(IllegalStateException.class, union::getItem5); Assertions.assertThrows(IllegalStateException.class, union::getItem6); - Assertions.assertEquals(expected, union.getItem7()); + assertEquals(expected, union.getItem7()); Assertions.assertThrows(IllegalStateException.class, union::getItem8); Assertions.assertThrows(IllegalStateException.class, union::getItem9); Assertions.assertThrows(IllegalStateException.class, union::getItem10); @@ -168,7 +168,7 @@ void getItem8() { val expected = false; val union = Union11.withItem8(expected); - Assertions.assertEquals(8, union.getIndex()); + assertEquals(8, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); @@ -177,7 +177,7 @@ void getItem8() { Assertions.assertThrows(IllegalStateException.class, union::getItem5); Assertions.assertThrows(IllegalStateException.class, union::getItem6); Assertions.assertThrows(IllegalStateException.class, union::getItem7); - Assertions.assertEquals(expected, union.getItem8()); + assertEquals(expected, union.getItem8()); Assertions.assertThrows(IllegalStateException.class, union::getItem9); Assertions.assertThrows(IllegalStateException.class, union::getItem10); } @@ -187,7 +187,7 @@ void getItem9() { val expected = 9; val union = Union11.withItem9(expected); - Assertions.assertEquals(9, union.getIndex()); + assertEquals(9, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); @@ -197,7 +197,7 @@ void getItem9() { Assertions.assertThrows(IllegalStateException.class, union::getItem6); Assertions.assertThrows(IllegalStateException.class, union::getItem7); Assertions.assertThrows(IllegalStateException.class, union::getItem8); - Assertions.assertEquals(expected, union.getItem9()); + assertEquals(expected, union.getItem9()); Assertions.assertThrows(IllegalStateException.class, union::getItem10); } @@ -206,7 +206,7 @@ void getItem10() { val expected = "10"; val union = Union11.withItem10(expected); - Assertions.assertEquals(10, union.getIndex()); + assertEquals(10, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); @@ -217,7 +217,7 @@ void getItem10() { Assertions.assertThrows(IllegalStateException.class, union::getItem7); Assertions.assertThrows(IllegalStateException.class, union::getItem8); Assertions.assertThrows(IllegalStateException.class, union::getItem9); - Assertions.assertEquals(expected, union.getItem10()); + assertEquals(expected, union.getItem10()); } @SuppressWarnings({"unchecked", "rawtypes"}) diff --git a/types/src/test/java/com/strategyobject/substrateclient/types/union/Union12Test.java b/common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union12Test.java similarity index 90% rename from types/src/test/java/com/strategyobject/substrateclient/types/union/Union12Test.java rename to common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union12Test.java index 06132bcd..81f4a461 100644 --- a/types/src/test/java/com/strategyobject/substrateclient/types/union/Union12Test.java +++ b/common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union12Test.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.types.union; +package com.strategyobject.substrateclient.common.types.union; import lombok.val; import org.junit.jupiter.api.Assertions; @@ -16,8 +16,8 @@ void getItem0() { val expected = false; val union = Union12.withItem0(expected); - Assertions.assertEquals(0, union.getIndex()); - Assertions.assertEquals(expected, union.getItem0()); + assertEquals(0, union.getIndex()); + assertEquals(expected, union.getItem0()); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); @@ -36,9 +36,9 @@ void getItem1() { val expected = 1; val union = Union12.withItem1(expected); - Assertions.assertEquals(1, union.getIndex()); + assertEquals(1, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); - Assertions.assertEquals(expected, union.getItem1()); + assertEquals(expected, union.getItem1()); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); Assertions.assertThrows(IllegalStateException.class, union::getItem4); @@ -56,10 +56,10 @@ void getItem2() { val expected = "2"; val union = Union12.withItem2(expected); - Assertions.assertEquals(2, union.getIndex()); + assertEquals(2, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); - Assertions.assertEquals(expected, union.getItem2()); + assertEquals(expected, union.getItem2()); Assertions.assertThrows(IllegalStateException.class, union::getItem3); Assertions.assertThrows(IllegalStateException.class, union::getItem4); Assertions.assertThrows(IllegalStateException.class, union::getItem5); @@ -76,11 +76,11 @@ void getItem3() { val expected = 3f; val union = Union12.withItem3(expected); - Assertions.assertEquals(3, union.getIndex()); + assertEquals(3, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); - Assertions.assertEquals(expected, union.getItem3()); + assertEquals(expected, union.getItem3()); Assertions.assertThrows(IllegalStateException.class, union::getItem4); Assertions.assertThrows(IllegalStateException.class, union::getItem5); Assertions.assertThrows(IllegalStateException.class, union::getItem6); @@ -96,12 +96,12 @@ void getItem4() { val expected = true; val union = Union12.withItem4(expected); - Assertions.assertEquals(4, union.getIndex()); + assertEquals(4, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); - Assertions.assertEquals(expected, union.getItem4()); + assertEquals(expected, union.getItem4()); Assertions.assertThrows(IllegalStateException.class, union::getItem5); Assertions.assertThrows(IllegalStateException.class, union::getItem6); Assertions.assertThrows(IllegalStateException.class, union::getItem7); @@ -116,13 +116,13 @@ void getItem5() { val expected = 5; val union = Union12.withItem5(expected); - Assertions.assertEquals(5, union.getIndex()); + assertEquals(5, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); Assertions.assertThrows(IllegalStateException.class, union::getItem4); - Assertions.assertEquals(expected, union.getItem5()); + assertEquals(expected, union.getItem5()); Assertions.assertThrows(IllegalStateException.class, union::getItem6); Assertions.assertThrows(IllegalStateException.class, union::getItem7); Assertions.assertThrows(IllegalStateException.class, union::getItem8); @@ -136,14 +136,14 @@ void getItem6() { val expected = "6"; val union = Union12.withItem6(expected); - Assertions.assertEquals(6, union.getIndex()); + assertEquals(6, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); Assertions.assertThrows(IllegalStateException.class, union::getItem4); Assertions.assertThrows(IllegalStateException.class, union::getItem5); - Assertions.assertEquals(expected, union.getItem6()); + assertEquals(expected, union.getItem6()); Assertions.assertThrows(IllegalStateException.class, union::getItem7); Assertions.assertThrows(IllegalStateException.class, union::getItem8); Assertions.assertThrows(IllegalStateException.class, union::getItem9); @@ -156,7 +156,7 @@ void getItem7() { val expected = 7f; val union = Union12.withItem7(expected); - Assertions.assertEquals(7, union.getIndex()); + assertEquals(7, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); @@ -164,7 +164,7 @@ void getItem7() { Assertions.assertThrows(IllegalStateException.class, union::getItem4); Assertions.assertThrows(IllegalStateException.class, union::getItem5); Assertions.assertThrows(IllegalStateException.class, union::getItem6); - Assertions.assertEquals(expected, union.getItem7()); + assertEquals(expected, union.getItem7()); Assertions.assertThrows(IllegalStateException.class, union::getItem8); Assertions.assertThrows(IllegalStateException.class, union::getItem9); Assertions.assertThrows(IllegalStateException.class, union::getItem10); @@ -176,7 +176,7 @@ void getItem8() { val expected = false; val union = Union12.withItem8(expected); - Assertions.assertEquals(8, union.getIndex()); + assertEquals(8, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); @@ -185,7 +185,7 @@ void getItem8() { Assertions.assertThrows(IllegalStateException.class, union::getItem5); Assertions.assertThrows(IllegalStateException.class, union::getItem6); Assertions.assertThrows(IllegalStateException.class, union::getItem7); - Assertions.assertEquals(expected, union.getItem8()); + assertEquals(expected, union.getItem8()); Assertions.assertThrows(IllegalStateException.class, union::getItem9); Assertions.assertThrows(IllegalStateException.class, union::getItem10); Assertions.assertThrows(IllegalStateException.class, union::getItem11); @@ -196,7 +196,7 @@ void getItem9() { val expected = 9; val union = Union12.withItem9(expected); - Assertions.assertEquals(9, union.getIndex()); + assertEquals(9, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); @@ -206,7 +206,7 @@ void getItem9() { Assertions.assertThrows(IllegalStateException.class, union::getItem6); Assertions.assertThrows(IllegalStateException.class, union::getItem7); Assertions.assertThrows(IllegalStateException.class, union::getItem8); - Assertions.assertEquals(expected, union.getItem9()); + assertEquals(expected, union.getItem9()); Assertions.assertThrows(IllegalStateException.class, union::getItem10); Assertions.assertThrows(IllegalStateException.class, union::getItem11); } @@ -216,7 +216,7 @@ void getItem10() { val expected = "10"; val union = Union12.withItem10(expected); - Assertions.assertEquals(10, union.getIndex()); + assertEquals(10, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); @@ -227,7 +227,7 @@ void getItem10() { Assertions.assertThrows(IllegalStateException.class, union::getItem7); Assertions.assertThrows(IllegalStateException.class, union::getItem8); Assertions.assertThrows(IllegalStateException.class, union::getItem9); - Assertions.assertEquals(expected, union.getItem10()); + assertEquals(expected, union.getItem10()); Assertions.assertThrows(IllegalStateException.class, union::getItem11); } @@ -236,7 +236,7 @@ void getItem11() { val expected = 11f; val union = Union12.withItem11(expected); - Assertions.assertEquals(11, union.getIndex()); + assertEquals(11, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); @@ -248,7 +248,7 @@ void getItem11() { Assertions.assertThrows(IllegalStateException.class, union::getItem8); Assertions.assertThrows(IllegalStateException.class, union::getItem9); Assertions.assertThrows(IllegalStateException.class, union::getItem10); - Assertions.assertEquals(expected, union.getItem11()); + assertEquals(expected, union.getItem11()); } @SuppressWarnings({"unchecked", "rawtypes"}) diff --git a/types/src/test/java/com/strategyobject/substrateclient/types/union/Union1Test.java b/common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union1Test.java similarity index 89% rename from types/src/test/java/com/strategyobject/substrateclient/types/union/Union1Test.java rename to common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union1Test.java index b67b438b..60f6bc16 100644 --- a/types/src/test/java/com/strategyobject/substrateclient/types/union/Union1Test.java +++ b/common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union1Test.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.types.union; +package com.strategyobject.substrateclient.common.types.union; import lombok.val; import org.junit.jupiter.api.Test; diff --git a/types/src/test/java/com/strategyobject/substrateclient/types/union/Union2Test.java b/common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union2Test.java similarity index 78% rename from types/src/test/java/com/strategyobject/substrateclient/types/union/Union2Test.java rename to common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union2Test.java index 4aa50217..58f57383 100644 --- a/types/src/test/java/com/strategyobject/substrateclient/types/union/Union2Test.java +++ b/common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union2Test.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.types.union; +package com.strategyobject.substrateclient.common.types.union; import lombok.val; import org.junit.jupiter.api.Assertions; @@ -16,8 +16,8 @@ void getItem0() { val expected = false; val union = Union2.withItem0(expected); - Assertions.assertEquals(0, union.getIndex()); - Assertions.assertEquals(expected, union.getItem0()); + assertEquals(0, union.getIndex()); + assertEquals(expected, union.getItem0()); Assertions.assertThrows(IllegalStateException.class, union::getItem1); } @@ -26,9 +26,9 @@ void getItem1() { val expected = 1; val union = Union2.withItem1(expected); - Assertions.assertEquals(1, union.getIndex()); + assertEquals(1, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); - Assertions.assertEquals(expected, union.getItem1()); + assertEquals(expected, union.getItem1()); } @SuppressWarnings({"unchecked", "rawtypes"}) diff --git a/types/src/test/java/com/strategyobject/substrateclient/types/union/Union3Test.java b/common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union3Test.java similarity index 80% rename from types/src/test/java/com/strategyobject/substrateclient/types/union/Union3Test.java rename to common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union3Test.java index 665f36e1..b2b5b63c 100644 --- a/types/src/test/java/com/strategyobject/substrateclient/types/union/Union3Test.java +++ b/common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union3Test.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.types.union; +package com.strategyobject.substrateclient.common.types.union; import lombok.val; import org.junit.jupiter.api.Assertions; @@ -16,8 +16,8 @@ void getItem0() { val expected = false; val union = Union3.withItem0(expected); - Assertions.assertEquals(0, union.getIndex()); - Assertions.assertEquals(expected, union.getItem0()); + assertEquals(0, union.getIndex()); + assertEquals(expected, union.getItem0()); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); } @@ -27,9 +27,9 @@ void getItem1() { val expected = 1; val union = Union3.withItem1(expected); - Assertions.assertEquals(1, union.getIndex()); + assertEquals(1, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); - Assertions.assertEquals(expected, union.getItem1()); + assertEquals(expected, union.getItem1()); Assertions.assertThrows(IllegalStateException.class, union::getItem2); } @@ -38,10 +38,10 @@ void getItem2() { val expected = "2"; val union = Union3.withItem2(expected); - Assertions.assertEquals(2, union.getIndex()); + assertEquals(2, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); - Assertions.assertEquals(expected, union.getItem2()); + assertEquals(expected, union.getItem2()); } @SuppressWarnings({"unchecked", "rawtypes"}) diff --git a/types/src/test/java/com/strategyobject/substrateclient/types/union/Union4Test.java b/common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union4Test.java similarity index 81% rename from types/src/test/java/com/strategyobject/substrateclient/types/union/Union4Test.java rename to common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union4Test.java index b2302ba1..fbd7de15 100644 --- a/types/src/test/java/com/strategyobject/substrateclient/types/union/Union4Test.java +++ b/common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union4Test.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.types.union; +package com.strategyobject.substrateclient.common.types.union; import lombok.val; import org.junit.jupiter.api.Assertions; @@ -16,8 +16,8 @@ void getItem0() { val expected = false; val union = Union4.withItem0(expected); - Assertions.assertEquals(0, union.getIndex()); - Assertions.assertEquals(expected, union.getItem0()); + assertEquals(0, union.getIndex()); + assertEquals(expected, union.getItem0()); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); @@ -28,9 +28,9 @@ void getItem1() { val expected = 1; val union = Union4.withItem1(expected); - Assertions.assertEquals(1, union.getIndex()); + assertEquals(1, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); - Assertions.assertEquals(expected, union.getItem1()); + assertEquals(expected, union.getItem1()); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); } @@ -40,10 +40,10 @@ void getItem2() { val expected = "2"; val union = Union4.withItem2(expected); - Assertions.assertEquals(2, union.getIndex()); + assertEquals(2, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); - Assertions.assertEquals(expected, union.getItem2()); + assertEquals(expected, union.getItem2()); Assertions.assertThrows(IllegalStateException.class, union::getItem3); } @@ -52,11 +52,11 @@ void getItem3() { val expected = 3f; val union = Union4.withItem3(expected); - Assertions.assertEquals(3, union.getIndex()); + assertEquals(3, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); - Assertions.assertEquals(expected, union.getItem3()); + assertEquals(expected, union.getItem3()); } @SuppressWarnings({"unchecked", "rawtypes"}) diff --git a/types/src/test/java/com/strategyobject/substrateclient/types/union/Union5Test.java b/common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union5Test.java similarity index 83% rename from types/src/test/java/com/strategyobject/substrateclient/types/union/Union5Test.java rename to common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union5Test.java index cd727b91..306192ed 100644 --- a/types/src/test/java/com/strategyobject/substrateclient/types/union/Union5Test.java +++ b/common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union5Test.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.types.union; +package com.strategyobject.substrateclient.common.types.union; import lombok.val; import org.junit.jupiter.api.Assertions; @@ -16,8 +16,8 @@ void getItem0() { val expected = false; val union = Union5.withItem0(expected); - Assertions.assertEquals(0, union.getIndex()); - Assertions.assertEquals(expected, union.getItem0()); + assertEquals(0, union.getIndex()); + assertEquals(expected, union.getItem0()); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); @@ -29,9 +29,9 @@ void getItem1() { val expected = 1; val union = Union5.withItem1(expected); - Assertions.assertEquals(1, union.getIndex()); + assertEquals(1, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); - Assertions.assertEquals(expected, union.getItem1()); + assertEquals(expected, union.getItem1()); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); Assertions.assertThrows(IllegalStateException.class, union::getItem4); @@ -42,10 +42,10 @@ void getItem2() { val expected = "2"; val union = Union5.withItem2(expected); - Assertions.assertEquals(2, union.getIndex()); + assertEquals(2, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); - Assertions.assertEquals(expected, union.getItem2()); + assertEquals(expected, union.getItem2()); Assertions.assertThrows(IllegalStateException.class, union::getItem3); Assertions.assertThrows(IllegalStateException.class, union::getItem4); } @@ -55,11 +55,11 @@ void getItem3() { val expected = 3f; val union = Union5.withItem3(expected); - Assertions.assertEquals(3, union.getIndex()); + assertEquals(3, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); - Assertions.assertEquals(expected, union.getItem3()); + assertEquals(expected, union.getItem3()); Assertions.assertThrows(IllegalStateException.class, union::getItem4); } @@ -68,12 +68,12 @@ void getItem4() { val expected = true; val union = Union5.withItem4(expected); - Assertions.assertEquals(4, union.getIndex()); + assertEquals(4, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); - Assertions.assertEquals(expected, union.getItem4()); + assertEquals(expected, union.getItem4()); } @SuppressWarnings({"unchecked", "rawtypes"}) diff --git a/types/src/test/java/com/strategyobject/substrateclient/types/union/Union6Test.java b/common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union6Test.java similarity index 84% rename from types/src/test/java/com/strategyobject/substrateclient/types/union/Union6Test.java rename to common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union6Test.java index 231d1d7b..eafafb72 100644 --- a/types/src/test/java/com/strategyobject/substrateclient/types/union/Union6Test.java +++ b/common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union6Test.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.types.union; +package com.strategyobject.substrateclient.common.types.union; import lombok.val; import org.junit.jupiter.api.Assertions; @@ -16,8 +16,8 @@ void getItem0() { val expected = false; val union = Union6.withItem0(expected); - Assertions.assertEquals(0, union.getIndex()); - Assertions.assertEquals(expected, union.getItem0()); + assertEquals(0, union.getIndex()); + assertEquals(expected, union.getItem0()); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); @@ -30,9 +30,9 @@ void getItem1() { val expected = 1; val union = Union6.withItem1(expected); - Assertions.assertEquals(1, union.getIndex()); + assertEquals(1, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); - Assertions.assertEquals(expected, union.getItem1()); + assertEquals(expected, union.getItem1()); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); Assertions.assertThrows(IllegalStateException.class, union::getItem4); @@ -44,10 +44,10 @@ void getItem2() { val expected = "2"; val union = Union6.withItem2(expected); - Assertions.assertEquals(2, union.getIndex()); + assertEquals(2, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); - Assertions.assertEquals(expected, union.getItem2()); + assertEquals(expected, union.getItem2()); Assertions.assertThrows(IllegalStateException.class, union::getItem3); Assertions.assertThrows(IllegalStateException.class, union::getItem4); Assertions.assertThrows(IllegalStateException.class, union::getItem5); @@ -58,11 +58,11 @@ void getItem3() { val expected = 3f; val union = Union6.withItem3(expected); - Assertions.assertEquals(3, union.getIndex()); + assertEquals(3, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); - Assertions.assertEquals(expected, union.getItem3()); + assertEquals(expected, union.getItem3()); Assertions.assertThrows(IllegalStateException.class, union::getItem4); Assertions.assertThrows(IllegalStateException.class, union::getItem5); } @@ -72,12 +72,12 @@ void getItem4() { val expected = true; val union = Union6.withItem4(expected); - Assertions.assertEquals(4, union.getIndex()); + assertEquals(4, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); - Assertions.assertEquals(expected, union.getItem4()); + assertEquals(expected, union.getItem4()); Assertions.assertThrows(IllegalStateException.class, union::getItem5); } @@ -86,13 +86,13 @@ void getItem5() { val expected = 5; val union = Union6.withItem5(expected); - Assertions.assertEquals(5, union.getIndex()); + assertEquals(5, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); Assertions.assertThrows(IllegalStateException.class, union::getItem4); - Assertions.assertEquals(expected, union.getItem5()); + assertEquals(expected, union.getItem5()); } @SuppressWarnings({"unchecked", "rawtypes"}) diff --git a/types/src/test/java/com/strategyobject/substrateclient/types/union/Union7Test.java b/common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union7Test.java similarity index 86% rename from types/src/test/java/com/strategyobject/substrateclient/types/union/Union7Test.java rename to common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union7Test.java index c5460bc7..d5b048db 100644 --- a/types/src/test/java/com/strategyobject/substrateclient/types/union/Union7Test.java +++ b/common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union7Test.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.types.union; +package com.strategyobject.substrateclient.common.types.union; import lombok.val; import org.junit.jupiter.api.Assertions; @@ -16,8 +16,8 @@ void getItem0() { val expected = false; val union = Union7.withItem0(expected); - Assertions.assertEquals(0, union.getIndex()); - Assertions.assertEquals(expected, union.getItem0()); + assertEquals(0, union.getIndex()); + assertEquals(expected, union.getItem0()); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); @@ -31,9 +31,9 @@ void getItem1() { val expected = 1; val union = Union7.withItem1(expected); - Assertions.assertEquals(1, union.getIndex()); + assertEquals(1, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); - Assertions.assertEquals(expected, union.getItem1()); + assertEquals(expected, union.getItem1()); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); Assertions.assertThrows(IllegalStateException.class, union::getItem4); @@ -46,10 +46,10 @@ void getItem2() { val expected = "2"; val union = Union7.withItem2(expected); - Assertions.assertEquals(2, union.getIndex()); + assertEquals(2, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); - Assertions.assertEquals(expected, union.getItem2()); + assertEquals(expected, union.getItem2()); Assertions.assertThrows(IllegalStateException.class, union::getItem3); Assertions.assertThrows(IllegalStateException.class, union::getItem4); Assertions.assertThrows(IllegalStateException.class, union::getItem5); @@ -61,11 +61,11 @@ void getItem3() { val expected = 3f; val union = Union7.withItem3(expected); - Assertions.assertEquals(3, union.getIndex()); + assertEquals(3, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); - Assertions.assertEquals(expected, union.getItem3()); + assertEquals(expected, union.getItem3()); Assertions.assertThrows(IllegalStateException.class, union::getItem4); Assertions.assertThrows(IllegalStateException.class, union::getItem5); Assertions.assertThrows(IllegalStateException.class, union::getItem6); @@ -76,12 +76,12 @@ void getItem4() { val expected = true; val union = Union7.withItem4(expected); - Assertions.assertEquals(4, union.getIndex()); + assertEquals(4, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); - Assertions.assertEquals(expected, union.getItem4()); + assertEquals(expected, union.getItem4()); Assertions.assertThrows(IllegalStateException.class, union::getItem5); Assertions.assertThrows(IllegalStateException.class, union::getItem6); } @@ -91,13 +91,13 @@ void getItem5() { val expected = 5; val union = Union7.withItem5(expected); - Assertions.assertEquals(5, union.getIndex()); + assertEquals(5, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); Assertions.assertThrows(IllegalStateException.class, union::getItem4); - Assertions.assertEquals(expected, union.getItem5()); + assertEquals(expected, union.getItem5()); Assertions.assertThrows(IllegalStateException.class, union::getItem6); } @@ -106,14 +106,14 @@ void getItem6() { val expected = 6f; val union = Union7.withItem6(expected); - Assertions.assertEquals(6, union.getIndex()); + assertEquals(6, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); Assertions.assertThrows(IllegalStateException.class, union::getItem4); Assertions.assertThrows(IllegalStateException.class, union::getItem5); - Assertions.assertEquals(expected, union.getItem6()); + assertEquals(expected, union.getItem6()); } @SuppressWarnings({"unchecked", "rawtypes"}) diff --git a/types/src/test/java/com/strategyobject/substrateclient/types/union/Union8Test.java b/common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union8Test.java similarity index 87% rename from types/src/test/java/com/strategyobject/substrateclient/types/union/Union8Test.java rename to common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union8Test.java index e78f75aa..fa8d10b4 100644 --- a/types/src/test/java/com/strategyobject/substrateclient/types/union/Union8Test.java +++ b/common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union8Test.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.types.union; +package com.strategyobject.substrateclient.common.types.union; import lombok.val; import org.junit.jupiter.api.Assertions; @@ -16,8 +16,8 @@ void getItem0() { val expected = false; val union = Union8.withItem0(expected); - Assertions.assertEquals(0, union.getIndex()); - Assertions.assertEquals(expected, union.getItem0()); + assertEquals(0, union.getIndex()); + assertEquals(expected, union.getItem0()); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); @@ -32,9 +32,9 @@ void getItem1() { val expected = 1; val union = Union8.withItem1(expected); - Assertions.assertEquals(1, union.getIndex()); + assertEquals(1, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); - Assertions.assertEquals(expected, union.getItem1()); + assertEquals(expected, union.getItem1()); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); Assertions.assertThrows(IllegalStateException.class, union::getItem4); @@ -48,10 +48,10 @@ void getItem2() { val expected = "2"; val union = Union8.withItem2(expected); - Assertions.assertEquals(2, union.getIndex()); + assertEquals(2, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); - Assertions.assertEquals(expected, union.getItem2()); + assertEquals(expected, union.getItem2()); Assertions.assertThrows(IllegalStateException.class, union::getItem3); Assertions.assertThrows(IllegalStateException.class, union::getItem4); Assertions.assertThrows(IllegalStateException.class, union::getItem5); @@ -64,11 +64,11 @@ void getItem3() { val expected = 3f; val union = Union8.withItem3(expected); - Assertions.assertEquals(3, union.getIndex()); + assertEquals(3, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); - Assertions.assertEquals(expected, union.getItem3()); + assertEquals(expected, union.getItem3()); Assertions.assertThrows(IllegalStateException.class, union::getItem4); Assertions.assertThrows(IllegalStateException.class, union::getItem5); Assertions.assertThrows(IllegalStateException.class, union::getItem6); @@ -80,12 +80,12 @@ void getItem4() { val expected = true; val union = Union8.withItem4(expected); - Assertions.assertEquals(4, union.getIndex()); + assertEquals(4, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); - Assertions.assertEquals(expected, union.getItem4()); + assertEquals(expected, union.getItem4()); Assertions.assertThrows(IllegalStateException.class, union::getItem5); Assertions.assertThrows(IllegalStateException.class, union::getItem6); Assertions.assertThrows(IllegalStateException.class, union::getItem7); @@ -96,13 +96,13 @@ void getItem5() { val expected = 5; val union = Union8.withItem5(expected); - Assertions.assertEquals(5, union.getIndex()); + assertEquals(5, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); Assertions.assertThrows(IllegalStateException.class, union::getItem4); - Assertions.assertEquals(expected, union.getItem5()); + assertEquals(expected, union.getItem5()); Assertions.assertThrows(IllegalStateException.class, union::getItem6); Assertions.assertThrows(IllegalStateException.class, union::getItem7); } @@ -112,14 +112,14 @@ void getItem6() { val expected = 6f; val union = Union8.withItem6(expected); - Assertions.assertEquals(6, union.getIndex()); + assertEquals(6, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); Assertions.assertThrows(IllegalStateException.class, union::getItem4); Assertions.assertThrows(IllegalStateException.class, union::getItem5); - Assertions.assertEquals(expected, union.getItem6()); + assertEquals(expected, union.getItem6()); Assertions.assertThrows(IllegalStateException.class, union::getItem7); } @@ -128,7 +128,7 @@ void getItem7() { val expected = false; val union = Union8.withItem7(expected); - Assertions.assertEquals(7, union.getIndex()); + assertEquals(7, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); @@ -136,7 +136,7 @@ void getItem7() { Assertions.assertThrows(IllegalStateException.class, union::getItem4); Assertions.assertThrows(IllegalStateException.class, union::getItem5); Assertions.assertThrows(IllegalStateException.class, union::getItem6); - Assertions.assertEquals(expected, union.getItem7()); + assertEquals(expected, union.getItem7()); } @SuppressWarnings({"unchecked", "rawtypes"}) diff --git a/types/src/test/java/com/strategyobject/substrateclient/types/union/Union9Test.java b/common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union9Test.java similarity index 88% rename from types/src/test/java/com/strategyobject/substrateclient/types/union/Union9Test.java rename to common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union9Test.java index 8b69c368..013fb489 100644 --- a/types/src/test/java/com/strategyobject/substrateclient/types/union/Union9Test.java +++ b/common/src/test/java/com/strategyobject/substrateclient/common/types/union/Union9Test.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.types.union; +package com.strategyobject.substrateclient.common.types.union; import lombok.val; import org.junit.jupiter.api.Assertions; @@ -16,8 +16,8 @@ void getItem0() { val expected = false; val union = Union9.withItem0(expected); - Assertions.assertEquals(0, union.getIndex()); - Assertions.assertEquals(expected, union.getItem0()); + assertEquals(0, union.getIndex()); + assertEquals(expected, union.getItem0()); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); @@ -33,9 +33,9 @@ void getItem1() { val expected = 1; val union = Union9.withItem1(expected); - Assertions.assertEquals(1, union.getIndex()); + assertEquals(1, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); - Assertions.assertEquals(expected, union.getItem1()); + assertEquals(expected, union.getItem1()); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); Assertions.assertThrows(IllegalStateException.class, union::getItem4); @@ -50,10 +50,10 @@ void getItem2() { val expected = "2"; val union = Union9.withItem2(expected); - Assertions.assertEquals(2, union.getIndex()); + assertEquals(2, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); - Assertions.assertEquals(expected, union.getItem2()); + assertEquals(expected, union.getItem2()); Assertions.assertThrows(IllegalStateException.class, union::getItem3); Assertions.assertThrows(IllegalStateException.class, union::getItem4); Assertions.assertThrows(IllegalStateException.class, union::getItem5); @@ -67,11 +67,11 @@ void getItem3() { val expected = 3f; val union = Union9.withItem3(expected); - Assertions.assertEquals(3, union.getIndex()); + assertEquals(3, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); - Assertions.assertEquals(expected, union.getItem3()); + assertEquals(expected, union.getItem3()); Assertions.assertThrows(IllegalStateException.class, union::getItem4); Assertions.assertThrows(IllegalStateException.class, union::getItem5); Assertions.assertThrows(IllegalStateException.class, union::getItem6); @@ -84,12 +84,12 @@ void getItem4() { val expected = true; val union = Union9.withItem4(expected); - Assertions.assertEquals(4, union.getIndex()); + assertEquals(4, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); - Assertions.assertEquals(expected, union.getItem4()); + assertEquals(expected, union.getItem4()); Assertions.assertThrows(IllegalStateException.class, union::getItem5); Assertions.assertThrows(IllegalStateException.class, union::getItem6); Assertions.assertThrows(IllegalStateException.class, union::getItem7); @@ -101,13 +101,13 @@ void getItem5() { val expected = 5; val union = Union9.withItem5(expected); - Assertions.assertEquals(5, union.getIndex()); + assertEquals(5, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); Assertions.assertThrows(IllegalStateException.class, union::getItem4); - Assertions.assertEquals(expected, union.getItem5()); + assertEquals(expected, union.getItem5()); Assertions.assertThrows(IllegalStateException.class, union::getItem6); Assertions.assertThrows(IllegalStateException.class, union::getItem7); Assertions.assertThrows(IllegalStateException.class, union::getItem8); @@ -118,14 +118,14 @@ void getItem6() { val expected = "6"; val union = Union9.withItem6(expected); - Assertions.assertEquals(6, union.getIndex()); + assertEquals(6, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); Assertions.assertThrows(IllegalStateException.class, union::getItem3); Assertions.assertThrows(IllegalStateException.class, union::getItem4); Assertions.assertThrows(IllegalStateException.class, union::getItem5); - Assertions.assertEquals(expected, union.getItem6()); + assertEquals(expected, union.getItem6()); Assertions.assertThrows(IllegalStateException.class, union::getItem7); Assertions.assertThrows(IllegalStateException.class, union::getItem8); } @@ -135,7 +135,7 @@ void getItem7() { val expected = false; val union = Union9.withItem7(expected); - Assertions.assertEquals(7, union.getIndex()); + assertEquals(7, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); @@ -143,7 +143,7 @@ void getItem7() { Assertions.assertThrows(IllegalStateException.class, union::getItem4); Assertions.assertThrows(IllegalStateException.class, union::getItem5); Assertions.assertThrows(IllegalStateException.class, union::getItem6); - Assertions.assertEquals(expected, union.getItem7()); + assertEquals(expected, union.getItem7()); Assertions.assertThrows(IllegalStateException.class, union::getItem8); } @@ -152,7 +152,7 @@ void getItem8() { val expected = 8; val union = Union9.withItem8(expected); - Assertions.assertEquals(8, union.getIndex()); + assertEquals(8, union.getIndex()); Assertions.assertThrows(IllegalStateException.class, union::getItem0); Assertions.assertThrows(IllegalStateException.class, union::getItem1); Assertions.assertThrows(IllegalStateException.class, union::getItem2); @@ -161,7 +161,7 @@ void getItem8() { Assertions.assertThrows(IllegalStateException.class, union::getItem5); Assertions.assertThrows(IllegalStateException.class, union::getItem6); Assertions.assertThrows(IllegalStateException.class, union::getItem7); - Assertions.assertEquals(expected, union.getItem8()); + assertEquals(expected, union.getItem8()); } @SuppressWarnings({"unchecked", "rawtypes"}) diff --git a/common/src/test/java/com/strategyobject/substrateclient/common/utils/HexConverterTests.java b/common/src/test/java/com/strategyobject/substrateclient/common/utils/HexConverterTests.java index ab58dbf2..0d7934a9 100644 --- a/common/src/test/java/com/strategyobject/substrateclient/common/utils/HexConverterTests.java +++ b/common/src/test/java/com/strategyobject/substrateclient/common/utils/HexConverterTests.java @@ -12,7 +12,7 @@ import static org.junit.jupiter.api.Assertions.*; -public class HexConverterTests { +class HexConverterTests { @TestFactory Stream toHex() { return TestSuite.of( diff --git a/crypto/build.gradle b/crypto/build.gradle index 46706d93..b837674f 100644 --- a/crypto/build.gradle +++ b/crypto/build.gradle @@ -1,8 +1,9 @@ dependencies { + implementation project(":common") + implementation 'com.github.multiformats:java-multibase:1.1.0' implementation 'org.bouncycastle:bcprov-jdk15on:1.70' - implementation project(":common") - implementation project(":types") + implementation 'net.openhft:zero-allocation-hashing:0.15' } test { diff --git a/crypto/src/jni-crypto/src/sr25519.rs b/crypto/src/jni-crypto/src/sr25519.rs index 2e565be0..ee2568a2 100644 --- a/crypto/src/jni-crypto/src/sr25519.rs +++ b/crypto/src/jni-crypto/src/sr25519.rs @@ -2,10 +2,9 @@ // Only `#[wasm_bindgen]` and `use wasm_bindgen::prelude::*;` were removed. use curve25519_dalek::scalar::Scalar; - use schnorrkel::{ - ExpansionMode, Keypair, MiniSecretKey, PublicKey, SecretKey, Signature, - derive::{Derivation, ChainCode, CHAIN_CODE_LENGTH}, + derive::{CHAIN_CODE_LENGTH, ChainCode, Derivation}, ExpansionMode, Keypair, MiniSecretKey, PublicKey, SecretKey, + Signature, }; // We must make sure that this is the same as declared in the substrate source code. @@ -150,9 +149,10 @@ pub mod tests { extern crate rand; extern crate schnorrkel; - use super::*; use hex_literal::hex; - use schnorrkel::{SIGNATURE_LENGTH, KEYPAIR_LENGTH, SECRET_KEY_LENGTH}; + use schnorrkel::{KEYPAIR_LENGTH, SECRET_KEY_LENGTH, SIGNATURE_LENGTH}; + + use super::*; fn generate_random_seed() -> Vec { (0..32).map(|_| rand::random::()).collect() diff --git a/crypto/src/jni-crypto/src/sr25519_jni.rs b/crypto/src/jni-crypto/src/sr25519_jni.rs index 883d08cd..516f566f 100644 --- a/crypto/src/jni-crypto/src/sr25519_jni.rs +++ b/crypto/src/jni-crypto/src/sr25519_jni.rs @@ -3,11 +3,11 @@ use jni::{ objects::JClass, sys::{jboolean, jbyteArray}, }; +use std::any::Any; +use std::ops::Deref; +use std::panic::catch_unwind; use crate::sr25519::*; -use std::panic::catch_unwind; -use std::ops::Deref; -use std::any::Any; #[no_mangle] pub extern "system" fn Java_com_strategyobject_substrateclient_crypto_sr25519_Native_deriveKeyPairHard( diff --git a/crypto/src/main/java/com/strategyobject/substrateclient/crypto/CryptoProvider.java b/crypto/src/main/java/com/strategyobject/substrateclient/crypto/CryptoProvider.java index 3777c21c..610e1812 100644 --- a/crypto/src/main/java/com/strategyobject/substrateclient/crypto/CryptoProvider.java +++ b/crypto/src/main/java/com/strategyobject/substrateclient/crypto/CryptoProvider.java @@ -1,6 +1,5 @@ package com.strategyobject.substrateclient.crypto; -import com.strategyobject.substrateclient.types.*; import lombok.NonNull; public interface CryptoProvider { diff --git a/crypto/src/main/java/com/strategyobject/substrateclient/crypto/Hasher.java b/crypto/src/main/java/com/strategyobject/substrateclient/crypto/Hasher.java new file mode 100644 index 00000000..dc7c5055 --- /dev/null +++ b/crypto/src/main/java/com/strategyobject/substrateclient/crypto/Hasher.java @@ -0,0 +1,39 @@ +package com.strategyobject.substrateclient.crypto; + +import com.strategyobject.substrateclient.common.types.Size; +import lombok.val; +import net.openhft.hashing.LongHashFunction; +import org.bouncycastle.crypto.digests.Blake2bDigest; + +public class Hasher { + public static byte[] blake2(Size size, byte[] value) { + val digest = new Blake2bDigest(size.getValue()); + digest.update(value, 0, value.length); + + val result = new byte[digest.getDigestSize()]; + digest.doFinal(result, 0); + return result; + } + + public static long xx(long seed, byte[] value) { + return LongHashFunction.xx(seed).hashBytes(value); + } + + public static byte[] xx64(long seed, byte[] value) { + val hash = xx(seed, value); + + return new byte[]{ + (byte) (hash), + (byte) (hash >> 8), + (byte) (hash >> 16), + (byte) (hash >> 24), + (byte) (hash >> 32), + (byte) (hash >> 40), + (byte) (hash >> 48), + (byte) (hash >> 56) + }; + } + + private Hasher() { + } +} diff --git a/types/src/main/java/com/strategyobject/substrateclient/types/KeyPair.java b/crypto/src/main/java/com/strategyobject/substrateclient/crypto/KeyPair.java similarity index 79% rename from types/src/main/java/com/strategyobject/substrateclient/types/KeyPair.java rename to crypto/src/main/java/com/strategyobject/substrateclient/crypto/KeyPair.java index 6c8c7c1b..2bdff344 100644 --- a/types/src/main/java/com/strategyobject/substrateclient/types/KeyPair.java +++ b/crypto/src/main/java/com/strategyobject/substrateclient/crypto/KeyPair.java @@ -1,5 +1,7 @@ -package com.strategyobject.substrateclient.types; +package com.strategyobject.substrateclient.crypto; +import com.strategyobject.substrateclient.common.types.FixedBytes; +import com.strategyobject.substrateclient.common.types.Size; import lombok.NonNull; import java.util.Arrays; diff --git a/crypto/src/main/java/com/strategyobject/substrateclient/crypto/KeyRing.java b/crypto/src/main/java/com/strategyobject/substrateclient/crypto/KeyRing.java index b9da9a7e..5a15c280 100644 --- a/crypto/src/main/java/com/strategyobject/substrateclient/crypto/KeyRing.java +++ b/crypto/src/main/java/com/strategyobject/substrateclient/crypto/KeyRing.java @@ -1,7 +1,6 @@ package com.strategyobject.substrateclient.crypto; import com.strategyobject.substrateclient.crypto.sr25519.Sr25519NativeCryptoProvider; -import com.strategyobject.substrateclient.types.*; import lombok.Getter; import lombok.NonNull; import lombok.val; diff --git a/types/src/main/java/com/strategyobject/substrateclient/types/PublicKey.java b/crypto/src/main/java/com/strategyobject/substrateclient/crypto/PublicKey.java similarity index 59% rename from types/src/main/java/com/strategyobject/substrateclient/types/PublicKey.java rename to crypto/src/main/java/com/strategyobject/substrateclient/crypto/PublicKey.java index f3ff98c5..4cfcfdf1 100644 --- a/types/src/main/java/com/strategyobject/substrateclient/types/PublicKey.java +++ b/crypto/src/main/java/com/strategyobject/substrateclient/crypto/PublicKey.java @@ -1,6 +1,7 @@ -package com.strategyobject.substrateclient.types; - +package com.strategyobject.substrateclient.crypto; +import com.strategyobject.substrateclient.common.types.FixedBytes; +import com.strategyobject.substrateclient.common.types.Size; import lombok.NonNull; public class PublicKey extends FixedBytes { diff --git a/types/src/main/java/com/strategyobject/substrateclient/types/SecretKey.java b/crypto/src/main/java/com/strategyobject/substrateclient/crypto/SecretKey.java similarity index 59% rename from types/src/main/java/com/strategyobject/substrateclient/types/SecretKey.java rename to crypto/src/main/java/com/strategyobject/substrateclient/crypto/SecretKey.java index 673ba8b7..581ecb1f 100644 --- a/types/src/main/java/com/strategyobject/substrateclient/types/SecretKey.java +++ b/crypto/src/main/java/com/strategyobject/substrateclient/crypto/SecretKey.java @@ -1,5 +1,7 @@ -package com.strategyobject.substrateclient.types; +package com.strategyobject.substrateclient.crypto; +import com.strategyobject.substrateclient.common.types.FixedBytes; +import com.strategyobject.substrateclient.common.types.Size; import lombok.NonNull; public class SecretKey extends FixedBytes { diff --git a/types/src/main/java/com/strategyobject/substrateclient/types/Seed.java b/crypto/src/main/java/com/strategyobject/substrateclient/crypto/Seed.java similarity index 57% rename from types/src/main/java/com/strategyobject/substrateclient/types/Seed.java rename to crypto/src/main/java/com/strategyobject/substrateclient/crypto/Seed.java index 5a2759a0..cefe8f34 100644 --- a/types/src/main/java/com/strategyobject/substrateclient/types/Seed.java +++ b/crypto/src/main/java/com/strategyobject/substrateclient/crypto/Seed.java @@ -1,6 +1,7 @@ -package com.strategyobject.substrateclient.types; - +package com.strategyobject.substrateclient.crypto; +import com.strategyobject.substrateclient.common.types.FixedBytes; +import com.strategyobject.substrateclient.common.types.Size; import lombok.NonNull; public class Seed extends FixedBytes { diff --git a/types/src/main/java/com/strategyobject/substrateclient/types/Signable.java b/crypto/src/main/java/com/strategyobject/substrateclient/crypto/Signable.java similarity index 63% rename from types/src/main/java/com/strategyobject/substrateclient/types/Signable.java rename to crypto/src/main/java/com/strategyobject/substrateclient/crypto/Signable.java index 1237eb78..2826244e 100644 --- a/types/src/main/java/com/strategyobject/substrateclient/types/Signable.java +++ b/crypto/src/main/java/com/strategyobject/substrateclient/crypto/Signable.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.types; +package com.strategyobject.substrateclient.crypto; import lombok.NonNull; diff --git a/types/src/main/java/com/strategyobject/substrateclient/types/SignatureData.java b/crypto/src/main/java/com/strategyobject/substrateclient/crypto/SignatureData.java similarity index 61% rename from types/src/main/java/com/strategyobject/substrateclient/types/SignatureData.java rename to crypto/src/main/java/com/strategyobject/substrateclient/crypto/SignatureData.java index ff648558..af9e12b3 100644 --- a/types/src/main/java/com/strategyobject/substrateclient/types/SignatureData.java +++ b/crypto/src/main/java/com/strategyobject/substrateclient/crypto/SignatureData.java @@ -1,5 +1,7 @@ -package com.strategyobject.substrateclient.types; +package com.strategyobject.substrateclient.crypto; +import com.strategyobject.substrateclient.common.types.FixedBytes; +import com.strategyobject.substrateclient.common.types.Size; import lombok.NonNull; public class SignatureData extends FixedBytes { diff --git a/crypto/src/main/java/com/strategyobject/substrateclient/crypto/sr25519/Native.java b/crypto/src/main/java/com/strategyobject/substrateclient/crypto/sr25519/Native.java index f1f06a23..b49e5e31 100644 --- a/crypto/src/main/java/com/strategyobject/substrateclient/crypto/sr25519/Native.java +++ b/crypto/src/main/java/com/strategyobject/substrateclient/crypto/sr25519/Native.java @@ -85,4 +85,7 @@ private static String copyLibraryFromResourcesToTempDir() throws IOException { static native boolean verify(byte[] signature, byte[] message, byte[] publicKey) throws NativeException; static native byte[] agree(byte[] publicKey, byte[] secretKey) throws NativeException; + + private Native() { + } } diff --git a/crypto/src/main/java/com/strategyobject/substrateclient/crypto/sr25519/Sr25519NativeCryptoProvider.java b/crypto/src/main/java/com/strategyobject/substrateclient/crypto/sr25519/Sr25519NativeCryptoProvider.java index c9161883..b793fa68 100644 --- a/crypto/src/main/java/com/strategyobject/substrateclient/crypto/sr25519/Sr25519NativeCryptoProvider.java +++ b/crypto/src/main/java/com/strategyobject/substrateclient/crypto/sr25519/Sr25519NativeCryptoProvider.java @@ -1,8 +1,6 @@ package com.strategyobject.substrateclient.crypto.sr25519; -import com.strategyobject.substrateclient.crypto.CryptoProvider; -import com.strategyobject.substrateclient.crypto.NativeException; -import com.strategyobject.substrateclient.types.*; +import com.strategyobject.substrateclient.crypto.*; import lombok.NonNull; public class Sr25519NativeCryptoProvider implements CryptoProvider { diff --git a/crypto/src/test/java/com/strategyobject/substrateclient/crypto/sr25519/NativeTests.java b/crypto/src/test/java/com/strategyobject/substrateclient/crypto/sr25519/NativeTests.java index a7052da2..0955a873 100644 --- a/crypto/src/test/java/com/strategyobject/substrateclient/crypto/sr25519/NativeTests.java +++ b/crypto/src/test/java/com/strategyobject/substrateclient/crypto/sr25519/NativeTests.java @@ -12,7 +12,7 @@ import static com.strategyobject.substrateclient.crypto.sr25519.Native.*; import static org.junit.jupiter.api.Assertions.*; -public class NativeTests { +class NativeTests { @Test void deriveKeyPairHard() throws NativeException { val aliceChainCode = HexConverter.toBytes("14416c6963650000000000000000000000000000000000000000000000000000"); diff --git a/crypto/src/test/java/com/strategyobject/substrateclient/crypto/ss58/SS58CodecTests.java b/crypto/src/test/java/com/strategyobject/substrateclient/crypto/ss58/SS58CodecTests.java index 955ea8a5..b2d0d20d 100644 --- a/crypto/src/test/java/com/strategyobject/substrateclient/crypto/ss58/SS58CodecTests.java +++ b/crypto/src/test/java/com/strategyobject/substrateclient/crypto/ss58/SS58CodecTests.java @@ -8,7 +8,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; -public class SS58CodecTests { +class SS58CodecTests { @ParameterizedTest @CsvSource(value = { "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY:0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d:42", diff --git a/pallet/build.gradle b/pallet/build.gradle index e5b3aca3..07e06440 100644 --- a/pallet/build.gradle +++ b/pallet/build.gradle @@ -1,4 +1,16 @@ dependencies { - implementation project(':scale') + implementation project(':common') + implementation project(':crypto') implementation project(':rpc') + implementation project(':rpc:rpc-api') + implementation project(':scale') + + testImplementation project(':tests') + testCompileOnly project(':transport') + + testAnnotationProcessor project(':rpc:rpc-codegen') + + testImplementation 'org.testcontainers:testcontainers:1.17.1' + testImplementation 'org.testcontainers:junit-jupiter:1.17.1' + testImplementation 'ch.qos.logback:logback-classic:1.2.11' } \ No newline at end of file diff --git a/pallet/pallet-codegen/build.gradle b/pallet/pallet-codegen/build.gradle index fc9b225b..d91307d9 100644 --- a/pallet/pallet-codegen/build.gradle +++ b/pallet/pallet-codegen/build.gradle @@ -1,10 +1,9 @@ dependencies { implementation project(':common') implementation project(':rpc') - implementation project(':types') + implementation project(':rpc:rpc-api') implementation project(':scale') implementation project(':scale:scale-codegen') - implementation project(':storage') implementation project(':pallet') implementation 'com.squareup:javapoet:1.13.0' diff --git a/pallet/pallet-codegen/src/main/java/com.strategyobject.substrateclient.pallet/CompoundMethodProcessor.java b/pallet/pallet-codegen/src/main/java/com/strategyobject/substrateclient/pallet/codegen/CompoundMethodProcessor.java similarity index 95% rename from pallet/pallet-codegen/src/main/java/com.strategyobject.substrateclient.pallet/CompoundMethodProcessor.java rename to pallet/pallet-codegen/src/main/java/com/strategyobject/substrateclient/pallet/codegen/CompoundMethodProcessor.java index 9e48cb9a..c4b60208 100644 --- a/pallet/pallet-codegen/src/main/java/com.strategyobject.substrateclient.pallet/CompoundMethodProcessor.java +++ b/pallet/pallet-codegen/src/main/java/com/strategyobject/substrateclient/pallet/codegen/CompoundMethodProcessor.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.pallet; +package com.strategyobject.substrateclient.pallet.codegen; import com.squareup.javapoet.MethodSpec; import com.squareup.javapoet.TypeSpec; diff --git a/pallet/pallet-codegen/src/main/java/com.strategyobject.substrateclient.pallet/Constants.java b/pallet/pallet-codegen/src/main/java/com/strategyobject/substrateclient/pallet/codegen/Constants.java similarity index 83% rename from pallet/pallet-codegen/src/main/java/com.strategyobject.substrateclient.pallet/Constants.java rename to pallet/pallet-codegen/src/main/java/com/strategyobject/substrateclient/pallet/codegen/Constants.java index 0fe76acc..8f2564d7 100644 --- a/pallet/pallet-codegen/src/main/java/com.strategyobject.substrateclient.pallet/Constants.java +++ b/pallet/pallet-codegen/src/main/java/com/strategyobject/substrateclient/pallet/codegen/Constants.java @@ -1,7 +1,7 @@ -package com.strategyobject.substrateclient.pallet; +package com.strategyobject.substrateclient.pallet.codegen; class Constants { - static final String RPC = "rpc"; + static final String STATE = "state"; static final String CLASS_NAME_TEMPLATE = "%sImpl"; static final String SCALE_READER_REGISTRY = "scaleReaderRegistry"; static final String SCALE_WRITER_REGISTRY = "scaleWriterRegistry"; @@ -12,4 +12,7 @@ class Constants { static final String BLAKE_2_128_CONCAT_INSTANCE = "getInstance"; static final String TWO_X64_CONCAT_INSTANCE = "getInstance"; static final String IDENTITY_INSTANCE = "getInstance"; + + private Constants() { + } } diff --git a/pallet/pallet-codegen/src/main/java/com.strategyobject.substrateclient.pallet/PalletAnnotatedInterface.java b/pallet/pallet-codegen/src/main/java/com/strategyobject/substrateclient/pallet/codegen/PalletAnnotatedInterface.java similarity index 78% rename from pallet/pallet-codegen/src/main/java/com.strategyobject.substrateclient.pallet/PalletAnnotatedInterface.java rename to pallet/pallet-codegen/src/main/java/com/strategyobject/substrateclient/pallet/codegen/PalletAnnotatedInterface.java index 22373635..99c3ce8f 100644 --- a/pallet/pallet-codegen/src/main/java/com.strategyobject.substrateclient.pallet/PalletAnnotatedInterface.java +++ b/pallet/pallet-codegen/src/main/java/com/strategyobject/substrateclient/pallet/codegen/PalletAnnotatedInterface.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.pallet; +package com.strategyobject.substrateclient.pallet.codegen; import com.google.common.base.Strings; import com.squareup.javapoet.JavaFile; @@ -7,17 +7,18 @@ import com.squareup.javapoet.TypeSpec; import com.strategyobject.substrateclient.common.codegen.ProcessingException; import com.strategyobject.substrateclient.common.codegen.ProcessorContext; -import com.strategyobject.substrateclient.pallet.annotations.Pallet; -import com.strategyobject.substrateclient.rpc.Rpc; +import com.strategyobject.substrateclient.pallet.annotation.Pallet; +import com.strategyobject.substrateclient.rpc.api.section.State; import lombok.val; +import javax.lang.model.element.Element; import javax.lang.model.element.ExecutableElement; import javax.lang.model.element.Modifier; import javax.lang.model.element.TypeElement; import java.io.IOException; -import static com.strategyobject.substrateclient.pallet.Constants.CLASS_NAME_TEMPLATE; -import static com.strategyobject.substrateclient.pallet.Constants.RPC; +import static com.strategyobject.substrateclient.pallet.codegen.Constants.CLASS_NAME_TEMPLATE; +import static com.strategyobject.substrateclient.pallet.codegen.Constants.STATE; public class PalletAnnotatedInterface { private final TypeElement interfaceElement; @@ -54,11 +55,11 @@ public void generateClass(ProcessorContext context) throws ProcessingException, val typeSpecBuilder = TypeSpec.classBuilder(className) .addModifiers(Modifier.PUBLIC, Modifier.FINAL) .addSuperinterface(TypeName.get(interfaceElement.asType())) - .addField(Rpc.class, RPC, Modifier.FINAL, Modifier.PRIVATE); + .addField(State.class, STATE, Modifier.FINAL, Modifier.PRIVATE); val constructorBuilder = createConstructorBuilder(); - for (val method : interfaceElement.getEnclosedElements()) { + for (Element method : interfaceElement.getEnclosedElements()) { this.methodProcessor.process(name, (ExecutableElement) method, typeSpecBuilder, @@ -74,10 +75,10 @@ public void generateClass(ProcessorContext context) throws ProcessingException, private MethodSpec.Builder createConstructorBuilder() { return MethodSpec.constructorBuilder() .addModifiers(Modifier.PUBLIC) - .addParameter(Rpc.class, RPC) - .beginControlFlow("if ($L == null)", RPC) - .addStatement("throw new $T(\"$L can't be null.\")", IllegalArgumentException.class, RPC) + .addParameter(State.class, STATE) + .beginControlFlow("if ($L == null)", STATE) + .addStatement("throw new $T(\"$L can't be null.\")", IllegalArgumentException.class, STATE) .endControlFlow() - .addStatement("this.$1L = $1L", RPC); + .addStatement("this.$1L = $1L", STATE); } } diff --git a/pallet/pallet-codegen/src/main/java/com.strategyobject.substrateclient.pallet/PalletInterfaceProcessor.java b/pallet/pallet-codegen/src/main/java/com/strategyobject/substrateclient/pallet/codegen/PalletInterfaceProcessor.java similarity index 89% rename from pallet/pallet-codegen/src/main/java/com.strategyobject.substrateclient.pallet/PalletInterfaceProcessor.java rename to pallet/pallet-codegen/src/main/java/com/strategyobject/substrateclient/pallet/codegen/PalletInterfaceProcessor.java index 020cbc7c..ab945ff2 100644 --- a/pallet/pallet-codegen/src/main/java/com.strategyobject.substrateclient.pallet/PalletInterfaceProcessor.java +++ b/pallet/pallet-codegen/src/main/java/com/strategyobject/substrateclient/pallet/codegen/PalletInterfaceProcessor.java @@ -1,20 +1,21 @@ -package com.strategyobject.substrateclient.pallet; +package com.strategyobject.substrateclient.pallet.codegen; import com.google.auto.service.AutoService; import com.strategyobject.substrateclient.common.codegen.ProcessingException; import com.strategyobject.substrateclient.common.codegen.ProcessorContext; -import com.strategyobject.substrateclient.pallet.annotations.Pallet; +import com.strategyobject.substrateclient.pallet.annotation.Pallet; import lombok.val; import javax.annotation.processing.*; import javax.lang.model.SourceVersion; +import javax.lang.model.element.Element; import javax.lang.model.element.ElementKind; import javax.lang.model.element.TypeElement; import java.io.IOException; import java.util.Collections; import java.util.Set; -@SupportedAnnotationTypes("com.strategyobject.substrateclient.pallet.annotations.Pallet") +@SupportedAnnotationTypes("com.strategyobject.substrateclient.pallet.annotation.Pallet") @SupportedSourceVersion(SourceVersion.RELEASE_8) @AutoService(Processor.class) public class PalletInterfaceProcessor extends AbstractProcessor { @@ -35,7 +36,7 @@ public boolean process(Set annotations, RoundEnvironment return false; } - for (val annotatedElement : roundEnv.getElementsAnnotatedWith(Pallet.class)) { + for (Element annotatedElement : roundEnv.getElementsAnnotatedWith(Pallet.class)) { if (annotatedElement.getKind() != ElementKind.INTERFACE) { context.error( annotatedElement, diff --git a/pallet/pallet-codegen/src/main/java/com.strategyobject.substrateclient.pallet/PalletMethodProcessor.java b/pallet/pallet-codegen/src/main/java/com/strategyobject/substrateclient/pallet/codegen/PalletMethodProcessor.java similarity index 93% rename from pallet/pallet-codegen/src/main/java/com.strategyobject.substrateclient.pallet/PalletMethodProcessor.java rename to pallet/pallet-codegen/src/main/java/com/strategyobject/substrateclient/pallet/codegen/PalletMethodProcessor.java index 139cb6d3..79468ba1 100644 --- a/pallet/pallet-codegen/src/main/java/com.strategyobject.substrateclient.pallet/PalletMethodProcessor.java +++ b/pallet/pallet-codegen/src/main/java/com/strategyobject/substrateclient/pallet/codegen/PalletMethodProcessor.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.pallet; +package com.strategyobject.substrateclient.pallet.codegen; import com.squareup.javapoet.MethodSpec; import com.squareup.javapoet.TypeSpec; diff --git a/pallet/pallet-codegen/src/main/java/com.strategyobject.substrateclient.pallet/StorageProcessor.java b/pallet/pallet-codegen/src/main/java/com/strategyobject/substrateclient/pallet/codegen/StorageProcessor.java similarity index 95% rename from pallet/pallet-codegen/src/main/java/com.strategyobject.substrateclient.pallet/StorageProcessor.java rename to pallet/pallet-codegen/src/main/java/com/strategyobject/substrateclient/pallet/codegen/StorageProcessor.java index cba323cc..ca1d58e4 100644 --- a/pallet/pallet-codegen/src/main/java/com.strategyobject.substrateclient.pallet/StorageProcessor.java +++ b/pallet/pallet-codegen/src/main/java/com/strategyobject/substrateclient/pallet/codegen/StorageProcessor.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.pallet; +package com.strategyobject.substrateclient.pallet.codegen; import com.google.common.base.Strings; import com.squareup.javapoet.CodeBlock; @@ -9,8 +9,11 @@ import com.strategyobject.substrateclient.common.codegen.ProcessingException; import com.strategyobject.substrateclient.common.codegen.ProcessorContext; import com.strategyobject.substrateclient.common.codegen.TypeTraverser; -import com.strategyobject.substrateclient.pallet.annotations.Storage; -import com.strategyobject.substrateclient.pallet.annotations.StorageHasher; +import com.strategyobject.substrateclient.common.types.FixedBytes; +import com.strategyobject.substrateclient.common.types.Size; +import com.strategyobject.substrateclient.pallet.annotation.Storage; +import com.strategyobject.substrateclient.pallet.annotation.StorageHasher; +import com.strategyobject.substrateclient.pallet.storage.*; import com.strategyobject.substrateclient.scale.ScaleReader; import com.strategyobject.substrateclient.scale.ScaleWriter; import com.strategyobject.substrateclient.scale.codegen.ScaleAnnotationParser; @@ -18,9 +21,6 @@ import com.strategyobject.substrateclient.scale.codegen.writer.WriterCompositor; import com.strategyobject.substrateclient.scale.registries.ScaleReaderRegistry; import com.strategyobject.substrateclient.scale.registries.ScaleWriterRegistry; -import com.strategyobject.substrateclient.storage.*; -import com.strategyobject.substrateclient.types.FixedBytes; -import com.strategyobject.substrateclient.types.Size; import lombok.NonNull; import lombok.val; import lombok.var; @@ -32,7 +32,7 @@ import java.util.Objects; import static com.strategyobject.substrateclient.common.codegen.AnnotationUtils.suppressWarnings; -import static com.strategyobject.substrateclient.pallet.Constants.*; +import static com.strategyobject.substrateclient.pallet.codegen.Constants.*; class StorageProcessor extends PalletMethodProcessor { private static final String VALUE_READER = "valueReader"; @@ -160,7 +160,7 @@ private void assignStorageMapImpl(MethodSpec.Builder methodSpecBuilder, StorageNMapImpl.class, STORAGE_MAP, STORAGE_FACTORY_METHOD, - RPC, + STATE, VALUE_READER, KEY_PROVIDER); } @@ -298,19 +298,19 @@ private CodeBlock resolveHashingAlgorithm(AnnotationMirror keyAnnotation, val hasher = AnnotationUtils.getValueFromAnnotation(keyAnnotation, "hasher"); val hasherName = Objects.requireNonNull(hasher).getSimpleName().toString(); - if (hasherName.equals(StorageHasher.Blake2B128Concat.toString())) { + if (hasherName.equals(StorageHasher.BLAKE2_128_CONCAT.toString())) { builder.add("$T.$L()", Blake2B128Concat.class, BLAKE_2_128_CONCAT_INSTANCE); } - if (hasherName.equals(StorageHasher.TwoX64Concat.toString())) { + if (hasherName.equals(StorageHasher.TWOX_64_CONCAT.toString())) { builder.add("$T.$L()", TwoX64Concat.class, TWO_X64_CONCAT_INSTANCE); } - if (hasherName.equals(StorageHasher.Identity.toString())) { + if (hasherName.equals(StorageHasher.IDENTITY.toString())) { if (keySize < 0) { throw new ProcessingException( palletElement, @@ -318,7 +318,7 @@ private CodeBlock resolveHashingAlgorithm(AnnotationMirror keyAnnotation, "`%s` can only be applied to a key with fixed size.", storageAnnotation.getClass().getSimpleName(), palletElement.getQualifiedName().toString(), - StorageHasher.Identity.toString(), + StorageHasher.IDENTITY.toString(), method.getSimpleName()); } @@ -361,7 +361,7 @@ private void validateMethodSignature(ExecutableElement method, StorageNMap.class.getSimpleName()); } - if (method.getParameters().size() > 0) { + if (!method.getParameters().isEmpty()) { throw new ProcessingException( palletElement, "Method `%s.%s` mustn't have parameters.", diff --git a/pallet/pallet-codegen/src/test/java/com/strategyobject/substrateclient/pallet/PalletInterfaceProcessorTests.java b/pallet/pallet-codegen/src/test/java/com/strategyobject/substrateclient/pallet/codegen/PalletInterfaceProcessorTests.java similarity index 93% rename from pallet/pallet-codegen/src/test/java/com/strategyobject/substrateclient/pallet/PalletInterfaceProcessorTests.java rename to pallet/pallet-codegen/src/test/java/com/strategyobject/substrateclient/pallet/codegen/PalletInterfaceProcessorTests.java index d7a84389..7d6ca8fd 100644 --- a/pallet/pallet-codegen/src/test/java/com/strategyobject/substrateclient/pallet/PalletInterfaceProcessorTests.java +++ b/pallet/pallet-codegen/src/test/java/com/strategyobject/substrateclient/pallet/codegen/PalletInterfaceProcessorTests.java @@ -1,14 +1,15 @@ -package com.strategyobject.substrateclient.pallet; +package com.strategyobject.substrateclient.pallet.codegen; import com.google.testing.compile.Compilation; import com.google.testing.compile.JavaFileObjects; +import com.strategyobject.substrateclient.pallet.codegen.PalletInterfaceProcessor; import lombok.val; import org.junit.jupiter.api.Test; import static com.google.testing.compile.CompilationSubject.assertThat; import static com.google.testing.compile.Compiler.javac; -public class PalletInterfaceProcessorTests { +class PalletInterfaceProcessorTests { @Test void failsWhenAnnotationIsAppliedToClass() { val clazz = JavaFileObjects.forResource("ClassPallet.java"); @@ -88,8 +89,8 @@ void failsWhenStorageMethodReturnsIncorrectType() { } @Test - public void compiles() { - val generatedName = String.format("TestPalletImpl"); + void compiles() { + val generatedName = "TestPalletImpl"; val clazz = JavaFileObjects.forResource("TestPallet.java"); val compilation = javac() @@ -98,12 +99,12 @@ public void compiles() { assertThat(compilation).succeeded(); - assertContains(generatedName, compilation, "private final Rpc rpc;"); + assertContains(generatedName, compilation, "private final State state;"); assertContains(generatedName, compilation, "private final StorageNMap value;"); assertContains(generatedName, compilation, "private final StorageNMap map;"); assertContains(generatedName, compilation, "private final StorageNMap doubleMap;"); assertContains(generatedName, compilation, "private final StorageNMap tripleMap;"); - assertContains(generatedName, compilation, "public TestPalletImpl(Rpc rpc)"); + assertContains(generatedName, compilation, "public TestPalletImpl(State state)"); assertContains(generatedName, compilation, "public StorageNMap value()"); assertContains(generatedName, compilation, "public StorageNMap map()"); assertContains(generatedName, compilation, "public StorageNMap doubleMap()"); diff --git a/pallet/pallet-codegen/src/test/resources/AmbiguousScale.java b/pallet/pallet-codegen/src/test/resources/AmbiguousScale.java index abef9033..fc71d620 100644 --- a/pallet/pallet-codegen/src/test/resources/AmbiguousScale.java +++ b/pallet/pallet-codegen/src/test/resources/AmbiguousScale.java @@ -1,17 +1,17 @@ -import com.strategyobject.substrateclient.pallet.annotations.Pallet; -import com.strategyobject.substrateclient.pallet.annotations.Storage; -import com.strategyobject.substrateclient.pallet.annotations.StorageHasher; -import com.strategyobject.substrateclient.pallet.annotations.StorageKey; +import com.strategyobject.substrateclient.pallet.annotation.Pallet; +import com.strategyobject.substrateclient.pallet.annotation.Storage; +import com.strategyobject.substrateclient.pallet.annotation.StorageHasher; +import com.strategyobject.substrateclient.pallet.annotation.StorageKey; import com.strategyobject.substrateclient.scale.ScaleType; -import com.strategyobject.substrateclient.scale.annotations.Scale; -import com.strategyobject.substrateclient.scale.annotations.ScaleGeneric; -import com.strategyobject.substrateclient.storage.StorageNMap; +import com.strategyobject.substrateclient.scale.annotation.Scale; +import com.strategyobject.substrateclient.scale.annotation.ScaleGeneric; +import com.strategyobject.substrateclient.pallet.storage.StorageNMap; @Pallet("Test") public interface AmbiguousScale { @Storage(value = "Test", keys = { @StorageKey( - hasher = StorageHasher.Blake2B128Concat, + hasher = StorageHasher.BLAKE2_128_CONCAT, type = @Scale(ScaleType.I32.class), generic = @ScaleGeneric( template = "Option", diff --git a/pallet/pallet-codegen/src/test/resources/ClassPallet.java b/pallet/pallet-codegen/src/test/resources/ClassPallet.java index 98223c74..c9457072 100644 --- a/pallet/pallet-codegen/src/test/resources/ClassPallet.java +++ b/pallet/pallet-codegen/src/test/resources/ClassPallet.java @@ -1,6 +1,6 @@ -import com.strategyobject.substrateclient.pallet.annotations.Pallet; -import com.strategyobject.substrateclient.pallet.annotations.Storage; -import com.strategyobject.substrateclient.storage.StorageNMap; +import com.strategyobject.substrateclient.pallet.annotation.Pallet; +import com.strategyobject.substrateclient.pallet.annotation.Storage; +import com.strategyobject.substrateclient.pallet.storage.StorageNMap; @Pallet("Class") public abstract class ClassPallet { diff --git a/pallet/pallet-codegen/src/test/resources/NotAStorage.java b/pallet/pallet-codegen/src/test/resources/NotAStorage.java index dc7afc92..acb153eb 100644 --- a/pallet/pallet-codegen/src/test/resources/NotAStorage.java +++ b/pallet/pallet-codegen/src/test/resources/NotAStorage.java @@ -1,15 +1,15 @@ -import com.strategyobject.substrateclient.pallet.annotations.Pallet; -import com.strategyobject.substrateclient.pallet.annotations.Storage; -import com.strategyobject.substrateclient.pallet.annotations.StorageHasher; -import com.strategyobject.substrateclient.pallet.annotations.StorageKey; +import com.strategyobject.substrateclient.pallet.annotation.Pallet; +import com.strategyobject.substrateclient.pallet.annotation.Storage; +import com.strategyobject.substrateclient.pallet.annotation.StorageHasher; +import com.strategyobject.substrateclient.pallet.annotation.StorageKey; import com.strategyobject.substrateclient.scale.ScaleType; -import com.strategyobject.substrateclient.scale.annotations.Scale; +import com.strategyobject.substrateclient.scale.annotation.Scale; @Pallet("Test") public interface NotAStorage { @Storage(value = "Test", keys = { @StorageKey( - hasher = StorageHasher.Blake2B128Concat, + hasher = StorageHasher.BLAKE2_128_CONCAT, type = @Scale(ScaleType.I32.class) ) }) diff --git a/pallet/pallet-codegen/src/test/resources/TestPallet.java b/pallet/pallet-codegen/src/test/resources/TestPallet.java index e39037fd..45aa9330 100644 --- a/pallet/pallet-codegen/src/test/resources/TestPallet.java +++ b/pallet/pallet-codegen/src/test/resources/TestPallet.java @@ -1,13 +1,13 @@ -import com.strategyobject.substrateclient.pallet.annotations.Pallet; -import com.strategyobject.substrateclient.pallet.annotations.Storage; -import com.strategyobject.substrateclient.pallet.annotations.StorageHasher; -import com.strategyobject.substrateclient.pallet.annotations.StorageKey; -import com.strategyobject.substrateclient.rpc.types.AccountId; +import com.strategyobject.substrateclient.common.types.Result; +import com.strategyobject.substrateclient.pallet.annotation.Pallet; +import com.strategyobject.substrateclient.pallet.annotation.Storage; +import com.strategyobject.substrateclient.pallet.annotation.StorageHasher; +import com.strategyobject.substrateclient.pallet.annotation.StorageKey; +import com.strategyobject.substrateclient.pallet.storage.StorageNMap; +import com.strategyobject.substrateclient.rpc.api.AccountId; import com.strategyobject.substrateclient.scale.ScaleType; -import com.strategyobject.substrateclient.scale.annotations.Scale; -import com.strategyobject.substrateclient.scale.annotations.ScaleGeneric; -import com.strategyobject.substrateclient.storage.StorageNMap; -import com.strategyobject.substrateclient.types.Result; +import com.strategyobject.substrateclient.scale.annotation.Scale; +import com.strategyobject.substrateclient.scale.annotation.ScaleGeneric; @Pallet("Test") public interface TestPallet { @@ -18,7 +18,7 @@ public interface TestPallet { value = "Map", keys = { @StorageKey(type = @Scale(ScaleType.I32.class), - hasher = StorageHasher.TwoX64Concat) + hasher = StorageHasher.TWOX_64_CONCAT) }) StorageNMap map(); @@ -26,7 +26,7 @@ public interface TestPallet { value = "DoubleMap", keys = { @StorageKey(type = @Scale(ScaleType.I32.class), - hasher = StorageHasher.TwoX64Concat), + hasher = StorageHasher.TWOX_64_CONCAT), @StorageKey( generic = @ScaleGeneric( template = "Result", @@ -36,7 +36,7 @@ public interface TestPallet { @Scale(ScaleType.String.class) } ), - hasher = StorageHasher.Blake2B128Concat + hasher = StorageHasher.BLAKE2_128_CONCAT ) }) StorageNMap doubleMap(); @@ -45,11 +45,11 @@ public interface TestPallet { value = "TripleMap", keys = { @StorageKey(type = @Scale(String.class), - hasher = StorageHasher.Blake2B128Concat), + hasher = StorageHasher.BLAKE2_128_CONCAT), @StorageKey(type = @Scale(ScaleType.I32.class), - hasher = StorageHasher.TwoX64Concat), + hasher = StorageHasher.TWOX_64_CONCAT), @StorageKey(type = @Scale(AccountId.class), - hasher = StorageHasher.Identity) + hasher = StorageHasher.IDENTITY) }) StorageNMap tripleMap(); } diff --git a/pallet/pallet-codegen/src/test/resources/UnnamedPallet.java b/pallet/pallet-codegen/src/test/resources/UnnamedPallet.java index 0785901a..d698b520 100644 --- a/pallet/pallet-codegen/src/test/resources/UnnamedPallet.java +++ b/pallet/pallet-codegen/src/test/resources/UnnamedPallet.java @@ -1,6 +1,6 @@ -import com.strategyobject.substrateclient.pallet.annotations.Pallet; -import com.strategyobject.substrateclient.pallet.annotations.Storage; -import com.strategyobject.substrateclient.storage.StorageNMap; +import com.strategyobject.substrateclient.pallet.annotation.Pallet; +import com.strategyobject.substrateclient.pallet.annotation.Storage; +import com.strategyobject.substrateclient.pallet.storage.StorageNMap; @Pallet("") public interface UnnamedPallet { diff --git a/pallet/pallet-codegen/src/test/resources/UnnamedStorage.java b/pallet/pallet-codegen/src/test/resources/UnnamedStorage.java index b9b5c1f9..680dff5c 100644 --- a/pallet/pallet-codegen/src/test/resources/UnnamedStorage.java +++ b/pallet/pallet-codegen/src/test/resources/UnnamedStorage.java @@ -1,6 +1,6 @@ -import com.strategyobject.substrateclient.pallet.annotations.Pallet; -import com.strategyobject.substrateclient.pallet.annotations.Storage; -import com.strategyobject.substrateclient.storage.StorageNMap; +import com.strategyobject.substrateclient.pallet.annotation.Pallet; +import com.strategyobject.substrateclient.pallet.annotation.Storage; +import com.strategyobject.substrateclient.pallet.storage.StorageNMap; @Pallet("Test") public interface UnnamedStorage { diff --git a/pallet/pallet-codegen/src/test/resources/WithoutScale.java b/pallet/pallet-codegen/src/test/resources/WithoutScale.java index 21bfc264..463027ca 100644 --- a/pallet/pallet-codegen/src/test/resources/WithoutScale.java +++ b/pallet/pallet-codegen/src/test/resources/WithoutScale.java @@ -1,13 +1,13 @@ -import com.strategyobject.substrateclient.pallet.annotations.Pallet; -import com.strategyobject.substrateclient.pallet.annotations.Storage; -import com.strategyobject.substrateclient.pallet.annotations.StorageHasher; -import com.strategyobject.substrateclient.pallet.annotations.StorageKey; -import com.strategyobject.substrateclient.storage.StorageNMap; +import com.strategyobject.substrateclient.pallet.annotation.Pallet; +import com.strategyobject.substrateclient.pallet.annotation.Storage; +import com.strategyobject.substrateclient.pallet.annotation.StorageHasher; +import com.strategyobject.substrateclient.pallet.annotation.StorageKey; +import com.strategyobject.substrateclient.pallet.storage.StorageNMap; @Pallet("Test") public interface WithoutScale { @Storage(value = "Test", keys = { - @StorageKey(hasher = StorageHasher.Blake2B128Concat) + @StorageKey(hasher = StorageHasher.BLAKE2_128_CONCAT) }) StorageNMap test(); } diff --git a/pallet/src/main/java/com/strategyobject/substrateclient/pallet/GeneratedPalletResolver.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/GeneratedPalletResolver.java index 13085dd0..0243fa4b 100644 --- a/pallet/src/main/java/com/strategyobject/substrateclient/pallet/GeneratedPalletResolver.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/GeneratedPalletResolver.java @@ -1,7 +1,7 @@ package com.strategyobject.substrateclient.pallet; -import com.strategyobject.substrateclient.pallet.annotations.Pallet; -import com.strategyobject.substrateclient.rpc.Rpc; +import com.strategyobject.substrateclient.pallet.annotation.Pallet; +import com.strategyobject.substrateclient.rpc.api.section.State; import lombok.NonNull; import lombok.RequiredArgsConstructor; import lombok.val; @@ -9,7 +9,7 @@ @RequiredArgsConstructor(staticName = "with") public class GeneratedPalletResolver implements PalletResolver { private static final String CLASS_NAME_TEMPLATE = "%sImpl"; - private final @NonNull Rpc rpc; + private final @NonNull State state; @Override public T resolve(Class interfaceClass) { @@ -23,9 +23,9 @@ public T resolve(Class interfaceClass) { Class implClazz; try { implClazz = Class.forName(String.format(CLASS_NAME_TEMPLATE, interfaceClass.getCanonicalName())); - val ctor = implClazz.getConstructor(Rpc.class); + val ctor = implClazz.getConstructor(State.class); - return interfaceClass.cast(ctor.newInstance(rpc)); + return interfaceClass.cast(ctor.newInstance(state)); } catch (ReflectiveOperationException e) { throw new RuntimeException(e); } diff --git a/pallet/src/main/java/com/strategyobject/substrateclient/pallet/annotation/Event.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/annotation/Event.java new file mode 100644 index 00000000..0ede9e77 --- /dev/null +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/annotation/Event.java @@ -0,0 +1,18 @@ +package com.strategyobject.substrateclient.pallet.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Indicates a pallet event. + */ +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.RUNTIME) +public @interface Event { + /** + * @return the index of an event + */ + int value(); +} diff --git a/pallet/src/main/java/com/strategyobject/substrateclient/pallet/annotations/Pallet.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/annotation/Pallet.java similarity index 64% rename from pallet/src/main/java/com/strategyobject/substrateclient/pallet/annotations/Pallet.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/annotation/Pallet.java index 0d91ce76..6837de3d 100644 --- a/pallet/src/main/java/com/strategyobject/substrateclient/pallet/annotations/Pallet.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/annotation/Pallet.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.pallet.annotations; +package com.strategyobject.substrateclient.pallet.annotation; import lombok.NonNull; @@ -8,14 +8,14 @@ import java.lang.annotation.Target; /** - * Indicates the pallet which represents a proxy to the blockchain's pallet. - * The processor will generate proper implementations for the interfaces defined with this annotation. + * Indicates a pallet which represents a proxy to the blockchain's pallet. + * The processor will generate proper implementations for the interfaces marked with this annotation. */ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface Pallet { /** - * @return the name of the pallet + * @return the name of a pallet */ @NonNull String value(); diff --git a/pallet/src/main/java/com/strategyobject/substrateclient/pallet/annotations/Storage.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/annotation/Storage.java similarity index 66% rename from pallet/src/main/java/com/strategyobject/substrateclient/pallet/annotations/Storage.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/annotation/Storage.java index 651e078d..b334d5ed 100644 --- a/pallet/src/main/java/com/strategyobject/substrateclient/pallet/annotations/Storage.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/annotation/Storage.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.pallet.annotations; +package com.strategyobject.substrateclient.pallet.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; @@ -6,18 +6,18 @@ import java.lang.annotation.Target; /** - * Indicates the storage of the pallet. + * Indicates a pallet storage. */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.SOURCE) public @interface Storage { /** - * @return the name of the storage + * @return the name of a storage */ String value(); /** - * @return the array of items which describe SCALE-codecs + * @return the array of items that describe SCALE-codecs * and hashing algorithms of storage's keys. */ StorageKey[] keys() default {}; diff --git a/pallet/src/main/java/com/strategyobject/substrateclient/pallet/annotations/StorageHasher.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/annotation/StorageHasher.java similarity index 67% rename from pallet/src/main/java/com/strategyobject/substrateclient/pallet/annotations/StorageHasher.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/annotation/StorageHasher.java index 69b6d4aa..e4e70fd5 100644 --- a/pallet/src/main/java/com/strategyobject/substrateclient/pallet/annotations/StorageHasher.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/annotation/StorageHasher.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.pallet.annotations; +package com.strategyobject.substrateclient.pallet.annotation; /** * Represents a kind of key's hash algorithm @@ -7,13 +7,13 @@ public enum StorageHasher { /** * Blake2 128 Concat hash algorithm. */ - Blake2B128Concat, + BLAKE2_128_CONCAT, /** * TwoX 64 Concat hash algorithm. */ - TwoX64Concat, + TWOX_64_CONCAT, /** * Identity hash algorithm. */ - Identity + IDENTITY } diff --git a/pallet/src/main/java/com/strategyobject/substrateclient/pallet/annotations/StorageKey.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/annotation/StorageKey.java similarity index 75% rename from pallet/src/main/java/com/strategyobject/substrateclient/pallet/annotations/StorageKey.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/annotation/StorageKey.java index 99866013..8f68ad28 100644 --- a/pallet/src/main/java/com/strategyobject/substrateclient/pallet/annotations/StorageKey.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/annotation/StorageKey.java @@ -1,7 +1,7 @@ -package com.strategyobject.substrateclient.pallet.annotations; +package com.strategyobject.substrateclient.pallet.annotation; -import com.strategyobject.substrateclient.scale.annotations.Scale; -import com.strategyobject.substrateclient.scale.annotations.ScaleGeneric; +import com.strategyobject.substrateclient.scale.annotation.Scale; +import com.strategyobject.substrateclient.scale.annotation.ScaleGeneric; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; diff --git a/storage/src/main/java/com/strategyobject/substrateclient/storage/Arg.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/Arg.java similarity index 90% rename from storage/src/main/java/com/strategyobject/substrateclient/storage/Arg.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/Arg.java index 97b4556e..7f64566e 100644 --- a/storage/src/main/java/com/strategyobject/substrateclient/storage/Arg.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/Arg.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; import lombok.Getter; import lombok.NonNull; diff --git a/storage/src/main/java/com/strategyobject/substrateclient/storage/Blake2B128Concat.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/Blake2B128Concat.java similarity index 73% rename from storage/src/main/java/com/strategyobject/substrateclient/storage/Blake2B128Concat.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/Blake2B128Concat.java index b232f01e..990ade0a 100644 --- a/storage/src/main/java/com/strategyobject/substrateclient/storage/Blake2B128Concat.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/Blake2B128Concat.java @@ -1,8 +1,8 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; +import com.strategyobject.substrateclient.common.types.Size; +import com.strategyobject.substrateclient.crypto.Hasher; import lombok.NonNull; -import lombok.val; -import org.bouncycastle.crypto.digests.Blake2bDigest; import java.nio.ByteBuffer; @@ -15,15 +15,6 @@ public class Blake2B128Concat implements KeyHashingAlgorithm { private static final int BLAKE_128_HASH_SIZE = 16; private static volatile Blake2B128Concat instance; - private static byte[] blake2_128(byte[] value) { - val digest = new Blake2bDigest(128); - digest.update(value, 0, value.length); - - val result = new byte[digest.getDigestSize()]; - digest.doFinal(result, 0); - return result; - } - /** * @return the instance of the algorithm. */ @@ -45,7 +36,7 @@ public static Blake2B128Concat getInstance() { @Override public byte[] getHash(byte @NonNull [] encodedKey) { return ByteBuffer.allocate(BLAKE_128_HASH_SIZE + encodedKey.length) - .put(blake2_128(encodedKey)) + .put(Hasher.blake2(Size.of128, encodedKey)) .put(encodedKey) .array(); } diff --git a/storage/src/main/java/com/strategyobject/substrateclient/storage/DiverseKeyValueCollection.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/DiverseKeyValueCollection.java similarity index 87% rename from storage/src/main/java/com/strategyobject/substrateclient/storage/DiverseKeyValueCollection.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/DiverseKeyValueCollection.java index 07b59580..5b49e527 100644 --- a/storage/src/main/java/com/strategyobject/substrateclient/storage/DiverseKeyValueCollection.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/DiverseKeyValueCollection.java @@ -1,10 +1,10 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; import com.google.common.base.Preconditions; -import com.strategyobject.substrateclient.rpc.types.StorageData; -import com.strategyobject.substrateclient.rpc.types.StorageKey; +import com.strategyobject.substrateclient.common.types.tuple.Pair; +import com.strategyobject.substrateclient.rpc.api.StorageData; +import com.strategyobject.substrateclient.rpc.api.StorageKey; import com.strategyobject.substrateclient.scale.ScaleReader; -import com.strategyobject.substrateclient.types.tuples.Pair; import lombok.NonNull; import lombok.val; @@ -39,9 +39,9 @@ private DiverseKeyValueCollection(List> pairs, } /** - * @param pairs list of pairs of storage's keys and data. - * @param valueReaders list of scale readers which read the value from StorageData - * of the appropriate pair. + * @param pairs list of pairs of storage's keys and data. + * @param valueReaders list of scale readers which read the value from StorageData + * of the appropriate pair. * @param keyExtractors list of functions which extract keys * from StorageKey of the appropriate pair. * @return certain collection. diff --git a/storage/src/main/java/com/strategyobject/substrateclient/storage/Entry.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/Entry.java similarity index 80% rename from storage/src/main/java/com/strategyobject/substrateclient/storage/Entry.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/Entry.java index 62e10188..08b2f454 100644 --- a/storage/src/main/java/com/strategyobject/substrateclient/storage/Entry.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/Entry.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; /** * Entry of keys and value of storage. diff --git a/storage/src/main/java/com/strategyobject/substrateclient/storage/HomogeneousKeyValueCollection.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/HomogeneousKeyValueCollection.java similarity index 88% rename from storage/src/main/java/com/strategyobject/substrateclient/storage/HomogeneousKeyValueCollection.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/HomogeneousKeyValueCollection.java index 50cadda3..dfaaa402 100644 --- a/storage/src/main/java/com/strategyobject/substrateclient/storage/HomogeneousKeyValueCollection.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/HomogeneousKeyValueCollection.java @@ -1,9 +1,9 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; -import com.strategyobject.substrateclient.rpc.types.StorageData; -import com.strategyobject.substrateclient.rpc.types.StorageKey; +import com.strategyobject.substrateclient.common.types.tuple.Pair; +import com.strategyobject.substrateclient.rpc.api.StorageData; +import com.strategyobject.substrateclient.rpc.api.StorageKey; import com.strategyobject.substrateclient.scale.ScaleReader; -import com.strategyobject.substrateclient.types.tuples.Pair; import lombok.NonNull; import lombok.RequiredArgsConstructor; import lombok.val; diff --git a/storage/src/main/java/com/strategyobject/substrateclient/storage/Identity.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/Identity.java similarity index 95% rename from storage/src/main/java/com/strategyobject/substrateclient/storage/Identity.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/Identity.java index 461de980..ee72390e 100644 --- a/storage/src/main/java/com/strategyobject/substrateclient/storage/Identity.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/Identity.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; import lombok.NonNull; diff --git a/storage/src/main/java/com/strategyobject/substrateclient/storage/KeyCollection.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/KeyCollection.java similarity index 90% rename from storage/src/main/java/com/strategyobject/substrateclient/storage/KeyCollection.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/KeyCollection.java index b3fc6790..153f4d11 100644 --- a/storage/src/main/java/com/strategyobject/substrateclient/storage/KeyCollection.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/KeyCollection.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; import java.util.Iterator; diff --git a/storage/src/main/java/com/strategyobject/substrateclient/storage/KeyCollectionImpl.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/KeyCollectionImpl.java similarity index 83% rename from storage/src/main/java/com/strategyobject/substrateclient/storage/KeyCollectionImpl.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/KeyCollectionImpl.java index 83cee89f..46c65c21 100644 --- a/storage/src/main/java/com/strategyobject/substrateclient/storage/KeyCollectionImpl.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/KeyCollectionImpl.java @@ -1,7 +1,7 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; -import com.strategyobject.substrateclient.rpc.Rpc; -import com.strategyobject.substrateclient.rpc.types.StorageKey; +import com.strategyobject.substrateclient.rpc.api.section.State; +import com.strategyobject.substrateclient.rpc.api.StorageKey; import com.strategyobject.substrateclient.scale.ScaleReader; import lombok.NonNull; import lombok.RequiredArgsConstructor; @@ -18,7 +18,7 @@ */ @RequiredArgsConstructor(staticName = "with") public class KeyCollectionImpl implements KeyCollection { - private final @NonNull Rpc rpc; + private final @NonNull State state; private final @NonNull List storageKeys; private final @NonNull ScaleReader valueReader; private final @NonNull Function> keyExtractor; @@ -30,8 +30,7 @@ public int size() { @Override public MultiQuery multi() { - return () -> rpc - .state() + return () -> state .queryStorageAt(storageKeys) .thenApplyAsync(changeSets -> HomogeneousKeyValueCollection.with( changeSets.stream() @@ -57,7 +56,7 @@ public QueryableKey next() { if (hasNext()) { val key = underlying.next(); - return QueryableKeyImpl.with(rpc, key, valueReader, keyExtractor); + return QueryableKeyImpl.with(state, key, valueReader, keyExtractor); } throw new NoSuchElementException(); diff --git a/storage/src/main/java/com/strategyobject/substrateclient/storage/KeyConsumer.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/KeyConsumer.java similarity index 86% rename from storage/src/main/java/com/strategyobject/substrateclient/storage/KeyConsumer.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/KeyConsumer.java index dd6f0713..b3a95f0d 100644 --- a/storage/src/main/java/com/strategyobject/substrateclient/storage/KeyConsumer.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/KeyConsumer.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; import lombok.NonNull; diff --git a/storage/src/main/java/com/strategyobject/substrateclient/storage/KeyHasher.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/KeyHasher.java similarity index 96% rename from storage/src/main/java/com/strategyobject/substrateclient/storage/KeyHasher.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/KeyHasher.java index 88f71a1f..808cfc2b 100644 --- a/storage/src/main/java/com/strategyobject/substrateclient/storage/KeyHasher.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/KeyHasher.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; import com.strategyobject.substrateclient.scale.ScaleReader; import com.strategyobject.substrateclient.scale.ScaleWriter; diff --git a/storage/src/main/java/com/strategyobject/substrateclient/storage/KeyHashingAlgorithm.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/KeyHashingAlgorithm.java similarity index 92% rename from storage/src/main/java/com/strategyobject/substrateclient/storage/KeyHashingAlgorithm.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/KeyHashingAlgorithm.java index b23815c1..bbd48f15 100644 --- a/storage/src/main/java/com/strategyobject/substrateclient/storage/KeyHashingAlgorithm.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/KeyHashingAlgorithm.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; import lombok.NonNull; diff --git a/storage/src/main/java/com/strategyobject/substrateclient/storage/KeyValueCollection.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/KeyValueCollection.java similarity index 82% rename from storage/src/main/java/com/strategyobject/substrateclient/storage/KeyValueCollection.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/KeyValueCollection.java index 64af48b9..1b1117e3 100644 --- a/storage/src/main/java/com/strategyobject/substrateclient/storage/KeyValueCollection.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/KeyValueCollection.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; import java.util.Iterator; diff --git a/storage/src/main/java/com/strategyobject/substrateclient/storage/KeyValueConsumer.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/KeyValueConsumer.java similarity index 89% rename from storage/src/main/java/com/strategyobject/substrateclient/storage/KeyValueConsumer.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/KeyValueConsumer.java index 71c63473..7abeef0c 100644 --- a/storage/src/main/java/com/strategyobject/substrateclient/storage/KeyValueConsumer.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/KeyValueConsumer.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; import lombok.NonNull; diff --git a/storage/src/main/java/com/strategyobject/substrateclient/storage/MultiQuery.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/MultiQuery.java similarity index 85% rename from storage/src/main/java/com/strategyobject/substrateclient/storage/MultiQuery.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/MultiQuery.java index 5da27476..db87282b 100644 --- a/storage/src/main/java/com/strategyobject/substrateclient/storage/MultiQuery.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/MultiQuery.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; import java.util.concurrent.CompletableFuture; diff --git a/storage/src/main/java/com/strategyobject/substrateclient/storage/PagedKeyIterator.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/PagedKeyIterator.java similarity index 92% rename from storage/src/main/java/com/strategyobject/substrateclient/storage/PagedKeyIterator.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/PagedKeyIterator.java index ce284a4b..acfb159d 100644 --- a/storage/src/main/java/com/strategyobject/substrateclient/storage/PagedKeyIterator.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/PagedKeyIterator.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; import java.util.concurrent.CompletableFuture; diff --git a/storage/src/main/java/com/strategyobject/substrateclient/storage/PagedKeyValueIterator.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/PagedKeyValueIterator.java similarity index 92% rename from storage/src/main/java/com/strategyobject/substrateclient/storage/PagedKeyValueIterator.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/PagedKeyValueIterator.java index 6d0ea8de..54606165 100644 --- a/storage/src/main/java/com/strategyobject/substrateclient/storage/PagedKeyValueIterator.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/PagedKeyValueIterator.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; import java.util.concurrent.CompletableFuture; diff --git a/storage/src/main/java/com/strategyobject/substrateclient/storage/QueryableKey.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/QueryableKey.java similarity index 90% rename from storage/src/main/java/com/strategyobject/substrateclient/storage/QueryableKey.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/QueryableKey.java index 3b08d82c..e9c61618 100644 --- a/storage/src/main/java/com/strategyobject/substrateclient/storage/QueryableKey.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/QueryableKey.java @@ -1,6 +1,6 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; -import com.strategyobject.substrateclient.rpc.types.StorageKey; +import com.strategyobject.substrateclient.rpc.api.StorageKey; import com.strategyobject.substrateclient.scale.ScaleReader; import lombok.NonNull; @@ -10,6 +10,7 @@ /** * Represents a query to the storage. * Can be executed or joined to other queries. + * * @param the type of the value. */ public interface QueryableKey { diff --git a/storage/src/main/java/com/strategyobject/substrateclient/storage/QueryableKeyImpl.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/QueryableKeyImpl.java similarity index 91% rename from storage/src/main/java/com/strategyobject/substrateclient/storage/QueryableKeyImpl.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/QueryableKeyImpl.java index 294f9b00..9fa02690 100644 --- a/storage/src/main/java/com/strategyobject/substrateclient/storage/QueryableKeyImpl.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/QueryableKeyImpl.java @@ -1,7 +1,7 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; -import com.strategyobject.substrateclient.rpc.Rpc; -import com.strategyobject.substrateclient.rpc.types.StorageKey; +import com.strategyobject.substrateclient.rpc.api.section.State; +import com.strategyobject.substrateclient.rpc.api.StorageKey; import com.strategyobject.substrateclient.scale.ScaleReader; import lombok.NonNull; import lombok.RequiredArgsConstructor; @@ -22,15 +22,14 @@ */ @RequiredArgsConstructor(staticName = "with") class QueryableKeyImpl implements QueryableKey { - private final Rpc rpc; + private final State state; private final StorageKey key; private final ScaleReader valueReader; private final Function> keyExtractor; @Override public CompletableFuture execute() { - return rpc - .state() + return state .getStorage(key) .thenApplyAsync(d -> { if (d == null) { @@ -64,8 +63,7 @@ public void consume(@NonNull KeyConsumer consumer) { @Override public MultiQuery join(QueryableKey... others) { - return () -> rpc - .state() + return () -> state .queryStorageAt(concatKeys(others)) .thenApplyAsync(changeSets -> DiverseKeyValueCollection.with( changeSets.stream() diff --git a/storage/src/main/java/com/strategyobject/substrateclient/storage/StorageChangeConsumer.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/StorageChangeConsumer.java similarity index 61% rename from storage/src/main/java/com/strategyobject/substrateclient/storage/StorageChangeConsumer.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/StorageChangeConsumer.java index dda9a914..3a013118 100644 --- a/storage/src/main/java/com/strategyobject/substrateclient/storage/StorageChangeConsumer.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/StorageChangeConsumer.java @@ -1,6 +1,6 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; -import com.strategyobject.substrateclient.rpc.types.BlockHash; +import com.strategyobject.substrateclient.rpc.api.BlockHash; import java.util.List; @@ -9,16 +9,18 @@ * exception, hash of the block where change happened, * the value and list of the keys of the entry. * Doesn't return result. + * * @param the type of the value. */ @FunctionalInterface public interface StorageChangeConsumer { /** * Performs this operation on the given arguments. + * * @param exception happened on event. - * @param block hash of the block where the change happened. - * @param value new value of the storage's entry. - * @param keys list of the storage entry's keys. + * @param block hash of the block where the change happened. + * @param value new value of the storage's entry. + * @param keys list of the storage entry's keys. */ void accept(Exception exception, BlockHash block, V value, List keys); } diff --git a/storage/src/main/java/com/strategyobject/substrateclient/storage/StorageDoubleMap.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/StorageDoubleMap.java similarity index 73% rename from storage/src/main/java/com/strategyobject/substrateclient/storage/StorageDoubleMap.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/StorageDoubleMap.java index 8b827b6f..377e026a 100644 --- a/storage/src/main/java/com/strategyobject/substrateclient/storage/StorageDoubleMap.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/StorageDoubleMap.java @@ -1,7 +1,7 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; import com.google.common.annotations.Beta; -import com.strategyobject.substrateclient.rpc.types.BlockHash; +import com.strategyobject.substrateclient.rpc.api.BlockHash; import lombok.NonNull; import java.util.concurrent.CompletableFuture; diff --git a/storage/src/main/java/com/strategyobject/substrateclient/storage/StorageDoubleMapImpl.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/StorageDoubleMapImpl.java similarity index 73% rename from storage/src/main/java/com/strategyobject/substrateclient/storage/StorageDoubleMapImpl.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/StorageDoubleMapImpl.java index ff3e1263..33e49f47 100644 --- a/storage/src/main/java/com/strategyobject/substrateclient/storage/StorageDoubleMapImpl.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/StorageDoubleMapImpl.java @@ -1,8 +1,8 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; import com.google.common.annotations.Beta; -import com.strategyobject.substrateclient.rpc.Rpc; -import com.strategyobject.substrateclient.rpc.types.BlockHash; +import com.strategyobject.substrateclient.rpc.api.BlockHash; +import com.strategyobject.substrateclient.rpc.api.section.State; import com.strategyobject.substrateclient.scale.ScaleReader; import lombok.NonNull; import lombok.RequiredArgsConstructor; @@ -14,16 +14,16 @@ public class StorageDoubleMapImpl implements StorageDoubleMap { private final StorageNMap underlying; - private StorageDoubleMapImpl(@NonNull Rpc rpc, + private StorageDoubleMapImpl(@NonNull State state, @NonNull ScaleReader scaleReader, @NonNull StorageKeyProvider storageKeyProvider) { - underlying = StorageNMapImpl.with(rpc, scaleReader, storageKeyProvider); + underlying = StorageNMapImpl.with(state, scaleReader, storageKeyProvider); } - public static StorageDoubleMap with(@NonNull Rpc rpc, + public static StorageDoubleMap with(@NonNull State state, @NonNull ScaleReader scaleReader, @NonNull StorageKeyProvider storageKeyProvider) { - return new StorageDoubleMapImpl<>(rpc, scaleReader, storageKeyProvider); + return new StorageDoubleMapImpl<>(state, scaleReader, storageKeyProvider); } @Override diff --git a/storage/src/main/java/com/strategyobject/substrateclient/storage/StorageKeyProvider.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/StorageKeyProvider.java similarity index 86% rename from storage/src/main/java/com/strategyobject/substrateclient/storage/StorageKeyProvider.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/StorageKeyProvider.java index f24d2bd7..8cf28896 100644 --- a/storage/src/main/java/com/strategyobject/substrateclient/storage/StorageKeyProvider.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/StorageKeyProvider.java @@ -1,9 +1,9 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; import com.google.common.base.Preconditions; -import com.strategyobject.substrateclient.rpc.types.StorageKey; +import com.strategyobject.substrateclient.crypto.Hasher; +import com.strategyobject.substrateclient.rpc.api.StorageKey; import lombok.*; -import net.openhft.hashing.LongHashFunction; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -40,8 +40,8 @@ private static void xxHash128(ByteBuffer buf, String value) { buf.order(ByteOrder.LITTLE_ENDIAN); buf.asLongBuffer() - .put(LongHashFunction.xx(0).hashBytes(encodedValue)) - .put(LongHashFunction.xx(1).hashBytes(encodedValue)); + .put(Hasher.xx(0, encodedValue)) + .put(Hasher.xx(1, encodedValue)); buf.position(buf.position() + XX_HASH_SIZE); buf.order(sourceOrder); @@ -124,12 +124,12 @@ public List extractKeys(StorageKey fullKey) { } /** - * @param fullKey StorageKey that contains pallet and storage names and all keys - * of the entry. - * @param queryKey StorageKey that contains pallet and storage names - * and may contain some keys of the entry. - * Note: all the keys must follow the same exact order as - * their sequence in the storage. + * @param fullKey StorageKey that contains pallet and storage names and all keys + * of the entry. + * @param queryKey StorageKey that contains pallet and storage names + * and may contain some keys of the entry. + * Note: all the keys must follow the same exact order as + * their sequence in the storage. * @param countOfKeysInQuery number of keys included in the queryKey. * @return the remaining keys of the entry which are not included in the queryKey. */ diff --git a/storage/src/main/java/com/strategyobject/substrateclient/storage/StorageMap.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/StorageMap.java similarity index 67% rename from storage/src/main/java/com/strategyobject/substrateclient/storage/StorageMap.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/StorageMap.java index 19f1d277..305055cc 100644 --- a/storage/src/main/java/com/strategyobject/substrateclient/storage/StorageMap.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/StorageMap.java @@ -1,8 +1,8 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; import com.google.common.annotations.Beta; -import com.strategyobject.substrateclient.rpc.types.BlockHash; -import com.strategyobject.substrateclient.types.tuples.Pair; +import com.strategyobject.substrateclient.common.types.tuple.Pair; +import com.strategyobject.substrateclient.rpc.api.BlockHash; import lombok.NonNull; import java.util.List; diff --git a/storage/src/main/java/com/strategyobject/substrateclient/storage/StorageMapImpl.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/StorageMapImpl.java similarity index 55% rename from storage/src/main/java/com/strategyobject/substrateclient/storage/StorageMapImpl.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/StorageMapImpl.java index b77b3ea7..69b5989f 100644 --- a/storage/src/main/java/com/strategyobject/substrateclient/storage/StorageMapImpl.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/StorageMapImpl.java @@ -1,10 +1,10 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; import com.google.common.annotations.Beta; -import com.strategyobject.substrateclient.rpc.Rpc; -import com.strategyobject.substrateclient.rpc.types.BlockHash; +import com.strategyobject.substrateclient.common.types.tuple.Pair; +import com.strategyobject.substrateclient.rpc.api.BlockHash; +import com.strategyobject.substrateclient.rpc.api.section.State; import com.strategyobject.substrateclient.scale.ScaleReader; -import com.strategyobject.substrateclient.types.tuples.Pair; import lombok.NonNull; import java.util.List; @@ -14,16 +14,16 @@ public class StorageMapImpl implements StorageMap { private final StorageNMap underlying; - private StorageMapImpl(@NonNull Rpc rpc, + private StorageMapImpl(@NonNull State state, @NonNull ScaleReader scaleReader, @NonNull StorageKeyProvider storageKeyProvider) { - underlying = StorageNMapImpl.with(rpc, scaleReader, storageKeyProvider); + underlying = StorageNMapImpl.with(state, scaleReader, storageKeyProvider); } - public static StorageMap with(@NonNull Rpc rpc, - @NonNull ScaleReader scaleReader, - @NonNull StorageKeyProvider storageKeyProvider) { - return new StorageMapImpl<>(rpc, scaleReader, storageKeyProvider); + public static StorageMap with(@NonNull State state, + @NonNull ScaleReader scaleReader, + @NonNull StorageKeyProvider storageKeyProvider) { + return new StorageMapImpl<>(state, scaleReader, storageKeyProvider); } @Override diff --git a/storage/src/main/java/com/strategyobject/substrateclient/storage/StorageNMap.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/StorageNMap.java similarity index 82% rename from storage/src/main/java/com/strategyobject/substrateclient/storage/StorageNMap.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/StorageNMap.java index d05c984c..2726d971 100644 --- a/storage/src/main/java/com/strategyobject/substrateclient/storage/StorageNMap.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/StorageNMap.java @@ -1,8 +1,8 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; -import com.strategyobject.substrateclient.rpc.types.BlockHash; -import com.strategyobject.substrateclient.rpc.types.Hash; -import com.strategyobject.substrateclient.types.tuples.Pair; +import com.strategyobject.substrateclient.common.types.tuple.Pair; +import com.strategyobject.substrateclient.rpc.api.BlockHash; +import com.strategyobject.substrateclient.rpc.api.Hash; import lombok.NonNull; import java.util.List; @@ -12,11 +12,13 @@ /** * Represents a storage of data in blockchain * that persists between the blocks. + * * @param the type of the value. */ public interface StorageNMap { /** * Returns the value by given key(s). + * * @param keys the keys of the storage's entry. * @return the value. */ @@ -25,15 +27,17 @@ public interface StorageNMap { /** * Returns the value by given key(s) * starting at block hash given as the first parameter. + * * @param block hash of the block * used as a starting point for the value request. - * @param keys the keys of the storage's entry. + * @param keys the keys of the storage's entry. * @return the value. */ CompletableFuture at(@NonNull BlockHash block, @NonNull Object... keys); /** * Retrieves the storage hash. + * * @param keys the keys of the storage's entry. * @return the hash. */ @@ -42,15 +46,17 @@ public interface StorageNMap { /** * Retrieves the storage hash * starting at block hash given as the first parameter. + * * @param block hash of the block * used as a starting point for the hash request. - * @param keys the keys of the storage's entry. + * @param keys the keys of the storage's entry. * @return the hash. */ CompletableFuture hashAt(@NonNull BlockHash block, @NonNull Object... keys); /** * Retrieves the storage size. + * * @param keys the keys of the storage's entry. * @return the size of the entry. */ @@ -59,9 +65,10 @@ public interface StorageNMap { /** * Retrieves the storage size * starting at block hash given as the first parameter. + * * @param block hash of the block * used as a starting point for the size request. - * @param keys the keys of the storage's entry. + * @param keys the keys of the storage's entry. * @return the size of the entry. */ CompletableFuture sizeAt(@NonNull BlockHash block, @NonNull Object... keys); @@ -69,6 +76,7 @@ public interface StorageNMap { /** * Returns a collection of keys, each item of which * contains the remaining keys of the entry. + * * @param keys some keys of the storage's entry. * Note: all the keys must follow the same strict order as * they appear in the storage. @@ -80,11 +88,12 @@ public interface StorageNMap { /** * Returns a collection of keys, each item of which * contains the remaining keys of the entry. + * * @param block hash of the block * since that the keys are requested. - * @param keys some keys of the storage's entry. - * Note: all the keys must follow the same strict order as - * their sequence in the storage. + * @param keys some keys of the storage's entry. + * Note: all the keys must follow the same strict order as + * their sequence in the storage. * @return collection of keys. */ CompletableFuture> keysAt(@NonNull BlockHash block, @NonNull Object... keys); @@ -94,10 +103,11 @@ public interface StorageNMap { * contains the remaining keys of the entry. * Each item of the iterator contains a key collection with size equal to the page's size * or smaller in case of the last page and the total number isn't multiple of the page's size. + * * @param pageSize number of items in collection per page. - * @param keys some keys of the storage's entry. - * Note: all the keys must follow the same strict order as - * their sequence in the storage. + * @param keys some keys of the storage's entry. + * Note: all the keys must follow the same strict order as + * their sequence in the storage. * @return iterator of key collections. */ PagedKeyIterator keysPaged(int pageSize, @NonNull Object... keys); @@ -119,6 +129,7 @@ public interface StorageNMap { /** * Returns a key-value collection, each item of which * contains the remaining keys of the entry and its value. + * * @param keys some keys of the storage's entry. * Note: all the keys must follow the same strict order as * they appear in the storage. @@ -131,10 +142,11 @@ public interface StorageNMap { * contains the remaining keys and the value. * Each item of the iterator contains a key-value collection with size equal to the page's size * or smaller in case of the last page and the total number isn't multiple of tbe page's size. + * * @param pageSize number of items in collection per page. - * @param keys some keys of the storage's entry. - * Note: all the keys must follow the same strict order as - * their sequence in the storage. + * @param keys some keys of the storage's entry. + * Note: all the keys must follow the same strict order as + * their sequence in the storage. * @return collection of key-values. */ PagedKeyValueIterator entriesPaged(int pageSize, @NonNull Object... keys); @@ -142,6 +154,7 @@ public interface StorageNMap { /** * Returns a collection of key-values, each item of which * contains all the keys of the entry and its value. + * * @param args any number of arguments to request * multiple entries. * @return collection of key-value. @@ -150,8 +163,9 @@ public interface StorageNMap { /** * Subscribes for changes on storage's entries with given args. + * * @param consumer that consumes changes. - * @param args any number of arguments. + * @param args any number of arguments. * @return an operation that allows to unsubscribe. */ CompletableFuture>> subscribe(@NonNull StorageChangeConsumer consumer, diff --git a/storage/src/main/java/com/strategyobject/substrateclient/storage/StorageNMapImpl.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/StorageNMapImpl.java similarity index 89% rename from storage/src/main/java/com/strategyobject/substrateclient/storage/StorageNMapImpl.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/StorageNMapImpl.java index 1213f966..71de6472 100644 --- a/storage/src/main/java/com/strategyobject/substrateclient/storage/StorageNMapImpl.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/StorageNMapImpl.java @@ -1,11 +1,11 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; -import com.strategyobject.substrateclient.rpc.Rpc; -import com.strategyobject.substrateclient.rpc.types.BlockHash; -import com.strategyobject.substrateclient.rpc.types.Hash; -import com.strategyobject.substrateclient.rpc.types.StorageKey; +import com.strategyobject.substrateclient.common.types.tuple.Pair; +import com.strategyobject.substrateclient.rpc.api.BlockHash; +import com.strategyobject.substrateclient.rpc.api.Hash; +import com.strategyobject.substrateclient.rpc.api.section.State; +import com.strategyobject.substrateclient.rpc.api.StorageKey; import com.strategyobject.substrateclient.scale.ScaleReader; -import com.strategyobject.substrateclient.types.tuples.Pair; import lombok.NonNull; import lombok.RequiredArgsConstructor; import lombok.val; @@ -22,7 +22,7 @@ */ @RequiredArgsConstructor(staticName = "with") public class StorageNMapImpl implements StorageNMap { - private final @NonNull Rpc rpc; + private final @NonNull State state; private final @NonNull ScaleReader scaleReader; private final @NonNull StorageKeyProvider storageKeyProvider; @@ -30,8 +30,7 @@ public class StorageNMapImpl implements StorageNMap { public CompletableFuture get(@NonNull Object... keys) { ensureAllKeysWerePassed(keys); - return rpc - .state() + return state .getStorage(storageKeyProvider.get(keys)) .thenApplyAsync(d -> { if (d == null) { @@ -58,8 +57,7 @@ private void ensureAllKeysWerePassed(@NonNull Object[] keys) { public CompletableFuture at(@NonNull BlockHash block, @NonNull Object... keys) { ensureAllKeysWerePassed(keys); - return rpc - .state() + return state .getStorage(storageKeyProvider.get(keys), block) .thenApplyAsync(d -> { if (d == null) { @@ -78,45 +76,36 @@ public CompletableFuture at(@NonNull BlockHash block, @NonNull Object... keys public CompletableFuture hash(@NonNull Object... keys) { ensureAllKeysWerePassed(keys); - return rpc - .state() - .getStorageHash(storageKeyProvider.get(keys)); + return state.getStorageHash(storageKeyProvider.get(keys)); } @Override public CompletableFuture hashAt(@NonNull BlockHash block, @NonNull Object... keys) { ensureAllKeysWerePassed(keys); - return rpc - .state() - .getStorageHash(storageKeyProvider.get(keys), block); + return state.getStorageHash(storageKeyProvider.get(keys), block); } @Override public CompletableFuture size(@NonNull Object... keys) { ensureAllKeysWerePassed(keys); - return rpc - .state() - .getStorageSize(storageKeyProvider.get(keys)); + return state.getStorageSize(storageKeyProvider.get(keys)); } @Override public CompletableFuture sizeAt(@NonNull BlockHash block, @NonNull Object... keys) { ensureAllKeysWerePassed(keys); - return rpc - .state() - .getStorageSize(storageKeyProvider.get(keys), block); + return state.getStorageSize(storageKeyProvider.get(keys), block); } @Override public CompletableFuture> keys(@NonNull Object... keys) { val queryKey = storageKeyProvider.get(keys); - return rpc - .state() + return state .getKeys(queryKey) - .thenApplyAsync(storageKeys -> KeyCollectionImpl.with(rpc, + .thenApplyAsync(storageKeys -> KeyCollectionImpl.with(state, storageKeys, scaleReader, key -> storageKeyProvider.extractKeys(key, queryKey, keys.length))); @@ -125,10 +114,9 @@ public CompletableFuture> keys(@NonNull Object... keys) { @Override public CompletableFuture> keysAt(@NonNull BlockHash block, @NonNull Object... keys) { val queryKey = storageKeyProvider.get(keys); - return rpc - .state() + return state .getKeys(queryKey, block) - .thenApplyAsync(storageKeys -> KeyCollectionImpl.with(rpc, + .thenApplyAsync(storageKeys -> KeyCollectionImpl.with(state, storageKeys, scaleReader, key -> storageKeyProvider.extractKeys(key, queryKey, keys.length))); @@ -161,9 +149,9 @@ public int number() { @Override public CompletableFuture moveNext() { val task = pageNumber == 0 ? - rpc.state().getKeysPaged(queryKey, pageSize) : + state.getKeysPaged(queryKey, pageSize) : size == pageSize ? - rpc.state().getKeysPaged(queryKey, pageSize, last) : + state.getKeysPaged(queryKey, pageSize, last) : CompletableFuture.completedFuture(Collections.emptyList()); return task @@ -172,7 +160,7 @@ public CompletableFuture moveNext() { doesCurrentExist = true; pageNumber++; last = storageKeys.get(storageKeys.size() - 1); - collection = KeyCollectionImpl.with(rpc, + collection = KeyCollectionImpl.with(state, storageKeys, scaleReader, key -> storageKeyProvider.extractKeys(key, queryKey, keys.length)); @@ -199,7 +187,7 @@ public KeyCollection current() { public QueryableKey query(@NonNull Object... keys) { ensureAllKeysWerePassed(keys); - return QueryableKeyImpl.with(rpc, + return QueryableKeyImpl.with(state, storageKeyProvider.get(keys), scaleReader, storageKeyProvider::extractKeys); @@ -209,8 +197,7 @@ public QueryableKey query(@NonNull Object... keys) { public CompletableFuture>>> history(@NonNull Object... keys) { ensureAllKeysWerePassed(keys); - return rpc - .state() + return state .queryStorageAt(Collections.singletonList(storageKeyProvider.get(keys))) .thenApplyAsync(set -> set .stream() @@ -260,7 +247,7 @@ public CompletableFuture moveNext() { if (throwable != null) { values.completeExceptionally(throwable); } else { - if (next) { + if (Boolean.TRUE.equals(next)) { underlying.current().multi().execute() .whenCompleteAsync((keyValues, e) -> { if (e != null) { @@ -308,8 +295,7 @@ public CompletableFuture> multi(@NonNull Arg... args) { }) .collect(Collectors.toList()); - return rpc - .state() + return state .queryStorageAt(keys) .thenApplyAsync(set -> { val pairs = set @@ -337,8 +323,7 @@ public CompletableFuture>> subscribe(@NonNul }) .collect(Collectors.toList()); - return rpc - .state() + return state .subscribeStorage(queryKeys, (e, changeSet) -> { if (e != null) { consumer.accept(e, null, null, null); diff --git a/storage/src/main/java/com/strategyobject/substrateclient/storage/StorageValue.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/StorageValue.java similarity index 66% rename from storage/src/main/java/com/strategyobject/substrateclient/storage/StorageValue.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/StorageValue.java index 79632fd8..54df340a 100644 --- a/storage/src/main/java/com/strategyobject/substrateclient/storage/StorageValue.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/StorageValue.java @@ -1,8 +1,8 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; import com.google.common.annotations.Beta; -import com.strategyobject.substrateclient.rpc.types.BlockHash; -import com.strategyobject.substrateclient.types.tuples.Pair; +import com.strategyobject.substrateclient.common.types.tuple.Pair; +import com.strategyobject.substrateclient.rpc.api.BlockHash; import lombok.NonNull; import java.util.List; diff --git a/storage/src/main/java/com/strategyobject/substrateclient/storage/StorageValueImpl.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/StorageValueImpl.java similarity index 68% rename from storage/src/main/java/com/strategyobject/substrateclient/storage/StorageValueImpl.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/StorageValueImpl.java index bec78756..0e0d6703 100644 --- a/storage/src/main/java/com/strategyobject/substrateclient/storage/StorageValueImpl.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/StorageValueImpl.java @@ -1,10 +1,10 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; import com.google.common.annotations.Beta; -import com.strategyobject.substrateclient.rpc.Rpc; -import com.strategyobject.substrateclient.rpc.types.BlockHash; +import com.strategyobject.substrateclient.common.types.tuple.Pair; +import com.strategyobject.substrateclient.rpc.api.BlockHash; +import com.strategyobject.substrateclient.rpc.api.section.State; import com.strategyobject.substrateclient.scale.ScaleReader; -import com.strategyobject.substrateclient.types.tuples.Pair; import lombok.NonNull; import lombok.RequiredArgsConstructor; @@ -16,16 +16,16 @@ public class StorageValueImpl implements StorageValue { private final StorageNMap underlying; - private StorageValueImpl(@NonNull Rpc rpc, + private StorageValueImpl(@NonNull State state, @NonNull ScaleReader scaleReader, @NonNull StorageKeyProvider storageKeyProvider) { - underlying = StorageNMapImpl.with(rpc, scaleReader, storageKeyProvider); + underlying = StorageNMapImpl.with(state, scaleReader, storageKeyProvider); } - public static StorageValue with(@NonNull Rpc rpc, + public static StorageValue with(@NonNull State state, @NonNull ScaleReader scaleReader, @NonNull StorageKeyProvider storageKeyProvider) { - return new StorageValueImpl<>(rpc, scaleReader, storageKeyProvider); + return new StorageValueImpl<>(state, scaleReader, storageKeyProvider); } @Override diff --git a/storage/src/main/java/com/strategyobject/substrateclient/storage/TwoX64Concat.java b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/TwoX64Concat.java similarity index 69% rename from storage/src/main/java/com/strategyobject/substrateclient/storage/TwoX64Concat.java rename to pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/TwoX64Concat.java index 4a925691..6d648095 100644 --- a/storage/src/main/java/com/strategyobject/substrateclient/storage/TwoX64Concat.java +++ b/pallet/src/main/java/com/strategyobject/substrateclient/pallet/storage/TwoX64Concat.java @@ -1,8 +1,8 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; +import com.strategyobject.substrateclient.crypto.Hasher; import lombok.NonNull; import lombok.val; -import net.openhft.hashing.LongHashFunction; import java.nio.ByteBuffer; @@ -15,25 +15,10 @@ public class TwoX64Concat implements KeyHashingAlgorithm { private static final int XX_HASH_SIZE = 8; private static volatile TwoX64Concat instance; - private static byte[] xxHash64(byte[] value) { - val hash = LongHashFunction.xx(0).hashBytes(value); - - return new byte[]{ - (byte) (hash), - (byte) (hash >> 8), - (byte) (hash >> 16), - (byte) (hash >> 24), - (byte) (hash >> 32), - (byte) (hash >> 40), - (byte) (hash >> 48), - (byte) (hash >> 56) - }; - } - private static byte[] xxHash64Concat(byte[] value) { val buf = ByteBuffer.allocate(XX_HASH_SIZE + value.length); - buf.put(xxHash64(value)); + buf.put(Hasher.xx64(0, value)); buf.put(value); return buf.array(); diff --git a/pallet/src/test/java/com/strategyobject/substrateclient/pallet/GeneratedPalletResolverTests.java b/pallet/src/test/java/com/strategyobject/substrateclient/pallet/GeneratedPalletResolverTests.java index 1cf0d39e..15b95768 100644 --- a/pallet/src/test/java/com/strategyobject/substrateclient/pallet/GeneratedPalletResolverTests.java +++ b/pallet/src/test/java/com/strategyobject/substrateclient/pallet/GeneratedPalletResolverTests.java @@ -1,38 +1,38 @@ package com.strategyobject.substrateclient.pallet; -import com.strategyobject.substrateclient.rpc.Rpc; +import com.strategyobject.substrateclient.rpc.api.section.State; import lombok.val; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; import static org.mockito.Mockito.mock; -public class GeneratedPalletResolverTests { +class GeneratedPalletResolverTests { @Test - public void throwsWhenPalletIsNotAnnotated() { - val rpc = mock(Rpc.class); + void throwsWhenPalletIsNotAnnotated() { + val state = mock(State.class); - val resolver = GeneratedPalletResolver.with(rpc); + val resolver = GeneratedPalletResolver.with(state); assertThrows(IllegalArgumentException.class, () -> resolver.resolve(TestPalletNotAnnotated.class)); } @Test - public void throwsWhenPalletImplementationDoesNotHaveAppropriateConstructor() { - val rpc = mock(Rpc.class); + void throwsWhenPalletImplementationDoesNotHaveAppropriateConstructor() { + val state = mock(State.class); - val resolver = GeneratedPalletResolver.with(rpc); + val resolver = GeneratedPalletResolver.with(state); assertThrows(RuntimeException.class, () -> resolver.resolve(TestPalletWithoutConstructor.class)); } @Test - public void resolve() { - val rpc = mock(Rpc.class); + void resolve() { + val state = mock(State.class); - val resolver = GeneratedPalletResolver.with(rpc); + val resolver = GeneratedPalletResolver.with(state); val pallet = resolver.resolve(TestPallet.class); assertNotNull(pallet); diff --git a/pallet/src/test/java/com/strategyobject/substrateclient/pallet/TestPallet.java b/pallet/src/test/java/com/strategyobject/substrateclient/pallet/TestPallet.java index 79fb2171..46ab6325 100644 --- a/pallet/src/test/java/com/strategyobject/substrateclient/pallet/TestPallet.java +++ b/pallet/src/test/java/com/strategyobject/substrateclient/pallet/TestPallet.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.pallet; -import com.strategyobject.substrateclient.pallet.annotations.Pallet; +import com.strategyobject.substrateclient.pallet.annotation.Pallet; @Pallet("Test") public interface TestPallet { diff --git a/pallet/src/test/java/com/strategyobject/substrateclient/pallet/TestPalletImpl.java b/pallet/src/test/java/com/strategyobject/substrateclient/pallet/TestPalletImpl.java index 3eb675a9..52d9538e 100644 --- a/pallet/src/test/java/com/strategyobject/substrateclient/pallet/TestPalletImpl.java +++ b/pallet/src/test/java/com/strategyobject/substrateclient/pallet/TestPalletImpl.java @@ -1,9 +1,9 @@ package com.strategyobject.substrateclient.pallet; -import com.strategyobject.substrateclient.rpc.Rpc; +import com.strategyobject.substrateclient.rpc.api.section.State; import lombok.RequiredArgsConstructor; @RequiredArgsConstructor public class TestPalletImpl implements TestPallet { - private final Rpc rpc; + private final State state; } diff --git a/pallet/src/test/java/com/strategyobject/substrateclient/pallet/TestPalletNotAnnotated.java b/pallet/src/test/java/com/strategyobject/substrateclient/pallet/TestPalletNotAnnotated.java index 79e99755..8aa41efd 100644 --- a/pallet/src/test/java/com/strategyobject/substrateclient/pallet/TestPalletNotAnnotated.java +++ b/pallet/src/test/java/com/strategyobject/substrateclient/pallet/TestPalletNotAnnotated.java @@ -1,6 +1,4 @@ package com.strategyobject.substrateclient.pallet; -import com.strategyobject.substrateclient.pallet.annotations.Pallet; - public interface TestPalletNotAnnotated { } diff --git a/pallet/src/test/java/com/strategyobject/substrateclient/pallet/TestPalletNotAnnotatedImpl.java b/pallet/src/test/java/com/strategyobject/substrateclient/pallet/TestPalletNotAnnotatedImpl.java index 5d5ca68e..661febed 100644 --- a/pallet/src/test/java/com/strategyobject/substrateclient/pallet/TestPalletNotAnnotatedImpl.java +++ b/pallet/src/test/java/com/strategyobject/substrateclient/pallet/TestPalletNotAnnotatedImpl.java @@ -1,9 +1,9 @@ package com.strategyobject.substrateclient.pallet; -import com.strategyobject.substrateclient.rpc.Rpc; +import com.strategyobject.substrateclient.rpc.api.section.State; import lombok.RequiredArgsConstructor; @RequiredArgsConstructor public class TestPalletNotAnnotatedImpl implements TestPalletNotAnnotated { - private final Rpc rpc; + private final State state; } diff --git a/pallet/src/test/java/com/strategyobject/substrateclient/pallet/TestPalletWithoutConstructor.java b/pallet/src/test/java/com/strategyobject/substrateclient/pallet/TestPalletWithoutConstructor.java index 89f48dd9..e592cee4 100644 --- a/pallet/src/test/java/com/strategyobject/substrateclient/pallet/TestPalletWithoutConstructor.java +++ b/pallet/src/test/java/com/strategyobject/substrateclient/pallet/TestPalletWithoutConstructor.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.pallet; -import com.strategyobject.substrateclient.pallet.annotations.Pallet; +import com.strategyobject.substrateclient.pallet.annotation.Pallet; @Pallet("Test") public interface TestPalletWithoutConstructor { diff --git a/storage/src/test/java/com/strategyobject/substrateclient/storage/Blake2B128ConcatTests.java b/pallet/src/test/java/com/strategyobject/substrateclient/pallet/storage/Blake2B128ConcatTests.java similarity index 90% rename from storage/src/test/java/com/strategyobject/substrateclient/storage/Blake2B128ConcatTests.java rename to pallet/src/test/java/com/strategyobject/substrateclient/pallet/storage/Blake2B128ConcatTests.java index 49a7222d..5cc48f58 100644 --- a/storage/src/test/java/com/strategyobject/substrateclient/storage/Blake2B128ConcatTests.java +++ b/pallet/src/test/java/com/strategyobject/substrateclient/pallet/storage/Blake2B128ConcatTests.java @@ -1,8 +1,8 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; import com.strategyobject.substrateclient.common.utils.HexConverter; import com.strategyobject.substrateclient.crypto.ss58.SS58Codec; -import com.strategyobject.substrateclient.rpc.types.AccountId; +import com.strategyobject.substrateclient.rpc.api.AccountId; import com.strategyobject.substrateclient.scale.ScaleWriter; import com.strategyobject.substrateclient.scale.registries.ScaleWriterRegistry; import lombok.SneakyThrows; @@ -16,7 +16,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class Blake2B128ConcatTests { +class Blake2B128ConcatTests { private static Stream getTestCasesForGetHash() { return Stream.of( Arguments.of( @@ -49,7 +49,7 @@ private static byte[] decode(Class type, T value) { @ParameterizedTest @MethodSource("getTestCasesForGetHash") - public void getHash(byte[] encodedKey, String expectedInHex) { + void getHash(byte[] encodedKey, String expectedInHex) { val algorithm = Blake2B128Concat.getInstance(); val actual = algorithm.getHash(encodedKey); diff --git a/storage/src/test/java/com/strategyobject/substrateclient/storage/IdentityTests.java b/pallet/src/test/java/com/strategyobject/substrateclient/pallet/storage/IdentityTests.java similarity index 88% rename from storage/src/test/java/com/strategyobject/substrateclient/storage/IdentityTests.java rename to pallet/src/test/java/com/strategyobject/substrateclient/pallet/storage/IdentityTests.java index 8f99e4e6..507e4a5c 100644 --- a/storage/src/test/java/com/strategyobject/substrateclient/storage/IdentityTests.java +++ b/pallet/src/test/java/com/strategyobject/substrateclient/pallet/storage/IdentityTests.java @@ -1,6 +1,6 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; -import com.strategyobject.substrateclient.rpc.types.BlockHash; +import com.strategyobject.substrateclient.rpc.api.BlockHash; import com.strategyobject.substrateclient.scale.ScaleWriter; import com.strategyobject.substrateclient.scale.registries.ScaleWriterRegistry; import lombok.SneakyThrows; @@ -15,7 +15,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class IdentityTests { +class IdentityTests { private static Stream getTestCasesForGetHash() { return Stream.of( encode(Integer.class, -175), @@ -42,7 +42,7 @@ private static byte[] random(int length) { @ParameterizedTest @MethodSource("getTestCasesForGetHash") - public void getHash(byte[] encodedKey) { + void getHash(byte[] encodedKey) { val algorithm = Identity.getInstance(); val actual = algorithm.getHash(encodedKey); diff --git a/storage/src/test/java/com/strategyobject/substrateclient/storage/KeyHasherTests.java b/pallet/src/test/java/com/strategyobject/substrateclient/pallet/storage/KeyHasherTests.java similarity index 90% rename from storage/src/test/java/com/strategyobject/substrateclient/storage/KeyHasherTests.java rename to pallet/src/test/java/com/strategyobject/substrateclient/pallet/storage/KeyHasherTests.java index 7088e73f..bba7c717 100644 --- a/storage/src/test/java/com/strategyobject/substrateclient/storage/KeyHasherTests.java +++ b/pallet/src/test/java/com/strategyobject/substrateclient/pallet/storage/KeyHasherTests.java @@ -1,9 +1,9 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; import com.strategyobject.substrateclient.common.utils.HexConverter; import com.strategyobject.substrateclient.crypto.ss58.SS58Codec; -import com.strategyobject.substrateclient.rpc.types.AccountId; -import com.strategyobject.substrateclient.rpc.types.BlockHash; +import com.strategyobject.substrateclient.rpc.api.AccountId; +import com.strategyobject.substrateclient.rpc.api.BlockHash; import com.strategyobject.substrateclient.scale.ScaleReader; import com.strategyobject.substrateclient.scale.ScaleWriter; import com.strategyobject.substrateclient.scale.readers.CompactIntegerReader; @@ -23,7 +23,7 @@ import static org.junit.jupiter.api.Assertions.assertArrayEquals; import static org.junit.jupiter.api.Assertions.assertEquals; -public class KeyHasherTests { +class KeyHasherTests { private static Stream getTestCasesForGetHash() { return Stream.of( Arguments.of( @@ -135,11 +135,11 @@ private static Stream getTestCasesForExtractKey() { @ParameterizedTest @MethodSource("getTestCasesForGetHash") - public void getHash(T key, - ScaleReader reader, - ScaleWriter writer, - KeyHashingAlgorithm algorithm, - String expectedInHex) throws IOException { + void getHash(T key, + ScaleReader reader, + ScaleWriter writer, + KeyHashingAlgorithm algorithm, + String expectedInHex) throws IOException { val hasher = KeyHasher.with(writer, reader, algorithm); val actual = hasher.getHash(key); @@ -149,12 +149,12 @@ public void getHash(T key, @ParameterizedTest @MethodSource("getTestCasesForExtractKey") - public void extractKey(InputStream stream, - ScaleReader reader, - ScaleWriter writer, - KeyHashingAlgorithm algorithm, - T expected, - int expectedAvailable) throws IOException { + void extractKey(InputStream stream, + ScaleReader reader, + ScaleWriter writer, + KeyHashingAlgorithm algorithm, + T expected, + int expectedAvailable) throws IOException { val hasher = KeyHasher.with(writer, reader, algorithm); val actual = hasher.extractKey(stream); diff --git a/storage/src/test/java/com/strategyobject/substrateclient/storage/StorageDoubleMapImplTests.java b/pallet/src/test/java/com/strategyobject/substrateclient/pallet/storage/StorageDoubleMapImplTests.java similarity index 80% rename from storage/src/test/java/com/strategyobject/substrateclient/storage/StorageDoubleMapImplTests.java rename to pallet/src/test/java/com/strategyobject/substrateclient/pallet/storage/StorageDoubleMapImplTests.java index 405d5279..1cffdbb7 100644 --- a/storage/src/test/java/com/strategyobject/substrateclient/storage/StorageDoubleMapImplTests.java +++ b/pallet/src/test/java/com/strategyobject/substrateclient/pallet/storage/StorageDoubleMapImplTests.java @@ -1,8 +1,9 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; import com.strategyobject.substrateclient.crypto.ss58.SS58Codec; -import com.strategyobject.substrateclient.rpc.RpcImpl; -import com.strategyobject.substrateclient.rpc.types.AccountId; +import com.strategyobject.substrateclient.rpc.RpcGeneratedSectionFactory; +import com.strategyobject.substrateclient.rpc.api.AccountId; +import com.strategyobject.substrateclient.rpc.api.section.State; import com.strategyobject.substrateclient.scale.ScaleReader; import com.strategyobject.substrateclient.scale.ScaleWriter; import com.strategyobject.substrateclient.scale.registries.ScaleReaderRegistry; @@ -20,22 +21,23 @@ import static org.junit.jupiter.api.Assertions.assertNull; @Testcontainers -public class StorageDoubleMapImplTests { +class StorageDoubleMapImplTests { @Container static final TestSubstrateContainer substrate = new TestSubstrateContainer(SubstrateVersion.V3_0_0); private static final int CONNECTION_TIMEOUT = 1000; @Test @SuppressWarnings("unchecked") - public void societyVotes() throws Exception { - val wsProvider = WsProvider.builder() + void societyVotes() throws Exception { + try (val wsProvider = WsProvider.builder() .setEndpoint(substrate.getWsAddress()) .disableAutoConnect() - .build(); - wsProvider.connect().get(CONNECTION_TIMEOUT, TimeUnit.MILLISECONDS); - try (val rpc = RpcImpl.with(wsProvider)) { + .build()) { + wsProvider.connect().get(CONNECTION_TIMEOUT, TimeUnit.MILLISECONDS); + + val state = RpcGeneratedSectionFactory.create(State.class, wsProvider); val storage = StorageDoubleMapImpl.with( - rpc, + state, (ScaleReader) ScaleReaderRegistry.getInstance().resolve(Void.class), StorageKeyProvider.of("Society", "Votes") .use(KeyHasher.with((ScaleWriter) ScaleWriterRegistry.getInstance().resolve(AccountId.class), diff --git a/storage/src/test/java/com/strategyobject/substrateclient/storage/StorageKeyProviderTests.java b/pallet/src/test/java/com/strategyobject/substrateclient/pallet/storage/StorageKeyProviderTests.java similarity index 87% rename from storage/src/test/java/com/strategyobject/substrateclient/storage/StorageKeyProviderTests.java rename to pallet/src/test/java/com/strategyobject/substrateclient/pallet/storage/StorageKeyProviderTests.java index d73c8807..3baaa0cc 100644 --- a/storage/src/test/java/com/strategyobject/substrateclient/storage/StorageKeyProviderTests.java +++ b/pallet/src/test/java/com/strategyobject/substrateclient/pallet/storage/StorageKeyProviderTests.java @@ -1,9 +1,9 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; import com.strategyobject.substrateclient.common.utils.HexConverter; import com.strategyobject.substrateclient.crypto.ss58.SS58Codec; -import com.strategyobject.substrateclient.rpc.types.AccountId; -import com.strategyobject.substrateclient.rpc.types.StorageKey; +import com.strategyobject.substrateclient.rpc.api.AccountId; +import com.strategyobject.substrateclient.rpc.api.StorageKey; import com.strategyobject.substrateclient.scale.ScaleReader; import com.strategyobject.substrateclient.scale.ScaleWriter; import com.strategyobject.substrateclient.scale.registries.ScaleReaderRegistry; @@ -25,7 +25,7 @@ import static org.junit.jupiter.api.Assertions.assertArrayEquals; import static org.junit.jupiter.api.Assertions.assertEquals; -public class StorageKeyProviderTests { +class StorageKeyProviderTests { @SuppressWarnings("unchecked") private static Stream getTestCasesForGetBySingleKey() { return Stream.of( @@ -188,7 +188,7 @@ private static StorageKeyProvider newFreeBalanceKeyProvider() { @CsvSource({ "SomePallet,SomeStorage,0x832718a9c64cbad10dc0772e2c2d3d9c2e186e85ed8948269c15e1c78ccd4305", "Sudo,Key,0x5c0d1176a568c1f92944340dbfed9e9c530ebca703c85910e7164cb7d1c9e47b"}) - public void getWithoutKey(String pallet, String storage, String expectedInHex) { + void getWithoutKey(String pallet, String storage, String expectedInHex) { val provider = StorageKeyProvider.of(pallet, storage); val storageKey = provider.get(); @@ -199,11 +199,11 @@ public void getWithoutKey(String pallet, String storage, String expectedInHex) { @ParameterizedTest @MethodSource("getTestCasesForGetBySingleKey") - public void getBySingleKey(String pallet, - String storage, - KeyHasher keyHasher, - T key, - String expectedInHex) { + void getBySingleKey(String pallet, + String storage, + KeyHasher keyHasher, + T key, + String expectedInHex) { val provider = StorageKeyProvider.of(pallet, storage) .use(keyHasher); @@ -215,13 +215,13 @@ public void getBySingleKey(String pallet, @ParameterizedTest @MethodSource("getTestCasesForGetByDoubleKey") - public void getByDoubleKey(String pallet, - String storage, - KeyHasher firstHasher, - F firstKey, - KeyHasher secondHasher, - S secondKey, - String expectedInHex) { + void getByDoubleKey(String pallet, + String storage, + KeyHasher firstHasher, + F firstKey, + KeyHasher secondHasher, + S secondKey, + String expectedInHex) { val provider = StorageKeyProvider.of(pallet, storage) .use(firstHasher, secondHasher); @@ -233,7 +233,7 @@ public void getByDoubleKey(String pallet, @ParameterizedTest @MethodSource("getTestCasesForExtractKeys") - public void extractKeys(StorageKeyProvider provider, StorageKey fullKey, List expected) { + void extractKeys(StorageKeyProvider provider, StorageKey fullKey, List expected) { val actual = provider.extractKeys(fullKey); assertArrayEquals(expected.toArray(), actual.toArray()); @@ -241,11 +241,11 @@ public void extractKeys(StorageKeyProvider provider, StorageKey fullKey, List expected) { + void extractKeysUsingQueryKey(StorageKeyProvider provider, + StorageKey fullKey, + StorageKey queryKey, + int countOfKeysInQuery, + List expected) { val actual = provider.extractKeys(fullKey, queryKey, countOfKeysInQuery); assertArrayEquals(expected.toArray(), actual.toArray()); diff --git a/storage/src/test/java/com/strategyobject/substrateclient/storage/StorageMapImplTests.java b/pallet/src/test/java/com/strategyobject/substrateclient/pallet/storage/StorageMapImplTests.java similarity index 74% rename from storage/src/test/java/com/strategyobject/substrateclient/storage/StorageMapImplTests.java rename to pallet/src/test/java/com/strategyobject/substrateclient/pallet/storage/StorageMapImplTests.java index acd6c364..bcf1f6c1 100644 --- a/storage/src/test/java/com/strategyobject/substrateclient/storage/StorageMapImplTests.java +++ b/pallet/src/test/java/com/strategyobject/substrateclient/pallet/storage/StorageMapImplTests.java @@ -1,7 +1,8 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; -import com.strategyobject.substrateclient.rpc.RpcImpl; -import com.strategyobject.substrateclient.rpc.types.BlockHash; +import com.strategyobject.substrateclient.rpc.RpcGeneratedSectionFactory; +import com.strategyobject.substrateclient.rpc.api.BlockHash; +import com.strategyobject.substrateclient.rpc.api.section.State; import com.strategyobject.substrateclient.scale.ScaleReader; import com.strategyobject.substrateclient.scale.ScaleWriter; import com.strategyobject.substrateclient.scale.registries.ScaleReaderRegistry; @@ -20,22 +21,23 @@ import static org.junit.jupiter.api.Assertions.assertNotEquals; @Testcontainers -public class StorageMapImplTests { +class StorageMapImplTests { @Container static final TestSubstrateContainer substrate = new TestSubstrateContainer(SubstrateVersion.V3_0_0); private static final int CONNECTION_TIMEOUT = 1000; @Test @SuppressWarnings("unchecked") - public void systemBlockHash() throws Exception { - val wsProvider = WsProvider.builder() + void systemBlockHash() throws Exception { + try (val wsProvider = WsProvider.builder() .setEndpoint(substrate.getWsAddress()) .disableAutoConnect() - .build(); - wsProvider.connect().get(CONNECTION_TIMEOUT, TimeUnit.MILLISECONDS); - try (val rpc = RpcImpl.with(wsProvider)) { + .build()) { + wsProvider.connect().get(CONNECTION_TIMEOUT, TimeUnit.MILLISECONDS); + + val state = RpcGeneratedSectionFactory.create(State.class, wsProvider); val storage = StorageMapImpl.with( - rpc, + state, (ScaleReader) ScaleReaderRegistry.getInstance().resolve(BlockHash.class), StorageKeyProvider.of("System", "BlockHash") .use(KeyHasher.with((ScaleWriter) ScaleWriterRegistry.getInstance().resolve(Integer.class), diff --git a/storage/src/test/java/com/strategyobject/substrateclient/storage/StorageNMapImplTests.java b/pallet/src/test/java/com/strategyobject/substrateclient/pallet/storage/StorageNMapImplTests.java similarity index 75% rename from storage/src/test/java/com/strategyobject/substrateclient/storage/StorageNMapImplTests.java rename to pallet/src/test/java/com/strategyobject/substrateclient/pallet/storage/StorageNMapImplTests.java index 0d65c519..edc730b5 100644 --- a/storage/src/test/java/com/strategyobject/substrateclient/storage/StorageNMapImplTests.java +++ b/pallet/src/test/java/com/strategyobject/substrateclient/pallet/storage/StorageNMapImplTests.java @@ -1,17 +1,20 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; +import com.strategyobject.substrateclient.common.types.tuple.Pair; import com.strategyobject.substrateclient.crypto.ss58.SS58Codec; -import com.strategyobject.substrateclient.rpc.RpcImpl; -import com.strategyobject.substrateclient.rpc.types.AccountId; -import com.strategyobject.substrateclient.rpc.types.BlockHash; +import com.strategyobject.substrateclient.rpc.RpcGeneratedSectionFactory; +import com.strategyobject.substrateclient.rpc.api.AccountId; +import com.strategyobject.substrateclient.rpc.api.BlockHash; +import com.strategyobject.substrateclient.rpc.api.section.Chain; +import com.strategyobject.substrateclient.rpc.api.section.State; import com.strategyobject.substrateclient.scale.ScaleReader; import com.strategyobject.substrateclient.scale.ScaleWriter; import com.strategyobject.substrateclient.scale.registries.ScaleReaderRegistry; import com.strategyobject.substrateclient.scale.registries.ScaleWriterRegistry; import com.strategyobject.substrateclient.tests.containers.SubstrateVersion; import com.strategyobject.substrateclient.tests.containers.TestSubstrateContainer; +import com.strategyobject.substrateclient.transport.ProviderInterface; import com.strategyobject.substrateclient.transport.ws.WsProvider; -import com.strategyobject.substrateclient.types.tuples.Pair; import lombok.NonNull; import lombok.val; import lombok.var; @@ -33,16 +36,16 @@ import static org.testcontainers.shaded.org.hamcrest.number.OrderingComparison.greaterThan; @Testcontainers -public class StorageNMapImplTests { +class StorageNMapImplTests { private static final int CONNECTION_TIMEOUT = 1000; private static final int WAIT_TIMEOUT = 10; @Container private final TestSubstrateContainer substrate = new TestSubstrateContainer(SubstrateVersion.V3_0_0); @SuppressWarnings("unchecked") - private static StorageNMapImpl newSystemBlockHashStorage(RpcImpl rpc) { + private static StorageNMapImpl newSystemBlockHashStorage(State state) { return StorageNMapImpl.with( - rpc, + state, (ScaleReader) ScaleReaderRegistry.getInstance().resolve(BlockHash.class), StorageKeyProvider.of("System", "BlockHash") .use(KeyHasher.with((ScaleWriter) ScaleWriterRegistry.getInstance().resolve(Integer.class), @@ -61,10 +64,10 @@ private WsProvider getConnectedProvider() throws InterruptedException, Execution } @Test - public void keys() throws Exception { - val wsProvider = getConnectedProvider(); - try (val rpc = RpcImpl.with(wsProvider)) { - val storage = newSystemBlockHashStorage(rpc); + void keys() throws Exception { + try (val wsProvider = getConnectedProvider()) { + val state = RpcGeneratedSectionFactory.create(State.class, wsProvider); + val storage = newSystemBlockHashStorage(state); val collection = storage.keys().get(); @@ -88,14 +91,14 @@ public void keys() throws Exception { } @Test - public void multiToDifferentStorages() throws Exception { - val wsProvider = getConnectedProvider(); - try (val rpc = RpcImpl.with(wsProvider)) { + void multiToDifferentStorages() throws Exception { + try (val wsProvider = getConnectedProvider()) { + val state = RpcGeneratedSectionFactory.create(State.class, wsProvider); val storageValue = StorageNMapImpl.with( - rpc, + state, ScaleReaderRegistry.getInstance().resolve(AccountId.class), StorageKeyProvider.of("Sudo", "Key")); - val storageMap = newSystemBlockHashStorage(rpc); + val storageMap = newSystemBlockHashStorage(state); val getKey = storageValue.query(); val getHash = storageMap.query(0); @@ -118,10 +121,10 @@ public void multiToDifferentStorages() throws Exception { } @Test - public void entries() throws Exception { - val wsProvider = getConnectedProvider(); - try (val rpc = RpcImpl.with(wsProvider)) { - val storage = newSystemBlockHashStorage(rpc); + void entries() throws Exception { + try (val wsProvider = getConnectedProvider()) { + val state = RpcGeneratedSectionFactory.create(State.class, wsProvider); + val storage = newSystemBlockHashStorage(state); val collection = storage.entries().get(); @@ -140,10 +143,10 @@ public void entries() throws Exception { } @Test - public void multi() throws Exception { - val wsProvider = getConnectedProvider(); - try (val rpc = RpcImpl.with(wsProvider)) { - val storage = newSystemBlockHashStorage(rpc); + void multi() throws Exception { + try (val wsProvider = getConnectedProvider()) { + val state = RpcGeneratedSectionFactory.create(State.class, wsProvider); + val storage = newSystemBlockHashStorage(state); val collection = storage.multi(Arg.of(0), Arg.of(1)).get(); assertNotNull(collection); @@ -162,12 +165,12 @@ public void multi() throws Exception { } @Test - public void keysPaged() throws Exception { - val wsProvider = getConnectedProvider(); - try (val rpc = RpcImpl.with(wsProvider)) { - waitForNewBlocks(rpc); + void keysPaged() throws Exception { + try (val wsProvider = getConnectedProvider()) { + val state = RpcGeneratedSectionFactory.create(State.class, wsProvider); + waitForNewBlocks(wsProvider); - val storage = newSystemBlockHashStorage(rpc); + val storage = newSystemBlockHashStorage(state); int pageSize = 2; val pages = storage.keysPaged(pageSize); @@ -188,12 +191,12 @@ public void keysPaged() throws Exception { } @Test - public void entriesPaged() throws Exception { - val wsProvider = getConnectedProvider(); - try (val rpc = RpcImpl.with(wsProvider)) { - waitForNewBlocks(rpc); + void entriesPaged() throws Exception { + try (val wsProvider = getConnectedProvider()) { + val state = RpcGeneratedSectionFactory.create(State.class, wsProvider); + waitForNewBlocks(wsProvider); - val storage = newSystemBlockHashStorage(rpc); + val storage = newSystemBlockHashStorage(state); int pageSize = 2; val pages = storage.entriesPaged(pageSize); @@ -221,11 +224,11 @@ public void entriesPaged() throws Exception { } @Test - public void subscribe() throws Exception { - val wsProvider = getConnectedProvider(); - try (val rpc = RpcImpl.with(wsProvider)) { + void subscribe() throws Exception { + try (val wsProvider = getConnectedProvider()) { + val state = RpcGeneratedSectionFactory.create(State.class, wsProvider); val blockNumber = 2; - val storage = newSystemBlockHashStorage(rpc); + val storage = newSystemBlockHashStorage(state); val blockHash = new AtomicReference(); val value = new AtomicReference(); val argument = new AtomicInteger(); @@ -238,9 +241,10 @@ public void subscribe() throws Exception { }, Arg.of(blockNumber)) .get(WAIT_TIMEOUT, TimeUnit.SECONDS); - waitForNewBlocks(rpc); + waitForNewBlocks(wsProvider); - val expectedValue = rpc.chain().getBlockHash(blockNumber).join(); + val chain = RpcGeneratedSectionFactory.create(Chain.class, wsProvider); + val expectedValue = chain.getBlockHash(blockNumber).join(); val history = storage.history(blockNumber).join(); val changedAt = history.stream() .findFirst() @@ -256,10 +260,11 @@ public void subscribe() throws Exception { } } - private void waitForNewBlocks(RpcImpl rpc) throws InterruptedException, ExecutionException, TimeoutException { + private void waitForNewBlocks(ProviderInterface wsProvider) throws Exception { + val chain = RpcGeneratedSectionFactory.create(Chain.class, wsProvider); + val blockCount = new AtomicInteger(0); - val unsubscribeFunc = rpc - .chain() + val unsubscribeFunc = chain .subscribeNewHeads((e, h) -> { if (e == null) { blockCount.incrementAndGet(); diff --git a/storage/src/test/java/com/strategyobject/substrateclient/storage/StorageValueImplTests.java b/pallet/src/test/java/com/strategyobject/substrateclient/pallet/storage/StorageValueImplTests.java similarity index 64% rename from storage/src/test/java/com/strategyobject/substrateclient/storage/StorageValueImplTests.java rename to pallet/src/test/java/com/strategyobject/substrateclient/pallet/storage/StorageValueImplTests.java index 692f9669..a2f5b07a 100644 --- a/storage/src/test/java/com/strategyobject/substrateclient/storage/StorageValueImplTests.java +++ b/pallet/src/test/java/com/strategyobject/substrateclient/pallet/storage/StorageValueImplTests.java @@ -1,8 +1,10 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; import com.strategyobject.substrateclient.crypto.ss58.SS58Codec; -import com.strategyobject.substrateclient.rpc.RpcImpl; -import com.strategyobject.substrateclient.rpc.types.AccountId; +import com.strategyobject.substrateclient.rpc.RpcGeneratedSectionFactory; +import com.strategyobject.substrateclient.rpc.api.AccountId; +import com.strategyobject.substrateclient.rpc.api.section.Chain; +import com.strategyobject.substrateclient.rpc.api.section.State; import com.strategyobject.substrateclient.scale.registries.ScaleReaderRegistry; import com.strategyobject.substrateclient.tests.containers.SubstrateVersion; import com.strategyobject.substrateclient.tests.containers.TestSubstrateContainer; @@ -17,26 +19,27 @@ import static org.junit.jupiter.api.Assertions.assertEquals; @Testcontainers -public class StorageValueImplTests { +class StorageValueImplTests { @Container static final TestSubstrateContainer substrate = new TestSubstrateContainer(SubstrateVersion.V3_0_0); private static final int CONNECTION_TIMEOUT = 1000; @Test - public void sudoKey() throws Exception { + void sudoKey() throws Exception { val expected = AccountId.fromBytes( SS58Codec.decode( "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY") .getAddress()); - val wsProvider = WsProvider.builder() + try (val wsProvider = WsProvider.builder() .setEndpoint(substrate.getWsAddress()) .disableAutoConnect() - .build(); - wsProvider.connect().get(CONNECTION_TIMEOUT, TimeUnit.MILLISECONDS); - try (val rpc = RpcImpl.with(wsProvider)) { + .build()) { + wsProvider.connect().get(CONNECTION_TIMEOUT, TimeUnit.MILLISECONDS); + + val state = RpcGeneratedSectionFactory.create(State.class, wsProvider); val storage = StorageValueImpl.with( - rpc, + state, ScaleReaderRegistry.getInstance().resolve(AccountId.class), StorageKeyProvider.of("Sudo", "Key")); @@ -47,21 +50,23 @@ public void sudoKey() throws Exception { } @Test - public void sudoKeyAtGenesis() throws Exception { + void sudoKeyAtGenesis() throws Exception { val expected = AccountId.fromBytes( SS58Codec.decode( "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY") .getAddress()); - val wsProvider = WsProvider.builder() + try (val wsProvider = WsProvider.builder() .setEndpoint(substrate.getWsAddress()) .disableAutoConnect() - .build(); - wsProvider.connect().get(CONNECTION_TIMEOUT, TimeUnit.MILLISECONDS); - try (val rpc = RpcImpl.with(wsProvider)) { - val blockHash = rpc.chain().getBlockHash(0).get(); + .build()) { + wsProvider.connect().get(CONNECTION_TIMEOUT, TimeUnit.MILLISECONDS); + val state = RpcGeneratedSectionFactory.create(State.class, wsProvider); + val chain = RpcGeneratedSectionFactory.create(Chain.class, wsProvider); + + val blockHash = chain.getBlockHash(0).get(); val storage = StorageValueImpl.with( - rpc, + state, ScaleReaderRegistry.getInstance().resolve(AccountId.class), StorageKeyProvider.of("Sudo", "Key")); diff --git a/storage/src/test/java/com/strategyobject/substrateclient/storage/TwoX64ConcatTests.java b/pallet/src/test/java/com/strategyobject/substrateclient/pallet/storage/TwoX64ConcatTests.java similarity index 92% rename from storage/src/test/java/com/strategyobject/substrateclient/storage/TwoX64ConcatTests.java rename to pallet/src/test/java/com/strategyobject/substrateclient/pallet/storage/TwoX64ConcatTests.java index 4e6b62fa..e4e2e8a4 100644 --- a/storage/src/test/java/com/strategyobject/substrateclient/storage/TwoX64ConcatTests.java +++ b/pallet/src/test/java/com/strategyobject/substrateclient/pallet/storage/TwoX64ConcatTests.java @@ -1,8 +1,8 @@ -package com.strategyobject.substrateclient.storage; +package com.strategyobject.substrateclient.pallet.storage; import com.strategyobject.substrateclient.common.utils.HexConverter; import com.strategyobject.substrateclient.crypto.ss58.SS58Codec; -import com.strategyobject.substrateclient.rpc.types.AccountId; +import com.strategyobject.substrateclient.rpc.api.AccountId; import com.strategyobject.substrateclient.scale.ScaleWriter; import com.strategyobject.substrateclient.scale.registries.ScaleWriterRegistry; import lombok.SneakyThrows; @@ -17,7 +17,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class TwoX64ConcatTests { +class TwoX64ConcatTests { private static Stream getTestCasesForGetHash() { return Stream.of( Arguments.of( @@ -62,7 +62,7 @@ private static byte[] decode(Class type, T value) { @ParameterizedTest @MethodSource("getTestCasesForGetHash") - public void getHash(byte[] encodedKey, String expectedInHex) { + void getHash(byte[] encodedKey, String expectedInHex) { val algorithm = new TwoX64Concat(); val actual = algorithm.getHash(encodedKey); diff --git a/rpc/build.gradle b/rpc/build.gradle index f8044c90..dccf5499 100644 --- a/rpc/build.gradle +++ b/rpc/build.gradle @@ -1,5 +1,8 @@ dependencies { + implementation project(':common') + implementation project(':scale') implementation project(':transport') - implementation project(':rpc:rpc-sections') - implementation project(':rpc:rpc-core') + + testImplementation project(':tests') + testImplementation 'com.google.code.gson:gson:2.9.0' } \ No newline at end of file diff --git a/storage/build.gradle b/rpc/rpc-api/build.gradle similarity index 57% rename from storage/build.gradle rename to rpc/rpc-api/build.gradle index 703eee01..e23e265e 100644 --- a/storage/build.gradle +++ b/rpc/rpc-api/build.gradle @@ -1,19 +1,19 @@ dependencies { implementation project(':common') - implementation project(':scale') implementation project(':crypto') - implementation project(':types') implementation project(':rpc') - implementation project(':rpc:rpc-types') - implementation project(':rpc:rpc-sections') + implementation project(':scale') + implementation project(':transport') - implementation 'org.bouncycastle:bcprov-jdk15on:1.70' - implementation 'net.openhft:zero-allocation-hashing:0.15' + annotationProcessor project(':rpc:rpc-codegen') + annotationProcessor project(':scale:scale-codegen') testImplementation project(':tests') - testCompileOnly project(':transport') + testAnnotationProcessor project(':scale:scale-codegen') + + testImplementation 'ch.qos.logback:logback-classic:1.2.11' testImplementation 'org.testcontainers:testcontainers:1.17.1' testImplementation 'org.testcontainers:junit-jupiter:1.17.1' - testImplementation 'ch.qos.logback:logback-classic:1.2.11' + testImplementation 'org.awaitility:awaitility:4.2.0' } \ No newline at end of file diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/AccountId.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/AccountId.java similarity index 79% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/AccountId.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/AccountId.java index f1dc6ad5..67ee4b7d 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/AccountId.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/AccountId.java @@ -1,10 +1,9 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; +import com.strategyobject.substrateclient.common.types.FixedBytes; +import com.strategyobject.substrateclient.common.types.Size; import com.strategyobject.substrateclient.crypto.ss58.SS58Codec; -import com.strategyobject.substrateclient.rpc.core.MetadataRegistry; import com.strategyobject.substrateclient.scale.ScaleSelfWritable; -import com.strategyobject.substrateclient.types.FixedBytes; -import com.strategyobject.substrateclient.types.Size; import lombok.NonNull; import lombok.var; diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/AccountIdEncoder.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/AccountIdEncoder.java similarity index 58% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/AccountIdEncoder.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/AccountIdEncoder.java index b0852a03..554c8ade 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/AccountIdEncoder.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/AccountIdEncoder.java @@ -1,9 +1,9 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; import com.google.common.base.Preconditions; -import com.strategyobject.substrateclient.rpc.core.EncoderPair; -import com.strategyobject.substrateclient.rpc.core.RpcEncoder; -import com.strategyobject.substrateclient.rpc.core.annotations.AutoRegister; +import com.strategyobject.substrateclient.rpc.EncoderPair; +import com.strategyobject.substrateclient.rpc.RpcEncoder; +import com.strategyobject.substrateclient.rpc.annotation.AutoRegister; @AutoRegister(types = AccountId.class) public class AccountIdEncoder implements RpcEncoder { diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/AccountIdReader.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/AccountIdReader.java similarity index 77% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/AccountIdReader.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/AccountIdReader.java index 9d7eff1d..a5e0690b 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/AccountIdReader.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/AccountIdReader.java @@ -1,10 +1,10 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; import com.google.common.base.Preconditions; import com.strategyobject.substrateclient.common.io.Streamer; +import com.strategyobject.substrateclient.common.types.Size; import com.strategyobject.substrateclient.scale.ScaleReader; -import com.strategyobject.substrateclient.scale.annotations.AutoRegister; -import com.strategyobject.substrateclient.types.Size; +import com.strategyobject.substrateclient.scale.annotation.AutoRegister; import lombok.NonNull; import java.io.IOException; diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/AdditionalExtra.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/AdditionalExtra.java similarity index 73% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/AdditionalExtra.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/AdditionalExtra.java index 3cd5ed5a..c3e57d65 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/AdditionalExtra.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/AdditionalExtra.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; import com.strategyobject.substrateclient.scale.ScaleSelfWritable; diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Address.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Address.java similarity index 74% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Address.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Address.java index b0ad97cc..77b67742 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Address.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Address.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; import com.strategyobject.substrateclient.scale.ScaleSelfWritable; diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/AddressId.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/AddressId.java similarity index 77% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/AddressId.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/AddressId.java index 1e82b8fe..610b1c8b 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/AddressId.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/AddressId.java @@ -1,6 +1,6 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; -import com.strategyobject.substrateclient.scale.annotations.ScaleWriter; +import com.strategyobject.substrateclient.scale.annotation.ScaleWriter; import lombok.Getter; import lombok.NonNull; diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/AddressKind.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/AddressKind.java similarity index 76% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/AddressKind.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/AddressKind.java index 329c8e60..f4cbc4a7 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/AddressKind.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/AddressKind.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; import lombok.Getter; diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/AddressKindScaleWriter.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/AddressKindWriter.java similarity index 77% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/AddressKindScaleWriter.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/AddressKindWriter.java index 3682f416..c041b7c5 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/AddressKindScaleWriter.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/AddressKindWriter.java @@ -1,8 +1,8 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; import com.google.common.base.Preconditions; import com.strategyobject.substrateclient.scale.ScaleWriter; -import com.strategyobject.substrateclient.scale.annotations.AutoRegister; +import com.strategyobject.substrateclient.scale.annotation.AutoRegister; import com.strategyobject.substrateclient.scale.registries.ScaleWriterRegistry; import lombok.NonNull; @@ -10,7 +10,7 @@ import java.io.OutputStream; @AutoRegister(types = AddressKind.class) -public class AddressKindScaleWriter implements ScaleWriter { +public class AddressKindWriter implements ScaleWriter { @Override @SuppressWarnings("unchecked") public void write(@NonNull AddressKind value, @NonNull OutputStream stream, ScaleWriter... writers) throws IOException { diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Block.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Block.java similarity index 63% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Block.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Block.java index 65171ccc..bf1c2b56 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Block.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Block.java @@ -1,6 +1,6 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcDecoder; +import com.strategyobject.substrateclient.rpc.annotation.RpcDecoder; import lombok.Getter; import lombok.Setter; diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/BlockHash.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/BlockHash.java similarity index 68% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/BlockHash.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/BlockHash.java index 2283d23e..02dde2a1 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/BlockHash.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/BlockHash.java @@ -1,8 +1,8 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; +import com.strategyobject.substrateclient.common.types.FixedBytes; +import com.strategyobject.substrateclient.common.types.Size; import com.strategyobject.substrateclient.scale.ScaleSelfWritable; -import com.strategyobject.substrateclient.types.FixedBytes; -import com.strategyobject.substrateclient.types.Size; import lombok.NonNull; public class BlockHash diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/BlockHashScaleReader.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/BlockHashReader.java similarity index 69% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/BlockHashScaleReader.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/BlockHashReader.java index 40bb6b1f..529c7e08 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/BlockHashScaleReader.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/BlockHashReader.java @@ -1,17 +1,17 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; import com.google.common.base.Preconditions; import com.strategyobject.substrateclient.common.io.Streamer; +import com.strategyobject.substrateclient.common.types.Size; import com.strategyobject.substrateclient.scale.ScaleReader; -import com.strategyobject.substrateclient.scale.annotations.AutoRegister; -import com.strategyobject.substrateclient.types.Size; +import com.strategyobject.substrateclient.scale.annotation.AutoRegister; import lombok.NonNull; import java.io.IOException; import java.io.InputStream; @AutoRegister(types = BlockHash.class) -public class BlockHashScaleReader implements ScaleReader { +public class BlockHashReader implements ScaleReader { @Override public BlockHash read(@NonNull InputStream stream, ScaleReader... readers) throws IOException { Preconditions.checkArgument(readers == null || readers.length == 0); diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Call.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Call.java similarity index 70% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Call.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Call.java index 2bc2ea87..e2c3dc37 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Call.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Call.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; import com.strategyobject.substrateclient.scale.ScaleSelfWritable; diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Era.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Era.java similarity index 69% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Era.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Era.java index b2ffac14..b6db5dce 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Era.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Era.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; import com.strategyobject.substrateclient.scale.ScaleSelfWritable; diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/EraKind.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/EraKind.java similarity index 78% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/EraKind.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/EraKind.java index 64191a8f..84bb35d7 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/EraKind.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/EraKind.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; import lombok.Getter; diff --git a/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Event.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Event.java new file mode 100644 index 00000000..965d0f97 --- /dev/null +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Event.java @@ -0,0 +1,4 @@ +package com.strategyobject.substrateclient.rpc.api; + +public interface Event { +} diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Extra.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Extra.java similarity index 70% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Extra.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Extra.java index 32274892..139858c3 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Extra.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Extra.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; import com.strategyobject.substrateclient.scale.ScaleSelfWritable; diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Extrinsic.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Extrinsic.java similarity index 95% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Extrinsic.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Extrinsic.java index 7675f54f..9f02c008 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Extrinsic.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Extrinsic.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; import com.strategyobject.substrateclient.scale.ScaleSelfWritable; import lombok.Getter; diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/ExtrinsicStatus.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/ExtrinsicStatus.java similarity index 75% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/ExtrinsicStatus.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/ExtrinsicStatus.java index fd221449..a607c5a0 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/ExtrinsicStatus.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/ExtrinsicStatus.java @@ -1,7 +1,7 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcDecoder; -import com.strategyobject.substrateclient.scale.annotations.Scale; +import com.strategyobject.substrateclient.rpc.annotation.RpcDecoder; +import com.strategyobject.substrateclient.scale.annotation.Scale; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; @@ -17,29 +17,29 @@ public interface ExtrinsicStatus { Status getStatus(); enum Status { - Future, - Ready, - Broadcast, - InBlock, - Retracted, - FinalityTimeout, - Finalized, - Usurped, - Dropped, - Invalid + FUTURE, + READY, + BROADCAST, + IN_BLOCK, + RETRACTED, + FINALITY_TIMEOUT, + FINALIZED, + USURPED, + DROPPED, + INVALID } class Future implements ExtrinsicStatus { @Override public Status getStatus() { - return Status.Future; + return Status.FUTURE; } } class Ready implements ExtrinsicStatus { @Override public Status getStatus() { - return Status.Ready; + return Status.READY; } } @@ -53,7 +53,7 @@ class Broadcast implements ExtrinsicStatus { @Override public Status getStatus() { - return Status.Broadcast; + return Status.BROADCAST; } } @@ -67,7 +67,7 @@ class InBlock implements ExtrinsicStatus { @Override public Status getStatus() { - return Status.InBlock; + return Status.IN_BLOCK; } } @@ -81,7 +81,7 @@ class Retracted implements ExtrinsicStatus { @Override public Status getStatus() { - return Status.Retracted; + return Status.RETRACTED; } } @@ -95,7 +95,7 @@ class FinalityTimeout implements ExtrinsicStatus { @Override public Status getStatus() { - return Status.FinalityTimeout; + return Status.FINALITY_TIMEOUT; } } @@ -109,7 +109,7 @@ class Finalized implements ExtrinsicStatus { @Override public Status getStatus() { - return Status.Finalized; + return Status.FINALIZED; } } @@ -123,21 +123,21 @@ class Usurped implements ExtrinsicStatus { @Override public Status getStatus() { - return Status.Usurped; + return Status.USURPED; } } class Dropped implements ExtrinsicStatus { @Override public Status getStatus() { - return Status.Dropped; + return Status.DROPPED; } } class Invalid implements ExtrinsicStatus { @Override public Status getStatus() { - return Status.Invalid; + return Status.INVALID; } } } diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/ExtrinsicStatusRpcDecoder.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/ExtrinsicStatusDecoder.java similarity index 82% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/ExtrinsicStatusRpcDecoder.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/ExtrinsicStatusDecoder.java index bccbb99c..2a8472b9 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/ExtrinsicStatusRpcDecoder.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/ExtrinsicStatusDecoder.java @@ -1,9 +1,9 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; -import com.strategyobject.substrateclient.rpc.core.DecoderPair; -import com.strategyobject.substrateclient.rpc.core.annotations.AutoRegister; -import com.strategyobject.substrateclient.rpc.core.decoders.AbstractDecoder; -import com.strategyobject.substrateclient.rpc.core.registries.RpcDecoderRegistry; +import com.strategyobject.substrateclient.rpc.DecoderPair; +import com.strategyobject.substrateclient.rpc.annotation.AutoRegister; +import com.strategyobject.substrateclient.rpc.decoders.AbstractDecoder; +import com.strategyobject.substrateclient.rpc.registries.RpcDecoderRegistry; import com.strategyobject.substrateclient.transport.RpcObject; import java.util.HashMap; @@ -11,7 +11,7 @@ import java.util.Optional; @AutoRegister(types = ExtrinsicStatus.class) -public class ExtrinsicStatusRpcDecoder extends AbstractDecoder { +public class ExtrinsicStatusDecoder extends AbstractDecoder { private static final Map STATUS_TO_VALUE = new HashMap<>(); private static final Map> STATUS_TO_CLASS = new HashMap<>(); diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/ExtrinsicScaleWriter.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/ExtrinsicWriter.java similarity index 89% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/ExtrinsicScaleWriter.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/ExtrinsicWriter.java index 04bb277a..e0ddc766 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/ExtrinsicScaleWriter.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/ExtrinsicWriter.java @@ -1,9 +1,9 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; import com.google.common.base.Preconditions; import com.strategyobject.substrateclient.scale.ScaleType; import com.strategyobject.substrateclient.scale.ScaleWriter; -import com.strategyobject.substrateclient.scale.annotations.AutoRegister; +import com.strategyobject.substrateclient.scale.annotation.AutoRegister; import com.strategyobject.substrateclient.scale.registries.ScaleWriterRegistry; import lombok.NonNull; import lombok.val; @@ -13,7 +13,7 @@ import java.io.OutputStream; @AutoRegister(types = Extrinsic.class) -public class ExtrinsicScaleWriter implements ScaleWriter> { +public class ExtrinsicWriter implements ScaleWriter> { private static final int VERSION = 4; @Override diff --git a/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/FixedBytesWriter.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/FixedBytesWriter.java new file mode 100644 index 00000000..113d47bb --- /dev/null +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/FixedBytesWriter.java @@ -0,0 +1,33 @@ +package com.strategyobject.substrateclient.rpc.api; + +import com.google.common.base.Preconditions; +import com.strategyobject.substrateclient.common.io.Streamer; +import com.strategyobject.substrateclient.common.types.FixedBytes; +import com.strategyobject.substrateclient.common.types.Size; +import com.strategyobject.substrateclient.crypto.PublicKey; +import com.strategyobject.substrateclient.crypto.SignatureData; +import com.strategyobject.substrateclient.scale.ScaleWriter; +import com.strategyobject.substrateclient.scale.annotation.AutoRegister; +import lombok.NonNull; + +import java.io.IOException; +import java.io.OutputStream; + +@AutoRegister( + types = { + AccountId.class, + BlockHash.class, + Hash.class, + PublicKey.class, + SignatureData.class + }) +public class FixedBytesWriter implements ScaleWriter> { + @Override + public void write(@NonNull FixedBytes value, + @NonNull OutputStream stream, + ScaleWriter... writers) throws IOException { + Preconditions.checkArgument(writers == null || writers.length == 0); + + Streamer.writeBytes(value.getData(), stream); + } +} diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Hash.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Hash.java similarity index 65% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Hash.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Hash.java index 418afb73..21b6f651 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Hash.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Hash.java @@ -1,8 +1,8 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; +import com.strategyobject.substrateclient.common.types.FixedBytes; +import com.strategyobject.substrateclient.common.types.Size; import com.strategyobject.substrateclient.scale.ScaleSelfWritable; -import com.strategyobject.substrateclient.types.FixedBytes; -import com.strategyobject.substrateclient.types.Size; import lombok.NonNull; public class Hash extends FixedBytes implements ScaleSelfWritable { diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/HashScaleReader.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/HashReader.java similarity index 69% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/HashScaleReader.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/HashReader.java index 2f1f7723..da73f71e 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/HashScaleReader.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/HashReader.java @@ -1,17 +1,17 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; import com.google.common.base.Preconditions; import com.strategyobject.substrateclient.common.io.Streamer; +import com.strategyobject.substrateclient.common.types.Size; import com.strategyobject.substrateclient.scale.ScaleReader; -import com.strategyobject.substrateclient.scale.annotations.AutoRegister; -import com.strategyobject.substrateclient.types.Size; +import com.strategyobject.substrateclient.scale.annotation.AutoRegister; import lombok.NonNull; import java.io.IOException; import java.io.InputStream; @AutoRegister(types = Hash.class) -public class HashScaleReader implements ScaleReader { +public class HashReader implements ScaleReader { @Override public Hash read(@NonNull InputStream stream, ScaleReader... readers) throws IOException { Preconditions.checkArgument(readers == null || readers.length == 0); diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Header.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Header.java similarity index 62% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Header.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Header.java index 8eded354..f4f71598 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Header.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Header.java @@ -1,7 +1,7 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcDecoder; -import com.strategyobject.substrateclient.scale.annotations.Scale; +import com.strategyobject.substrateclient.rpc.annotation.RpcDecoder; +import com.strategyobject.substrateclient.scale.annotation.Scale; import lombok.Getter; import lombok.Setter; diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/ImmortalEra.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/ImmortalEra.java similarity index 53% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/ImmortalEra.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/ImmortalEra.java index 3a16bc5e..3f279475 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/ImmortalEra.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/ImmortalEra.java @@ -1,8 +1,8 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; import com.strategyobject.substrateclient.scale.ScaleType; -import com.strategyobject.substrateclient.scale.annotations.Scale; -import com.strategyobject.substrateclient.scale.annotations.ScaleWriter; +import com.strategyobject.substrateclient.scale.annotation.Scale; +import com.strategyobject.substrateclient.scale.annotation.ScaleWriter; import lombok.Getter; @Getter diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Metadata.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Metadata.java similarity index 53% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Metadata.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Metadata.java index 638e36d1..44cc5364 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Metadata.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Metadata.java @@ -1,7 +1,7 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; import com.strategyobject.substrateclient.scale.ScaleSelfWritable; -import com.strategyobject.substrateclient.scale.annotations.ScaleReader; +import com.strategyobject.substrateclient.scale.annotation.ScaleReader; @ScaleReader public class Metadata implements ScaleSelfWritable { diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/MetadataRegistry.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/MetadataRegistry.java similarity index 94% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/MetadataRegistry.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/MetadataRegistry.java index 006a8e58..eff13374 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/MetadataRegistry.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/MetadataRegistry.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.rpc.core; +package com.strategyobject.substrateclient.rpc.api; import java.util.concurrent.atomic.AtomicReference; diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/MortalEra.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/MortalEra.java similarity index 59% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/MortalEra.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/MortalEra.java index 18972730..f122e342 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/MortalEra.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/MortalEra.java @@ -1,8 +1,8 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; import com.strategyobject.substrateclient.scale.ScaleType; -import com.strategyobject.substrateclient.scale.annotations.Scale; -import com.strategyobject.substrateclient.scale.annotations.ScaleWriter; +import com.strategyobject.substrateclient.scale.annotation.Scale; +import com.strategyobject.substrateclient.scale.annotation.ScaleWriter; import lombok.Getter; @Getter diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Number.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Number.java similarity index 79% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Number.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Number.java index d66a76ee..fa92bad3 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Number.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Number.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; import lombok.Getter; import lombok.RequiredArgsConstructor; diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/NumberDecoder.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/NumberDecoder.java similarity index 62% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/NumberDecoder.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/NumberDecoder.java index 38cdaaf4..51da418d 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/NumberDecoder.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/NumberDecoder.java @@ -1,8 +1,8 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; -import com.strategyobject.substrateclient.rpc.core.DecoderPair; -import com.strategyobject.substrateclient.rpc.core.annotations.AutoRegister; -import com.strategyobject.substrateclient.rpc.core.decoders.AbstractDecoder; +import com.strategyobject.substrateclient.rpc.DecoderPair; +import com.strategyobject.substrateclient.rpc.annotation.AutoRegister; +import com.strategyobject.substrateclient.rpc.decoders.AbstractDecoder; import com.strategyobject.substrateclient.transport.RpcObject; import lombok.val; diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/PairDecoder.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/PairDecoder.java similarity index 73% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/PairDecoder.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/PairDecoder.java index d61ae91e..135a9133 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/PairDecoder.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/PairDecoder.java @@ -1,11 +1,11 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; import com.google.common.base.Preconditions; -import com.strategyobject.substrateclient.rpc.core.DecoderPair; -import com.strategyobject.substrateclient.rpc.core.annotations.AutoRegister; -import com.strategyobject.substrateclient.rpc.core.decoders.AbstractDecoder; +import com.strategyobject.substrateclient.common.types.tuple.Pair; +import com.strategyobject.substrateclient.rpc.DecoderPair; +import com.strategyobject.substrateclient.rpc.annotation.AutoRegister; +import com.strategyobject.substrateclient.rpc.decoders.AbstractDecoder; import com.strategyobject.substrateclient.transport.RpcObject; -import com.strategyobject.substrateclient.types.tuples.Pair; import lombok.val; @AutoRegister(types = Pair.class) diff --git a/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/RuntimeVersion.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/RuntimeVersion.java new file mode 100644 index 00000000..204ae8c7 --- /dev/null +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/RuntimeVersion.java @@ -0,0 +1,7 @@ +package com.strategyobject.substrateclient.rpc.api; + +import com.strategyobject.substrateclient.rpc.annotation.RpcDecoder; + +@RpcDecoder +public class RuntimeVersion { +} diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Signature.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Signature.java similarity index 75% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Signature.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Signature.java index f12d9d08..0caebf4a 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Signature.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Signature.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; import com.strategyobject.substrateclient.scale.ScaleSelfWritable; diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/SignatureKind.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/SignatureKind.java similarity index 81% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/SignatureKind.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/SignatureKind.java index 64fc5d62..8b4e6e82 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/SignatureKind.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/SignatureKind.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; import lombok.Getter; diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/SignatureKindScaleWriter.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/SignatureKindWriter.java similarity index 77% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/SignatureKindScaleWriter.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/SignatureKindWriter.java index 46e5c0db..7734cf6b 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/SignatureKindScaleWriter.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/SignatureKindWriter.java @@ -1,8 +1,8 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; import com.google.common.base.Preconditions; import com.strategyobject.substrateclient.scale.ScaleWriter; -import com.strategyobject.substrateclient.scale.annotations.AutoRegister; +import com.strategyobject.substrateclient.scale.annotation.AutoRegister; import com.strategyobject.substrateclient.scale.registries.ScaleWriterRegistry; import lombok.NonNull; @@ -10,7 +10,7 @@ import java.io.OutputStream; @AutoRegister(types = SignatureKind.class) -public class SignatureKindScaleWriter implements ScaleWriter { +public class SignatureKindWriter implements ScaleWriter { @Override @SuppressWarnings("unchecked") public void write(@NonNull SignatureKind value, @NonNull OutputStream stream, ScaleWriter... writers) throws IOException { diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/SignaturePayload.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/SignaturePayload.java similarity index 76% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/SignaturePayload.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/SignaturePayload.java index fc69d962..d3f4ab6b 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/SignaturePayload.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/SignaturePayload.java @@ -1,7 +1,7 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; import com.strategyobject.substrateclient.scale.ScaleSelfWritable; -import com.strategyobject.substrateclient.scale.annotations.ScaleWriter; +import com.strategyobject.substrateclient.scale.annotation.ScaleWriter; import lombok.Getter; import lombok.RequiredArgsConstructor; diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/SignedAdditionalExtra.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/SignedAdditionalExtra.java similarity index 77% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/SignedAdditionalExtra.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/SignedAdditionalExtra.java index 7bac64aa..22675a7b 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/SignedAdditionalExtra.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/SignedAdditionalExtra.java @@ -1,8 +1,8 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; import com.strategyobject.substrateclient.scale.ScaleType; -import com.strategyobject.substrateclient.scale.annotations.Scale; -import com.strategyobject.substrateclient.scale.annotations.ScaleWriter; +import com.strategyobject.substrateclient.scale.annotation.Scale; +import com.strategyobject.substrateclient.scale.annotation.ScaleWriter; import lombok.Getter; import lombok.NonNull; diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/SignedBlock.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/SignedBlock.java similarity index 54% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/SignedBlock.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/SignedBlock.java index 9bb676ca..81312918 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/SignedBlock.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/SignedBlock.java @@ -1,6 +1,6 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcDecoder; +import com.strategyobject.substrateclient.rpc.annotation.RpcDecoder; import lombok.Getter; import lombok.Setter; diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/SignedExtension.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/SignedExtension.java similarity index 59% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/SignedExtension.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/SignedExtension.java index e490e395..fb7638c0 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/SignedExtension.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/SignedExtension.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; public interface SignedExtension { AdditionalExtra getAdditionalExtra(); diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/SignedExtra.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/SignedExtra.java similarity index 75% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/SignedExtra.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/SignedExtra.java index 04ad7c3b..3cd27646 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/SignedExtra.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/SignedExtra.java @@ -1,9 +1,9 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; import com.strategyobject.substrateclient.scale.ScaleType; -import com.strategyobject.substrateclient.scale.annotations.Ignore; -import com.strategyobject.substrateclient.scale.annotations.Scale; -import com.strategyobject.substrateclient.scale.annotations.ScaleWriter; +import com.strategyobject.substrateclient.scale.annotation.Ignore; +import com.strategyobject.substrateclient.scale.annotation.Scale; +import com.strategyobject.substrateclient.scale.annotation.ScaleWriter; import lombok.Getter; import lombok.RequiredArgsConstructor; diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/SignedPayload.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/SignedPayload.java similarity index 86% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/SignedPayload.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/SignedPayload.java index de2ceeb7..999da423 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/SignedPayload.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/SignedPayload.java @@ -1,6 +1,6 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; -import com.strategyobject.substrateclient.types.Signable; +import com.strategyobject.substrateclient.crypto.Signable; import lombok.Getter; import lombok.NonNull; import lombok.RequiredArgsConstructor; diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Sr25519Signature.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Sr25519Signature.java similarity index 75% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Sr25519Signature.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Sr25519Signature.java index 3d8039a6..957676a2 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/Sr25519Signature.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/Sr25519Signature.java @@ -1,7 +1,7 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; -import com.strategyobject.substrateclient.scale.annotations.ScaleWriter; -import com.strategyobject.substrateclient.types.SignatureData; +import com.strategyobject.substrateclient.crypto.SignatureData; +import com.strategyobject.substrateclient.scale.annotation.ScaleWriter; import lombok.Getter; import lombok.NonNull; diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/StorageChangeSet.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/StorageChangeSet.java similarity index 52% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/StorageChangeSet.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/StorageChangeSet.java index 92d5631f..638e620d 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/StorageChangeSet.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/StorageChangeSet.java @@ -1,8 +1,8 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcDecoder; -import com.strategyobject.substrateclient.scale.annotations.Scale; -import com.strategyobject.substrateclient.types.tuples.Pair; +import com.strategyobject.substrateclient.common.types.tuple.Pair; +import com.strategyobject.substrateclient.rpc.annotation.RpcDecoder; +import com.strategyobject.substrateclient.scale.annotation.Scale; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/StorageData.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/StorageData.java similarity index 76% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/StorageData.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/StorageData.java index d32483b0..ae945514 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/StorageData.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/StorageData.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; import lombok.Getter; import lombok.RequiredArgsConstructor; diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/StorageDataDecoder.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/StorageDataDecoder.java similarity index 61% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/StorageDataDecoder.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/StorageDataDecoder.java index d904cc0c..f70dde6c 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/StorageDataDecoder.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/StorageDataDecoder.java @@ -1,9 +1,9 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; import com.strategyobject.substrateclient.common.utils.HexConverter; -import com.strategyobject.substrateclient.rpc.core.DecoderPair; -import com.strategyobject.substrateclient.rpc.core.annotations.AutoRegister; -import com.strategyobject.substrateclient.rpc.core.decoders.AbstractDecoder; +import com.strategyobject.substrateclient.rpc.DecoderPair; +import com.strategyobject.substrateclient.rpc.annotation.AutoRegister; +import com.strategyobject.substrateclient.rpc.decoders.AbstractDecoder; import com.strategyobject.substrateclient.transport.RpcObject; @AutoRegister(types = StorageData.class) diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/StorageKey.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/StorageKey.java similarity index 76% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/StorageKey.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/StorageKey.java index 2aa307d0..8c81e398 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/StorageKey.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/StorageKey.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; import lombok.Getter; import lombok.RequiredArgsConstructor; diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/StorageKeyDecoder.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/StorageKeyDecoder.java similarity index 60% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/StorageKeyDecoder.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/StorageKeyDecoder.java index 6bee248f..5139b4a8 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/StorageKeyDecoder.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/StorageKeyDecoder.java @@ -1,9 +1,9 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; import com.strategyobject.substrateclient.common.utils.HexConverter; -import com.strategyobject.substrateclient.rpc.core.DecoderPair; -import com.strategyobject.substrateclient.rpc.core.annotations.AutoRegister; -import com.strategyobject.substrateclient.rpc.core.decoders.AbstractDecoder; +import com.strategyobject.substrateclient.rpc.DecoderPair; +import com.strategyobject.substrateclient.rpc.annotation.AutoRegister; +import com.strategyobject.substrateclient.rpc.decoders.AbstractDecoder; import com.strategyobject.substrateclient.transport.RpcObject; @AutoRegister(types = StorageKey.class) diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/StorageKeyEncoder.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/StorageKeyEncoder.java similarity index 65% rename from rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/StorageKeyEncoder.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/StorageKeyEncoder.java index 81272600..10a1097f 100644 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/StorageKeyEncoder.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/StorageKeyEncoder.java @@ -1,10 +1,10 @@ -package com.strategyobject.substrateclient.rpc.types; +package com.strategyobject.substrateclient.rpc.api; import com.google.common.base.Preconditions; import com.strategyobject.substrateclient.common.utils.HexConverter; -import com.strategyobject.substrateclient.rpc.core.EncoderPair; -import com.strategyobject.substrateclient.rpc.core.RpcEncoder; -import com.strategyobject.substrateclient.rpc.core.annotations.AutoRegister; +import com.strategyobject.substrateclient.rpc.EncoderPair; +import com.strategyobject.substrateclient.rpc.RpcEncoder; +import com.strategyobject.substrateclient.rpc.annotation.AutoRegister; import lombok.NonNull; @AutoRegister(types = StorageKey.class) diff --git a/rpc/rpc-sections/src/main/java/com/strategyobject/substrateclient/rpc/sections/Author.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/section/Author.java similarity index 60% rename from rpc/rpc-sections/src/main/java/com/strategyobject/substrateclient/rpc/sections/Author.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/section/Author.java index ce4bb979..388ea089 100644 --- a/rpc/rpc-sections/src/main/java/com/strategyobject/substrateclient/rpc/sections/Author.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/section/Author.java @@ -1,13 +1,13 @@ -package com.strategyobject.substrateclient.rpc.sections; +package com.strategyobject.substrateclient.rpc.api.section; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcCall; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcInterface; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcSubscription; -import com.strategyobject.substrateclient.rpc.types.Extrinsic; -import com.strategyobject.substrateclient.rpc.types.ExtrinsicStatus; -import com.strategyobject.substrateclient.rpc.types.Hash; -import com.strategyobject.substrateclient.scale.annotations.Scale; -import com.strategyobject.substrateclient.types.PublicKey; +import com.strategyobject.substrateclient.crypto.PublicKey; +import com.strategyobject.substrateclient.rpc.annotation.RpcCall; +import com.strategyobject.substrateclient.rpc.annotation.RpcInterface; +import com.strategyobject.substrateclient.rpc.annotation.RpcSubscription; +import com.strategyobject.substrateclient.rpc.api.Extrinsic; +import com.strategyobject.substrateclient.rpc.api.ExtrinsicStatus; +import com.strategyobject.substrateclient.rpc.api.Hash; +import com.strategyobject.substrateclient.scale.annotation.Scale; import java.util.concurrent.CompletableFuture; import java.util.function.BiConsumer; diff --git a/rpc/rpc-sections/src/main/java/com/strategyobject/substrateclient/rpc/sections/Chain.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/section/Chain.java similarity index 56% rename from rpc/rpc-sections/src/main/java/com/strategyobject/substrateclient/rpc/sections/Chain.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/section/Chain.java index 550351a0..d68c597d 100644 --- a/rpc/rpc-sections/src/main/java/com/strategyobject/substrateclient/rpc/sections/Chain.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/section/Chain.java @@ -1,12 +1,12 @@ -package com.strategyobject.substrateclient.rpc.sections; +package com.strategyobject.substrateclient.rpc.api.section; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcCall; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcInterface; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcSubscription; -import com.strategyobject.substrateclient.rpc.types.BlockHash; -import com.strategyobject.substrateclient.rpc.types.Header; -import com.strategyobject.substrateclient.rpc.types.SignedBlock; -import com.strategyobject.substrateclient.scale.annotations.Scale; +import com.strategyobject.substrateclient.rpc.annotation.RpcCall; +import com.strategyobject.substrateclient.rpc.annotation.RpcInterface; +import com.strategyobject.substrateclient.rpc.annotation.RpcSubscription; +import com.strategyobject.substrateclient.rpc.api.BlockHash; +import com.strategyobject.substrateclient.rpc.api.Header; +import com.strategyobject.substrateclient.rpc.api.SignedBlock; +import com.strategyobject.substrateclient.scale.annotation.Scale; import java.util.concurrent.CompletableFuture; import java.util.function.BiConsumer; diff --git a/rpc/rpc-sections/src/main/java/com/strategyobject/substrateclient/rpc/sections/State.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/section/State.java similarity index 87% rename from rpc/rpc-sections/src/main/java/com/strategyobject/substrateclient/rpc/sections/State.java rename to rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/section/State.java index 7f54a408..c983e191 100644 --- a/rpc/rpc-sections/src/main/java/com/strategyobject/substrateclient/rpc/sections/State.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/section/State.java @@ -1,10 +1,10 @@ -package com.strategyobject.substrateclient.rpc.sections; +package com.strategyobject.substrateclient.rpc.api.section; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcCall; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcInterface; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcSubscription; -import com.strategyobject.substrateclient.rpc.types.*; -import com.strategyobject.substrateclient.scale.annotations.Scale; +import com.strategyobject.substrateclient.rpc.annotation.RpcCall; +import com.strategyobject.substrateclient.rpc.annotation.RpcInterface; +import com.strategyobject.substrateclient.rpc.annotation.RpcSubscription; +import com.strategyobject.substrateclient.rpc.api.*; +import com.strategyobject.substrateclient.scale.annotation.Scale; import java.util.List; import java.util.concurrent.CompletableFuture; diff --git a/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/section/System.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/section/System.java new file mode 100644 index 00000000..f5326d2e --- /dev/null +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/section/System.java @@ -0,0 +1,13 @@ +package com.strategyobject.substrateclient.rpc.api.section; + +import com.strategyobject.substrateclient.rpc.annotation.RpcCall; +import com.strategyobject.substrateclient.rpc.annotation.RpcInterface; +import com.strategyobject.substrateclient.rpc.api.AccountId; + +import java.util.concurrent.CompletableFuture; + +@RpcInterface("system") +public interface System { + @RpcCall("accountNextIndex") + CompletableFuture accountNextIndex(AccountId accountId); +} diff --git a/rpc/rpc-sections/src/test/java/com/strategyobject/substrateclient/rpc/sections/AuthorTests.java b/rpc/rpc-api/src/test/java/com/strategyobject/substrateclient/rpc/api/section/AuthorTests.java similarity index 54% rename from rpc/rpc-sections/src/test/java/com/strategyobject/substrateclient/rpc/sections/AuthorTests.java rename to rpc/rpc-api/src/test/java/com/strategyobject/substrateclient/rpc/api/section/AuthorTests.java index da257966..af84709f 100644 --- a/rpc/rpc-sections/src/test/java/com/strategyobject/substrateclient/rpc/sections/AuthorTests.java +++ b/rpc/rpc-api/src/test/java/com/strategyobject/substrateclient/rpc/api/section/AuthorTests.java @@ -1,20 +1,16 @@ -package com.strategyobject.substrateclient.rpc.sections; +package com.strategyobject.substrateclient.rpc.api.section; +import com.strategyobject.substrateclient.common.types.Size; import com.strategyobject.substrateclient.common.utils.HexConverter; -import com.strategyobject.substrateclient.crypto.KeyRing; -import com.strategyobject.substrateclient.rpc.core.RpcGeneratedSectionFactory; -import com.strategyobject.substrateclient.rpc.core.RpcInterfaceInitializationException; -import com.strategyobject.substrateclient.rpc.sections.substitutes.BalanceTransfer; -import com.strategyobject.substrateclient.rpc.types.*; +import com.strategyobject.substrateclient.crypto.*; +import com.strategyobject.substrateclient.rpc.RpcGeneratedSectionFactory; +import com.strategyobject.substrateclient.rpc.api.*; import com.strategyobject.substrateclient.tests.containers.SubstrateVersion; import com.strategyobject.substrateclient.tests.containers.TestSubstrateContainer; import com.strategyobject.substrateclient.transport.ws.WsProvider; -import com.strategyobject.substrateclient.types.KeyPair; -import com.strategyobject.substrateclient.types.PublicKey; -import com.strategyobject.substrateclient.types.Signable; import lombok.val; import lombok.var; -import org.bouncycastle.crypto.digests.Blake2bDigest; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.testcontainers.containers.Network; import org.testcontainers.junit.jupiter.Container; @@ -29,10 +25,10 @@ import static org.awaitility.Awaitility.await; import static org.hamcrest.Matchers.greaterThan; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertNotNull; @Testcontainers -public class AuthorTests { +class AuthorTests { private static final int WAIT_TIMEOUT = 10; private static final Network network = Network.newNetwork(); private static final AtomicInteger NONCE = new AtomicInteger(0); @@ -41,50 +37,31 @@ public class AuthorTests { static final TestSubstrateContainer substrate = new TestSubstrateContainer(SubstrateVersion.V3_0_0) .withNetwork(network); - private static byte[] blake2(byte[] value) { - val digest = new Blake2bDigest(256); - digest.update(value, 0, value.length); - - val result = new byte[32]; - digest.doFinal(result, 0); - return result; - } - @Test - void hasKey() throws ExecutionException, InterruptedException, TimeoutException, RpcInterfaceInitializationException { - try (WsProvider wsProvider = WsProvider.builder() - .setEndpoint(substrate.getWsAddress()) - .disableAutoConnect() - .build()) { - wsProvider.connect().get(WAIT_TIMEOUT, TimeUnit.SECONDS); - - Author rpcSection = RpcGeneratedSectionFactory.create(Author.class, wsProvider); + void hasKey() throws Exception { + try (val wsProvider = connect()) { + val author = RpcGeneratedSectionFactory.create(Author.class, wsProvider); val publicKey = PublicKey.fromBytes( HexConverter.toBytes("0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d")); val keyType = "aura"; - var result = rpcSection.hasKey(publicKey, keyType).get(WAIT_TIMEOUT, TimeUnit.SECONDS); + var result = author.hasKey(publicKey, keyType).get(WAIT_TIMEOUT, TimeUnit.SECONDS); - assertFalse(result); + Assertions.assertFalse(result); - rpcSection.insertKey(keyType, "alice", publicKey).get(WAIT_TIMEOUT, TimeUnit.SECONDS); - result = rpcSection.hasKey(publicKey, keyType).get(WAIT_TIMEOUT, TimeUnit.SECONDS); + author.insertKey(keyType, "alice", publicKey).get(WAIT_TIMEOUT, TimeUnit.SECONDS); + result = author.hasKey(publicKey, keyType).get(WAIT_TIMEOUT, TimeUnit.SECONDS); - assertTrue(result); + Assertions.assertTrue(result); } } @Test - void insertKey() throws ExecutionException, InterruptedException, TimeoutException, RpcInterfaceInitializationException { - try (WsProvider wsProvider = WsProvider.builder() - .setEndpoint(substrate.getWsAddress()) - .disableAutoConnect() - .build()) { - wsProvider.connect().get(WAIT_TIMEOUT, TimeUnit.SECONDS); - - Author rpcSection = RpcGeneratedSectionFactory.create(Author.class, wsProvider); + void insertKey() throws Exception { + try (val wsProvider = connect()) { + val author = RpcGeneratedSectionFactory.create(Author.class, wsProvider); - assertDoesNotThrow(() -> rpcSection.insertKey("aura", + Assertions.assertDoesNotThrow(() -> author.insertKey("aura", "alice", PublicKey.fromBytes( HexConverter.toBytes("0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d"))) @@ -93,39 +70,27 @@ void insertKey() throws ExecutionException, InterruptedException, TimeoutExcepti } @Test - void submitExtrinsic() throws ExecutionException, InterruptedException, TimeoutException, RpcInterfaceInitializationException { - try (WsProvider wsProvider = WsProvider.builder() - .setEndpoint(substrate.getWsAddress()) - .disableAutoConnect() - .build()) { - wsProvider.connect().get(WAIT_TIMEOUT, TimeUnit.SECONDS); + void submitExtrinsic() throws Exception { + try (val wsProvider = connect()) { + val chain = RpcGeneratedSectionFactory.create(Chain.class, wsProvider); + val genesis = chain.getBlockHash(0).get(WAIT_TIMEOUT, TimeUnit.SECONDS); - Chain chainSection = RpcGeneratedSectionFactory.create(Chain.class, wsProvider); - - val genesis = chainSection.getBlockHash(0).get(WAIT_TIMEOUT, TimeUnit.SECONDS); - Author authorSection = RpcGeneratedSectionFactory.create(Author.class, wsProvider); - - assertDoesNotThrow(() -> authorSection.submitExtrinsic(createBalanceTransferExtrinsic(genesis, NONCE.getAndIncrement())) + val author = RpcGeneratedSectionFactory.create(Author.class, wsProvider); + Assertions.assertDoesNotThrow(() -> author.submitExtrinsic(createBalanceTransferExtrinsic(genesis, NONCE.getAndIncrement())) .get(WAIT_TIMEOUT, TimeUnit.SECONDS)); } } @Test - void submitAndWatchExtrinsic() throws ExecutionException, InterruptedException, TimeoutException, RpcInterfaceInitializationException { - try (WsProvider wsProvider = WsProvider.builder() - .setEndpoint(substrate.getWsAddress()) - .disableAutoConnect() - .build()) { - wsProvider.connect().get(WAIT_TIMEOUT, TimeUnit.SECONDS); - - Chain chainSection = RpcGeneratedSectionFactory.create(Chain.class, wsProvider); - - val genesis = chainSection.getBlockHash(0).get(WAIT_TIMEOUT, TimeUnit.SECONDS); - Author authorSection = RpcGeneratedSectionFactory.create(Author.class, wsProvider); + void submitAndWatchExtrinsic() throws Exception { + try (val wsProvider = connect()) { + val chain = RpcGeneratedSectionFactory.create(Chain.class, wsProvider); + val genesis = chain.getBlockHash(0).get(WAIT_TIMEOUT, TimeUnit.SECONDS); + val author = RpcGeneratedSectionFactory.create(Author.class, wsProvider); val updateCount = new AtomicInteger(0); val status = new AtomicReference(); - val unsubscribe = authorSection.submitAndWatchExtrinsic( + val unsubscribe = author.submitAndWatchExtrinsic( createBalanceTransferExtrinsic(genesis, NONCE.getAndIncrement()), (exception, extrinsicStatus) -> { updateCount.incrementAndGet(); @@ -141,10 +106,20 @@ void submitAndWatchExtrinsic() throws ExecutionException, InterruptedException, val result = unsubscribe.get().get(WAIT_TIMEOUT, TimeUnit.SECONDS); - assertTrue(result); + Assertions.assertTrue(result); } } + private WsProvider connect() throws ExecutionException, InterruptedException, TimeoutException { + val wsProvider = WsProvider.builder() + .setEndpoint(substrate.getWsAddress()) + .disableAutoConnect() + .build(); + + wsProvider.connect().get(WAIT_TIMEOUT, TimeUnit.SECONDS); + return wsProvider; + } + private Extrinsic createBalanceTransferExtrinsic(BlockHash genesis, int nonce) { val specVersion = 264; val txVersion = 2; @@ -169,7 +144,7 @@ void submitAndWatchExtrinsic() throws ExecutionException, InterruptedException, private Signature sign(KeyRing keyRing, Signable payload) { var signed = payload.getBytes(); - val signature = signed.length > 256 ? blake2(signed) : signed; + val signature = signed.length > 256 ? Hasher.blake2(Size.of256, signed) : signed; return Sr25519Signature.from(keyRing.sign(() -> signature)); } diff --git a/rpc/rpc-sections/src/test/java/com/strategyobject/substrateclient/rpc/sections/substitutes/BalanceTransfer.java b/rpc/rpc-api/src/test/java/com/strategyobject/substrateclient/rpc/api/section/BalanceTransfer.java similarity index 57% rename from rpc/rpc-sections/src/test/java/com/strategyobject/substrateclient/rpc/sections/substitutes/BalanceTransfer.java rename to rpc/rpc-api/src/test/java/com/strategyobject/substrateclient/rpc/api/section/BalanceTransfer.java index 1c27ee97..09c38ee4 100644 --- a/rpc/rpc-sections/src/test/java/com/strategyobject/substrateclient/rpc/sections/substitutes/BalanceTransfer.java +++ b/rpc/rpc-api/src/test/java/com/strategyobject/substrateclient/rpc/api/section/BalanceTransfer.java @@ -1,10 +1,10 @@ -package com.strategyobject.substrateclient.rpc.sections.substitutes; +package com.strategyobject.substrateclient.rpc.api.section; -import com.strategyobject.substrateclient.rpc.types.AddressId; -import com.strategyobject.substrateclient.rpc.types.Call; +import com.strategyobject.substrateclient.rpc.api.AddressId; +import com.strategyobject.substrateclient.rpc.api.Call; import com.strategyobject.substrateclient.scale.ScaleType; -import com.strategyobject.substrateclient.scale.annotations.Scale; -import com.strategyobject.substrateclient.scale.annotations.ScaleWriter; +import com.strategyobject.substrateclient.scale.annotation.Scale; +import com.strategyobject.substrateclient.scale.annotation.ScaleWriter; import lombok.Getter; import lombok.RequiredArgsConstructor; diff --git a/rpc/rpc-sections/src/test/java/com/strategyobject/substrateclient/rpc/sections/ChainTests.java b/rpc/rpc-api/src/test/java/com/strategyobject/substrateclient/rpc/api/section/ChainTests.java similarity index 50% rename from rpc/rpc-sections/src/test/java/com/strategyobject/substrateclient/rpc/sections/ChainTests.java rename to rpc/rpc-api/src/test/java/com/strategyobject/substrateclient/rpc/api/section/ChainTests.java index a3425475..aefebf69 100644 --- a/rpc/rpc-sections/src/test/java/com/strategyobject/substrateclient/rpc/sections/ChainTests.java +++ b/rpc/rpc-api/src/test/java/com/strategyobject/substrateclient/rpc/api/section/ChainTests.java @@ -1,12 +1,13 @@ -package com.strategyobject.substrateclient.rpc.sections; +package com.strategyobject.substrateclient.rpc.api.section; -import com.strategyobject.substrateclient.rpc.core.RpcGeneratedSectionFactory; -import com.strategyobject.substrateclient.rpc.core.RpcInterfaceInitializationException; -import com.strategyobject.substrateclient.rpc.types.BlockHash; +import com.strategyobject.substrateclient.rpc.RpcGeneratedSectionFactory; +import com.strategyobject.substrateclient.rpc.api.BlockHash; +import com.strategyobject.substrateclient.rpc.api.section.Chain; import com.strategyobject.substrateclient.tests.containers.SubstrateVersion; import com.strategyobject.substrateclient.tests.containers.TestSubstrateContainer; import com.strategyobject.substrateclient.transport.ws.WsProvider; import lombok.val; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.testcontainers.containers.Network; import org.testcontainers.junit.jupiter.Container; @@ -21,10 +22,10 @@ import static org.awaitility.Awaitility.await; import static org.hamcrest.Matchers.greaterThan; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertNotEquals; @Testcontainers -public class ChainTests { +class ChainTests { private static final int WAIT_TIMEOUT = 10; private static final Network network = Network.newNetwork(); @@ -33,35 +34,24 @@ public class ChainTests { .withNetwork(network); @Test - void getFinalizedHead() throws ExecutionException, InterruptedException, TimeoutException, RpcInterfaceInitializationException { - try (WsProvider wsProvider = WsProvider.builder() - .setEndpoint(substrate.getWsAddress()) - .disableAutoConnect() - .build()) { - wsProvider.connect().get(WAIT_TIMEOUT, TimeUnit.SECONDS); - - val rpcSection = RpcGeneratedSectionFactory.create(Chain.class, wsProvider); - - val result = rpcSection.getFinalizedHead().get(WAIT_TIMEOUT, TimeUnit.SECONDS); + void getFinalizedHead() throws Exception { + try (val wsProvider = connect()) { + val chain = RpcGeneratedSectionFactory.create(Chain.class, wsProvider); + val result = chain.getFinalizedHead().get(WAIT_TIMEOUT, TimeUnit.SECONDS); assertNotEquals(BigInteger.ZERO, new BigInteger(result.getData())); } } @Test - void subscribeNewHeads() throws ExecutionException, InterruptedException, TimeoutException, RpcInterfaceInitializationException { - try (WsProvider wsProvider = WsProvider.builder() - .setEndpoint(substrate.getWsAddress()) - .disableAutoConnect() - .build()) { - wsProvider.connect().get(WAIT_TIMEOUT, TimeUnit.SECONDS); - - val rpcSection = RpcGeneratedSectionFactory.create(Chain.class, wsProvider); + void subscribeNewHeads() throws Exception { + try (val wsProvider = connect()) { + val chain = RpcGeneratedSectionFactory.create(Chain.class, wsProvider); val blockCount = new AtomicInteger(0); val blockHash = new AtomicReference(null); - val unsubscribeFunc = rpcSection + val unsubscribeFunc = chain .subscribeNewHeads((e, h) -> { if (blockCount.incrementAndGet() > 1) { blockHash.compareAndSet(null, h.getParentHash()); @@ -77,38 +67,27 @@ void subscribeNewHeads() throws ExecutionException, InterruptedException, Timeou val result = unsubscribeFunc.get().get(WAIT_TIMEOUT, TimeUnit.SECONDS); - assertTrue(result); + Assertions.assertTrue(result); } } @Test - void getBlockHash() throws ExecutionException, InterruptedException, TimeoutException, RpcInterfaceInitializationException { - try (WsProvider wsProvider = WsProvider.builder() - .setEndpoint(substrate.getWsAddress()) - .disableAutoConnect() - .build()) { - wsProvider.connect().get(WAIT_TIMEOUT, TimeUnit.SECONDS); - - val rpcSection = RpcGeneratedSectionFactory.create(Chain.class, wsProvider); - - val result = rpcSection.getBlockHash(0).get(WAIT_TIMEOUT, TimeUnit.SECONDS); + void getBlockHash() throws Exception { + try (val wsProvider = connect()) { + val chain = RpcGeneratedSectionFactory.create(Chain.class, wsProvider); + val result = chain.getBlockHash(0).get(WAIT_TIMEOUT, TimeUnit.SECONDS); assertNotEquals(BigInteger.ZERO, new BigInteger(result.getData())); } } @Test - void getBlock() throws ExecutionException, InterruptedException, TimeoutException, RpcInterfaceInitializationException { - try (WsProvider wsProvider = WsProvider.builder() - .setEndpoint(substrate.getWsAddress()) - .disableAutoConnect() - .build()) { - wsProvider.connect().get(WAIT_TIMEOUT, TimeUnit.SECONDS); - - Chain rpcSection = RpcGeneratedSectionFactory.create(Chain.class, wsProvider); + void getBlock() throws Exception { + try (val wsProvider = connect()) { + val chain = RpcGeneratedSectionFactory.create(Chain.class, wsProvider); val height = new AtomicInteger(0); - rpcSection.subscribeNewHeads((e, header) -> { + chain.subscribeNewHeads((e, header) -> { if (header != null) { height.set(header.getNumber().getValue().intValue()); } @@ -119,14 +98,24 @@ void getBlock() throws ExecutionException, InterruptedException, TimeoutExceptio .untilAtomic(height, greaterThan(1)); val number = height.get(); - val blockHash = rpcSection.getBlockHash(number).get(WAIT_TIMEOUT, TimeUnit.SECONDS); + val blockHash = chain.getBlockHash(number).get(WAIT_TIMEOUT, TimeUnit.SECONDS); assertNotEquals(BigInteger.ZERO, new BigInteger(blockHash.getData())); - val block = rpcSection.getBlock(blockHash).get(WAIT_TIMEOUT, TimeUnit.SECONDS); + val block = chain.getBlock(blockHash).get(WAIT_TIMEOUT, TimeUnit.SECONDS); assertNotEquals(BigInteger.ZERO, new BigInteger(block.getBlock().getHeader().getParentHash().getData())); - assertEquals(number, block.getBlock().getHeader().getNumber().getValue().intValue()); + Assertions.assertEquals(number, block.getBlock().getHeader().getNumber().getValue().intValue()); } } + + private WsProvider connect() throws ExecutionException, InterruptedException, TimeoutException { + val wsProvider = WsProvider.builder() + .setEndpoint(substrate.getWsAddress()) + .disableAutoConnect() + .build(); + + wsProvider.connect().get(WAIT_TIMEOUT, TimeUnit.SECONDS); + return wsProvider; + } } diff --git a/rpc/rpc-api/src/test/java/com/strategyobject/substrateclient/rpc/api/section/StateTests.java b/rpc/rpc-api/src/test/java/com/strategyobject/substrateclient/rpc/api/section/StateTests.java new file mode 100644 index 00000000..5694e1e6 --- /dev/null +++ b/rpc/rpc-api/src/test/java/com/strategyobject/substrateclient/rpc/api/section/StateTests.java @@ -0,0 +1,185 @@ +package com.strategyobject.substrateclient.rpc.api.section; + +import com.strategyobject.substrateclient.common.utils.HexConverter; +import com.strategyobject.substrateclient.rpc.RpcGeneratedSectionFactory; +import com.strategyobject.substrateclient.rpc.api.StorageKey; +import com.strategyobject.substrateclient.tests.containers.SubstrateVersion; +import com.strategyobject.substrateclient.tests.containers.TestSubstrateContainer; +import com.strategyobject.substrateclient.transport.ws.WsProvider; +import lombok.val; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.testcontainers.containers.Network; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; + +import java.util.Collections; +import java.util.concurrent.TimeUnit; + +import static org.junit.jupiter.api.Assertions.*; + +@Testcontainers +class StateTests { + private static final int WAIT_TIMEOUT = 10; + private static final Network network = Network.newNetwork(); + + private final StorageKey storageKey; + + @Container + static final TestSubstrateContainer substrate = new TestSubstrateContainer(SubstrateVersion.V3_0_0) + .withNetwork(network); + + StateTests() { + // xxhash128("Balances") = 0xc2261276cc9d1f8598ea4b6a74b15c2f + // xxhash128("StorageVersion") = 0x308ce9615de0775a82f8a94dc3d285a1 + val key = "0xc2261276cc9d1f8598ea4b6a74b15c2f308ce9615de0775a82f8a94dc3d285a1"; + storageKey = StorageKey.valueOf(HexConverter.toBytes(key)); + } + + @Test + void getRuntimeVersion() throws Exception { + try (val wsProvider = connect()) { + val state = RpcGeneratedSectionFactory.create(State.class, wsProvider); + + assertDoesNotThrow(() -> { + state.getRuntimeVersion().get(WAIT_TIMEOUT, TimeUnit.SECONDS); + }); + } + } + + @Test + void getMetadata() throws Exception { + try (val wsProvider = connect()) { + val state = RpcGeneratedSectionFactory.create(State.class, wsProvider); + + assertDoesNotThrow(() -> { + state.getMetadata().get(WAIT_TIMEOUT * 10, TimeUnit.SECONDS); + }); + } + } + + @Test + void getKeys() throws Exception { + try (val wsProvider = connect()) { + val state = RpcGeneratedSectionFactory.create(State.class, wsProvider); + + val keys = state.getKeys(storageKey).get(WAIT_TIMEOUT, TimeUnit.SECONDS); + + assertTrue(keys.size() > 0); + } + } + + @Test + void getStorage() throws Exception { + try (val wsProvider = connect()) { + val state = RpcGeneratedSectionFactory.create(State.class, wsProvider); + + val storageData = state.getStorage(storageKey).get(WAIT_TIMEOUT, TimeUnit.SECONDS); + + assertNotNull(storageData); + assertTrue(storageData.getData().length > 0); + } + } + + @Test + void getStorageHandlesNullResponse() throws Exception { + try (val wsProvider = connect()) { + val state = RpcGeneratedSectionFactory.create(State.class, wsProvider); + + val emptyKey = new byte[32]; + val storageData = state.getStorage(StorageKey.valueOf(emptyKey)).get(WAIT_TIMEOUT, TimeUnit.SECONDS); + + assertNull(storageData); + } + } + + @Test + void getStorageAtBlock() throws Exception { + try (val wsProvider = connect()) { + val chainSection = RpcGeneratedSectionFactory.create(Chain.class, wsProvider); + val blockHash = chainSection.getBlockHash(0).get(WAIT_TIMEOUT, TimeUnit.SECONDS); + val state = RpcGeneratedSectionFactory.create(State.class, wsProvider); + + val storageData = state.getStorage(storageKey, blockHash).get(WAIT_TIMEOUT, TimeUnit.SECONDS); + + assertNotNull(storageData); + assertTrue(storageData.getData().length > 0); + } + } + + @Test + void getStorageHash() throws Exception { + try (val wsProvider = connect()) { + val state = RpcGeneratedSectionFactory.create(State.class, wsProvider); + + val hash = state.getStorageHash(storageKey).get(WAIT_TIMEOUT, TimeUnit.SECONDS); + + assertNotNull(hash); + assertTrue(hash.getData().length > 0); + } + } + + @Test + void getStorageHashAt() throws Exception { + try (val wsProvider = connect()) { + val chainSection = RpcGeneratedSectionFactory.create(Chain.class, wsProvider); + val blockHash = chainSection.getBlockHash(0).get(WAIT_TIMEOUT, TimeUnit.SECONDS); + val state = RpcGeneratedSectionFactory.create(State.class, wsProvider); + + val hash = state.getStorageHash(storageKey, blockHash).get(WAIT_TIMEOUT, TimeUnit.SECONDS); + + assertNotNull(hash); + assertTrue(hash.getData().length > 0); + } + } + + @Test + void getStorageSize() throws Exception { + try (val wsProvider = connect()) { + val state = RpcGeneratedSectionFactory.create(State.class, wsProvider); + + val size = state.getStorageSize(storageKey).get(WAIT_TIMEOUT, TimeUnit.SECONDS); + + Assertions.assertEquals(1, size); + } + } + + @Test + void getStorageSizeAt() throws Exception { + try (val wsProvider = connect()) { + val chainSection = RpcGeneratedSectionFactory.create(Chain.class, wsProvider); + val blockHash = chainSection.getBlockHash(0).get(WAIT_TIMEOUT, TimeUnit.SECONDS); + val state = RpcGeneratedSectionFactory.create(State.class, wsProvider); + + val size = state.getStorageSize(storageKey, blockHash).get(WAIT_TIMEOUT, TimeUnit.SECONDS); + + Assertions.assertEquals(1, size); + } + } + + @Test + void queryStorageAt() throws Exception { + try (val wsProvider = connect()) { + val state = RpcGeneratedSectionFactory.create(State.class, wsProvider); + + val changes = state + .queryStorageAt(Collections.singletonList(storageKey)) + .get(WAIT_TIMEOUT, TimeUnit.SECONDS); + + assertTrue(changes.size() > 0); + assertTrue(changes.get(0).getChanges().size() > 0); + assertNotNull(changes.get(0).getChanges().get(0).getValue0().getData()); + assertTrue(changes.get(0).getChanges().get(0).getValue0().getData().length > 0); + } + } + + private WsProvider connect() throws Exception { + val wsProvider = WsProvider.builder() + .setEndpoint(substrate.getWsAddress()) + .disableAutoConnect() + .build(); + + wsProvider.connect().get(WAIT_TIMEOUT, TimeUnit.SECONDS); + return wsProvider; + } +} diff --git a/rpc/rpc-sections/src/test/java/com/strategyobject/substrateclient/rpc/sections/SystemTests.java b/rpc/rpc-api/src/test/java/com/strategyobject/substrateclient/rpc/api/section/SystemTests.java similarity index 53% rename from rpc/rpc-sections/src/test/java/com/strategyobject/substrateclient/rpc/sections/SystemTests.java rename to rpc/rpc-api/src/test/java/com/strategyobject/substrateclient/rpc/api/section/SystemTests.java index a524db39..f000b7d6 100644 --- a/rpc/rpc-sections/src/test/java/com/strategyobject/substrateclient/rpc/sections/SystemTests.java +++ b/rpc/rpc-api/src/test/java/com/strategyobject/substrateclient/rpc/api/section/SystemTests.java @@ -1,26 +1,23 @@ -package com.strategyobject.substrateclient.rpc.sections; +package com.strategyobject.substrateclient.rpc.api.section; import com.strategyobject.substrateclient.common.utils.HexConverter; -import com.strategyobject.substrateclient.rpc.core.RpcGeneratedSectionFactory; -import com.strategyobject.substrateclient.rpc.core.RpcInterfaceInitializationException; -import com.strategyobject.substrateclient.rpc.types.AccountId; +import com.strategyobject.substrateclient.rpc.RpcGeneratedSectionFactory; +import com.strategyobject.substrateclient.rpc.api.AccountId; +import com.strategyobject.substrateclient.rpc.api.section.System; import com.strategyobject.substrateclient.tests.containers.SubstrateVersion; import com.strategyobject.substrateclient.tests.containers.TestSubstrateContainer; import com.strategyobject.substrateclient.transport.ws.WsProvider; import lombok.val; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.testcontainers.containers.Network; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; -import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; - -import static org.junit.jupiter.api.Assertions.assertEquals; @Testcontainers -public class SystemTests { +class SystemTests { private static final int WAIT_TIMEOUT = 10; private static final Network network = Network.newNetwork(); @@ -28,17 +25,20 @@ public class SystemTests { static final TestSubstrateContainer substrate = new TestSubstrateContainer(SubstrateVersion.V3_0_0).withNetwork(network); @Test - void accountNextIndex() throws ExecutionException, InterruptedException, TimeoutException, RpcInterfaceInitializationException { - try (WsProvider wsProvider = WsProvider.builder().setEndpoint(substrate.getWsAddress()).disableAutoConnect().build()) { + void accountNextIndex() throws Exception { + try (val wsProvider = WsProvider.builder() + .setEndpoint(substrate.getWsAddress()) + .disableAutoConnect() + .build()) { wsProvider.connect().get(WAIT_TIMEOUT, TimeUnit.SECONDS); - System rpcSection = RpcGeneratedSectionFactory.create(System.class, wsProvider); + val system = RpcGeneratedSectionFactory.create(System.class, wsProvider); val alicePublicKey = HexConverter.toBytes("0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d"); - val result = rpcSection.accountNextIndex(AccountId.fromBytes(alicePublicKey)) + val result = system.accountNextIndex(AccountId.fromBytes(alicePublicKey)) .get(WAIT_TIMEOUT, TimeUnit.SECONDS); - assertEquals(0, result); + Assertions.assertEquals(0, result); } } } diff --git a/rpc/rpc-codegen/build.gradle b/rpc/rpc-codegen/build.gradle index c1601b50..6e85c798 100644 --- a/rpc/rpc-codegen/build.gradle +++ b/rpc/rpc-codegen/build.gradle @@ -1,10 +1,9 @@ dependencies { implementation project(':common') - implementation project(':rpc:rpc-core') + implementation project(':rpc') implementation project(':scale') implementation project(':scale:scale-codegen') implementation project(':transport') - implementation project(':types') compileOnly 'com.google.auto.service:auto-service-annotations:1.0.1' annotationProcessor 'com.google.auto.service:auto-service:1.0.1' diff --git a/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/Constants.java b/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/Constants.java index 1e8b55ec..bb90a7d7 100644 --- a/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/Constants.java +++ b/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/Constants.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.rpc.codegen; -import com.strategyobject.substrateclient.rpc.core.RpcSelfEncodable; +import com.strategyobject.substrateclient.rpc.RpcSelfEncodable; public class Constants { public static final Class RPC_SELF_ENCODABLE = RpcSelfEncodable.class; diff --git a/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/decoder/DecoderCompositor.java b/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/decoder/DecoderCompositor.java index 22a1f025..dd72aae6 100644 --- a/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/decoder/DecoderCompositor.java +++ b/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/decoder/DecoderCompositor.java @@ -3,12 +3,12 @@ import com.squareup.javapoet.CodeBlock; import com.strategyobject.substrateclient.common.codegen.ProcessorContext; import com.strategyobject.substrateclient.common.codegen.TypeTraverser; -import com.strategyobject.substrateclient.rpc.core.DecoderPair; -import com.strategyobject.substrateclient.rpc.core.RpcDecoder; -import com.strategyobject.substrateclient.rpc.core.RpcRegistryHelper; +import com.strategyobject.substrateclient.common.types.Array; +import com.strategyobject.substrateclient.rpc.DecoderPair; +import com.strategyobject.substrateclient.rpc.RpcDecoder; +import com.strategyobject.substrateclient.rpc.RpcRegistryHelper; import com.strategyobject.substrateclient.scale.ScaleReader; import com.strategyobject.substrateclient.scale.ScaleRegistryHelper; -import com.strategyobject.substrateclient.types.Array; import lombok.NonNull; import lombok.var; diff --git a/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/decoder/RpcDecoderAnnotatedClass.java b/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/decoder/RpcDecoderAnnotatedClass.java index a1df6fec..d8dd7d8a 100644 --- a/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/decoder/RpcDecoderAnnotatedClass.java +++ b/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/decoder/RpcDecoderAnnotatedClass.java @@ -4,15 +4,15 @@ import com.strategyobject.substrateclient.common.codegen.JavaPoet; import com.strategyobject.substrateclient.common.codegen.ProcessingException; import com.strategyobject.substrateclient.common.codegen.ProcessorContext; -import com.strategyobject.substrateclient.rpc.core.DecoderPair; -import com.strategyobject.substrateclient.rpc.core.RpcDecoder; -import com.strategyobject.substrateclient.rpc.core.annotations.AutoRegister; -import com.strategyobject.substrateclient.rpc.core.annotations.Ignore; -import com.strategyobject.substrateclient.rpc.core.registries.RpcDecoderRegistry; +import com.strategyobject.substrateclient.rpc.DecoderPair; +import com.strategyobject.substrateclient.rpc.RpcDecoder; +import com.strategyobject.substrateclient.rpc.annotation.AutoRegister; +import com.strategyobject.substrateclient.rpc.annotation.Ignore; +import com.strategyobject.substrateclient.rpc.registries.RpcDecoderRegistry; import com.strategyobject.substrateclient.scale.ScaleReader; import com.strategyobject.substrateclient.scale.ScaleUtils; -import com.strategyobject.substrateclient.scale.annotations.Scale; -import com.strategyobject.substrateclient.scale.annotations.ScaleGeneric; +import com.strategyobject.substrateclient.scale.annotation.Scale; +import com.strategyobject.substrateclient.scale.annotation.ScaleGeneric; import com.strategyobject.substrateclient.scale.codegen.ScaleAnnotationParser; import com.strategyobject.substrateclient.scale.codegen.reader.ReaderCompositor; import com.strategyobject.substrateclient.scale.registries.ScaleReaderRegistry; @@ -39,7 +39,7 @@ import static java.util.stream.Collectors.toMap; public class RpcDecoderAnnotatedClass { - private final static String DECODER_NAME_TEMPLATE = "%sDecoder"; + private static final String DECODER_NAME_TEMPLATE = "%sDecoder"; private static final String VALUE_ARG = "value"; private static final String RESULT_VAR = "result"; private static final String MAP_VAR = "sourceMap"; @@ -56,7 +56,7 @@ public RpcDecoderAnnotatedClass(@NonNull TypeElement classElement) { .collect(toMap(i -> typeParameters.get(i).toString(), Function.identity())); this.fields = classElement.getEnclosedElements().stream() .filter(e -> e.getKind() == ElementKind.FIELD) - .map(e -> (VariableElement) e) + .map(VariableElement.class::cast) .collect(Collectors.toList()); } diff --git a/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/decoder/RpcDecoderProcessor.java b/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/decoder/RpcDecoderProcessor.java index 24156fb6..31edceb6 100644 --- a/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/decoder/RpcDecoderProcessor.java +++ b/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/decoder/RpcDecoderProcessor.java @@ -3,17 +3,18 @@ import com.google.auto.service.AutoService; import com.strategyobject.substrateclient.common.codegen.ProcessingException; import com.strategyobject.substrateclient.common.codegen.ProcessorContext; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcDecoder; +import com.strategyobject.substrateclient.rpc.annotation.RpcDecoder; import lombok.val; import javax.annotation.processing.*; import javax.lang.model.SourceVersion; +import javax.lang.model.element.Element; import javax.lang.model.element.ElementKind; import javax.lang.model.element.TypeElement; import java.io.IOException; import java.util.Set; -@SupportedAnnotationTypes("com.strategyobject.substrateclient.rpc.core.annotations.RpcDecoder") +@SupportedAnnotationTypes("com.strategyobject.substrateclient.rpc.annotation.RpcDecoder") @SupportedSourceVersion(SourceVersion.RELEASE_8) @AutoService(Processor.class) public class RpcDecoderProcessor extends AbstractProcessor { @@ -34,7 +35,7 @@ public boolean process(Set annotations, RoundEnvironment return false; } - for (val annotatedElement : roundEnv.getElementsAnnotatedWith(RpcDecoder.class)) { + for (Element annotatedElement : roundEnv.getElementsAnnotatedWith(RpcDecoder.class)) { if (annotatedElement.getKind() != ElementKind.CLASS) { context.error( annotatedElement, diff --git a/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/encoder/EncoderCompositor.java b/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/encoder/EncoderCompositor.java index bbfebc07..e794a1e0 100644 --- a/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/encoder/EncoderCompositor.java +++ b/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/encoder/EncoderCompositor.java @@ -3,12 +3,12 @@ import com.squareup.javapoet.CodeBlock; import com.strategyobject.substrateclient.common.codegen.ProcessorContext; import com.strategyobject.substrateclient.common.codegen.TypeTraverser; -import com.strategyobject.substrateclient.rpc.core.EncoderPair; -import com.strategyobject.substrateclient.rpc.core.RpcEncoder; -import com.strategyobject.substrateclient.rpc.core.RpcRegistryHelper; +import com.strategyobject.substrateclient.common.types.Array; +import com.strategyobject.substrateclient.rpc.EncoderPair; +import com.strategyobject.substrateclient.rpc.RpcEncoder; +import com.strategyobject.substrateclient.rpc.RpcRegistryHelper; import com.strategyobject.substrateclient.scale.ScaleRegistryHelper; import com.strategyobject.substrateclient.scale.ScaleWriter; -import com.strategyobject.substrateclient.types.Array; import lombok.NonNull; import lombok.val; import lombok.var; diff --git a/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/encoder/RpcEncoderAnnotatedClass.java b/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/encoder/RpcEncoderAnnotatedClass.java index 5cc2c689..e968ce54 100644 --- a/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/encoder/RpcEncoderAnnotatedClass.java +++ b/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/encoder/RpcEncoderAnnotatedClass.java @@ -4,15 +4,15 @@ import com.strategyobject.substrateclient.common.codegen.JavaPoet; import com.strategyobject.substrateclient.common.codegen.ProcessingException; import com.strategyobject.substrateclient.common.codegen.ProcessorContext; -import com.strategyobject.substrateclient.rpc.core.EncoderPair; -import com.strategyobject.substrateclient.rpc.core.RpcEncoder; -import com.strategyobject.substrateclient.rpc.core.annotations.AutoRegister; -import com.strategyobject.substrateclient.rpc.core.annotations.Ignore; -import com.strategyobject.substrateclient.rpc.core.registries.RpcEncoderRegistry; +import com.strategyobject.substrateclient.rpc.EncoderPair; +import com.strategyobject.substrateclient.rpc.RpcEncoder; +import com.strategyobject.substrateclient.rpc.annotation.AutoRegister; +import com.strategyobject.substrateclient.rpc.annotation.Ignore; +import com.strategyobject.substrateclient.rpc.registries.RpcEncoderRegistry; import com.strategyobject.substrateclient.scale.ScaleUtils; import com.strategyobject.substrateclient.scale.ScaleWriter; -import com.strategyobject.substrateclient.scale.annotations.Scale; -import com.strategyobject.substrateclient.scale.annotations.ScaleGeneric; +import com.strategyobject.substrateclient.scale.annotation.Scale; +import com.strategyobject.substrateclient.scale.annotation.ScaleGeneric; import com.strategyobject.substrateclient.scale.codegen.ScaleAnnotationParser; import com.strategyobject.substrateclient.scale.codegen.writer.WriterCompositor; import com.strategyobject.substrateclient.scale.registries.ScaleWriterRegistry; @@ -56,7 +56,7 @@ public RpcEncoderAnnotatedClass(@NonNull TypeElement classElement) { .collect(toMap(i -> typeParameters.get(i).toString(), Function.identity())); fields = classElement.getEnclosedElements().stream() .filter(e -> e.getKind() == ElementKind.FIELD) - .map(e -> (VariableElement) e) + .map(VariableElement.class::cast) .collect(Collectors.toList()); } diff --git a/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/encoder/RpcEncoderProcessor.java b/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/encoder/RpcEncoderProcessor.java index 374bbd4d..ab8b4ed1 100644 --- a/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/encoder/RpcEncoderProcessor.java +++ b/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/encoder/RpcEncoderProcessor.java @@ -3,17 +3,18 @@ import com.google.auto.service.AutoService; import com.strategyobject.substrateclient.common.codegen.ProcessingException; import com.strategyobject.substrateclient.common.codegen.ProcessorContext; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcEncoder; +import com.strategyobject.substrateclient.rpc.annotation.RpcEncoder; import lombok.val; import javax.annotation.processing.*; import javax.lang.model.SourceVersion; +import javax.lang.model.element.Element; import javax.lang.model.element.ElementKind; import javax.lang.model.element.TypeElement; import java.io.IOException; import java.util.Set; -@SupportedAnnotationTypes("com.strategyobject.substrateclient.rpc.core.annotations.RpcEncoder") +@SupportedAnnotationTypes("com.strategyobject.substrateclient.rpc.annotation.RpcEncoder") @SupportedSourceVersion(SourceVersion.RELEASE_8) @AutoService(Processor.class) public class RpcEncoderProcessor extends AbstractProcessor { @@ -34,7 +35,7 @@ public boolean process(Set annotations, RoundEnvironment return false; } - for (val annotatedElement : roundEnv.getElementsAnnotatedWith(RpcEncoder.class)) { + for (Element annotatedElement : roundEnv.getElementsAnnotatedWith(RpcEncoder.class)) { if (annotatedElement.getKind() != ElementKind.CLASS) { context.error( annotatedElement, diff --git a/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/sections/Constants.java b/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/sections/Constants.java index b16ddb9c..e841db2a 100644 --- a/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/sections/Constants.java +++ b/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/sections/Constants.java @@ -13,4 +13,7 @@ class Constants { public static final String UNSUBSCRIBE = "unsubscribe"; static final String THEN_APPLY_ASYNC = "thenApplyAsync"; static final String ACCEPT = "accept"; + + private Constants() { + } } diff --git a/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcAnnotatedInterface.java b/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcAnnotatedInterface.java index 2c1a19ee..e6fe6d5f 100644 --- a/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcAnnotatedInterface.java +++ b/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcAnnotatedInterface.java @@ -7,10 +7,11 @@ import com.squareup.javapoet.TypeSpec; import com.strategyobject.substrateclient.common.codegen.ProcessingException; import com.strategyobject.substrateclient.common.codegen.ProcessorContext; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcInterface; +import com.strategyobject.substrateclient.rpc.annotation.RpcInterface; import com.strategyobject.substrateclient.transport.ProviderInterface; import lombok.NonNull; import lombok.val; +import lombok.var; import javax.lang.model.element.ExecutableElement; import javax.lang.model.element.Modifier; @@ -60,7 +61,7 @@ public void generateClass(@NonNull ProcessorContext context) .addField(ProviderInterface.class, PROVIDER_INTERFACE) .addMethod(createConstructor()); - for (val method : interfaceElement.getEnclosedElements()) { + for (var method : interfaceElement.getEnclosedElements()) { methodProcessor.process(section, (ExecutableElement) method, typeSpecBuilder, context); } diff --git a/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcCallProcessor.java b/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcCallProcessor.java index 621ec438..5491fbca 100644 --- a/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcCallProcessor.java +++ b/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcCallProcessor.java @@ -5,7 +5,7 @@ import com.squareup.javapoet.MethodSpec; import com.strategyobject.substrateclient.common.codegen.ProcessingException; import com.strategyobject.substrateclient.common.codegen.ProcessorContext; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcCall; +import com.strategyobject.substrateclient.rpc.annotation.RpcCall; import lombok.NonNull; import lombok.val; @@ -41,7 +41,7 @@ protected void ensureAnnotationIsFilled(ExecutableElement method, RpcCall method @Override protected void onProcessStarting(ProcessorContext context) { - + // This should be empty } @Override @@ -52,7 +52,7 @@ protected void callProviderInterface(MethodSpec.Builder methodSpecBuilder, ProcessorContext context, BiFunction decoder) { val rpcMethodName = String.format(RPC_METHOD_NAME_TEMPLATE, section, annotation.value()); - val paramsArgument = method.getParameters().size() == 0 ? "" : String.format(", %s", PARAMS_VAR); + val paramsArgument = method.getParameters().isEmpty() ? "" : String.format(", %s", PARAMS_VAR); val isReturnVoid = isReturnVoid(method, context); val code = CodeBlock.builder() @@ -82,6 +82,7 @@ protected boolean shouldBePassedToProvider(ExecutableElement method, VariableEle @Override protected void onParametersVisited(ExecutableElement method) { + // This should be empty } @Override diff --git a/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcInterfaceMethodValidatingProcessor.java b/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcInterfaceMethodValidatingProcessor.java index d97e9b6d..b74b441d 100644 --- a/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcInterfaceMethodValidatingProcessor.java +++ b/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcInterfaceMethodValidatingProcessor.java @@ -3,8 +3,8 @@ import com.squareup.javapoet.TypeSpec; import com.strategyobject.substrateclient.common.codegen.ProcessingException; import com.strategyobject.substrateclient.common.codegen.ProcessorContext; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcCall; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcSubscription; +import com.strategyobject.substrateclient.rpc.annotation.RpcCall; +import com.strategyobject.substrateclient.rpc.annotation.RpcSubscription; import lombok.NonNull; import lombok.val; diff --git a/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcInterfaceProcessor.java b/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcInterfaceProcessor.java index 29e86679..5ee2dd6f 100644 --- a/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcInterfaceProcessor.java +++ b/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcInterfaceProcessor.java @@ -3,18 +3,19 @@ import com.google.auto.service.AutoService; import com.strategyobject.substrateclient.common.codegen.ProcessingException; import com.strategyobject.substrateclient.common.codegen.ProcessorContext; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcInterface; +import com.strategyobject.substrateclient.rpc.annotation.RpcInterface; import lombok.val; import javax.annotation.processing.*; import javax.lang.model.SourceVersion; +import javax.lang.model.element.Element; import javax.lang.model.element.ElementKind; import javax.lang.model.element.TypeElement; import java.io.IOException; import java.util.Arrays; import java.util.Set; -@SupportedAnnotationTypes("com.strategyobject.substrateclient.rpc.core.annotations.RpcInterface") +@SupportedAnnotationTypes("com.strategyobject.substrateclient.rpc.annotation.RpcInterface") @SupportedSourceVersion(SourceVersion.RELEASE_8) @AutoService(Processor.class) public class RpcInterfaceProcessor extends AbstractProcessor { @@ -35,7 +36,7 @@ public boolean process(Set annotations, RoundEnvironment return false; } - for (val annotatedElement : roundEnv.getElementsAnnotatedWith(RpcInterface.class)) { + for (Element annotatedElement : roundEnv.getElementsAnnotatedWith(RpcInterface.class)) { if (annotatedElement.getKind() != ElementKind.INTERFACE) { context.error( annotatedElement, diff --git a/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcMethodProcessor.java b/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcMethodProcessor.java index 200d8faf..347d3aee 100644 --- a/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcMethodProcessor.java +++ b/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcMethodProcessor.java @@ -6,16 +6,16 @@ import com.squareup.javapoet.TypeSpec; import com.strategyobject.substrateclient.common.codegen.ProcessingException; import com.strategyobject.substrateclient.common.codegen.ProcessorContext; +import com.strategyobject.substrateclient.rpc.RpcDecoder; import com.strategyobject.substrateclient.rpc.codegen.decoder.DecoderCompositor; import com.strategyobject.substrateclient.rpc.codegen.encoder.EncoderCompositor; -import com.strategyobject.substrateclient.rpc.core.RpcDecoder; -import com.strategyobject.substrateclient.rpc.core.registries.RpcDecoderRegistry; -import com.strategyobject.substrateclient.rpc.core.registries.RpcEncoderRegistry; +import com.strategyobject.substrateclient.rpc.registries.RpcDecoderRegistry; +import com.strategyobject.substrateclient.rpc.registries.RpcEncoderRegistry; import com.strategyobject.substrateclient.scale.ScaleReader; import com.strategyobject.substrateclient.scale.ScaleUtils; import com.strategyobject.substrateclient.scale.ScaleWriter; -import com.strategyobject.substrateclient.scale.annotations.Scale; -import com.strategyobject.substrateclient.scale.annotations.ScaleGeneric; +import com.strategyobject.substrateclient.scale.annotation.Scale; +import com.strategyobject.substrateclient.scale.annotation.ScaleGeneric; import com.strategyobject.substrateclient.scale.codegen.ScaleAnnotationParser; import com.strategyobject.substrateclient.scale.codegen.reader.ReaderCompositor; import com.strategyobject.substrateclient.scale.codegen.writer.WriterCompositor; diff --git a/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcSubscriptionProcessor.java b/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcSubscriptionProcessor.java index 5bf0f3b1..e65ca641 100644 --- a/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcSubscriptionProcessor.java +++ b/rpc/rpc-codegen/src/main/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcSubscriptionProcessor.java @@ -5,7 +5,7 @@ import com.squareup.javapoet.MethodSpec; import com.strategyobject.substrateclient.common.codegen.ProcessingException; import com.strategyobject.substrateclient.common.codegen.ProcessorContext; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcSubscription; +import com.strategyobject.substrateclient.rpc.annotation.RpcSubscription; import com.strategyobject.substrateclient.transport.RpcObject; import lombok.NonNull; import lombok.val; diff --git a/rpc/rpc-codegen/src/test/java/com/strategyobject/substrateclient/rpc/codegen/decoder/RpcDecoderProcessorTests.java b/rpc/rpc-codegen/src/test/java/com/strategyobject/substrateclient/rpc/codegen/decoder/RpcDecoderProcessorTests.java index 698277e0..d3dea00a 100644 --- a/rpc/rpc-codegen/src/test/java/com/strategyobject/substrateclient/rpc/codegen/decoder/RpcDecoderProcessorTests.java +++ b/rpc/rpc-codegen/src/test/java/com/strategyobject/substrateclient/rpc/codegen/decoder/RpcDecoderProcessorTests.java @@ -3,8 +3,8 @@ import com.google.gson.Gson; import com.google.testing.compile.JavaFileObjects; import com.strategyobject.substrateclient.rpc.codegen.substitutes.TestDecodable; -import com.strategyobject.substrateclient.rpc.core.DecoderPair; -import com.strategyobject.substrateclient.rpc.core.registries.RpcDecoderRegistry; +import com.strategyobject.substrateclient.rpc.DecoderPair; +import com.strategyobject.substrateclient.rpc.registries.RpcDecoderRegistry; import com.strategyobject.substrateclient.transport.RpcObject; import lombok.val; import org.junit.jupiter.api.Test; @@ -16,7 +16,7 @@ import static com.google.testing.compile.Compiler.javac; import static org.junit.jupiter.api.Assertions.assertEquals; -public class RpcDecoderProcessorTests { +class RpcDecoderProcessorTests { private final Gson gson = new Gson(); @Test diff --git a/rpc/rpc-codegen/src/test/java/com/strategyobject/substrateclient/rpc/codegen/encoder/RpcEncoderProcessorTests.java b/rpc/rpc-codegen/src/test/java/com/strategyobject/substrateclient/rpc/codegen/encoder/RpcEncoderProcessorTests.java index e51de859..8a40c187 100644 --- a/rpc/rpc-codegen/src/test/java/com/strategyobject/substrateclient/rpc/codegen/encoder/RpcEncoderProcessorTests.java +++ b/rpc/rpc-codegen/src/test/java/com/strategyobject/substrateclient/rpc/codegen/encoder/RpcEncoderProcessorTests.java @@ -3,9 +3,9 @@ import com.google.gson.Gson; import com.google.testing.compile.JavaFileObjects; import com.strategyobject.substrateclient.rpc.codegen.substitutes.TestEncodable; -import com.strategyobject.substrateclient.rpc.core.EncoderPair; -import com.strategyobject.substrateclient.rpc.core.RpcEncoder; -import com.strategyobject.substrateclient.rpc.core.registries.RpcEncoderRegistry; +import com.strategyobject.substrateclient.rpc.EncoderPair; +import com.strategyobject.substrateclient.rpc.RpcEncoder; +import com.strategyobject.substrateclient.rpc.registries.RpcEncoderRegistry; import lombok.val; import org.junit.jupiter.api.Test; @@ -19,7 +19,7 @@ import static com.google.testing.compile.Compiler.javac; import static org.junit.jupiter.api.Assertions.assertEquals; -public class RpcEncoderProcessorTests { +class RpcEncoderProcessorTests { private final Gson gson = new Gson(); @Test diff --git a/rpc/rpc-codegen/src/test/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcInterfaceProcessorTest.java b/rpc/rpc-codegen/src/test/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcInterfaceProcessorTest.java index f5436c74..6bfb8867 100644 --- a/rpc/rpc-codegen/src/test/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcInterfaceProcessorTest.java +++ b/rpc/rpc-codegen/src/test/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcInterfaceProcessorTest.java @@ -1,8 +1,8 @@ package com.strategyobject.substrateclient.rpc.codegen.sections; import com.google.testing.compile.JavaFileObjects; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcCall; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcSubscription; +import com.strategyobject.substrateclient.rpc.annotation.RpcCall; +import com.strategyobject.substrateclient.rpc.annotation.RpcSubscription; import lombok.val; import org.junit.jupiter.api.Test; diff --git a/rpc/rpc-codegen/src/test/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcSectionFactoryTest.java b/rpc/rpc-codegen/src/test/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcSectionFactoryTest.java index a239d3e5..5d1645ee 100644 --- a/rpc/rpc-codegen/src/test/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcSectionFactoryTest.java +++ b/rpc/rpc-codegen/src/test/java/com/strategyobject/substrateclient/rpc/codegen/sections/RpcSectionFactoryTest.java @@ -1,8 +1,7 @@ package com.strategyobject.substrateclient.rpc.codegen.sections; +import com.strategyobject.substrateclient.rpc.RpcGeneratedSectionFactory; import com.strategyobject.substrateclient.rpc.codegen.substitutes.TestSection; -import com.strategyobject.substrateclient.rpc.core.RpcGeneratedSectionFactory; -import com.strategyobject.substrateclient.rpc.core.RpcInterfaceInitializationException; import com.strategyobject.substrateclient.transport.ProviderInterface; import com.strategyobject.substrateclient.transport.RpcBoolean; import com.strategyobject.substrateclient.transport.RpcObject; @@ -18,10 +17,10 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -public class RpcSectionFactoryTest { +class RpcSectionFactoryTest { // TODO move this test out of the project @Test - void createsRpcSectionAndCallsMethod() throws ExecutionException, InterruptedException, RpcInterfaceInitializationException { + void createsRpcSectionAndCallsMethod() throws ExecutionException, InterruptedException { val expected = true; val sendFuture = CompletableFuture.completedFuture((RpcObject) new RpcBoolean(expected)); val provider = mock(ProviderInterface.class); diff --git a/rpc/rpc-codegen/src/test/java/com/strategyobject/substrateclient/rpc/codegen/substitutes/TestDecodable.java b/rpc/rpc-codegen/src/test/java/com/strategyobject/substrateclient/rpc/codegen/substitutes/TestDecodable.java index 4b19d390..ed434d68 100644 --- a/rpc/rpc-codegen/src/test/java/com/strategyobject/substrateclient/rpc/codegen/substitutes/TestDecodable.java +++ b/rpc/rpc-codegen/src/test/java/com/strategyobject/substrateclient/rpc/codegen/substitutes/TestDecodable.java @@ -1,7 +1,7 @@ package com.strategyobject.substrateclient.rpc.codegen.substitutes; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcDecoder; -import com.strategyobject.substrateclient.scale.annotations.Scale; +import com.strategyobject.substrateclient.rpc.annotation.RpcDecoder; +import com.strategyobject.substrateclient.scale.annotation.Scale; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; diff --git a/rpc/rpc-codegen/src/test/java/com/strategyobject/substrateclient/rpc/codegen/substitutes/TestEncodable.java b/rpc/rpc-codegen/src/test/java/com/strategyobject/substrateclient/rpc/codegen/substitutes/TestEncodable.java index 0c9b4ab2..423079d1 100644 --- a/rpc/rpc-codegen/src/test/java/com/strategyobject/substrateclient/rpc/codegen/substitutes/TestEncodable.java +++ b/rpc/rpc-codegen/src/test/java/com/strategyobject/substrateclient/rpc/codegen/substitutes/TestEncodable.java @@ -1,7 +1,7 @@ package com.strategyobject.substrateclient.rpc.codegen.substitutes; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcEncoder; -import com.strategyobject.substrateclient.scale.annotations.Scale; +import com.strategyobject.substrateclient.rpc.annotation.RpcEncoder; +import com.strategyobject.substrateclient.scale.annotation.Scale; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; diff --git a/rpc/rpc-codegen/src/test/java/com/strategyobject/substrateclient/rpc/codegen/substitutes/TestSection.java b/rpc/rpc-codegen/src/test/java/com/strategyobject/substrateclient/rpc/codegen/substitutes/TestSection.java index e6d60939..1f6d3d46 100644 --- a/rpc/rpc-codegen/src/test/java/com/strategyobject/substrateclient/rpc/codegen/substitutes/TestSection.java +++ b/rpc/rpc-codegen/src/test/java/com/strategyobject/substrateclient/rpc/codegen/substitutes/TestSection.java @@ -1,7 +1,7 @@ package com.strategyobject.substrateclient.rpc.codegen.substitutes; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcCall; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcInterface; +import com.strategyobject.substrateclient.rpc.annotation.RpcCall; +import com.strategyobject.substrateclient.rpc.annotation.RpcInterface; import java.util.concurrent.CompletableFuture; diff --git a/rpc/rpc-codegen/src/test/resources/ClassSection.java b/rpc/rpc-codegen/src/test/resources/ClassSection.java index 0ea3d33b..4c0c9a81 100644 --- a/rpc/rpc-codegen/src/test/resources/ClassSection.java +++ b/rpc/rpc-codegen/src/test/resources/ClassSection.java @@ -1,7 +1,7 @@ package com.strategyobject.substrateclient.rpc.sections; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcCall; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcInterface; +import com.strategyobject.substrateclient.rpc.annotation.RpcCall; +import com.strategyobject.substrateclient.rpc.annotation.RpcInterface; import java.util.concurrent.CompletableFuture; diff --git a/rpc/rpc-codegen/src/test/resources/NamelessSection.java b/rpc/rpc-codegen/src/test/resources/NamelessSection.java index c0811f03..133176ae 100644 --- a/rpc/rpc-codegen/src/test/resources/NamelessSection.java +++ b/rpc/rpc-codegen/src/test/resources/NamelessSection.java @@ -1,7 +1,7 @@ package com.strategyobject.substrateclient.rpc.sections; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcCall; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcInterface; +import com.strategyobject.substrateclient.rpc.annotation.RpcCall; +import com.strategyobject.substrateclient.rpc.annotation.RpcInterface; import java.util.concurrent.CompletableFuture; diff --git a/rpc/rpc-codegen/src/test/resources/RpcDecodable.java b/rpc/rpc-codegen/src/test/resources/RpcDecodable.java index f32d8350..4ea20f5e 100644 --- a/rpc/rpc-codegen/src/test/resources/RpcDecodable.java +++ b/rpc/rpc-codegen/src/test/resources/RpcDecodable.java @@ -1,5 +1,5 @@ -import com.strategyobject.substrateclient.rpc.core.annotations.RpcDecoder; -import com.strategyobject.substrateclient.scale.annotations.Scale; +import com.strategyobject.substrateclient.rpc.annotation.RpcDecoder; +import com.strategyobject.substrateclient.scale.annotation.Scale; @RpcDecoder public class RpcDecodable { diff --git a/rpc/rpc-codegen/src/test/resources/RpcDecodableInterface.java b/rpc/rpc-codegen/src/test/resources/RpcDecodableInterface.java index 4cf88508..89e17007 100644 --- a/rpc/rpc-codegen/src/test/resources/RpcDecodableInterface.java +++ b/rpc/rpc-codegen/src/test/resources/RpcDecodableInterface.java @@ -1,4 +1,4 @@ -import com.strategyobject.substrateclient.rpc.core.annotations.RpcDecoder; +import com.strategyobject.substrateclient.rpc.annotation.RpcDecoder; @RpcDecoder public interface RpcDecodableInterface { diff --git a/rpc/rpc-codegen/src/test/resources/RpcDecodableWithoutSetter.java b/rpc/rpc-codegen/src/test/resources/RpcDecodableWithoutSetter.java index 24e0fa63..6a96215c 100644 --- a/rpc/rpc-codegen/src/test/resources/RpcDecodableWithoutSetter.java +++ b/rpc/rpc-codegen/src/test/resources/RpcDecodableWithoutSetter.java @@ -1,5 +1,5 @@ -import com.strategyobject.substrateclient.rpc.core.annotations.RpcDecoder; -import com.strategyobject.substrateclient.rpc.core.annotations.Scale; +import com.strategyobject.substrateclient.rpc.annotation.RpcDecoder; +import com.strategyobject.substrateclient.rpc.annotation.Scale; @RpcDecoder public class RpcDecodableWithoutSetter { diff --git a/rpc/rpc-codegen/src/test/resources/RpcEncodable.java b/rpc/rpc-codegen/src/test/resources/RpcEncodable.java index ad41eff8..8d0a5dbf 100644 --- a/rpc/rpc-codegen/src/test/resources/RpcEncodable.java +++ b/rpc/rpc-codegen/src/test/resources/RpcEncodable.java @@ -1,5 +1,5 @@ -import com.strategyobject.substrateclient.rpc.core.annotations.RpcEncoder; -import com.strategyobject.substrateclient.scale.annotations.Scale; +import com.strategyobject.substrateclient.rpc.annotation.RpcEncoder; +import com.strategyobject.substrateclient.scale.annotation.Scale; @RpcEncoder public class RpcEncodable { diff --git a/rpc/rpc-codegen/src/test/resources/RpcEncodableInterface.java b/rpc/rpc-codegen/src/test/resources/RpcEncodableInterface.java index 0761301c..b8aaa600 100644 --- a/rpc/rpc-codegen/src/test/resources/RpcEncodableInterface.java +++ b/rpc/rpc-codegen/src/test/resources/RpcEncodableInterface.java @@ -1,4 +1,4 @@ -import com.strategyobject.substrateclient.rpc.core.annotations.RpcEncoder; +import com.strategyobject.substrateclient.rpc.annotation.RpcEncoder; @RpcEncoder public interface RpcEncodableInterface { diff --git a/rpc/rpc-codegen/src/test/resources/RpcEncodableWithoutGetter.java b/rpc/rpc-codegen/src/test/resources/RpcEncodableWithoutGetter.java index a2d3d2e9..1392189d 100644 --- a/rpc/rpc-codegen/src/test/resources/RpcEncodableWithoutGetter.java +++ b/rpc/rpc-codegen/src/test/resources/RpcEncodableWithoutGetter.java @@ -1,5 +1,5 @@ -import com.strategyobject.substrateclient.rpc.core.annotations.RpcEncoder; -import com.strategyobject.substrateclient.rpc.core.annotations.Scale; +import com.strategyobject.substrateclient.rpc.annotation.RpcEncoder; +import com.strategyobject.substrateclient.rpc.annotation.Scale; @RpcEncoder public class RpcEncodableWithoutGetter { diff --git a/rpc/rpc-codegen/src/test/resources/SectionWithAmbiguousAnnotatedMethod.java b/rpc/rpc-codegen/src/test/resources/SectionWithAmbiguousAnnotatedMethod.java index aa212251..10819ec2 100644 --- a/rpc/rpc-codegen/src/test/resources/SectionWithAmbiguousAnnotatedMethod.java +++ b/rpc/rpc-codegen/src/test/resources/SectionWithAmbiguousAnnotatedMethod.java @@ -1,8 +1,8 @@ package com.strategyobject.substrateclient.rpc.sections; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcCall; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcInterface; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcSubscription; +import com.strategyobject.substrateclient.rpc.annotation.RpcCall; +import com.strategyobject.substrateclient.rpc.annotation.RpcInterface; +import com.strategyobject.substrateclient.rpc.annotation.RpcSubscription; import java.util.concurrent.CompletableFuture; diff --git a/rpc/rpc-codegen/src/test/resources/SectionWithIncorrectReturnOfMethod.java b/rpc/rpc-codegen/src/test/resources/SectionWithIncorrectReturnOfMethod.java index d9bba444..b198a931 100644 --- a/rpc/rpc-codegen/src/test/resources/SectionWithIncorrectReturnOfMethod.java +++ b/rpc/rpc-codegen/src/test/resources/SectionWithIncorrectReturnOfMethod.java @@ -1,7 +1,7 @@ package com.strategyobject.substrateclient.rpc.sections; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcCall; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcInterface; +import com.strategyobject.substrateclient.rpc.annotation.RpcCall; +import com.strategyobject.substrateclient.rpc.annotation.RpcInterface; @RpcInterface("empty") public interface SectionWithIncorrectReturnOfMethod { diff --git a/rpc/rpc-codegen/src/test/resources/SectionWithIncorrectReturnOfSubscription.java b/rpc/rpc-codegen/src/test/resources/SectionWithIncorrectReturnOfSubscription.java index 4ce64c41..c43527cc 100644 --- a/rpc/rpc-codegen/src/test/resources/SectionWithIncorrectReturnOfSubscription.java +++ b/rpc/rpc-codegen/src/test/resources/SectionWithIncorrectReturnOfSubscription.java @@ -1,7 +1,7 @@ package com.strategyobject.substrateclient.rpc.sections; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcInterface; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcSubscription; +import com.strategyobject.substrateclient.rpc.annotation.RpcInterface; +import com.strategyobject.substrateclient.rpc.annotation.RpcSubscription; import java.util.concurrent.CompletableFuture; import java.util.function.BiConsumer; diff --git a/rpc/rpc-codegen/src/test/resources/SectionWithManyCallbacks.java b/rpc/rpc-codegen/src/test/resources/SectionWithManyCallbacks.java index e211b10c..4fc8bc6e 100644 --- a/rpc/rpc-codegen/src/test/resources/SectionWithManyCallbacks.java +++ b/rpc/rpc-codegen/src/test/resources/SectionWithManyCallbacks.java @@ -1,7 +1,7 @@ package com.strategyobject.substrateclient.rpc.sections; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcInterface; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcSubscription; +import com.strategyobject.substrateclient.rpc.annotation.RpcInterface; +import com.strategyobject.substrateclient.rpc.annotation.RpcSubscription; import java.util.concurrent.CompletableFuture; import java.util.function.BiConsumer; diff --git a/rpc/rpc-codegen/src/test/resources/SectionWithoutAnnotatedMethod.java b/rpc/rpc-codegen/src/test/resources/SectionWithoutAnnotatedMethod.java index ded782d2..293d5bc8 100644 --- a/rpc/rpc-codegen/src/test/resources/SectionWithoutAnnotatedMethod.java +++ b/rpc/rpc-codegen/src/test/resources/SectionWithoutAnnotatedMethod.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.rpc.sections; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcInterface; +import com.strategyobject.substrateclient.rpc.annotation.RpcInterface; import java.util.concurrent.CompletableFuture; diff --git a/rpc/rpc-codegen/src/test/resources/SectionWithoutCallback.java b/rpc/rpc-codegen/src/test/resources/SectionWithoutCallback.java index 4023df24..f9d66d08 100644 --- a/rpc/rpc-codegen/src/test/resources/SectionWithoutCallback.java +++ b/rpc/rpc-codegen/src/test/resources/SectionWithoutCallback.java @@ -1,7 +1,7 @@ package com.strategyobject.substrateclient.rpc.sections; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcInterface; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcSubscription; +import com.strategyobject.substrateclient.rpc.annotation.RpcInterface; +import com.strategyobject.substrateclient.rpc.annotation.RpcSubscription; import java.util.concurrent.CompletableFuture; import java.util.function.Supplier; diff --git a/rpc/rpc-codegen/src/test/resources/TestSection.java b/rpc/rpc-codegen/src/test/resources/TestSection.java index b4619cbf..54f5e290 100644 --- a/rpc/rpc-codegen/src/test/resources/TestSection.java +++ b/rpc/rpc-codegen/src/test/resources/TestSection.java @@ -1,8 +1,8 @@ package com.strategyobject.substrateclient.rpc.sections; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcCall; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcInterface; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcSubscription; +import com.strategyobject.substrateclient.rpc.annotation.RpcCall; +import com.strategyobject.substrateclient.rpc.annotation.RpcInterface; +import com.strategyobject.substrateclient.rpc.annotation.RpcSubscription; import java.util.concurrent.CompletableFuture; import java.util.function.BiConsumer; diff --git a/rpc/rpc-core/build.gradle b/rpc/rpc-core/build.gradle deleted file mode 100644 index 3eda7960..00000000 --- a/rpc/rpc-core/build.gradle +++ /dev/null @@ -1,10 +0,0 @@ -dependencies { - implementation project(':common') - implementation project(':scale') - implementation project(':transport') - implementation project(':types') - - testImplementation project(':tests') - - testImplementation 'com.google.code.gson:gson:2.9.0' -} \ No newline at end of file diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/RpcInterfaceInitializationException.java b/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/RpcInterfaceInitializationException.java deleted file mode 100644 index b66240c6..00000000 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/RpcInterfaceInitializationException.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.strategyobject.substrateclient.rpc.core; - -public class RpcInterfaceInitializationException extends Exception { - public RpcInterfaceInitializationException(Throwable ex) { - super(ex); - } -} diff --git a/rpc/rpc-sections/build.gradle b/rpc/rpc-sections/build.gradle deleted file mode 100644 index f9995649..00000000 --- a/rpc/rpc-sections/build.gradle +++ /dev/null @@ -1,23 +0,0 @@ -dependencies { - implementation project(':common') - compileOnly project(':rpc:rpc-codegen') - compileOnly project(':rpc:rpc-core') - implementation project(':rpc:rpc-types') - implementation project(':scale') - compileOnly project(':transport') - implementation project(':types') - annotationProcessor project(':rpc:rpc-codegen') - - testImplementation project(':tests') - testCompileOnly project(':rpc:rpc-core') - testCompileOnly project(':common') - testCompileOnly project(':transport') - testImplementation project(':crypto') - testAnnotationProcessor project(':scale:scale-codegen') - - testImplementation 'org.testcontainers:testcontainers:1.17.1' - testImplementation 'org.testcontainers:junit-jupiter:1.17.1' - testImplementation 'ch.qos.logback:logback-classic:1.2.11' - testImplementation 'org.awaitility:awaitility:4.2.0' - testImplementation 'org.bouncycastle:bcprov-jdk15on:1.70' -} \ No newline at end of file diff --git a/rpc/rpc-sections/src/main/java/com/strategyobject/substrateclient/rpc/sections/System.java b/rpc/rpc-sections/src/main/java/com/strategyobject/substrateclient/rpc/sections/System.java deleted file mode 100644 index e5103ea6..00000000 --- a/rpc/rpc-sections/src/main/java/com/strategyobject/substrateclient/rpc/sections/System.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.strategyobject.substrateclient.rpc.sections; - -import com.strategyobject.substrateclient.rpc.core.annotations.RpcCall; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcInterface; -import com.strategyobject.substrateclient.rpc.types.AccountId; - -import java.util.concurrent.CompletableFuture; - -@RpcInterface("system") -public interface System { - @RpcCall("accountNextIndex") - CompletableFuture accountNextIndex(AccountId accountId); -} diff --git a/rpc/rpc-sections/src/test/java/com/strategyobject/substrateclient/rpc/sections/StateTests.java b/rpc/rpc-sections/src/test/java/com/strategyobject/substrateclient/rpc/sections/StateTests.java deleted file mode 100644 index 4f82ec22..00000000 --- a/rpc/rpc-sections/src/test/java/com/strategyobject/substrateclient/rpc/sections/StateTests.java +++ /dev/null @@ -1,251 +0,0 @@ -package com.strategyobject.substrateclient.rpc.sections; - -import com.strategyobject.substrateclient.common.utils.HexConverter; -import com.strategyobject.substrateclient.rpc.core.RpcGeneratedSectionFactory; -import com.strategyobject.substrateclient.rpc.core.RpcInterfaceInitializationException; -import com.strategyobject.substrateclient.rpc.types.StorageKey; -import com.strategyobject.substrateclient.tests.containers.SubstrateVersion; -import com.strategyobject.substrateclient.tests.containers.TestSubstrateContainer; -import com.strategyobject.substrateclient.transport.ws.WsProvider; -import lombok.val; -import org.junit.jupiter.api.Test; -import org.testcontainers.containers.Network; -import org.testcontainers.junit.jupiter.Container; -import org.testcontainers.junit.jupiter.Testcontainers; - -import java.util.Collections; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; - -import static org.junit.jupiter.api.Assertions.*; - -@Testcontainers -public class StateTests { - private static final int WAIT_TIMEOUT = 10; - private static final Network network = Network.newNetwork(); - - @Container - static final TestSubstrateContainer substrate = new TestSubstrateContainer(SubstrateVersion.V3_0_0) - .withNetwork(network); - - @Test - void getRuntimeVersion() throws ExecutionException, InterruptedException, TimeoutException, RpcInterfaceInitializationException { - try (WsProvider wsProvider = WsProvider.builder() - .setEndpoint(substrate.getWsAddress()) - .disableAutoConnect() - .build()) { - wsProvider.connect().get(WAIT_TIMEOUT, TimeUnit.SECONDS); - - State rpcSection = RpcGeneratedSectionFactory.create(State.class, wsProvider); - - assertDoesNotThrow(() -> { - rpcSection.getRuntimeVersion().get(WAIT_TIMEOUT, TimeUnit.SECONDS); - }); - } - } - - @Test - void getMetadata() throws ExecutionException, InterruptedException, TimeoutException, RpcInterfaceInitializationException { - try (WsProvider wsProvider = WsProvider.builder() - .setEndpoint(substrate.getWsAddress()) - .disableAutoConnect() - .build()) { - wsProvider.connect().get(WAIT_TIMEOUT, TimeUnit.SECONDS); - - State rpcSection = RpcGeneratedSectionFactory.create(State.class, wsProvider); - - assertDoesNotThrow(() -> { - rpcSection.getMetadata().get(WAIT_TIMEOUT * 10, TimeUnit.SECONDS); - }); - } - } - - @Test - void getKeys() throws ExecutionException, InterruptedException, TimeoutException, RpcInterfaceInitializationException { - try (WsProvider wsProvider = WsProvider.builder() - .setEndpoint(substrate.getWsAddress()) - .disableAutoConnect() - .build()) { - wsProvider.connect().get(WAIT_TIMEOUT, TimeUnit.SECONDS); - - State rpcSection = RpcGeneratedSectionFactory.create(State.class, wsProvider); - - // xxhash128("Balances") = 0xc2261276cc9d1f8598ea4b6a74b15c2f - // xxhash128("StorageVersion") = 0x308ce9615de0775a82f8a94dc3d285a1 - val key = "0xc2261276cc9d1f8598ea4b6a74b15c2f308ce9615de0775a82f8a94dc3d285a1"; // TODO implement and use `xxhash` - val keys = rpcSection.getKeys(StorageKey.valueOf(HexConverter.toBytes(key))).get(WAIT_TIMEOUT, TimeUnit.SECONDS); - - assertTrue(keys.size() > 0); - } - } - - @Test - void getStorage() throws ExecutionException, InterruptedException, TimeoutException, RpcInterfaceInitializationException { - try (WsProvider wsProvider = WsProvider.builder() - .setEndpoint(substrate.getWsAddress()) - .disableAutoConnect() - .build()) { - wsProvider.connect().get(WAIT_TIMEOUT, TimeUnit.SECONDS); - - State rpcSection = RpcGeneratedSectionFactory.create(State.class, wsProvider); - - // xxhash128("Balances") = 0xc2261276cc9d1f8598ea4b6a74b15c2f - // xxhash128("StorageVersion") = 0x308ce9615de0775a82f8a94dc3d285a1 - val key = "0xc2261276cc9d1f8598ea4b6a74b15c2f308ce9615de0775a82f8a94dc3d285a1"; // TODO implement and use `xxhash` - val storageData = rpcSection.getStorage(StorageKey.valueOf(HexConverter.toBytes(key))).get(WAIT_TIMEOUT, TimeUnit.SECONDS); - - assertNotNull(storageData); - assertTrue(storageData.getData().length > 0); - } - } - - @Test - void getStorageHandlesNullResponse() throws ExecutionException, InterruptedException, TimeoutException, RpcInterfaceInitializationException { - try (WsProvider wsProvider = WsProvider.builder() - .setEndpoint(substrate.getWsAddress()) - .disableAutoConnect() - .build()) { - wsProvider.connect().get(WAIT_TIMEOUT, TimeUnit.SECONDS); - - State rpcSection = RpcGeneratedSectionFactory.create(State.class, wsProvider); - - val emptyKey = new byte[32]; - val storageData = rpcSection.getStorage(StorageKey.valueOf(emptyKey)).get(WAIT_TIMEOUT, TimeUnit.SECONDS); - - assertNull(storageData); - } - } - - @Test - void getStorageAtBlock() throws ExecutionException, InterruptedException, TimeoutException, RpcInterfaceInitializationException { - try (WsProvider wsProvider = WsProvider.builder() - .setEndpoint(substrate.getWsAddress()) - .disableAutoConnect() - .build()) { - wsProvider.connect().get(WAIT_TIMEOUT, TimeUnit.SECONDS); - - val chainSection = RpcGeneratedSectionFactory.create(Chain.class, wsProvider); - val blockHash = chainSection.getBlockHash(0).get(WAIT_TIMEOUT, TimeUnit.SECONDS); - State rpcSection = RpcGeneratedSectionFactory.create(State.class, wsProvider); - - // xxhash128("Balances") = 0xc2261276cc9d1f8598ea4b6a74b15c2f - // xxhash128("StorageVersion") = 0x308ce9615de0775a82f8a94dc3d285a1 - val key = "0xc2261276cc9d1f8598ea4b6a74b15c2f308ce9615de0775a82f8a94dc3d285a1"; // TODO implement and use `xxhash` - val storageData = rpcSection.getStorage( - StorageKey.valueOf(HexConverter.toBytes(key)), - blockHash).get(WAIT_TIMEOUT, TimeUnit.SECONDS); - - assertNotNull(storageData); - assertTrue(storageData.getData().length > 0); - } - } - - @Test - void getStorageHash() throws ExecutionException, InterruptedException, TimeoutException, RpcInterfaceInitializationException { - try (WsProvider wsProvider = WsProvider.builder() - .setEndpoint(substrate.getWsAddress()) - .disableAutoConnect() - .build()) { - wsProvider.connect().get(WAIT_TIMEOUT, TimeUnit.SECONDS); - - State rpcSection = RpcGeneratedSectionFactory.create(State.class, wsProvider); - - // xxhash128("Balances") = 0xc2261276cc9d1f8598ea4b6a74b15c2f - // xxhash128("StorageVersion") = 0x308ce9615de0775a82f8a94dc3d285a1 - val key = "0xc2261276cc9d1f8598ea4b6a74b15c2f308ce9615de0775a82f8a94dc3d285a1"; // TODO implement and use `xxhash` - val hash = rpcSection.getStorageHash(StorageKey.valueOf(HexConverter.toBytes(key))).get(WAIT_TIMEOUT, TimeUnit.SECONDS); - - assertNotNull(hash); - assertTrue(hash.getData().length > 0); - } - } - - @Test - void getStorageHashAt() throws ExecutionException, InterruptedException, TimeoutException, RpcInterfaceInitializationException { - try (WsProvider wsProvider = WsProvider.builder() - .setEndpoint(substrate.getWsAddress()) - .disableAutoConnect() - .build()) { - wsProvider.connect().get(WAIT_TIMEOUT, TimeUnit.SECONDS); - - val chainSection = RpcGeneratedSectionFactory.create(Chain.class, wsProvider); - val blockHash = chainSection.getBlockHash(0).get(WAIT_TIMEOUT, TimeUnit.SECONDS); - State rpcSection = RpcGeneratedSectionFactory.create(State.class, wsProvider); - - // xxhash128("Balances") = 0xc2261276cc9d1f8598ea4b6a74b15c2f - // xxhash128("StorageVersion") = 0x308ce9615de0775a82f8a94dc3d285a1 - val key = "0xc2261276cc9d1f8598ea4b6a74b15c2f308ce9615de0775a82f8a94dc3d285a1"; // TODO implement and use `xxhash` - val hash = rpcSection.getStorageHash( - StorageKey.valueOf(HexConverter.toBytes(key)), - blockHash).get(WAIT_TIMEOUT, TimeUnit.SECONDS); - - assertNotNull(hash); - assertTrue(hash.getData().length > 0); - } - } - - @Test - void getStorageSize() throws ExecutionException, InterruptedException, TimeoutException, RpcInterfaceInitializationException { - try (WsProvider wsProvider = WsProvider.builder() - .setEndpoint(substrate.getWsAddress()) - .disableAutoConnect() - .build()) { - wsProvider.connect().get(WAIT_TIMEOUT, TimeUnit.SECONDS); - - State rpcSection = RpcGeneratedSectionFactory.create(State.class, wsProvider); - - // xxhash128("Balances") = 0xc2261276cc9d1f8598ea4b6a74b15c2f - // xxhash128("StorageVersion") = 0x308ce9615de0775a82f8a94dc3d285a1 - val key = "0xc2261276cc9d1f8598ea4b6a74b15c2f308ce9615de0775a82f8a94dc3d285a1"; // TODO implement and use `xxhash` - val size = rpcSection.getStorageSize(StorageKey.valueOf(HexConverter.toBytes(key))).get(WAIT_TIMEOUT, TimeUnit.SECONDS); - - assertEquals(1, size); - } - } - - @Test - void getStorageSizeAt() throws ExecutionException, InterruptedException, TimeoutException, RpcInterfaceInitializationException { - try (WsProvider wsProvider = WsProvider.builder() - .setEndpoint(substrate.getWsAddress()) - .disableAutoConnect() - .build()) { - wsProvider.connect().get(WAIT_TIMEOUT, TimeUnit.SECONDS); - - val chainSection = RpcGeneratedSectionFactory.create(Chain.class, wsProvider); - val blockHash = chainSection.getBlockHash(0).get(WAIT_TIMEOUT, TimeUnit.SECONDS); - State rpcSection = RpcGeneratedSectionFactory.create(State.class, wsProvider); - - // xxhash128("Balances") = 0xc2261276cc9d1f8598ea4b6a74b15c2f - // xxhash128("StorageVersion") = 0x308ce9615de0775a82f8a94dc3d285a1 - val key = "0xc2261276cc9d1f8598ea4b6a74b15c2f308ce9615de0775a82f8a94dc3d285a1"; // TODO implement and use `xxhash` - val size = rpcSection.getStorageSize( - StorageKey.valueOf(HexConverter.toBytes(key)), - blockHash).get(WAIT_TIMEOUT, TimeUnit.SECONDS); - - assertEquals(1, size); - } - } - - @Test - void queryStorageAt() throws ExecutionException, InterruptedException, TimeoutException, RpcInterfaceInitializationException { - try (WsProvider wsProvider = WsProvider.builder() - .setEndpoint(substrate.getWsAddress()) - .disableAutoConnect() - .build()) { - wsProvider.connect().get(WAIT_TIMEOUT, TimeUnit.SECONDS); - - State rpcSection = RpcGeneratedSectionFactory.create(State.class, wsProvider); - - // xxhash128("Balances") = 0xc2261276cc9d1f8598ea4b6a74b15c2f - // xxhash128("StorageVersion") = 0x308ce9615de0775a82f8a94dc3d285a1 - val key = "0xc2261276cc9d1f8598ea4b6a74b15c2f308ce9615de0775a82f8a94dc3d285a1"; // TODO implement and use `xxhash` - val changes = rpcSection.queryStorageAt(Collections.singletonList(StorageKey.valueOf(HexConverter.toBytes(key)))).get(WAIT_TIMEOUT, TimeUnit.SECONDS); - - assertTrue(changes.size() > 0); - assertTrue(changes.get(0).getChanges().size() > 0); - assertNotNull(changes.get(0).getChanges().get(0).getValue0().getData()); - assertTrue(changes.get(0).getChanges().get(0).getValue0().getData().length > 0); - } - } -} diff --git a/rpc/rpc-sections/src/test/java/com/strategyobject/substrateclient/rpc/sections/substitutes/ExtrinsicBuilder.java b/rpc/rpc-sections/src/test/java/com/strategyobject/substrateclient/rpc/sections/substitutes/ExtrinsicBuilder.java deleted file mode 100644 index c8c59d7f..00000000 --- a/rpc/rpc-sections/src/test/java/com/strategyobject/substrateclient/rpc/sections/substitutes/ExtrinsicBuilder.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.strategyobject.substrateclient.rpc.sections.substitutes; - -public class ExtrinsicBuilder { - -} diff --git a/rpc/rpc-types/build.gradle b/rpc/rpc-types/build.gradle deleted file mode 100644 index c2287a6c..00000000 --- a/rpc/rpc-types/build.gradle +++ /dev/null @@ -1,11 +0,0 @@ -dependencies { - implementation project(':types') - implementation project(':scale') - implementation project(':rpc:rpc-core') - implementation project(':common') - implementation project(':crypto') - implementation project(':transport') - - annotationProcessor project(':rpc:rpc-codegen') - annotationProcessor project(':scale:scale-codegen') -} \ No newline at end of file diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/FixedBytesScaleWriter.java b/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/FixedBytesScaleWriter.java deleted file mode 100644 index fc41632b..00000000 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/FixedBytesScaleWriter.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.strategyobject.substrateclient.rpc.types; - -import com.google.common.base.Preconditions; -import com.strategyobject.substrateclient.common.io.Streamer; -import com.strategyobject.substrateclient.scale.ScaleWriter; -import com.strategyobject.substrateclient.scale.annotations.AutoRegister; -import com.strategyobject.substrateclient.types.FixedBytes; -import com.strategyobject.substrateclient.types.Size; -import lombok.NonNull; - -import java.io.IOException; -import java.io.OutputStream; - -@AutoRegister(types = {AccountId.class, BlockHash.class}) -public class FixedBytesScaleWriter implements ScaleWriter> { - @Override - public void write(@NonNull FixedBytes value, @NonNull OutputStream stream, ScaleWriter... writers) throws IOException { - Preconditions.checkArgument(writers == null || writers.length == 0); - - Streamer.writeBytes(value.getData(), stream); - } -} diff --git a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/RuntimeVersion.java b/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/RuntimeVersion.java deleted file mode 100644 index 2e9647b2..00000000 --- a/rpc/rpc-types/src/main/java/com/strategyobject/substrateclient/rpc/types/RuntimeVersion.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.strategyobject.substrateclient.rpc.types; - -import com.strategyobject.substrateclient.rpc.core.annotations.RpcDecoder; - -@RpcDecoder -public class RuntimeVersion { -} diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/DecoderPair.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/DecoderPair.java similarity index 92% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/DecoderPair.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/DecoderPair.java index 903107b7..2e2e69da 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/DecoderPair.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/DecoderPair.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.rpc.core; +package com.strategyobject.substrateclient.rpc; import com.strategyobject.substrateclient.scale.ScaleReader; import lombok.Getter; diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/EncoderPair.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/EncoderPair.java similarity index 92% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/EncoderPair.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/EncoderPair.java index 01870be5..76e7c1c0 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/EncoderPair.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/EncoderPair.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.rpc.core; +package com.strategyobject.substrateclient.rpc; import com.strategyobject.substrateclient.scale.ScaleWriter; import lombok.Getter; diff --git a/rpc/src/main/java/com/strategyobject/substrateclient/rpc/Rpc.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/Rpc.java deleted file mode 100644 index f709b1a3..00000000 --- a/rpc/src/main/java/com/strategyobject/substrateclient/rpc/Rpc.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.strategyobject.substrateclient.rpc; - -import com.strategyobject.substrateclient.rpc.sections.Author; -import com.strategyobject.substrateclient.rpc.sections.Chain; -import com.strategyobject.substrateclient.rpc.sections.State; -import com.strategyobject.substrateclient.rpc.sections.System; - -public interface Rpc { - Author author(); - - Chain chain(); - - State state(); - - System system(); -} diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/RpcDecoder.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/RpcDecoder.java similarity index 85% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/RpcDecoder.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/RpcDecoder.java index 5e6c6249..130d45e8 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/RpcDecoder.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/RpcDecoder.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.rpc.core; +package com.strategyobject.substrateclient.rpc; import com.strategyobject.substrateclient.transport.RpcObject; diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/RpcEncoder.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/RpcEncoder.java similarity index 81% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/RpcEncoder.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/RpcEncoder.java index 0c088b47..8da9d848 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/RpcEncoder.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/RpcEncoder.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.rpc.core; +package com.strategyobject.substrateclient.rpc; public interface RpcEncoder { Object encode(T source, EncoderPair... encoders); diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/RpcGeneratedSectionFactory.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/RpcGeneratedSectionFactory.java similarity index 69% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/RpcGeneratedSectionFactory.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/RpcGeneratedSectionFactory.java index 8222ab7f..60e95560 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/RpcGeneratedSectionFactory.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/RpcGeneratedSectionFactory.java @@ -1,12 +1,10 @@ -package com.strategyobject.substrateclient.rpc.core; +package com.strategyobject.substrateclient.rpc; -import com.strategyobject.substrateclient.rpc.core.annotations.RpcInterface; +import com.strategyobject.substrateclient.rpc.annotation.RpcInterface; import com.strategyobject.substrateclient.transport.ProviderInterface; import lombok.NonNull; import lombok.val; -import java.lang.reflect.InvocationTargetException; - public class RpcGeneratedSectionFactory { private static final String CLASS_NAME_TEMPLATE = "%sImpl"; @@ -14,7 +12,7 @@ private RpcGeneratedSectionFactory() { } public static T create(@NonNull Class interfaceClass, - @NonNull ProviderInterface provider) throws RpcInterfaceInitializationException { + @NonNull ProviderInterface provider) { if (interfaceClass.getDeclaredAnnotationsByType(RpcInterface.class).length == 0) { throw new IllegalArgumentException( String.format("`%s` can't be constructed because isn't annotated with `@%s`.", @@ -28,8 +26,8 @@ public static T create(@NonNull Class interfaceClass, val ctor = clazz.getConstructor(ProviderInterface.class); return interfaceClass.cast(ctor.newInstance(provider)); - } catch (ClassCastException | ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e) { - throw new RpcInterfaceInitializationException(e); + } catch (ReflectiveOperationException e) { + throw new RuntimeException(e); } } } diff --git a/rpc/src/main/java/com/strategyobject/substrateclient/rpc/RpcImpl.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/RpcImpl.java deleted file mode 100644 index 6adb2d0f..00000000 --- a/rpc/src/main/java/com/strategyobject/substrateclient/rpc/RpcImpl.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.strategyobject.substrateclient.rpc; - -import com.strategyobject.substrateclient.rpc.core.RpcGeneratedSectionFactory; -import com.strategyobject.substrateclient.rpc.core.RpcInterfaceInitializationException; -import com.strategyobject.substrateclient.rpc.sections.Author; -import com.strategyobject.substrateclient.rpc.sections.Chain; -import com.strategyobject.substrateclient.rpc.sections.State; -import com.strategyobject.substrateclient.rpc.sections.System; -import com.strategyobject.substrateclient.transport.ProviderInterface; -import lombok.NonNull; - -public class RpcImpl implements Rpc, AutoCloseable { - private final ProviderInterface providerInterface; - private final Author author; - private final Chain chain; - private final State state; - private final System system; - - private RpcImpl(ProviderInterface providerInterface) { - this.providerInterface = providerInterface; - author = resolveSection(Author.class); - chain = resolveSection(Chain.class); - state = resolveSection(State.class); - system = resolveSection(System.class); - } - - private T resolveSection(Class clazz) { - try { - return RpcGeneratedSectionFactory.create(clazz, providerInterface); - } catch (RpcInterfaceInitializationException e) { - throw new RuntimeException(e); - } - } - - public static RpcImpl with(@NonNull ProviderInterface providerInterface) { - return new RpcImpl(providerInterface); - } - - @Override - public Author author() { - return author; - } - - @Override - public Chain chain() { - return chain; - } - - @Override - public State state() { - return state; - } - - @Override - public System system() { - return system; - } - - @Override - public void close() throws Exception { - if (providerInterface instanceof AutoCloseable) { - ((AutoCloseable) providerInterface).close(); - } - } -} diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/RpcRegistryHelper.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/RpcRegistryHelper.java similarity index 78% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/RpcRegistryHelper.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/RpcRegistryHelper.java index d0f3fdd8..5d627cfd 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/RpcRegistryHelper.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/RpcRegistryHelper.java @@ -1,7 +1,7 @@ -package com.strategyobject.substrateclient.rpc.core; +package com.strategyobject.substrateclient.rpc; -import com.strategyobject.substrateclient.rpc.core.registries.RpcDecoderRegistry; -import com.strategyobject.substrateclient.rpc.core.registries.RpcEncoderRegistry; +import com.strategyobject.substrateclient.rpc.registries.RpcDecoderRegistry; +import com.strategyobject.substrateclient.rpc.registries.RpcEncoderRegistry; import lombok.val; public final class RpcRegistryHelper { diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/RpcSelfEncodable.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/RpcSelfEncodable.java similarity index 68% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/RpcSelfEncodable.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/RpcSelfEncodable.java index 364dabcf..067d1d65 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/RpcSelfEncodable.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/RpcSelfEncodable.java @@ -1,6 +1,6 @@ -package com.strategyobject.substrateclient.rpc.core; +package com.strategyobject.substrateclient.rpc; -import com.strategyobject.substrateclient.rpc.core.registries.RpcEncoderRegistry; +import com.strategyobject.substrateclient.rpc.registries.RpcEncoderRegistry; public interface RpcSelfEncodable> { @SuppressWarnings("unchecked") diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/annotations/AutoRegister.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/annotation/AutoRegister.java similarity index 83% rename from scale/src/main/java/com/strategyobject/substrateclient/scale/annotations/AutoRegister.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/annotation/AutoRegister.java index a8d35e99..118f46c5 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/annotations/AutoRegister.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/annotation/AutoRegister.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.scale.annotations; +package com.strategyobject.substrateclient.rpc.annotation; import lombok.NonNull; diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/annotations/Ignore.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/annotation/Ignore.java similarity index 80% rename from scale/src/main/java/com/strategyobject/substrateclient/scale/annotations/Ignore.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/annotation/Ignore.java index 89fb6b67..2197cee2 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/annotations/Ignore.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/annotation/Ignore.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.scale.annotations; +package com.strategyobject.substrateclient.rpc.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/annotations/RpcCall.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/annotation/RpcCall.java similarity index 80% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/annotations/RpcCall.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/annotation/RpcCall.java index 9c0cd426..ba404479 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/annotations/RpcCall.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/annotation/RpcCall.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.rpc.core.annotations; +package com.strategyobject.substrateclient.rpc.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/annotations/RpcDecoder.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/annotation/RpcDecoder.java similarity index 81% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/annotations/RpcDecoder.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/annotation/RpcDecoder.java index 1e2c3713..8a85a681 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/annotations/RpcDecoder.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/annotation/RpcDecoder.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.rpc.core.annotations; +package com.strategyobject.substrateclient.rpc.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/annotations/RpcEncoder.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/annotation/RpcEncoder.java similarity index 81% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/annotations/RpcEncoder.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/annotation/RpcEncoder.java index 5c7a6be9..3641e572 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/annotations/RpcEncoder.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/annotation/RpcEncoder.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.rpc.core.annotations; +package com.strategyobject.substrateclient.rpc.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/annotations/RpcInterface.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/annotation/RpcInterface.java similarity index 82% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/annotations/RpcInterface.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/annotation/RpcInterface.java index 4797eeb9..833ee64e 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/annotations/RpcInterface.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/annotation/RpcInterface.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.rpc.core.annotations; +package com.strategyobject.substrateclient.rpc.annotation; import lombok.NonNull; diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/annotations/RpcSubscription.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/annotation/RpcSubscription.java similarity index 84% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/annotations/RpcSubscription.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/annotation/RpcSubscription.java index 03beb642..047e065c 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/annotations/RpcSubscription.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/annotation/RpcSubscription.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.rpc.core.annotations; +package com.strategyobject.substrateclient.rpc.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/AbstractDecoder.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/AbstractDecoder.java similarity index 78% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/AbstractDecoder.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/AbstractDecoder.java index f4920b6d..dea15a5d 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/AbstractDecoder.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/AbstractDecoder.java @@ -1,8 +1,8 @@ -package com.strategyobject.substrateclient.rpc.core.decoders; +package com.strategyobject.substrateclient.rpc.decoders; import com.google.common.base.Preconditions; -import com.strategyobject.substrateclient.rpc.core.DecoderPair; -import com.strategyobject.substrateclient.rpc.core.RpcDecoder; +import com.strategyobject.substrateclient.rpc.DecoderPair; +import com.strategyobject.substrateclient.rpc.RpcDecoder; import com.strategyobject.substrateclient.transport.RpcObject; public abstract class AbstractDecoder implements RpcDecoder { diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/ArrayDecoder.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/ArrayDecoder.java similarity index 85% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/ArrayDecoder.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/ArrayDecoder.java index f22f1af6..ca876685 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/ArrayDecoder.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/ArrayDecoder.java @@ -1,7 +1,7 @@ -package com.strategyobject.substrateclient.rpc.core.decoders; +package com.strategyobject.substrateclient.rpc.decoders; import com.google.common.base.Preconditions; -import com.strategyobject.substrateclient.rpc.core.DecoderPair; +import com.strategyobject.substrateclient.rpc.DecoderPair; import com.strategyobject.substrateclient.transport.RpcObject; import lombok.val; diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/BooleanDecoder.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/BooleanDecoder.java similarity index 67% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/BooleanDecoder.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/BooleanDecoder.java index 9a970dc1..696b0e2b 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/BooleanDecoder.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/BooleanDecoder.java @@ -1,6 +1,6 @@ -package com.strategyobject.substrateclient.rpc.core.decoders; +package com.strategyobject.substrateclient.rpc.decoders; -import com.strategyobject.substrateclient.rpc.core.DecoderPair; +import com.strategyobject.substrateclient.rpc.DecoderPair; import com.strategyobject.substrateclient.transport.RpcObject; public class BooleanDecoder extends AbstractDecoder { diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/ByteDecoder.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/ByteDecoder.java similarity index 68% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/ByteDecoder.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/ByteDecoder.java index 1e0fb28d..859f0477 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/ByteDecoder.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/ByteDecoder.java @@ -1,6 +1,6 @@ -package com.strategyobject.substrateclient.rpc.core.decoders; +package com.strategyobject.substrateclient.rpc.decoders; -import com.strategyobject.substrateclient.rpc.core.DecoderPair; +import com.strategyobject.substrateclient.rpc.DecoderPair; import com.strategyobject.substrateclient.transport.RpcObject; public class ByteDecoder extends AbstractDecoder { diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/DoubleDecoder.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/DoubleDecoder.java similarity index 68% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/DoubleDecoder.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/DoubleDecoder.java index bbb4058b..385d9423 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/DoubleDecoder.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/DoubleDecoder.java @@ -1,6 +1,6 @@ -package com.strategyobject.substrateclient.rpc.core.decoders; +package com.strategyobject.substrateclient.rpc.decoders; -import com.strategyobject.substrateclient.rpc.core.DecoderPair; +import com.strategyobject.substrateclient.rpc.DecoderPair; import com.strategyobject.substrateclient.transport.RpcObject; public class DoubleDecoder extends AbstractDecoder { diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/FloatDecoder.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/FloatDecoder.java similarity index 68% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/FloatDecoder.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/FloatDecoder.java index 09b19b0d..73deba7a 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/FloatDecoder.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/FloatDecoder.java @@ -1,6 +1,6 @@ -package com.strategyobject.substrateclient.rpc.core.decoders; +package com.strategyobject.substrateclient.rpc.decoders; -import com.strategyobject.substrateclient.rpc.core.DecoderPair; +import com.strategyobject.substrateclient.rpc.DecoderPair; import com.strategyobject.substrateclient.transport.RpcObject; public class FloatDecoder extends AbstractDecoder { diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/IntDecoder.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/IntDecoder.java similarity index 68% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/IntDecoder.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/IntDecoder.java index 4c6aafce..27ddd767 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/IntDecoder.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/IntDecoder.java @@ -1,6 +1,6 @@ -package com.strategyobject.substrateclient.rpc.core.decoders; +package com.strategyobject.substrateclient.rpc.decoders; -import com.strategyobject.substrateclient.rpc.core.DecoderPair; +import com.strategyobject.substrateclient.rpc.DecoderPair; import com.strategyobject.substrateclient.transport.RpcObject; public class IntDecoder extends AbstractDecoder { diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/ListDecoder.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/ListDecoder.java similarity index 86% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/ListDecoder.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/ListDecoder.java index 97e297da..6463fc99 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/ListDecoder.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/ListDecoder.java @@ -1,7 +1,7 @@ -package com.strategyobject.substrateclient.rpc.core.decoders; +package com.strategyobject.substrateclient.rpc.decoders; import com.google.common.base.Preconditions; -import com.strategyobject.substrateclient.rpc.core.DecoderPair; +import com.strategyobject.substrateclient.rpc.DecoderPair; import com.strategyobject.substrateclient.transport.RpcObject; import lombok.val; diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/LongDecoder.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/LongDecoder.java similarity index 68% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/LongDecoder.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/LongDecoder.java index bd9efa1e..f59659b4 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/LongDecoder.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/LongDecoder.java @@ -1,6 +1,6 @@ -package com.strategyobject.substrateclient.rpc.core.decoders; +package com.strategyobject.substrateclient.rpc.decoders; -import com.strategyobject.substrateclient.rpc.core.DecoderPair; +import com.strategyobject.substrateclient.rpc.DecoderPair; import com.strategyobject.substrateclient.transport.RpcObject; public class LongDecoder extends AbstractDecoder { diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/MapDecoder.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/MapDecoder.java similarity index 89% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/MapDecoder.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/MapDecoder.java index 3507df60..d6b5af13 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/MapDecoder.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/MapDecoder.java @@ -1,7 +1,7 @@ -package com.strategyobject.substrateclient.rpc.core.decoders; +package com.strategyobject.substrateclient.rpc.decoders; import com.google.common.base.Preconditions; -import com.strategyobject.substrateclient.rpc.core.DecoderPair; +import com.strategyobject.substrateclient.rpc.DecoderPair; import com.strategyobject.substrateclient.transport.RpcObject; import lombok.val; diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/ShortDecoder.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/ShortDecoder.java similarity index 68% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/ShortDecoder.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/ShortDecoder.java index 51a7cb75..d811a69f 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/ShortDecoder.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/ShortDecoder.java @@ -1,6 +1,6 @@ -package com.strategyobject.substrateclient.rpc.core.decoders; +package com.strategyobject.substrateclient.rpc.decoders; -import com.strategyobject.substrateclient.rpc.core.DecoderPair; +import com.strategyobject.substrateclient.rpc.DecoderPair; import com.strategyobject.substrateclient.transport.RpcObject; public class ShortDecoder extends AbstractDecoder { diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/StringDecoder.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/StringDecoder.java similarity index 67% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/StringDecoder.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/StringDecoder.java index d435f5e8..c40b1f18 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/StringDecoder.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/StringDecoder.java @@ -1,6 +1,6 @@ -package com.strategyobject.substrateclient.rpc.core.decoders; +package com.strategyobject.substrateclient.rpc.decoders; -import com.strategyobject.substrateclient.rpc.core.DecoderPair; +import com.strategyobject.substrateclient.rpc.DecoderPair; import com.strategyobject.substrateclient.transport.RpcObject; public class StringDecoder extends AbstractDecoder { diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/UnitDecoder.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/UnitDecoder.java similarity index 59% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/UnitDecoder.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/UnitDecoder.java index edea9fc4..4effbb66 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/UnitDecoder.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/UnitDecoder.java @@ -1,10 +1,10 @@ -package com.strategyobject.substrateclient.rpc.core.decoders; +package com.strategyobject.substrateclient.rpc.decoders; import com.google.common.base.Preconditions; -import com.strategyobject.substrateclient.rpc.core.DecoderPair; -import com.strategyobject.substrateclient.rpc.core.RpcDecoder; +import com.strategyobject.substrateclient.common.types.Unit; +import com.strategyobject.substrateclient.rpc.DecoderPair; +import com.strategyobject.substrateclient.rpc.RpcDecoder; import com.strategyobject.substrateclient.transport.RpcObject; -import com.strategyobject.substrateclient.types.Unit; public class UnitDecoder implements RpcDecoder { @Override diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/VoidDecoder.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/VoidDecoder.java similarity index 65% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/VoidDecoder.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/VoidDecoder.java index bb62bb0c..d3931efc 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/decoders/VoidDecoder.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/decoders/VoidDecoder.java @@ -1,8 +1,8 @@ -package com.strategyobject.substrateclient.rpc.core.decoders; +package com.strategyobject.substrateclient.rpc.decoders; import com.google.common.base.Preconditions; -import com.strategyobject.substrateclient.rpc.core.DecoderPair; -import com.strategyobject.substrateclient.rpc.core.RpcDecoder; +import com.strategyobject.substrateclient.rpc.DecoderPair; +import com.strategyobject.substrateclient.rpc.RpcDecoder; import com.strategyobject.substrateclient.transport.RpcObject; public class VoidDecoder implements RpcDecoder { diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/encoders/ArrayEncoder.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/encoders/ArrayEncoder.java similarity index 78% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/encoders/ArrayEncoder.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/encoders/ArrayEncoder.java index 292ddb4f..311c48fe 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/encoders/ArrayEncoder.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/encoders/ArrayEncoder.java @@ -1,8 +1,8 @@ -package com.strategyobject.substrateclient.rpc.core.encoders; +package com.strategyobject.substrateclient.rpc.encoders; import com.google.common.base.Preconditions; -import com.strategyobject.substrateclient.rpc.core.EncoderPair; -import com.strategyobject.substrateclient.rpc.core.RpcEncoder; +import com.strategyobject.substrateclient.rpc.EncoderPair; +import com.strategyobject.substrateclient.rpc.RpcEncoder; import lombok.val; import java.util.Arrays; diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/encoders/ListEncoder.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/encoders/ListEncoder.java similarity index 78% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/encoders/ListEncoder.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/encoders/ListEncoder.java index 0981a9f3..07a6fce2 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/encoders/ListEncoder.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/encoders/ListEncoder.java @@ -1,8 +1,8 @@ -package com.strategyobject.substrateclient.rpc.core.encoders; +package com.strategyobject.substrateclient.rpc.encoders; import com.google.common.base.Preconditions; -import com.strategyobject.substrateclient.rpc.core.EncoderPair; -import com.strategyobject.substrateclient.rpc.core.RpcEncoder; +import com.strategyobject.substrateclient.rpc.EncoderPair; +import com.strategyobject.substrateclient.rpc.RpcEncoder; import lombok.val; import java.util.List; diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/encoders/MapEncoder.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/encoders/MapEncoder.java similarity index 82% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/encoders/MapEncoder.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/encoders/MapEncoder.java index 7879c41e..9e64024f 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/encoders/MapEncoder.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/encoders/MapEncoder.java @@ -1,8 +1,8 @@ -package com.strategyobject.substrateclient.rpc.core.encoders; +package com.strategyobject.substrateclient.rpc.encoders; import com.google.common.base.Preconditions; -import com.strategyobject.substrateclient.rpc.core.EncoderPair; -import com.strategyobject.substrateclient.rpc.core.RpcEncoder; +import com.strategyobject.substrateclient.rpc.EncoderPair; +import com.strategyobject.substrateclient.rpc.RpcEncoder; import lombok.val; import java.util.Map; diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/encoders/PlainEncoder.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/encoders/PlainEncoder.java similarity index 60% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/encoders/PlainEncoder.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/encoders/PlainEncoder.java index 50a6f8db..376032c5 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/encoders/PlainEncoder.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/encoders/PlainEncoder.java @@ -1,8 +1,8 @@ -package com.strategyobject.substrateclient.rpc.core.encoders; +package com.strategyobject.substrateclient.rpc.encoders; import com.google.common.base.Preconditions; -import com.strategyobject.substrateclient.rpc.core.EncoderPair; -import com.strategyobject.substrateclient.rpc.core.RpcEncoder; +import com.strategyobject.substrateclient.rpc.EncoderPair; +import com.strategyobject.substrateclient.rpc.RpcEncoder; public class PlainEncoder implements RpcEncoder { @Override diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/encoders/UnitEncoder.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/encoders/UnitEncoder.java similarity index 54% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/encoders/UnitEncoder.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/encoders/UnitEncoder.java index cdc7fe68..9577d9a5 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/encoders/UnitEncoder.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/encoders/UnitEncoder.java @@ -1,9 +1,9 @@ -package com.strategyobject.substrateclient.rpc.core.encoders; +package com.strategyobject.substrateclient.rpc.encoders; import com.google.common.base.Preconditions; -import com.strategyobject.substrateclient.rpc.core.EncoderPair; -import com.strategyobject.substrateclient.rpc.core.RpcEncoder; -import com.strategyobject.substrateclient.types.Unit; +import com.strategyobject.substrateclient.common.types.Unit; +import com.strategyobject.substrateclient.rpc.EncoderPair; +import com.strategyobject.substrateclient.rpc.RpcEncoder; public class UnitEncoder implements RpcEncoder { diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/registries/RpcDecoderRegistry.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/registries/RpcDecoderRegistry.java similarity index 87% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/registries/RpcDecoderRegistry.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/registries/RpcDecoderRegistry.java index 05e5ef1e..5c2c37aa 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/registries/RpcDecoderRegistry.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/registries/RpcDecoderRegistry.java @@ -1,11 +1,11 @@ -package com.strategyobject.substrateclient.rpc.core.registries; +package com.strategyobject.substrateclient.rpc.registries; import com.strategyobject.substrateclient.common.reflection.Scanner; -import com.strategyobject.substrateclient.rpc.core.RpcDecoder; -import com.strategyobject.substrateclient.rpc.core.annotations.AutoRegister; -import com.strategyobject.substrateclient.rpc.core.decoders.*; -import com.strategyobject.substrateclient.types.Array; -import com.strategyobject.substrateclient.types.Unit; +import com.strategyobject.substrateclient.common.types.Array; +import com.strategyobject.substrateclient.common.types.Unit; +import com.strategyobject.substrateclient.rpc.RpcDecoder; +import com.strategyobject.substrateclient.rpc.annotation.AutoRegister; +import com.strategyobject.substrateclient.rpc.decoders.*; import lombok.NonNull; import lombok.val; import org.slf4j.Logger; @@ -26,7 +26,7 @@ private RpcDecoderRegistry() { register(new ListDecoder(), List.class); register(new MapDecoder(), Map.class); - register(new VoidDecoder(), Void.class); + register(new VoidDecoder(), Void.class, void.class); register(new UnitDecoder(), Unit.class); register(new BooleanDecoder(), Boolean.class, boolean.class); register(new ByteDecoder(), Byte.class, byte.class); diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/registries/RpcEncoderRegistry.java b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/registries/RpcEncoderRegistry.java similarity index 79% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/registries/RpcEncoderRegistry.java rename to rpc/src/main/java/com/strategyobject/substrateclient/rpc/registries/RpcEncoderRegistry.java index 9d953f1e..4279ad3e 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/registries/RpcEncoderRegistry.java +++ b/rpc/src/main/java/com/strategyobject/substrateclient/rpc/registries/RpcEncoderRegistry.java @@ -1,11 +1,11 @@ -package com.strategyobject.substrateclient.rpc.core.registries; +package com.strategyobject.substrateclient.rpc.registries; import com.strategyobject.substrateclient.common.reflection.Scanner; -import com.strategyobject.substrateclient.rpc.core.RpcEncoder; -import com.strategyobject.substrateclient.rpc.core.annotations.AutoRegister; -import com.strategyobject.substrateclient.rpc.core.encoders.*; -import com.strategyobject.substrateclient.types.Array; -import com.strategyobject.substrateclient.types.Unit; +import com.strategyobject.substrateclient.common.types.Array; +import com.strategyobject.substrateclient.common.types.Unit; +import com.strategyobject.substrateclient.rpc.RpcEncoder; +import com.strategyobject.substrateclient.rpc.annotation.AutoRegister; +import com.strategyobject.substrateclient.rpc.encoders.*; import lombok.NonNull; import lombok.val; import org.slf4j.Logger; @@ -25,8 +25,9 @@ private RpcEncoderRegistry() { encoders = new ConcurrentHashMap<>(128); register(new PlainEncoder<>(), - Void.class, String.class, Boolean.class, boolean.class, Byte.class, byte.class, Double.class, double.class, - Float.class, float.class, Integer.class, int.class, Long.class, long.class, Short.class, short.class); + Void.class, void.class, String.class, Boolean.class, boolean.class, Byte.class, byte.class, + Double.class, double.class, Float.class, float.class, Integer.class, int.class, Long.class, + long.class, Short.class, short.class); register(new UnitEncoder(), Unit.class); register(new ListEncoder(), List.class); register(new MapEncoder(), Map.class); diff --git a/rpc/rpc-core/src/test/java/com/strategyobject/substrateclient/rpc/core/decoders/ArrayDecoderTest.java b/rpc/src/test/java/com/strategyobject/substrateclient/rpc/decoders/ArrayDecoderTest.java similarity index 87% rename from rpc/rpc-core/src/test/java/com/strategyobject/substrateclient/rpc/core/decoders/ArrayDecoderTest.java rename to rpc/src/test/java/com/strategyobject/substrateclient/rpc/decoders/ArrayDecoderTest.java index b565b2fc..943e5c92 100644 --- a/rpc/rpc-core/src/test/java/com/strategyobject/substrateclient/rpc/core/decoders/ArrayDecoderTest.java +++ b/rpc/src/test/java/com/strategyobject/substrateclient/rpc/decoders/ArrayDecoderTest.java @@ -1,6 +1,6 @@ -package com.strategyobject.substrateclient.rpc.core.decoders; +package com.strategyobject.substrateclient.rpc.decoders; -import com.strategyobject.substrateclient.rpc.core.DecoderPair; +import com.strategyobject.substrateclient.rpc.DecoderPair; import com.strategyobject.substrateclient.transport.RpcObject; import lombok.val; import org.junit.jupiter.api.Test; diff --git a/rpc/rpc-core/src/test/java/com/strategyobject/substrateclient/rpc/core/decoders/KnownDecoderTests.java b/rpc/src/test/java/com/strategyobject/substrateclient/rpc/decoders/KnownDecoderTests.java similarity index 93% rename from rpc/rpc-core/src/test/java/com/strategyobject/substrateclient/rpc/core/decoders/KnownDecoderTests.java rename to rpc/src/test/java/com/strategyobject/substrateclient/rpc/decoders/KnownDecoderTests.java index 657272f2..d99d7d6b 100644 --- a/rpc/rpc-core/src/test/java/com/strategyobject/substrateclient/rpc/core/decoders/KnownDecoderTests.java +++ b/rpc/src/test/java/com/strategyobject/substrateclient/rpc/decoders/KnownDecoderTests.java @@ -1,7 +1,7 @@ -package com.strategyobject.substrateclient.rpc.core.decoders; +package com.strategyobject.substrateclient.rpc.decoders; -import com.strategyobject.substrateclient.rpc.core.DecoderPair; -import com.strategyobject.substrateclient.rpc.core.RpcDecoder; +import com.strategyobject.substrateclient.rpc.DecoderPair; +import com.strategyobject.substrateclient.rpc.RpcDecoder; import com.strategyobject.substrateclient.tests.TestSuite; import com.strategyobject.substrateclient.transport.RpcObject; import lombok.AccessLevel; @@ -16,10 +16,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class KnownDecoderTests { +class KnownDecoderTests { @TestFactory - public Stream decode() { + Stream decode() { return TestSuite.of( Test.decode(new BooleanDecoder(), RpcObject.of(true), true), Test.decode(new ByteDecoder(), RpcObject.of(5), (byte) 5), @@ -51,7 +51,7 @@ public Stream decode() { } @TestFactory - public Stream decodeRpcNull() { + Stream decodeRpcNull() { return TestSuite.of( Test.decodeRpcNull(new BooleanDecoder(), null), Test.decodeRpcNull(new ByteDecoder(), null), diff --git a/rpc/rpc-core/src/test/java/com/strategyobject/substrateclient/rpc/core/decoders/KnownEncoderTests.java b/rpc/src/test/java/com/strategyobject/substrateclient/rpc/decoders/KnownEncoderTests.java similarity index 87% rename from rpc/rpc-core/src/test/java/com/strategyobject/substrateclient/rpc/core/decoders/KnownEncoderTests.java rename to rpc/src/test/java/com/strategyobject/substrateclient/rpc/decoders/KnownEncoderTests.java index 5864a7ef..05761fd3 100644 --- a/rpc/rpc-core/src/test/java/com/strategyobject/substrateclient/rpc/core/decoders/KnownEncoderTests.java +++ b/rpc/src/test/java/com/strategyobject/substrateclient/rpc/decoders/KnownEncoderTests.java @@ -1,11 +1,11 @@ -package com.strategyobject.substrateclient.rpc.core.decoders; +package com.strategyobject.substrateclient.rpc.decoders; import com.google.gson.Gson; -import com.strategyobject.substrateclient.rpc.core.EncoderPair; -import com.strategyobject.substrateclient.rpc.core.RpcEncoder; -import com.strategyobject.substrateclient.rpc.core.encoders.ListEncoder; -import com.strategyobject.substrateclient.rpc.core.encoders.MapEncoder; -import com.strategyobject.substrateclient.rpc.core.encoders.PlainEncoder; +import com.strategyobject.substrateclient.rpc.EncoderPair; +import com.strategyobject.substrateclient.rpc.RpcEncoder; +import com.strategyobject.substrateclient.rpc.encoders.ListEncoder; +import com.strategyobject.substrateclient.rpc.encoders.MapEncoder; +import com.strategyobject.substrateclient.rpc.encoders.PlainEncoder; import com.strategyobject.substrateclient.tests.TestSuite; import lombok.AccessLevel; import lombok.AllArgsConstructor; @@ -20,7 +20,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class KnownEncoderTests { +class KnownEncoderTests { private static Map getSourceMap() { val result = new HashMap(); @@ -41,7 +41,7 @@ private static Map getExpectedMap() { } @TestFactory - public Stream encode() { + Stream encode() { return TestSuite.of( Test.encode(new PlainEncoder<>(), false, false), Test.encode(new PlainEncoder<>(), (byte) 5, (byte) 5), diff --git a/scale/build.gradle b/scale/build.gradle index 7cd8517c..c1e76db1 100644 --- a/scale/build.gradle +++ b/scale/build.gradle @@ -1,6 +1,5 @@ dependencies { implementation project(':common') - implementation project(':types') testImplementation project(':tests') } diff --git a/scale/scale-codegen/build.gradle b/scale/scale-codegen/build.gradle index 654b8555..338ba579 100644 --- a/scale/scale-codegen/build.gradle +++ b/scale/scale-codegen/build.gradle @@ -1,7 +1,6 @@ dependencies { implementation project(':common') implementation project(':scale') - implementation project(':types') compileOnly 'com.google.auto.service:auto-service-annotations:1.0.1' annotationProcessor 'com.google.auto.service:auto-service:1.0.1' diff --git a/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/ScaleAnnotationParser.java b/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/ScaleAnnotationParser.java index b6ef1d5e..93beac0e 100644 --- a/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/ScaleAnnotationParser.java +++ b/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/ScaleAnnotationParser.java @@ -6,8 +6,8 @@ import com.strategyobject.substrateclient.common.codegen.TypeTraverser; import com.strategyobject.substrateclient.common.codegen.TypeUtils; import com.strategyobject.substrateclient.common.utils.StringUtils; -import com.strategyobject.substrateclient.scale.annotations.Scale; -import com.strategyobject.substrateclient.scale.annotations.ScaleGeneric; +import com.strategyobject.substrateclient.scale.annotation.Scale; +import com.strategyobject.substrateclient.scale.annotation.ScaleGeneric; import lombok.NonNull; import lombok.val; import lombok.var; diff --git a/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/ScaleProcessorHelper.java b/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/ScaleProcessorHelper.java index 17af269a..67d2a589 100644 --- a/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/ScaleProcessorHelper.java +++ b/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/ScaleProcessorHelper.java @@ -1,7 +1,7 @@ package com.strategyobject.substrateclient.scale.codegen; import com.strategyobject.substrateclient.scale.ScaleSelfWritable; -import com.strategyobject.substrateclient.scale.annotations.Default; +import com.strategyobject.substrateclient.scale.annotation.Default; public class ScaleProcessorHelper { public static final Class SCALE_SELF_WRITABLE = ScaleSelfWritable.class; @@ -16,4 +16,7 @@ public static String getReaderName(String className) { public static String getWriterName(String className) { return String.format(WRITER_NAME_TEMPLATE, className); } + + private ScaleProcessorHelper() { + } } diff --git a/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/reader/ReaderCompositor.java b/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/reader/ReaderCompositor.java index bb9622c4..7755970d 100644 --- a/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/reader/ReaderCompositor.java +++ b/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/reader/ReaderCompositor.java @@ -4,7 +4,7 @@ import com.squareup.javapoet.CodeBlock; import com.strategyobject.substrateclient.common.codegen.ProcessorContext; import com.strategyobject.substrateclient.common.codegen.TypeTraverser; -import com.strategyobject.substrateclient.types.Array; +import com.strategyobject.substrateclient.common.types.Array; import lombok.NonNull; import lombok.var; diff --git a/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/reader/ScaleReaderAnnotatedClass.java b/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/reader/ScaleReaderAnnotatedClass.java index 40ff4b4a..b92d66bb 100644 --- a/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/reader/ScaleReaderAnnotatedClass.java +++ b/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/reader/ScaleReaderAnnotatedClass.java @@ -5,8 +5,8 @@ import com.strategyobject.substrateclient.common.codegen.ProcessingException; import com.strategyobject.substrateclient.common.codegen.ProcessorContext; import com.strategyobject.substrateclient.scale.ScaleReader; -import com.strategyobject.substrateclient.scale.annotations.AutoRegister; -import com.strategyobject.substrateclient.scale.annotations.Ignore; +import com.strategyobject.substrateclient.scale.annotation.AutoRegister; +import com.strategyobject.substrateclient.scale.annotation.Ignore; import com.strategyobject.substrateclient.scale.codegen.ScaleAnnotationParser; import com.strategyobject.substrateclient.scale.codegen.ScaleProcessorHelper; import com.strategyobject.substrateclient.scale.registries.ScaleReaderRegistry; diff --git a/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/reader/ScaleReaderProcessor.java b/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/reader/ScaleReaderProcessor.java index 4222f718..71546670 100644 --- a/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/reader/ScaleReaderProcessor.java +++ b/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/reader/ScaleReaderProcessor.java @@ -3,17 +3,18 @@ import com.google.auto.service.AutoService; import com.strategyobject.substrateclient.common.codegen.ProcessingException; import com.strategyobject.substrateclient.common.codegen.ProcessorContext; -import com.strategyobject.substrateclient.scale.annotations.ScaleReader; +import com.strategyobject.substrateclient.scale.annotation.ScaleReader; import lombok.val; import javax.annotation.processing.*; import javax.lang.model.SourceVersion; +import javax.lang.model.element.Element; import javax.lang.model.element.ElementKind; import javax.lang.model.element.TypeElement; import java.io.IOException; import java.util.Set; -@SupportedAnnotationTypes("com.strategyobject.substrateclient.scale.annotations.ScaleReader") +@SupportedAnnotationTypes("com.strategyobject.substrateclient.scale.annotation.ScaleReader") @SupportedSourceVersion(SourceVersion.RELEASE_8) @AutoService(Processor.class) public class ScaleReaderProcessor extends AbstractProcessor { @@ -34,7 +35,7 @@ public boolean process(Set annotations, RoundEnvironment return false; } - for (val annotatedElement : roundEnv.getElementsAnnotatedWith(ScaleReader.class)) { + for (Element annotatedElement : roundEnv.getElementsAnnotatedWith(ScaleReader.class)) { if (annotatedElement.getKind() != ElementKind.CLASS) { context.error( annotatedElement, diff --git a/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/writer/ScaleWriterAnnotatedClass.java b/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/writer/ScaleWriterAnnotatedClass.java index bf27c1c5..b84c5058 100644 --- a/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/writer/ScaleWriterAnnotatedClass.java +++ b/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/writer/ScaleWriterAnnotatedClass.java @@ -5,8 +5,8 @@ import com.strategyobject.substrateclient.common.codegen.ProcessingException; import com.strategyobject.substrateclient.common.codegen.ProcessorContext; import com.strategyobject.substrateclient.scale.ScaleWriter; -import com.strategyobject.substrateclient.scale.annotations.AutoRegister; -import com.strategyobject.substrateclient.scale.annotations.Ignore; +import com.strategyobject.substrateclient.scale.annotation.AutoRegister; +import com.strategyobject.substrateclient.scale.annotation.Ignore; import com.strategyobject.substrateclient.scale.codegen.ScaleAnnotationParser; import com.strategyobject.substrateclient.scale.codegen.ScaleProcessorHelper; import com.strategyobject.substrateclient.scale.registries.ScaleWriterRegistry; diff --git a/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/writer/ScaleWriterProcessor.java b/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/writer/ScaleWriterProcessor.java index cdd2e061..a79ed054 100644 --- a/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/writer/ScaleWriterProcessor.java +++ b/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/writer/ScaleWriterProcessor.java @@ -3,11 +3,12 @@ import com.google.auto.service.AutoService; import com.strategyobject.substrateclient.common.codegen.ProcessingException; import com.strategyobject.substrateclient.common.codegen.ProcessorContext; -import com.strategyobject.substrateclient.scale.annotations.ScaleWriter; +import com.strategyobject.substrateclient.scale.annotation.ScaleWriter; import lombok.val; import javax.annotation.processing.*; import javax.lang.model.SourceVersion; +import javax.lang.model.element.Element; import javax.lang.model.element.ElementKind; import javax.lang.model.element.TypeElement; import java.io.IOException; @@ -15,7 +16,7 @@ import static com.strategyobject.substrateclient.scale.codegen.ScaleProcessorHelper.SCALE_SELF_WRITABLE; -@SupportedAnnotationTypes("com.strategyobject.substrateclient.scale.annotations.ScaleWriter") +@SupportedAnnotationTypes("com.strategyobject.substrateclient.scale.annotation.ScaleWriter") @SupportedSourceVersion(SourceVersion.RELEASE_8) @AutoService(Processor.class) public class ScaleWriterProcessor extends AbstractProcessor { @@ -36,7 +37,7 @@ public boolean process(Set annotations, RoundEnvironment return false; } - for (val annotatedElement : roundEnv.getElementsAnnotatedWith(ScaleWriter.class)) { + for (Element annotatedElement : roundEnv.getElementsAnnotatedWith(ScaleWriter.class)) { if (annotatedElement.getKind() != ElementKind.CLASS) { context.error( annotatedElement, diff --git a/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/writer/WriterCompositor.java b/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/writer/WriterCompositor.java index 73e5d2c0..7023542c 100644 --- a/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/writer/WriterCompositor.java +++ b/scale/scale-codegen/src/main/java/com/strategyobject/substrateclient/scale/codegen/writer/WriterCompositor.java @@ -3,7 +3,7 @@ import com.squareup.javapoet.CodeBlock; import com.strategyobject.substrateclient.common.codegen.ProcessorContext; import com.strategyobject.substrateclient.common.codegen.TypeTraverser; -import com.strategyobject.substrateclient.types.Array; +import com.strategyobject.substrateclient.common.types.Array; import lombok.NonNull; import lombok.var; diff --git a/scale/scale-codegen/src/test/java/com/strategyobject/substrateclient/scale/codegen/reader/ScaleReaderProcessorTest.java b/scale/scale-codegen/src/test/java/com/strategyobject/substrateclient/scale/codegen/reader/ScaleReaderProcessorTest.java index 6dad89f7..4e98a868 100644 --- a/scale/scale-codegen/src/test/java/com/strategyobject/substrateclient/scale/codegen/reader/ScaleReaderProcessorTest.java +++ b/scale/scale-codegen/src/test/java/com/strategyobject/substrateclient/scale/codegen/reader/ScaleReaderProcessorTest.java @@ -10,11 +10,11 @@ class ScaleReaderProcessorTest { @Test void failsWhenWrongTemplate() { - val nameless = JavaFileObjects.forResource("WrongTemplate.java"); + val clazz = JavaFileObjects.forResource("WrongTemplate.java"); val compilation = javac() .withProcessors(new ScaleReaderProcessor()) - .compile(nameless); + .compile(clazz); assertThat(compilation).failed(); assertThat(compilation) diff --git a/scale/scale-codegen/src/test/java/com/strategyobject/substrateclient/scale/codegen/writer/ScaleWriterProcessorTest.java b/scale/scale-codegen/src/test/java/com/strategyobject/substrateclient/scale/codegen/writer/ScaleWriterProcessorTest.java index e05a0607..013d5508 100644 --- a/scale/scale-codegen/src/test/java/com/strategyobject/substrateclient/scale/codegen/writer/ScaleWriterProcessorTest.java +++ b/scale/scale-codegen/src/test/java/com/strategyobject/substrateclient/scale/codegen/writer/ScaleWriterProcessorTest.java @@ -1,7 +1,6 @@ package com.strategyobject.substrateclient.scale.codegen.writer; import com.google.testing.compile.JavaFileObjects; -import com.strategyobject.substrateclient.scale.codegen.reader.ScaleReaderProcessor; import lombok.val; import org.junit.jupiter.api.Test; diff --git a/scale/scale-codegen/src/test/resources/Annotated.java b/scale/scale-codegen/src/test/resources/Annotated.java index cf26757c..9b22daba 100644 --- a/scale/scale-codegen/src/test/resources/Annotated.java +++ b/scale/scale-codegen/src/test/resources/Annotated.java @@ -1,10 +1,10 @@ package com.strategyobject.substrateclient.scale; +import com.strategyobject.substrateclient.common.types.Result; import com.strategyobject.substrateclient.scale.ScaleType.*; -import com.strategyobject.substrateclient.scale.annotations.ScaleReader; -import com.strategyobject.substrateclient.scale.annotations.ScaleWriter; -import com.strategyobject.substrateclient.scale.annotations.*; -import com.strategyobject.substrateclient.types.Result; +import com.strategyobject.substrateclient.scale.annotation.ScaleReader; +import com.strategyobject.substrateclient.scale.annotation.ScaleWriter; +import com.strategyobject.substrateclient.scale.annotation.*; import java.lang.String; import java.math.BigInteger; @@ -86,7 +86,7 @@ public class Annotated { @Scale(ScaleType.String.class) } ) - private com.strategyobject.substrateclient.types.union.Union3 testUnion; + private com.strategyobject.substrateclient.common.types.union.Union3 testUnion; @ScaleGeneric( template = "Vec", @@ -245,11 +245,11 @@ public void setTestU128(BigInteger testU128) { this.testU128 = testU128; } - public com.strategyobject.substrateclient.types.union.Union3 getTestUnion() { + public com.strategyobject.substrateclient.common.types.union.Union3 getTestUnion() { return testUnion; } - public void setTestUnion(com.strategyobject.substrateclient.types.union.Union3 testUnion) { + public void setTestUnion(com.strategyobject.substrateclient.common.types.union.Union3 testUnion) { this.testUnion = testUnion; } diff --git a/scale/scale-codegen/src/test/resources/Arrays.java b/scale/scale-codegen/src/test/resources/Arrays.java index d76a730d..9ad1eaf4 100644 --- a/scale/scale-codegen/src/test/resources/Arrays.java +++ b/scale/scale-codegen/src/test/resources/Arrays.java @@ -1,9 +1,9 @@ package com.strategyobject.substrateclient.scale; -import com.strategyobject.substrateclient.scale.annotations.Scale; -import com.strategyobject.substrateclient.scale.annotations.ScaleGeneric; -import com.strategyobject.substrateclient.scale.annotations.ScaleReader; -import com.strategyobject.substrateclient.scale.annotations.ScaleWriter; +import com.strategyobject.substrateclient.scale.annotation.Scale; +import com.strategyobject.substrateclient.scale.annotation.ScaleGeneric; +import com.strategyobject.substrateclient.scale.annotation.ScaleReader; +import com.strategyobject.substrateclient.scale.annotation.ScaleWriter; import java.util.List; import java.util.Optional; diff --git a/scale/scale-codegen/src/test/resources/ComplexGeneric.java b/scale/scale-codegen/src/test/resources/ComplexGeneric.java index 76553fe9..3d0746ee 100644 --- a/scale/scale-codegen/src/test/resources/ComplexGeneric.java +++ b/scale/scale-codegen/src/test/resources/ComplexGeneric.java @@ -1,10 +1,10 @@ package com.strategyobject.substrateclient.scale; +import com.strategyobject.substrateclient.common.types.Result; import com.strategyobject.substrateclient.scale.ScaleType.Vec; -import com.strategyobject.substrateclient.scale.annotations.ScaleReader; -import com.strategyobject.substrateclient.scale.annotations.ScaleWriter; -import com.strategyobject.substrateclient.scale.annotations.*; -import com.strategyobject.substrateclient.types.Result; +import com.strategyobject.substrateclient.scale.annotation.ScaleReader; +import com.strategyobject.substrateclient.scale.annotation.ScaleWriter; +import com.strategyobject.substrateclient.scale.annotation.*; import java.util.List; import java.util.Map; diff --git a/scale/scale-codegen/src/test/resources/GenericScaleSelfWritable.java b/scale/scale-codegen/src/test/resources/GenericScaleSelfWritable.java index 75e08a21..8c11b3e2 100644 --- a/scale/scale-codegen/src/test/resources/GenericScaleSelfWritable.java +++ b/scale/scale-codegen/src/test/resources/GenericScaleSelfWritable.java @@ -1,7 +1,7 @@ package com.strategyobject.substrateclient.scale; -import com.strategyobject.substrateclient.scale.annotations.Scale; -import com.strategyobject.substrateclient.scale.annotations.ScaleWriter; +import com.strategyobject.substrateclient.scale.annotation.Scale; +import com.strategyobject.substrateclient.scale.annotation.ScaleWriter; @ScaleWriter public class GenericScaleSelfWritable< diff --git a/scale/scale-codegen/src/test/resources/MissesScaleSelfWritable.java b/scale/scale-codegen/src/test/resources/MissesScaleSelfWritable.java index 83718773..9343f83d 100644 --- a/scale/scale-codegen/src/test/resources/MissesScaleSelfWritable.java +++ b/scale/scale-codegen/src/test/resources/MissesScaleSelfWritable.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale; -import com.strategyobject.substrateclient.scale.annotations.ScaleWriter; +import com.strategyobject.substrateclient.scale.annotation.ScaleWriter; @ScaleWriter public class MissesScaleSelfWritable implements ScaleSelfWritable { diff --git a/scale/scale-codegen/src/test/resources/NonAnnotated.java b/scale/scale-codegen/src/test/resources/NonAnnotated.java index 99b75521..7f2ed4f1 100644 --- a/scale/scale-codegen/src/test/resources/NonAnnotated.java +++ b/scale/scale-codegen/src/test/resources/NonAnnotated.java @@ -1,8 +1,8 @@ package com.strategyobject.substrateclient.scale; -import com.strategyobject.substrateclient.scale.annotations.ScaleReader; -import com.strategyobject.substrateclient.scale.annotations.ScaleWriter; -import com.strategyobject.substrateclient.types.Result; +import com.strategyobject.substrateclient.common.types.Result; +import com.strategyobject.substrateclient.scale.annotation.ScaleReader; +import com.strategyobject.substrateclient.scale.annotation.ScaleWriter; import java.math.BigInteger; import java.util.List; diff --git a/scale/scale-codegen/src/test/resources/NonGenericScaleSelfWritable.java b/scale/scale-codegen/src/test/resources/NonGenericScaleSelfWritable.java index 440cbfc3..8863e934 100644 --- a/scale/scale-codegen/src/test/resources/NonGenericScaleSelfWritable.java +++ b/scale/scale-codegen/src/test/resources/NonGenericScaleSelfWritable.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale; -import com.strategyobject.substrateclient.scale.annotations.ScaleWriter; +import com.strategyobject.substrateclient.scale.annotation.ScaleWriter; @ScaleWriter public class NonGenericScaleSelfWritable implements ScaleSelfWritable { diff --git a/scale/scale-codegen/src/test/resources/WrongTemplate.java b/scale/scale-codegen/src/test/resources/WrongTemplate.java index 1d33d0e3..9560c4d2 100644 --- a/scale/scale-codegen/src/test/resources/WrongTemplate.java +++ b/scale/scale-codegen/src/test/resources/WrongTemplate.java @@ -1,11 +1,11 @@ package com.strategyobject.substrateclient.scale; +import com.strategyobject.substrateclient.common.types.Result; import com.strategyobject.substrateclient.scale.ScaleType.Vec; -import com.strategyobject.substrateclient.scale.annotations.Scale; -import com.strategyobject.substrateclient.scale.annotations.ScaleGeneric; -import com.strategyobject.substrateclient.scale.annotations.ScaleReader; -import com.strategyobject.substrateclient.scale.annotations.ScaleWriter; -import com.strategyobject.substrateclient.types.Result; +import com.strategyobject.substrateclient.scale.annotation.Scale; +import com.strategyobject.substrateclient.scale.annotation.ScaleGeneric; +import com.strategyobject.substrateclient.scale.annotation.ScaleReader; +import com.strategyobject.substrateclient.scale.annotation.ScaleWriter; import java.util.List; import java.util.Map; diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/ScaleUtils.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/ScaleUtils.java index 552859a9..13f74602 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/ScaleUtils.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/ScaleUtils.java @@ -1,6 +1,8 @@ package com.strategyobject.substrateclient.scale; import com.strategyobject.substrateclient.common.utils.HexConverter; +import com.strategyobject.substrateclient.scale.registries.ScaleReaderRegistry; +import com.strategyobject.substrateclient.scale.registries.ScaleWriterRegistry; import lombok.NonNull; import lombok.val; @@ -9,6 +11,42 @@ import java.io.IOException; public final class ScaleUtils { + + @SuppressWarnings("unchecked") + public static T fromBytes(byte @NonNull [] bytes, Class clazz) { + val stream = new ByteArrayInputStream(bytes); + val reader = (ScaleReader) ScaleReaderRegistry.getInstance().resolve(clazz); + try { + return reader.read(stream); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + @SuppressWarnings("unchecked") + public static byte[] toBytes(T value, Class clazz) { + val stream = new ByteArrayOutputStream(); + val writer = (ScaleWriter) ScaleWriterRegistry.getInstance().resolve(clazz); + try { + writer.write(value, stream); + } catch (IOException e) { + throw new RuntimeException(e); + } + + return stream.toByteArray(); + } + + public static > byte[] toBytes(ScaleSelfWritable value) { + val stream = new ByteArrayOutputStream(); + try { + value.write(stream); + } catch (IOException e) { + throw new RuntimeException(e); + } + + return stream.toByteArray(); + } + public static String toHexString(@NonNull T value, @NonNull ScaleWriter writer) { val stream = new ByteArrayOutputStream(); diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/annotations/AutoRegister.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/annotation/AutoRegister.java similarity index 82% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/annotations/AutoRegister.java rename to scale/src/main/java/com/strategyobject/substrateclient/scale/annotation/AutoRegister.java index b29fe35d..d5de1f5f 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/annotations/AutoRegister.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/annotation/AutoRegister.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.rpc.core.annotations; +package com.strategyobject.substrateclient.scale.annotation; import lombok.NonNull; diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/annotation/Default.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/annotation/Default.java new file mode 100644 index 00000000..0ccd44eb --- /dev/null +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/annotation/Default.java @@ -0,0 +1,4 @@ +package com.strategyobject.substrateclient.scale.annotation; + +public class Default { +} diff --git a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/annotations/Ignore.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/annotation/Ignore.java similarity index 79% rename from rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/annotations/Ignore.java rename to scale/src/main/java/com/strategyobject/substrateclient/scale/annotation/Ignore.java index 69bb3840..ac263a8f 100644 --- a/rpc/rpc-core/src/main/java/com/strategyobject/substrateclient/rpc/core/annotations/Ignore.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/annotation/Ignore.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.rpc.core.annotations; +package com.strategyobject.substrateclient.scale.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/annotations/Scale.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/annotation/Scale.java similarity index 85% rename from scale/src/main/java/com/strategyobject/substrateclient/scale/annotations/Scale.java rename to scale/src/main/java/com/strategyobject/substrateclient/scale/annotation/Scale.java index 3a9a5d4f..f29c2c59 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/annotations/Scale.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/annotation/Scale.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.scale.annotations; +package com.strategyobject.substrateclient.scale.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/annotations/ScaleGeneric.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/annotation/ScaleGeneric.java similarity index 84% rename from scale/src/main/java/com/strategyobject/substrateclient/scale/annotations/ScaleGeneric.java rename to scale/src/main/java/com/strategyobject/substrateclient/scale/annotation/ScaleGeneric.java index 112e0a94..c372e6b7 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/annotations/ScaleGeneric.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/annotation/ScaleGeneric.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.scale.annotations; +package com.strategyobject.substrateclient.scale.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/annotations/ScaleReader.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/annotation/ScaleReader.java similarity index 80% rename from scale/src/main/java/com/strategyobject/substrateclient/scale/annotations/ScaleReader.java rename to scale/src/main/java/com/strategyobject/substrateclient/scale/annotation/ScaleReader.java index 96b87ece..fd576f4c 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/annotations/ScaleReader.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/annotation/ScaleReader.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.scale.annotations; +package com.strategyobject.substrateclient.scale.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/annotations/ScaleWriter.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/annotation/ScaleWriter.java similarity index 80% rename from scale/src/main/java/com/strategyobject/substrateclient/scale/annotations/ScaleWriter.java rename to scale/src/main/java/com/strategyobject/substrateclient/scale/annotation/ScaleWriter.java index 24840f16..11b7298d 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/annotations/ScaleWriter.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/annotation/ScaleWriter.java @@ -1,4 +1,4 @@ -package com.strategyobject.substrateclient.scale.annotations; +package com.strategyobject.substrateclient.scale.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/annotations/Default.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/annotations/Default.java deleted file mode 100644 index a4663cc6..00000000 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/annotations/Default.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.strategyobject.substrateclient.scale.annotations; - -public class Default { -} diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/I8Reader.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/I8Reader.java index 3d000cd4..f3c78d44 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/I8Reader.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/I8Reader.java @@ -4,7 +4,6 @@ import com.strategyobject.substrateclient.common.io.Streamer; import com.strategyobject.substrateclient.scale.ScaleReader; import lombok.NonNull; -import lombok.val; import java.io.IOException; import java.io.InputStream; @@ -14,7 +13,6 @@ public class I8Reader implements ScaleReader { public Byte read(@NonNull InputStream stream, ScaleReader... readers) throws IOException { Preconditions.checkArgument(readers == null || readers.length == 0); - val bytes = Streamer.readBytes(1, stream); - return bytes[0]; + return (byte) Streamer.readByte(stream); } } diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/ResultReader.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/ResultReader.java index dcb4a0a4..63b435cb 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/ResultReader.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/ResultReader.java @@ -2,8 +2,8 @@ import com.google.common.base.Preconditions; import com.strategyobject.substrateclient.common.io.Streamer; +import com.strategyobject.substrateclient.common.types.Result; import com.strategyobject.substrateclient.scale.ScaleReader; -import com.strategyobject.substrateclient.types.Result; import lombok.NonNull; import lombok.val; diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/UnitReader.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/UnitReader.java index 4fdb7c64..0017ef44 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/UnitReader.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/UnitReader.java @@ -1,8 +1,8 @@ package com.strategyobject.substrateclient.scale.readers; import com.google.common.base.Preconditions; +import com.strategyobject.substrateclient.common.types.Unit; import com.strategyobject.substrateclient.scale.ScaleReader; -import com.strategyobject.substrateclient.types.Unit; import lombok.NonNull; import java.io.InputStream; diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/BaseUnionReader.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/BaseUnionReader.java index 8a6ea7ff..1d05fcea 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/BaseUnionReader.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/BaseUnionReader.java @@ -2,8 +2,8 @@ import com.google.common.base.Preconditions; import com.strategyobject.substrateclient.common.io.Streamer; +import com.strategyobject.substrateclient.common.types.union.Union; import com.strategyobject.substrateclient.scale.ScaleReader; -import com.strategyobject.substrateclient.types.union.Union; import lombok.NonNull; import lombok.val; diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union10Reader.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union10Reader.java index 38a0f840..1791925b 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union10Reader.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union10Reader.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.readers.union; -import com.strategyobject.substrateclient.types.union.Union10; +import com.strategyobject.substrateclient.common.types.union.Union10; public class Union10Reader extends BaseUnionReader> { public Union10Reader() { diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union11Reader.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union11Reader.java index 8f4743b7..a47e3373 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union11Reader.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union11Reader.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.readers.union; -import com.strategyobject.substrateclient.types.union.Union11; +import com.strategyobject.substrateclient.common.types.union.Union11; public class Union11Reader extends BaseUnionReader> { public Union11Reader() { diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union12Reader.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union12Reader.java index 0e98403a..aac1178d 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union12Reader.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union12Reader.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.readers.union; -import com.strategyobject.substrateclient.types.union.Union12; +import com.strategyobject.substrateclient.common.types.union.Union12; public class Union12Reader extends BaseUnionReader> { public Union12Reader() { diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union1Reader.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union1Reader.java index 10fbbb79..04d7917c 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union1Reader.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union1Reader.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.readers.union; -import com.strategyobject.substrateclient.types.union.Union1; +import com.strategyobject.substrateclient.common.types.union.Union1; public class Union1Reader extends BaseUnionReader> { public Union1Reader() { diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union2Reader.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union2Reader.java index ef2a99ad..a70d8fcb 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union2Reader.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union2Reader.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.readers.union; -import com.strategyobject.substrateclient.types.union.Union2; +import com.strategyobject.substrateclient.common.types.union.Union2; public class Union2Reader extends BaseUnionReader> { public Union2Reader() { diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union3Reader.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union3Reader.java index 3719caa0..a4ce4271 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union3Reader.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union3Reader.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.readers.union; -import com.strategyobject.substrateclient.types.union.Union3; +import com.strategyobject.substrateclient.common.types.union.Union3; public class Union3Reader extends BaseUnionReader> { public Union3Reader() { diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union4Reader.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union4Reader.java index 46d95f18..c9096bb3 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union4Reader.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union4Reader.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.readers.union; -import com.strategyobject.substrateclient.types.union.Union4; +import com.strategyobject.substrateclient.common.types.union.Union4; public class Union4Reader extends BaseUnionReader> { public Union4Reader() { diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union5Reader.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union5Reader.java index b4a6134d..c44b08b9 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union5Reader.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union5Reader.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.readers.union; -import com.strategyobject.substrateclient.types.union.Union5; +import com.strategyobject.substrateclient.common.types.union.Union5; public class Union5Reader extends BaseUnionReader> { public Union5Reader() { diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union6Reader.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union6Reader.java index 49399975..deec8b05 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union6Reader.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union6Reader.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.readers.union; -import com.strategyobject.substrateclient.types.union.Union6; +import com.strategyobject.substrateclient.common.types.union.Union6; public class Union6Reader extends BaseUnionReader> { public Union6Reader() { diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union7Reader.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union7Reader.java index 1bcaebe6..5fa29b44 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union7Reader.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union7Reader.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.readers.union; -import com.strategyobject.substrateclient.types.union.Union7; +import com.strategyobject.substrateclient.common.types.union.Union7; public class Union7Reader extends BaseUnionReader> { public Union7Reader() { diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union8Reader.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union8Reader.java index 2e77b33b..1aa6093f 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union8Reader.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union8Reader.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.readers.union; -import com.strategyobject.substrateclient.types.union.Union8; +import com.strategyobject.substrateclient.common.types.union.Union8; public class Union8Reader extends BaseUnionReader> { public Union8Reader() { diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union9Reader.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union9Reader.java index dcec4eaa..48bacc83 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union9Reader.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/readers/union/Union9Reader.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.readers.union; -import com.strategyobject.substrateclient.types.union.Union9; +import com.strategyobject.substrateclient.common.types.union.Union9; public class Union9Reader extends BaseUnionReader> { public Union9Reader() { diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/registries/ScaleReaderRegistry.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/registries/ScaleReaderRegistry.java index e76d83eb..381be5cb 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/registries/ScaleReaderRegistry.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/registries/ScaleReaderRegistry.java @@ -1,15 +1,15 @@ package com.strategyobject.substrateclient.scale.registries; import com.strategyobject.substrateclient.common.reflection.Scanner; +import com.strategyobject.substrateclient.common.types.Array; +import com.strategyobject.substrateclient.common.types.Result; +import com.strategyobject.substrateclient.common.types.Unit; +import com.strategyobject.substrateclient.common.types.union.*; import com.strategyobject.substrateclient.scale.ScaleReader; import com.strategyobject.substrateclient.scale.ScaleType; -import com.strategyobject.substrateclient.scale.annotations.AutoRegister; +import com.strategyobject.substrateclient.scale.annotation.AutoRegister; import com.strategyobject.substrateclient.scale.readers.*; import com.strategyobject.substrateclient.scale.readers.union.*; -import com.strategyobject.substrateclient.types.Array; -import com.strategyobject.substrateclient.types.Result; -import com.strategyobject.substrateclient.types.Unit; -import com.strategyobject.substrateclient.types.union.*; import lombok.NonNull; import lombok.val; import org.slf4j.Logger; @@ -66,7 +66,7 @@ private ScaleReaderRegistry() { register(new ShortArrayReader(), short[].class); register(new IntArrayReader(), int[].class); register(new LongArrayReader(), long[].class); - register(new VoidReader(), Void.class); + register(new VoidReader(), Void.class, void.class); register(new UnitReader(), Unit.class); registerAnnotatedFrom(ROOT_PREFIX); diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/registries/ScaleWriterRegistry.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/registries/ScaleWriterRegistry.java index 56b61889..fa775035 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/registries/ScaleWriterRegistry.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/registries/ScaleWriterRegistry.java @@ -1,14 +1,16 @@ package com.strategyobject.substrateclient.scale.registries; import com.strategyobject.substrateclient.common.reflection.Scanner; +import com.strategyobject.substrateclient.common.types.Array; +import com.strategyobject.substrateclient.common.types.Result; +import com.strategyobject.substrateclient.common.types.Unit; +import com.strategyobject.substrateclient.common.types.union.*; import com.strategyobject.substrateclient.scale.ScaleSelfWritable; import com.strategyobject.substrateclient.scale.ScaleType; import com.strategyobject.substrateclient.scale.ScaleWriter; -import com.strategyobject.substrateclient.scale.annotations.AutoRegister; +import com.strategyobject.substrateclient.scale.annotation.AutoRegister; import com.strategyobject.substrateclient.scale.writers.*; import com.strategyobject.substrateclient.scale.writers.union.*; -import com.strategyobject.substrateclient.types.*; -import com.strategyobject.substrateclient.types.union.*; import lombok.NonNull; import lombok.val; import org.slf4j.Logger; @@ -65,11 +67,9 @@ private ScaleWriterRegistry() { register(new ShortArrayWriter(), short[].class); register(new IntArrayWriter(), int[].class); register(new LongArrayWriter(), long[].class); - register(new VoidWriter(), Void.class); + register(new VoidWriter(), Void.class, void.class); register(new UnitWriter(), Unit.class); register(new SelfWriter(), ScaleSelfWritable.class); - register(new PublicKeyWriter(), PublicKey.class); - register(new SignatureDataWriter(), SignatureData.class); registerAnnotatedFrom(ROOT_PREFIX); } diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/BoolWriter.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/BoolWriter.java index 8f583503..0ffad3d9 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/BoolWriter.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/BoolWriter.java @@ -12,6 +12,6 @@ public class BoolWriter implements ScaleWriter { public void write(@NonNull Boolean value, @NonNull OutputStream stream, ScaleWriter... writers) throws IOException { Preconditions.checkArgument(writers == null || writers.length == 0); - stream.write(value ? 1 : 0); + stream.write(Boolean.TRUE.equals(value) ? 1 : 0); } } diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/OptionBoolWriter.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/OptionBoolWriter.java index 7a57c28c..14ae75b0 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/OptionBoolWriter.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/OptionBoolWriter.java @@ -15,7 +15,7 @@ public void write(@NonNull Optional value, @NonNull OutputStream stream if (!value.isPresent()) { stream.write(0); - } else if (value.get()) { + } else if (Boolean.TRUE.equals(value.get())) { stream.write(1); } else { stream.write(2); diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/PublicKeyWriter.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/PublicKeyWriter.java deleted file mode 100644 index e05a0f9e..00000000 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/PublicKeyWriter.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.strategyobject.substrateclient.scale.writers; - -import com.google.common.base.Preconditions; -import com.strategyobject.substrateclient.common.io.Streamer; -import com.strategyobject.substrateclient.scale.ScaleWriter; -import com.strategyobject.substrateclient.types.PublicKey; -import lombok.NonNull; - -import java.io.IOException; -import java.io.OutputStream; - -public class PublicKeyWriter implements ScaleWriter { - @Override - public void write(@NonNull PublicKey value, @NonNull OutputStream stream, ScaleWriter... writers) throws IOException { - Preconditions.checkArgument(writers == null || writers.length == 0); - - Streamer.writeBytes(value.getData(), stream); - } -} \ No newline at end of file diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/ResultWriter.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/ResultWriter.java index 79c63a4d..a96efdcf 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/ResultWriter.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/ResultWriter.java @@ -1,8 +1,8 @@ package com.strategyobject.substrateclient.scale.writers; import com.google.common.base.Preconditions; +import com.strategyobject.substrateclient.common.types.Result; import com.strategyobject.substrateclient.scale.ScaleWriter; -import com.strategyobject.substrateclient.types.Result; import lombok.NonNull; import lombok.val; diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/SignatureDataWriter.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/SignatureDataWriter.java deleted file mode 100644 index 6d9ddfb9..00000000 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/SignatureDataWriter.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.strategyobject.substrateclient.scale.writers; - -import com.google.common.base.Preconditions; -import com.strategyobject.substrateclient.common.io.Streamer; -import com.strategyobject.substrateclient.scale.ScaleWriter; -import com.strategyobject.substrateclient.types.SignatureData; -import lombok.NonNull; - -import java.io.IOException; -import java.io.OutputStream; - -public class SignatureDataWriter implements ScaleWriter { - @Override - public void write(@NonNull SignatureData value, @NonNull OutputStream stream, ScaleWriter... writers) throws IOException { - Preconditions.checkArgument(writers == null || writers.length == 0); - - Streamer.writeBytes(value.getData(), stream); - } -} \ No newline at end of file diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/UnitWriter.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/UnitWriter.java index d467cdeb..a8efd40f 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/UnitWriter.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/UnitWriter.java @@ -1,8 +1,8 @@ package com.strategyobject.substrateclient.scale.writers; import com.google.common.base.Preconditions; +import com.strategyobject.substrateclient.common.types.Unit; import com.strategyobject.substrateclient.scale.ScaleWriter; -import com.strategyobject.substrateclient.types.Unit; import lombok.NonNull; import java.io.OutputStream; diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/BaseUnionWriter.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/BaseUnionWriter.java index c1bb103a..1e2ece35 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/BaseUnionWriter.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/BaseUnionWriter.java @@ -1,8 +1,8 @@ package com.strategyobject.substrateclient.scale.writers.union; import com.google.common.base.Preconditions; +import com.strategyobject.substrateclient.common.types.union.Union; import com.strategyobject.substrateclient.scale.ScaleWriter; -import com.strategyobject.substrateclient.types.union.Union; import lombok.NonNull; import lombok.val; diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union10Writer.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union10Writer.java index 03999963..bdb7b9d9 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union10Writer.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union10Writer.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.writers.union; -import com.strategyobject.substrateclient.types.union.Union10; +import com.strategyobject.substrateclient.common.types.union.Union10; public class Union10Writer extends BaseUnionWriter> { public Union10Writer() { diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union11Writer.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union11Writer.java index 4c11fe7d..c24ad29e 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union11Writer.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union11Writer.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.writers.union; -import com.strategyobject.substrateclient.types.union.Union11; +import com.strategyobject.substrateclient.common.types.union.Union11; public class Union11Writer extends BaseUnionWriter> { public Union11Writer() { diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union12Writer.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union12Writer.java index 927cf8af..75c4eda9 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union12Writer.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union12Writer.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.writers.union; -import com.strategyobject.substrateclient.types.union.Union12; +import com.strategyobject.substrateclient.common.types.union.Union12; public class Union12Writer extends BaseUnionWriter> { public Union12Writer() { diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union1Writer.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union1Writer.java index 51851fe3..6820959b 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union1Writer.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union1Writer.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.writers.union; -import com.strategyobject.substrateclient.types.union.Union1; +import com.strategyobject.substrateclient.common.types.union.Union1; public class Union1Writer extends BaseUnionWriter> { public Union1Writer() { diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union2Writer.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union2Writer.java index e13c6e18..dd6cceb5 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union2Writer.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union2Writer.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.writers.union; -import com.strategyobject.substrateclient.types.union.Union2; +import com.strategyobject.substrateclient.common.types.union.Union2; public class Union2Writer extends BaseUnionWriter> { public Union2Writer() { diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union3Writer.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union3Writer.java index 5c3122ee..fd08fd8b 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union3Writer.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union3Writer.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.writers.union; -import com.strategyobject.substrateclient.types.union.Union3; +import com.strategyobject.substrateclient.common.types.union.Union3; public class Union3Writer extends BaseUnionWriter> { public Union3Writer() { diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union4Writer.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union4Writer.java index 49aefbe8..d5087c81 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union4Writer.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union4Writer.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.writers.union; -import com.strategyobject.substrateclient.types.union.Union4; +import com.strategyobject.substrateclient.common.types.union.Union4; public class Union4Writer extends BaseUnionWriter> { public Union4Writer() { diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union5Writer.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union5Writer.java index eb35270e..0ce392bb 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union5Writer.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union5Writer.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.writers.union; -import com.strategyobject.substrateclient.types.union.Union5; +import com.strategyobject.substrateclient.common.types.union.Union5; public class Union5Writer extends BaseUnionWriter> { public Union5Writer() { diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union6Writer.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union6Writer.java index d3433f53..111fc1ee 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union6Writer.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union6Writer.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.writers.union; -import com.strategyobject.substrateclient.types.union.Union6; +import com.strategyobject.substrateclient.common.types.union.Union6; public class Union6Writer extends BaseUnionWriter> { public Union6Writer() { diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union7Writer.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union7Writer.java index 7d35ee2c..571d65b4 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union7Writer.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union7Writer.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.writers.union; -import com.strategyobject.substrateclient.types.union.Union7; +import com.strategyobject.substrateclient.common.types.union.Union7; public class Union7Writer extends BaseUnionWriter> { public Union7Writer() { diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union8Writer.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union8Writer.java index 9fe80aa4..d54df164 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union8Writer.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union8Writer.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.writers.union; -import com.strategyobject.substrateclient.types.union.Union8; +import com.strategyobject.substrateclient.common.types.union.Union8; public class Union8Writer extends BaseUnionWriter> { public Union8Writer() { diff --git a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union9Writer.java b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union9Writer.java index 4ed4edf3..d40710d5 100644 --- a/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union9Writer.java +++ b/scale/src/main/java/com/strategyobject/substrateclient/scale/writers/union/Union9Writer.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.writers.union; -import com.strategyobject.substrateclient.types.union.Union9; +import com.strategyobject.substrateclient.common.types.union.Union9; public class Union9Writer extends BaseUnionWriter> { public Union9Writer() { diff --git a/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/ArrayReadersTest.java b/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/ArrayReadersTest.java index 978fc890..7fa6946f 100644 --- a/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/ArrayReadersTest.java +++ b/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/ArrayReadersTest.java @@ -15,7 +15,7 @@ import java.util.function.BiConsumer; import java.util.stream.Stream; -public class ArrayReadersTest { +class ArrayReadersTest { @TestFactory Stream read() { diff --git a/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/ResultReaderTest.java b/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/ResultReaderTest.java index 41b4abc6..eceae7e5 100644 --- a/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/ResultReaderTest.java +++ b/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/ResultReaderTest.java @@ -1,7 +1,7 @@ package com.strategyobject.substrateclient.scale.readers; +import com.strategyobject.substrateclient.common.types.Result; import com.strategyobject.substrateclient.common.utils.HexConverter; -import com.strategyobject.substrateclient.types.Result; import lombok.SneakyThrows; import lombok.val; import org.junit.jupiter.api.Test; diff --git a/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union10ReaderTest.java b/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union10ReaderTest.java index 7b9c5c37..e728c95c 100644 --- a/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union10ReaderTest.java +++ b/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union10ReaderTest.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.readers.union; -import com.strategyobject.substrateclient.types.union.Union10; +import com.strategyobject.substrateclient.common.types.union.Union10; import lombok.SneakyThrows; import org.junit.jupiter.api.Test; diff --git a/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union11ReaderTest.java b/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union11ReaderTest.java index 1a99d522..c559c594 100644 --- a/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union11ReaderTest.java +++ b/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union11ReaderTest.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.readers.union; -import com.strategyobject.substrateclient.types.union.Union11; +import com.strategyobject.substrateclient.common.types.union.Union11; import lombok.SneakyThrows; import org.junit.jupiter.api.Test; diff --git a/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union12ReaderTest.java b/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union12ReaderTest.java index 80167ef4..4de36cad 100644 --- a/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union12ReaderTest.java +++ b/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union12ReaderTest.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.readers.union; -import com.strategyobject.substrateclient.types.union.Union12; +import com.strategyobject.substrateclient.common.types.union.Union12; import lombok.SneakyThrows; import org.junit.jupiter.api.Test; diff --git a/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union4ReaderTest.java b/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union4ReaderTest.java index fbba3e68..356042ab 100644 --- a/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union4ReaderTest.java +++ b/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union4ReaderTest.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.readers.union; -import com.strategyobject.substrateclient.types.union.Union4; +import com.strategyobject.substrateclient.common.types.union.Union4; import lombok.SneakyThrows; import org.junit.jupiter.api.Test; diff --git a/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union5ReaderTest.java b/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union5ReaderTest.java index b998f24d..02bfe78d 100644 --- a/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union5ReaderTest.java +++ b/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union5ReaderTest.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.readers.union; -import com.strategyobject.substrateclient.types.union.Union5; +import com.strategyobject.substrateclient.common.types.union.Union5; import lombok.SneakyThrows; import org.junit.jupiter.api.Test; diff --git a/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union6ReaderTest.java b/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union6ReaderTest.java index 3f3218e0..dbbddbe7 100644 --- a/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union6ReaderTest.java +++ b/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union6ReaderTest.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.readers.union; -import com.strategyobject.substrateclient.types.union.Union6; +import com.strategyobject.substrateclient.common.types.union.Union6; import lombok.SneakyThrows; import org.junit.jupiter.api.Test; diff --git a/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union7ReaderTest.java b/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union7ReaderTest.java index aed2d82f..8a60abd8 100644 --- a/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union7ReaderTest.java +++ b/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union7ReaderTest.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.readers.union; -import com.strategyobject.substrateclient.types.union.Union7; +import com.strategyobject.substrateclient.common.types.union.Union7; import lombok.SneakyThrows; import org.junit.jupiter.api.Test; diff --git a/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union8ReaderTest.java b/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union8ReaderTest.java index 773497fb..e76f10c6 100644 --- a/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union8ReaderTest.java +++ b/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union8ReaderTest.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.readers.union; -import com.strategyobject.substrateclient.types.union.Union8; +import com.strategyobject.substrateclient.common.types.union.Union8; import lombok.SneakyThrows; import org.junit.jupiter.api.Test; diff --git a/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union9ReaderTest.java b/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union9ReaderTest.java index 6e2c4f3a..9a044eb5 100644 --- a/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union9ReaderTest.java +++ b/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/Union9ReaderTest.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.readers.union; -import com.strategyobject.substrateclient.types.union.Union9; +import com.strategyobject.substrateclient.common.types.union.Union9; import lombok.SneakyThrows; import org.junit.jupiter.api.Test; diff --git a/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/UnionReaderTester.java b/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/UnionReaderTester.java index c5fd980e..7da6ae49 100644 --- a/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/UnionReaderTester.java +++ b/scale/src/test/java/com/strategyobject/substrateclient/scale/readers/union/UnionReaderTester.java @@ -1,9 +1,9 @@ package com.strategyobject.substrateclient.scale.readers.union; +import com.strategyobject.substrateclient.common.types.union.Union; import com.strategyobject.substrateclient.scale.ScaleReader; import com.strategyobject.substrateclient.scale.readers.U8Reader; import com.strategyobject.substrateclient.scale.readers.VoidReader; -import com.strategyobject.substrateclient.types.union.Union; import lombok.SneakyThrows; import lombok.val; import lombok.var; diff --git a/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/ArrayWritersTest.java b/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/ArrayWritersTest.java index bb949436..8feb4e7c 100644 --- a/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/ArrayWritersTest.java +++ b/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/ArrayWritersTest.java @@ -14,7 +14,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class ArrayWritersTest { +class ArrayWritersTest { @TestFactory Stream write() { val Array2DWriter = new ArrayWriter().inject( diff --git a/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/ResultWriterTest.java b/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/ResultWriterTest.java index 6270382d..1523f282 100644 --- a/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/ResultWriterTest.java +++ b/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/ResultWriterTest.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.writers; -import com.strategyobject.substrateclient.types.Result; +import com.strategyobject.substrateclient.common.types.Result; import lombok.SneakyThrows; import lombok.val; import org.junit.jupiter.api.Test; diff --git a/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union10WriterTest.java b/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union10WriterTest.java index 5ca18562..8ee2d483 100644 --- a/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union10WriterTest.java +++ b/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union10WriterTest.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.writers.union; -import com.strategyobject.substrateclient.types.union.Union10; +import com.strategyobject.substrateclient.common.types.union.Union10; import org.junit.jupiter.api.Test; import java.util.function.Function; diff --git a/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union11WriterTest.java b/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union11WriterTest.java index d1e5c37a..c08d22a5 100644 --- a/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union11WriterTest.java +++ b/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union11WriterTest.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.writers.union; -import com.strategyobject.substrateclient.types.union.Union11; +import com.strategyobject.substrateclient.common.types.union.Union11; import org.junit.jupiter.api.Test; import java.util.function.Function; diff --git a/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union12WriterTest.java b/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union12WriterTest.java index f18ed9fc..c5984033 100644 --- a/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union12WriterTest.java +++ b/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union12WriterTest.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.writers.union; -import com.strategyobject.substrateclient.types.union.Union12; +import com.strategyobject.substrateclient.common.types.union.Union12; import org.junit.jupiter.api.Test; import java.util.function.Function; diff --git a/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union1WriterTest.java b/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union1WriterTest.java index bed11352..a6a2fdd1 100644 --- a/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union1WriterTest.java +++ b/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union1WriterTest.java @@ -1,7 +1,7 @@ package com.strategyobject.substrateclient.scale.writers.union; +import com.strategyobject.substrateclient.common.types.union.Union1; import com.strategyobject.substrateclient.scale.writers.I8Writer; -import com.strategyobject.substrateclient.types.union.Union1; import lombok.SneakyThrows; import lombok.val; import org.junit.jupiter.api.Test; diff --git a/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union2WriterTest.java b/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union2WriterTest.java index f46cc8bb..48e51943 100644 --- a/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union2WriterTest.java +++ b/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union2WriterTest.java @@ -1,8 +1,8 @@ package com.strategyobject.substrateclient.scale.writers.union; +import com.strategyobject.substrateclient.common.types.union.Union2; import com.strategyobject.substrateclient.scale.writers.I8Writer; import com.strategyobject.substrateclient.scale.writers.VoidWriter; -import com.strategyobject.substrateclient.types.union.Union2; import lombok.SneakyThrows; import lombok.val; import org.junit.jupiter.api.Test; diff --git a/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union3WriterTest.java b/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union3WriterTest.java index 45098e12..b6220806 100644 --- a/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union3WriterTest.java +++ b/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union3WriterTest.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.writers.union; -import com.strategyobject.substrateclient.types.union.Union3; +import com.strategyobject.substrateclient.common.types.union.Union3; import org.junit.jupiter.api.Test; import java.util.function.Function; diff --git a/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union4WriterTest.java b/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union4WriterTest.java index dd40d326..a5cadf15 100644 --- a/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union4WriterTest.java +++ b/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union4WriterTest.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.writers.union; -import com.strategyobject.substrateclient.types.union.Union4; +import com.strategyobject.substrateclient.common.types.union.Union4; import org.junit.jupiter.api.Test; import java.util.function.Function; diff --git a/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union5WriterTest.java b/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union5WriterTest.java index 45f1fa51..fbc86395 100644 --- a/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union5WriterTest.java +++ b/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union5WriterTest.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.writers.union; -import com.strategyobject.substrateclient.types.union.Union5; +import com.strategyobject.substrateclient.common.types.union.Union5; import org.junit.jupiter.api.Test; import java.util.function.Function; diff --git a/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union6WriterTest.java b/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union6WriterTest.java index 040d5e4a..e474cb67 100644 --- a/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union6WriterTest.java +++ b/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union6WriterTest.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.writers.union; -import com.strategyobject.substrateclient.types.union.Union6; +import com.strategyobject.substrateclient.common.types.union.Union6; import org.junit.jupiter.api.Test; import java.util.function.Function; diff --git a/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union7WriterTest.java b/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union7WriterTest.java index 8677a64c..598509e9 100644 --- a/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union7WriterTest.java +++ b/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union7WriterTest.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.writers.union; -import com.strategyobject.substrateclient.types.union.Union7; +import com.strategyobject.substrateclient.common.types.union.Union7; import org.junit.jupiter.api.Test; import java.util.function.Function; diff --git a/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union8WriterTest.java b/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union8WriterTest.java index c9939daa..22332406 100644 --- a/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union8WriterTest.java +++ b/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union8WriterTest.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.writers.union; -import com.strategyobject.substrateclient.types.union.Union8; +import com.strategyobject.substrateclient.common.types.union.Union8; import org.junit.jupiter.api.Test; import java.util.function.Function; diff --git a/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union9WriterTest.java b/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union9WriterTest.java index cc21f320..5eb31c2f 100644 --- a/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union9WriterTest.java +++ b/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/Union9WriterTest.java @@ -1,6 +1,6 @@ package com.strategyobject.substrateclient.scale.writers.union; -import com.strategyobject.substrateclient.types.union.Union9; +import com.strategyobject.substrateclient.common.types.union.Union9; import org.junit.jupiter.api.Test; import java.util.function.Function; diff --git a/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/UnionWriterTester.java b/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/UnionWriterTester.java index 142e3db8..51d40765 100644 --- a/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/UnionWriterTester.java +++ b/scale/src/test/java/com/strategyobject/substrateclient/scale/writers/union/UnionWriterTester.java @@ -1,9 +1,9 @@ package com.strategyobject.substrateclient.scale.writers.union; +import com.strategyobject.substrateclient.common.types.union.Union; import com.strategyobject.substrateclient.scale.ScaleWriter; import com.strategyobject.substrateclient.scale.writers.I8Writer; import com.strategyobject.substrateclient.scale.writers.VoidWriter; -import com.strategyobject.substrateclient.types.union.Union; import lombok.SneakyThrows; import lombok.val; import lombok.var; diff --git a/settings.gradle b/settings.gradle index 64e2f05a..27850e9b 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,20 +1,19 @@ rootProject.name = 'substrate-client' -include 'api' include 'common' +include 'tests' + include 'crypto' -include 'rpc' -include 'rpc:rpc-codegen' -include 'rpc:rpc-core' -include 'rpc:rpc-types' -include 'rpc:rpc-sections' -include 'types' include 'scale' include 'scale:scale-codegen' -include 'tests' include 'transport' -include 'types' -include 'storage' + +include 'rpc' +include 'rpc:rpc-codegen' + +include 'rpc:rpc-api' + include 'pallet' include 'pallet:pallet-codegen' +include 'api' diff --git a/tests/src/main/java/com/strategyobject/substrateclient/tests/containers/SubstrateVersion.java b/tests/src/main/java/com/strategyobject/substrateclient/tests/containers/SubstrateVersion.java index ee806ce1..0cff4c39 100644 --- a/tests/src/main/java/com/strategyobject/substrateclient/tests/containers/SubstrateVersion.java +++ b/tests/src/main/java/com/strategyobject/substrateclient/tests/containers/SubstrateVersion.java @@ -2,4 +2,7 @@ public class SubstrateVersion { public static final String V3_0_0 = "v3.0.0"; + + private SubstrateVersion() { + } } diff --git a/tests/src/main/java/com/strategyobject/substrateclient/tests/containers/TestSubstrateContainer.java b/tests/src/main/java/com/strategyobject/substrateclient/tests/containers/TestSubstrateContainer.java index 65b816ea..4f10f77a 100644 --- a/tests/src/main/java/com/strategyobject/substrateclient/tests/containers/TestSubstrateContainer.java +++ b/tests/src/main/java/com/strategyobject/substrateclient/tests/containers/TestSubstrateContainer.java @@ -9,7 +9,7 @@ public TestSubstrateContainer(String version) { super(IMAGE + version); addExposedPorts(30333, 9944, 9933); - withCommand("--tmp --dev --ws-external --rpc-methods=Unsafe --rpc-cors all --rpc-external"); + setCommand("--tmp --dev --ws-external --rpc-methods=Unsafe --rpc-cors all --rpc-external"); } public String getWsAddress() { diff --git a/transport/src/test/java/com/strategyobject/substrateclient/transport/ws/WsProviderProxyTest.java b/transport/src/test/java/com/strategyobject/substrateclient/transport/ws/WsProviderProxyTest.java index c4582b3e..6c3ee395 100644 --- a/transport/src/test/java/com/strategyobject/substrateclient/transport/ws/WsProviderProxyTest.java +++ b/transport/src/test/java/com/strategyobject/substrateclient/transport/ws/WsProviderProxyTest.java @@ -20,7 +20,7 @@ import static org.junit.jupiter.api.Assertions.*; @Testcontainers -public class WsProviderProxyTest { +class WsProviderProxyTest { static final Network network = Network.newNetwork(); @Container diff --git a/types/build.gradle b/types/build.gradle deleted file mode 100644 index 281f896d..00000000 --- a/types/build.gradle +++ /dev/null @@ -1 +0,0 @@ -dependencies {} \ No newline at end of file diff --git a/types/src/main/java/com/strategyobject/substrateclient/types/Array.java b/types/src/main/java/com/strategyobject/substrateclient/types/Array.java deleted file mode 100644 index 98e3849e..00000000 --- a/types/src/main/java/com/strategyobject/substrateclient/types/Array.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.strategyobject.substrateclient.types; - -public interface Array { -}