From f6bb408b56fbe79464dab675d0cb5455e95e2520 Mon Sep 17 00:00:00 2001 From: rajk93 Date: Wed, 30 Jul 2025 16:51:55 +0530 Subject: [PATCH] fix: signing extrinsics on ledger device (#1579) --- .../extension-ui/src/Popup/Signing/Request/index.tsx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/extension-ui/src/Popup/Signing/Request/index.tsx b/packages/extension-ui/src/Popup/Signing/Request/index.tsx index f3e642df..6dd0f23c 100644 --- a/packages/extension-ui/src/Popup/Signing/Request/index.tsx +++ b/packages/extension-ui/src/Popup/Signing/Request/index.tsx @@ -11,7 +11,7 @@ import React, { useCallback, useContext, useEffect, useState } from 'react'; import { TypeRegistry } from '@polkadot/types'; import { ActionContext, Address, VerticalSpace, Warning } from '../../../components/index.js'; -import { useTranslation } from '../../../hooks/index.js'; +import { useMetadata, useTranslation } from '../../../hooks/index.js'; import { approveSignSignature } from '../../../messaging.js'; import Bytes from '../Bytes.js'; import Extrinsic from '../Extrinsic.js'; @@ -48,6 +48,15 @@ export default function Request ({ account: { accountIndex, addressOffset, genes const [{ hexBytes, payload }, setData] = useState({ hexBytes: null, payload: null }); const [error, setError] = useState(null); const { t } = useTranslation(); + const chain = useMetadata(genesisHash); + + useEffect((): void => { + // When the chain and request are ready, configure the chain's registry. + // This will be picked up by LedgerSign. + if (chain && !isRawPayload(request.payload)) { + chain.registry.setSignedExtensions(request.payload.signedExtensions, chain.definition.userExtensions); + } + }, [chain, request]); useEffect((): void => { const payload = request.payload;