diff --git a/CHANGELOG.md b/CHANGELOG.md index ac62f89aa..9fea0a467 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -39,6 +39,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Features +- [#994](https://github.com/alleslabs/celatone-frontend/pull/994) Add Sequencer, Mesa tier and TierSwitcher component + ### Improvements ### Bug fixes diff --git a/src/config/chain/initia.ts b/src/config/chain/initia.ts index fc11e1532..17154b151 100644 --- a/src/config/chain/initia.ts +++ b/src/config/chain/initia.ts @@ -1,3 +1,4 @@ +/* eslint-disable sonarjs/no-duplicate-string */ import { wallets as initiaWallets } from "@cosmos-kit/initia"; import { wallets as keplrWallets } from "@cosmos-kit/keplr"; @@ -55,6 +56,54 @@ export const INITIA_CHAIN_CONFIGS: ChainConfigs = { isValidatorExternalLink: null, }, }, + "tomcat-1-sequencer": { + tier: "sequencer", + chain: "initia", + registryChainName: "blackwingtestnet", + prettyName: "Blackwing Testnet Sequencer", + lcd: "https://maze-rest-18bdff44-3aa4-425e-9bc0-06a2afa40af8.ase1-prod.newmetric.xyz", + rpc: "https://maze-rpc-18bdff44-3aa4-425e-9bc0-06a2afa40af8.ase1-prod.newmetric.xyz", + indexer: "https://tomcat-1-graphql.alleslabs.dev/v1/graphql", + wallets: [...initiaWallets, ...keplrWallets], + features: { + faucet: { + enabled: false, + }, + wasm: { + enabled: false, + }, + move: { + enabled: true, + moduleMaxFileSize: 1_048_576, + decodeApi: INITIA_DECODER, + verify: "", + }, + pool: { + enabled: false, + }, + publicProject: { + enabled: true, + }, + gov: { + enabled: false, + }, + nft: { + enabled: true, + }, + }, + gas: { + gasPrice: { + tokenPerGas: 0.151, + denom: + "l2/aee375e9d0b181f0d9d3a49f9a3d1d6b05d62b0ac81f8c92b9282afa4213d884", + }, + gasAdjustment: 1.5, + maxGasLimit: 25_000_000, + }, + extra: { + isValidatorExternalLink: null, + }, + }, "initiation-1": { tier: "full", chain: "initia", diff --git a/src/config/chain/types.ts b/src/config/chain/types.ts index c9f068ed4..f6e5bce49 100644 --- a/src/config/chain/types.ts +++ b/src/config/chain/types.ts @@ -53,7 +53,7 @@ type GovConfig = type NftConfig = { enabled: boolean }; export interface ChainConfig { - tier: "lite" | "full"; + tier: "lite" | "mesa" | "sequencer" | "full"; chain: string; registryChainName: string; prettyName: string; diff --git a/src/lib/app-provider/hooks/useConfig.ts b/src/lib/app-provider/hooks/useConfig.ts index d4963caad..f0f242b42 100644 --- a/src/lib/app-provider/hooks/useConfig.ts +++ b/src/lib/app-provider/hooks/useConfig.ts @@ -5,8 +5,9 @@ import { useInternalNavigate } from "./useInternalNavigate"; const TierMap: Record = { lite: 0, - // new metric 1 - full: 2, + mesa: 1, + sequencer: 2, + full: 3, }; export const useTierConfig = ( @@ -26,7 +27,13 @@ export const useTierConfig = ( if (TierMap[tier] < TierMap[minTier]) navigate({ pathname: "/", replace: true }); - return tier; + return { + tier, + isFullTier: tier === "full", + isLiteTier: tier === "lite", + isMesaTier: tier === "mesa", + isSequencerTier: tier === "sequencer", + }; }; type Features = ChainConfig["features"]; diff --git a/src/lib/components/TierSwitcher.tsx b/src/lib/components/TierSwitcher.tsx new file mode 100644 index 000000000..008cb263b --- /dev/null +++ b/src/lib/components/TierSwitcher.tsx @@ -0,0 +1,29 @@ +import { useTierConfig } from "lib/app-provider"; + +interface TierSwitcherProps { + full: React.ReactNode; + sequencer?: React.ReactNode; + mesa?: React.ReactNode; + lite: React.ReactNode; +} + +export const TierSwitcher = ({ + full, + lite, + mesa, + sequencer, +}: TierSwitcherProps) => { + const { tier } = useTierConfig(); + + switch (tier) { + case "full": + return full; + case "sequencer": + return sequencer ?? lite; + case "mesa": + return mesa ?? lite; + case "lite": + default: + return lite; + } +}; diff --git a/src/lib/components/modal/account/SaveNewAccount.tsx b/src/lib/components/modal/account/SaveNewAccount.tsx index a2d2e2d48..0681b1154 100644 --- a/src/lib/components/modal/account/SaveNewAccount.tsx +++ b/src/lib/components/modal/account/SaveNewAccount.tsx @@ -49,7 +49,7 @@ export function SaveNewAccountModal({ publicDescription, }: SaveNewAccountModalProps) { const { constants } = useCelatoneApp(); - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const { user: exampleUserAddress } = useExampleAddresses(); const { isSomeValidAddress } = useValidateAddress(); const formatAddresses = useFormatAddresses(); diff --git a/src/lib/components/select-code/CodeSelectSection.tsx b/src/lib/components/select-code/CodeSelectSection.tsx index f3489614d..592abcfa5 100644 --- a/src/lib/components/select-code/CodeSelectSection.tsx +++ b/src/lib/components/select-code/CodeSelectSection.tsx @@ -30,7 +30,7 @@ export const CodeSelectSection = ({ setCodeHash, status, }: CodeSelectSectionProps) => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const [method, setMethod] = useState<"select-existing" | "fill-manually">( isFullTier ? "select-existing" : "fill-manually" ); diff --git a/src/lib/components/select-contract/ContractListDetail.tsx b/src/lib/components/select-contract/ContractListDetail.tsx index 968d4064a..84ff6a590 100644 --- a/src/lib/components/select-contract/ContractListDetail.tsx +++ b/src/lib/components/select-contract/ContractListDetail.tsx @@ -88,7 +88,7 @@ export const ContractListDetail = ({ onContractSelect, isReadOnly = false, }: ContractListDetailProps) => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const dataFull = useAdminByContractAddresses( isReadOnly || !isFullTier ? [] diff --git a/src/lib/components/table/contracts/ContractsTableRowCTA.tsx b/src/lib/components/table/contracts/ContractsTableRowCTA.tsx index 80a33b2b9..192ff7d22 100644 --- a/src/lib/components/table/contracts/ContractsTableRowCTA.tsx +++ b/src/lib/components/table/contracts/ContractsTableRowCTA.tsx @@ -56,7 +56,7 @@ export const ContractsTableRowCTA = ({ showLastUpdate = true, }: ContractsTableRowCTAProps) => { const { address } = useCurrentChain(); - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const navigate = useInternalNavigate(); const isAdmin = !!address && address === contractInfo.admin; diff --git a/src/lib/components/table/proposals/ProposalsTable.tsx b/src/lib/components/table/proposals/ProposalsTable.tsx index b393ab71f..322a326ff 100644 --- a/src/lib/components/table/proposals/ProposalsTable.tsx +++ b/src/lib/components/table/proposals/ProposalsTable.tsx @@ -18,7 +18,7 @@ export const ProposalsTable = ({ isLoading, emptyState, }: ProposalsTableProps) => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const isMobile = useMobile(); if (isLoading) return ; diff --git a/src/lib/components/table/proposals/ProposalsTableHeader.tsx b/src/lib/components/table/proposals/ProposalsTableHeader.tsx index 27a2966d6..dba9952f9 100644 --- a/src/lib/components/table/proposals/ProposalsTableHeader.tsx +++ b/src/lib/components/table/proposals/ProposalsTableHeader.tsx @@ -13,7 +13,7 @@ export const ProposalsTableHeader = ({ templateColumns, boxShadow, }: ProposalsTableHeaderProps) => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); // TODO - Revisit split columnsWidth const columnsWidth = templateColumns?.toString().split(" "); diff --git a/src/lib/components/table/proposals/ProposalsTableMobileCard.tsx b/src/lib/components/table/proposals/ProposalsTableMobileCard.tsx index e979f51c4..bbd814adf 100644 --- a/src/lib/components/table/proposals/ProposalsTableMobileCard.tsx +++ b/src/lib/components/table/proposals/ProposalsTableMobileCard.tsx @@ -20,7 +20,7 @@ export interface ProposalsTableMobileCardProps { export const ProposalsTableMobileCard = ({ proposal, }: ProposalsTableMobileCardProps) => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const navigate = useInternalNavigate(); const onCardSelect = (proposalId: number) => diff --git a/src/lib/components/table/proposals/ProposalsTableRow.tsx b/src/lib/components/table/proposals/ProposalsTableRow.tsx index 6a4478db0..cd731779d 100644 --- a/src/lib/components/table/proposals/ProposalsTableRow.tsx +++ b/src/lib/components/table/proposals/ProposalsTableRow.tsx @@ -25,7 +25,7 @@ export const ProposalsTableRow = ({ templateColumns, boxShadow, }: ProposalsTableRowProps) => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const navigate = useInternalNavigate(); const onRowSelect = (proposalId: number) => diff --git a/src/lib/hooks/useOpenTab.ts b/src/lib/hooks/useOpenTab.ts index 2eb962b34..352192add 100644 --- a/src/lib/hooks/useOpenTab.ts +++ b/src/lib/hooks/useOpenTab.ts @@ -23,7 +23,7 @@ export const useOpenTxTab = (type: "lcd" | "tx-page") => { }; export const useOpenAssetTab = () => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const apiEndpoint = useBaseApiRoute("accounts"); const lcdEndpoint = useLcdEndpoint(); diff --git a/src/lib/hooks/useSingleMessageProps.ts b/src/lib/hooks/useSingleMessageProps.ts index 337906eed..0e1b763fc 100644 --- a/src/lib/hooks/useSingleMessageProps.ts +++ b/src/lib/hooks/useSingleMessageProps.ts @@ -599,7 +599,7 @@ export const useSingleActionMsgProps = ( messages: Message[], singleMsg: Option ): SingleMsgProps => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const { getContractLocalInfo } = useContractStore(); const { data: assetInfos } = useAssetInfos({ withPrices: false }); const { data: movePoolInfos } = useMovePoolInfos({ withPrices: false }); diff --git a/src/lib/layout/InformationFooter.tsx b/src/lib/layout/InformationFooter.tsx index a6db4c4be..3149d3e9e 100644 --- a/src/lib/layout/InformationFooter.tsx +++ b/src/lib/layout/InformationFooter.tsx @@ -27,7 +27,7 @@ const FOOTER_BUTTONS = [ ]; export const InformationFooter = () => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const { data: overviewsStats, isLoading: isLoadingFull } = useOverviewsStats(isFullTier); const { data: latestHeight, isLoading: isLoadingLite } = useLatestBlockLcd(); diff --git a/src/lib/layout/Searchbar.tsx b/src/lib/layout/Searchbar.tsx index 4dc77fbdb..be0f84fd9 100644 --- a/src/lib/layout/Searchbar.tsx +++ b/src/lib/layout/Searchbar.tsx @@ -287,7 +287,7 @@ const getPlaceholder = ({ // eslint-disable-next-line sonarjs/cognitive-complexity const Searchbar = () => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const isMobile = useMobile(); const navigate = useInternalNavigate(); const { diff --git a/src/lib/layout/mobile/NavDrawer.tsx b/src/lib/layout/mobile/NavDrawer.tsx index ac7563199..0a96a6846 100644 --- a/src/lib/layout/mobile/NavDrawer.tsx +++ b/src/lib/layout/mobile/NavDrawer.tsx @@ -32,7 +32,7 @@ import { usePublicProjectStore } from "lib/providers/store"; import { getNavDrawerFull, getNavDrawerLite } from "./utils"; export const NavDrawer = () => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const govConfig = useGovConfig({ shouldRedirect: false }); const wasmConfig = useWasmConfig({ shouldRedirect: false }); const moveConfig = useMoveConfig({ shouldRedirect: false }); diff --git a/src/lib/layout/navbar/index.tsx b/src/lib/layout/navbar/index.tsx index ab4145a9c..ca32400b6 100644 --- a/src/lib/layout/navbar/index.tsx +++ b/src/lib/layout/navbar/index.tsx @@ -39,7 +39,7 @@ const Navbar = observer(({ isExpand, setIsExpand }: NavbarProps) => { const isCurrentPage = useIsCurrentPage(); const wasm = useWasmConfig({ shouldRedirect: false }); const move = useMoveConfig({ shouldRedirect: false }); - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const { address } = useCurrentChain(); const navMenu: MenuInfo[] = isFullTier diff --git a/src/lib/layout/subheader/index.tsx b/src/lib/layout/subheader/index.tsx index a5afe60ae..1f8bb2b30 100644 --- a/src/lib/layout/subheader/index.tsx +++ b/src/lib/layout/subheader/index.tsx @@ -19,7 +19,7 @@ import { getSubHeaderFull, getSubHeaderLite } from "./utils"; const ACTIVE_COLOR = "primary.light"; const SubHeader = () => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const govConfig = useGovConfig({ shouldRedirect: false }); const wasmConfig = useWasmConfig({ shouldRedirect: false }); const moveConfig = useMoveConfig({ shouldRedirect: false }); diff --git a/src/lib/model/contract.ts b/src/lib/model/contract.ts index ff4040896..ce469dede 100644 --- a/src/lib/model/contract.ts +++ b/src/lib/model/contract.ts @@ -17,7 +17,7 @@ interface InstantiatedByMeState { export const useInstantiatedByMe = (enable: boolean): InstantiatedByMeState => { const { address } = useCurrentChain(); - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const resApi = useInstantiatedListByAddress(address, enable && isFullTier); const resLcd = useInstantiatedContractsByAddressLcd( @@ -46,7 +46,7 @@ export const useInstantiatedByMe = (enable: boolean): InstantiatedByMeState => { export const useInstantiatedMockInfoByMe = (): ContractListInfo => { const { address } = useCurrentChain(); - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const resApi = useInstantiatedCountByAddress(address); const resLcd = useInstantiatedContractsByAddressLcd(address, !isFullTier); const count = isFullTier ? resApi.data : resLcd.data?.length ?? 0; diff --git a/src/lib/pages/account-details/components/tables/instantiated-contracts/index.tsx b/src/lib/pages/account-details/components/tables/instantiated-contracts/index.tsx index 61c4c1afe..35066a78d 100644 --- a/src/lib/pages/account-details/components/tables/instantiated-contracts/index.tsx +++ b/src/lib/pages/account-details/components/tables/instantiated-contracts/index.tsx @@ -1,19 +1,16 @@ import { observer } from "mobx-react-lite"; -import { useTierConfig } from "lib/app-provider"; +import { TierSwitcher } from "lib/components/TierSwitcher"; import { InstantiatedContractsTableFull } from "./Full"; import { InstantiatedContractsTableLite } from "./Lite"; import type { InstantiatedContractsTableProps } from "./types"; export const InstantiatedContractsTable = observer( - (props: InstantiatedContractsTableProps) => { - const isFullTier = useTierConfig() === "full"; - - return isFullTier ? ( - - ) : ( - - ); - } + (props: InstantiatedContractsTableProps) => ( + } + lite={} + /> + ) ); diff --git a/src/lib/pages/account-details/components/tables/txs/Lite.tsx b/src/lib/pages/account-details/components/tables/txs/Lite.tsx index e5d6ea16c..3b2ef17f4 100644 --- a/src/lib/pages/account-details/components/tables/txs/Lite.tsx +++ b/src/lib/pages/account-details/components/tables/txs/Lite.tsx @@ -22,7 +22,7 @@ export const TxsTableLite = ({ onViewMore, }: TxsTableProps) => { const isMobile = useMobile(); - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const { pagesQuantity, diff --git a/src/lib/pages/account-details/components/tables/txs/index.tsx b/src/lib/pages/account-details/components/tables/txs/index.tsx index e22afece7..8d9b59f06 100644 --- a/src/lib/pages/account-details/components/tables/txs/index.tsx +++ b/src/lib/pages/account-details/components/tables/txs/index.tsx @@ -1,11 +1,12 @@ -import { useTierConfig } from "lib/app-provider"; +import { TierSwitcher } from "lib/components/TierSwitcher"; import { TxsTableFull } from "./Full"; import { TxsTableLite } from "./Lite"; import type { TxsTableProps } from "./types"; -export const TxsTable = (props: TxsTableProps) => { - const isFullTier = useTierConfig() === "full"; - - return isFullTier ? : ; -}; +export const TxsTable = (props: TxsTableProps) => ( + } + lite={} + /> +); diff --git a/src/lib/pages/account-details/data.ts b/src/lib/pages/account-details/data.ts index a73386438..f26bd841f 100644 --- a/src/lib/pages/account-details/data.ts +++ b/src/lib/pages/account-details/data.ts @@ -36,7 +36,7 @@ interface AccountDetailsTableCounts { export const useAccountDetailsTableCounts = ( address: BechAddr ): AccountDetailsTableCounts => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const { data, refetch, diff --git a/src/lib/pages/account-details/index.tsx b/src/lib/pages/account-details/index.tsx index e463cfc5a..0bb028132 100644 --- a/src/lib/pages/account-details/index.tsx +++ b/src/lib/pages/account-details/index.tsx @@ -76,7 +76,7 @@ const AccountDetailsBody = ({ const navigate = useInternalNavigate(); const { address: accountAddress, hex: hexAddress } = formatAddresses(accountAddressParam); - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); // ------------------------------------------// // ------------------QUERIES-----------------// diff --git a/src/lib/pages/admin/index.tsx b/src/lib/pages/admin/index.tsx index a13f1ac53..9c2e534a0 100644 --- a/src/lib/pages/admin/index.tsx +++ b/src/lib/pages/admin/index.tsx @@ -10,7 +10,6 @@ import { useGetAddressType, useInternalNavigate, useSimulateFeeQuery, - useTierConfig, useUpdateAdminTx, useValidateAddress, useWasmConfig, @@ -23,6 +22,7 @@ import { EstimatedFeeRender } from "lib/components/EstimatedFeeRender"; import type { FormStatus } from "lib/components/forms"; import { TextInput } from "lib/components/forms"; import { CelatoneSeo } from "lib/components/Seo"; +import { TierSwitcher } from "lib/components/TierSwitcher"; import { UserDocsLink } from "lib/components/UserDocsLink"; import WasmPageContainer from "lib/components/WasmPageContainer"; import { useTxBroadcast } from "lib/hooks"; @@ -35,7 +35,6 @@ const UpdateAdmin = () => { useWasmConfig({ shouldRedirect: true }); const router = useRouter(); const { address } = useCurrentChain(); - const isFullTier = useTierConfig() === "full"; const { validateContractAddress, validateUserAddress } = useValidateAddress(); const getAddressType = useGetAddressType(); const navigate = useInternalNavigate(); @@ -189,20 +188,23 @@ const UpdateAdmin = () => { mb={6} subtitle="You need to connect your wallet to perform this action" /> - {isFullTier ? ( - onContractPathChange(contract)} - /> - ) : ( - - onContractPathChange(contract)} /> - - )} + } + lite={ + + onContractPathChange(contract)} + /> + + } + /> { const { currentChainId } = useCelatoneApp(); - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); return ( diff --git a/src/lib/pages/block-details/index.tsx b/src/lib/pages/block-details/index.tsx index 3aa3f7254..be441bd0c 100644 --- a/src/lib/pages/block-details/index.tsx +++ b/src/lib/pages/block-details/index.tsx @@ -2,9 +2,9 @@ import { useRouter } from "next/router"; import { useEffect } from "react"; import { AmpEvent, track } from "lib/amplitude"; -import { useTierConfig } from "lib/app-provider"; import PageContainer from "lib/components/PageContainer"; import { CelatoneSeo } from "lib/components/Seo"; +import { TierSwitcher } from "lib/components/TierSwitcher"; import { InvalidBlock } from "./components/InvalidBlock"; import { BlockDetailsFull } from "./full"; @@ -15,20 +15,15 @@ interface BlockDetailsBodyProps { height: number; } -const BlockDetailsBody = ({ height }: BlockDetailsBodyProps) => { - const isFullTier = useTierConfig() === "full"; - - return ( - <> - - {isFullTier ? ( - - ) : ( - - )} - - ); -}; +const BlockDetailsBody = ({ height }: BlockDetailsBodyProps) => ( + <> + + } + lite={} + /> + +); const BlockDetails = () => { const router = useRouter(); diff --git a/src/lib/pages/code-details/components/code-info/CodeInfoLabelText.tsx b/src/lib/pages/code-details/components/code-info/CodeInfoLabelText.tsx index 69d02871f..dc223c235 100644 --- a/src/lib/pages/code-details/components/code-info/CodeInfoLabelText.tsx +++ b/src/lib/pages/code-details/components/code-info/CodeInfoLabelText.tsx @@ -3,7 +3,7 @@ import type { LabelTextProps } from "lib/components/LabelText"; import { LabelText } from "lib/components/LabelText"; export const CodeInfoLabelText = (props: LabelTextProps) => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); return ( { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const { isOpen, onClose, onOpen } = useDisclosure(); const getAddressType = useGetAddressType(); diff --git a/src/lib/pages/code-details/components/code-info/CodeTopInfo.tsx b/src/lib/pages/code-details/components/code-info/CodeTopInfo.tsx index a7ccc42dd..053918a15 100644 --- a/src/lib/pages/code-details/components/code-info/CodeTopInfo.tsx +++ b/src/lib/pages/code-details/components/code-info/CodeTopInfo.tsx @@ -26,7 +26,7 @@ export const CodeTopInfo = ({ projectInfo, publicInfo, }: CodeTopInfoProps) => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const { getCodeLocalInfo } = useCodeStore(); const localCodeInfo = getCodeLocalInfo(codeId); diff --git a/src/lib/pages/code-details/index.tsx b/src/lib/pages/code-details/index.tsx index 6bfcdb650..baea6b616 100644 --- a/src/lib/pages/code-details/index.tsx +++ b/src/lib/pages/code-details/index.tsx @@ -16,6 +16,7 @@ import { Loading } from "lib/components/Loading"; import PageContainer from "lib/components/PageContainer"; import { CelatoneSeo } from "lib/components/Seo"; import { ErrorFetching, InvalidState } from "lib/components/state"; +import { TierSwitcher } from "lib/components/TierSwitcher"; import { UserDocsLink } from "lib/components/UserDocsLink"; import { useSchemaStore } from "lib/providers/store"; import { useCodeData } from "lib/services/wasm/code"; @@ -41,7 +42,7 @@ const InvalidCode = () => ; const CodeDetailsBody = observer(({ codeId, tab }: CodeDetailsBodyProps) => { const isMobile = useMobile(); - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const navigate = useInternalNavigate(); const { getSchemaByCodeHash } = useSchemaStore(); @@ -117,11 +118,11 @@ const CodeDetailsBody = observer(({ codeId, tab }: CodeDetailsBodyProps) => { attached={!!jsonSchema} toJsonSchemaTab={handleTabChange(TabIndex.JsonSchema)} /> - {isFullTier ? ( - - ) : ( - - )} + } + lite={} + /> + { useWasmConfig({ shouldRedirect: true }); - const tier = useTierConfig(); const router = useRouter(); useEffect(() => { @@ -28,7 +28,10 @@ const RecentCodes = observer(() => { subtitle="This page displays all codes on this network sorted by recency" docHref="introduction/overview#recent-codes" /> - {tier === "lite" ? : } + } + lite={} + /> ); }); diff --git a/src/lib/pages/contract-details/components/InstantiateInfo.tsx b/src/lib/pages/contract-details/components/InstantiateInfo.tsx index ae2031648..db40b4d7d 100644 --- a/src/lib/pages/contract-details/components/InstantiateInfo.tsx +++ b/src/lib/pages/contract-details/components/InstantiateInfo.tsx @@ -102,7 +102,7 @@ export const InstantiateInfo = ({ contractRest, codeLocalInfo, }: InstantiateInfoProps) => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const getAddressType = useGetAddressType(); const { chain: { chain_id: chainId }, diff --git a/src/lib/pages/contract-details/components/tables/TxsTable.tsx b/src/lib/pages/contract-details/components/tables/TxsTable.tsx index ef6e514f7..99afde049 100644 --- a/src/lib/pages/contract-details/components/tables/TxsTable.tsx +++ b/src/lib/pages/contract-details/components/tables/TxsTable.tsx @@ -20,7 +20,7 @@ export const TxsTable = ({ totalData, refetchCount, }: TxsTableProps) => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const { setTotalData, diff --git a/src/lib/pages/contract-details/components/tables/index.tsx b/src/lib/pages/contract-details/components/tables/index.tsx index a5286af75..2e0252cba 100644 --- a/src/lib/pages/contract-details/components/tables/index.tsx +++ b/src/lib/pages/contract-details/components/tables/index.tsx @@ -23,7 +23,7 @@ interface ContractTablesProps { const tableHeaderId = "contractDetailsTableHeader"; export const ContractTables = ({ contractAddress }: ContractTablesProps) => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const gov = useGovConfig({ shouldRedirect: false }); const { data, refetch: refetchCount } = useContractTableCounts( diff --git a/src/lib/pages/contract-details/components/tables/migration/MigrationHeader.tsx b/src/lib/pages/contract-details/components/tables/migration/MigrationHeader.tsx index 51ff502d9..104124d39 100644 --- a/src/lib/pages/contract-details/components/tables/migration/MigrationHeader.tsx +++ b/src/lib/pages/contract-details/components/tables/migration/MigrationHeader.tsx @@ -9,7 +9,7 @@ export const MigrationHeader = ({ }: { templateColumns: GridProps["templateColumns"]; }) => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); return ( diff --git a/src/lib/pages/contract-details/components/tables/migration/MigrationMobileCard.tsx b/src/lib/pages/contract-details/components/tables/migration/MigrationMobileCard.tsx index df8851f09..c4afd397f 100644 --- a/src/lib/pages/contract-details/components/tables/migration/MigrationMobileCard.tsx +++ b/src/lib/pages/contract-details/components/tables/migration/MigrationMobileCard.tsx @@ -19,7 +19,7 @@ interface MigrationMobileCardProps { history: ContractMigrationHistory; } export const MigrationMobileCard = ({ history }: MigrationMobileCardProps) => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const getAddressType = useGetAddressType(); const cw2Info = getCw2Info(history.cw2Contract, history.cw2Version); const navigate = useInternalNavigate(); diff --git a/src/lib/pages/contract-details/components/tables/migration/MigrationRow.tsx b/src/lib/pages/contract-details/components/tables/migration/MigrationRow.tsx index bf3fd1a8d..4b41dfc08 100644 --- a/src/lib/pages/contract-details/components/tables/migration/MigrationRow.tsx +++ b/src/lib/pages/contract-details/components/tables/migration/MigrationRow.tsx @@ -16,7 +16,7 @@ export const MigrationRow = ({ templateColumns, history, }: MigrationRowProps) => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const getAddressType = useGetAddressType(); const cw2Info = getCw2Info(history.cw2Contract, history.cw2Version); diff --git a/src/lib/pages/contract-details/components/tables/migration/index.tsx b/src/lib/pages/contract-details/components/tables/migration/index.tsx index 4094ad7df..ea1c195f1 100644 --- a/src/lib/pages/contract-details/components/tables/migration/index.tsx +++ b/src/lib/pages/contract-details/components/tables/migration/index.tsx @@ -1,4 +1,4 @@ -import { useTierConfig } from "lib/app-provider"; +import { TierSwitcher } from "lib/components/TierSwitcher"; import type { BechAddr32, Option } from "lib/types"; import { MigrationTableFull } from "./MigrationTableFull"; @@ -16,17 +16,16 @@ export const MigrationTable = ({ scrollComponentId, totalData, refetchCount, -}: MigrationTableProps) => { - const isFullTier = useTierConfig() === "full"; - - return isFullTier ? ( - - ) : ( - - ); -}; +}: MigrationTableProps) => ( + + } + lite={} + /> +); diff --git a/src/lib/pages/contract-details/data.ts b/src/lib/pages/contract-details/data.ts index 90c2fe049..3b3afbeab 100644 --- a/src/lib/pages/contract-details/data.ts +++ b/src/lib/pages/contract-details/data.ts @@ -17,7 +17,7 @@ const useContractDataLcd = ( contractData: UseQueryResult, contractAddress: BechAddr32 ) => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const { data: code } = useCodeLcd( Number(contractData.data?.contract.codeId), diff --git a/src/lib/pages/home/index.tsx b/src/lib/pages/home/index.tsx index 669ea710d..a47d4a358 100644 --- a/src/lib/pages/home/index.tsx +++ b/src/lib/pages/home/index.tsx @@ -2,20 +2,19 @@ import { useRouter } from "next/router"; import { useEffect } from "react"; import { AmpEvent, track } from "lib/amplitude"; -import { useTierConfig } from "lib/app-provider"; +import { TierSwitcher } from "lib/components/TierSwitcher"; import { HomeFull } from "./full"; import { HomeLite } from "./lite"; const Home = () => { const router = useRouter(); - const tier = useTierConfig({ minTier: "lite" }); useEffect(() => { if (router.isReady) track(AmpEvent.TO_OVERVIEW); }, [router.isReady]); - return tier === "lite" ? : ; + return } lite={} />; }; export default Home; diff --git a/src/lib/pages/instantiate/instantiate.tsx b/src/lib/pages/instantiate/instantiate.tsx index 367da650c..3ec76a2b6 100644 --- a/src/lib/pages/instantiate/instantiate.tsx +++ b/src/lib/pages/instantiate/instantiate.tsx @@ -99,7 +99,7 @@ const Instantiate = ({ onComplete }: InstantiatePageProps) => { const { validateUserAddress, validateContractAddress } = useValidateAddress(); const getAttachFunds = useAttachFunds(); const { getSchemaByCodeHash } = useSchemaStore(); - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); // ------------------------------------------// // ------------------STATES------------------// diff --git a/src/lib/pages/migrate/index.tsx b/src/lib/pages/migrate/index.tsx index b54f97b4c..68bc5aa47 100644 --- a/src/lib/pages/migrate/index.tsx +++ b/src/lib/pages/migrate/index.tsx @@ -7,7 +7,6 @@ import { trackToMigrate } from "lib/amplitude"; import { useCurrentChain, useInternalNavigate, - useTierConfig, useWasmConfig, } from "lib/app-provider"; import { ConnectWalletAlert } from "lib/components/ConnectWalletAlert"; @@ -18,6 +17,7 @@ import { FooterCTA } from "lib/components/layouts"; import { Loading } from "lib/components/Loading"; import { CelatoneSeo } from "lib/components/Seo"; import { Stepper } from "lib/components/stepper"; +import { TierSwitcher } from "lib/components/TierSwitcher"; import WasmPageContainer from "lib/components/WasmPageContainer"; import { useUploadCode } from "lib/hooks"; import { useUploadAccessParamsLcd } from "lib/services/wasm/code"; @@ -41,7 +41,6 @@ const Migrate = () => { useWasmConfig({ shouldRedirect: true }); const router = useRouter(); const navigate = useInternalNavigate(); - const isFullTier = useTierConfig() === "full"; const { data: uploadAccessParams, isFetching } = useUploadAccessParamsLcd(); const { proceed, @@ -185,18 +184,21 @@ const Migrate = () => { subtitle="You need to connect your wallet to perform this action" /> {/* Select Migrate Contract modal */} - {isFullTier ? ( - - ) : ( - - )} + + } + lite={ + + } + /> {renderBody()} diff --git a/src/lib/pages/module-details/components/ModuleActions.tsx b/src/lib/pages/module-details/components/ModuleActions.tsx index a9297227e..c3ee7062b 100644 --- a/src/lib/pages/module-details/components/ModuleActions.tsx +++ b/src/lib/pages/module-details/components/ModuleActions.tsx @@ -32,7 +32,7 @@ export const ModuleActions = ({ allTxsCount, onSelectAction, }: ModuleActionsProps) => { - const isFulTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const actionList: ActionInfo[] = [ { @@ -61,7 +61,7 @@ export const ModuleActions = ({ count: allTxsCount, onClick: () => onSelectAction(TabIndex.TxsHistories), disabled: allTxsCount === 0, - hidden: !isFulTier, + hidden: !isFullTier, }, ]; diff --git a/src/lib/pages/module-details/components/ModuleInfoBody.tsx b/src/lib/pages/module-details/components/ModuleInfoBody.tsx index 242e1d3ae..4814cf51c 100644 --- a/src/lib/pages/module-details/components/ModuleInfoBody.tsx +++ b/src/lib/pages/module-details/components/ModuleInfoBody.tsx @@ -48,7 +48,7 @@ export const ModuleInfoBody = ({ indexedModule, modulePublishInfo, }: Omit) => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const { address, upgradePolicy } = indexedModule; return ( diff --git a/src/lib/pages/module-details/index.tsx b/src/lib/pages/module-details/index.tsx index 99c7b78ff..e18716c55 100644 --- a/src/lib/pages/module-details/index.tsx +++ b/src/lib/pages/module-details/index.tsx @@ -47,7 +47,7 @@ const ModuleDetailsBody = ({ const formatAddresses = useFormatAddresses(); const { hex: vmAddress } = formatAddresses(address); - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const currentTab = !isFullTier && tab === TabIndex.TxsHistories ? TabIndex.Overview : tab; diff --git a/src/lib/pages/past-txs/index.tsx b/src/lib/pages/past-txs/index.tsx index 026f584f2..9c366a582 100644 --- a/src/lib/pages/past-txs/index.tsx +++ b/src/lib/pages/past-txs/index.tsx @@ -2,20 +2,19 @@ import { useRouter } from "next/router"; import { useEffect } from "react"; import { AmpEvent, track } from "lib/amplitude"; -import { useTierConfig } from "lib/app-provider"; +import { TierSwitcher } from "lib/components/TierSwitcher"; import { PastTxsFull } from "./full"; import { PastTxsLite } from "./lite"; const PastTxs = () => { const router = useRouter(); - const isFullTier = useTierConfig() === "full"; useEffect(() => { if (router.isReady) track(AmpEvent.TO_PAST_TXS); }, [router.isReady]); - return isFullTier ? : ; + return } lite={} />; }; export default PastTxs; diff --git a/src/lib/pages/proposal-details/components/proposal-top/index.tsx b/src/lib/pages/proposal-details/components/proposal-top/index.tsx index 3755e61a1..e7ecf5470 100644 --- a/src/lib/pages/proposal-details/components/proposal-top/index.tsx +++ b/src/lib/pages/proposal-details/components/proposal-top/index.tsx @@ -18,7 +18,7 @@ interface ProposalTopProps { } export const ProposalTop = ({ proposalData }: ProposalTopProps) => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const isMobile = useMobile(); const isDepositOrVoting = diff --git a/src/lib/pages/proposal-details/components/vote-details/deposit-period/DepositPeriodSection.tsx b/src/lib/pages/proposal-details/components/vote-details/deposit-period/DepositPeriodSection.tsx index 3abaefa5d..a62fffad7 100644 --- a/src/lib/pages/proposal-details/components/vote-details/deposit-period/DepositPeriodSection.tsx +++ b/src/lib/pages/proposal-details/components/vote-details/deposit-period/DepositPeriodSection.tsx @@ -19,7 +19,7 @@ export const DepositPeriodSection = ({ isLoading, isDepositsLoading, }: ProposalOverviewProps) => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const isMobile = useMobile(); if (isLoading) return ; diff --git a/src/lib/pages/proposal-details/components/vote-details/voting-period/index.tsx b/src/lib/pages/proposal-details/components/vote-details/voting-period/index.tsx index ca3c00776..914698bea 100644 --- a/src/lib/pages/proposal-details/components/vote-details/voting-period/index.tsx +++ b/src/lib/pages/proposal-details/components/vote-details/voting-period/index.tsx @@ -53,7 +53,7 @@ const scrollComponentId = "voting-period"; export const VotingPeriod = ({ proposalData, ...props }: VoteDetailsProps) => { const isMobile = useMobile(); - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const gov = useGovConfig({ shouldRedirect: false }); const disableVotingPeriodTally = gov.enabled && gov.disableVotingPeriodTally; diff --git a/src/lib/pages/proposal-details/data.ts b/src/lib/pages/proposal-details/data.ts index 7c23a9bcf..407e75cf6 100644 --- a/src/lib/pages/proposal-details/data.ts +++ b/src/lib/pages/proposal-details/data.ts @@ -27,7 +27,7 @@ interface DerivedProposalDataResponse { export const useDerivedProposalData = ( id: number ): DerivedProposalDataResponse => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const { data: dataApi, isLoading: isApiLoading } = useProposalData( id, isFullTier diff --git a/src/lib/pages/proposals/components/ProposalStatusFilter.tsx b/src/lib/pages/proposals/components/ProposalStatusFilter.tsx index 4eddecb93..8a7069ffc 100644 --- a/src/lib/pages/proposals/components/ProposalStatusFilter.tsx +++ b/src/lib/pages/proposals/components/ProposalStatusFilter.tsx @@ -43,7 +43,7 @@ export const ProposalStatusFilter = forwardRef< const [isDropdown, setIsDropdown] = useState(false); const inputRef = useRef(null); const boxRef = useRef(null); - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const OPTIONS = isFullTier ? Object.values(ProposalStatus) diff --git a/src/lib/pages/proposals/index.tsx b/src/lib/pages/proposals/index.tsx index 793be3b82..ef81503ff 100644 --- a/src/lib/pages/proposals/index.tsx +++ b/src/lib/pages/proposals/index.tsx @@ -1,9 +1,10 @@ import { Flex, Heading } from "@chakra-ui/react"; -import { useGovConfig, useMobile, useTierConfig } from "lib/app-provider"; +import { useGovConfig, useMobile } from "lib/app-provider"; import { NewProposalButton } from "lib/components/button/NewProposalButton"; import PageContainer from "lib/components/PageContainer"; import { CelatoneSeo } from "lib/components/Seo"; +import { TierSwitcher } from "lib/components/TierSwitcher"; import { UserDocsLink } from "lib/components/UserDocsLink"; import { ProposalsTableFull } from "./components/ProposalsTableFull"; @@ -12,7 +13,6 @@ import { ProposalsTableLite } from "./components/ProposalsTableLite"; const Proposals = () => { useGovConfig({ shouldRedirect: true }); const isMobile = useMobile(); - const isFullTier = useTierConfig() === "full"; return ( @@ -29,7 +29,10 @@ const Proposals = () => { {!isMobile && } - {isFullTier ? : } + } + lite={} + /> ); }; diff --git a/src/lib/pages/validator-details/components/validator-overview/VotingPowerOverview.tsx b/src/lib/pages/validator-details/components/validator-overview/VotingPowerOverview.tsx index 478e0ef41..abbdfa413 100644 --- a/src/lib/pages/validator-details/components/validator-overview/VotingPowerOverview.tsx +++ b/src/lib/pages/validator-details/components/validator-overview/VotingPowerOverview.tsx @@ -96,7 +96,7 @@ export const VotingPowerOverview = ({ totalVotingPower, selfVotingPower, }: VotingPowerOverviewProps) => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const isMobile = useMobile(); const assetInfo = singleStakingDenom ? assetInfos?.[singleStakingDenom] diff --git a/src/lib/pages/validator-details/components/validator-overview/index.tsx b/src/lib/pages/validator-details/components/validator-overview/index.tsx index b056f1abb..c68aea3e8 100644 --- a/src/lib/pages/validator-details/components/validator-overview/index.tsx +++ b/src/lib/pages/validator-details/components/validator-overview/index.tsx @@ -42,7 +42,7 @@ export const ValidatorOverview = ({ totalVotingPower, selfVotingPower, }: ValidatorOverviewProps) => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const isMobile = useMobile(); return ( diff --git a/src/lib/pages/validator-details/index.tsx b/src/lib/pages/validator-details/index.tsx index 9a142030e..7fa883fe0 100644 --- a/src/lib/pages/validator-details/index.tsx +++ b/src/lib/pages/validator-details/index.tsx @@ -2,8 +2,9 @@ import { useRouter } from "next/router"; import { useEffect } from "react"; import { AmpEvent, track } from "lib/amplitude"; -import { useGovConfig, useTierConfig } from "lib/app-provider"; +import { useGovConfig } from "lib/app-provider"; import { InvalidState } from "lib/components/state"; +import { TierSwitcher } from "lib/components/TierSwitcher"; import { ValidatorDetailsBodyFull, @@ -14,7 +15,6 @@ import { zValidatorDetailsQueryParams } from "./types"; const ValidatorDetails = () => { const router = useRouter(); useGovConfig({ shouldRedirect: true }); - const isFullTier = useTierConfig() === "full"; const validated = zValidatorDetailsQueryParams.safeParse(router.query); @@ -29,13 +29,10 @@ const ValidatorDetails = () => { {!validated.success ? ( ) : ( - <> - {isFullTier ? ( - - ) : ( - - )} - + } + lite={} + /> )} ); diff --git a/src/lib/pages/validators/index.tsx b/src/lib/pages/validators/index.tsx index 8516e9f54..13a8df7e2 100644 --- a/src/lib/pages/validators/index.tsx +++ b/src/lib/pages/validators/index.tsx @@ -9,6 +9,7 @@ import PageContainer from "lib/components/PageContainer"; import { PageHeader } from "lib/components/PageHeader"; import PageHeaderContainer from "lib/components/PageHeaderContainer"; import { CelatoneSeo } from "lib/components/Seo"; +import { TierSwitcher } from "lib/components/TierSwitcher"; import { useDebounce } from "lib/hooks"; import { @@ -25,7 +26,7 @@ const SCROLL_COMPONENT_ID = "validator-table-header"; const Validators = () => { const router = useRouter(); const isMobile = useMobile(); - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); useGovConfig({ shouldRedirect: true }); const [isActive, setIsActive] = useState(true); @@ -86,29 +87,32 @@ const Validators = () => { - {isFullTier ? ( - - ) : ( - - )} + + } + lite={ + + } + /> ); diff --git a/src/lib/services/account/index.ts b/src/lib/services/account/index.ts index 8909e3f83..9ee98612f 100644 --- a/src/lib/services/account/index.ts +++ b/src/lib/services/account/index.ts @@ -19,7 +19,7 @@ import { getAccountDataLcd, getAccountTypeLcd } from "./lcd"; export const useAccountData = ( address: BechAddr ): UseQueryResult => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const apiEndpoint = useBaseApiRoute("accounts"); const lcdEndpoint = useLcdEndpoint(); const endpoint = isFullTier ? apiEndpoint : lcdEndpoint; diff --git a/src/lib/services/bank/index.ts b/src/lib/services/bank/index.ts index 78bf916e9..fff6a0cb7 100644 --- a/src/lib/services/bank/index.ts +++ b/src/lib/services/bank/index.ts @@ -25,7 +25,7 @@ import { getBalances } from "./api"; import { getBalancesLcd } from "./lcd"; export const useBalances = (address: BechAddr): UseQueryResult => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const apiEndpoint = useBaseApiRoute("accounts"); const lcdEndpoint = useLcdEndpoint(); const endpoint = isFullTier ? apiEndpoint : lcdEndpoint; diff --git a/src/lib/services/move/module/index.ts b/src/lib/services/move/module/index.ts index c056b5a41..ec2e967e5 100644 --- a/src/lib/services/move/module/index.ts +++ b/src/lib/services/move/module/index.ts @@ -83,7 +83,7 @@ export const useModulesByAddress = ({ onSuccess?: (data: AccountModulesResponse) => void; onError?: (err: AxiosError) => void; }) => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const apiEndpoint = useBaseApiRoute("accounts"); const lcdEndpoint = useLcdEndpoint(); const endpoint = isFullTier ? apiEndpoint : lcdEndpoint; diff --git a/src/lib/services/proposal/index.ts b/src/lib/services/proposal/index.ts index f44da51a5..bc2b58af2 100644 --- a/src/lib/services/proposal/index.ts +++ b/src/lib/services/proposal/index.ts @@ -52,14 +52,13 @@ import { } from "./lcd"; export const useProposalParams = () => { - const tier = useTierConfig(); + const { isFullTier } = useTierConfig(); const apiEndpoint = useBaseApiRoute("proposals"); const lcdEndpoint = useLcdEndpoint(); - const [endpoint, queryFn] = - tier === "full" - ? [apiEndpoint, getProposalParams] - : [lcdEndpoint, getProposalParamsLcd]; + const [endpoint, queryFn] = isFullTier + ? [apiEndpoint, getProposalParams] + : [lcdEndpoint, getProposalParamsLcd]; return useQuery>( [CELATONE_QUERY_KEYS.PROPOSAL_PARAMS, endpoint], @@ -223,14 +222,13 @@ export const useProposalDepositsLcd = (id: number, enabled = true) => { }; export const useProposalVotesInfo = (id: number, enabled: boolean) => { - const tier = useTierConfig(); + const { isFullTier } = useTierConfig(); const apiEndpoint = useBaseApiRoute("proposals"); const lcdEndpoint = useLcdEndpoint(); - const [endpoint, queryFn] = - tier === "full" - ? [apiEndpoint, getProposalVotesInfo] - : [lcdEndpoint, getProposalVotesInfoLcd]; + const [endpoint, queryFn] = isFullTier + ? [apiEndpoint, getProposalVotesInfo] + : [lcdEndpoint, getProposalVotesInfoLcd]; return useQuery( [CELATONE_QUERY_KEYS.PROPOSAL_VOTES_INFO, endpoint, id], diff --git a/src/lib/services/searchService.ts b/src/lib/services/searchService.ts index f9f1af23e..954e41e31 100644 --- a/src/lib/services/searchService.ts +++ b/src/lib/services/searchService.ts @@ -68,7 +68,7 @@ export const useSearchHandler = ( resetHandlerStates: () => void // eslint-disable-next-line sonarjs/cognitive-complexity ): SearchHandlerResponse => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const [debouncedKeyword, setDebouncedKeyword] = useState(keyword); const { chainConfig: { diff --git a/src/lib/services/tx/index.ts b/src/lib/services/tx/index.ts index 678b68802..e2b4f4f96 100644 --- a/src/lib/services/tx/index.ts +++ b/src/lib/services/tx/index.ts @@ -55,7 +55,7 @@ export const useTxData = ( enabled = true ): UseQueryResult => { const { currentChainId } = useCelatoneApp(); - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const apiEndpoint = useBaseApiRoute("txs"); const lcdEndpoint = useLcdEndpoint(); diff --git a/src/lib/services/validator/index.ts b/src/lib/services/validator/index.ts index 546636d37..39567509f 100644 --- a/src/lib/services/validator/index.ts +++ b/src/lib/services/validator/index.ts @@ -156,7 +156,7 @@ export const useValidatorDataLcd = ( }; export const useValidatorStakingProvisions = (enabled: boolean) => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const apiEndpoint = useBaseApiRoute("validators"); const lcdEndpoint = useLcdEndpoint(); const endpoint = isFullTier ? apiEndpoint : lcdEndpoint; diff --git a/src/lib/services/wasm/contract/index.ts b/src/lib/services/wasm/contract/index.ts index 41fb29221..bfeb9d5fc 100644 --- a/src/lib/services/wasm/contract/index.ts +++ b/src/lib/services/wasm/contract/index.ts @@ -143,7 +143,7 @@ export const useContractData = ( contractAddress: BechAddr32, options?: UseQueryOptions ) => { - const isFullTier = useTierConfig() === "full"; + const { isFullTier } = useTierConfig(); const apiEndpoint = useBaseApiRoute("contracts"); const lcdEndpoint = useLcdEndpoint(); const endpoint = isFullTier ? apiEndpoint : lcdEndpoint;