From 3715cfe6d3825bae79194f4e468fe68c35e3b3e6 Mon Sep 17 00:00:00 2001 From: Jaco Date: Sat, 30 Oct 2021 07:39:53 +0200 Subject: [PATCH] Use metadata v14 types in assets (statemine upgraded) (#6446) --- packages/page-assets/src/Balances/Account.tsx | 13 +++++++------ packages/page-assets/src/Balances/Transfer.tsx | 5 ++--- packages/page-assets/src/Balances/useBalances.ts | 11 ++++++----- packages/page-assets/src/Overview/Create/Create.tsx | 3 +-- packages/page-assets/src/Overview/Create/Info.tsx | 3 +-- packages/page-assets/src/Overview/Create/index.tsx | 3 +-- packages/page-assets/src/Overview/Mint/Mint.tsx | 8 ++++---- packages/page-assets/src/Overview/Mint/index.tsx | 9 +++++---- packages/page-assets/src/Overview/index.tsx | 3 +-- packages/page-assets/src/index.tsx | 3 +-- packages/page-assets/src/types.ts | 13 +++++++------ packages/page-assets/src/useAssetInfos.ts | 12 +++++++----- 12 files changed, 43 insertions(+), 43 deletions(-) diff --git a/packages/page-assets/src/Balances/Account.tsx b/packages/page-assets/src/Balances/Account.tsx index 1055bdda76..fe79710b99 100644 --- a/packages/page-assets/src/Balances/Account.tsx +++ b/packages/page-assets/src/Balances/Account.tsx @@ -1,7 +1,8 @@ // Copyright 2017-2021 @polkadot/app-assets authors & contributors // SPDX-License-Identifier: Apache-2.0 -import type { AssetBalance, AssetId, TAssetBalance } from '@polkadot/types/interfaces'; +import type BN from 'bn.js'; +import type { PalletAssetsAssetBalance } from '@polkadot/types/lookup'; import React from 'react'; @@ -13,14 +14,14 @@ import Transfer from './Transfer'; interface Props { accountId: string; - assetId: AssetId; - balance: AssetBalance; + assetId: BN; + balance: PalletAssetsAssetBalance; className?: string; - minBalance: TAssetBalance; + minBalance: BN; siFormat: [number, string]; } -function Account ({ accountId, assetId, balance: { balance, isFrozen, isSufficient }, className, minBalance, siFormat }: Props): React.ReactElement { +function Account ({ accountId, assetId, balance: { balance, isFrozen, sufficient }, className, minBalance, siFormat }: Props): React.ReactElement { const { t } = useTranslation(); return ( @@ -32,7 +33,7 @@ function Account ({ accountId, assetId, balance: { balance, isFrozen, isSufficie {isFrozen.isTrue ? t('Yes') : t('No')} - {isSufficient.isTrue ? t('Yes') : t('No')} + {sufficient.isTrue ? t('Yes') : t('No')} ({ + transform: ([[params], balances]: [[[BN, string][]], PalletAssetsAssetBalance[]]): Result => ({ assetId: params[0][0], balances: params .map(([, accountId], index) => ({ @@ -28,7 +29,7 @@ const queryOptions = { withParamsTransform: true }; -export default function useBalances (id?: AssetId | null): BalanceResult[] | null { +export default function useBalances (id?: BN | null): BalanceResult[] | null { const { api } = useApi(); const { allAccounts } = useAccounts(); const query = useCall(id && api.query.assets.account.multi, id && [allAccounts.map((a) => [id, a])], queryOptions); diff --git a/packages/page-assets/src/Overview/Create/Create.tsx b/packages/page-assets/src/Overview/Create/Create.tsx index 0e6c7cc25e..a3068d9126 100644 --- a/packages/page-assets/src/Overview/Create/Create.tsx +++ b/packages/page-assets/src/Overview/Create/Create.tsx @@ -2,7 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 import type BN from 'bn.js'; -import type { AssetId } from '@polkadot/types/interfaces'; import type { InfoState, TeamState } from './types'; import React, { useMemo, useState } from 'react'; @@ -15,7 +14,7 @@ import Info from './Info'; import Team from './Team'; interface Props { - assetIds: AssetId[]; + assetIds: BN[]; className?: string; onClose: () => void; openId: BN; diff --git a/packages/page-assets/src/Overview/Create/Info.tsx b/packages/page-assets/src/Overview/Create/Info.tsx index 02cdcb24b0..ba06d37cbd 100644 --- a/packages/page-assets/src/Overview/Create/Info.tsx +++ b/packages/page-assets/src/Overview/Create/Info.tsx @@ -2,7 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 import type BN from 'bn.js'; -import type { AssetId } from '@polkadot/types/interfaces'; import type { InfoState } from './types'; import React, { useEffect, useMemo, useState } from 'react'; @@ -14,7 +13,7 @@ import { BN_ZERO } from '@polkadot/util'; import { useTranslation } from '../../translate'; interface Props { - assetIds: AssetId[]; + assetIds: BN[]; className?: string; defaultValue: InfoState | null; onChange: (info: InfoState | null) => void; diff --git a/packages/page-assets/src/Overview/Create/index.tsx b/packages/page-assets/src/Overview/Create/index.tsx index c6fa7029af..83c9e11248 100644 --- a/packages/page-assets/src/Overview/Create/index.tsx +++ b/packages/page-assets/src/Overview/Create/index.tsx @@ -2,7 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 import type BN from 'bn.js'; -import type { AssetId } from '@polkadot/types/interfaces'; import React from 'react'; @@ -13,7 +12,7 @@ import { useTranslation } from '../../translate'; import Create from './Create'; interface Props { - assetIds?: AssetId[]; + assetIds?: BN[]; className?: string; openId: BN; } diff --git a/packages/page-assets/src/Overview/Mint/Mint.tsx b/packages/page-assets/src/Overview/Mint/Mint.tsx index d9d37ac05f..2ee9b6c1e6 100644 --- a/packages/page-assets/src/Overview/Mint/Mint.tsx +++ b/packages/page-assets/src/Overview/Mint/Mint.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 import type BN from 'bn.js'; -import type { AssetDetails, AssetId, AssetMetadata } from '@polkadot/types/interfaces'; +import type { PalletAssetsAssetDetails, PalletAssetsAssetMetadata } from '@polkadot/types/lookup'; import React, { useMemo, useState } from 'react'; @@ -13,9 +13,9 @@ import { useTranslation } from '../../translate'; interface Props { className?: string; - details: AssetDetails; - id: AssetId; - metadata: AssetMetadata; + details: PalletAssetsAssetDetails; + id: BN; + metadata: PalletAssetsAssetMetadata; onClose: () => void; } diff --git a/packages/page-assets/src/Overview/Mint/index.tsx b/packages/page-assets/src/Overview/Mint/index.tsx index a0672075d5..84ce648c7a 100644 --- a/packages/page-assets/src/Overview/Mint/index.tsx +++ b/packages/page-assets/src/Overview/Mint/index.tsx @@ -1,7 +1,8 @@ // Copyright 2017-2021 @polkadot/app-assets authors & contributors // SPDX-License-Identifier: Apache-2.0 -import type { AssetDetails, AssetId, AssetMetadata } from '@polkadot/types/interfaces'; +import type BN from 'bn.js'; +import type { PalletAssetsAssetDetails, PalletAssetsAssetMetadata } from '@polkadot/types/lookup'; import React from 'react'; @@ -13,9 +14,9 @@ import Modal from './Mint'; interface Props { className?: string; - details: AssetDetails; - id: AssetId; - metadata: AssetMetadata; + details: PalletAssetsAssetDetails; + id: BN; + metadata: PalletAssetsAssetMetadata; } function Mint ({ className, details, id, metadata }: Props): React.ReactElement { diff --git a/packages/page-assets/src/Overview/index.tsx b/packages/page-assets/src/Overview/index.tsx index 9d31cc5b1e..e4a6fa852b 100644 --- a/packages/page-assets/src/Overview/index.tsx +++ b/packages/page-assets/src/Overview/index.tsx @@ -2,7 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 import type BN from 'bn.js'; -import type { AssetId } from '@polkadot/types/interfaces'; import type { AssetInfo } from '../types'; import React from 'react'; @@ -15,7 +14,7 @@ import Summary from './Summary'; interface Props { className?: string; - ids?: AssetId[]; + ids?: BN[]; infos?: AssetInfo[]; openId: BN; } diff --git a/packages/page-assets/src/index.tsx b/packages/page-assets/src/index.tsx index 97d3260d69..3819434a13 100644 --- a/packages/page-assets/src/index.tsx +++ b/packages/page-assets/src/index.tsx @@ -2,7 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 import type BN from 'bn.js'; -import type { AssetId } from '@polkadot/types/interfaces'; import React, { useMemo, useRef } from 'react'; import { Route, Switch } from 'react-router'; @@ -22,7 +21,7 @@ interface Props { className?: string; } -function findOpenId (ids?: AssetId[]): BN { +function findOpenId (ids?: BN[]): BN { if (!ids || !ids.length) { return BN_ONE; } diff --git a/packages/page-assets/src/types.ts b/packages/page-assets/src/types.ts index e76ac48d3d..da17f804fd 100644 --- a/packages/page-assets/src/types.ts +++ b/packages/page-assets/src/types.ts @@ -1,20 +1,21 @@ // Copyright 2017-2021 @polkadot/app-assets authors & contributors // SPDX-License-Identifier: Apache-2.0 -import type { AssetDetails, AssetId, AssetMetadata } from '@polkadot/types/interfaces'; +import type BN from 'bn.js'; +import type { PalletAssetsAssetDetails, PalletAssetsAssetMetadata } from '@polkadot/types/lookup'; export interface AssetInfo { - details: AssetDetails | null; - id: AssetId; + details: PalletAssetsAssetDetails | null; + id: BN; isAdminMe: boolean; isIssuerMe: boolean; isFreezerMe: boolean; isOwnerMe: boolean; key: string; - metadata: AssetMetadata | null; + metadata: PalletAssetsAssetMetadata | null; } export interface AssetInfoComplete extends AssetInfo { - details: AssetDetails; - metadata: AssetMetadata; + details: PalletAssetsAssetDetails; + metadata: PalletAssetsAssetMetadata; } diff --git a/packages/page-assets/src/useAssetInfos.ts b/packages/page-assets/src/useAssetInfos.ts index 95c5b2ec79..bc7577c7a5 100644 --- a/packages/page-assets/src/useAssetInfos.ts +++ b/packages/page-assets/src/useAssetInfos.ts @@ -1,8 +1,10 @@ // Copyright 2017-2021 @polkadot/app-assets authors & contributors // SPDX-License-Identifier: Apache-2.0 +import type BN from 'bn.js'; import type { Option } from '@polkadot/types'; -import type { AccountId, AssetDetails, AssetId, AssetMetadata } from '@polkadot/types/interfaces'; +import type { AccountId } from '@polkadot/types/interfaces'; +import type { PalletAssetsAssetDetails, PalletAssetsAssetMetadata } from '@polkadot/types/lookup'; import type { AssetInfo } from './types'; import { useEffect, useState } from 'react'; @@ -24,7 +26,7 @@ function isAccount (allAccounts: string[], accountId: AccountId): boolean { return allAccounts.some((a) => a === address); } -function extractInfo (allAccounts: string[], id: AssetId, optDetails: Option, metadata: AssetMetadata): AssetInfo { +function extractInfo (allAccounts: string[], id: BN, optDetails: Option, metadata: PalletAssetsAssetMetadata): AssetInfo { const details = optDetails.unwrapOr(null); return { @@ -46,11 +48,11 @@ function extractInfo (allAccounts: string[], id: AssetId, optDetails: Option(api.query.assets.metadata.multi, [ids], QUERY_OPTS); - const details = useCall<[[AssetId[]], Option[]]>(api.query.assets.asset.multi, [ids], QUERY_OPTS); + const metadata = useCall<[[BN[]], PalletAssetsAssetMetadata[]]>(api.query.assets.metadata.multi, [ids], QUERY_OPTS); + const details = useCall<[[BN[]], Option[]]>(api.query.assets.asset.multi, [ids], QUERY_OPTS); const [state, setState] = useState(); useEffect((): void => {