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);
},
{