Use para types from metadata v14 (#6437)

This commit is contained in:
Jaco 2021-10-29 04:14:30 +02:00 committed by GitHub
parent 27795ab27a
commit 850138facd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 38 additions and 26 deletions

View File

@ -1,7 +1,7 @@
// Copyright 2017-2021 @polkadot/app-parachains authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type { ParaLifecycle } from '@polkadot/types/interfaces';
import type { PolkadotRuntimeParachainsParasParaLifecycle } from '@polkadot/types/lookup';
import type { QueuedAction } from '../types';
import React from 'react';
@ -9,7 +9,7 @@ import React from 'react';
import { SessionToTime } from '@polkadot/react-query';
interface Props {
lifecycle: ParaLifecycle | null;
lifecycle: PolkadotRuntimeParachainsParasParaLifecycle | null;
nextAction?: QueuedAction;
}

View File

@ -2,7 +2,8 @@
// SPDX-License-Identifier: Apache-2.0
import type { Option, Vec } from '@polkadot/types';
import type { AccountId, BalanceOf, BlockNumber, CandidatePendingAvailability, GroupIndex, HeadData, ParaId, ParaInfo, ParaLifecycle } from '@polkadot/types/interfaces';
import type { AccountId, BalanceOf, BlockNumber, CandidatePendingAvailability, GroupIndex, HeadData, ParaId } from '@polkadot/types/interfaces';
import type { PolkadotRuntimeCommonParasRegistrarParaInfo, PolkadotRuntimeParachainsParasParaLifecycle } from '@polkadot/types/lookup';
import type { Codec, ITuple } from '@polkadot/types/types';
import type { LeasePeriod, QueuedAction } from '../types';
import type { EventMapInfo, ValidatorInfo } from './types';
@ -35,13 +36,13 @@ interface Props {
validators?: [GroupIndex, ValidatorInfo[]];
}
type QueryResult = [Option<HeadData>, Option<BlockNumber>, Option<ParaLifecycle>, Vec<Codec>, Vec<Codec>, Vec<Codec>, Vec<Codec>, Option<BlockNumber>, Option<CandidatePendingAvailability>, Option<ParaInfo>, Option<ITuple<[AccountId, BalanceOf]>>[]];
type QueryResult = [Option<HeadData>, Option<BlockNumber>, Option<PolkadotRuntimeParachainsParasParaLifecycle>, Vec<Codec>, Vec<Codec>, Vec<Codec>, Vec<Codec>, Option<BlockNumber>, Option<CandidatePendingAvailability>, Option<PolkadotRuntimeCommonParasRegistrarParaInfo>, Option<ITuple<[AccountId, BalanceOf]>>[]];
interface QueryState {
headHex: string | null;
leases: number[];
lifecycle: ParaLifecycle | null;
paraInfo: ParaInfo | null;
lifecycle: PolkadotRuntimeParachainsParasParaLifecycle | null;
paraInfo: PolkadotRuntimeCommonParasRegistrarParaInfo | null;
pendingAvail: CandidatePendingAvailability | null;
updateAt: BlockNumber | null;
qDmp: number;

View File

@ -2,7 +2,8 @@
// SPDX-License-Identifier: Apache-2.0
import type { Option } from '@polkadot/types';
import type { AccountId, HeadData, ParaGenesisArgs, ParaId, ParaInfo, ParaLifecycle } from '@polkadot/types/interfaces';
import type { AccountId, HeadData, ParaId } from '@polkadot/types/interfaces';
import type { PolkadotRuntimeCommonParasRegistrarParaInfo, PolkadotRuntimeParachainsParasParaGenesisArgs, PolkadotRuntimeParachainsParasParaLifecycle } from '@polkadot/types/lookup';
import type { LeaseInfo, LeasePeriod, QueuedAction } from '../types';
import React, { useMemo } from 'react';
@ -26,7 +27,7 @@ interface Props {
interface MultiState {
headHex: string | null;
lifecycle: ParaLifecycle | null;
lifecycle: PolkadotRuntimeParachainsParasParaLifecycle | null;
manager: AccountId | null;
}
@ -36,7 +37,7 @@ const optMulti = {
lifecycle: null,
manager: null
},
transform: ([optHead, optGenesis, optLifecycle, optInfo]: [Option<HeadData>, Option<ParaGenesisArgs>, Option<ParaLifecycle>, Option<ParaInfo>]): MultiState => ({
transform: ([optHead, optGenesis, optLifecycle, optInfo]: [Option<HeadData>, Option<PolkadotRuntimeParachainsParasParaGenesisArgs>, Option<PolkadotRuntimeParachainsParasParaLifecycle>, Option<PolkadotRuntimeCommonParasRegistrarParaInfo>]): MultiState => ({
headHex: optHead.isSome
? sliceHex(optHead.unwrap())
: optGenesis.isSome

View File

@ -2,9 +2,10 @@
// SPDX-License-Identifier: Apache-2.0
import type BN from 'bn.js';
import type { AccountId, AuctionIndex, BalanceOf, BlockNumber, FundInfo, HrmpChannel, HrmpChannelId, LeasePeriodOf, ParachainProposal, ParaId, ParaInfo, SessionIndex } from '@polkadot/types/interfaces';
import type { AccountId, AuctionIndex, BalanceOf, BlockNumber, LeasePeriodOf, ParachainProposal, ParaId, SessionIndex } from '@polkadot/types/interfaces';
import type { PolkadotParachainPrimitivesHrmpChannelId, PolkadotRuntimeCommonCrowdloanFundInfo, PolkadotRuntimeCommonParasRegistrarParaInfo, PolkadotRuntimeParachainsHrmpHrmpChannel } from '@polkadot/types/lookup';
export type ChannelMap = Record<string, [HrmpChannelId, HrmpChannel][]>;
export type ChannelMap = Record<string, [PolkadotParachainPrimitivesHrmpChannelId, PolkadotRuntimeParachainsHrmpHrmpChannel][]>;
export interface AllChannels {
dst: ChannelMap;
@ -49,7 +50,7 @@ export interface Campaigns {
}
export interface Campaign extends WinnerData {
info: FundInfo;
info: PolkadotRuntimeCommonCrowdloanFundInfo;
isCapped?: boolean;
isEnded?: boolean;
isWinner?: boolean;
@ -71,7 +72,7 @@ export interface Proposals {
export interface OwnedIdPartial {
manager: string;
paraId: ParaId;
paraInfo: ParaInfo;
paraInfo: PolkadotRuntimeCommonParasRegistrarParaInfo;
}
export interface OwnedId extends OwnedIdPartial {

View File

@ -2,7 +2,8 @@
// SPDX-License-Identifier: Apache-2.0
import type { Option, StorageKey } from '@polkadot/types';
import type { AccountId, BalanceOf, BlockNumber, FundInfo, ParaId } from '@polkadot/types/interfaces';
import type { AccountId, BalanceOf, BlockNumber, ParaId } from '@polkadot/types/interfaces';
import type { PolkadotRuntimeCommonCrowdloanFundInfo } from '@polkadot/types/lookup';
import type { ITuple } from '@polkadot/types/types';
import type { Campaign, Campaigns } from './types';
@ -112,10 +113,10 @@ function createResult (bestNumber: BlockNumber, minContribution: BN, funds: Camp
}
const optFundMulti = {
transform: ([[paraIds], optFunds]: [[ParaId[]], Option<FundInfo>[]]): Campaign[] =>
transform: ([[paraIds], optFunds]: [[ParaId[]], Option<PolkadotRuntimeCommonCrowdloanFundInfo>[]]): Campaign[] =>
paraIds
.map((paraId, i): [ParaId, FundInfo | null] => [paraId, optFunds[i].unwrapOr(null)])
.filter((v): v is [ParaId, FundInfo] => !!v[1])
.map((paraId, i): [ParaId, PolkadotRuntimeCommonCrowdloanFundInfo | null] => [paraId, optFunds[i].unwrapOr(null)])
.filter((v): v is [ParaId, PolkadotRuntimeCommonCrowdloanFundInfo] => !!v[1])
.map(([paraId, info]): Campaign => ({
accountId: encodeAddress(createAddress(paraId)),
firstSlot: info.firstPeriod,

View File

@ -2,7 +2,8 @@
// SPDX-License-Identifier: Apache-2.0
import type { Option, StorageKey } from '@polkadot/types';
import type { Hash, ParaId, ParaInfo } from '@polkadot/types/interfaces';
import type { Hash, ParaId } from '@polkadot/types/interfaces';
import type { PolkadotRuntimeCommonParasRegistrarParaInfo } from '@polkadot/types/lookup';
import type { OwnedId, OwnedIdPartial } from './types';
import { useMemo } from 'react';
@ -19,7 +20,7 @@ interface Owned {
owned: OwnedIdPartial[];
}
function extractIds (entries: [StorageKey<[ParaId]>, Option<ParaInfo>][]): Owned {
function extractIds (entries: [StorageKey<[ParaId]>, Option<PolkadotRuntimeCommonParasRegistrarParaInfo>][]): Owned {
const owned = entries
.map(([{ args: [paraId] }, optInfo]): OwnedIdPartial | null => {
if (optInfo.isNone) {

View File

@ -2,19 +2,20 @@
// SPDX-License-Identifier: Apache-2.0
import type { Option, StorageKey } from '@polkadot/types';
import type { ParaId, ParaLifecycle } from '@polkadot/types/interfaces';
import type { ParaId } from '@polkadot/types/interfaces';
import type { PolkadotRuntimeParachainsParasParaLifecycle } from '@polkadot/types/lookup';
import { useApi, useEventTrigger, useMapEntries } from '@polkadot/react-hooks';
function extractIds (entries: [StorageKey<[ParaId]>, Option<ParaLifecycle>][]): ParaId[] {
function extractIds (entries: [StorageKey<[ParaId]>, Option<PolkadotRuntimeParachainsParasParaLifecycle>][]): ParaId[] {
return entries
.map(([{ args: [paraId] }, optValue]): ParaId | null => {
const value = optValue.unwrap();
const value = optValue.unwrapOr(null);
return value && (
value.isParathread ||
value.isUpgradingToParachain ||
value.isOutgoingParathread ||
value.isUpgradingParathread ||
value.isOffboardingParathread ||
value.isOnboarding
)
? paraId
@ -26,7 +27,13 @@ function extractIds (entries: [StorageKey<[ParaId]>, Option<ParaLifecycle>][]):
export default function useUpomingIds (): ParaId[] | undefined {
const { api } = useApi();
const trigger = useEventTrigger([api.events.session.NewSession, api.events.registrar.Registered]);
const trigger = useEventTrigger([
api.events.session.NewSession,
api.events.registrar.Registered
]);
return useMapEntries(api.query.paras.paraLifecycles, { at: trigger.blockHash, transform: extractIds });
return useMapEntries(api.query.paras.paraLifecycles, {
at: trigger.blockHash,
transform: extractIds
});
}