diff --git a/CHANGELOG.md b/CHANGELOG.md index 8df0ec51a..204c5bbe8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -53,6 +53,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Improvements +- [#692](https://github.com/alleslabs/celatone-frontend/pull/692) Add verify link for mahalo - [#675](https://github.com/alleslabs/celatone-frontend/pull/675) Make module links clickable with command/ctrl and add copier for struct names - [#674](https://github.com/alleslabs/celatone-frontend/pull/674) Adjust contract list card and microcopies - [#672](https://github.com/alleslabs/celatone-frontend/pull/672) Refactor balances diff --git a/src/config/chain/initia.ts b/src/config/chain/initia.ts index af4c99566..8a3c29113 100644 --- a/src/config/chain/initia.ts +++ b/src/config/chain/initia.ts @@ -26,6 +26,7 @@ export const INITIA_CHAIN_CONFIGS: ChainConfigs = { enabled: true, moduleMaxFileSize: 1_048_576, decodeApi: INITIA_DECODER, + verify: "https://compiler.mahalo-1.initia.xyz/contracts/verify", }, pool: { enabled: false, @@ -74,6 +75,7 @@ export const INITIA_CHAIN_CONFIGS: ChainConfigs = { enabled: true, moduleMaxFileSize: 1_048_576, decodeApi: INITIA_DECODER, + verify: "", }, pool: { enabled: false, @@ -171,6 +173,7 @@ export const INITIA_CHAIN_CONFIGS: ChainConfigs = { enabled: true, moduleMaxFileSize: 1_048_576, decodeApi: INITIA_DECODER, + verify: "https://stone-compiler.initia.tech/contracts/verify", }, pool: { enabled: false, diff --git a/src/config/chain/types.ts b/src/config/chain/types.ts index aecafcb09..83f520089 100644 --- a/src/config/chain/types.ts +++ b/src/config/chain/types.ts @@ -22,6 +22,7 @@ type MoveConfig = enabled: true; moduleMaxFileSize: number; decodeApi: string; + verify: string; } | { enabled: false }; diff --git a/src/lib/components/module/ModuleSourceCode.tsx b/src/lib/components/module/ModuleSourceCode.tsx index f15f77268..ddc478f23 100644 --- a/src/lib/components/module/ModuleSourceCode.tsx +++ b/src/lib/components/module/ModuleSourceCode.tsx @@ -38,7 +38,12 @@ export const ModuleSourceCode = ({ sourceCode }: ModuleSourceCodeProps) => { Module Source Code - + The source code is uploaded by the deployer and pulled from Initia API diff --git a/src/lib/pages/module-details/index.tsx b/src/lib/pages/module-details/index.tsx index a4bf27b2a..24b648479 100644 --- a/src/lib/pages/module-details/index.tsx +++ b/src/lib/pages/module-details/index.tsx @@ -1,4 +1,5 @@ import { Flex, Tabs, TabList, TabPanel, TabPanels } from "@chakra-ui/react"; +import { isUndefined } from "lodash"; import { useRouter } from "next/router"; import { useState, useCallback, useEffect } from "react"; @@ -185,7 +186,8 @@ export const ModuleDetailsBody = ({ moduleData }: ModuleDetailsBodyProps) => { viewFns={moduleData.viewFunctions.length} executeFns={moduleData.executeFunctions.length} allTxsCount={ - moduleTxsCount && moduleHistoriesCount + !isUndefined(moduleTxsCount) && + !isUndefined(moduleHistoriesCount) ? moduleTxsCount + moduleHistoriesCount : undefined } diff --git a/src/lib/services/move/module.ts b/src/lib/services/move/module.ts index 839dde26e..7b3615b5a 100644 --- a/src/lib/services/move/module.ts +++ b/src/lib/services/move/module.ts @@ -110,14 +110,12 @@ export interface ModuleVerificationInternal } export const getModuleVerificationStatus = async ( + endpoint: string, address: MoveAccountAddr, moduleName: string ): Promise> => - // TODO: move url to base api route? wait for celatone api implementation? axios - .get( - `https://stone-compiler.initia.tech/contracts/verify/${address}/${moduleName}` - ) + .get(`${endpoint}/${address}/${moduleName}`) .then(({ data }) => ({ ...snakeToCamel(data), moduleAddress: data.module_address, diff --git a/src/lib/services/move/moduleService.ts b/src/lib/services/move/moduleService.ts index 5ec742b2a..293af8bb8 100644 --- a/src/lib/services/move/moduleService.ts +++ b/src/lib/services/move/moduleService.ts @@ -141,12 +141,15 @@ export const useVerifyModule = ({ }: { address: Option; moduleName: Option; -}): UseQueryResult> => - useQuery( - [CELATONE_QUERY_KEYS.MODULE_VERIFICATION, address, moduleName], +}): UseQueryResult> => { + const move = useMoveConfig({ shouldRedirect: false }); + const endpoint = move.enabled ? move.verify : ""; + + return useQuery( + [CELATONE_QUERY_KEYS.MODULE_VERIFICATION, endpoint, address, moduleName], () => { - if (!address || !moduleName) return null; - return getModuleVerificationStatus(address, moduleName); + if (!endpoint || !address || !moduleName) return null; + return getModuleVerificationStatus(endpoint, address, moduleName); }, { enabled: Boolean(address && moduleName), @@ -155,6 +158,7 @@ export const useVerifyModule = ({ keepPreviousData: true, } ); +}; export const useFunctionView = ({ moduleAddress,