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,