From d172219dc485cd3f57af7bb2be9c1a5746afd142 Mon Sep 17 00:00:00 2001 From: songwongtp <16089160+songwongtp@users.noreply.github.com> Date: Thu, 21 Dec 2023 15:00:22 +0700 Subject: [PATCH 1/3] feat: mahalo module verify --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 247a027c9..ca57ef4b2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -52,6 +52,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 - [#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 - [#682](https://github.com/alleslabs/celatone-frontend/pull/682) Render token amount < 0.000001 properly From 8ed20349e0e8665a58dae0a619676b5344f59775 Mon Sep 17 00:00:00 2001 From: songwongtp <16089160+songwongtp@users.noreply.github.com> Date: Thu, 21 Dec 2023 15:25:11 +0700 Subject: [PATCH 2/3] feat: push verify link --- src/config/chain/initia.ts | 3 +++ src/config/chain/types.ts | 1 + src/lib/components/module/ModuleSourceCode.tsx | 7 ++++++- src/lib/pages/module-details/index.tsx | 4 +++- src/lib/services/move/module.ts | 6 ++---- src/lib/services/move/moduleService.ts | 12 ++++++++---- 6 files changed, 23 insertions(+), 10 deletions(-) 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..07fa5be98 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); + return getModuleVerificationStatus(endpoint, address, moduleName); }, { enabled: Boolean(address && moduleName), @@ -155,6 +158,7 @@ export const useVerifyModule = ({ keepPreviousData: true, } ); +}; export const useFunctionView = ({ moduleAddress, From 11bb2f227eff5c553f024c373bf93cb0f0eb5464 Mon Sep 17 00:00:00 2001 From: songwongtp <16089160+songwongtp@users.noreply.github.com> Date: Thu, 21 Dec 2023 16:43:41 +0700 Subject: [PATCH 3/3] fix: comment --- src/lib/services/move/moduleService.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/services/move/moduleService.ts b/src/lib/services/move/moduleService.ts index 07fa5be98..293af8bb8 100644 --- a/src/lib/services/move/moduleService.ts +++ b/src/lib/services/move/moduleService.ts @@ -148,7 +148,7 @@ export const useVerifyModule = ({ return useQuery( [CELATONE_QUERY_KEYS.MODULE_VERIFICATION, endpoint, address, moduleName], () => { - if (!address || !moduleName) return null; + if (!endpoint || !address || !moduleName) return null; return getModuleVerificationStatus(endpoint, address, moduleName); }, {