From 38b4b69d3b81ea86489fabeeb38d4108825eb8dd Mon Sep 17 00:00:00 2001 From: zerox-toml Date: Mon, 7 Jul 2025 17:28:13 +0000 Subject: [PATCH 1/3] fix: Refactor signing functions to use blake2AsU8a for hashing instead of registry.hash in conditional sign of extrinsic payload --- packages/types/src/extrinsic/util.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/types/src/extrinsic/util.ts b/packages/types/src/extrinsic/util.ts index 8b2f0663607..83e3a62ed1e 100644 --- a/packages/types/src/extrinsic/util.ts +++ b/packages/types/src/extrinsic/util.ts @@ -4,18 +4,19 @@ import type { SignOptions } from '@polkadot/keyring/types'; import type { Registry } from '@polkadot/types-codec/types'; import type { IKeyringPair } from '../types/index.js'; +import { blake2AsU8a } from '@polkadot/util-crypto'; // a helper function for both types of payloads, Raw and metadata-known export function sign (registry: Registry, signerPair: IKeyringPair, u8a: Uint8Array, options?: SignOptions): Uint8Array { const encoded = u8a.length > 256 - ? registry.hash(u8a) + ? blake2AsU8a(u8a) : u8a; return signerPair.sign(encoded, options); } export function signGeneral (registry: Registry, u8a: Uint8Array): Uint8Array { - const encoded = registry.hash(u8a); + const encoded = blake2AsU8a(u8a); return encoded; } From 3e5d5cf05206e688febb17ce31921343cb14e0f4 Mon Sep 17 00:00:00 2001 From: zerox-toml Date: Wed, 9 Jul 2025 05:20:15 +0000 Subject: [PATCH 2/3] fix: resolve lint error and discard unused hash --- packages/types/src/extrinsic/util.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/types/src/extrinsic/util.ts b/packages/types/src/extrinsic/util.ts index 83e3a62ed1e..0f94447570d 100644 --- a/packages/types/src/extrinsic/util.ts +++ b/packages/types/src/extrinsic/util.ts @@ -7,7 +7,7 @@ import type { IKeyringPair } from '../types/index.js'; import { blake2AsU8a } from '@polkadot/util-crypto'; // a helper function for both types of payloads, Raw and metadata-known -export function sign (registry: Registry, signerPair: IKeyringPair, u8a: Uint8Array, options?: SignOptions): Uint8Array { +export function sign (_registry: Registry, signerPair: IKeyringPair, u8a: Uint8Array, options?: SignOptions): Uint8Array { const encoded = u8a.length > 256 ? blake2AsU8a(u8a) : u8a; @@ -16,7 +16,7 @@ export function sign (registry: Registry, signerPair: IKeyringPair, u8a: Uint8Ar } export function signGeneral (registry: Registry, u8a: Uint8Array): Uint8Array { - const encoded = blake2AsU8a(u8a); + const encoded = registry.hash(u8a); return encoded; } From 65bb4a746b39b761b084aa70fbcae3348fadd360 Mon Sep 17 00:00:00 2001 From: zerox-toml Date: Wed, 9 Jul 2025 06:50:21 +0000 Subject: [PATCH 3/3] fix: resolve lint err --- packages/types/src/extrinsic/util.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/types/src/extrinsic/util.ts b/packages/types/src/extrinsic/util.ts index 0f94447570d..0424b90cfa7 100644 --- a/packages/types/src/extrinsic/util.ts +++ b/packages/types/src/extrinsic/util.ts @@ -4,6 +4,7 @@ import type { SignOptions } from '@polkadot/keyring/types'; import type { Registry } from '@polkadot/types-codec/types'; import type { IKeyringPair } from '../types/index.js'; + import { blake2AsU8a } from '@polkadot/util-crypto'; // a helper function for both types of payloads, Raw and metadata-known