From d2b60be348c64d7ab9e3da0ba1dd3b05f55c9197 Mon Sep 17 00:00:00 2001 From: Yehor Podporinov <50983498+yehor-podporinov@users.noreply.github.com> Date: Thu, 8 Feb 2024 18:04:25 +0200 Subject: [PATCH] Fix/Provider (#22) * mock daily reward * creased updating interval for wallet-balances * updated use-contract composable * fix interval in use-pool composable * fix provider in use-contract * updated rpc urls --------- Co-authored-by: Yehor Podporinov --- src/common/WalletBalances.vue | 2 +- src/composables/use-contract.ts | 30 +++++++++++++++++++++--------- src/composables/use-pool.ts | 22 +++++----------------- src/enums/chains.enum.ts | 8 ++++---- 4 files changed, 31 insertions(+), 31 deletions(-) diff --git a/src/common/WalletBalances.vue b/src/common/WalletBalances.vue index 979dc95e..32ce4bd0 100644 --- a/src/common/WalletBalances.vue +++ b/src/common/WalletBalances.vue @@ -164,7 +164,7 @@ onMounted(() => { } catch (error) { ErrorHandler.process(error) } - }, 30000) + }, 5 * 60 * 1000) }) onBeforeUnmount(() => { diff --git a/src/composables/use-contract.ts b/src/composables/use-contract.ts index 11ff3364..ec90408c 100644 --- a/src/composables/use-contract.ts +++ b/src/composables/use-contract.ts @@ -1,8 +1,9 @@ -import { type ETHEREUM_RPC_URLS } from '@/enums' +import { ETHEREUM_CHAINS, ETHEREUM_RPC_URLS } from '@/enums' import { useWeb3ProvidersStore } from '@/store' import { factories } from '@/types' +import { config } from '@/config' import { providers } from 'ethers' -import { computed, ref, type ComputedRef, type Ref, unref } from 'vue' +import { computed, type ComputedRef, ref, type Ref, unref } from 'vue' type ContractFactoryKey = keyof typeof factories type ContractFactoryClass = @@ -36,13 +37,24 @@ export function useContract( const web3ProvidersStore = useWeb3ProvidersStore() - const provider: I['provider'] = computed(() => - rpcUrl - ? new providers.JsonRpcProvider(rpcUrl) - : new providers.Web3Provider( - web3ProvidersStore.provider.rawProvider as providers.ExternalProvider, - ), - ) + const provider: I['provider'] = computed(() => { + if ( + !rpcUrl || + (String(web3ProvidersStore.provider.chainId) === + (config.IS_MAINNET + ? ETHEREUM_CHAINS.ethereum + : ETHEREUM_CHAINS.sepolia) && + rpcUrl === + (config.IS_MAINNET + ? ETHEREUM_RPC_URLS.ethereum + : ETHEREUM_RPC_URLS.sepolia)) + ) + return new providers.Web3Provider( + web3ProvidersStore.provider.rawProvider as providers.ExternalProvider, + ) + + return new providers.JsonRpcProvider(rpcUrl) + }) const signer: I['signer'] = computed(() => provider.value.getSigner()) diff --git a/src/composables/use-pool.ts b/src/composables/use-pool.ts index 0b3be1cb..bbb685c8 100644 --- a/src/composables/use-pool.ts +++ b/src/composables/use-pool.ts @@ -86,22 +86,8 @@ export const usePool = (poolId: number) => { const fetchDailyReward = async (): Promise => { if (!poolData.value) throw new Error('poolData unavailable') - - if (currentTimestamp.value <= poolData.value.payoutStart.toNumber()) - return poolData.value.initialReward - - const decreaseIntervalTimestamp = poolData.value.decreaseInterval.toNumber() - - const startTimestamp = - currentTimestamp.value - - (currentTimestamp.value % decreaseIntervalTimestamp) - const endTimestamp = startTimestamp + decreaseIntervalTimestamp - - return erc1967Proxy.value.getPeriodReward( - poolId, - startTimestamp, - endTimestamp, - ) + // TODO: calculate daily reward + return poolData.value.initialReward } const fetchPoolData = async (): Promise => { @@ -240,7 +226,9 @@ export const usePool = (poolId: number) => { _currentUserRewardUpdateIntervalId = setInterval(async () => { if ( !web3ProvidersStore.isConnected || - !web3ProvidersStore.provider.selectedAddress + !web3ProvidersStore.provider.selectedAddress || + !web3ProvidersStore.isValidChain || + web3ProvidersStore.isAddingToken ) return diff --git a/src/enums/chains.enum.ts b/src/enums/chains.enum.ts index 030232a7..3dcc15ae 100644 --- a/src/enums/chains.enum.ts +++ b/src/enums/chains.enum.ts @@ -6,10 +6,10 @@ export enum ETHEREUM_CHAINS { } export enum ETHEREUM_RPC_URLS { - ethereum = 'https://mainnet.infura.io/v3/6a6dbd61d68f4101b0a40141e89a5936', - sepolia = 'https://sepolia.infura.io/v3/6a6dbd61d68f4101b0a40141e89a5936', - arbitrum = 'https://arbitrum-mainnet.infura.io/v3/6a6dbd61d68f4101b0a40141e89a5936', - arbitrumSepolia = 'https://arbitrum-sepolia.infura.io/v3/6a6dbd61d68f4101b0a40141e89a5936', + ethereum = 'https://eth.llamarpc.com', + sepolia = 'https://ethereum-sepolia.publicnode.com', + arbitrum = 'https://arbitrum-one.publicnode.com', + arbitrumSepolia = 'https://sepolia-rollup.arbitrum.io/rpc', } export enum ETHEREUM_EXPLORER_URLS {