Compare commits

...

5 Commits

Author SHA1 Message Date
Zach Pomerantz
0b3b637d23
fix: allow wallets w/o mainnet to connect to WCv2 (#6852)
* build: rm unused deps

* fix: re-initialize wc connector with active chain

* test(e2e): fix universal-search flake
2023-06-28 14:18:33 -04:00
Vignesh Mohankumar
1a488503a7
chore: upgrade @walletconnect/modal (#6850)
* chore: upgrade @walletconnect/modal

* fix
2023-06-27 15:49:13 -04:00
Vignesh Mohankumar
518c66223a
chore: upgrade @web3-react/walletconnect-v2 (#6846) 2023-06-27 10:45:44 -04:00
UL Service Account
779ac64544 ci: add global CODEOWNERS 2023-06-26 20:01:39 +00:00
UL Service Account
6c842cef53 ci(t9n): download translations from crowdin 2023-06-26 20:01:39 +00:00
44 changed files with 115243 additions and 122 deletions

1
CODEOWNERS Normal file
View File

@ -0,0 +1 @@
@uniswap/web-admins

View File

@ -1,13 +1,7 @@
import { getTestSelector } from '../utils'
describe('Universal search bar', () => {
before(() => {
beforeEach(() => {
cy.visit('/')
cy.get('[data-cy="magnifying-icon"]')
.parent()
.then(($navIcon) => {
$navIcon.click()
})
cy.get('[data-cy="magnifying-icon"]').parent().eq(1).click()
})
it('should yield clickable result for regular token or nft collection search term', () => {
@ -19,20 +13,7 @@ describe('Universal search bar', () => {
.and('contain.text', '$')
.and('contain.text', '%')
cy.get('[data-cy="searchbar-token-row-UNI"]').first().click()
cy.get('div').contains('Uniswap').should('exist')
// Stats should have: TVL, 24H Volume, 52W low, 52W high.
cy.get(getTestSelector('token-details-stats')).should('exist')
cy.get(getTestSelector('token-details-stats')).within(() => {
cy.get('[data-cy="tvl"]').should('include.text', '$')
cy.get('[data-cy="volume-24h"]').should('include.text', '$')
cy.get('[data-cy="52w-low"]').should('include.text', '$')
cy.get('[data-cy="52w-high"]').should('include.text', '$')
})
// About section should have description of token.
cy.get(getTestSelector('token-details-about-section')).should('exist')
cy.contains('UNI is the governance token for Uniswap').should('exist')
cy.location('hash').should('equal', '#/tokens/ethereum/0x1f9840a85d5af5bf1d1762f925bdaddc4201f984')
})
it.skip('should show recent tokens and popular tokens with empty search term', () => {

View File

@ -186,6 +186,7 @@
"@visx/react-spring": "^2.12.2",
"@visx/responsive": "^2.10.0",
"@visx/shape": "^2.11.1",
"@walletconnect/modal": "^2.5.4",
"@web3-react/coinbase-wallet": "^8.2.0",
"@web3-react/core": "^8.2.0",
"@web3-react/eip1193": "^8.2.0",
@ -196,7 +197,7 @@
"@web3-react/types": "^8.2.0",
"@web3-react/url": "^8.2.0",
"@web3-react/walletconnect": "^8.2.0",
"@web3-react/walletconnect-v2": "^8.3.5",
"@web3-react/walletconnect-v2": "^8.3.6",
"ajv": "^8.11.0",
"ajv-formats": "^2.1.1",
"array.prototype.flat": "^1.2.4",

View File

@ -1,6 +1,7 @@
import { t, Trans } from '@lingui/macro'
import { TraceEvent } from '@uniswap/analytics'
import { BrowserEvent, InterfaceElementName, InterfaceEventName } from '@uniswap/analytics-events'
import { useWeb3React } from '@web3-react/core'
import { useAccountDrawer } from 'components/AccountDrawer'
import { ButtonEmphasis, ButtonSize, ThemeButton } from 'components/Button'
import Loader from 'components/Icons/LoadingSpinner'
@ -173,7 +174,8 @@ export default function Option({ connection }: OptionProps) {
const { activationState, tryActivation } = useActivationState()
const [wCPopoverOpen, setWCPopoverOpen] = useState(false)
const [accountDrawerOpen, toggleAccountDrawerOpen] = useAccountDrawer()
const activate = () => tryActivation(connection, toggleAccountDrawerOpen)
const { chainId } = useWeb3React()
const activate = () => tryActivation(connection, toggleAccountDrawerOpen, chainId)
useEffect(() => {
if (!accountDrawerOpen) setWCPopoverOpen(false)

View File

@ -10,7 +10,7 @@ import { TraceJsonRpcVariant, useTraceJsonRpcFlag } from 'featureFlags/flags/tra
import useEagerlyConnect from 'hooks/useEagerlyConnect'
import useOrderedConnections from 'hooks/useOrderedConnections'
import usePrevious from 'hooks/usePrevious'
import { ReactNode, useEffect, useMemo } from 'react'
import { ReactNode, useEffect, useMemo, useState } from 'react'
import { useLocation } from 'react-router-dom'
import { useConnectedWallets } from 'state/wallets/hooks'
import { getCurrentPageFromLocation } from 'utils/urlRoutes'
@ -20,7 +20,13 @@ export default function Web3Provider({ children }: { children: ReactNode }) {
const connections = useOrderedConnections()
const connectors: [Connector, Web3ReactHooks][] = connections.map(({ hooks, connector }) => [connector, hooks])
const key = useMemo(() => connections.map((connection) => connection.getName()).join('-'), [connections])
// Force a re-render when our connection state changes.
const [index, setIndex] = useState(0)
useEffect(() => setIndex((index) => index + 1), [connections])
const key = useMemo(
() => connections.map((connection) => connection.getName()).join('-') + index,
[connections, index]
)
return (
<Web3ReactProvider connectors={connectors} key={key}>

View File

@ -15,22 +15,21 @@ const RPC_URLS_WITHOUT_FALLBACKS = Object.entries(RPC_URLS).reduce(
}),
{}
)
const optionalChains = [...L1_CHAIN_IDS, ...L2_CHAIN_IDS].filter((x) => x !== SupportedChainId.MAINNET)
export class WalletConnectV2 extends WalletConnect {
ANALYTICS_EVENT = 'Wallet Connect QR Scan'
constructor({
actions,
onError,
defaultChainId,
qrcode = true,
}: Omit<WalletConnectConstructorArgs, 'options'> & { qrcode?: boolean }) {
onError,
}: Omit<WalletConnectConstructorArgs, 'options'> & { defaultChainId: number; qrcode?: boolean }) {
const darkmode = Boolean(window.matchMedia('(prefers-color-scheme: dark)'))
super({
actions,
options: {
projectId: process.env.REACT_APP_WALLET_CONNECT_PROJECT_ID as string,
optionalChains,
chains: [SupportedChainId.MAINNET],
chains: [defaultChainId],
optionalChains: [...L1_CHAIN_IDS, ...L2_CHAIN_IDS],
showQrModal: qrcode,
rpcMap: RPC_URLS_WITHOUT_FALLBACKS,
// as of 6/16/2023 there are no docs for `optionalMethods`
@ -47,8 +46,8 @@ export class WalletConnectV2 extends WalletConnect {
termsOfServiceUrl: undefined,
themeMode: darkmode ? 'dark' : 'light',
themeVariables: {
'--w3m-font-family': '"Inter custom", sans-serif',
'--w3m-z-index': Z_INDEX.modal.toString(),
'--wcm-font-family': '"Inter custom", sans-serif',
'--wcm-z-index': Z_INDEX.modal.toString(),
},
walletImages: undefined,
},
@ -70,7 +69,7 @@ export class UniwalletConnect extends WalletConnectV2 {
constructor({ actions, onError }: Omit<WalletConnectConstructorArgs, 'options'>) {
// disables walletconnect's proprietary qr code modal; instead UniwalletModal will listen for events to trigger our custom modal
super({ actions, qrcode: false, onError })
super({ actions, defaultChainId: SupportedChainId.MAINNET, qrcode: false, onError })
this.events.once(URI_AVAILABLE, () => {
this.provider?.events.on('disconnect', this.deactivate)

View File

@ -1,5 +1,8 @@
import { Web3ReactHooks } from '@web3-react/core'
import { Connector } from '@web3-react/types'
import { SupportedChainId } from 'constants/chains'
import { useAppDispatch, useAppSelector } from 'state/hooks'
import { updateSelectedWallet } from 'state/user/reducer'
import { createDeferredPromise } from 'test-utils/promise'
import { act, renderHook } from '../test-utils/render'
@ -35,6 +38,7 @@ function createMockConnection(
hooks: {} as unknown as Web3ReactHooks,
type,
shouldDisplay: () => true,
overrideActivate: jest.fn(),
connector: new MockConnector(activate, deactivate),
}
}
@ -54,18 +58,25 @@ it('Should call activate function on a connection', async () => {
const activationResponse = createDeferredPromise()
const mockConnection = createMockConnection(jest.fn().mockImplementation(() => activationResponse.promise))
renderHook(() => useAppDispatch()(updateSelectedWallet({ wallet: ConnectionType.INJECTED })))
const initialSelectedWallet = renderHook(() => useAppSelector((state) => state.user.selectedWallet))
expect(initialSelectedWallet.result.current).toBeDefined()
const result = renderHook(useActivationState).result
const onSuccess = jest.fn()
let activationCall: Promise<void> = new Promise(jest.fn())
act(() => {
activationCall = result.current.tryActivation(mockConnection, onSuccess)
activationCall = result.current.tryActivation(mockConnection, onSuccess, SupportedChainId.OPTIMISM)
})
expect(result.current.activationState).toEqual({ status: ActivationStatus.PENDING, connection: mockConnection })
expect(mockConnection.overrideActivate).toHaveBeenCalledWith(SupportedChainId.OPTIMISM)
expect(mockConnection.connector.activate).toHaveBeenCalledTimes(1)
expect(console.debug).toHaveBeenLastCalledWith(`Connection activating: ${mockConnection.getName()}`)
expect(onSuccess).toHaveBeenCalledTimes(0)
const pendingSelectedWallet = renderHook(() => useAppSelector((state) => state.user.selectedWallet))
expect(pendingSelectedWallet.result.current).toBeUndefined()
await act(async () => {
activationResponse.resolve()
@ -77,6 +88,8 @@ it('Should call activate function on a connection', async () => {
expect(console.debug).toHaveBeenLastCalledWith(`Connection activated: ${mockConnection.getName()}`)
expect(console.debug).toHaveBeenCalledTimes(2)
expect(onSuccess).toHaveBeenCalledTimes(1)
const finalSelectedWallet = renderHook(() => useAppSelector((state) => state.user.selectedWallet))
expect(finalSelectedWallet.result.current).toBeDefined()
})
it('Should properly deactivate pending connection attempts', async () => {

View File

@ -1,6 +1,7 @@
import { sendAnalyticsEvent } from '@uniswap/analytics'
import { InterfaceEventName, WalletConnectionResult } from '@uniswap/analytics-events'
import { Connection } from 'connection/types'
import { SupportedChainId } from 'constants/chains'
import { atom } from 'jotai'
import { useAtomValue, useUpdateAtom } from 'jotai/utils'
import { useCallback } from 'react'
@ -31,15 +32,16 @@ function useTryActivation() {
const currentPage = getCurrentPageFromLocation(pathname)
return useCallback(
async (connection: Connection, onSuccess: () => void) => {
async (connection: Connection, onSuccess: () => void, chainId?: SupportedChainId) => {
// Skips wallet connection if the connection should override the default
// behavior, i.e. install MetaMask or launch Coinbase app
if (connection.overrideActivate?.()) return
if (connection.overrideActivate?.(chainId)) return
try {
setActivationState({ status: ActivationStatus.PENDING, connection })
console.debug(`Connection activating: ${connection.getName()}`)
dispatch(updateSelectedWallet({ wallet: undefined }))
await connection.connector.activate()
console.debug(`Connection activated: ${connection.getName()}`)

View File

@ -3,7 +3,7 @@ import { initializeConnector } from '@web3-react/core'
import { GnosisSafe } from '@web3-react/gnosis-safe'
import { MetaMask } from '@web3-react/metamask'
import { Network } from '@web3-react/network'
import { Connector } from '@web3-react/types'
import { Actions, Connector } from '@web3-react/types'
import GNOSIS_ICON from 'assets/images/gnosis.png'
import UNISWAP_LOGO from 'assets/svg/logo.svg'
import COINBASE_ICON from 'assets/wallets/coinbase-icon.svg'
@ -82,17 +82,28 @@ export const walletConnectV1Connection: Connection = {
shouldDisplay: () => !getIsInjectedMobileBrowser(),
}
const [web3WalletConnectV2, web3WalletConnectV2Hooks] = initializeConnector<WalletConnectV2>(
(actions) => new WalletConnectV2({ actions, onError })
)
export const walletConnectV2Connection: Connection = {
getName: () => 'WalletConnect',
connector: web3WalletConnectV2,
hooks: web3WalletConnectV2Hooks,
type: ConnectionType.WALLET_CONNECT_V2,
getIcon: () => WALLET_CONNECT_ICON,
shouldDisplay: () => !getIsInjectedMobileBrowser(),
}
export const walletConnectV2Connection: Connection = new (class implements Connection {
private initializer = (actions: Actions, defaultChainId = SupportedChainId.MAINNET) =>
new WalletConnectV2({ actions, defaultChainId, onError })
type = ConnectionType.WALLET_CONNECT_V2
getName = () => 'WalletConnect'
getIcon = () => WALLET_CONNECT_ICON
shouldDisplay = () => !getIsInjectedMobileBrowser()
private _connector = initializeConnector<WalletConnectV2>(this.initializer)
overrideActivate = (chainId?: SupportedChainId) => {
// Always re-create the connector, so that the chainId is updated.
this._connector = initializeConnector((actions) => this.initializer(actions, chainId))
return false
}
get connector() {
return this._connector[0]
}
get hooks() {
return this._connector[1]
}
})()
const [web3UniwalletConnect, web3UniwalletConnectHooks] = initializeConnector<UniwalletConnect>(
(actions) => new UniwalletConnect({ actions, onError })
@ -133,7 +144,6 @@ const [web3CoinbaseWallet, web3CoinbaseWalletHooks] = initializeConnector<Coinba
onError,
})
)
const coinbaseWalletConnection: Connection = {
getName: () => 'Coinbase Wallet',
connector: web3CoinbaseWallet,

View File

@ -1,5 +1,6 @@
import { Web3ReactHooks } from '@web3-react/core'
import { Connector } from '@web3-react/types'
import { SupportedChainId } from 'constants/chains'
export enum ConnectionType {
UNISWAP_WALLET = 'UNISWAP_WALLET',
@ -21,6 +22,6 @@ export interface Connection {
type: ConnectionType
getIcon?(isDarkMode: boolean): string
shouldDisplay(): boolean
overrideActivate?: () => boolean
overrideActivate?: (chainId?: SupportedChainId) => boolean
isNew?: boolean
}

3488
src/locales/af-ZA.po Normal file

File diff suppressed because it is too large Load Diff

3488
src/locales/ar-SA.po Normal file

File diff suppressed because it is too large Load Diff

3488
src/locales/ca-ES.po Normal file

File diff suppressed because it is too large Load Diff

3488
src/locales/cs-CZ.po Normal file

File diff suppressed because it is too large Load Diff

3488
src/locales/da-DK.po Normal file

File diff suppressed because it is too large Load Diff

3488
src/locales/de-DE.po Normal file

File diff suppressed because it is too large Load Diff

3488
src/locales/el-GR.po Normal file

File diff suppressed because it is too large Load Diff

3488
src/locales/es-ES.po Normal file

File diff suppressed because it is too large Load Diff

3488
src/locales/fi-FI.po Normal file

File diff suppressed because it is too large Load Diff

3488
src/locales/fr-FR.po Normal file

File diff suppressed because it is too large Load Diff

3488
src/locales/he-IL.po Normal file

File diff suppressed because it is too large Load Diff

3489
src/locales/hu-HU.po Normal file

File diff suppressed because it is too large Load Diff

3488
src/locales/id-ID.po Normal file

File diff suppressed because it is too large Load Diff

3488
src/locales/it-IT.po Normal file

File diff suppressed because it is too large Load Diff

3488
src/locales/ja-JP.po Normal file

File diff suppressed because it is too large Load Diff

3488
src/locales/ko-KR.po Normal file

File diff suppressed because it is too large Load Diff

3488
src/locales/nl-NL.po Normal file

File diff suppressed because it is too large Load Diff

3488
src/locales/no-NO.po Normal file

File diff suppressed because it is too large Load Diff

3488
src/locales/pl-PL.po Normal file

File diff suppressed because it is too large Load Diff

3488
src/locales/pt-BR.po Normal file

File diff suppressed because it is too large Load Diff

3488
src/locales/pt-PT.po Normal file

File diff suppressed because it is too large Load Diff

3488
src/locales/ro-RO.po Normal file

File diff suppressed because it is too large Load Diff

3488
src/locales/ru-RU.po Normal file

File diff suppressed because it is too large Load Diff

3488
src/locales/sl-SI.po Normal file

File diff suppressed because it is too large Load Diff

3488
src/locales/sr-SP.po Normal file

File diff suppressed because it is too large Load Diff

3488
src/locales/sv-SE.po Normal file

File diff suppressed because it is too large Load Diff

3488
src/locales/sw-TZ.po Normal file

File diff suppressed because it is too large Load Diff

3488
src/locales/th-TH.po Normal file

File diff suppressed because it is too large Load Diff

3488
src/locales/tr-TR.po Normal file

File diff suppressed because it is too large Load Diff

3488
src/locales/uk-UA.po Normal file

File diff suppressed because it is too large Load Diff

3488
src/locales/vi-VN.po Normal file

File diff suppressed because it is too large Load Diff

3488
src/locales/zh-CN.po Normal file

File diff suppressed because it is too large Load Diff

3488
src/locales/zh-TW.po Normal file

File diff suppressed because it is too large Load Diff

140
yarn.lock
View File

@ -6157,10 +6157,10 @@
"@walletconnect/types" "^1.8.0"
"@walletconnect/utils" "^1.8.0"
"@walletconnect/core@2.8.3":
version "2.8.3"
resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-2.8.3.tgz#cd1942e49b09fc8fc97867da1853c3cda71013c9"
integrity sha512-uQG3XoGJscnxOWTO/W39QOXQszNpSbV8b/BFJoful9D1IUGeTracGc8FdKtNQFfvyhrx3gooZ+HwOK6QBirXzQ==
"@walletconnect/core@2.8.4":
version "2.8.4"
resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-2.8.4.tgz#fc207c8fa35a53e30012b0c85b6ca933cec7d955"
integrity sha512-3CQHud4As0kPRvlW1w/wSWS2F3yXlAo5kSEJyRWLRPqXG+aSCVWM8cVM8ch5yoeyNIfOHhEINdsYMuJG1+yIJQ==
dependencies:
"@walletconnect/heartbeat" "1.2.1"
"@walletconnect/jsonrpc-provider" "1.0.13"
@ -6173,8 +6173,8 @@
"@walletconnect/relay-auth" "^1.0.4"
"@walletconnect/safe-json" "^1.0.2"
"@walletconnect/time" "^1.0.2"
"@walletconnect/types" "2.8.3"
"@walletconnect/utils" "2.8.3"
"@walletconnect/types" "2.8.4"
"@walletconnect/utils" "2.8.4"
events "^3.3.0"
lodash.isequal "4.5.0"
uint8arrays "^3.1.0"
@ -6228,19 +6228,19 @@
eip1193-provider "1.0.1"
eventemitter3 "4.0.7"
"@walletconnect/ethereum-provider@^2.8.3":
version "2.8.3"
resolved "https://registry.yarnpkg.com/@walletconnect/ethereum-provider/-/ethereum-provider-2.8.3.tgz#c00befd921933be21f1fcc12e3b745299f9c9248"
integrity sha512-OdD1G7xWAqJy2G/C5uoLHNw6oPs3+epXjt1J0WF8984f34GBse7iCCC6vB3ImvtzO2Jc/B08LUUnATdyDMxYMw==
"@walletconnect/ethereum-provider@^2.8.4":
version "2.8.4"
resolved "https://registry.yarnpkg.com/@walletconnect/ethereum-provider/-/ethereum-provider-2.8.4.tgz#c627c237b479194efc542b8475596bae12fde52d"
integrity sha512-z7Yz4w8t3eEFv8vQ8DLCgDWPah2aIIyC0iQdwhXgJenQTVuz7JJZRrJUUntzudipHK/owA394c1qTPF0rsMSeQ==
dependencies:
"@walletconnect/jsonrpc-http-connection" "^1.0.7"
"@walletconnect/jsonrpc-provider" "^1.0.13"
"@walletconnect/jsonrpc-types" "^1.0.3"
"@walletconnect/jsonrpc-utils" "^1.0.8"
"@walletconnect/sign-client" "2.8.3"
"@walletconnect/types" "2.8.3"
"@walletconnect/universal-provider" "2.8.3"
"@walletconnect/utils" "2.8.3"
"@walletconnect/sign-client" "2.8.4"
"@walletconnect/types" "2.8.4"
"@walletconnect/universal-provider" "2.8.4"
"@walletconnect/utils" "2.8.4"
events "^3.3.0"
"@walletconnect/events@^1.0.1":
@ -6337,13 +6337,31 @@
resolved "https://registry.npmjs.org/@walletconnect/mobile-registry/-/mobile-registry-1.4.0.tgz"
integrity sha512-ZtKRio4uCZ1JUF7LIdecmZt7FOLnX72RPSY7aUVu7mj7CSfxDwUn6gBuK6WGtH+NZCldBqDl5DenI5fFSvkKYw==
"@walletconnect/modal@^2.4.5":
version "2.4.5"
resolved "https://registry.yarnpkg.com/@walletconnect/modal/-/modal-2.4.5.tgz#bfdf6110a7f09c709fc5af19e576a28e6bba1d6e"
integrity sha512-t+sII7GIMsKDr0wvSJxzlpcbxw35WthuVpAqPlzMS7roSPmQZT18KO8Iu4ccLkNZF+ioptRTpBUKtk2eeuaqlQ==
"@walletconnect/modal-core@2.5.4":
version "2.5.4"
resolved "https://registry.yarnpkg.com/@walletconnect/modal-core/-/modal-core-2.5.4.tgz#7d739a90a9cf103067eea46507ea649e8dada436"
integrity sha512-ISe4LqmEDFU7b6rLgonqaEtMXzG6ko13HA7S8Ty3d7GgfAEe29LM1dq3zo8ehEOghhofhj1PiiNfvaogZKzT1g==
dependencies:
"@web3modal/core" "2.4.5"
"@web3modal/ui" "2.4.5"
buffer "6.0.3"
valtio "1.10.6"
"@walletconnect/modal-ui@2.5.4":
version "2.5.4"
resolved "https://registry.yarnpkg.com/@walletconnect/modal-ui/-/modal-ui-2.5.4.tgz#0433fb0226dd47e17fede620c5a5ff332baed155"
integrity sha512-5qLLjwbE3YC4AsCVhf8J87otklkApcQ5DCMykOcS0APPv8lKQ46JxpQhfWwRYaUkuIiHonI9h1YxFARDkoaI9g==
dependencies:
"@walletconnect/modal-core" "2.5.4"
lit "2.7.5"
motion "10.16.2"
qrcode "1.5.3"
"@walletconnect/modal@^2.4.5", "@walletconnect/modal@^2.5.4":
version "2.5.4"
resolved "https://registry.yarnpkg.com/@walletconnect/modal/-/modal-2.5.4.tgz#66659051f9c0f35c151d3a8d940f8c64d42fab74"
integrity sha512-JAKMcCd4JQvSEr7pNitg3OBke4DN1JyaQ7bdi3x4T7oLgOr9Y88qdkeOXko/0aJonDHJsM88hZ10POQWmKfEMA==
dependencies:
"@walletconnect/modal-core" "2.5.4"
"@walletconnect/modal-ui" "2.5.4"
"@walletconnect/qrcode-modal@^1.8.0":
version "1.8.0"
@ -6398,19 +6416,19 @@
dependencies:
tslib "1.14.1"
"@walletconnect/sign-client@2.8.3":
version "2.8.3"
resolved "https://registry.yarnpkg.com/@walletconnect/sign-client/-/sign-client-2.8.3.tgz#2476716cfaed921a80a93e4342124105e5a1f720"
integrity sha512-fOlyZfzV4xJO0CDCMrQ3hw4bIuboncqVpJ0BgTF5yQtKklv+5pEqlFnhU8GN2rE6GThU1zyPQNibT/jRG7lCAw==
"@walletconnect/sign-client@2.8.4":
version "2.8.4"
resolved "https://registry.yarnpkg.com/@walletconnect/sign-client/-/sign-client-2.8.4.tgz#35e7cfe9442c65d7f667a7c20f1a5ee7e2a6e576"
integrity sha512-eRvWtKBAgzo/rbIkw+rkKco2ulSW8Wor/58UsOBsl9DKr1rIazZd4ZcUdaTjg9q8AT1476IQakCAIuv+1FvJwQ==
dependencies:
"@walletconnect/core" "2.8.3"
"@walletconnect/core" "2.8.4"
"@walletconnect/events" "^1.0.1"
"@walletconnect/heartbeat" "1.2.1"
"@walletconnect/jsonrpc-utils" "1.0.8"
"@walletconnect/logger" "^2.0.1"
"@walletconnect/time" "^1.0.2"
"@walletconnect/types" "2.8.3"
"@walletconnect/utils" "2.8.3"
"@walletconnect/types" "2.8.4"
"@walletconnect/utils" "2.8.4"
events "^3.3.0"
"@walletconnect/signer-connection@^1.8.0":
@ -6441,10 +6459,10 @@
dependencies:
tslib "1.14.1"
"@walletconnect/types@2.8.3", "@walletconnect/types@^2.8.1":
version "2.8.3"
resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-2.8.3.tgz#2a389458ebda56b4119231579e1b37b0fe24f981"
integrity sha512-crZ5IfWEp+ctygfDNifzB68sVWKwfLMiF7GZuoOzKJuFYbXtcNjtpmFdAd3cPT+a8L30XMgv0shEdIHTj2JglQ==
"@walletconnect/types@2.8.4", "@walletconnect/types@^2.8.1":
version "2.8.4"
resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-2.8.4.tgz#23fad8593b094c7564d72f179e33b1cac9324a88"
integrity sha512-Fgqe87R7rjMOGSvx28YPLTtXM6jj+oUOorx8cE+jEw2PfpWp5myF21aCdaMBR39h0QHij5H1Z0/W9e7gm4oC1Q==
dependencies:
"@walletconnect/events" "^1.0.1"
"@walletconnect/heartbeat" "1.2.1"
@ -6458,25 +6476,25 @@
resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.8.0.tgz#3f5e85b2d6b149337f727ab8a71b8471d8d9a195"
integrity sha512-Cn+3I0V0vT9ghMuzh1KzZvCkiAxTq+1TR2eSqw5E5AVWfmCtECFkVZBP6uUJZ8YjwLqXheI+rnjqPy7sVM4Fyg==
"@walletconnect/universal-provider@2.8.3":
version "2.8.3"
resolved "https://registry.yarnpkg.com/@walletconnect/universal-provider/-/universal-provider-2.8.3.tgz#769c9e613a84267145620bc8cb2c2bd2d8d9c14e"
integrity sha512-HW1u23Ridjq+LG1mb+nsH31lPa4/th5kFpWuBem9n6FeZNIpoWbbGQUhU3Q5snyMccD1Vxgvxv1xC2KMUwbXTA==
"@walletconnect/universal-provider@2.8.4":
version "2.8.4"
resolved "https://registry.yarnpkg.com/@walletconnect/universal-provider/-/universal-provider-2.8.4.tgz#7b62a76a7d99ea41c67374da54aaa4f1b4bc1d03"
integrity sha512-JRpOXKIciRMzd03zZxM1WDsYHo/ZS86zZrZ1aCHW1d45ZLP7SbGPRHzZgBY3xrST26yTvWIlRfTUEYn50fzB1g==
dependencies:
"@walletconnect/jsonrpc-http-connection" "^1.0.7"
"@walletconnect/jsonrpc-provider" "1.0.13"
"@walletconnect/jsonrpc-types" "^1.0.2"
"@walletconnect/jsonrpc-utils" "^1.0.7"
"@walletconnect/logger" "^2.0.1"
"@walletconnect/sign-client" "2.8.3"
"@walletconnect/types" "2.8.3"
"@walletconnect/utils" "2.8.3"
"@walletconnect/sign-client" "2.8.4"
"@walletconnect/types" "2.8.4"
"@walletconnect/utils" "2.8.4"
events "^3.3.0"
"@walletconnect/utils@2.8.3":
version "2.8.3"
resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-2.8.3.tgz#32d3111f1638e45663cf8b65c6d3af28cf5591d5"
integrity sha512-PwNEj/kGO7J7ZyrAaVqYkASLBG77qDE/+6JPX11GAucSy2wac92WefLjfVsPLNPwiNmYiV1eGbxzR3KCdlnrLA==
"@walletconnect/utils@2.8.4":
version "2.8.4"
resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-2.8.4.tgz#8dbd3beaef39388be2398145a5f9a061a0317518"
integrity sha512-NGw6BINYNeT9JrQrnxldAPheO2ymRrwGrgfExZMyrkb1MShnIX4nzo4KirKInM4LtrY6AA/v0Lu3ooUdfO+xIg==
dependencies:
"@stablelib/chacha20poly1305" "1.0.1"
"@stablelib/hkdf" "1.0.1"
@ -6486,7 +6504,7 @@
"@walletconnect/relay-api" "^1.0.9"
"@walletconnect/safe-json" "^1.0.2"
"@walletconnect/time" "^1.0.2"
"@walletconnect/types" "2.8.3"
"@walletconnect/types" "2.8.4"
"@walletconnect/window-getters" "^1.0.1"
"@walletconnect/window-metadata" "^1.0.1"
detect-browser "5.3.0"
@ -6615,12 +6633,12 @@
"@ethersproject/providers" "^5"
"@web3-react/types" "^8.2.0"
"@web3-react/walletconnect-v2@^8.3.5":
version "8.3.5"
resolved "https://registry.yarnpkg.com/@web3-react/walletconnect-v2/-/walletconnect-v2-8.3.5.tgz#310fad7da378d2350a44a3d67b3a98368175f17f"
integrity sha512-8OE8XSAM3uamQAMt+SZHX+ichgZ6Ds/oKsckn+HY+TDNiduYLCBG/isiYKAxdIq8qXjdAkV7g2ek2fLAQOud3Q==
"@web3-react/walletconnect-v2@^8.3.6":
version "8.3.6"
resolved "https://registry.yarnpkg.com/@web3-react/walletconnect-v2/-/walletconnect-v2-8.3.6.tgz#8f9e561ba3fa7dd15c56bec7ee1de066857f07b1"
integrity sha512-8N01Rns+Ey203D60TAj0iN4LOPsllvdY+8fl8ev+1NaPlgOtF3KrasPrFJ/5ZmVF31jBQYo2kC/X3OITBBnHDA==
dependencies:
"@walletconnect/ethereum-provider" "^2.8.3"
"@walletconnect/ethereum-provider" "^2.8.4"
"@walletconnect/modal" "^2.4.5"
"@web3-react/types" "^8.2.0"
eventemitter3 "^4.0.7"
@ -6634,24 +6652,6 @@
"@web3-react/types" "^8.2.0"
eventemitter3 "^4.0.7"
"@web3modal/core@2.4.5":
version "2.4.5"
resolved "https://registry.yarnpkg.com/@web3modal/core/-/core-2.4.5.tgz#506161e37b8431fc8d605aed7a73d93e3f8ee7b4"
integrity sha512-iulOIW2irVaq+xWTzzM2xbRI4TCR0yTnV2Yz+ifIFl+r3OF3ZOC1jsy4jJnKL7/6e7p4NmmKJk0/w951KzCF5g==
dependencies:
buffer "6.0.3"
valtio "1.10.5"
"@web3modal/ui@2.4.5":
version "2.4.5"
resolved "https://registry.yarnpkg.com/@web3modal/ui/-/ui-2.4.5.tgz#bd388faeafd9abf72abffc85613b3d7038adcf14"
integrity sha512-LvGjGL7vyQrUrrQOtFAK0SyxJs1yozOnJjP7s7gWXJa7wFWCE+kVjrhE8VrKbwx7nHe78IFA1rs7V1ncCirqVQ==
dependencies:
"@web3modal/core" "2.4.5"
lit "2.7.5"
motion "10.16.2"
qrcode "1.5.3"
"@webassemblyjs/ast@1.11.5", "@webassemblyjs/ast@^1.11.5":
version "1.11.5"
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.5.tgz#6e818036b94548c1fb53b754b5cae3c9b208281c"
@ -19117,10 +19117,10 @@ v8-to-istanbul@^8.1.0:
convert-source-map "^1.6.0"
source-map "^0.7.3"
valtio@1.10.5:
version "1.10.5"
resolved "https://registry.yarnpkg.com/valtio/-/valtio-1.10.5.tgz#7852125e3b774b522827d96bd9c76d285c518678"
integrity sha512-jTp0k63VXf4r5hPoaC6a6LCG4POkVSh629WLi1+d5PlajLsbynTMd7qAgEiOSPxzoX5iNvbN7iZ/k/g29wrNiQ==
valtio@1.10.6:
version "1.10.6"
resolved "https://registry.yarnpkg.com/valtio/-/valtio-1.10.6.tgz#80ed00198b949939863a0fa56ae687abb417fc4f"
integrity sha512-SxN1bHUmdhW6V8qsQTpCgJEwp7uHbntuH0S9cdLQtiohuevwBksbpXjwj5uDMA7bLwg1WKyq9sEpZrx3TIMrkA==
dependencies:
proxy-compare "2.5.1"
use-sync-external-store "1.2.0"