From afbe072ad5f5b0f9cb4fa9b687add57f80e0f63f Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Tue, 3 Dec 2019 13:01:13 +0100 Subject: [PATCH] Optional preImage & Proposal for democracy --- .../api-derive/src/democracy/proposals.ts | 18 ++++++++------ .../src/democracy/referendumInfo.ts | 24 ++++++++++++------- packages/api-derive/src/types.ts | 8 +++---- 3 files changed, 31 insertions(+), 19 deletions(-) diff --git a/packages/api-derive/src/democracy/proposals.ts b/packages/api-derive/src/democracy/proposals.ts index 3115dea554..26da5e91e7 100644 --- a/packages/api-derive/src/democracy/proposals.ts +++ b/packages/api-derive/src/democracy/proposals.ts @@ -48,19 +48,23 @@ export function proposals (api: ApiInterfaceRx): () => Observable { - const preImage = _preImages[index].unwrap(); + const preImage = _preImages[index].unwrapOr(null); const depositors = _depositors[index].unwrap(); return { balance: depositors[0], hash, index: propIndex, - preimage: { - at: preImage[3], - balance: preImage[2], - proposer: preImage[1] - }, - proposal: createType(api.registry, 'Proposal', preImage[0].toU8a(true)), + preimage: preImage + ? { + at: preImage[3], + balance: preImage[2], + proposer: preImage[1] + } + : undefined, + proposal: preImage + ? createType(api.registry, 'Proposal', preImage[0].toU8a(true)) + : undefined, proposer, seconds: depositors[1] }; diff --git a/packages/api-derive/src/democracy/referendumInfo.ts b/packages/api-derive/src/democracy/referendumInfo.ts index 3b946245cc..482d26a650 100644 --- a/packages/api-derive/src/democracy/referendumInfo.ts +++ b/packages/api-derive/src/democracy/referendumInfo.ts @@ -15,12 +15,14 @@ import { Option, createType } from '@polkadot/types'; import { memo } from '../util'; function constructInfo (api: ApiInterfaceRx, index: BN | number, _info: Option, _preimage?: PreImage): DerivedReferendum | null { + console.log(JSON.stringify(_info), JSON.stringify(_preimage)); + const preImage = _preimage?.isSome ? _preimage.unwrap() : null; - const info = (_preimage && _info.unwrapOr(null)) || null; + const info = _info.unwrapOr(null); - if (!info || !preImage) { + if (!info) { return null; } @@ -28,16 +30,22 @@ function constructInfo (api: ApiInterfaceRx, index: BN | number, _info: Option): Observable { + console.log(JSON.stringify(info)); + return (( info?.isSome ? api.query.democracy.preimages(info.unwrap().proposalHash) diff --git a/packages/api-derive/src/types.ts b/packages/api-derive/src/types.ts index a4cd451762..3e4bef9f1f 100644 --- a/packages/api-derive/src/types.ts +++ b/packages/api-derive/src/types.ts @@ -89,8 +89,8 @@ export interface DeriveProposal { balance?: Balance; hash: Hash; index: PropIndex; - preimage: DeriveProposalPreImage; - proposal: Proposal; + preimage?: DeriveProposalPreImage; + proposal?: Proposal; proposer: AccountId; seconds: Vec; } @@ -99,8 +99,8 @@ export interface DerivedReferendum { hash: Hash; index: PropIndex; info: ReferendumInfo; - preimage: DeriveProposalPreImage; - proposal: Proposal; + preimage?: DeriveProposalPreImage; + proposal?: Proposal; } export type DerivedRecentlyOffline = Record;