From d58852558ce91c6c9f25ed0cd39c226aa61366d7 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Sun, 11 Oct 2020 11:50:27 +0200 Subject: [PATCH] Display on-chain status for contract code & instances (#3851) --- package.json | 6 +- packages/page-contracts/package.json | 2 +- packages/page-contracts/src/Codes/Code.tsx | 11 +- packages/page-contracts/src/Codes/index.tsx | 4 +- .../page-contracts/src/Contracts/Call.tsx | 83 +++++++------ .../page-contracts/src/Contracts/Contract.tsx | 18 ++- .../page-contracts/src/Contracts/Outcome.tsx | 102 +++++----------- .../page-contracts/src/Contracts/index.tsx | 4 +- .../page-contracts/src/Contracts/types.ts | 11 ++ .../page-contracts/src/shared/Message.tsx | 4 +- .../page-contracts/src/shared/Messages.tsx | 8 +- packages/react-api/package.json | 2 +- packages/react-components/src/Output.tsx | 4 +- yarn.lock | 112 +++++++++--------- 14 files changed, 185 insertions(+), 186 deletions(-) create mode 100644 packages/page-contracts/src/Contracts/types.ts diff --git a/package.json b/package.json index a71cf0034d..3ca9c3b6f0 100644 --- a/package.json +++ b/package.json @@ -33,10 +33,10 @@ "afterSign": "electron-builder-notarize" }, "resolutions": { - "@polkadot/api": "^2.1.2-17", - "@polkadot/api-contract": "^2.1.2-17", + "@polkadot/api": "^2.1.2-18", + "@polkadot/api-contract": "^2.1.2-18", "@polkadot/keyring": "^3.5.1", - "@polkadot/types": "^2.1.2-17", + "@polkadot/types": "^2.1.2-18", "@polkadot/util": "^3.5.1", "@polkadot/util-crypto": "^3.5.1", "@polkadot/wasm-crypto": "^1.4.1", diff --git a/packages/page-contracts/package.json b/packages/page-contracts/package.json index 2d76943aab..04b6428798 100644 --- a/packages/page-contracts/package.json +++ b/packages/page-contracts/package.json @@ -12,6 +12,6 @@ "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.11.2", - "@polkadot/api-contract": "^2.1.2-17" + "@polkadot/api-contract": "^2.1.2-18" } } diff --git a/packages/page-contracts/src/Codes/Code.tsx b/packages/page-contracts/src/Codes/Code.tsx index 046da17912..caad7b29c6 100644 --- a/packages/page-contracts/src/Codes/Code.tsx +++ b/packages/page-contracts/src/Codes/Code.tsx @@ -1,11 +1,13 @@ // Copyright 2017-2020 @polkadot/app-staking authors & contributors // SPDX-License-Identifier: Apache-2.0 +import { Codec } from '@polkadot/types/types'; import { CodeStored } from '../types'; import React, { useCallback } from 'react'; import { Button, Card, Forget } from '@polkadot/react-components'; -import { useToggle } from '@polkadot/react-hooks'; +import { useApi, useCall, useToggle } from '@polkadot/react-hooks'; +import { Option } from '@polkadot/types'; import { ABI, CodeRow } from '../shared'; import RemoveABI from '../RemoveABI'; @@ -21,6 +23,8 @@ interface Props { function Code ({ className, code, onShowDeploy }: Props): React.ReactElement { const { t } = useTranslation(); + const { api } = useApi(); + const optCode = useCall>(api.query.contracts.codeStorage, [code.json.codeHash]); const [isForgetOpen, toggleIsForgetOpen] = useToggle(); const [isRemoveABIOpen, toggleIsRemoveABIOpen] = useToggle(); const { contractAbi, isAbiError, isAbiSupplied, isAbiValid, onChangeAbi, onRemoveAbi } = useAbi([code.json.abi, code.contractAbi], code.json.codeHash, true); @@ -97,6 +101,11 @@ function Code ({ className, code, onShowDeploy }: Props): React.ReactElement + + {optCode && ( + optCode.isSome ? t('Available') : t('Not on-chain') + )} +