From 6bdb12a2ec5d95da8a6a6501c36a49111337c2df Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Sat, 10 Oct 2020 11:27:23 +0200 Subject: [PATCH] Watch contract state (#3838) * Watch contract state * Display actual outputs --- packages/page-contracts/src/Codes/index.tsx | 3 +- .../page-contracts/src/Contracts/Contract.tsx | 45 ++-- .../page-contracts/src/Contracts/index.tsx | 18 +- packages/page-contracts/src/shared/ABI.tsx | 1 - .../page-contracts/src/shared/Message.tsx | 132 +++++++++++ .../page-contracts/src/shared/Messages.tsx | 218 +++++------------- packages/react-components/src/Expander.tsx | 8 +- packages/react-hooks/src/useToggle.ts | 12 +- 8 files changed, 237 insertions(+), 200 deletions(-) create mode 100644 packages/page-contracts/src/shared/Message.tsx diff --git a/packages/page-contracts/src/Codes/index.tsx b/packages/page-contracts/src/Codes/index.tsx index 03d4acb259..03f9d5c3d3 100644 --- a/packages/page-contracts/src/Codes/index.tsx +++ b/packages/page-contracts/src/Codes/index.tsx @@ -19,8 +19,7 @@ function Codes ({ onShowDeploy }: Props): React.ReactElement { const headerRef = useRef<[string?, string?, number?][]>([ [t('code hashes'), 'start'], - [], - [] + [undefined, undefined, 2] ]); return ( diff --git a/packages/page-contracts/src/Contracts/Contract.tsx b/packages/page-contracts/src/Contracts/Contract.tsx index ba72f5fd20..ca0045b022 100644 --- a/packages/page-contracts/src/Contracts/Contract.tsx +++ b/packages/page-contracts/src/Contracts/Contract.tsx @@ -5,8 +5,8 @@ import { ActionStatus } from '@polkadot/react-components/Status/types'; import React, { useCallback } from 'react'; import keyring from '@polkadot/ui-keyring'; -import { PromiseContract as ApiContract } from '@polkadot/api-contract'; -import { AddressMini, Button, Forget } from '@polkadot/react-components'; +import { PromiseContract } from '@polkadot/api-contract'; +import { AddressInfo, AddressMini, Button, Forget } from '@polkadot/react-components'; import { useToggle } from '@polkadot/react-hooks'; import Messages from '../shared/Messages'; @@ -14,27 +14,23 @@ import { useTranslation } from '../translate'; interface Props { className?: string; - contract: ApiContract; - onCall: (_?: number) => () => void; + contract: PromiseContract; + onCall: (index?: number) => void; } -function Contract ({ className, contract: { abi, address }, onCall }: Props): React.ReactElement | null { +function Contract ({ className, contract, onCall }: Props): React.ReactElement | null { const { t } = useTranslation(); const [isForgetOpen, toggleIsForgetOpen] = useToggle(); const _onForget = useCallback( (): void => { - if (!address) { - return; - } - const status: Partial = { - account: address, + account: contract.address, action: 'forget' }; try { - keyring.forgetContract(address.toString()); + keyring.forgetContract(contract.address.toString()); status.status = 'success'; status.message = t('address forgotten'); } catch (error) { @@ -44,36 +40,41 @@ function Contract ({ className, contract: { abi, address }, onCall }: Props): Re toggleIsForgetOpen(); }, - [address, t, toggleIsForgetOpen] + [contract.address, t, toggleIsForgetOpen] ); - if (!address || !abi) { - return null; - } - return ( {isForgetOpen && ( )} - + + + +