From 777f16fce7c011fbb7f1cc16825be1a656f31dac Mon Sep 17 00:00:00 2001 From: Sero <69639595+Seroxdesign@users.noreply.github.com> Date: Thu, 16 May 2024 06:10:36 -0400 Subject: [PATCH 1/2] needs clean up --- apps/frontend/pages/accounting.tsx | 2 + libs/dm-hooks/src/useAccountingV3.ts | 72 +++++++++++++++++++++++++++- 2 files changed, 73 insertions(+), 1 deletion(-) diff --git a/apps/frontend/pages/accounting.tsx b/apps/frontend/pages/accounting.tsx index 3fadd1db..2755ffd7 100644 --- a/apps/frontend/pages/accounting.tsx +++ b/apps/frontend/pages/accounting.tsx @@ -9,6 +9,7 @@ import { Tabs, } from '@raidguild/design-system'; import { + useAccountingV3, useAccountingV2, useFormattedData, useMemberList, @@ -35,6 +36,7 @@ export const Accounting = () => { } = useAccountingV2({ token, }); + const { data: dataFromMolochV3 } = useAccountingV3(); const { data: memberData } = useMemberList({ token, limit: 1000, diff --git a/libs/dm-hooks/src/useAccountingV3.ts b/libs/dm-hooks/src/useAccountingV3.ts index ff5f2d2d..b7d54726 100644 --- a/libs/dm-hooks/src/useAccountingV3.ts +++ b/libs/dm-hooks/src/useAccountingV3.ts @@ -1,4 +1,51 @@ -import { useState } from 'react'; +import { da } from 'date-fns/locale'; +import { useState, useEffect } from 'react'; + +import { getAddress } from 'viem'; + + +export const transformTokenBalances = ( + tokenBalanceRes: any, + safeAddress: string +): any => { + const fiatTotal = tokenBalanceRes.reduce( + (sum: number, balance: any): number => { + sum += Number(balance.fiatBalance); + return sum; + }, + 0 + ); + + return { safeAddress, tokenBalances: tokenBalanceRes, fiatTotal }; +}; + +export const listTokenBalances = async ({ + safeAddress, +}: { + safeAddress: string; +}): Promise => { + const url = 'https://safe-transaction-gnosis-chain.safe.global/api/v1' + + if (!url) { + return { + error: 'Error fetching token balances. Please try again.' + }; + } + + try { + const res = await fetch( + `${url}/safes/${safeAddress}/balances/usd/` + ); + const data = await res.json(); + console.log(data) + // + return { data: transformTokenBalances(data, safeAddress) }; + } catch (err) { + return { + error: 'Error fetching token balances. Please try again.' + }; + } +}; // this is a dummy hook const useAccountingV3 = () => { @@ -6,6 +53,29 @@ const useAccountingV3 = () => { const [loading, setLoading] = useState(true); const [error, setError] = useState(null); + useEffect(() => { + const fetchData = async () => { + const checksum = getAddress('0x181ebdb03cb4b54f4020622f1b0eacd67a8c63ac'); + console.log(checksum) + const { data, error } = await listTokenBalances({ + safeAddress: checksum, + }); + + if (error) { + setError(error); + console.log('error', error) + } else { + setData(data); + console.log('data', data); + } + + setLoading(false); + }; + + fetchData(); + console.log('fetching data', data); + }, []) + return { data: null, loading: false, error: null }; }; From a6308021ccc0cca91aa5d35fb129e1da4e9eadb6 Mon Sep 17 00:00:00 2001 From: growindiedev Date: Fri, 17 May 2024 08:57:21 +0530 Subject: [PATCH 2/2] cleaned up useAccountingV3 --- apps/frontend/pages/accounting.tsx | 1 + libs/dm-hooks/src/useAccountingV3.ts | 59 ++++++---------------------- 2 files changed, 14 insertions(+), 46 deletions(-) diff --git a/apps/frontend/pages/accounting.tsx b/apps/frontend/pages/accounting.tsx index 2755ffd7..70b69996 100644 --- a/apps/frontend/pages/accounting.tsx +++ b/apps/frontend/pages/accounting.tsx @@ -1,3 +1,4 @@ +/* eslint-disable simple-import-sort/imports */ import { Button, Flex, diff --git a/libs/dm-hooks/src/useAccountingV3.ts b/libs/dm-hooks/src/useAccountingV3.ts index b7d54726..9a2dd52b 100644 --- a/libs/dm-hooks/src/useAccountingV3.ts +++ b/libs/dm-hooks/src/useAccountingV3.ts @@ -1,53 +1,26 @@ -import { da } from 'date-fns/locale'; -import { useState, useEffect } from 'react'; - +import { useEffect, useState } from 'react'; import { getAddress } from 'viem'; +const API_URL = 'https://safe-transaction-gnosis-chain.safe.global/api/v1'; -export const transformTokenBalances = ( - tokenBalanceRes: any, - safeAddress: string -): any => { +const transformTokenBalances = (tokenBalanceRes, safeAddress: string) => { const fiatTotal = tokenBalanceRes.reduce( - (sum: number, balance: any): number => { - sum += Number(balance.fiatBalance); - return sum; - }, + (sum: number, balance) => sum + Number(balance.fiatBalance), 0 ); - return { safeAddress, tokenBalances: tokenBalanceRes, fiatTotal }; }; -export const listTokenBalances = async ({ - safeAddress, -}: { - safeAddress: string; -}): Promise => { - const url = 'https://safe-transaction-gnosis-chain.safe.global/api/v1' - - if (!url) { - return { - error: 'Error fetching token balances. Please try again.' - }; - } - +const listTokenBalances = async (safeAddress: string) => { try { - const res = await fetch( - `${url}/safes/${safeAddress}/balances/usd/` - ); + const res = await fetch(`${API_URL}/safes/${safeAddress}/balances/usd/`); const data = await res.json(); - console.log(data) - // return { data: transformTokenBalances(data, safeAddress) }; } catch (err) { - return { - error: 'Error fetching token balances. Please try again.' - }; + return { error: 'Error fetching token balances. Please try again.' }; } }; -// this is a dummy hook const useAccountingV3 = () => { const [data, setData] = useState(null); const [loading, setLoading] = useState(true); @@ -56,27 +29,21 @@ const useAccountingV3 = () => { useEffect(() => { const fetchData = async () => { const checksum = getAddress('0x181ebdb03cb4b54f4020622f1b0eacd67a8c63ac'); - console.log(checksum) - const { data, error } = await listTokenBalances({ - safeAddress: checksum, - }); + const response = await listTokenBalances(checksum); - if (error) { - setError(error); - console.log('error', error) + if (response.error) { + setError(response.error); } else { - setData(data); - console.log('data', data); + setData(response.data); } setLoading(false); }; fetchData(); - console.log('fetching data', data); - }, []) + }, []); - return { data: null, loading: false, error: null }; + return { data, loading, error }; }; export default useAccountingV3;