feat: track connected wallet provider calls to be replaced with BE/infura (#7197)
* feat: track connected wallet provider calls to be replaced with be/infura * update analytics events * wrap analytics events in useEffects * Update src/hooks/useContract.ts Co-authored-by: Jordan Frankfurt <jordanwfrankfurt@gmail.com> --------- Co-authored-by: Jordan Frankfurt <jordanwfrankfurt@gmail.com>
This commit is contained in:
parent
59db4c5b02
commit
ce8105bf08
@ -191,7 +191,7 @@
|
|||||||
"@sentry/types": "^7.45.0",
|
"@sentry/types": "^7.45.0",
|
||||||
"@types/react-window-infinite-loader": "^1.0.6",
|
"@types/react-window-infinite-loader": "^1.0.6",
|
||||||
"@uniswap/analytics": "^1.4.0",
|
"@uniswap/analytics": "^1.4.0",
|
||||||
"@uniswap/analytics-events": "^2.17.0",
|
"@uniswap/analytics-events": "^2.18.0",
|
||||||
"@uniswap/governance": "^1.0.2",
|
"@uniswap/governance": "^1.0.2",
|
||||||
"@uniswap/liquidity-staker": "^1.0.2",
|
"@uniswap/liquidity-staker": "^1.0.2",
|
||||||
"@uniswap/merkle-distributor": "^1.0.1",
|
"@uniswap/merkle-distributor": "^1.0.1",
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { Contract } from '@ethersproject/contracts'
|
import { Contract } from '@ethersproject/contracts'
|
||||||
|
import { InterfaceEventName } from '@uniswap/analytics-events'
|
||||||
import {
|
import {
|
||||||
ARGENT_WALLET_DETECTOR_ADDRESS,
|
ARGENT_WALLET_DETECTOR_ADDRESS,
|
||||||
ChainId,
|
ChainId,
|
||||||
@ -26,9 +27,10 @@ import ERC721_ABI from 'abis/erc721.json'
|
|||||||
import ERC1155_ABI from 'abis/erc1155.json'
|
import ERC1155_ABI from 'abis/erc1155.json'
|
||||||
import { ArgentWalletDetector, EnsPublicResolver, EnsRegistrar, Erc20, Erc721, Erc1155, Weth } from 'abis/types'
|
import { ArgentWalletDetector, EnsPublicResolver, EnsRegistrar, Erc20, Erc721, Erc1155, Weth } from 'abis/types'
|
||||||
import WETH_ABI from 'abis/weth.json'
|
import WETH_ABI from 'abis/weth.json'
|
||||||
|
import { sendAnalyticsEvent } from 'analytics'
|
||||||
import { RPC_PROVIDERS } from 'constants/providers'
|
import { RPC_PROVIDERS } from 'constants/providers'
|
||||||
import { WRAPPED_NATIVE_CURRENCY } from 'constants/tokens'
|
import { WRAPPED_NATIVE_CURRENCY } from 'constants/tokens'
|
||||||
import { useMemo } from 'react'
|
import { useEffect, useMemo } from 'react'
|
||||||
import { NonfungiblePositionManager, TickLens, UniswapInterfaceMulticall } from 'types/v3'
|
import { NonfungiblePositionManager, TickLens, UniswapInterfaceMulticall } from 'types/v3'
|
||||||
import { V3Migrator } from 'types/v3/V3Migrator'
|
import { V3Migrator } from 'types/v3/V3Migrator'
|
||||||
import { getContract } from 'utils'
|
import { getContract } from 'utils'
|
||||||
@ -145,11 +147,21 @@ export function useMainnetInterfaceMulticall() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function useV3NFTPositionManagerContract(withSignerIfPossible?: boolean): NonfungiblePositionManager | null {
|
export function useV3NFTPositionManagerContract(withSignerIfPossible?: boolean): NonfungiblePositionManager | null {
|
||||||
return useContract<NonfungiblePositionManager>(
|
const { account } = useWeb3React()
|
||||||
|
const contract = useContract<NonfungiblePositionManager>(
|
||||||
NONFUNGIBLE_POSITION_MANAGER_ADDRESSES,
|
NONFUNGIBLE_POSITION_MANAGER_ADDRESSES,
|
||||||
NFTPositionManagerABI,
|
NFTPositionManagerABI,
|
||||||
withSignerIfPossible
|
withSignerIfPossible
|
||||||
)
|
)
|
||||||
|
useEffect(() => {
|
||||||
|
if (contract && account) {
|
||||||
|
sendAnalyticsEvent(InterfaceEventName.WALLET_PROVIDER_USED, {
|
||||||
|
source: 'useV3NFTPositionManagerContract',
|
||||||
|
contract,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}, [account, contract])
|
||||||
|
return contract
|
||||||
}
|
}
|
||||||
|
|
||||||
export function useTickLens(): TickLens | null {
|
export function useTickLens(): TickLens | null {
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
import { arrayify } from '@ethersproject/bytes'
|
import { arrayify } from '@ethersproject/bytes'
|
||||||
import { parseBytes32String } from '@ethersproject/strings'
|
import { parseBytes32String } from '@ethersproject/strings'
|
||||||
|
import { InterfaceEventName } from '@uniswap/analytics-events'
|
||||||
import { ChainId, Currency, Token } from '@uniswap/sdk-core'
|
import { ChainId, Currency, Token } from '@uniswap/sdk-core'
|
||||||
import { useWeb3React } from '@web3-react/core'
|
import { useWeb3React } from '@web3-react/core'
|
||||||
|
import { sendAnalyticsEvent } from 'analytics'
|
||||||
import { asSupportedChain, isSupportedChain } from 'constants/chains'
|
import { asSupportedChain, isSupportedChain } from 'constants/chains'
|
||||||
import { useBytes32TokenContract, useTokenContract } from 'hooks/useContract'
|
import { useBytes32TokenContract, useTokenContract } from 'hooks/useContract'
|
||||||
import { NEVER_RELOAD, useSingleCallResult } from 'lib/hooks/multicall'
|
import { NEVER_RELOAD, useSingleCallResult } from 'lib/hooks/multicall'
|
||||||
import useNativeCurrency from 'lib/hooks/useNativeCurrency'
|
import useNativeCurrency from 'lib/hooks/useNativeCurrency'
|
||||||
import { useMemo } from 'react'
|
import { useEffect, useMemo } from 'react'
|
||||||
|
|
||||||
import { DEFAULT_ERC20_DECIMALS } from '../../constants/tokens'
|
import { DEFAULT_ERC20_DECIMALS } from '../../constants/tokens'
|
||||||
import { TOKEN_SHORTHANDS } from '../../constants/tokens'
|
import { TOKEN_SHORTHANDS } from '../../constants/tokens'
|
||||||
@ -83,6 +85,15 @@ export function useTokenFromMapOrNetwork(tokens: TokenMap, tokenAddress?: string
|
|||||||
const token: Token | undefined = address ? tokens[address] : undefined
|
const token: Token | undefined = address ? tokens[address] : undefined
|
||||||
const tokenFromNetwork = useTokenFromActiveNetwork(token ? undefined : address ? address : undefined)
|
const tokenFromNetwork = useTokenFromActiveNetwork(token ? undefined : address ? address : undefined)
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (tokenFromNetwork) {
|
||||||
|
sendAnalyticsEvent(InterfaceEventName.WALLET_PROVIDER_USED, {
|
||||||
|
source: 'useTokenFromActiveNetwork',
|
||||||
|
token: tokenFromNetwork,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}, [tokenFromNetwork])
|
||||||
|
|
||||||
return tokenFromNetwork ?? token
|
return tokenFromNetwork ?? token
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6177,10 +6177,10 @@
|
|||||||
"@typescript-eslint/types" "5.59.1"
|
"@typescript-eslint/types" "5.59.1"
|
||||||
eslint-visitor-keys "^3.3.0"
|
eslint-visitor-keys "^3.3.0"
|
||||||
|
|
||||||
"@uniswap/analytics-events@^2.17.0":
|
"@uniswap/analytics-events@^2.18.0":
|
||||||
version "2.17.0"
|
version "2.18.0"
|
||||||
resolved "https://registry.yarnpkg.com/@uniswap/analytics-events/-/analytics-events-2.17.0.tgz#cc0fab2737a673b740ba6d303f04eab365b1876e"
|
resolved "https://registry.yarnpkg.com/@uniswap/analytics-events/-/analytics-events-2.18.0.tgz#22d38adcbe9c18aec7109e562fd005c0e4082edc"
|
||||||
integrity sha512-8obHdI+YjfuFCcPH7XOqIDxYVMl30GSUBMZjTx9Ik5vZAXNFJpyOjBcb0aZbL5L6y3vzqkCR8HUpAgd3NuOBFA==
|
integrity sha512-raJP1/xLnunxLwu6XyM4kRJuuIb4aHFR5X9fAovpR6gllpbHicwdjPnjKR5Z8DAnFe5ClFBT0T/foyE5SU5oQQ==
|
||||||
|
|
||||||
"@uniswap/analytics@^1.4.0":
|
"@uniswap/analytics@^1.4.0":
|
||||||
version "1.4.0"
|
version "1.4.0"
|
||||||
|
Loading…
Reference in New Issue
Block a user