From ddfe4ba9c15f01000c7d6e497c28dcbe3c6d0e9e Mon Sep 17 00:00:00 2001 From: Jaco Date: Tue, 6 Dec 2022 07:36:44 +0200 Subject: [PATCH] Decode scheduler Lookup entries (#8487) * Decode scheduler Lookup entries * short hashes --- .../page-democracy/src/Execute/Scheduled.tsx | 21 +++++++++++-------- .../page-democracy/src/Execute/Scheduler.tsx | 5 ++++- packages/page-democracy/src/Execute/types.ts | 2 ++ 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/packages/page-democracy/src/Execute/Scheduled.tsx b/packages/page-democracy/src/Execute/Scheduled.tsx index 2b2b0ad5ae..023a83f19d 100644 --- a/packages/page-democracy/src/Execute/Scheduled.tsx +++ b/packages/page-democracy/src/Execute/Scheduled.tsx @@ -6,6 +6,8 @@ import type { ScheduledExt } from './types'; import React from 'react'; +import Hash from '@polkadot/app-preimages/Preimages/Hash'; +import usePreimage from '@polkadot/app-preimages/usePreimage'; import { CallExpander } from '@polkadot/react-components'; import { BlockToTime } from '@polkadot/react-query'; import { formatNumber } from '@polkadot/util'; @@ -16,22 +18,23 @@ interface Props { value: ScheduledExt; } -function Scheduled ({ bestNumber, className = '', value: { blockNumber, call, maybeId, maybePeriodic } }: Props): React.ReactElement { +function Scheduled ({ bestNumber, className = '', value: { blockNumber, call, maybeId, maybePeriodic, preimageHash } }: Props): React.ReactElement { + const preimage = usePreimage(preimageHash); + const period = maybePeriodic.unwrapOr(null); const name = maybeId.unwrapOr(null); return ( - - - - {name && ( - name.isAscii - ? name.toUtf8() - : name.toHex() - )} + + {name + ? name.isAscii + ? {name.toUtf8()} + : + : + } {bestNumber && ( <> diff --git a/packages/page-democracy/src/Execute/Scheduler.tsx b/packages/page-democracy/src/Execute/Scheduler.tsx index f94c782569..882b94e8a0 100644 --- a/packages/page-democracy/src/Execute/Scheduler.tsx +++ b/packages/page-democracy/src/Execute/Scheduler.tsx @@ -52,6 +52,7 @@ const OPT_SCHED = { .map((o) => o.unwrap()) .reduce((items: ScheduledExt[], { call: callOrEnum, maybeId, maybePeriodic, priority }, index) => { let call: Call | null = null; + let preimageHash: FrameSupportPreimagesBounded | undefined; if ((callOrEnum as unknown as FrameSupportScheduleMaybeHashed).inner) { if ((callOrEnum as unknown as FrameSupportScheduleMaybeHashed).isValue) { @@ -62,12 +63,14 @@ const OPT_SCHED = { } catch (error) { console.error(error); } + } else if ((callOrEnum as unknown as FrameSupportPreimagesBounded).isLookup) { + preimageHash = (callOrEnum as unknown as FrameSupportPreimagesBounded); } } else { call = callOrEnum as Call; } - items.push({ blockNumber, call, key: `${blockNumber.toString()}-${index}`, maybeId, maybePeriodic, priority }); + items.push({ blockNumber, call, key: `${blockNumber.toString()}-${index}`, maybeId, maybePeriodic, preimageHash, priority }); return items; }, items); diff --git a/packages/page-democracy/src/Execute/types.ts b/packages/page-democracy/src/Execute/types.ts index 27fd7f7152..9e31b52c79 100644 --- a/packages/page-democracy/src/Execute/types.ts +++ b/packages/page-democracy/src/Execute/types.ts @@ -3,6 +3,7 @@ import type { Bytes, Option } from '@polkadot/types'; import type { BlockNumber, Call, SchedulePeriod, SchedulePriority } from '@polkadot/types/interfaces'; +import type { FrameSupportPreimagesBounded } from '@polkadot/types/lookup'; export interface ScheduledExt { blockNumber: BlockNumber; @@ -11,4 +12,5 @@ export interface ScheduledExt { maybeId: Option; maybePeriodic: Option; priority: SchedulePriority; + preimageHash?: FrameSupportPreimagesBounded; }