Use para types from metadata v14 (#6437)
This commit is contained in:
parent
27795ab27a
commit
850138facd
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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
|
||||
});
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user