From 37aceb3985dd35dd172488595c9c65e7dd8b9605 Mon Sep 17 00:00:00 2001 From: Julian Fortune Date: Fri, 6 Feb 2026 14:14:27 -0800 Subject: [PATCH 1/3] Adds `AccountIdDecoder` --- .../rpc/api/AccountIdDecoder.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/AccountIdDecoder.java diff --git a/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/AccountIdDecoder.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/AccountIdDecoder.java new file mode 100644 index 00000000..ce0921e6 --- /dev/null +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/AccountIdDecoder.java @@ -0,0 +1,24 @@ +package com.strategyobject.substrateclient.rpc.api; + +import com.strategyobject.substrateclient.crypto.ss58.SS58Codec; +import com.strategyobject.substrateclient.rpc.DecoderPair; +import com.strategyobject.substrateclient.rpc.RpcDecoder; +import com.strategyobject.substrateclient.rpc.annotation.AutoRegister; +import com.strategyobject.substrateclient.rpc.context.RpcDecoderContext; +import com.strategyobject.substrateclient.transport.RpcObject; +import lombok.NonNull; +import lombok.RequiredArgsConstructor; + +@RequiredArgsConstructor +@AutoRegister(types = AccountId.class) +public class AccountIdDecoder implements RpcDecoder { + private final @NonNull RpcDecoderContext rpcDecoderContext; + + @Override + public AccountId decode(RpcObject value, DecoderPair... decoders) { + if (value.isNull()) { return null; } + if (decoders != null && decoders.length > 0) throw new IllegalArgumentException(); + + return AccountId.fromBytes(SS58Codec.decode(value.asString()).getAddress()); + } +} From c4eb060a97f3cac5e7a49af65eb3b9e4d620519e Mon Sep 17 00:00:00 2001 From: Julian Fortune Date: Fri, 6 Feb 2026 16:11:45 -0800 Subject: [PATCH 2/3] Cleanup --- .../substrateclient/rpc/api/AccountIdDecoder.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/AccountIdDecoder.java b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/AccountIdDecoder.java index ce0921e6..3a6dfd36 100644 --- a/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/AccountIdDecoder.java +++ b/rpc/rpc-api/src/main/java/com/strategyobject/substrateclient/rpc/api/AccountIdDecoder.java @@ -4,15 +4,12 @@ import com.strategyobject.substrateclient.rpc.DecoderPair; import com.strategyobject.substrateclient.rpc.RpcDecoder; import com.strategyobject.substrateclient.rpc.annotation.AutoRegister; -import com.strategyobject.substrateclient.rpc.context.RpcDecoderContext; import com.strategyobject.substrateclient.transport.RpcObject; -import lombok.NonNull; import lombok.RequiredArgsConstructor; @RequiredArgsConstructor @AutoRegister(types = AccountId.class) public class AccountIdDecoder implements RpcDecoder { - private final @NonNull RpcDecoderContext rpcDecoderContext; @Override public AccountId decode(RpcObject value, DecoderPair... decoders) { @@ -21,4 +18,5 @@ public AccountId decode(RpcObject value, DecoderPair... decoders) { return AccountId.fromBytes(SS58Codec.decode(value.asString()).getAddress()); } + } From e90938faa83487503653078a212f8d010b21172f Mon Sep 17 00:00:00 2001 From: Julian Fortune Date: Mon, 9 Feb 2026 10:43:43 -0800 Subject: [PATCH 3/3] Pins transitive dependencies --- crypto/src/jni-crypto/Cargo.toml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/crypto/src/jni-crypto/Cargo.toml b/crypto/src/jni-crypto/Cargo.toml index 5cbf3b59..220015b4 100644 --- a/crypto/src/jni-crypto/Cargo.toml +++ b/crypto/src/jni-crypto/Cargo.toml @@ -12,6 +12,12 @@ curve25519-dalek = { version = "2.1.0", default-features = false } schnorrkel = { version = "0.9.1", features = ["preaudit_deprecated", "u64_backend"] } hex = "0.4.3" +# Pinned transitive dependencies +proc-macro2 = { version = "=1.0.81" } +unicode-ident = { version = "=1.0.12" } +quote = { version = "=1.0.36" } +log = { version = "=0.4.21" } + [dev-dependencies] hex-literal = "0.2.0" -rand = { version = "0.7.3", features = ["wasm-bindgen"] } \ No newline at end of file +rand = { version = "0.7.3", features = ["wasm-bindgen"] }