diff --git a/packages/adena-extension/src/common/provider/wallet/wallet-provider.tsx b/packages/adena-extension/src/common/provider/wallet/wallet-provider.tsx index e8599620..38d4982d 100644 --- a/packages/adena-extension/src/common/provider/wallet/wallet-provider.tsx +++ b/packages/adena-extension/src/common/provider/wallet/wallet-provider.tsx @@ -1,16 +1,16 @@ import React, { createContext, useEffect, useState } from 'react'; -import { NetworkState, TokenState, WalletState } from '@states/index'; import { useRecoilState, useSetRecoilState } from 'recoil'; import { Wallet } from 'adena-module'; -import { NetworkMetainfo } from '@states/network'; + +import { NetworkState, TokenState, WalletState } from '@states'; import { useAdenaContext } from '@hooks/use-context'; -import { TokenModel } from '@models/token-model'; import { GnoProvider } from '../gno/gno-provider'; +import { TokenModel, NetworkMetainfo, StateType } from '@types'; export interface WalletContextProps { wallet: Wallet | null; gnoProvider: GnoProvider | undefined; - walletStatus: 'CREATE' | 'LOGIN' | 'LOADING' | 'FINISH' | 'FAIL' | 'NONE'; + walletStatus: StateType; tokenMetainfos: TokenModel[]; networkMetainfos: NetworkMetainfo[]; updateWallet: (wallet: Wallet) => Promise; @@ -136,9 +136,7 @@ export const WalletProvider: React.FC> = ({ chi balanceService.setTokenMetainfos(tokenMetainfos); } - async function changeNetwork( - networkMetainfo: NetworkMetainfo, - ): Promise { + async function changeNetwork(networkMetainfo: NetworkMetainfo): Promise { const rpcUrl = networkMetainfo.rpcUrl; const gnoProvider = new GnoProvider(rpcUrl, networkMetainfo.networkId); setCurrentNetwork(networkMetainfo); diff --git a/packages/adena-extension/src/common/utils/crypto-utils.ts b/packages/adena-extension/src/common/utils/crypto-utils.ts index 277f6293..f9f2c528 100644 --- a/packages/adena-extension/src/common/utils/crypto-utils.ts +++ b/packages/adena-extension/src/common/utils/crypto-utils.ts @@ -1,6 +1,7 @@ import { v4 as uuidv4 } from 'uuid'; import CryptoJS from 'crypto-js'; -import { ConstantValue } from '@common/values'; + +const ENCRYPT_CIPHER_KEY = 'r3v4'; export const encryptSha256Password = (password: string): string => { return CryptoJS.SHA256(password).toString(); @@ -10,7 +11,7 @@ export const encryptPassword = ( password: string, ): { encryptedKey: string; encryptedPassword: string } => { const cryptKey = uuidv4(); - const adenaKey = ConstantValue.ENCRYPT_CIPHER_KEY; + const adenaKey = ENCRYPT_CIPHER_KEY; const encryptedKey = CryptoJS.AES.encrypt(cryptKey, adenaKey).toString(); const encryptedPassword = CryptoJS.AES.encrypt(password, cryptKey).toString(); return { @@ -20,7 +21,7 @@ export const encryptPassword = ( }; export const decryptPassword = (encryptedKey: string, encryptedPassword: string): string => { - const adenaKey = ConstantValue.ENCRYPT_CIPHER_KEY; + const adenaKey = ENCRYPT_CIPHER_KEY; const key = CryptoJS.AES.decrypt(encryptedKey, adenaKey).toString(CryptoJS.enc.Utf8); if (key === '') { throw new Error('CipherKey Decryption Failed'); diff --git a/packages/adena-extension/src/common/validation/index.ts b/packages/adena-extension/src/common/validation/index.ts index 3de30f7d..842868ea 100644 --- a/packages/adena-extension/src/common/validation/index.ts +++ b/packages/adena-extension/src/common/validation/index.ts @@ -1,3 +1,4 @@ export * from './validation-password'; export * from './validation-address-book'; export * from './validation-message'; +export * from './validation-token'; diff --git a/packages/adena-extension/src/common/validation/validation-token.ts b/packages/adena-extension/src/common/validation/validation-token.ts new file mode 100644 index 00000000..d0997320 --- /dev/null +++ b/packages/adena-extension/src/common/validation/validation-token.ts @@ -0,0 +1,23 @@ +import { + GRC20TokenModel, + IBCNativeTokenModel, + IBCTokenModel, + NativeTokenModel, + TokenModel, +} from '@types'; + +export function isNativeTokenModel(model: TokenModel): model is NativeTokenModel { + return model.type === 'gno-native'; +} + +export function isGRC20TokenModel(model: TokenModel): model is GRC20TokenModel { + return model.type === 'grc20'; +} + +export function isIBCNativeTokenModel(model: TokenModel): model is IBCNativeTokenModel { + return model.type === 'ibc-native'; +} + +export function isIBCTokenModel(model: TokenModel): model is IBCTokenModel { + return model.type === 'ibc-tokens'; +} diff --git a/packages/adena-extension/src/common/values/constant-value.ts b/packages/adena-extension/src/common/values/constant-value.ts deleted file mode 100644 index 7c76d648..00000000 --- a/packages/adena-extension/src/common/values/constant-value.ts +++ /dev/null @@ -1 +0,0 @@ -export const ENCRYPT_CIPHER_KEY = 'r3v4'; diff --git a/packages/adena-extension/src/common/values/index.ts b/packages/adena-extension/src/common/values/index.ts deleted file mode 100644 index 469c6195..00000000 --- a/packages/adena-extension/src/common/values/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as ConstantValue from './constant-value'; diff --git a/packages/adena-extension/src/components/background/background.tsx b/packages/adena-extension/src/components/background/background.tsx index 87caab23..9313b0c1 100644 --- a/packages/adena-extension/src/components/background/background.tsx +++ b/packages/adena-extension/src/components/background/background.tsx @@ -1,17 +1,19 @@ import React, { useEffect } from 'react'; import { useLocation } from 'react-router-dom'; import { useRecoilState } from 'recoil'; + import { useCurrentAccount } from '@hooks/use-current-account'; import { useNetwork } from '@hooks/use-network'; import { useTokenMetainfo } from '@hooks/use-token-metainfo'; import { useTokenBalance } from '@hooks/use-token-balance'; import { useWalletContext } from '@hooks/use-context'; import { useAccountName } from '@hooks/use-account-name'; -import { CommonState } from '@states/index'; import useScrollHistory from '@hooks/use-scroll-history'; -import { NetworkMetainfo } from '@states/network'; import { fetchHealth } from '@common/utils/client-utils'; +import { CommonState } from '@states'; +import { NetworkMetainfo } from '@types'; + type BackgroundProps = React.PropsWithChildren; export const Background: React.FC = ({ children }) => { diff --git a/packages/adena-extension/src/components/change-network/change-network/change-network.tsx b/packages/adena-extension/src/components/change-network/change-network/change-network.tsx index 1c3310af..87cdece4 100644 --- a/packages/adena-extension/src/components/change-network/change-network/change-network.tsx +++ b/packages/adena-extension/src/components/change-network/change-network/change-network.tsx @@ -1,11 +1,13 @@ import React from 'react'; + import { ChangeNetworkWrapper } from './change-network.styles'; -import { NetworkMetainfo } from '@states/network'; import BottomFixedButton from '@components/buttons/bottom-fixed-button'; import NetworkList from '../network-list/network-list'; import AddCustomNetworkButton from '../add-custom-network-button/add-custom-network-button'; import LoadingChangeNetwork from '@components/loading-screen/loading-change-network'; +import { NetworkMetainfo } from '@types'; + export interface ChangeNetworkProps { loading: boolean; currentNetworkId: string; @@ -25,30 +27,27 @@ const ChangeNetwork: React.FC = ({ moveEditPage, moveBack, }) => { - return (

Change Network

- { - loading ? ( - - ) : ( - <> - - - - ) - } + {loading ? ( + + ) : ( + <> + + + + )}
); }; -export default ChangeNetwork; \ No newline at end of file +export default ChangeNetwork; diff --git a/packages/adena-extension/src/components/change-network/network-list-item/network-list-item.tsx b/packages/adena-extension/src/components/change-network/network-list-item/network-list-item.tsx index 1140a9ef..0420c32a 100644 --- a/packages/adena-extension/src/components/change-network/network-list-item/network-list-item.tsx +++ b/packages/adena-extension/src/components/change-network/network-list-item/network-list-item.tsx @@ -1,10 +1,12 @@ import React, { useCallback } from 'react'; + import { NetworkListItemWrapper } from './network-list-item.styles'; -import { NetworkMetainfo } from '@states/network'; import IconCheck from '@assets/check-circle.svg'; import IconLock from '@assets/icon-lock-small'; import IconEdit from '@assets/icon-edit-small'; +import { NetworkMetainfo } from '@types'; + export interface NetworkListItemProps { selected: boolean; locked: boolean; diff --git a/packages/adena-extension/src/components/change-network/network-list/network-list.tsx b/packages/adena-extension/src/components/change-network/network-list/network-list.tsx index b5ee86a3..366b5fdb 100644 --- a/packages/adena-extension/src/components/change-network/network-list/network-list.tsx +++ b/packages/adena-extension/src/components/change-network/network-list/network-list.tsx @@ -1,7 +1,8 @@ import React from 'react'; + import { NetworkListWrapper } from './network-list.styles'; -import { NetworkMetainfo } from '@states/network'; import NetworkListItem from '../network-list-item/network-list-item'; +import { NetworkMetainfo } from '@types'; export interface NetworkListProps { currentNetworkId: string; @@ -16,7 +17,6 @@ const NetworkList: React.FC = ({ changeNetwork, moveEditPage, }) => { - return ( {networkMetainfos.map((networkMetainfo, index) => ( @@ -33,4 +33,4 @@ const NetworkList: React.FC = ({ ); }; -export default NetworkList; \ No newline at end of file +export default NetworkList; diff --git a/packages/adena-extension/src/components/loading-screen/loading-main.tsx b/packages/adena-extension/src/components/loading-screen/loading-main.tsx index 305ee282..a424e07b 100644 --- a/packages/adena-extension/src/components/loading-screen/loading-main.tsx +++ b/packages/adena-extension/src/components/loading-screen/loading-main.tsx @@ -1,12 +1,13 @@ import React, { ReactElement, useMemo } from 'react'; +import { useRecoilState } from 'recoil'; import styled, { CSSProp } from 'styled-components'; +import { useMatch } from 'react-router-dom'; + import { Circle, GhostButtons, Round } from '@components/loadings'; import { SkeletonBoxStyle } from '@components/loadings'; -import { useMatch } from 'react-router-dom'; import { RoutePath } from '@router/path'; import { useTokenBalance } from '@hooks/use-token-balance'; -import { useRecoilState } from 'recoil'; -import { CommonState, WalletState } from '@states/index'; +import { CommonState, WalletState } from '@states'; import { useNetwork } from '@hooks/use-network'; const Wrapper = styled.main` diff --git a/packages/adena-extension/src/components/transfer/transfer-input/transfer-input.tsx b/packages/adena-extension/src/components/transfer/transfer-input/transfer-input.tsx index ac50b6dd..13f3a577 100644 --- a/packages/adena-extension/src/components/transfer/transfer-input/transfer-input.tsx +++ b/packages/adena-extension/src/components/transfer/transfer-input/transfer-input.tsx @@ -1,11 +1,13 @@ import React from 'react'; + import { TransferInputWrapper } from './transfer-input.styles'; import SubHeader from '@components/common/sub-header/sub-header'; import UnknownTokenIcon from '@assets/common-unknown-token.svg'; import AddressInput from '../address-input/address-input'; import BalanceInput from '../balance-input/balance-input'; import ArrowLeftIcon from '@assets/arrowL-left.svg'; -import { TokenModel } from '@models/token-model'; + +import { TokenModel } from '@types'; export interface TransferInputProps { tokenMetainfo: TokenModel; @@ -53,21 +55,17 @@ const TransferInput: React.FC = ({ }) => { return ( - { - hasBackButton ? ( - , - onClick: onClickBack, - }} - /> - ) : ( - - ) - } + {hasBackButton ? ( + , + onClick: onClickBack, + }} + /> + ) : ( + + )}
token image
@@ -79,10 +77,12 @@ const TransferInput: React.FC = ({
- +
); }; -export default TransferInput; \ No newline at end of file +export default TransferInput; diff --git a/packages/adena-extension/src/components/transfer/transfer-summary/transfer-summary.tsx b/packages/adena-extension/src/components/transfer/transfer-summary/transfer-summary.tsx index e04885e7..7bb20629 100644 --- a/packages/adena-extension/src/components/transfer/transfer-summary/transfer-summary.tsx +++ b/packages/adena-extension/src/components/transfer/transfer-summary/transfer-summary.tsx @@ -1,4 +1,5 @@ import React from 'react'; + import { TransferSummaryWrapper } from './transfer-summary.styles'; import TransferSummaryBalance from '../transfer-summary-balance/transfer-summary-balance'; import TransferSummaryAddress from '../transfer-summary-address/transfer-summary-address'; @@ -6,8 +7,8 @@ import TransferSummaryNetworkFee from '../transfer-summary-network-fee/transfer- import ArrowDownIcon from '@assets/transfer-arrow-down.svg'; import SubHeader from '@components/common/sub-header/sub-header'; import ArrowLeftIcon from '@assets/arrowL-left.svg'; -import { Amount } from '@states/balance'; -import { TokenModel } from '@models/token-model'; + +import { TokenModel, Amount } from '@types'; export interface TransferSummaryProps { tokenMetainfo: TokenModel; @@ -66,19 +67,19 @@ const TransferSummary: React.FC = ({ value={networkFee.value} denom={networkFee.denom} /> - { - isErrorNetworkFee && ( - Insufficient network fee - ) - } + {isErrorNetworkFee && Insufficient network fee}
- - + +
); }; -export default TransferSummary; \ No newline at end of file +export default TransferSummary; diff --git a/packages/adena-extension/src/containers/add-custom-network-conatiner/add-custom-network-conatiner.tsx b/packages/adena-extension/src/containers/add-custom-network-conatiner/add-custom-network-conatiner.tsx index a9a5651f..8b458005 100644 --- a/packages/adena-extension/src/containers/add-custom-network-conatiner/add-custom-network-conatiner.tsx +++ b/packages/adena-extension/src/containers/add-custom-network-conatiner/add-custom-network-conatiner.tsx @@ -1,9 +1,11 @@ +import React, { useCallback } from 'react'; +import { useNavigate } from 'react-router-dom'; + import AddCustomNetwork from '@components/add-custom-network/add-custom-network/add-custom-network'; import { useCustomNetworkInput } from '@hooks/use-custom-network-input'; import { useNetwork } from '@hooks/use-network'; -import { NetworkMetainfo } from '@states/network'; -import React, { useCallback } from 'react'; -import { useNavigate } from 'react-router-dom'; + +import { NetworkMetainfo } from '@types'; function isValidURL(rpcUrl: string): boolean { const regExp = /(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-/]))?/; diff --git a/packages/adena-extension/src/containers/edit-custom-network-container/edit-custom-network-container.tsx b/packages/adena-extension/src/containers/edit-custom-network-container/edit-custom-network-container.tsx index 5f9d8d25..8b4da891 100644 --- a/packages/adena-extension/src/containers/edit-custom-network-container/edit-custom-network-container.tsx +++ b/packages/adena-extension/src/containers/edit-custom-network-container/edit-custom-network-container.tsx @@ -1,10 +1,12 @@ import React, { useCallback, useEffect, useMemo } from 'react'; +import { useLocation, useNavigate } from 'react-router-dom'; + import EditNetwork from '@components/edint-network/edit-network/edit-network'; import { useCustomNetworkInput } from '@hooks/use-custom-network-input'; import { useNetwork } from '@hooks/use-network'; -import { useLocation, useNavigate } from 'react-router-dom'; import { parseParameters } from '@common/utils/client-utils'; -import { NetworkMetainfo } from '@states/network'; + +import { NetworkMetainfo } from '@types'; function isValidURL(rpcURL: string): boolean { const regExp = /(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-/]))?/; diff --git a/packages/adena-extension/src/containers/manage-token-added-container/manage-token-added-container.tsx b/packages/adena-extension/src/containers/manage-token-added-container/manage-token-added-container.tsx index d4550e19..d057f9e2 100644 --- a/packages/adena-extension/src/containers/manage-token-added-container/manage-token-added-container.tsx +++ b/packages/adena-extension/src/containers/manage-token-added-container/manage-token-added-container.tsx @@ -4,7 +4,7 @@ import AdditionalToken, { import { useAdenaContext } from '@hooks/use-context'; import { useTokenBalance } from '@hooks/use-token-balance'; import { useTokenMetainfo } from '@hooks/use-token-metainfo'; -import { isGRC20TokenModel } from '@models/token-model'; +import { isGRC20TokenModel } from '@common/validation/validation-token'; import { RoutePath } from '@router/path'; import { useQuery } from '@tanstack/react-query'; import React, { useCallback, useEffect, useState } from 'react'; diff --git a/packages/adena-extension/src/containers/side-menu-container/side-menu-container.tsx b/packages/adena-extension/src/containers/side-menu-container/side-menu-container.tsx index c256deea..2b9935e1 100644 --- a/packages/adena-extension/src/containers/side-menu-container/side-menu-container.tsx +++ b/packages/adena-extension/src/containers/side-menu-container/side-menu-container.tsx @@ -1,3 +1,7 @@ +import React, { useCallback, useEffect, useMemo, useState } from 'react'; +import { useNavigate } from 'react-router-dom'; +import { Account } from 'adena-module'; + import { formatNickname, maxFractionDigits } from '@common/utils/client-utils'; import SideMenu, { SideMenuAccountInfo } from '@components/common/side-menu/side-menu'; import { useAccountName } from '@hooks/use-account-name'; @@ -7,10 +11,8 @@ import { useLoadAccounts } from '@hooks/use-load-accounts'; import { useNetwork } from '@hooks/use-network'; import { useTokenBalance } from '@hooks/use-token-balance'; import { RoutePath } from '@router/path'; -import { TokenBalance } from '@states/balance'; -import { Account } from 'adena-module'; -import React, { useCallback, useEffect, useMemo, useState } from 'react'; -import { useNavigate } from 'react-router-dom'; + +import { TokenBalance } from '@types'; interface SideMenuContainerProps { open: boolean; diff --git a/packages/adena-extension/src/containers/transfer-input-container/transfer-input-container.tsx b/packages/adena-extension/src/containers/transfer-input-container/transfer-input-container.tsx index 98102263..9471b35f 100644 --- a/packages/adena-extension/src/containers/transfer-input-container/transfer-input-container.tsx +++ b/packages/adena-extension/src/containers/transfer-input-container/transfer-input-container.tsx @@ -1,14 +1,17 @@ import React, { useCallback, useEffect, useState } from 'react'; -import TransferInput from '@components/transfer/transfer-input/transfer-input'; +import BigNumber from 'bignumber.js'; import { useLocation, useNavigate } from 'react-router-dom'; + +import TransferInput from '@components/transfer/transfer-input/transfer-input'; import { RoutePath } from '@router/path'; import { useAddressBookInput } from '@hooks/use-adderss-book-input'; import { useBalanceInput } from '@hooks/use-balance-input'; import { useCurrentAccount } from '@hooks/use-current-account'; -import BigNumber from 'bignumber.js'; -import { TokenModel, isNativeTokenModel } from '@models/token-model'; +import { isNativeTokenModel } from '@common/validation/validation-token'; import useHistoryData from '@hooks/use-history-data'; +import { TokenModel } from '@types'; + interface HistoryData { isTokenSearch: boolean; tokenMetainfo: TokenModel; diff --git a/packages/adena-extension/src/containers/transfer-summary-container/transfer-summary-container.tsx b/packages/adena-extension/src/containers/transfer-summary-container/transfer-summary-container.tsx index b709aa7e..5f41ef96 100644 --- a/packages/adena-extension/src/containers/transfer-summary-container/transfer-summary-container.tsx +++ b/packages/adena-extension/src/containers/transfer-summary-container/transfer-summary-container.tsx @@ -1,17 +1,20 @@ import React, { useCallback, useEffect, useState } from 'react'; +import BigNumber from 'bignumber.js'; + +import { isLedgerAccount } from 'adena-module'; + import TransferSummary from '@components/transfer/transfer-summary/transfer-summary'; import { useLocation, useNavigate } from 'react-router-dom'; import { RoutePath } from '@router/path'; -import { Amount } from '@states/balance'; import UnknownTokenIcon from '@assets/common-unknown-token.svg'; -import BigNumber from 'bignumber.js'; import { useAdenaContext, useWalletContext } from '@hooks/use-context'; import { useCurrentAccount } from '@hooks/use-current-account'; import { TransactionMessage } from '@services/index'; -import { isLedgerAccount } from 'adena-module'; -import { TokenModel, isGRC20TokenModel, isNativeTokenModel } from '@models/token-model'; +import { isGRC20TokenModel, isNativeTokenModel } from '@common/validation/validation-token'; import { useNetwork } from '@hooks/use-network'; +import { Amount, TokenModel } from '@types'; + interface TransferSummaryInfo { tokenMetainfo: TokenModel; toAddress: string; @@ -26,7 +29,7 @@ const TransferSummaryContainer: React.FC = () => { const { transactionService } = useAdenaContext(); const { currentAccount, currentAddress } = useCurrentAccount(); const { currentNetwork } = useNetwork(); - const [summaryInfo, setSummaryInfo] = useState(state) + const [summaryInfo, setSummaryInfo] = useState(state); const [isSent, setIsSent] = useState(false); const [isErrorNetworkFee, setIsErrorNetworkFee] = useState(false); @@ -47,7 +50,9 @@ const TransferSummaryContainer: React.FC = () => { if (!isNativeTokenModel(tokenMetainfo)) { return; } - const sendAmount = `${BigNumber(transferAmount.value).shiftedBy(tokenMetainfo.decimals)}${tokenMetainfo.denom}`; + const sendAmount = `${BigNumber(transferAmount.value).shiftedBy(tokenMetainfo.decimals)}${ + tokenMetainfo.denom + }`; return TransactionMessage.createMessageOfBankSend({ fromAddress: currentAddress || '', toAddress, @@ -65,10 +70,7 @@ const TransferSummaryContainer: React.FC = () => { send: '', pkgPath: tokenMetainfo.pkgPath, func: 'Transfer', - args: [ - toAddress, - transferAmount.value, - ], + args: [toAddress, transferAmount.value], }); }, [summaryInfo, currentAddress]); @@ -78,9 +80,8 @@ const TransferSummaryContainer: React.FC = () => { } const { tokenMetainfo, networkFee } = summaryInfo; const GAS_WANTED = 1000000; - const message = tokenMetainfo.type === 'gno-native' ? - getNativeTransferMessage() : - getGRC20TransferMessage(); + const message = + tokenMetainfo.type === 'gno-native' ? getNativeTransferMessage() : getGRC20TransferMessage(); const networkFeeAmount = BigNumber(networkFee.value).shiftedBy(6).toNumber(); const document = await transactionService.createDocument( currentAccount, @@ -111,7 +112,7 @@ const TransferSummaryContainer: React.FC = () => { const currentBalance = await gnoProvider.getBalance(currentAddress, 'ugnot'); const networkFee = summaryInfo.networkFee.value; return BigNumber(currentBalance).shiftedBy(-6).isGreaterThanOrEqualTo(networkFee); - }, [gnoProvider, currentAddress, summaryInfo]) + }, [gnoProvider, currentAddress, summaryInfo]); const transfer = useCallback(async () => { if (isSent || !currentAccount) { @@ -186,4 +187,4 @@ const TransferSummaryContainer: React.FC = () => { ); }; -export default TransferSummaryContainer; \ No newline at end of file +export default TransferSummaryContainer; diff --git a/packages/adena-extension/src/hooks/use-account-name.tsx b/packages/adena-extension/src/hooks/use-account-name.tsx index 2568e35b..447d91cd 100644 --- a/packages/adena-extension/src/hooks/use-account-name.tsx +++ b/packages/adena-extension/src/hooks/use-account-name.tsx @@ -1,7 +1,8 @@ +import { useRecoilState } from 'recoil'; import { Account } from 'adena-module'; + import { useAdenaContext } from './use-context'; -import { useRecoilState } from 'recoil'; -import { WalletState } from '@states/index'; +import { WalletState } from '@states'; export type UseAccountNameReturn = { accountNames: { [key in string]: string }; diff --git a/packages/adena-extension/src/hooks/use-add-account.tsx b/packages/adena-extension/src/hooks/use-add-account.tsx index 036243fa..99d74ba9 100644 --- a/packages/adena-extension/src/hooks/use-add-account.tsx +++ b/packages/adena-extension/src/hooks/use-add-account.tsx @@ -1,5 +1,5 @@ import { useRecoilState } from 'recoil'; -import { WalletState } from '@states/index'; +import { WalletState } from '@states'; import { useAdenaContext, useWalletContext } from './use-context'; import { SeedAccount } from 'adena-module'; import { useCurrentAccount } from './use-current-account'; diff --git a/packages/adena-extension/src/hooks/use-balance-input.ts b/packages/adena-extension/src/hooks/use-balance-input.ts index 81919905..f2e81935 100644 --- a/packages/adena-extension/src/hooks/use-balance-input.ts +++ b/packages/adena-extension/src/hooks/use-balance-input.ts @@ -1,11 +1,11 @@ import { useCallback, useState } from 'react'; +import BigNumber from 'bignumber.js'; + import { useAdenaContext, useWalletContext } from './use-context'; import { useCurrentAccount } from './use-current-account'; -import BigNumber from 'bignumber.js'; -import { TokenBalance } from '@states/balance'; import { useTokenBalance } from './use-token-balance'; import { useTokenMetainfo } from './use-token-metainfo'; -import { TokenModel } from '@models/token-model'; +import { TokenModel, TokenBalance } from '@types'; const NETWORK_FEE = 0.000001; diff --git a/packages/adena-extension/src/hooks/use-clear.tsx b/packages/adena-extension/src/hooks/use-clear.tsx index ba999f8e..0b54f348 100644 --- a/packages/adena-extension/src/hooks/use-clear.tsx +++ b/packages/adena-extension/src/hooks/use-clear.tsx @@ -1,4 +1,4 @@ -import { BalanceState, CommonState, NetworkState, WalletState } from '@states/index'; +import { BalanceState, CommonState, NetworkState, WalletState } from '@states'; import { useResetRecoilState, useSetRecoilState } from 'recoil'; import { useAdenaContext } from './use-context'; diff --git a/packages/adena-extension/src/hooks/use-current-account.tsx b/packages/adena-extension/src/hooks/use-current-account.tsx index c36779eb..aefb787a 100644 --- a/packages/adena-extension/src/hooks/use-current-account.tsx +++ b/packages/adena-extension/src/hooks/use-current-account.tsx @@ -1,4 +1,4 @@ -import { WalletState } from '@states/index'; +import { WalletState } from '@states'; import { Account } from 'adena-module'; import { useRecoilState } from 'recoil'; import { useAdenaContext, useWalletContext } from './use-context'; diff --git a/packages/adena-extension/src/hooks/use-history-data.ts b/packages/adena-extension/src/hooks/use-history-data.ts index d818e425..ae46824b 100644 --- a/packages/adena-extension/src/hooks/use-history-data.ts +++ b/packages/adena-extension/src/hooks/use-history-data.ts @@ -1,4 +1,4 @@ -import { CommonState } from '@states/index'; +import { CommonState } from '@states'; import { useLocation } from 'react-router-dom'; import { useRecoilState } from 'recoil'; diff --git a/packages/adena-extension/src/hooks/use-import-account.tsx b/packages/adena-extension/src/hooks/use-import-account.tsx index 88f4c883..f082b15a 100644 --- a/packages/adena-extension/src/hooks/use-import-account.tsx +++ b/packages/adena-extension/src/hooks/use-import-account.tsx @@ -1,6 +1,6 @@ import { useRecoilState } from 'recoil'; import { Account, Keyring } from 'adena-module'; -import { WalletState } from '@states/index'; +import { WalletState } from '@states'; import { useWalletContext } from './use-context'; import { useCurrentAccount } from './use-current-account'; diff --git a/packages/adena-extension/src/hooks/use-load-accounts.tsx b/packages/adena-extension/src/hooks/use-load-accounts.tsx index c9ab238e..b32a18fc 100644 --- a/packages/adena-extension/src/hooks/use-load-accounts.tsx +++ b/packages/adena-extension/src/hooks/use-load-accounts.tsx @@ -1,9 +1,11 @@ -import { WalletState } from '@states/index'; import { useRecoilState } from 'recoil'; -import { useWalletContext } from './use-context'; import { Account } from 'adena-module'; + +import { useWalletContext } from './use-context'; import { useWalletAccounts } from './use-wallet-accounts'; -import { StateType } from '@states/wallet'; + +import { WalletState } from '@states'; +import { StateType } from '@types'; export type UseLoadAccountsReturn = { state: StateType; diff --git a/packages/adena-extension/src/hooks/use-network.ts b/packages/adena-extension/src/hooks/use-network.ts index 2a26c824..29781ded 100644 --- a/packages/adena-extension/src/hooks/use-network.ts +++ b/packages/adena-extension/src/hooks/use-network.ts @@ -1,12 +1,14 @@ +import { useCallback } from 'react'; import { useRecoilState, useResetRecoilState } from 'recoil'; + import { useAdenaContext, useWalletContext } from './use-context'; -import { NetworkMetainfo } from '@states/network'; -import { CommonState, NetworkState, WalletState } from '@states/index'; import { EventMessage } from '@inject/message'; -import { useCallback } from 'react'; import { useEvent } from './use-event'; import { fetchHealth } from '@common/utils/client-utils'; +import { NetworkMetainfo } from '@types'; +import { CommonState, NetworkState, WalletState } from '@states'; + interface NetworkResponse { networks: NetworkMetainfo[]; currentNetwork: NetworkMetainfo; diff --git a/packages/adena-extension/src/hooks/use-scroll-history.tsx b/packages/adena-extension/src/hooks/use-scroll-history.tsx index 98fe83e7..94b96c5d 100644 --- a/packages/adena-extension/src/hooks/use-scroll-history.tsx +++ b/packages/adena-extension/src/hooks/use-scroll-history.tsx @@ -1,4 +1,4 @@ -import { CommonState } from '@states/index'; +import { CommonState } from '@states'; import { useCallback, useLayoutEffect, useState } from 'react'; import { useLocation } from 'react-router-dom'; import { useRecoilState } from 'recoil'; diff --git a/packages/adena-extension/src/hooks/use-token-balance.ts b/packages/adena-extension/src/hooks/use-token-balance.ts index 8c4391da..2f97a5ff 100644 --- a/packages/adena-extension/src/hooks/use-token-balance.ts +++ b/packages/adena-extension/src/hooks/use-token-balance.ts @@ -1,15 +1,17 @@ -import { BalanceState } from '@states/index'; +import { useCallback, useEffect, useMemo } from 'react'; import { useRecoilState } from 'recoil'; +import { GnoWallet } from '@gnolang/gno-js-client'; +import { Account, isSeedAccount, isSingleAccount } from 'adena-module'; + import { useNetwork } from './use-network'; import { useCurrentAccount } from './use-current-account'; -import { AccountTokenBalance, Amount, TokenBalance } from '@states/balance'; -import { Account, isSeedAccount, isSingleAccount } from 'adena-module'; import { useAdenaContext, useWalletContext } from './use-context'; import { useTokenMetainfo } from './use-token-metainfo'; -import { useCallback, useEffect, useMemo } from 'react'; -import { TokenModel, isGRC20TokenModel, isNativeTokenModel } from '@models/token-model'; -import { GnoWallet } from '@gnolang/gno-js-client'; -import { NetworkMetainfo } from '@states/network'; +import { isGRC20TokenModel, isNativeTokenModel } from '@common/validation/validation-token'; +import { BalanceState } from '@states'; +import { NetworkMetainfo } from '@types'; + +import { TokenModel, AccountTokenBalance, Amount, TokenBalance } from '@types'; export const useTokenBalance = (): { mainTokenBalance: Amount | undefined; diff --git a/packages/adena-extension/src/hooks/use-token-metainfo.tsx b/packages/adena-extension/src/hooks/use-token-metainfo.tsx index a326899c..9d74cc69 100644 --- a/packages/adena-extension/src/hooks/use-token-metainfo.tsx +++ b/packages/adena-extension/src/hooks/use-token-metainfo.tsx @@ -1,15 +1,13 @@ -import { TokenState } from '@states/index'; import { useRecoilState } from 'recoil'; + import { useAdenaContext } from './use-context'; import { useCurrentAccount } from './use-current-account'; -import { - GRC20TokenModel, - TokenModel, - isGRC20TokenModel, - isNativeTokenModel, -} from '@models/token-model'; +import { isGRC20TokenModel, isNativeTokenModel } from '@common/validation/validation-token'; import { useNetwork } from './use-network'; +import { TokenState } from '@states'; +import { GRC20TokenModel, TokenModel } from '@types'; + interface GRC20Token { tokenId: string; name: string; diff --git a/packages/adena-extension/src/hooks/use-update-wallet-account-name.tsx b/packages/adena-extension/src/hooks/use-update-wallet-account-name.tsx index 23ce3a53..310d553a 100644 --- a/packages/adena-extension/src/hooks/use-update-wallet-account-name.tsx +++ b/packages/adena-extension/src/hooks/use-update-wallet-account-name.tsx @@ -1,4 +1,4 @@ -import { WalletState } from '@states/index'; +import { WalletState } from '@states'; import { useRecoilState } from 'recoil'; import { Account } from 'adena-module'; diff --git a/packages/adena-extension/src/hooks/use-wallet-accounts.tsx b/packages/adena-extension/src/hooks/use-wallet-accounts.tsx index 46c7ab20..01cfe175 100644 --- a/packages/adena-extension/src/hooks/use-wallet-accounts.tsx +++ b/packages/adena-extension/src/hooks/use-wallet-accounts.tsx @@ -1,7 +1,8 @@ -import { AccountTokenBalance } from '@states/balance'; +import { Account } from 'adena-module'; + +import { AccountTokenBalance } from '@types'; import { useWalletContext } from './use-context'; import { useTokenBalance } from './use-token-balance'; -import { Account } from 'adena-module'; export type UseWalletAccountsReturn = { accounts: Array; diff --git a/packages/adena-extension/src/inject.ts b/packages/adena-extension/src/inject.ts index 996296ff..b522e361 100644 --- a/packages/adena-extension/src/inject.ts +++ b/packages/adena-extension/src/inject.ts @@ -19,9 +19,9 @@ const init = (): void => { const response = await executor.addEstablish(name); return response; }, - async DoContract(mesasage: RequestDoContractMessage): Promise { + async DoContract(message: RequestDoContractMessage): Promise { const executor = new AdenaExecutor(); - const response = await executor.doContract(mesasage); + const response = await executor.doContract(message); return response; }, async GetAccount(): Promise { @@ -29,14 +29,14 @@ const init = (): void => { const response = await executor.getAccount(); return response; }, - async Sign(mesasage: RequestDoContractMessage): Promise { + async Sign(message: RequestDoContractMessage): Promise { const executor = new AdenaExecutor(); - const response = await executor.signAmino(mesasage); + const response = await executor.signAmino(message); return response; }, - async SignTx(mesasage: RequestDoContractMessage): Promise { + async SignTx(message: RequestDoContractMessage): Promise { const executor = new AdenaExecutor(); - const response = await executor.signTx(mesasage); + const response = await executor.signTx(message); return response; }, async AddNetwork(chain: RequestAddedNetworkMessage): Promise { diff --git a/packages/adena-extension/src/inject/message/methods/core.ts b/packages/adena-extension/src/inject/message/methods/core.ts index 566f2934..229a2e62 100644 --- a/packages/adena-extension/src/inject/message/methods/core.ts +++ b/packages/adena-extension/src/inject/message/methods/core.ts @@ -1,3 +1,6 @@ +import axios from 'axios'; +import { Account } from 'adena-module'; + import { GnoProvider } from '@common/provider/gno/gno-provider'; import { AdenaStorage } from '@common/storage'; import { ChainRepository, TokenRepository } from '@repositories/common'; @@ -15,10 +18,8 @@ import { WalletEstablishService, WalletService, } from '@services/wallet'; -import { NetworkMetainfo } from '@states/network'; +import { NetworkMetainfo } from '@types'; import fetchAdapter from '@vespaiach/axios-fetch-adapter'; -import { Account } from 'adena-module'; -import axios from 'axios'; export class InjectCore { private gnoProvider: GnoProvider | null = null; diff --git a/packages/adena-extension/src/inject/message/methods/network.ts b/packages/adena-extension/src/inject/message/methods/network.ts index e4f0a4a7..eec720fc 100644 --- a/packages/adena-extension/src/inject/message/methods/network.ts +++ b/packages/adena-extension/src/inject/message/methods/network.ts @@ -2,7 +2,7 @@ import { RoutePath } from '@router/path'; import { HandlerMethod } from '..'; import { InjectionMessage, InjectionMessageInstance } from '../message'; import { InjectCore } from './core'; -import { NetworkMetainfo } from '@states/network'; +import { NetworkMetainfo } from '@types'; function matchChainId(network: NetworkMetainfo, chainId: string): boolean { return network.chainId === chainId; diff --git a/packages/adena-extension/src/layouts/error-container/error-container.tsx b/packages/adena-extension/src/layouts/error-container/error-container.tsx index 29db203b..643dab4d 100644 --- a/packages/adena-extension/src/layouts/error-container/error-container.tsx +++ b/packages/adena-extension/src/layouts/error-container/error-container.tsx @@ -1,6 +1,6 @@ import React, { useMemo } from 'react'; import { useRecoilState } from 'recoil'; -import { CommonState, NetworkState, WalletState } from '@states/index'; +import { CommonState, NetworkState, WalletState } from '@states'; import { ErrorNetwork } from '@components/errors'; interface Props { diff --git a/packages/adena-extension/src/layouts/header/index.tsx b/packages/adena-extension/src/layouts/header/index.tsx index e48f750f..1ff33037 100644 --- a/packages/adena-extension/src/layouts/header/index.tsx +++ b/packages/adena-extension/src/layouts/header/index.tsx @@ -7,7 +7,7 @@ import { TopMenu } from './top-menu'; import { ProgressMenu } from './progress-menu'; import ApproveMenu from './approve-menu'; import { useRecoilState } from 'recoil'; -import { CommonState, WalletState } from '@states/index'; +import { CommonState, WalletState } from '@states'; import { ArrowTitleMenu } from './arrow-title-menu'; import { TabMenu } from './tab-menu'; import { useNetwork } from '@hooks/use-network'; diff --git a/packages/adena-extension/src/layouts/navigation/index.tsx b/packages/adena-extension/src/layouts/navigation/index.tsx index 20a15ebb..dbc268bf 100644 --- a/packages/adena-extension/src/layouts/navigation/index.tsx +++ b/packages/adena-extension/src/layouts/navigation/index.tsx @@ -4,7 +4,7 @@ import { useMatch, useNavigate } from 'react-router-dom'; import { RoutePath } from '@router/path'; import Icon, { IconName } from '@components/icons'; import { useRecoilState } from 'recoil'; -import { CommonState, WalletState } from '@states/index'; +import { CommonState, WalletState } from '@states'; import { useNetwork } from '@hooks/use-network'; const Wrapper = styled.nav` diff --git a/packages/adena-extension/src/pages/certify/connected-apps/index.tsx b/packages/adena-extension/src/pages/certify/connected-apps/index.tsx index e4434c8a..054f6623 100644 --- a/packages/adena-extension/src/pages/certify/connected-apps/index.tsx +++ b/packages/adena-extension/src/pages/certify/connected-apps/index.tsx @@ -3,7 +3,7 @@ import Text from '@components/text'; import React, { useEffect, useState } from 'react'; import styled, { CSSProp } from 'styled-components'; import { useRecoilState } from 'recoil'; -import { WalletState } from '@states/index'; +import { WalletState } from '@states'; import LoadingNft from '@components/loading-screen/loading-nft'; import ListBox, { ListHierarchy } from '@components/list-box'; import DefaultImage from '../../../assets/favicon-default-small.svg'; @@ -28,7 +28,7 @@ export const ConnectedApps = (): JSX.Element => { if (!currentAccount) { return; } - await establishService.unestablishBy(currentAccount.id, item.hostname); + await establishService.unEstablishBy(currentAccount.id, item.hostname); await updateDatas(); }; @@ -36,7 +36,7 @@ export const ConnectedApps = (): JSX.Element => { if (!currentAccount) { return; } - const establishedSites = await establishService.getEstablisedSitesBy(currentAccount.id); + const establishedSites = await establishService.getEstablishedSitesBy(currentAccount.id); setDatas(establishedSites); }; diff --git a/packages/adena-extension/src/pages/certify/login/use-login.ts b/packages/adena-extension/src/pages/certify/login/use-login.ts index 89d32b5b..ede8f205 100644 --- a/packages/adena-extension/src/pages/certify/login/use-login.ts +++ b/packages/adena-extension/src/pages/certify/login/use-login.ts @@ -3,7 +3,7 @@ import { useLocation, useNavigate } from 'react-router-dom'; import { RoutePath } from '@router/path'; import { useAdenaContext } from '@hooks/use-context'; import { useRecoilState } from 'recoil'; -import { WalletState } from '@states/index'; +import { WalletState } from '@states'; import { useLoadAccounts } from '@hooks/use-load-accounts'; export type UseLoginReturn = { diff --git a/packages/adena-extension/src/pages/certify/remove-account/index.tsx b/packages/adena-extension/src/pages/certify/remove-account/index.tsx index 24888d12..193f11e2 100644 --- a/packages/adena-extension/src/pages/certify/remove-account/index.tsx +++ b/packages/adena-extension/src/pages/certify/remove-account/index.tsx @@ -10,7 +10,7 @@ import { useRemoveAccount } from '@hooks/use-remove-account'; import { useCurrentAccount } from '@hooks/use-current-account'; import { RoutePath } from '@router/path'; import { useRecoilState } from 'recoil'; -import { WalletState } from '@states/index'; +import { WalletState } from '@states'; const content = 'Only proceed if you wish to remove this account from your wallet. You can always recover it with your seed phrase or your private key.'; diff --git a/packages/adena-extension/src/pages/wallet/approve-login/index.tsx b/packages/adena-extension/src/pages/wallet/approve-login/index.tsx index 5171d479..2364124f 100644 --- a/packages/adena-extension/src/pages/wallet/approve-login/index.tsx +++ b/packages/adena-extension/src/pages/wallet/approve-login/index.tsx @@ -15,7 +15,7 @@ import { ErrorText } from '@components/error-text'; import { validateEmptyPassword, validateWrongPasswordLength } from '@common/validation'; import { useAdenaContext, useWalletContext } from '@hooks/use-context'; import { useRecoilState } from 'recoil'; -import { WalletState } from '@states/index'; +import { WalletState } from '@states'; import { useLoadAccounts } from '@hooks/use-load-accounts'; const text = 'Enter\nYour Password'; diff --git a/packages/adena-extension/src/pages/wallet/deposit/index.tsx b/packages/adena-extension/src/pages/wallet/deposit/index.tsx index 54991935..469f6faf 100644 --- a/packages/adena-extension/src/pages/wallet/deposit/index.tsx +++ b/packages/adena-extension/src/pages/wallet/deposit/index.tsx @@ -1,17 +1,18 @@ import React, { useCallback, useEffect, useState } from 'react'; +import { QRCodeSVG } from 'qrcode.react'; import styled, { CSSProp } from 'styled-components'; +import { useLocation, useNavigate } from 'react-router-dom'; + import Text from '@components/text'; -import { QRCodeSVG } from 'qrcode.react'; import Copy from '@components/buttons/copy-button'; import theme from '@styles/theme'; import Button, { ButtonHierarchy } from '@components/buttons/button'; -import { useLocation, useNavigate } from 'react-router-dom'; import { RoutePath } from '@router/path'; import { inputStyle } from '@components/default-input'; import { useCurrentAccount } from '@hooks/use-current-account'; import { formatAddress, formatNickname } from '@common/utils/client-utils'; import { useAccountName } from '@hooks/use-account-name'; -import { TokenModel } from '@models/token-model'; +import { TokenModel } from '@types'; const Wrapper = styled.main` ${({ theme }): CSSProp => theme.mixins.flexbox('column', 'center', 'stretch')}; diff --git a/packages/adena-extension/src/pages/wallet/explore/index.tsx b/packages/adena-extension/src/pages/wallet/explore/index.tsx index dfcb4e56..e6b354c6 100644 --- a/packages/adena-extension/src/pages/wallet/explore/index.tsx +++ b/packages/adena-extension/src/pages/wallet/explore/index.tsx @@ -4,7 +4,7 @@ import styled, { CSSProp } from 'styled-components'; import link from '../../../assets/share.svg'; import theme from '@styles/theme'; import { useRecoilState } from 'recoil'; -import { ExploreState } from '@states/index'; +import { ExploreState } from '@states'; import LoadingExplore from '@components/loading-screen/loading-explore'; import { useAdenaContext } from '@hooks/use-context'; diff --git a/packages/adena-extension/src/pages/wallet/search/index.tsx b/packages/adena-extension/src/pages/wallet/search/index.tsx index c99db31a..62f85046 100644 --- a/packages/adena-extension/src/pages/wallet/search/index.tsx +++ b/packages/adena-extension/src/pages/wallet/search/index.tsx @@ -1,10 +1,12 @@ import React, { useState, useRef } from 'react'; import styled, { CSSProp } from 'styled-components'; +import BigNumber from 'bignumber.js'; +import { useLocation, useNavigate } from 'react-router-dom'; + import Text from '@components/text'; import search from '../../../assets/search.svg'; import cancel from '../../../assets/cancel-dark.svg'; import Button, { ButtonHierarchy } from '@components/buttons/button'; -import { useLocation, useNavigate } from 'react-router-dom'; import { RoutePath } from '@router/path'; import DefaultInput from '@components/default-input'; import { searchTextFilter } from '@common/utils/client-utils'; @@ -12,10 +14,10 @@ import ListBox, { ListHierarchy } from '@components/list-box'; import { useTokenBalance } from '@hooks/use-token-balance'; import UnknownTokenIcon from '@assets/common-unknown-token.svg'; import TokenBalanceComponent from '@components/common/token-balance/token-balance'; -import { TokenBalance } from '@states/balance'; -import BigNumber from 'bignumber.js'; import useHistoryData from '@hooks/use-history-data'; +import { TokenBalance } from '@types'; + const Wrapper = styled.main` width: 100%; height: 100%; diff --git a/packages/adena-extension/src/pages/wallet/token-details/index.tsx b/packages/adena-extension/src/pages/wallet/token-details/index.tsx index 6eff4ad4..690ac724 100644 --- a/packages/adena-extension/src/pages/wallet/token-details/index.tsx +++ b/packages/adena-extension/src/pages/wallet/token-details/index.tsx @@ -1,5 +1,8 @@ import React, { useCallback, useEffect, useState } from 'react'; +import BigNumber from 'bignumber.js'; import styled, { CSSProp } from 'styled-components'; +import { useInfiniteQuery } from '@tanstack/react-query'; + import { LeftArrowBtn } from '@components/buttons/arrow-buttons'; import Text from '@components/text'; import etc from '../../../assets/etc.svg'; @@ -10,8 +13,6 @@ import theme from '@styles/theme'; import { useCurrentAccount } from '@hooks/use-current-account'; import LoadingTokenDetails from '@components/loading-screen/loading-token-details'; import { useTokenBalance } from '@hooks/use-token-balance'; -import { useInfiniteQuery } from '@tanstack/react-query'; -import { TokenBalance } from '@states/balance'; import { TransactionHistoryMapper } from '@repositories/transaction/mapper/transaction-history-mapper'; import { useTokenMetainfo } from '@hooks/use-token-metainfo'; import { useAdenaContext } from '@hooks/use-context'; @@ -20,12 +21,13 @@ import UnknownTokenIcon from '@assets/common-unknown-token.svg'; import HighlightNumber from '@components/common/highlight-number/highlight-number'; import useScrollHistory from '@hooks/use-scroll-history'; import { useNetwork } from '@hooks/use-network'; -import BigNumber from 'bignumber.js'; -import { isGRC20TokenModel } from '@models/token-model'; +import { isGRC20TokenModel } from '@common/validation/validation-token'; import { StaticMultiTooltip } from '@components/tooltips/static-multi-tooltip'; import useHistoryData from '@hooks/use-history-data'; import { HISTORY_FETCH_INTERVAL_TIME } from '@common/constants/interval.constant'; +import { TokenBalance } from '@types'; + const Wrapper = styled.main` ${({ theme }): CSSProp => theme.mixins.flexbox('column', 'flex-start', 'flex-start')}; width: 100%; diff --git a/packages/adena-extension/src/pages/wallet/wallet-main/index.tsx b/packages/adena-extension/src/pages/wallet/wallet-main/index.tsx index f8f68ebb..fe354b48 100644 --- a/packages/adena-extension/src/pages/wallet/wallet-main/index.tsx +++ b/packages/adena-extension/src/pages/wallet/wallet-main/index.tsx @@ -11,7 +11,7 @@ import BigNumber from 'bignumber.js'; import UnknownTokenIcon from '@assets/common-unknown-token.svg'; import { useCurrentAccount } from '@hooks/use-current-account'; import { useRecoilState } from 'recoil'; -import { WalletState } from '@states/index'; +import { WalletState } from '@states'; import { usePreventHistoryBack } from '@hooks/use-prevent-history-back'; const Wrapper = styled.main` diff --git a/packages/adena-extension/src/repositories/common/chain.ts b/packages/adena-extension/src/repositories/common/chain.ts index 33062b9b..fb5c98da 100644 --- a/packages/adena-extension/src/repositories/common/chain.ts +++ b/packages/adena-extension/src/repositories/common/chain.ts @@ -1,7 +1,8 @@ -import { StorageManager } from '@common/storage/storage-manager'; import { AxiosInstance } from 'axios'; + +import { StorageManager } from '@common/storage/storage-manager'; import { ChainMetainfoResponse, NetworkMetainfoMapper } from './mapper/network-metainfo-mapper'; -import { NetworkMetainfo } from '@states/network'; +import { NetworkMetainfo } from '@types'; type LocalValueType = 'NETWORKS' | 'CURRENT_CHAIN_ID' | 'CURRENT_NETWORK_ID'; diff --git a/packages/adena-extension/src/repositories/common/mapper/network-metainfo-mapper.ts b/packages/adena-extension/src/repositories/common/mapper/network-metainfo-mapper.ts index 238de7e4..10c6aa7e 100644 --- a/packages/adena-extension/src/repositories/common/mapper/network-metainfo-mapper.ts +++ b/packages/adena-extension/src/repositories/common/mapper/network-metainfo-mapper.ts @@ -1,4 +1,4 @@ -import { NetworkMetainfo } from '@states/network'; +import { NetworkMetainfo } from '@types'; export type ChainMetainfoResponse = ChainMetainfoItem[]; diff --git a/packages/adena-extension/src/repositories/common/mapper/token-mapper.ts b/packages/adena-extension/src/repositories/common/mapper/token-mapper.ts index 0601e67e..83f9c0bd 100644 --- a/packages/adena-extension/src/repositories/common/mapper/token-mapper.ts +++ b/packages/adena-extension/src/repositories/common/mapper/token-mapper.ts @@ -1,10 +1,3 @@ -import { - GRC20TokenModel, - IBCNativeTokenModel, - IBCTokenModel, - NativeTokenModel, - TokenModel, -} from '@models/token-model'; import { SearchGRC20Token, SearchGRC20TokenResponse, @@ -16,6 +9,14 @@ import { NativeTokenResponse, } from '../response/token-asset-response'; +import { + NativeTokenModel, + GRC20TokenModel, + IBCNativeTokenModel, + IBCTokenModel, + TokenModel, +} from '@types'; + export class TokenMapper { private static IMAGE_BASE_URI = 'https://raw.githubusercontent.com/onbloc/gno-token-resource/main'; diff --git a/packages/adena-extension/src/repositories/common/token.ts b/packages/adena-extension/src/repositories/common/token.ts index fecb6086..d47b21b1 100644 --- a/packages/adena-extension/src/repositories/common/token.ts +++ b/packages/adena-extension/src/repositories/common/token.ts @@ -1,13 +1,7 @@ -import { StorageManager } from '@common/storage/storage-manager'; import { AxiosInstance } from 'axios'; + +import { StorageManager } from '@common/storage/storage-manager'; import { SearchGRC20TokenResponse } from './response/search-grc20-token-response'; -import { - GRC20TokenModel, - IBCNativeTokenModel, - IBCTokenModel, - NativeTokenModel, - TokenModel, -} from '@models/token-model'; import { GRC20TokenResponse, IBCNativeTokenResponse, @@ -15,7 +9,15 @@ import { NativeTokenResponse, } from './response/token-asset-response'; import { TokenMapper } from './mapper/token-mapper'; -import { NetworkMetainfo } from '@states/network'; + +import { + NativeTokenModel, + GRC20TokenModel, + IBCNativeTokenModel, + IBCTokenModel, + TokenModel, + NetworkMetainfo, +} from '@types'; type LocalValueType = 'ACCOUNT_TOKEN_METAINFOS'; diff --git a/packages/adena-extension/src/repositories/transaction/transaction-history.ts b/packages/adena-extension/src/repositories/transaction/transaction-history.ts index d58326cf..4516b159 100644 --- a/packages/adena-extension/src/repositories/transaction/transaction-history.ts +++ b/packages/adena-extension/src/repositories/transaction/transaction-history.ts @@ -1,7 +1,7 @@ import { AxiosInstance } from 'axios'; import { TransactionHistoryResponse } from './response/transaction-history-response'; import { TransactionHistoryMapper } from './mapper/transaction-history-mapper'; -import { NetworkMetainfo } from '@states/network'; +import { NetworkMetainfo } from '@types'; import { TransactionInfo } from '@components/transaction-history/transaction-history/transaction-history'; export class TransactionHistoryRepository { diff --git a/packages/adena-extension/src/services/resource/chain.ts b/packages/adena-extension/src/services/resource/chain.ts index 4d781dca..f122cfe3 100644 --- a/packages/adena-extension/src/services/resource/chain.ts +++ b/packages/adena-extension/src/services/resource/chain.ts @@ -1,6 +1,6 @@ import { CommonError } from '@common/errors/common'; import { ChainRepository } from '@repositories/common'; -import { NetworkMetainfo } from '@states/network'; +import { NetworkMetainfo } from '@types'; export class ChainService { private chainRepository: ChainRepository; diff --git a/packages/adena-extension/src/services/resource/token.ts b/packages/adena-extension/src/services/resource/token.ts index fbd94596..7ba2bdaf 100644 --- a/packages/adena-extension/src/services/resource/token.ts +++ b/packages/adena-extension/src/services/resource/token.ts @@ -1,12 +1,7 @@ -import { - GRC20TokenModel, - TokenModel, - isGRC20TokenModel, - isNativeTokenModel, -} from '@models/token-model'; +import { isGRC20TokenModel, isNativeTokenModel } from '@common/validation/validation-token'; import { AppInfoResponse, TokenRepository } from '@repositories/common'; -import { AccountTokenBalance } from '@states/balance'; -import { NetworkMetainfo } from '@states/network'; + +import { GRC20TokenModel, TokenModel, AccountTokenBalance, NetworkMetainfo } from '@types'; export class TokenService { private tokenRepository: TokenRepository; diff --git a/packages/adena-extension/src/services/transaction/transaction-history.ts b/packages/adena-extension/src/services/transaction/transaction-history.ts index 84d2a321..47adc1cf 100644 --- a/packages/adena-extension/src/services/transaction/transaction-history.ts +++ b/packages/adena-extension/src/services/transaction/transaction-history.ts @@ -1,5 +1,5 @@ import { TransactionHistoryRepository } from '@repositories/transaction'; -import { NetworkMetainfo } from '@states/network'; +import { NetworkMetainfo } from '@types'; import { TransactionInfo } from '../../components/transaction-history/transaction-history/transaction-history'; export class TransactionHistoryService { diff --git a/packages/adena-extension/src/services/wallet/wallet-balance.ts b/packages/adena-extension/src/services/wallet/wallet-balance.ts index df03ff6d..e99004fe 100644 --- a/packages/adena-extension/src/services/wallet/wallet-balance.ts +++ b/packages/adena-extension/src/services/wallet/wallet-balance.ts @@ -1,8 +1,10 @@ -import { GnoProvider } from '@common/provider/gno/gno-provider'; -import { TokenModel, isGRC20TokenModel, isNativeTokenModel } from '@models/token-model'; -import { BalanceState } from '@states/index'; import BigNumber from 'bignumber.js'; +import { GnoProvider } from '@common/provider/gno/gno-provider'; +import { isGRC20TokenModel, isNativeTokenModel } from '@common/validation/validation-token'; + +import { TokenBalance, TokenModel } from '@types'; + export class WalletBalanceService { private tokenMetainfos: TokenModel[]; @@ -27,7 +29,7 @@ export class WalletBalanceService { this.tokenMetainfos = tokenMetainfos; } - public getTokenBalances = async (address: string): Promise => { + public getTokenBalances = async (address: string): Promise => { const gnoProvider = this.getGnoProvider(); const denom = 'ugnot'; const balance = await gnoProvider @@ -40,7 +42,7 @@ export class WalletBalanceService { value: '0', denom, })); - const tokenBalances: Array = []; + const tokenBalances: Array = []; for (const tokenMetainfo of this.tokenMetainfos) { const isNativeToken = isNativeTokenModel(tokenMetainfo); @@ -58,7 +60,7 @@ export class WalletBalanceService { address: string, packagePath: string, symbol: string, - ): Promise => { + ): Promise => { const gnoProvider = this.getGnoProvider(); const balance = await gnoProvider.getValueByEvaluateExpression(packagePath, 'BalanceOf', [ address, @@ -118,7 +120,7 @@ export class WalletBalanceService { denom: string; }, tokenMetainfo: TokenModel, - ): BalanceState.TokenBalance => { + ): TokenBalance => { const { value, denom } = this.convertDenom( balance.value, balance.denom, diff --git a/packages/adena-extension/src/services/wallet/wallet-establish.ts b/packages/adena-extension/src/services/wallet/wallet-establish.ts index 2580ce27..8d3fa34c 100644 --- a/packages/adena-extension/src/services/wallet/wallet-establish.ts +++ b/packages/adena-extension/src/services/wallet/wallet-establish.ts @@ -7,7 +7,7 @@ export class WalletEstablishService { this.walletEstablishRepository = walletEstablishRepository; } - public getEstablisedSitesBy = async (accountId: string): Promise => { + public getEstablishedSitesBy = async (accountId: string): Promise => { const establishedSites = await this.walletEstablishRepository.getEstablishedSites(); const accountEstablishedSites = await this.selectEstablishedSitesBy( accountId, @@ -61,7 +61,7 @@ export class WalletEstablishService { await this.walletEstablishRepository.updateEstablishedSites(changedEstablishedSites); }; - public unestablishBy = async (accountId: string, hostname: string): Promise => { + public unEstablishBy = async (accountId: string, hostname: string): Promise => { const establishedSites = await this.walletEstablishRepository.getEstablishedSites(); const accountEstablishedSites = await this.selectEstablishedSitesBy( accountId, diff --git a/packages/adena-extension/src/states/balance.ts b/packages/adena-extension/src/states/balance.ts index 5075bdc6..004c8265 100644 --- a/packages/adena-extension/src/states/balance.ts +++ b/packages/adena-extension/src/states/balance.ts @@ -1,21 +1,6 @@ import { atom } from 'recoil'; -import { TokenModel } from '@models/token-model'; -export interface TokenBalance extends TokenModel { - amount: Amount; -} - -export interface Amount { - value: string; - denom: string; -} - -export interface AccountTokenBalance { - accountId: string; - chainId: string; - networkId: string; - tokenBalances: TokenBalance[]; -} +import { AccountTokenBalance, Amount, TokenBalance } from '@types'; export const isLoading = atom({ key: 'balance/is-loading', diff --git a/packages/adena-extension/src/states/explore.ts b/packages/adena-extension/src/states/explore.ts index 06a92139..b8ab9bba 100644 --- a/packages/adena-extension/src/states/explore.ts +++ b/packages/adena-extension/src/states/explore.ts @@ -1,6 +1,6 @@ import { atom } from 'recoil'; -export interface SiteInfo { +interface SiteInfo { symbol: string; name: string; description: string; diff --git a/packages/adena-extension/src/states/network.ts b/packages/adena-extension/src/states/network.ts index fc2ea6f7..6b43978c 100644 --- a/packages/adena-extension/src/states/network.ts +++ b/packages/adena-extension/src/states/network.ts @@ -1,20 +1,6 @@ import { atom } from 'recoil'; -export interface NetworkMetainfo { - id: string; - default: boolean; - main?: boolean; - chainId: string; - chainName: string; - networkId: string; - networkName: string; - addressPrefix: string; - rpcUrl: string; - gnoUrl: string; - apiUrl: string; - linkUrl: string; - deleted?: boolean; -} +import { NetworkMetainfo } from '@types'; export const networkMetainfos = atom({ key: 'network/networkMetainfos', diff --git a/packages/adena-extension/src/states/token.ts b/packages/adena-extension/src/states/token.ts index 0a9386e3..bfea9814 100644 --- a/packages/adena-extension/src/states/token.ts +++ b/packages/adena-extension/src/states/token.ts @@ -1,6 +1,7 @@ -import { TokenModel } from '@models/token-model'; import { atom } from 'recoil'; +import { TokenModel } from '@types'; + export const tokenMetainfos = atom({ key: 'token/tokenMetainfos', default: [], diff --git a/packages/adena-extension/src/states/wallet.tsx b/packages/adena-extension/src/states/wallet.tsx index 14380c00..bd886976 100644 --- a/packages/adena-extension/src/states/wallet.tsx +++ b/packages/adena-extension/src/states/wallet.tsx @@ -1,8 +1,10 @@ import { atom } from 'recoil'; import { Account, Wallet } from 'adena-module'; + import { HistoryItem } from '@repositories/transaction/response/transaction-history-response'; +import { StateType } from '@types'; -export interface TransactionHistoryState { +interface TransactionHistoryState { address: string | null; currentPage: number; init: boolean; @@ -10,15 +12,6 @@ export interface TransactionHistoryState { items: Array; } -/** - * CREATE: When there is no stored serialized wallet value - * LOGIN: When there is no encrypted password value - * LOADING: During deserialization - * FINISH: When deserialization is complete - * FAIL: When deserialization has failed - */ -export type StateType = 'CREATE' | 'LOGIN' | 'LOADING' | 'FINISH' | 'FAIL' | 'NONE'; - export const wallet = atom({ key: 'wallet/wallet', default: null, diff --git a/packages/adena-extension/src/global.d.ts b/packages/adena-extension/src/types/common.d.ts similarity index 79% rename from packages/adena-extension/src/global.d.ts rename to packages/adena-extension/src/types/common.d.ts index cfe23fb6..000b1e49 100644 --- a/packages/adena-extension/src/global.d.ts +++ b/packages/adena-extension/src/types/common.d.ts @@ -1,6 +1,12 @@ import { EVENT_KEYS } from '@common/constants/event-key.constant'; +export const _ = ''; + declare global { + interface Window { + adena?: any; + } + declare module '*.svg'; interface WindowEventMap { diff --git a/packages/adena-extension/src/types/index.d.ts b/packages/adena-extension/src/types/index.d.ts deleted file mode 100644 index ff0a0dbb..00000000 --- a/packages/adena-extension/src/types/index.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -export const _ = ''; - -declare global { - interface Window { - adena?: any; - } -} diff --git a/packages/adena-extension/src/types/index.ts b/packages/adena-extension/src/types/index.ts new file mode 100644 index 00000000..3d20559d --- /dev/null +++ b/packages/adena-extension/src/types/index.ts @@ -0,0 +1,2 @@ +export * from './token'; +export * from './states'; diff --git a/packages/adena-extension/src/types/states.ts b/packages/adena-extension/src/types/states.ts new file mode 100644 index 00000000..4be3f449 --- /dev/null +++ b/packages/adena-extension/src/types/states.ts @@ -0,0 +1,42 @@ +import { TokenModel } from './'; + +export interface TokenBalance extends TokenModel { + amount: Amount; +} + +export interface Amount { + value: string; + denom: string; +} + +export interface AccountTokenBalance { + accountId: string; + chainId: string; + networkId: string; + tokenBalances: TokenBalance[]; +} + +export interface NetworkMetainfo { + id: string; + default: boolean; + main?: boolean; + chainId: string; + chainName: string; + networkId: string; + networkName: string; + addressPrefix: string; + rpcUrl: string; + gnoUrl: string; + apiUrl: string; + linkUrl: string; + deleted?: boolean; +} + +/** + * CREATE: When there is no stored serialized wallet value + * LOGIN: When there is no encrypted password value + * LOADING: During deserialization + * FINISH: When deserialization is complete + * FAIL: When deserialization has failed + */ +export type StateType = 'CREATE' | 'LOGIN' | 'LOADING' | 'FINISH' | 'FAIL' | 'NONE'; diff --git a/packages/adena-extension/src/models/token-model.ts b/packages/adena-extension/src/types/token.ts similarity index 59% rename from packages/adena-extension/src/models/token-model.ts rename to packages/adena-extension/src/types/token.ts index 1298813b..9e9ff19b 100644 --- a/packages/adena-extension/src/models/token-model.ts +++ b/packages/adena-extension/src/types/token.ts @@ -33,19 +33,3 @@ export interface IBCTokenModel extends TokenModel { channel: string; port: string; } - -export function isNativeTokenModel(model: TokenModel): model is NativeTokenModel { - return model.type === 'gno-native'; -} - -export function isGRC20TokenModel(model: TokenModel): model is GRC20TokenModel { - return model.type === 'grc20'; -} - -export function isIBCNativeTokenModel(model: TokenModel): model is IBCNativeTokenModel { - return model.type === 'ibc-native'; -} - -export function isIBCTokenModel(model: TokenModel): model is IBCTokenModel { - return model.type === 'ibc-tokens'; -} diff --git a/packages/adena-extension/tsconfig.json b/packages/adena-extension/tsconfig.json index 1f949e63..e4c3a6c7 100644 --- a/packages/adena-extension/tsconfig.json +++ b/packages/adena-extension/tsconfig.json @@ -17,6 +17,8 @@ "lib": ["dom", "es5", "es6"], "baseUrl": "./", "paths": { + "@types": ["src/types"], + "@states": ["src/states"], "@hooks/*": ["src/hooks/*"], "@ui/*": ["src/ui/*"], "@pages/*": ["src/pages/*"], @@ -27,7 +29,6 @@ "@layouts/*": ["src/layouts/*"], "@components/*": ["src/components/*"], "@containers/*": ["src/containers/*"], - "@states/*": ["src/states/*"], "@common/*": ["src/common/*"], "@inject/*": ["src/inject/*"], "@assets/*": ["src/assets/*"], diff --git a/packages/adena-extension/webpack.config.js b/packages/adena-extension/webpack.config.js index 934bc5dd..c570c9e4 100644 --- a/packages/adena-extension/webpack.config.js +++ b/packages/adena-extension/webpack.config.js @@ -64,6 +64,7 @@ const config = { modules: ['node_modules'], extensions: ['.js', '.jsx', '.tsx', '.ts'], alias: { + '@types': path.resolve(__dirname, 'src/types'), '@hooks': path.resolve(__dirname, 'src/hooks'), '@ui': path.resolve(__dirname, 'src/ui'), '@pages': path.resolve(__dirname, 'src/pages'),