diff --git a/config/rpc.ts b/config/rpc.ts index 7782ecf16..640ac0896 100644 --- a/config/rpc.ts +++ b/config/rpc.ts @@ -17,15 +17,15 @@ export const useGetRpcUrlByChainId = () => { return useCallback( (chainId: CHAINS) => { - // Needs this condition 'cause in 'providers/web3.tsx' we add `wagmiChains.polygonMumbai` to supportedChains - // so, here chainId = 80001 is arriving which to raises an invariant - // chainId = 1 we need anytime! + // This condition is needed because in 'providers/web3.tsx' we add `wagmiChains.polygonMumbai` to supportedChains as a workaround. + // polygonMumbai (80001) may cause an invariant throwing. + // And we always need Mainnet RPC for some requests, e.g. ETH to USD price, ENS lookup. if ( chainId !== CHAINS.Mainnet && !clientConfig.supportedChainIds.includes(chainId) ) { // Has no effect on functionality. Just a fix. - // Return empty string as stub + // Return empty string as a stub // (see: 'providers/web3.tsx' --> jsonRpcBatchProvider --> getStaticRpcBatchProvider) return ''; } diff --git a/package.json b/package.json index 90398e14d..c7d480b3f 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "@ethersproject/bytes": "^5.7.0", "@ethersproject/constants": "^5.7.0", "@ethersproject/contracts": "^5.7.0", + "@ethersproject/providers": "^5.7.0", "@ethersproject/units": "^5.7.0", "@lido-sdk/constants": "^3.2.1", "@lido-sdk/contracts": "^3.0.4", @@ -66,7 +67,7 @@ "react-hook-form": "^7.45.2", "react-is": "^18.2.0", "react-transition-group": "^4.4.2", - "reef-knot": "^1.15.3", + "reef-knot": "^2.1.0", "remark": "^13.0.0", "remark-external-links": "^8.0.0", "remark-html": "^13.0.1", diff --git a/providers/sdk-legacy.tsx b/providers/sdk-legacy.tsx new file mode 100644 index 000000000..01ad25ec4 --- /dev/null +++ b/providers/sdk-legacy.tsx @@ -0,0 +1,77 @@ +import React, { useEffect, useState } from 'react'; +import { ProviderSDK } from '@lido-sdk/react'; +import { getStaticRpcBatchProvider } from '@lido-sdk/providers'; +import { Web3Provider } from '@ethersproject/providers'; +import { Chain, useAccount } from 'wagmi'; +import { mainnet } from 'wagmi/chains'; +import { useWeb3 } from 'reef-knot/web3-react'; + +const POLLING_INTERVAL = 12_000; + +export const SDKLegacyProvider = (props: { + children?: React.ReactNode; + defaultChainId: number; + supportedChains: Chain[]; + rpc: Record; + pollingInterval?: number; +}) => { + const { + children, + defaultChainId, + rpc, + supportedChains, + pollingInterval = POLLING_INTERVAL, + } = props; + const { chainId = defaultChainId, account } = useWeb3(); + const { connector, isConnected } = useAccount(); + + const [providerWeb3, setProviderWeb3] = useState(); + + // Reset web3 provider if the provider was set previously, + // and currently no wallet is connected. + // Gets triggered on a wallet disconnection, for example. + if (!isConnected && providerWeb3) { + setProviderWeb3(undefined); + } + + useEffect(() => { + void (async () => { + if (!providerWeb3 && connector && isConnected) { + const provider = await connector.getProvider(); + const wrappedProvider = new Web3Provider(provider); + wrappedProvider.pollingInterval = pollingInterval; + setProviderWeb3(wrappedProvider); + } + })(); + }, [connector, isConnected, pollingInterval, providerWeb3]); + + const supportedChainIds = supportedChains.map((chain) => chain.id); + + const providerRpc = getStaticRpcBatchProvider( + chainId, + rpc[chainId], + 0, + pollingInterval, + ); + + const providerMainnetRpc = getStaticRpcBatchProvider( + mainnet.id, + rpc[mainnet.id], + 0, + pollingInterval, + ); + + return ( + // @ts-expect-error Property children does not exist on type + + {children} + + ); +}; diff --git a/providers/web3.tsx b/providers/web3.tsx index 017c02cc5..79740fec1 100644 --- a/providers/web3.tsx +++ b/providers/web3.tsx @@ -1,6 +1,5 @@ import { FC, PropsWithChildren, useMemo } from 'react'; -import { ProviderWeb3 } from 'reef-knot/web3-react'; -import { getConnectors, holesky } from 'reef-knot/core-react'; +import { ReefKnot, getConnectors, holesky } from 'reef-knot/core-react'; import { WagmiConfig, createClient, configureChains, Chain } from 'wagmi'; import * as wagmiChains from 'wagmi/chains'; @@ -8,30 +7,21 @@ import { CHAINS } from 'utils/chains'; import { getStaticRpcBatchProvider } from '@lido-sdk/providers'; import { useClientConfig } from 'providers/client-config'; -import { dynamics, useGetRpcUrlByChainId } from 'config'; +import { useGetRpcUrlByChainId } from 'config'; +import { SDKLegacyProvider } from './sdk-legacy'; -const Web3Provider: FC = ({ children }) => { - const { defaultChain, supportedChainIds, walletconnectProjectId } = - useClientConfig(); - - const getRpcUrlByChainId = useGetRpcUrlByChainId(); +const wagmiChainsArray = Object.values({ ...wagmiChains, holesky }); - const backendRPC = useMemo( - () => - supportedChainIds.reduce>( - (res, curr) => ({ ...res, [curr]: getRpcUrlByChainId(curr) }), - { - // Required by reef-knot - [CHAINS.Mainnet]: getRpcUrlByChainId(CHAINS.Mainnet), - }, - ), - [supportedChainIds, getRpcUrlByChainId], - ); +const Web3Provider: FC = ({ children }) => { + const { + defaultChain: defaultChainId, + supportedChainIds, + walletconnectProjectId, + } = useClientConfig(); - const client = useMemo(() => { - const wagmiChainsArray = Object.values({ ...wagmiChains, holesky }); + const { supportedChains, defaultChain } = useMemo(() => { const supportedChains = wagmiChainsArray.filter((chain) => - dynamics.supportedChains.includes(chain.id), + supportedChainIds.includes(chain.id), ); // Adding Mumbai as a temporary workaround @@ -42,9 +32,26 @@ const Web3Provider: FC = ({ children }) => { supportedChains.push(wagmiChains.polygonMumbai); const defaultChain = - wagmiChainsArray.find((chain) => chain.id === dynamics.defaultChain) || + supportedChains.find((chain) => chain.id === defaultChainId) || supportedChains[0]; // first supported chain as fallback + return { supportedChains, defaultChain }; + }, [defaultChainId, supportedChainIds]); + const getRpcUrlByChainId = useGetRpcUrlByChainId(); + + const backendRPC = useMemo( + () => + supportedChainIds.reduce( + (res, curr) => ({ ...res, [curr]: getRpcUrlByChainId(curr) }), + { + // Mainnet RPC is always required for some requests, e.g. ETH to USD price, ENS lookup + [CHAINS.Mainnet]: getRpcUrlByChainId(CHAINS.Mainnet), + }, + ), + [supportedChainIds, getRpcUrlByChainId], + ); + + const client = useMemo(() => { const jsonRpcBatchProvider = (chain: Chain) => ({ provider: () => getStaticRpcBatchProvider( @@ -81,19 +88,30 @@ const Web3Provider: FC = ({ children }) => { provider, webSocketProvider, }); - }, [backendRPC, getRpcUrlByChainId, walletconnectProjectId]); + }, [ + supportedChains, + defaultChain, + backendRPC, + walletconnectProjectId, + getRpcUrlByChainId, + ]); return ( - - {children} - + + {children} + + ); }; diff --git a/shared/wallet/fallback/useErrorMessage.ts b/shared/wallet/fallback/useErrorMessage.ts index 163a183b3..a0551dd53 100644 --- a/shared/wallet/fallback/useErrorMessage.ts +++ b/shared/wallet/fallback/useErrorMessage.ts @@ -1,22 +1,18 @@ -import { useSupportedChains, useConnectorError } from 'reef-knot/web3-react'; -import { CHAINS } from '@lido-sdk/constants'; -import { useMemo } from 'react'; +import { + useSupportedChains, + useConnectorError, + helpers, +} from 'reef-knot/web3-react'; +import { useNetwork } from 'wagmi'; export const useErrorMessage = (): string | undefined => { const error = useConnectorError(); - const { isUnsupported, supportedChains } = useSupportedChains(); - - const chains = useMemo(() => { - const chains = supportedChains - .map(({ chainId, name }) => CHAINS[chainId] || name) - .filter((chain) => chain !== 'unknown'); - const lastChain = chains.pop(); - - return [chains.join(', '), lastChain].filter((chain) => chain).join(' or '); - }, [supportedChains]); + const { isUnsupported } = useSupportedChains(); + const { chains: supportedChains } = useNetwork(); + // TODO: fix useConnectorError in reef-knot and remove this block if (isUnsupported) { - return `Unsupported chain. Please switch to ${chains} in your wallet and restart the page.`; + return helpers.getUnsupportedChainError(supportedChains).message; } return error?.message; diff --git a/yarn.lock b/yarn.lock index 6ebf4f50c..ce4df627a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1046,7 +1046,7 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@coinbase/wallet-sdk@^3.0.4", "@coinbase/wallet-sdk@^3.6.6": +"@coinbase/wallet-sdk@^3.6.6": version "3.7.2" resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-3.7.2.tgz#7a89bd9e3a06a1f26d4480d8642af33fb0c7e3aa" integrity sha512-lIGvXMsgpsQWci/XOMQIJ2nIZ8JUy/L+bvC0wkRaYarr0YylwpXrJ2gRM3hCXPS477pkyO7N/kSiAoRgEXUdJQ== @@ -1361,7 +1361,7 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/web" "^5.7.0" -"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.5.0", "@ethersproject/abstract-signer@^5.7.0": +"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== @@ -1398,7 +1398,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/properties" "^5.7.0" -"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.5.0", "@ethersproject/bignumber@^5.7.0": +"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== @@ -1407,7 +1407,7 @@ "@ethersproject/logger" "^5.7.0" bn.js "^5.2.1" -"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.5.0", "@ethersproject/bytes@^5.7.0": +"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== @@ -1437,7 +1437,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/transactions" "^5.7.0" -"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.5.0", "@ethersproject/hash@^5.7.0": +"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== @@ -1489,7 +1489,7 @@ aes-js "3.0.0" scrypt-js "3.0.1" -"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.0.0-beta.130", "@ethersproject/keccak256@^5.7.0": +"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== @@ -1517,14 +1517,14 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/sha2" "^5.7.0" -"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.5.0", "@ethersproject/properties@^5.7.0": +"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/providers@5.7.2", "@ethersproject/providers@^5.5.2": +"@ethersproject/providers@5.7.2", "@ethersproject/providers@^5.7.0", "@ethersproject/providers@^5.7.2": version "5.7.2" resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.2.tgz#f8b1a4f275d7ce58cf0a2eec222269a08beb18cb" integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg== @@ -1599,7 +1599,7 @@ "@ethersproject/sha2" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.5.0", "@ethersproject/strings@^5.7.0": +"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== @@ -1608,7 +1608,7 @@ "@ethersproject/constants" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.5.0", "@ethersproject/transactions@^5.7.0": +"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== @@ -1675,38 +1675,6 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@gnosis.pm/safe-apps-provider@0.9.3": - version "0.9.3" - resolved "https://registry.yarnpkg.com/@gnosis.pm/safe-apps-provider/-/safe-apps-provider-0.9.3.tgz#d8913b0f8abc15fdca229571eefc5f9385c82ea7" - integrity sha512-WzsfEMrOTd7/epEKs7S0QBB+sgw25d1B4SeLCD7q9RYi0vYLaeWT3jTuVXVGqwAlT3tFyedmvXnryLV5SUwiug== - dependencies: - "@gnosis.pm/safe-apps-sdk" "6.2.0" - events "^3.3.0" - -"@gnosis.pm/safe-apps-sdk@6.2.0": - version "6.2.0" - resolved "https://registry.yarnpkg.com/@gnosis.pm/safe-apps-sdk/-/safe-apps-sdk-6.2.0.tgz#05751b4ae4c6cfa7e19839d3655e7d9b5fb72dfe" - integrity sha512-dOpVBlu+Nv7bOrOl9llTeRriEpdUnnbXEM/RgTkS1v8Q2swT6+M+WIKTuKB/cadFXbjUsBD/nd3IsihHP24b5g== - dependencies: - "@gnosis.pm/safe-react-gateway-sdk" "^2.5.6" - ethers "^5.4.7" - -"@gnosis.pm/safe-apps-web3-react@0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@gnosis.pm/safe-apps-web3-react/-/safe-apps-web3-react-0.6.8.tgz#be7917dd56b04ea41a40f66dd3320a438ae71676" - integrity sha512-G1Ho4GnMmKpsjtqz+nExyL8aFxAFFEHduN9wh5dJX3K0iZZi5HM3h4YfKaqiikCy4N/ghX9O4/4pAkzK1l5NnQ== - dependencies: - "@gnosis.pm/safe-apps-provider" "0.9.3" - "@gnosis.pm/safe-apps-sdk" "6.2.0" - "@web3-react/abstract-connector" "6.0.7" - -"@gnosis.pm/safe-react-gateway-sdk@^2.5.6": - version "2.10.3" - resolved "https://registry.yarnpkg.com/@gnosis.pm/safe-react-gateway-sdk/-/safe-react-gateway-sdk-2.10.3.tgz#4537442a78eb0508c483aabcac19296335a77ac3" - integrity sha512-ukaLACozdJQb2YGSAZgBUkF4CT9iKVjpnKFCKUnGGghXqp+Yyn9jpdcfFK0VYQJ6ZSwAm40tHtQaN3K9817Bcg== - dependencies: - cross-fetch "^3.1.5" - "@humanwhocodes/config-array@^0.11.13": version "0.11.14" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" @@ -2086,13 +2054,6 @@ "@ledgerhq/logs" "^6.12.0" events "^3.3.0" -"@ledgerhq/iframe-provider@0.4.2": - version "0.4.2" - resolved "https://registry.yarnpkg.com/@ledgerhq/iframe-provider/-/iframe-provider-0.4.2.tgz#2b63892bb3ab9a0719d2b00488be18b176ad6b7e" - integrity sha512-RbdwvQow/ITLk0TLb6c3M7y8IyjopIGXhhuUEMjqTU6PZhAL9Gl7TzH8INit9x9cOeG2WCuV+ZbHQ2oWsLfJ+A== - dependencies: - eventemitter3 "^4.0.0" - "@ledgerhq/iframe-provider@^0.4.3": version "0.4.3" resolved "https://registry.yarnpkg.com/@ledgerhq/iframe-provider/-/iframe-provider-0.4.3.tgz#62f680a935b753487df7d8bf48a13952f5456e4e" @@ -2598,10 +2559,10 @@ resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.24.tgz#58601079e11784d20f82d0585865bb42305c4df3" integrity sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ== -"@reef-knot/connect-wallet-modal@1.17.1": - version "1.17.1" - resolved "https://registry.yarnpkg.com/@reef-knot/connect-wallet-modal/-/connect-wallet-modal-1.17.1.tgz#5702596ef2f41d777fa7557193427e8323a7da9f" - integrity sha512-Jn5noE11Y9b8vp8RfzWJm0dUWTEfI7yXLCSThig6RbpgYHcDHO4t1k8cLY/G5jVvEgnklO2K6LvlZatMUihS2w== +"@reef-knot/connect-wallet-modal@2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@reef-knot/connect-wallet-modal/-/connect-wallet-modal-2.1.0.tgz#7f13d66f1bc5296ca84e33cf49cd23679de96857" + integrity sha512-1EKwEI+tcZ8wQVsZuAaXtEUyL+bVTnJyqEpvj8THHk16socm81k+GzoLMpBGXpqUzdiJ0iWd7jZnMdSaV/5wbg== dependencies: "@ledgerhq/hw-app-eth" "^6.35.2" "@ledgerhq/hw-transport" "^6.30.1" @@ -2610,24 +2571,27 @@ "@types/react" "18.2.45" "@types/react-dom" "18.2.17" -"@reef-knot/core-react@1.8.1": - version "1.8.1" - resolved "https://registry.yarnpkg.com/@reef-knot/core-react/-/core-react-1.8.1.tgz#fd3cb58344cbecea724f5fef5ae728a0cf1b141a" - integrity sha512-4fzLBAohvNapsTsb4WY3jgNliQNXat3hvnKzcmmTya4xv4t627Hdx1ZZWRx7mI3dcrhu6RWaGJOFsm4xVlGU/Q== +"@reef-knot/core-react@2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@reef-knot/core-react/-/core-react-2.1.0.tgz#acee578c5a51bf4fee83a9169e37e97f95539d40" + integrity sha512-7qAMmRacZ3x40lZj4esE514u63FwEk+pgeI0hQ+r98M8gJA6mVBZNn6rGU+Vq0JMcurwBnEOdF01+nHrgxJYkA== + dependencies: + ua-parser-js "1.0.33" -"@reef-knot/ledger-connector@2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@reef-knot/ledger-connector/-/ledger-connector-2.0.1.tgz#d3916db675c9b5c40eb85edd8f92a62eed3dec1f" - integrity sha512-SWaZBIeToaGTTz48qK5kWxhSECYcIq5HKrw4gsbBoQ5saLWIKDkhUXnCQpWuZcbW08L4N5Ob+Sykc/QP0VV0Kw== - dependencies: - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/hash" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/providers" "^5.5.2" - "@ethersproject/strings" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" +"@reef-knot/ledger-connector@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@reef-knot/ledger-connector/-/ledger-connector-3.0.0.tgz#518ed32e931917003febdbf3eedea6cdf7a3e0c3" + integrity sha512-H7UkWEBHLoA3xdPNP1Cjc59xOaR4TeIMApMg6C7Kvj4DWGlvYL+yKKsjNqAv7zpAKnM89K8VuH/IAhnpesRlBg== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/providers" "^5.7.2" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" "@ledgerhq/hw-app-eth" "^6.35.2" "@ledgerhq/hw-transport" "^6.30.1" "@ledgerhq/hw-transport-webhid" "^6.28.1" @@ -2636,10 +2600,10 @@ "@web3-react/types" "^6.0.7" tiny-invariant "^1.2.0" -"@reef-knot/types@1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@reef-knot/types/-/types-1.4.0.tgz#61b57a2591eb8e5554f5f76e036ecb9bb8e835df" - integrity sha512-12FoE/LUsBx+JGaogAqu7Ez6Z1JLskGdQNuwIh2wkJzfBWr6M+U20PWV+7c02svqtiOeImNk7nitT0Jt6FroNQ== +"@reef-knot/types@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@reef-knot/types/-/types-1.5.0.tgz#2c8aa2952f977963163176be7e5f5619dbdbcd5b" + integrity sha512-xNlTimc/v6XcquGvohso5skTNIx3AbUEfOaY3UZ6ShzDo81zIsbEbYzfm099Sbbxp1yZfsnb3C+8M2K+m997hg== "@reef-knot/ui-react@1.0.8": version "1.0.8" @@ -2679,6 +2643,11 @@ resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-coinbase/-/wallet-adapter-coinbase-1.0.0.tgz#aeb61e29c132347a8c9d96fff9c95c09f2df6054" integrity sha512-eOvN6L7fLNvAaLANePJxMhdLoMewgjsa4vYyBQ0G/ao5uUxAwtE9DuO8d7W3IOgP+wiEDPodLnuMDlu9JZsFdw== +"@reef-knot/wallet-adapter-dapp-browser-injected@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-dapp-browser-injected/-/wallet-adapter-dapp-browser-injected-1.0.0.tgz#87e31be96c5a603abaf125be416a59c4f10436c5" + integrity sha512-agsC3DJeEgXZM9FYcbWXNJXDwX6Ca9YZagueO6OHYjtCRz5ZWsGLDziug4+VRmsu+CHSXHiqUXHlXMF/bmEdLw== + "@reef-knot/wallet-adapter-exodus@1.2.4": version "1.2.4" resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-exodus/-/wallet-adapter-exodus-1.2.4.tgz#1d0d0ff59f4583f20926c88f567a2bdf7b5a62c5" @@ -2689,10 +2658,15 @@ resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-imtoken/-/wallet-adapter-imtoken-1.0.0.tgz#9af2609775e74dd20c052c8f5542500e40ab0006" integrity sha512-JsHIIwUbsg4wl122ODBxPH2P0WLYI29PCxlZCIciIVRLIg+BHKbLuSHj7NTJL/atvj5SBDa8f/jzdf21MUuPfQ== -"@reef-knot/wallet-adapter-ledger-hid@1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-ledger-hid/-/wallet-adapter-ledger-hid-1.0.0.tgz#08266531aad2372bdf30cd5bcc09708fd530eb4b" - integrity sha512-GpjK8lghU3yCnxspNN7EQhOTfZVBOAf7J/Yypvb4icWn3lIfh7AhjYbvx6Bpgi855AMmYIhQPCFDYSLbBRok0w== +"@reef-knot/wallet-adapter-ledger-hid@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-ledger-hid/-/wallet-adapter-ledger-hid-2.0.0.tgz#efe1b119c5568634f490d817aa30d4f23721fa61" + integrity sha512-USNAc7+iPgqkX2ASLRE6o1MuytiUJxh2FDyyf63DxwJMRO4Dzueuj90+8nVkUaDBFhQo7ZSGUt4AIkkSnzjP1g== + +"@reef-knot/wallet-adapter-ledger-live@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-ledger-live/-/wallet-adapter-ledger-live-2.0.0.tgz#592863aedb42b630e417c0123cf9a0f3d33e0c40" + integrity sha512-OJ4w1t8y2u68aPToIesYcWOap0CLCfw0/fd+KtLUbQE2Q6/M0BjU+9rKdAfHIiQkjZD+OXLmiOzoFnyTlefVyA== "@reef-knot/wallet-adapter-metamask@1.0.0": version "1.0.0" @@ -2704,6 +2678,11 @@ resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-okx/-/wallet-adapter-okx-1.3.1.tgz#00f72748cc89b7b0c4fd255ec044326054412225" integrity sha512-GVwvS2noyK3p8aKKP8H50ZVVUvrdj7nUTRFumS3HsZchiQYpNfCeX1W3svZ09+B3zl3ohTg1h9kNOlApQGHv6g== +"@reef-knot/wallet-adapter-safe@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-safe/-/wallet-adapter-safe-1.0.0.tgz#f57c347c42530bb0caba9772f056507825830c1d" + integrity sha512-+2JgacdtYjfarbWr0ANEHFbCxU4f9Wlg9MWpf4mRUD45fk+9Rgu+k6xNCp+z14DEV5UiRzX6UX2E2bzToPftJw== + "@reef-knot/wallet-adapter-trust@1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-trust/-/wallet-adapter-trust-1.0.0.tgz#b7ea0b6b24bc5db38cc68df27528346a957a2fd9" @@ -2724,10 +2703,10 @@ resolved "https://registry.yarnpkg.com/@reef-knot/wallets-helpers/-/wallets-helpers-1.1.5.tgz#bceb7d91a6f7748ec093fbdf7422772bd71708b6" integrity sha512-OFWR6zsUy04Waujl1VlNNs91P/kyHeGLC49QLWs3vrHvVipEk7ydUhKU/dHrbuhjQBS7quKg4vrodyCUUl4zyQ== -"@reef-knot/wallets-list@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@reef-knot/wallets-list/-/wallets-list-1.11.1.tgz#3502e3a998108d27bc3666c1ffa14e1efcf34893" - integrity sha512-QUmEmciXbGLO5fJSeu4nJSQxSW7hhEulrjWlM0w0MxFPmh1Nmv9+Nn2PFlqWiCg+lXSGpBW831YDRNwAx3OSXQ== +"@reef-knot/wallets-list@1.12.0": + version "1.12.0" + resolved "https://registry.yarnpkg.com/@reef-knot/wallets-list/-/wallets-list-1.12.0.tgz#0bc1b104ccccf14049ff999916d415f149f1527f" + integrity sha512-yut61rvMfwgJmsqkM2+voK95nbeX8GDYL9CixToe0TZB6XIHm0ixxUHl33zMAPSqKowoWT5odxSGOlJ8vj6fAA== dependencies: "@reef-knot/wallet-adapter-ambire" "1.2.4" "@reef-knot/wallet-adapter-bitkeep" "1.1.1" @@ -2735,29 +2714,24 @@ "@reef-knot/wallet-adapter-browser-extension" "1.0.0" "@reef-knot/wallet-adapter-coin98" "1.0.1" "@reef-knot/wallet-adapter-coinbase" "1.0.0" + "@reef-knot/wallet-adapter-dapp-browser-injected" "1.0.0" "@reef-knot/wallet-adapter-exodus" "1.2.4" "@reef-knot/wallet-adapter-imtoken" "1.0.0" - "@reef-knot/wallet-adapter-ledger-hid" "1.0.0" + "@reef-knot/wallet-adapter-ledger-hid" "2.0.0" + "@reef-knot/wallet-adapter-ledger-live" "2.0.0" "@reef-knot/wallet-adapter-metamask" "1.0.0" "@reef-knot/wallet-adapter-okx" "1.3.1" + "@reef-knot/wallet-adapter-safe" "1.0.0" "@reef-knot/wallet-adapter-trust" "1.0.0" "@reef-knot/wallet-adapter-walletconnect" "1.2.4" "@reef-knot/wallet-adapter-xdefi" "1.0.0" -"@reef-knot/web3-react@1.13.1": - version "1.13.1" - resolved "https://registry.yarnpkg.com/@reef-knot/web3-react/-/web3-react-1.13.1.tgz#d9d2b6db3f40eca874b7d31b7f0e1e05c03fa6d2" - integrity sha512-4txVsSN4mYpmgLgIyiKrpc3mnyIICwD3JI63YkjNk89vpPzdtuTlJk6y2RM3lprbFmQBl6aJaLyOqA7lNz/Liw== - dependencies: - "@gnosis.pm/safe-apps-web3-react" "0.6.8" - "@ledgerhq/iframe-provider" "0.4.2" - "@web3-react/abstract-connector" "6.0.7" - "@web3-react/core" "6.1.9" - "@web3-react/injected-connector" "6.0.7" - "@web3-react/walletlink-connector" "6.2.14" - swr "1.3.0" +"@reef-knot/web3-react@2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@reef-knot/web3-react/-/web3-react-2.1.0.tgz#9a45b540e7b4cea3ec9632da4be41763b811cc6a" + integrity sha512-VVd3cAsZu9OXIz85lmrXnqWUtkFZ3GzEAWTF5OHAmD645BEWc4dJsqSNk899K6mcAVlxg2uRSjws1XkcWT0mpg== + dependencies: tiny-invariant "^1.1.0" - tiny-warning "^1.0.3" "@safe-global/safe-apps-provider@^0.15.2": version "0.15.2" @@ -4059,47 +4033,18 @@ "@walletconnect/window-getters" "^1.0.1" tslib "1.14.1" -"@web3-react/abstract-connector@6.0.7", "@web3-react/abstract-connector@^6.0.7": +"@web3-react/abstract-connector@^6.0.7": version "6.0.7" resolved "https://registry.yarnpkg.com/@web3-react/abstract-connector/-/abstract-connector-6.0.7.tgz#401b3c045f1e0fab04256311be49d5144e9badc6" integrity sha512-RhQasA4Ox8CxUC0OENc1AJJm8UTybu/oOCM61Zjg6y0iF7Z0sqv1Ai1VdhC33hrQpA8qSBgoXN9PaP8jKmtdqg== dependencies: "@web3-react/types" "^6.0.7" -"@web3-react/core@6.1.9": - version "6.1.9" - resolved "https://registry.yarnpkg.com/@web3-react/core/-/core-6.1.9.tgz#5f5daa0545a8ea07770a699580ced552583afc97" - integrity sha512-P877DslsbAkWIlMANpWiK7pCvNwlz0kJC0EGckuVh0wlA23J4UnFxq6xyOaxkxaDCu14rA/tAO0NbwjcXTQgSA== - dependencies: - "@ethersproject/keccak256" "^5.0.0-beta.130" - "@web3-react/abstract-connector" "^6.0.7" - "@web3-react/types" "^6.0.7" - tiny-invariant "^1.0.6" - tiny-warning "^1.0.3" - -"@web3-react/injected-connector@6.0.7": - version "6.0.7" - resolved "https://registry.yarnpkg.com/@web3-react/injected-connector/-/injected-connector-6.0.7.tgz#1e0be23f51fa07fe6547fe986768a46b74c3a426" - integrity sha512-Y7aJSz6pg+MWKtvdyuqyy6LWuH+4Tqtph1LWfiyVms9II9ar/9B/de4R8wh4wjg91wmHkU+D75yP09E/Soh2RA== - dependencies: - "@web3-react/abstract-connector" "^6.0.7" - "@web3-react/types" "^6.0.7" - tiny-warning "^1.0.3" - "@web3-react/types@^6.0.7": version "6.0.7" resolved "https://registry.yarnpkg.com/@web3-react/types/-/types-6.0.7.tgz#34a6204224467eedc6123abaf55fbb6baeb2809f" integrity sha512-ofGmfDhxmNT1/P/MgVa8IKSkCStFiyvXe+U5tyZurKdrtTDFU+wJ/LxClPDtFerWpczNFPUSrKcuhfPX1sI6+A== -"@web3-react/walletlink-connector@6.2.14": - version "6.2.14" - resolved "https://registry.yarnpkg.com/@web3-react/walletlink-connector/-/walletlink-connector-6.2.14.tgz#4adf7b94de5d7018a9fc9e3b6009e78cd33d6e15" - integrity sha512-F2v1Uu7Nhptt7AaUEJpz69+NVUJxyUfDEA5B/Vr1HkqAL1aJM5gv6B1m4M/VdXKLpmjZ9Kg6X0+VUEyAx1eQ4w== - dependencies: - "@coinbase/wallet-sdk" "^3.0.4" - "@web3-react/abstract-connector" "^6.0.7" - "@web3-react/types" "^6.0.7" - JSONStream@^1.3.5: version "1.3.5" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" @@ -5159,7 +5104,7 @@ cross-env@^7.0.3: dependencies: cross-spawn "^7.0.1" -cross-fetch@^3.1.4, cross-fetch@^3.1.5: +cross-fetch@^3.1.4: version "3.1.8" resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== @@ -5989,7 +5934,7 @@ eth-rpc-errors@^4.0.2: dependencies: fast-safe-stringify "^2.0.6" -ethers@5.7.2, ethers@^5.4.7, ethers@^5.7.2: +ethers@5.7.2, ethers@^5.7.2: version "5.7.2" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== @@ -9273,19 +9218,19 @@ redis-parser@^3.0.0: dependencies: redis-errors "^1.0.0" -reef-knot@^1.15.3: - version "1.15.3" - resolved "https://registry.yarnpkg.com/reef-knot/-/reef-knot-1.15.3.tgz#b333818552cd0418e9c12f85eb3506763fdfe614" - integrity sha512-2uEQOYZwZKcmzyCc3ExIaJdS3wjam8pXHOABoTMp6iFUBjbxlPiaPaEuqsS6laJWshzdwRkHyxLgY64jtdwA2g== +reef-knot@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/reef-knot/-/reef-knot-2.1.0.tgz#a9cade9c73d675764b345380a28cf9adf116eaf1" + integrity sha512-sfANXjqfNeGjft9+ie+CRjjbYElNxnZ3NOPLcI+XifMv3/EwsXBlo6htGTDYMmyqZ+/Fj7DN00RLGLZJpMTxoA== dependencies: - "@reef-knot/connect-wallet-modal" "1.17.1" - "@reef-knot/core-react" "1.8.1" - "@reef-knot/ledger-connector" "2.0.1" - "@reef-knot/types" "1.4.0" + "@reef-knot/connect-wallet-modal" "2.1.0" + "@reef-knot/core-react" "2.1.0" + "@reef-knot/ledger-connector" "3.0.0" + "@reef-knot/types" "1.5.0" "@reef-knot/ui-react" "1.0.8" "@reef-knot/wallets-helpers" "1.1.5" - "@reef-knot/wallets-list" "1.11.1" - "@reef-knot/web3-react" "1.13.1" + "@reef-knot/wallets-list" "1.12.0" + "@reef-knot/web3-react" "2.1.0" reflect.getprototypeof@^1.0.4: version "1.0.4" @@ -10130,7 +10075,7 @@ svgo@^3.0.2: csso "^5.0.5" picocolors "^1.0.0" -swr@1.3.0, swr@^1.0.1, swr@^1.3.0: +swr@^1.0.1, swr@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/swr/-/swr-1.3.0.tgz#c6531866a35b4db37b38b72c45a63171faf9f4e8" integrity sha512-dkghQrOl2ORX9HYrMDtPa7LTVHJjCTeZoB1dqTbnnEDlSvN8JEKpYIYurDfvbQFUUS8Cg8PceFVZNkW0KNNYPw== @@ -10222,7 +10167,7 @@ tiny-async-pool@^1.2.0: dependencies: semver "^5.5.0" -tiny-invariant@^1.0.6, tiny-invariant@^1.1.0, tiny-invariant@^1.2.0: +tiny-invariant@^1.1.0, tiny-invariant@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.1.tgz#8560808c916ef02ecfd55e66090df23a4b7aa642" integrity sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw== @@ -10475,6 +10420,11 @@ typical@^2.6.0, typical@^2.6.1: resolved "https://registry.yarnpkg.com/typical/-/typical-2.6.1.tgz#5c080e5d661cbbe38259d2e70a3c7253e873881d" integrity sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg== +ua-parser-js@1.0.33: + version "1.0.33" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.33.tgz#f21f01233e90e7ed0f059ceab46eb190ff17f8f4" + integrity sha512-RqshF7TPTE0XLYAqmjlu5cLLuGdKrNu9O1KLA/qp39QtbZwuzwv1dT46DZSopoUMsYgXpB3Cv8a03FI8b74oFQ== + ua-parser-js@^0.7.24: version "0.7.37" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.37.tgz#e464e66dac2d33a7a1251d7d7a99d6157ec27832"