From 5b2b9193cbf6498d9aeed15b62fc3485eff2d3e8 Mon Sep 17 00:00:00 2001 From: Jaco Date: Wed, 5 May 2021 12:13:34 +0300 Subject: [PATCH] Show encoded call data/hash on extrinsics (#5210) * Show encoded call data/hash on extrinsics * One-time method-only encoding --- packages/page-extrinsics/src/Selection.tsx | 32 ++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/packages/page-extrinsics/src/Selection.tsx b/packages/page-extrinsics/src/Selection.tsx index 5bdd371b77..9f9c65d43c 100644 --- a/packages/page-extrinsics/src/Selection.tsx +++ b/packages/page-extrinsics/src/Selection.tsx @@ -3,11 +3,12 @@ import type { SubmittableExtrinsic } from '@polkadot/api/types'; -import React, { useCallback, useState } from 'react'; +import React, { useCallback, useMemo, useState } from 'react'; -import { Button, Extrinsic, InputAddress, MarkError, TxButton } from '@polkadot/react-components'; +import { Button, Extrinsic, InputAddress, MarkError, Output, TxButton } from '@polkadot/react-components'; import { useApi } from '@polkadot/react-hooks'; import { BalanceFree } from '@polkadot/react-query'; +import { u8aToHex } from '@polkadot/util'; import { useTranslation } from './translate'; @@ -28,6 +29,20 @@ function Selection (): React.ReactElement { [] ); + const [extrinsicHex, extrinsicHash] = useMemo( + (): [string, string] => { + if (!extrinsic) { + return ['0x', '0x']; + } + + const u8a = extrinsic.method.toU8a(); + + // don't use the built-in hash, we only want to convert once + return [u8aToHex(u8a), extrinsic.registry.hash(u8a).toHex()]; + }, + [extrinsic] + ); + return (
+ + {error && !extrinsic && ( )}