Skip to content

Commit

Permalink
feat(app): fetch balances
Browse files Browse the repository at this point in the history
normalize

query for wallet
  • Loading branch information
hussein-aitlahcen authored and cor committed Jun 7, 2024
1 parent 0acc7c6 commit e56617b
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 5 deletions.
4 changes: 4 additions & 0 deletions app/src/lib/constants/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,7 @@ export const CHAIN = {
NAME: sepolia.name
}
} satisfies Record<Chain, { ID: string; NAME: string }>

export const CHAIN_URLS = {
[CHAIN.UNION.ID]: URLS.UNION
}
31 changes: 31 additions & 0 deletions app/src/lib/queries/balance.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import * as v from "valibot"
import { KEY } from "$lib/constants/keys.ts"
import { CHAIN_URLS } from "$lib/constants";
import { formatUnits, type Address } from "viem"
import { getEvmTokensInfo } from "./token-info.ts"
import { createQuery } from "@tanstack/svelte-query"
import type { ChainId } from "$/lib/constants/assets.ts"
import { isValidEvmAddress } from "$lib/wallet/utilities/validate"
import { isValidCosmosAddress } from "$lib/wallet/utilities/validate";

/**
* TODO:
Expand Down Expand Up @@ -98,3 +100,32 @@ export function evmBalancesQuery({
}
})
}

export function cosmosBalancesQuery({
address,
chainId
}: {
address: string
chainId: string
}) {
return createQuery({
queryKey: [address, "balances", chainId],
enabled: isValidCosmosAddress(address),
refetchOnWindowFocus: false,
queryFn: async () => {
const restUrl = CHAIN_URLS[chainId].REST
const response = await fetch(
`${restUrl}/cosmos/bank/v1beta1/balances/${address}`,
)
if (!response.ok) return []
return (await response.json()).balances.map((x) => {
return {
address: x.denom,
symbol: x.denom,
balance: x.amount,
decimals: 0
}
})
}
})
}
21 changes: 16 additions & 5 deletions app/src/routes/balance/+page.svelte
Original file line number Diff line number Diff line change
@@ -1,16 +1,27 @@
<script lang="ts">
import { createQuery } from '@tanstack/svelte-query'
import { evmBalancesQuery } from '$lib/queries/balance'
import { cosmosBalancesQuery, evmBalancesQuery } from '$lib/queries/balance'
import { CHAIN_URLS } from '$lib/constants';
import { sepoliaStore } from "$lib/wallet/evm/config.ts"
import { cosmosStore } from "$lib/wallet/cosmos"
$: evmBalances = evmBalancesQuery({
address: '0x8478B37E983F520dBCB5d7D3aAD8276B82631aBd',
$: evmBalances = evmBalancesQuery({
chainId: '11155111',
address: $sepoliaStore.address,
tokenSpecification: 'erc20',
})
$: cosmosBalances = cosmosBalancesQuery({
chainId: 'union-testnet-8',
address: $cosmosStore.address
})
$: data = $evmBalances?.data || []
$: data1 = $cosmosBalances?.data || []
$: data2 = $evmBalances?.data || []
</script>

<main>
<pre>{JSON.stringify(data, undefined, 2)}</pre>
<pre>{JSON.stringify(data1, undefined, 2)}</pre>
<pre>{JSON.stringify(data2, undefined, 2)}</pre>
</main>

0 comments on commit e56617b

Please sign in to comment.