From 7d83e8c75623700c359aa3d0a2d2b01d506ad901 Mon Sep 17 00:00:00 2001 From: cor Date: Thu, 6 Jun 2024 20:34:17 +0200 Subject: [PATCH] fix(app): working balances query for evm --- app/src/lib/graphql/documents/transfers.ts | 20 +++++++++++ app/src/lib/queries/balance.ts | 39 ++++++++++++++-------- app/src/routes/+page.svelte | 28 ++++++++++++++++ app/src/routes/balance/+page.svelte | 4 +-- 4 files changed, 75 insertions(+), 16 deletions(-) create mode 100644 app/src/lib/graphql/documents/transfers.ts diff --git a/app/src/lib/graphql/documents/transfers.ts b/app/src/lib/graphql/documents/transfers.ts new file mode 100644 index 0000000000..f3d9eaaa76 --- /dev/null +++ b/app/src/lib/graphql/documents/transfers.ts @@ -0,0 +1,20 @@ +import { graphql } from "gql.tada" + +export const transfersQuery = graphql(/* GraphQL */ ` +query PacketsQuery($limit: Int = 100) { + v0_packets(limit: $limit, order_by: {destination_time: desc_nulls_last, source_time: desc_nulls_last}) { + from_chain_id + from_channel_id + source_port + source_block_hash + source_time + to_chain_id + to_channel_id + to_port_id + destination_block_hash + destination_time + source_data + status + } +} +`) diff --git a/app/src/lib/queries/balance.ts b/app/src/lib/queries/balance.ts index 288968007d..57cc1a967c 100644 --- a/app/src/lib/queries/balance.ts +++ b/app/src/lib/queries/balance.ts @@ -7,6 +7,7 @@ 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"; +import { raise } from "$lib/utilities/index.ts"; /** * TODO: @@ -66,7 +67,7 @@ export function evmBalancesQuery({ queryKey: ["balances", chainId, address], enabled: isValidEvmAddress(address), refetchOnWindowFocus: false, - refetchInterval: 1_000, + refetchInterval: 10_000, queryFn: async () => { const assetsToCheck = "contractAddresses" in restParams && Array.isArray(restParams.contractAddresses) @@ -75,18 +76,30 @@ export function evmBalancesQuery({ ["erc20", "DEFAULT_TOKENS"].includes(restParams.tokenSpecification) ? restParams.tokenSpecification // if tokenSpecification is a string, use it : "DEFAULT_TOKENS" - console.log(address, assetsToCheck) - const response = await fetch(`https://eth-sepolia.g.alchemy.com/v2/${KEY.RPC.ALCHEMY}`, { - method: "POST", - body: JSON.stringify({ - id: 1, - jsonrpc: "2.0", - method: "alchemy_getTokenBalances", - params: [address, assetsToCheck] - }) - }) - const result = v.safeParse(evmBalancesResponseSchema, await response.json()) - if (!result.success) throw new Error(`Error parsing result ${JSON.stringify(result.issues)}`); + + let json: undefined | unknown; + + try { + const response = await fetch(`https://eth-sepolia.g.alchemy.com/v2/${KEY.RPC.ALCHEMY}`, { + method: "POST", + body: JSON.stringify({ + id: 1, + jsonrpc: "2.0", + method: "alchemy_getTokenBalances", + params: [address, assetsToCheck] + }) + }); + if (!response.ok) raise("error fetching from alchemy: non-200 status"); + json = await response.json(); + } catch(err) { + if (err instanceof Error) { + raise(`error fetching from alchemy: ${err.message}`); + } + raise(`unknown error while fetching from alchemy: ${JSON.stringify(err)}`); + } + const result = v.safeParse(evmBalancesResponseSchema, json) + + if (!result.success) raise(`error parsing result ${JSON.stringify(result.issues)}`); const tokensInfo = await getEvmTokensInfo( result.output.result.tokenBalances.map(({ contractAddress }) => contractAddress) diff --git a/app/src/routes/+page.svelte b/app/src/routes/+page.svelte index a2dc83a4f6..419ac88dcd 100644 --- a/app/src/routes/+page.svelte +++ b/app/src/routes/+page.svelte @@ -1,7 +1,35 @@
+ + + Welcome to Union + + +

Connect an EVM and Cosmos wallet to begin bridging.

+ +
+ {#if $sepoliaStore.address } + ✅ EVM wallet {summarizeString($sepoliaStore.address, 6)} connected + {:else} + Connect EVM wallet + {/if} +
+
+ {#if $cosmosStore.address } + ✅Cosmos wallet connected + {:else} + Connect cosmos wallet + {/if} +
+
+
diff --git a/app/src/routes/balance/+page.svelte b/app/src/routes/balance/+page.svelte index ea42b9f72f..b1d9b98f4c 100644 --- a/app/src/routes/balance/+page.svelte +++ b/app/src/routes/balance/+page.svelte @@ -16,7 +16,6 @@ chainId: 'union-testnet-8', address: $cosmosStore.address }) - @@ -26,7 +25,7 @@ {#if $evmBalances.isLoading} Loading... {:else if $evmBalances.isError} - {$evmBalances.error.message} + Error: {$evmBalances.error.message} {:else if $evmBalances.isSuccess}
{#each $evmBalances.data as asset} @@ -37,7 +36,6 @@ {:else}

Connect your EVM wallet to continue

{/if} -