Skip to content

Commit

Permalink
Optimize calls (#41)
Browse files Browse the repository at this point in the history
* remove block checks

removed block checks where it wasn't necessary

* add block checks

Added block checks on market hooks useBalances and usePrices. I figure Balances should update if they have tokens come in from elsewhere, and Prices should update regularly.

* Change default RPC from Infura -> Ankr

Co-authored-by: Ben Clabby <[email protected]>
  • Loading branch information
Vitalsine85 and clabby authored May 24, 2022
1 parent db2dd29 commit 37578f2
Show file tree
Hide file tree
Showing 13 changed files with 20 additions and 34 deletions.
2 changes: 1 addition & 1 deletion src/bao/lib/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ export default {
networkId: 1,
defaultRpc: {
chainId: '0x1',
rpcUrls: ['https://mainnet.infura.io/v3/caf20378e5d149b88d43b9eacb902689'],
rpcUrls: ['https://rpc.ankr.com/eth'],
blockExplorerUrls: ['https://etherscan.io'],
chainName: 'Ethereum Mainnet',
nativeCurrency: {
Expand Down
9 changes: 4 additions & 5 deletions src/bao/lib/connectors.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,16 @@ import { WalletLinkConnector } from '@web3-react/walletlink-connector'
import { NetworkConnector } from '@web3-react/network-connector'

const RPC_URLS: { [chainId: number]: string } = {
1: 'https://mainnet.infura.io/v3/caf20378e5d149b88d43b9eacb902689'
1: 'https://rpc.ankr.com/eth'
}

export const injected = new InjectedConnector({ supportedChainIds: [1] })

export const network = new NetworkConnector({
urls: { 1: 'https://mainnet.infura.io/v3/caf20378e5d149b88d43b9eacb902689' },
urls: { 1: 'https://rpc.ankr.com/eth' },
defaultChainId: 1
})

export const walletConnect = new WalletConnectConnector({ rpc: { 1: 'https://mainnet.infura.io/v3/caf20378e5d149b88d43b9eacb902689' } })

export const coinbaseWallet = new WalletLinkConnector({ url: 'https://mainnet.infura.io/v3/caf20378e5d149b88d43b9eacb902689', appName: 'bao-ui', supportedChainIds: [1], })
export const walletConnect = new WalletConnectConnector({ rpc: { 1: 'https://rpc.ankr.com/eth' } })

export const coinbaseWallet = new WalletLinkConnector({ url: 'https://rpc.ankr.com/eth', appName: 'bao-ui', supportedChainIds: [1], })
4 changes: 1 addition & 3 deletions src/hooks/base/useAllowance.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,12 @@ import BigNumber from 'bignumber.js'
import { useCallback, useEffect, useState } from 'react'
import { getAllowance } from 'utils/erc20'
import { Contract } from 'web3-eth-contract'
import useBlock from './useBlock'
import useTransactionProvider from './useTransactionProvider'

const useAllowance = (lpContract: Contract) => {
const [allowance, setAllowance] = useState(new BigNumber(0))
const { account } = useWeb3React()
const { transactions } = useTransactionProvider()
const block = useBlock()

const fetchAllowance = useCallback(async () => {
const allowance = await getAllowance(
Expand All @@ -28,7 +26,7 @@ const useAllowance = (lpContract: Contract) => {
}
const refreshInterval = setInterval(fetchAllowance, 10000)
return () => clearInterval(refreshInterval)
}, [account, lpContract, transactions, block])
}, [account, lpContract, transactions])

return allowance
}
Expand Down
6 changes: 2 additions & 4 deletions src/hooks/base/useAllowancev2.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,12 @@ import { BigNumber } from 'bignumber.js'
import { useCallback, useEffect, useState } from 'react'
import { getAllowance } from 'utils/erc20'
import useBao from './useBao'
import useBlock from './useBlock'
import useTransactionProvider from './useTransactionProvider'

const useAllowancev2 = (tokenAddress: string, spenderAddress: string) => {
const { account } = useWeb3React()
const bao = useBao()
const { transactions } = useTransactionProvider()
const block = useBlock()

const [allowance, setAllowance] = useState<BigNumber | undefined>()

Expand All @@ -26,11 +24,11 @@ const useAllowancev2 = (tokenAddress: string, spenderAddress: string) => {
} catch (e) {
setAllowance(new BigNumber(0))
}
}, [bao, account, tokenAddress, spenderAddress, block, transactions])
}, [bao, account, tokenAddress, spenderAddress, transactions])

useEffect(() => {
_getAllowance()
}, [bao, account, tokenAddress, spenderAddress, block, transactions])
}, [bao, account, tokenAddress, spenderAddress, transactions])

return allowance
}
Expand Down
1 change: 0 additions & 1 deletion src/hooks/farms/useAllEarnings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import { getEarned, getFarms, getMasterChefContract } from 'bao/utils'
import BigNumber from 'bignumber.js'
import { useCallback, useEffect, useState } from 'react'
import { useWeb3React } from '@web3-react/core'
import { provider } from 'web3-core'
import useBao from '../base/useBao'
import useBlock from '../base/useBlock'

Expand Down
4 changes: 1 addition & 3 deletions src/hooks/farms/useAllStakedValue.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import {
getWethContract,
} from 'bao/utils'
import BigNumber from 'bignumber.js'
import useBlock from 'hooks/base/useBlock'
import useTransactionProvider from 'hooks/base/useTransactionProvider'
import { useCallback, useEffect, useState } from 'react'
import { getContract } from 'utils/erc20'
Expand All @@ -29,7 +28,6 @@ const useAllStakedValue = (): StakedValue[] => {
const masterChefContract = getMasterChefContract(bao)
const wethContract = getWethContract(bao)
const { transactions } = useTransactionProvider()
const block = useBlock()

const fetchAllStakedValue = useCallback(async () => {
const balances: Array<StakedValue> = await Promise.all(
Expand All @@ -52,7 +50,7 @@ const useAllStakedValue = (): StakedValue[] => {
if (account && masterChefContract && bao) {
fetchAllStakedValue()
}
}, [account, transactions, masterChefContract, setBalance, bao, block])
}, [account, transactions, masterChefContract, setBalance, bao])

return balances
}
Expand Down
4 changes: 1 addition & 3 deletions src/hooks/farms/useLockedEarnings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,12 @@ import BigNumber from 'bignumber.js'
import { useCallback, useEffect, useState } from 'react'
import { useWeb3React } from '@web3-react/core'
import useBao from '../base/useBao'
import useBlock from '../base/useBlock'

const useLockedEarnings = () => {
const [balance, setBalance] = useState(new BigNumber(0))
const { account, library } = useWeb3React()
const bao = useBao()
const baoContract = getBaoContract(bao)
const block = useBlock()

const fetchBalance = useCallback(async () => {
const balance = await getLockedEarned(baoContract, account)
Expand All @@ -21,7 +19,7 @@ const useLockedEarnings = () => {
if (account && baoContract && bao) {
fetchBalance()
}
}, [account, block, baoContract, setBalance, bao])
}, [account, baoContract, setBalance, bao])

return balance
}
Expand Down
4 changes: 1 addition & 3 deletions src/hooks/farms/useStakedBalance.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { useWeb3React } from '@web3-react/core'
import { getMasterChefContract, getStaked } from 'bao/utils'
import { BigNumber } from 'bignumber.js'
import useBlock from 'hooks/base/useBlock'
import useTransactionProvider from 'hooks/base/useTransactionProvider'
import { useCallback, useEffect, useState } from 'react'
import useBao from '../base/useBao'
Expand All @@ -12,7 +11,6 @@ const useStakedBalance = (pid: number) => {
const bao = useBao()
const masterChefContract = getMasterChefContract(bao)
const { transactions } = useTransactionProvider()
const block = useBlock()

let userBalance

Expand All @@ -27,7 +25,7 @@ const useStakedBalance = (pid: number) => {
if (account && bao) {
fetchBalance()
}
}, [account, pid, setBalance, transactions, bao, block])
}, [account, pid, setBalance, transactions, bao])

return balance.decimalPlaces(18)
}
Expand Down
4 changes: 3 additions & 1 deletion src/hooks/markets/useBalances.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { Contract } from 'web3-eth-contract'
import useBao from '../base/useBao'
import useTransactionProvider from '../base/useTransactionProvider'
import { useWeb3React } from '@web3-react/core'
import useBlock from 'hooks/base/useBlock'

export type Balance = {
address: string
Expand All @@ -17,6 +18,7 @@ export const useAccountBalances = (): Balance[] => {
const { transactions } = useTransactionProvider()
const bao = useBao()
const { account, library } = useWeb3React()
const block = useBlock()
const tokens = Config.markets.map(
(market) => market.underlyingAddresses[Config.networkId],
)
Expand Down Expand Up @@ -71,7 +73,7 @@ export const useAccountBalances = (): Balance[] => {
if (!(bao && account)) return

fetchBalances()
}, [transactions, bao, account])
}, [transactions, bao, account, block])

return balances
}
Expand Down
4 changes: 3 additions & 1 deletion src/hooks/markets/usePrices.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import Config from 'bao/lib/config'
import fetcher from 'bao/lib/fetcher'
import { SWR } from 'bao/lib/types'
import BigNumber from 'bignumber.js'
import useBlock from 'hooks/base/useBlock'
import { useCallback, useEffect, useState } from 'react'
import useSWR from 'swr'
import MultiCall from 'utils/multicall'
Expand Down Expand Up @@ -53,6 +54,7 @@ export const useMarketPrices = (): MarketPrices => {
const { transactions } = useTransactionProvider()
const bao = useBao()
const [prices, setPrices] = useState<undefined | { [key: string]: number }>()
const block = useBlock()

const fetchPrices = useCallback(async () => {
const tokens = Config.markets.map(
Expand Down Expand Up @@ -87,7 +89,7 @@ export const useMarketPrices = (): MarketPrices => {
useEffect(() => {
if (!bao) return
fetchPrices()
}, [transactions, bao])
}, [transactions, bao, block])

return {
prices,
Expand Down
7 changes: 2 additions & 5 deletions src/hooks/nft/useMint.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,13 @@ import {
getNFTWhitelistClaimed,
} from 'bao/utils'
import useBao from 'hooks/base/useBao'
import useBlock from 'hooks/base/useBlock'
import useTransactionProvider from 'hooks/base/useTransactionProvider'
import { useCallback, useEffect, useState } from 'react'

export const useElderClaimedCheck = () => {
const [isClaimed, setIsClaimed] = useState<any | undefined>()
const { account } = useWeb3React()
const bao = useBao()
const block = useBlock()
const { transactions } = useTransactionProvider()

const fetchWhitelistClaimed = useCallback(async () => {
Expand All @@ -28,7 +26,7 @@ export const useElderClaimedCheck = () => {
if (account && bao) {
fetchWhitelistClaimed()
}
}, [bao, account, block, transactions])
}, [bao, account, transactions])

return isClaimed
}
Expand All @@ -37,7 +35,6 @@ export const useBaoSwapClaimedCheck = () => {
const [isClaimed, setIsClaimed] = useState<any | undefined>()
const { account } = useWeb3React()
const bao = useBao()
const block = useBlock()
const { transactions } = useTransactionProvider()

const fetchWhitelistClaimed = useCallback(async () => {
Expand All @@ -52,7 +49,7 @@ export const useBaoSwapClaimedCheck = () => {
if (account && bao) {
fetchWhitelistClaimed()
}
}, [bao, account, block, transactions])
}, [bao, account, transactions])

return isClaimed
}
4 changes: 1 addition & 3 deletions src/views/Ballast/components/BallastSwapper.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import { BalanceInput } from 'components/Input'
import { SpinnerLoader } from 'components/Loader'
import Tooltipped from 'components/Tooltipped'
import useBao from 'hooks/base/useBao'
import useBlock from 'hooks/base/useBlock'
import useTokenBalance from 'hooks/base/useTokenBalance'
import useTransactionProvider from 'hooks/base/useTransactionProvider'
import React, { useCallback, useEffect, useState } from 'react'
Expand All @@ -24,7 +23,6 @@ const BallastSwapper: React.FC = () => {
const { transactions } = useTransactionProvider()
const [swapDirection, setSwapDirection] = useState(false) // false = DAI->baoUSD | true = baoUSD->DAI
const [inputVal, setInputVal] = useState('')
const block = useBlock()

const [reserves, setReserves] = useState<BigNumber | undefined>()
const [supplyCap, setSupplyCap] = useState<BigNumber | undefined>()
Expand Down Expand Up @@ -72,7 +70,7 @@ const BallastSwapper: React.FC = () => {
if (!bao) return

fetchBallastInfo()
}, [bao, transactions, block])
}, [bao, transactions])

const daiInput = (
<>
Expand Down
1 change: 0 additions & 1 deletion src/views/Markets/components/MarketList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,6 @@ export const OfflineMarketList: React.FC<MarketListProps> = ({
return _markets.filter((market) => market.isSynth)
}, [bao, _markets])

console.log(synthMarkets)
return (
<>
{collateralMarkets && synthMarkets ? (
Expand Down

0 comments on commit 37578f2

Please sign in to comment.