From 386db41db0cf62f2f0a0ff86ba2f02b255319c39 Mon Sep 17 00:00:00 2001 From: notV4l Date: Fri, 30 Aug 2024 01:17:20 +0200 Subject: [PATCH] use provider instead of wallet provider --- packages/keychain/src/components/Funding.tsx | 4 ++-- .../keychain/src/components/connect/SignupArgent.tsx | 7 ++++--- packages/keychain/src/utils/token.tsx | 11 ++++++----- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/packages/keychain/src/components/Funding.tsx b/packages/keychain/src/components/Funding.tsx index 1522e32a2..79bcb6589 100644 --- a/packages/keychain/src/components/Funding.tsx +++ b/packages/keychain/src/components/Funding.tsx @@ -324,14 +324,14 @@ function useTokens() { const checkFunds = useCallback(async () => { setIsFetching(true); - const checked = await updateBalance(tokens, controller.account as Account); + const checked = await updateBalance(tokens, controller.account.rpc, controller.address ); setTokens(checked); setIsFetching(false); if (!isChecked) { setIsChecked(true); } - }, [tokens, controller.account, isChecked]); + }, [tokens, controller, isChecked]); useInterval(checkFunds, 3000); diff --git a/packages/keychain/src/components/connect/SignupArgent.tsx b/packages/keychain/src/components/connect/SignupArgent.tsx index 0e701a0b0..a88f73248 100644 --- a/packages/keychain/src/components/connect/SignupArgent.tsx +++ b/packages/keychain/src/components/connect/SignupArgent.tsx @@ -24,10 +24,10 @@ import { useAccount, useConnect, useInjectedConnectors, + useProvider, voyager, } from "@starknet-react/core"; import { - Account, CallData, RpcProvider, cairo, @@ -365,6 +365,7 @@ function ExternalWalletProvider({ children }: PropsWithChildren) { function useTokens() { const { account: extAccount } = useAccount(); + const { provider } = useProvider(); const { controller, prefunds } = useConnection(); const [tokens, setTokens] = useState([]); const [isChecked, setIsChecked] = useState(false); @@ -379,14 +380,14 @@ function useTokens() { const checkFunds = useCallback(async () => { setIsFetching(true); - const checked = await updateBalance(tokens, extAccount as Account); + const checked = await updateBalance(tokens, provider, extAccount?.address); setTokens(checked); setIsFetching(false); if (!isChecked) { setIsChecked(true); } - }, [tokens, controller, isChecked, extAccount]); + }, [tokens, controller, isChecked, extAccount?.address]); useInterval(checkFunds, 3000); diff --git a/packages/keychain/src/utils/token.tsx b/packages/keychain/src/utils/token.tsx index d44e97590..ddd0a482d 100644 --- a/packages/keychain/src/utils/token.tsx +++ b/packages/keychain/src/utils/token.tsx @@ -3,7 +3,7 @@ import { EthereumIcon } from "@cartridge/ui"; import { Image } from "@chakra-ui/react"; import { formatEther } from "viem"; import { formatAddress } from "./contracts"; -import { Account, uint256 } from "starknet"; +import { ProviderInterface, uint256 } from "starknet"; export const ETH_CONTRACT_ADDRESS = "0x49d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7"; @@ -65,16 +65,17 @@ export async function fetchTokenInfo(prefunds: Prefund[]) { return tokens; } -export async function updateBalance(tokens: TokenInfo[], account: Account) { - if (!account) return tokens; +export async function updateBalance(tokens: TokenInfo[], provider: ProviderInterface, address: string) { + if (!provider) return tokens; const res = await Promise.allSettled( tokens.map(async (t) => { try { - let balance = await account.callContract({ + + let balance = await provider.callContract({ contractAddress: t.address, entrypoint: "balanceOf", - calldata: [account.address], + calldata: [address], }); /* @ts-ignore */