From 8514a2b07355407d1a4e30ec5477c147b0c7c70e Mon Sep 17 00:00:00 2001 From: Nathan LeClaire Date: Fri, 15 Jul 2022 10:36:10 -0700 Subject: [PATCH] Start fixing TypeScript issues --- package.json | 1 + src/main/transactionLogs.ts | 2 +- src/renderer/common/analytics.ts | 4 ++-- src/renderer/components/AccountView.tsx | 2 +- src/renderer/components/LogView.tsx | 2 +- src/renderer/components/MintInfoView.tsx | 1 - src/renderer/components/ProgramChange.tsx | 4 ++-- src/renderer/components/ProgramChangeView.tsx | 4 ++-- .../components/tokens/CreateNewMintButton.tsx | 7 +++---- .../components/tokens/MetaplexMintMetaDataView.tsx | 1 - .../components/tokens/MetaplexTokenData.tsx | 2 +- .../components/tokens/MintTokenToButton.tsx | 1 - src/renderer/components/tokens/TokensListView.tsx | 1 - .../components/tokens/TransferTokenButton.tsx | 14 +++++++------- src/renderer/data/Config/configState.ts | 4 ++-- .../data/ValidatorNetwork/ValidatorNetwork.tsx | 2 +- src/renderer/data/accounts/account.ts | 2 +- src/renderer/data/accounts/accountInfo.ts | 1 + src/renderer/data/accounts/accountState.ts | 2 +- src/renderer/data/accounts/programChanges.ts | 2 +- src/renderer/index.tsx | 1 - src/renderer/nav/TokenPage.tsx | 2 +- src/renderer/nav/Validator.tsx | 6 +++--- src/renderer/nav/ValidatorNetworkInfo.tsx | 2 +- 24 files changed, 33 insertions(+), 37 deletions(-) diff --git a/package.json b/package.json index 5642fa01..536b46f4 100644 --- a/package.json +++ b/package.json @@ -142,6 +142,7 @@ "@testing-library/react": "^13.2.0", "@types/amplitude-js": "^8.0.2", "@types/dockerode": "^3.3.9", + "@types/dompurify": "^2.3.3", "@types/enzyme": "^3.10.10", "@types/history": "^5.0.0", "@types/logfmt": "^1.2.2", diff --git a/src/main/transactionLogs.ts b/src/main/transactionLogs.ts index 1176053a..3044fcd3 100644 --- a/src/main/transactionLogs.ts +++ b/src/main/transactionLogs.ts @@ -1,6 +1,6 @@ import * as sol from '@solana/web3.js'; import Electron from 'electron'; -import { LogSubscriptionMap } from '@/types/types'; +import { LogSubscriptionMap } from '../types/types'; import { netToURL } from '../common/strings'; const logSubscriptions: LogSubscriptionMap = {}; diff --git a/src/renderer/common/analytics.ts b/src/renderer/common/analytics.ts index 2fe19e09..7f16d1a8 100644 --- a/src/renderer/common/analytics.ts +++ b/src/renderer/common/analytics.ts @@ -1,6 +1,6 @@ import amplitude from 'amplitude-js'; -import { logger } from '@/common/globals'; -import store from '@/store'; +import { logger } from './globals'; +import store from '../store'; import { ConfigKey } from '../data/Config/configState'; const AMPLITUDE_KEY = 'f1cde3642f7e0f483afbb7ac15ae8277'; diff --git a/src/renderer/components/AccountView.tsx b/src/renderer/components/AccountView.tsx index 5417af77..a2875230 100644 --- a/src/renderer/components/AccountView.tsx +++ b/src/renderer/components/AccountView.tsx @@ -1,6 +1,6 @@ import { faTerminal } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import React, { useEffect, useState } from 'react'; +import { useEffect, useState } from 'react'; import ButtonToolbar from 'react-bootstrap/ButtonToolbar'; import Container from 'react-bootstrap/Container'; import { Button } from 'react-bootstrap'; diff --git a/src/renderer/components/LogView.tsx b/src/renderer/components/LogView.tsx index 452c81e5..0d7926e7 100644 --- a/src/renderer/components/LogView.tsx +++ b/src/renderer/components/LogView.tsx @@ -1,6 +1,6 @@ import * as sol from '@solana/web3.js'; import { useEffect, useState } from 'react'; -import { logger } from '@/common/globals'; +import { logger } from '../common/globals'; import { NetStatus, netToURL, diff --git a/src/renderer/components/MintInfoView.tsx b/src/renderer/components/MintInfoView.tsx index 20247ef4..93e34425 100644 --- a/src/renderer/components/MintInfoView.tsx +++ b/src/renderer/components/MintInfoView.tsx @@ -1,4 +1,3 @@ -import React from 'react'; import * as sol from '@solana/web3.js'; import Accordion from 'react-bootstrap/esm/Accordion'; diff --git a/src/renderer/components/ProgramChange.tsx b/src/renderer/components/ProgramChange.tsx index a0f916a4..2b0ab80c 100644 --- a/src/renderer/components/ProgramChange.tsx +++ b/src/renderer/components/ProgramChange.tsx @@ -1,5 +1,5 @@ -import React, { useCallback, useEffect, useState } from 'react'; -import { setSelected } from '@/data/SelectedAccountsList/selectedAccountsState'; +import { useCallback, useEffect, useState } from 'react'; +import { setSelected } from '../data/SelectedAccountsList/selectedAccountsState'; import { AccountInfo } from '../data/accounts/accountInfo'; import { useAccountMeta } from '../data/accounts/accountState'; import { diff --git a/src/renderer/components/ProgramChangeView.tsx b/src/renderer/components/ProgramChangeView.tsx index ecc99346..624c6d8d 100644 --- a/src/renderer/components/ProgramChangeView.tsx +++ b/src/renderer/components/ProgramChangeView.tsx @@ -9,8 +9,8 @@ import { accountsActions, selectAccountsListState, setSelected, -} from '@/data/SelectedAccountsList/selectedAccountsState'; -import { logger } from '@/common/globals'; +} from '../data/SelectedAccountsList/selectedAccountsState'; +import { logger } from '../common/globals'; import createNewAccount from '../data/accounts/account'; import { AccountInfo } from '../data/accounts/accountInfo'; import { diff --git a/src/renderer/components/tokens/CreateNewMintButton.tsx b/src/renderer/components/tokens/CreateNewMintButton.tsx index b7f7ef70..9b999537 100644 --- a/src/renderer/components/tokens/CreateNewMintButton.tsx +++ b/src/renderer/components/tokens/CreateNewMintButton.tsx @@ -3,15 +3,14 @@ import * as sol from '@solana/web3.js'; import * as walletAdapter from '@solana/wallet-adapter-react'; import { Button } from 'react-bootstrap'; -import React from 'react'; import * as walletWeb3 from '../../wallet-adapter/web3'; -import { logger } from '@/common/globals'; -import { useAppSelector } from '@/hooks'; +import { logger } from '../../common/globals'; +import { useAppSelector } from '../../hooks'; import { NetStatus, selectValidatorNetworkState, -} from '@/data/ValidatorNetwork/validatorNetworkState'; +} from '../../data/ValidatorNetwork/validatorNetworkState'; async function createNewMint( connection: sol.Connection, diff --git a/src/renderer/components/tokens/MetaplexMintMetaDataView.tsx b/src/renderer/components/tokens/MetaplexMintMetaDataView.tsx index dd254e79..d2c84830 100644 --- a/src/renderer/components/tokens/MetaplexMintMetaDataView.tsx +++ b/src/renderer/components/tokens/MetaplexMintMetaDataView.tsx @@ -1,4 +1,3 @@ -import React from 'react'; import * as sol from '@solana/web3.js'; import * as metaplex from '@metaplex/js'; diff --git a/src/renderer/components/tokens/MetaplexTokenData.tsx b/src/renderer/components/tokens/MetaplexTokenData.tsx index 45e6089d..a9b5dceb 100644 --- a/src/renderer/components/tokens/MetaplexTokenData.tsx +++ b/src/renderer/components/tokens/MetaplexTokenData.tsx @@ -1,4 +1,4 @@ -import React, { useState } from 'react'; +import { useState } from 'react'; import OverlayTrigger from 'react-bootstrap/OverlayTrigger'; import Popover from 'react-bootstrap/Popover'; import Button from 'react-bootstrap/Button'; diff --git a/src/renderer/components/tokens/MintTokenToButton.tsx b/src/renderer/components/tokens/MintTokenToButton.tsx index c48d3aaf..441afb22 100644 --- a/src/renderer/components/tokens/MintTokenToButton.tsx +++ b/src/renderer/components/tokens/MintTokenToButton.tsx @@ -3,7 +3,6 @@ import * as sol from '@solana/web3.js'; import * as walletAdapter from '@solana/wallet-adapter-react'; import { Button } from 'react-bootstrap'; -import React from 'react'; import { useQueryClient } from 'react-query'; import * as walletWeb3 from '../../wallet-adapter/web3'; diff --git a/src/renderer/components/tokens/TokensListView.tsx b/src/renderer/components/tokens/TokensListView.tsx index 1f991766..af66a2e7 100644 --- a/src/renderer/components/tokens/TokensListView.tsx +++ b/src/renderer/components/tokens/TokensListView.tsx @@ -1,4 +1,3 @@ -import React from 'react'; import { Card, Accordion, Table } from 'react-bootstrap'; import * as sol from '@solana/web3.js'; import { useConnection, useWallet } from '@solana/wallet-adapter-react'; diff --git a/src/renderer/components/tokens/TransferTokenButton.tsx b/src/renderer/components/tokens/TransferTokenButton.tsx index a0dfe561..077fcb3c 100644 --- a/src/renderer/components/tokens/TransferTokenButton.tsx +++ b/src/renderer/components/tokens/TransferTokenButton.tsx @@ -10,15 +10,15 @@ import { Popover, Row, } from 'react-bootstrap'; -import React, { useEffect, useState } from 'react'; +import { useEffect, useState } from 'react'; import * as walletWeb3 from '../../wallet-adapter/web3'; -import { logger } from '@/common/globals'; -import { useAppSelector } from '@/hooks'; +import { logger } from '../../common/globals'; +import { useAppSelector } from '../../hooks'; import { NetStatus, selectValidatorNetworkState, -} from '@/data/ValidatorNetwork/validatorNetworkState'; +} from '../../data/ValidatorNetwork/validatorNetworkState'; import { ensureAtaFor } from './CreateNewMintButton'; async function transferTokenToReceiver( @@ -27,7 +27,7 @@ async function transferTokenToReceiver( mintKey: sol.PublicKey, transferFrom: sol.PublicKey, transferTo: sol.PublicKey, - tokenCount: int + tokenCount: number ) { if (!transferTo) { logger.info('no transferTo', transferTo); @@ -90,7 +90,7 @@ function TransferTokenPopover(props: { }) { const { connection, fromKey, mintKey, transferFrom } = props; - let pubKeyVal; + let pubKeyVal = ''; if (!pubKeyVal) { pubKeyVal = 'paste'; } @@ -189,7 +189,7 @@ function TransferTokenPopover(props: { new sol.PublicKey(mintKey), new sol.PublicKey(transferFrom), new sol.PublicKey(toKey), - tokenCount + parseInt(tokenCount, 10) ), { pending: 'Transfer submitted', diff --git a/src/renderer/data/Config/configState.ts b/src/renderer/data/Config/configState.ts index 5c2a3faa..2d09a72b 100644 --- a/src/renderer/data/Config/configState.ts +++ b/src/renderer/data/Config/configState.ts @@ -1,7 +1,7 @@ import { createSlice, PayloadAction } from '@reduxjs/toolkit'; import { useEffect } from 'react'; -import { ConfigMap } from '@/../types/types'; -import { logger } from '@/common/globals'; +import { ConfigMap } from '../../../types/types'; +import { logger } from '../../common/globals'; import { useAppDispatch, useAppSelector } from '../../hooks'; // https://redux.js.org/usage/usage-with-typescript#define-slice-state-and-action-types // eslint-disable-next-line import/no-cycle diff --git a/src/renderer/data/ValidatorNetwork/ValidatorNetwork.tsx b/src/renderer/data/ValidatorNetwork/ValidatorNetwork.tsx index 21e679b8..c36b17de 100644 --- a/src/renderer/data/ValidatorNetwork/ValidatorNetwork.tsx +++ b/src/renderer/data/ValidatorNetwork/ValidatorNetwork.tsx @@ -2,7 +2,7 @@ import * as sol from '@solana/web3.js'; import { useEffect } from 'react'; import Dropdown from 'react-bootstrap/Dropdown'; import DropdownButton from 'react-bootstrap/DropdownButton'; -import { logger } from '@/common/globals'; +import { logger } from '../../common/globals'; import { useAppDispatch, useAppSelector, useInterval } from '../../hooks'; import { Net, diff --git a/src/renderer/data/accounts/account.ts b/src/renderer/data/accounts/account.ts index ac69cf73..cd2d74c6 100644 --- a/src/renderer/data/accounts/account.ts +++ b/src/renderer/data/accounts/account.ts @@ -1,7 +1,7 @@ import { AnyAction, Dispatch, ThunkDispatch } from '@reduxjs/toolkit'; import { WalletContextState } from '@solana/wallet-adapter-react'; import * as sol from '@solana/web3.js'; -import { logger } from '@/common/globals'; +import { logger } from '../../common/globals'; import { NewKeyPairInfo } from '../../../types/types'; import { ConfigState, setConfigValue } from '../Config/configState'; import { SelectedAccountsList } from '../SelectedAccountsList/selectedAccountsState'; diff --git a/src/renderer/data/accounts/accountInfo.ts b/src/renderer/data/accounts/accountInfo.ts index 5a3b5656..c5db3cbc 100644 --- a/src/renderer/data/accounts/accountInfo.ts +++ b/src/renderer/data/accounts/accountInfo.ts @@ -17,4 +17,5 @@ export interface AccountInfo { count: number; // count tracks how often this account has been seen solDelta: number; // difference between last change amount and this one maxDelta: number; // maxDelta represents the max change in SOL seen during session + programID: string; } diff --git a/src/renderer/data/accounts/accountState.ts b/src/renderer/data/accounts/accountState.ts index 52093cf2..5ef9d6ef 100644 --- a/src/renderer/data/accounts/accountState.ts +++ b/src/renderer/data/accounts/accountState.ts @@ -1,7 +1,7 @@ import { createSlice, PayloadAction } from '@reduxjs/toolkit'; import * as sol from '@solana/web3.js'; import { useEffect } from 'react'; -import { logger } from '@/common/globals'; +import { logger } from '../../common/globals'; import { useAppDispatch, useAppSelector } from '../../hooks'; // https://redux.js.org/usage/usage-with-typescript#define-slice-state-and-action-types // eslint-disable-next-line import/no-cycle diff --git a/src/renderer/data/accounts/programChanges.ts b/src/renderer/data/accounts/programChanges.ts index 3e084581..8a4f84dc 100644 --- a/src/renderer/data/accounts/programChanges.ts +++ b/src/renderer/data/accounts/programChanges.ts @@ -1,5 +1,5 @@ import * as sol from '@solana/web3.js'; -import { logger } from '@/common/globals'; +import { logger } from '../../common/globals'; import { Net, netToURL } from '../ValidatorNetwork/validatorNetworkState'; import { AccountInfo } from './accountInfo'; import { peekAccount, updateCache } from './getAccount'; diff --git a/src/renderer/index.tsx b/src/renderer/index.tsx index 913e9707..2bde3b85 100644 --- a/src/renderer/index.tsx +++ b/src/renderer/index.tsx @@ -1,4 +1,3 @@ -import React from 'react'; import { createRoot } from 'react-dom/client'; import { Provider } from 'react-redux'; import { HashRouter } from 'react-router-dom'; diff --git a/src/renderer/nav/TokenPage.tsx b/src/renderer/nav/TokenPage.tsx index 2e43aace..4b2b5e67 100644 --- a/src/renderer/nav/TokenPage.tsx +++ b/src/renderer/nav/TokenPage.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from 'react'; +import { useEffect, useState } from 'react'; import Split from 'react-split'; import Stack from 'react-bootstrap/Stack'; diff --git a/src/renderer/nav/Validator.tsx b/src/renderer/nav/Validator.tsx index 2ec75e51..21caf394 100644 --- a/src/renderer/nav/Validator.tsx +++ b/src/renderer/nav/Validator.tsx @@ -21,7 +21,7 @@ import { selectValidatorNetworkState, } from '../data/ValidatorNetwork/validatorNetworkState'; import { useAppSelector, useInterval } from '../hooks'; -import { logger } from '@/common/globals'; +import { logger } from '../common/globals'; const ipcDockerToast = (dockerIPCMethod: string) => { return toast.promise(window.promiseIpc.send(`DOCKER-${dockerIPCMethod}`), { @@ -38,7 +38,7 @@ const Validator = () => { const filterRef = useRef({} as HTMLInputElement); const validator = useAppSelector(selectValidatorNetworkState); const validatorImageName = 'cryptoworkbench/solana-amman'; - const [validatorImageTag, setValidatorImageTag] = useState(''); + const [validatorImageTag, setValidatorImageTag] = useState(''); // const [validatorImageTags, setValidatorImageTags] = useState([]); const [containerInspect, setContainerInspect] = useState({}); @@ -135,7 +135,7 @@ const Validator = () => { validatorImageTag !== '' ? validatorImageTag : 'Docker image' } disabled={containerInspect?.State} - onSelect={(image: string) => { + onSelect={(image: string | null) => { logger.info(`selected image: ${image}`); setValidatorImageTag(image); }} diff --git a/src/renderer/nav/ValidatorNetworkInfo.tsx b/src/renderer/nav/ValidatorNetworkInfo.tsx index 95f9ee94..446d97af 100644 --- a/src/renderer/nav/ValidatorNetworkInfo.tsx +++ b/src/renderer/nav/ValidatorNetworkInfo.tsx @@ -3,7 +3,7 @@ import { useEffect, useState } from 'react'; import { Col, Row } from 'react-bootstrap'; import Container from 'react-bootstrap/Container'; import { VictoryPie } from 'victory'; -import { logger } from '@/common/globals'; +import { logger } from '../common/globals'; import { netToURL, selectValidatorNetworkState,