diff --git a/assets/icons/lido-multichain/unichain.svg b/assets/icons/lido-multichain/unichain.svg new file mode 100644 index 000000000..1dc11ef67 --- /dev/null +++ b/assets/icons/lido-multichain/unichain.svg @@ -0,0 +1,4 @@ + + + + diff --git a/consts/chains.ts b/consts/chains.ts index 8c6d1f86b..cd959b127 100644 --- a/consts/chains.ts +++ b/consts/chains.ts @@ -20,6 +20,7 @@ export enum LIDO_MULTICHAIN_CHAINS { 'BNB Chain' = 56, 'Mode Chain' = 34443, 'Zircuit Chain' = 48900, + Unichain = 130, } // TODO: move to @lidofinance/lido-ethereum-sdk package diff --git a/consts/matomo-wallets-events.ts b/consts/matomo-wallets-events.ts index e543f5dbf..21af892b9 100644 --- a/consts/matomo-wallets-events.ts +++ b/consts/matomo-wallets-events.ts @@ -1,263 +1,70 @@ -import { MatomoEventType, trackEvent } from '@lidofinance/analytics-matomo'; -import { MetricsProp } from '@reef-knot/types'; -import { WalletIdsEthereum } from 'reef-knot/wallets'; +import { trackEvent } from '@lidofinance/analytics-matomo'; +import type { ReefKnotWalletsModalConfig } from '@reef-knot/types'; +import type { WalletIdsEthereum } from '@reef-knot/wallets-list'; import { MATOMO_CLICK_EVENTS } from './matomo-click-events'; -export const enum MATOMO_WALLETS_EVENTS_TYPES { - onClickAmbire = 'onClickAmbire', - onConnectAmbire = 'onConnectAmbire', - onClickBrave = 'onClickBrave', - onConnectBrave = 'onConnectBrave', - onClickCoin98 = 'onClickCoin98', - onConnectCoin98 = 'onConnectCoin98', - onClickCoinbase = 'onClickCoinbase', - onClickCoinbaseSmartWallet = 'onClickCoinbaseSmartWallet', - onConnectCoinbase = 'onConnectCoinbase', - onConnectCoinbaseSmartWallet = 'onConnectCoinbaseSmartWallet', - onClickExodus = 'onClickExodus', - onConnectExodus = 'onConnectExodus', - onClickImToken = 'onClickImToken', - onConnectImToken = 'onConnectImToken', - onClickLedger = 'onClickLedger', - onConnectLedger = 'onConnectLedger', - onClickMetamask = 'onClickMetamask', - onConnectMetamask = 'onConnectMetamask', - onClickTrust = 'onClickTrust', - onConnectTrust = 'onConnectTrust', - onClickWC = 'onClickWC', - onConnectWC = 'onConnectWC', - onClickXdefi = 'onClickXdefi', - onConnectXdefi = 'onConnectXdefi', - onClickOkx = 'onClickOkx', - onConnectOkx = 'onConnectOkx', - onClickBitget = 'onClickBitget', - onConnectBitget = 'onConnectBitget', - onClickBrowser = 'onClickBrowser', - onConnectBrowser = 'onConnectBrowser', - onClickBinance = 'onClickBinance', - onConnectBinance = 'onConnectBinance', -} +type MetricProps = Pick< + ReefKnotWalletsModalConfig, + | 'onClickTermsAccept' + | 'onClickWalletsMore' + | 'onClickWalletsLess' + | 'onConnectStart' + | 'onConnectSuccess' +>; -export const MATOMO_WALLETS_EVENTS: Record< - MATOMO_WALLETS_EVENTS_TYPES, - MatomoEventType -> = { - [MATOMO_WALLETS_EVENTS_TYPES.onClickAmbire]: [ - 'Ethereum_Staking_Widget', - 'Click on Ambire wallet', - 'eth_widget_click_ambire', - ], - [MATOMO_WALLETS_EVENTS_TYPES.onConnectAmbire]: [ - 'Ethereum_Staking_Widget', - 'Connect Ambire wallet', - 'eth_widget_connect_ambire', - ], - [MATOMO_WALLETS_EVENTS_TYPES.onClickBrave]: [ - 'Ethereum_Staking_Widget', - 'Click Brave wallet', - 'eth_widget_click_brave', - ], - [MATOMO_WALLETS_EVENTS_TYPES.onConnectBrave]: [ - 'Ethereum_Staking_Widget', - 'Connect Brave wallet', - 'eth_widget_connect_brave', - ], - [MATOMO_WALLETS_EVENTS_TYPES.onClickCoin98]: [ - 'Ethereum_Staking_Widget', - 'Click Coin98 wallet', - 'eth_widget_click_coin98', - ], - [MATOMO_WALLETS_EVENTS_TYPES.onConnectCoin98]: [ - 'Ethereum_Staking_Widget', - 'Connect Coin98 wallet', - 'eth_widget_connect_coin98', - ], - [MATOMO_WALLETS_EVENTS_TYPES.onClickCoinbase]: [ - 'Ethereum_Staking_Widget', - 'Click Coinbase Wallet wallet', - 'eth_widget_click_coinbase_wallet', - ], - [MATOMO_WALLETS_EVENTS_TYPES.onConnectCoinbase]: [ - 'Ethereum_Staking_Widget', - 'Connect Coinbase Wallet wallet', - 'eth_widget_connect_coinbase_wallet', - ], - [MATOMO_WALLETS_EVENTS_TYPES.onClickCoinbaseSmartWallet]: [ - 'Ethereum_Staking_Widget', - 'Click Coinbase Smart Wallet wallet', - 'eth_widget_click_coinbase_smart_wallet', - ], - [MATOMO_WALLETS_EVENTS_TYPES.onConnectCoinbaseSmartWallet]: [ - 'Ethereum_Staking_Widget', - 'Connect Coinbase Smart Wallet wallet', - 'eth_widget_connect_coinbase_smart_wallet', - ], - [MATOMO_WALLETS_EVENTS_TYPES.onClickExodus]: [ - 'Ethereum_Staking_Widget', - 'Click Exodus wallet', - 'eth_widget_click_exodus', - ], - [MATOMO_WALLETS_EVENTS_TYPES.onConnectExodus]: [ - 'Ethereum_Staking_Widget', - 'Connect Exodus wallet', - 'eth_widget_connect_exodus', - ], - [MATOMO_WALLETS_EVENTS_TYPES.onClickImToken]: [ - 'Ethereum_Staking_Widget', - 'Click imToken wallet', - 'eth_widget_click_imtoken', - ], - [MATOMO_WALLETS_EVENTS_TYPES.onConnectImToken]: [ - 'Ethereum_Staking_Widget', - 'Connect imToken wallet', - 'eth_widget_connect_imtoken', - ], - [MATOMO_WALLETS_EVENTS_TYPES.onClickLedger]: [ - 'Ethereum_Staking_Widget', - 'Click Ledger wallet', - 'eth_widget_click_ledger', - ], - [MATOMO_WALLETS_EVENTS_TYPES.onConnectLedger]: [ - 'Ethereum_Staking_Widget', - 'Connect Ledger wallet', - 'eth_widget_connect_ledger', - ], - [MATOMO_WALLETS_EVENTS_TYPES.onClickMetamask]: [ - 'Ethereum_Staking_Widget', - 'Click Metamask wallet', - 'eth_widget_click_metamask', - ], - [MATOMO_WALLETS_EVENTS_TYPES.onConnectMetamask]: [ - 'Ethereum_Staking_Widget', - 'Connect Metamask wallet', - 'eth_widget_connect_metamask', - ], - [MATOMO_WALLETS_EVENTS_TYPES.onClickTrust]: [ - 'Ethereum_Staking_Widget', - 'Click Trust wallet', - 'eth_widget_click_trust', - ], - [MATOMO_WALLETS_EVENTS_TYPES.onConnectTrust]: [ - 'Ethereum_Staking_Widget', - 'Connect Trust wallet', - 'eth_widget_connect_trust', - ], - [MATOMO_WALLETS_EVENTS_TYPES.onClickWC]: [ - 'Ethereum_Staking_Widget', - 'Click WalletConnect wallet', - 'eth_widget_click_walletconnect', - ], - [MATOMO_WALLETS_EVENTS_TYPES.onConnectWC]: [ - 'Ethereum_Staking_Widget', - 'Connect WalletConnect wallet', - 'eth_widget_connect_walletconnect', - ], - [MATOMO_WALLETS_EVENTS_TYPES.onClickXdefi]: [ - 'Ethereum_Staking_Widget', - 'Click XDEFI wallet', - 'eth_widget_click_xdefi', - ], - [MATOMO_WALLETS_EVENTS_TYPES.onConnectXdefi]: [ - 'Ethereum_Staking_Widget', - 'Connect XDEFI wallet', - 'eth_widget_connect_xdefi', - ], - [MATOMO_WALLETS_EVENTS_TYPES.onClickOkx]: [ - 'Ethereum_Staking_Widget', - 'Click OKX wallet', - 'eth_widget_click_okx', - ], - [MATOMO_WALLETS_EVENTS_TYPES.onConnectOkx]: [ - 'Ethereum_Staking_Widget', - 'Connect OKX wallet', - 'eth_widget_connect_okx', - ], - [MATOMO_WALLETS_EVENTS_TYPES.onClickBitget]: [ - 'Ethereum_Staking_Widget', - 'Click BitGet wallet', - 'eth_widget_click_bitget', - ], - [MATOMO_WALLETS_EVENTS_TYPES.onConnectBitget]: [ - 'Ethereum_Staking_Widget', - 'Connect BitGet wallet', - 'eth_widget_connect_bitget', - ], - [MATOMO_WALLETS_EVENTS_TYPES.onClickBrowser]: [ - 'Ethereum_Staking_Widget', - 'Click Browser wallet', - 'eth_widget_click_browser', - ], - [MATOMO_WALLETS_EVENTS_TYPES.onConnectBrowser]: [ - 'Ethereum_Staking_Widget', - 'Connect Browser wallet', - 'eth_widget_connect_browser', - ], - [MATOMO_WALLETS_EVENTS_TYPES.onClickBinance]: [ - 'Ethereum_Staking_Widget', - 'Click Binance Web3 wallet', - 'eth_widget_click_binance_web3', - ], - [MATOMO_WALLETS_EVENTS_TYPES.onConnectBinance]: [ - 'Ethereum_Staking_Widget', - 'Connect Binance Web3 wallet', - 'eth_widget_connect_binance_web3_wallet', - ], +type EventsData = Partial>; + +const EVENTS_DATA_CONNECT_START: EventsData = { + ambire: ['on Ambire', 'ambire'], + binanceWallet: ['Binance Web3', 'binance_web3'], + bitget: ['BitGet', 'bitget'], + brave: ['Brave', 'brave'], + browserExtension: ['Browser', 'browser'], + coin98: ['Coin98', 'coin98'], + coinbase: ['Coinbase Wallet', 'coinbase_wallet'], + coinbaseSmartWallet: ['Coinbase Smart Wallet', 'coinbase_smart_wallet'], + exodus: ['Exodus', 'exodus'], + imToken: ['imToken', 'imtoken'], + ledgerHID: ['Ledger', 'ledger'], + metaMask: ['Metamask', 'metamask'], + okx: ['OKX', 'okx'], + trust: ['Trust', 'trust'], + walletConnect: ['WalletConnect', 'walletconnect'], + xdefi: ['XDEFI', 'xdefi'], +} as const; + +const EVENTS_DATA_CONNECT_SUCCESS: EventsData = { + ...EVENTS_DATA_CONNECT_START, + ambire: ['Ambire', 'ambire'], + binanceWallet: ['Binance Web3', 'binance_web3_wallet'], }; -const getMetricHandler = (event: Parameters) => () => - trackEvent(...event); +export const walletMetricProps: MetricProps = { + onClickWalletsLess: () => + trackEvent(...MATOMO_CLICK_EVENTS.clickShowLessWallets), + + onClickWalletsMore: () => + trackEvent(...MATOMO_CLICK_EVENTS.clickShowMoreWallets), + + onConnectStart: ({ walletId }) => { + const eventData = EVENTS_DATA_CONNECT_START[walletId]; + if (eventData) { + trackEvent( + 'Ethereum_Staking_Widget', + `Click ${eventData[0]} wallet`, + `eth_widget_click_${eventData[1]}`, + ); + } + }, -export const walletsMetrics: MetricsProp = { - events: { - click: { - handlers: { - ambire: getMetricHandler(MATOMO_WALLETS_EVENTS.onClickAmbire), - brave: getMetricHandler(MATOMO_WALLETS_EVENTS.onClickBrave), - coin98: getMetricHandler(MATOMO_WALLETS_EVENTS.onClickCoin98), - coinbase: getMetricHandler(MATOMO_WALLETS_EVENTS.onClickCoinbase), - coinbaseSmartWallet: getMetricHandler( - MATOMO_WALLETS_EVENTS.onClickCoinbaseSmartWallet, - ), - exodus: getMetricHandler(MATOMO_WALLETS_EVENTS.onClickExodus), - imToken: getMetricHandler(MATOMO_WALLETS_EVENTS.onClickImToken), - ledgerHID: getMetricHandler(MATOMO_WALLETS_EVENTS.onClickLedger), - metaMask: getMetricHandler(MATOMO_WALLETS_EVENTS.onClickMetamask), - trust: getMetricHandler(MATOMO_WALLETS_EVENTS.onClickTrust), - walletConnect: getMetricHandler(MATOMO_WALLETS_EVENTS.onClickWC), - xdefi: getMetricHandler(MATOMO_WALLETS_EVENTS.onClickXdefi), - okx: getMetricHandler(MATOMO_WALLETS_EVENTS.onClickOkx), - bitget: getMetricHandler(MATOMO_WALLETS_EVENTS.onClickBitget), - browserExtension: getMetricHandler( - MATOMO_WALLETS_EVENTS.onClickBrowser, - ), - binanceWallet: getMetricHandler(MATOMO_WALLETS_EVENTS.onClickBinance), - walletsLess: getMetricHandler(MATOMO_CLICK_EVENTS.clickShowLessWallets), - walletsMore: getMetricHandler(MATOMO_CLICK_EVENTS.clickShowMoreWallets), - }, - }, - connect: { - handlers: { - ambire: getMetricHandler(MATOMO_WALLETS_EVENTS.onConnectAmbire), - brave: getMetricHandler(MATOMO_WALLETS_EVENTS.onConnectBrave), - coin98: getMetricHandler(MATOMO_WALLETS_EVENTS.onConnectCoin98), - coinbase: getMetricHandler(MATOMO_WALLETS_EVENTS.onConnectCoinbase), - coinbaseSmartWallet: getMetricHandler( - MATOMO_WALLETS_EVENTS.onConnectCoinbaseSmartWallet, - ), - exodus: getMetricHandler(MATOMO_WALLETS_EVENTS.onConnectExodus), - imToken: getMetricHandler(MATOMO_WALLETS_EVENTS.onConnectImToken), - ledgerHID: getMetricHandler(MATOMO_WALLETS_EVENTS.onConnectLedger), - metaMask: getMetricHandler(MATOMO_WALLETS_EVENTS.onConnectMetamask), - trust: getMetricHandler(MATOMO_WALLETS_EVENTS.onConnectTrust), - walletConnect: getMetricHandler(MATOMO_WALLETS_EVENTS.onConnectWC), - xdefi: getMetricHandler(MATOMO_WALLETS_EVENTS.onConnectXdefi), - okx: getMetricHandler(MATOMO_WALLETS_EVENTS.onConnectOkx), - bitget: getMetricHandler(MATOMO_WALLETS_EVENTS.onConnectBitget), - browserExtension: getMetricHandler( - MATOMO_WALLETS_EVENTS.onConnectBrowser, - ), - binanceWallet: getMetricHandler(MATOMO_WALLETS_EVENTS.onConnectBinance), - }, - }, + onConnectSuccess: ({ walletId }) => { + const eventData = EVENTS_DATA_CONNECT_SUCCESS[walletId]; + if (eventData) { + trackEvent( + 'Ethereum_Staking_Widget', + `Connect ${eventData[0]}`, + `eth_widget_connect_${eventData[1]}`, + ); + } }, }; diff --git a/features/rewards/components/IndexerLink.tsx b/features/rewards/components/IndexerLink.tsx index b2a064ab7..2c7fac089 100644 --- a/features/rewards/components/IndexerLink.tsx +++ b/features/rewards/components/IndexerLink.tsx @@ -1,5 +1,5 @@ import { Box, External as ExternalLinkIcon } from '@lidofinance/lido-ui'; -import { getEtherscanTxLink } from 'utils/get-etherscan-tx-link'; +import { getEtherscanTxLink } from 'utils/etherscan'; import { config } from 'config'; diff --git a/features/stake/lido-stats/lido-stats.tsx b/features/stake/lido-stats/lido-stats.tsx index f0deebd64..9f8e8f6aa 100644 --- a/features/stake/lido-stats/lido-stats.tsx +++ b/features/stake/lido-stats/lido-stats.tsx @@ -1,17 +1,16 @@ import { FC, memo, useMemo } from 'react'; -import { getEtherscanTokenLink } from '@lido-sdk/helpers'; import { useSDK } from '@lido-sdk/react'; import { getTokenAddress, TOKENS } from '@lido-sdk/constants'; import { Block, DataTable, Question, Tooltip } from '@lidofinance/lido-ui'; -import { Section, MatomoLink } from 'shared/components'; -import { useLidoApr, useLidoStats } from 'shared/hooks'; - import { config } from 'config'; - import { LIDO_APR_TOOLTIP_TEXT, DATA_UNAVAILABLE } from 'consts/text'; import { MATOMO_CLICK_EVENTS_TYPES } from 'consts/matomo-click-events'; +import { getEtherscanTokenLink } from 'utils/etherscan'; + +import { Section, MatomoLink } from 'shared/components'; +import { useLidoApr, useLidoStats } from 'shared/hooks'; import { FlexCenterVertical } from './styles'; import { LidoStatsItem } from './lido-stats-item'; diff --git a/features/stake/stake.tsx b/features/stake/stake.tsx index a2444e0c7..cb0b67f9b 100644 --- a/features/stake/stake.tsx +++ b/features/stake/stake.tsx @@ -1,5 +1,4 @@ import { FaqPlaceholder } from 'features/ipfs'; -import { useWagmiKey } from 'modules/web3'; import NoSSRWrapper from 'shared/components/no-ssr-wrapper'; import { OnlyInfraRender } from 'shared/components/only-infra-render'; @@ -8,12 +7,10 @@ import { LidoStats } from './lido-stats/lido-stats'; import { StakeForm } from './stake-form'; export const Stake = () => { - const key = useWagmiKey(); - return ( <> - + }> diff --git a/features/wsteth/shared/wrap-faq/ethereum-faq/faq.tsx b/features/wsteth/shared/wrap-faq/ethereum-faq/faq.tsx new file mode 100644 index 000000000..f0ad570a8 --- /dev/null +++ b/features/wsteth/shared/wrap-faq/ethereum-faq/faq.tsx @@ -0,0 +1,21 @@ +import { + WhatIsWsteth, + HowCanIGetWsteth, + HowCanIUseWsteth, + DoIGetMyStakingRewards, + DoINeedToClaimMyStakingRewards, + HowCouldIUnwrapWstethToSteth, + DoINeedToUnwrapMyWsteth, +} from './list'; + +export const EthereumFAQ = () => ( + <> + + + + + + + + +); diff --git a/features/wsteth/shared/wrap-faq/list/do-i-get-my-staking-rewards.tsx b/features/wsteth/shared/wrap-faq/ethereum-faq/list/do-i-get-my-staking-rewards.tsx similarity index 100% rename from features/wsteth/shared/wrap-faq/list/do-i-get-my-staking-rewards.tsx rename to features/wsteth/shared/wrap-faq/ethereum-faq/list/do-i-get-my-staking-rewards.tsx diff --git a/features/wsteth/shared/wrap-faq/list/do-i-need-to-claim-my-staking-rewards.tsx b/features/wsteth/shared/wrap-faq/ethereum-faq/list/do-i-need-to-claim-my-staking-rewards.tsx similarity index 100% rename from features/wsteth/shared/wrap-faq/list/do-i-need-to-claim-my-staking-rewards.tsx rename to features/wsteth/shared/wrap-faq/ethereum-faq/list/do-i-need-to-claim-my-staking-rewards.tsx diff --git a/features/wsteth/shared/wrap-faq/list/do_i_need_to_unwrap_my_wsteth.tsx b/features/wsteth/shared/wrap-faq/ethereum-faq/list/do_i_need_to_unwrap_my_wsteth.tsx similarity index 100% rename from features/wsteth/shared/wrap-faq/list/do_i_need_to_unwrap_my_wsteth.tsx rename to features/wsteth/shared/wrap-faq/ethereum-faq/list/do_i_need_to_unwrap_my_wsteth.tsx diff --git a/features/wsteth/shared/wrap-faq/list/how-can-i-get-wsteth.tsx b/features/wsteth/shared/wrap-faq/ethereum-faq/list/how-can-i-get-wsteth.tsx similarity index 100% rename from features/wsteth/shared/wrap-faq/list/how-can-i-get-wsteth.tsx rename to features/wsteth/shared/wrap-faq/ethereum-faq/list/how-can-i-get-wsteth.tsx diff --git a/features/wsteth/shared/wrap-faq/list/how-can-i-use-wsteth.tsx b/features/wsteth/shared/wrap-faq/ethereum-faq/list/how-can-i-use-wsteth.tsx similarity index 100% rename from features/wsteth/shared/wrap-faq/list/how-can-i-use-wsteth.tsx rename to features/wsteth/shared/wrap-faq/ethereum-faq/list/how-can-i-use-wsteth.tsx diff --git a/features/wsteth/shared/wrap-faq/list/how-could-i-unwrap-wsteth-to-steth.tsx b/features/wsteth/shared/wrap-faq/ethereum-faq/list/how-could-i-unwrap-wsteth-to-steth.tsx similarity index 100% rename from features/wsteth/shared/wrap-faq/list/how-could-i-unwrap-wsteth-to-steth.tsx rename to features/wsteth/shared/wrap-faq/ethereum-faq/list/how-could-i-unwrap-wsteth-to-steth.tsx diff --git a/features/wsteth/shared/wrap-faq/list/index.ts b/features/wsteth/shared/wrap-faq/ethereum-faq/list/index.ts similarity index 100% rename from features/wsteth/shared/wrap-faq/list/index.ts rename to features/wsteth/shared/wrap-faq/ethereum-faq/list/index.ts diff --git a/features/wsteth/shared/wrap-faq/list/what-is-wsteth.tsx b/features/wsteth/shared/wrap-faq/ethereum-faq/list/what-is-wsteth.tsx similarity index 100% rename from features/wsteth/shared/wrap-faq/list/what-is-wsteth.tsx rename to features/wsteth/shared/wrap-faq/ethereum-faq/list/what-is-wsteth.tsx diff --git a/features/wsteth/shared/wrap-faq/optimism-faq/faq.tsx b/features/wsteth/shared/wrap-faq/optimism-faq/faq.tsx new file mode 100644 index 000000000..12efac87a --- /dev/null +++ b/features/wsteth/shared/wrap-faq/optimism-faq/faq.tsx @@ -0,0 +1,23 @@ +import { + WhatIsWstethOnOptimism, + HowCanIGetWstethOnOptimism, + HowCanIUseWstethOnOptimism, + CanIStakeMyETHDirectlyOnOptimism, + DoIStillGetStakingRewardsWithStETHOrWstETHOnOptimism, + DoINeedToClaimMyStakingRewardsIfIWrapStETHToWstETHOnOptimism, + HowCouldIUnwrapWstETHBackToStETHOnOptimism, + WhatHappensIfIWantToUnstakeETHOnEthereumCanIDoThatFromOptimism, +} from './list'; + +export const OptimismFAQ = () => ( + <> + + + + + + + + + +); diff --git a/features/wsteth/shared/wrap-faq/optimism-list/can-i-stake-my-eth-directly-on-optimism.tsx b/features/wsteth/shared/wrap-faq/optimism-faq/list/can-i-stake-my-eth-directly-on-optimism.tsx similarity index 100% rename from features/wsteth/shared/wrap-faq/optimism-list/can-i-stake-my-eth-directly-on-optimism.tsx rename to features/wsteth/shared/wrap-faq/optimism-faq/list/can-i-stake-my-eth-directly-on-optimism.tsx diff --git a/features/wsteth/shared/wrap-faq/optimism-list/do-i-need-to-claim-my-staking-rewards-if-i-wrap-steth-to-wsteth-on-optimism.tsx b/features/wsteth/shared/wrap-faq/optimism-faq/list/do-i-need-to-claim-my-staking-rewards-if-i-wrap-steth-to-wsteth-on-optimism.tsx similarity index 100% rename from features/wsteth/shared/wrap-faq/optimism-list/do-i-need-to-claim-my-staking-rewards-if-i-wrap-steth-to-wsteth-on-optimism.tsx rename to features/wsteth/shared/wrap-faq/optimism-faq/list/do-i-need-to-claim-my-staking-rewards-if-i-wrap-steth-to-wsteth-on-optimism.tsx diff --git a/features/wsteth/shared/wrap-faq/optimism-list/do-i-still-get-staking-rewards-with-steth-or-wsteth-on-optimism.tsx b/features/wsteth/shared/wrap-faq/optimism-faq/list/do-i-still-get-staking-rewards-with-steth-or-wsteth-on-optimism.tsx similarity index 100% rename from features/wsteth/shared/wrap-faq/optimism-list/do-i-still-get-staking-rewards-with-steth-or-wsteth-on-optimism.tsx rename to features/wsteth/shared/wrap-faq/optimism-faq/list/do-i-still-get-staking-rewards-with-steth-or-wsteth-on-optimism.tsx diff --git a/features/wsteth/shared/wrap-faq/optimism-list/how-can-i-get-wsteth.tsx b/features/wsteth/shared/wrap-faq/optimism-faq/list/how-can-i-get-wsteth.tsx similarity index 100% rename from features/wsteth/shared/wrap-faq/optimism-list/how-can-i-get-wsteth.tsx rename to features/wsteth/shared/wrap-faq/optimism-faq/list/how-can-i-get-wsteth.tsx diff --git a/features/wsteth/shared/wrap-faq/optimism-list/how-can-i-use-wsteth-on-optimism.tsx b/features/wsteth/shared/wrap-faq/optimism-faq/list/how-can-i-use-wsteth-on-optimism.tsx similarity index 100% rename from features/wsteth/shared/wrap-faq/optimism-list/how-can-i-use-wsteth-on-optimism.tsx rename to features/wsteth/shared/wrap-faq/optimism-faq/list/how-can-i-use-wsteth-on-optimism.tsx diff --git a/features/wsteth/shared/wrap-faq/optimism-list/how-could-i-unwrap-wsteth-back-to-steth-on-optimism.tsx b/features/wsteth/shared/wrap-faq/optimism-faq/list/how-could-i-unwrap-wsteth-back-to-steth-on-optimism.tsx similarity index 100% rename from features/wsteth/shared/wrap-faq/optimism-list/how-could-i-unwrap-wsteth-back-to-steth-on-optimism.tsx rename to features/wsteth/shared/wrap-faq/optimism-faq/list/how-could-i-unwrap-wsteth-back-to-steth-on-optimism.tsx diff --git a/features/wsteth/shared/wrap-faq/optimism-list/index.ts b/features/wsteth/shared/wrap-faq/optimism-faq/list/index.ts similarity index 100% rename from features/wsteth/shared/wrap-faq/optimism-list/index.ts rename to features/wsteth/shared/wrap-faq/optimism-faq/list/index.ts diff --git a/features/wsteth/shared/wrap-faq/optimism-list/what-happens-if-i-want-to-unstake-eth-on-ethereum-can-i-do-that-from-optimism.tsx b/features/wsteth/shared/wrap-faq/optimism-faq/list/what-happens-if-i-want-to-unstake-eth-on-ethereum-can-i-do-that-from-optimism.tsx similarity index 100% rename from features/wsteth/shared/wrap-faq/optimism-list/what-happens-if-i-want-to-unstake-eth-on-ethereum-can-i-do-that-from-optimism.tsx rename to features/wsteth/shared/wrap-faq/optimism-faq/list/what-happens-if-i-want-to-unstake-eth-on-ethereum-can-i-do-that-from-optimism.tsx diff --git a/features/wsteth/shared/wrap-faq/optimism-list/what-is-wsteth.tsx b/features/wsteth/shared/wrap-faq/optimism-faq/list/what-is-wsteth.tsx similarity index 100% rename from features/wsteth/shared/wrap-faq/optimism-list/what-is-wsteth.tsx rename to features/wsteth/shared/wrap-faq/optimism-faq/list/what-is-wsteth.tsx diff --git a/features/wsteth/shared/wrap-faq/wrap-faq.tsx b/features/wsteth/shared/wrap-faq/wrap-faq.tsx index 347a390b3..c2409724f 100644 --- a/features/wsteth/shared/wrap-faq/wrap-faq.tsx +++ b/features/wsteth/shared/wrap-faq/wrap-faq.tsx @@ -1,56 +1,28 @@ +import React from 'react'; import { Section } from 'shared/components'; import { useMatomoEventHandle } from 'shared/hooks'; import { useDappStatus, DAPP_CHAIN_TYPE } from 'modules/web3'; -import { - WhatIsWsteth, - HowCanIGetWsteth, - HowCanIUseWsteth, - DoIGetMyStakingRewards, - DoINeedToClaimMyStakingRewards, - HowCouldIUnwrapWstethToSteth, - DoINeedToUnwrapMyWsteth, -} from './list'; +import { EthereumFAQ } from './ethereum-faq/faq'; +import { OptimismFAQ } from './optimism-faq/faq'; -import { - WhatIsWstethOnOptimism, - HowCanIGetWstethOnOptimism, - HowCanIUseWstethOnOptimism, - CanIStakeMyETHDirectlyOnOptimism, - DoIStillGetStakingRewardsWithStETHOrWstETHOnOptimism, - DoINeedToClaimMyStakingRewardsIfIWrapStETHToWstETHOnOptimism, - HowCouldIUnwrapWstETHBackToStETHOnOptimism, - WhatHappensIfIWantToUnstakeETHOnEthereumCanIDoThatFromOptimism, -} from './optimism-list'; +export const faqComponentsMap = new Map([ + [DAPP_CHAIN_TYPE.Ethereum, EthereumFAQ], + [DAPP_CHAIN_TYPE.Optimism, OptimismFAQ], + // FAQ for other networks +]); export const WrapFaq = () => { const { isWalletConnected, chainType } = useDappStatus(); const onClickHandler = useMatomoEventHandle(); - if (isWalletConnected && chainType === DAPP_CHAIN_TYPE.Optimism) { - return ( -
- - - - - - - - -
- ); - } + const FAQ = !isWalletConnected + ? EthereumFAQ + : faqComponentsMap.get(chainType) || EthereumFAQ; return (
- - - - - - - +
); }; diff --git a/modules/web3/hooks/index.ts b/modules/web3/hooks/index.ts index 07bfc2c0e..e3560f1f1 100644 --- a/modules/web3/hooks/index.ts +++ b/modules/web3/hooks/index.ts @@ -3,7 +3,6 @@ export * from './use-balance'; export * from './use-dapp-status'; export * from './use-is-contract'; export * from './use-tx-conformation'; -export * from './use-wagmi-key'; export * from './use-max-gas-price'; export * from './use-is-multisig'; export * from './use-stETH-by-wstETH-on-l2'; diff --git a/modules/web3/hooks/use-wagmi-key.ts b/modules/web3/hooks/use-wagmi-key.ts deleted file mode 100644 index a05688778..000000000 --- a/modules/web3/hooks/use-wagmi-key.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { useDappStatus } from './use-dapp-status'; - -// In order to simplify side effects of switching wallets/chains -// we can remount by this key, resetting all internal states -export const useWagmiKey = () => { - const { chainId, address } = useDappStatus(); - return `${address ?? 'NO_ADDRESS'}_${chainId}`; -}; diff --git a/modules/web3/web3-provider/web3-provider.tsx b/modules/web3/web3-provider/web3-provider.tsx index a9eb2311d..dd4493be2 100644 --- a/modules/web3/web3-provider/web3-provider.tsx +++ b/modules/web3/web3-provider/web3-provider.tsx @@ -14,7 +14,7 @@ import { config } from 'config'; import { useUserConfig } from 'config/user-config'; import { useGetRpcUrlByChainId } from 'config/rpc'; import { CHAINS } from 'consts/chains'; -import { walletsMetrics } from 'consts/matomo-wallets-events'; +import { walletMetricProps } from 'consts/matomo-wallets-events'; import { useWeb3Transport } from './use-web3-transport'; import { LidoSDKProvider } from './lido-sdk'; @@ -104,7 +104,7 @@ export const Web3Provider: FC = ({ children }) => { // Wallets config args ...getDefaultWalletsModalConfig(), - metrics: walletsMetrics, + ...walletMetricProps, walletsPinned: WALLETS_PINNED, }); }, [ diff --git a/package.json b/package.json index 7ce1913a4..cd15db22a 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "@lidofinance/next-pages": "^0.45.1", "@lidofinance/rpc": "^0.45.1", "@lidofinance/satanizer": "^0.45.1", - "@reef-knot/types": "^3.0.0", + "@reef-knot/types": "^4.0.0", "@tanstack/react-query": "^5.51.21", "bignumber.js": "9.1.0", "copy-to-clipboard": "^3.3.1", @@ -70,7 +70,7 @@ "react-hook-form": "^7.45.2", "react-is": "^18.2.0", "react-transition-group": "^4.4.2", - "reef-knot": "6.0.3", + "reef-knot": "7.0.1", "styled-components": "^5.3.5", "swr": "^1.3.0", "tiny-async-pool": "^1.2.0", diff --git a/pages/api/rpc.ts b/pages/api/rpc.ts index 7723c629a..57bffcd24 100644 --- a/pages/api/rpc.ts +++ b/pages/api/rpc.ts @@ -41,23 +41,23 @@ const allowedLogsAddresses: Record = Object.entries( ); const allowedRPCMethods = [ - 'test', - 'eth_call', - 'eth_gasPrice', - 'eth_getCode', - 'eth_estimateGas', - 'eth_getBlockByNumber', - 'eth_feeHistory', - 'eth_maxPriorityFeePerGas', - 'eth_getBalance', - 'eth_blockNumber', - 'eth_getTransactionByHash', - 'eth_getTransactionReceipt', - 'eth_getTransactionCount', - 'eth_sendRawTransaction', - 'eth_getLogs', - 'eth_chainId', - 'net_version', + 'test', + 'eth_call', + 'eth_gasPrice', + 'eth_getCode', + 'eth_estimateGas', + 'eth_getBlockByNumber', + 'eth_feeHistory', + 'eth_maxPriorityFeePerGas', + 'eth_getBalance', + 'eth_blockNumber', + 'eth_getTransactionByHash', + 'eth_getTransactionReceipt', + 'eth_getTransactionCount', + 'eth_sendRawTransaction', + 'eth_getLogs', + 'eth_chainId', + 'net_version', ]; const rpc = rpcFactory({ @@ -86,7 +86,6 @@ const rpc = rpcFactory({ maxGetLogsRange: 20_000, // only 20k blocks size historical queries maxResponseSize: 1_000_000, // 1mb max response }, - }); export default wrapNextRequest([ diff --git a/pages/withdrawals/[mode].tsx b/pages/withdrawals/[mode].tsx index 2065ecf15..3d28df4ec 100644 --- a/pages/withdrawals/[mode].tsx +++ b/pages/withdrawals/[mode].tsx @@ -5,12 +5,9 @@ import Head from 'next/head'; import { WithdrawalsTabs } from 'features/withdrawals'; import { WithdrawalsProvider } from 'features/withdrawals/contexts/withdrawals-context'; import { Layout } from 'shared/components'; -import { useWagmiKey } from 'modules/web3'; import { getDefaultStaticProps } from 'utilsApi/get-default-static-props'; const Withdrawals: FC = ({ mode }) => { - const key = useWagmiKey(); - return ( = ({ mode }) => { Withdrawals | Lido - + ); diff --git a/pages/wrap/[[...mode]].tsx b/pages/wrap/[[...mode]].tsx index d33aff243..13c82fe9f 100644 --- a/pages/wrap/[[...mode]].tsx +++ b/pages/wrap/[[...mode]].tsx @@ -4,12 +4,10 @@ import Head from 'next/head'; import { WrapUnwrapTabs } from 'features/wsteth/wrap-unwrap-tabs'; import { Layout } from 'shared/components'; -import { SupportL2Chains, useWagmiKey } from 'modules/web3'; +import { SupportL2Chains } from 'modules/web3'; import { getDefaultStaticProps } from 'utilsApi/get-default-static-props'; const WrapPage: FC = ({ mode }) => { - const key = useWagmiKey(); - return ( = ({ mode }) => { Wrap | Lido - + ); diff --git a/shared/components/tx-link-etherscan/tx-link-etherscan.tsx b/shared/components/tx-link-etherscan/tx-link-etherscan.tsx index 919f6388d..d9d9b18da 100644 --- a/shared/components/tx-link-etherscan/tx-link-etherscan.tsx +++ b/shared/components/tx-link-etherscan/tx-link-etherscan.tsx @@ -1,7 +1,7 @@ import { Link } from '@lidofinance/lido-ui'; -import { CHAINS } from 'consts/chains'; -import { getEtherscanTxLink } from 'utils/get-etherscan-tx-link'; +import { config } from 'config'; +import { getEtherscanTxLink } from 'utils/etherscan'; import { useDappStatus } from 'modules/web3'; type TxLinkEtherscanProps = { @@ -22,7 +22,7 @@ export const TxLinkEtherscan = (props: TxLinkEtherscanProps) => { return ( {text} diff --git a/shared/hook-form/form-controller/form-controller.tsx b/shared/hook-form/form-controller/form-controller.tsx index 816b71cce..8a247f872 100644 --- a/shared/hook-form/form-controller/form-controller.tsx +++ b/shared/hook-form/form-controller/form-controller.tsx @@ -4,6 +4,7 @@ import { useFormContext } from 'react-hook-form'; import { useDappStatus } from 'modules/web3'; import { useFormControllerContext } from './form-controller-context'; +import { useWagmiConnectionChangedCallback } from 'shared/hooks/use-wagmi-connection-changed-callback'; type FormControllerProps = React.ComponentProps<'form'>; @@ -42,6 +43,9 @@ export const FormController: FC> = ({ // eslint-disable-next-line react-hooks/exhaustive-deps }, [isDappActive]); + // Reset the form when chain id or wallet address changed + useWagmiConnectionChangedCallback(resetDefault); + return (
{children} diff --git a/shared/hooks/use-wagmi-connection-changed-callback.ts b/shared/hooks/use-wagmi-connection-changed-callback.ts new file mode 100644 index 000000000..5db87e54e --- /dev/null +++ b/shared/hooks/use-wagmi-connection-changed-callback.ts @@ -0,0 +1,17 @@ +import { useEffect, useRef } from 'react'; +import { useAccount } from 'wagmi'; + +// Triggered when chain id or wallet address changed +// except the case if initial connect +export const useWagmiConnectionChangedCallback = (callback: () => void) => { + const { address, chainId } = useAccount(); + const prevConnectStateRef = useRef([address, chainId]); + + useEffect(() => { + const [prevAddress, prevChainId] = prevConnectStateRef.current; + if (prevAddress && prevChainId) { + callback(); + } + prevConnectStateRef.current = [address, chainId]; + }, [address, chainId, callback]); +}; diff --git a/shared/wallet/fallback/lido-multichain-fallback/lido-multichain-fallback.tsx b/shared/wallet/fallback/lido-multichain-fallback/lido-multichain-fallback.tsx index 8347836ee..ae1784e70 100644 --- a/shared/wallet/fallback/lido-multichain-fallback/lido-multichain-fallback.tsx +++ b/shared/wallet/fallback/lido-multichain-fallback/lido-multichain-fallback.tsx @@ -13,6 +13,7 @@ import { ReactComponent as ScrollLogo } from 'assets/icons/lido-multichain/scrol import { ReactComponent as BNBLogo } from 'assets/icons/lido-multichain/bnb.svg'; import { ReactComponent as ModeLogo } from 'assets/icons/lido-multichain/mode.svg'; import { ReactComponent as ZircuitLogo } from 'assets/icons/lido-multichain/zircuit-logo.svg'; +import { ReactComponent as UnichainLogo } from 'assets/icons/lido-multichain/unichain.svg'; import { config } from 'config'; import { LIDO_MULTICHAIN_CHAINS } from 'consts/chains'; @@ -39,6 +40,7 @@ const multichainLogos = { [LIDO_MULTICHAIN_CHAINS['BNB Chain']]: BNBLogo, [LIDO_MULTICHAIN_CHAINS['Mode Chain']]: ModeLogo, [LIDO_MULTICHAIN_CHAINS['Zircuit Chain']]: ZircuitLogo, + [LIDO_MULTICHAIN_CHAINS.Unichain]: UnichainLogo, }; const getChainLogo = (chainId: LIDO_MULTICHAIN_CHAINS) => { diff --git a/shared/wallet/fallback/lido-multichain-fallback/styles.tsx b/shared/wallet/fallback/lido-multichain-fallback/styles.tsx index c0fb7ee9e..66d47361a 100644 --- a/shared/wallet/fallback/lido-multichain-fallback/styles.tsx +++ b/shared/wallet/fallback/lido-multichain-fallback/styles.tsx @@ -79,6 +79,10 @@ export const Wrap = styled((props) => )` #01bb81 91.42% ); `; + case LIDO_MULTICHAIN_CHAINS.Unichain: + return css` + background: linear-gradient(52.01deg, #fc0fa4 0.01%, #8e1459 100%); + `; default: return css` background: linear-gradient( diff --git a/shared/wallet/wallet-modal/wallet-modal.tsx b/shared/wallet/wallet-modal/wallet-modal.tsx index aedf0a5bf..95504a56e 100644 --- a/shared/wallet/wallet-modal/wallet-modal.tsx +++ b/shared/wallet/wallet-modal/wallet-modal.tsx @@ -10,10 +10,10 @@ import { import { openWindow } from '@lido-sdk/helpers'; import { useConnectorInfo, useDisconnect } from 'reef-knot/core-react'; -import { CHAINS } from 'consts/chains'; +import { config } from 'config'; import type { ModalComponentType } from 'providers/modal-provider'; import { useCopyToClipboard } from 'shared/hooks'; -import { getEtherscanAddressLink } from 'utils/get-etherscan-address-link'; +import { getEtherscanAddressLink } from 'utils/etherscan'; import { WalletModalContentStyle, WalletModalConnectedStyle, @@ -26,7 +26,7 @@ import { import { useDappStatus } from 'modules/web3'; export const WalletModal: ModalComponentType = ({ onClose, ...props }) => { - const { address, chainId, walletChainId } = useDappStatus(); + const { address, walletChainId } = useDappStatus(); const { connectorName } = useConnectorInfo(); const { disconnect } = useDisconnect(); @@ -41,12 +41,11 @@ export const WalletModal: ModalComponentType = ({ onClose, ...props }) => { // but not wrapped by SupportL2Chains (the chainId will never be a L2 network). // This is currently the fastest solution. const link = getEtherscanAddressLink( - walletChainId as CHAINS, + walletChainId ?? config.defaultChain, address ?? '', - chainId, ); openWindow(link); - }, [address, chainId, walletChainId]); + }, [address, walletChainId]); useEffect(() => { // Close the modal if a wallet was somehow disconnected while the modal was open diff --git a/utils/etherscan.ts b/utils/etherscan.ts new file mode 100644 index 000000000..8a28dc4c8 --- /dev/null +++ b/utils/etherscan.ts @@ -0,0 +1,36 @@ +import invariant from 'tiny-invariant'; +import { wagmiChainMap } from 'modules/web3/web3-provider/web3-provider'; + +export enum ETHERSCAN_ENTITIES { + TX = 'tx', + TOKEN = 'token', + ADDRESS = 'address', +} + +export const getEtherscanLink = ( + chainId: number, + hash: string, + entity: ETHERSCAN_ENTITIES, +): string => { + const wagmiChain = wagmiChainMap[chainId]; + invariant(wagmiChain, `chainId ${chainId} is unknown by wagmiChainMap`); + return `${wagmiChain?.blockExplorers?.default?.url}/${entity}/${hash}`; +}; + +export const getEtherscanTxLink = (chainId: number, hash: string): string => { + return getEtherscanLink(chainId, hash, ETHERSCAN_ENTITIES.TX); +}; + +export const getEtherscanTokenLink = ( + chainId: number, + hash: string, +): string => { + return getEtherscanLink(chainId, hash, ETHERSCAN_ENTITIES.TOKEN); +}; + +export const getEtherscanAddressLink = ( + chainId: number, + hash: string, +): string => { + return getEtherscanLink(chainId, hash, ETHERSCAN_ENTITIES.ADDRESS); +}; diff --git a/utils/get-etherscan-address-link.ts b/utils/get-etherscan-address-link.ts deleted file mode 100644 index 66d959389..000000000 --- a/utils/get-etherscan-address-link.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { getEtherscanLink as getEtherscanLinkSDK } from '@lido-sdk/helpers'; -import { CHAINS as CHAINS_SDK } from '@lido-sdk/constants'; - -import { CHAINS } from 'consts/chains'; - -export const getEtherscanAddressLink = ( - chainId: number, - address: string, - fallbackChainId: number, -): string => { - if (chainId === CHAINS.OptimismSepolia) { - return `https://sepolia-optimistic.etherscan.io/address/${address}`; - } else if (chainId === CHAINS.Optimism) { - return `https://optimistic.etherscan.io/address/${address}`; - } - - try { - return getEtherscanLinkSDK(chainId as CHAINS_SDK, address, 'address'); - } catch { - return getEtherscanLinkSDK( - fallbackChainId as CHAINS_SDK, - address, - 'address', - ); - } -}; diff --git a/utils/get-etherscan-tx-link.ts b/utils/get-etherscan-tx-link.ts deleted file mode 100644 index f7ca4fe46..000000000 --- a/utils/get-etherscan-tx-link.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { getEtherscanTxLink as getEtherscanTxLinkSDK } from '@lido-sdk/helpers'; -import { CHAINS as CHAINS_SDK } from '@lido-sdk/constants'; - -import { CHAINS } from 'consts/chains'; - -export const getEtherscanTxLink = ( - chainId: CHAINS | CHAINS_SDK, - hash: string, -): string => { - // TODO: use viem for getting explorer - if (chainId === CHAINS.OptimismSepolia) { - return `https://sepolia-optimistic.etherscan.io/tx/${hash}`; - } else if (chainId === CHAINS.Optimism) { - return `https://optimistic.etherscan.io/tx/${hash}`; - } - - return getEtherscanTxLinkSDK(chainId as CHAINS_SDK, hash); -}; diff --git a/yarn.lock b/yarn.lock index f95424405..a36ac85e2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2921,23 +2921,23 @@ 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@6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@reef-knot/connect-wallet-modal/-/connect-wallet-modal-6.0.1.tgz#65607c07d2f1c8a24ff63ce7b8903142aed95420" - integrity sha512-Z0Kk49+IUe+YCZ43qUjQUN0w0xGoAJDKKinyIRqrMfP0YJB06uzm51wbqFUbRQ8pAWA5U795W6MzrSUTr54V+w== +"@reef-knot/connect-wallet-modal@7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@reef-knot/connect-wallet-modal/-/connect-wallet-modal-7.0.1.tgz#6b7f5ea4b8507c213879acbf9b24713382c39666" + integrity sha512-86KymEMgDs+6bk/royoIFASd0HVfmvO6wkZ+QLfoRMVSRlT7XCXzvZ/aDhgQ+DQh4g5H4z3C0qaGSpUhp02VMA== dependencies: "@ledgerhq/hw-app-eth" "^6.37.1" "@ledgerhq/hw-transport" "^6.31.0" "@ledgerhq/hw-transport-webhid" "^6.29.0" "@lidofinance/lido-ui" "^3.18.0" - "@reef-knot/wallets-list" "^3.0.0" + "@reef-knot/wallets-list" "^4.0.0" "@types/react" "18.2.45" "@types/react-dom" "18.2.17" -"@reef-knot/core-react@5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@reef-knot/core-react/-/core-react-5.1.0.tgz#bc2e5b2e1dc844c19c67c0e16802da86f59ba748" - integrity sha512-JNndXyOXOi1U7YznQSKiMQT/P2EzX3UpNlYpjBegz6GAc4njomiy73Xw1fmDBFmvGuL596tnoX1iHG7sqTBpxg== +"@reef-knot/core-react@6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@reef-knot/core-react/-/core-react-6.0.0.tgz#06ca7b94e533dd3db1b95e58eba775de9dcca96a" + integrity sha512-QhK3V9X6gOPkdDYpOuJvBD6GqFXunRblJH+SHczMOpDdxL7IvNxITkCHAPxnr0nXD6VEGRsDPXOdhlIvmfONcA== "@reef-knot/ledger-connector@4.2.0": version "4.2.0" @@ -2961,10 +2961,10 @@ "@web3-react/types" "^6.0.7" tiny-invariant "^1.2.0" -"@reef-knot/types@3.0.0", "@reef-knot/types@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@reef-knot/types/-/types-3.0.0.tgz#e7d3ccc7bd0e1965405245c9c9b4e1cd1ea62471" - integrity sha512-tPg3c5JSlokzbiO+LHwhJgfH9bnT6jUA/KUG0SmLDX89vqhD4fHCPD1zwi3QZ87VAt8nJEYfTUUr8t0W6f1WFQ== +"@reef-knot/types@4.0.0", "@reef-knot/types@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@reef-knot/types/-/types-4.0.0.tgz#2ee46debfb5a795bb478ad17d0c238c3f69a7844" + integrity sha512-ZNlI/2XZGz4UQwOIpMFN3ADr+oQCQo8Niy6ky8lnOMKn5w95zONAzq5IGu6m4/cA8eucYhVP4OBhmrQGJW7OKQ== "@reef-knot/ui-react@2.1.5": version "2.1.5" @@ -2974,103 +2974,103 @@ react-transition-group "4" use-callback-ref "1.2.5" -"@reef-knot/wallet-adapter-ambire@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-ambire/-/wallet-adapter-ambire-3.0.0.tgz#6a22c4ff828127ddf4160a318119297dca28f024" - integrity sha512-YgmoACxb4NZFgRmIv4qkGveeHMTO587Z+hjopncwpREr7hs/HH89LvZw0FGnd+c8GwEHfkLr+c6VBK/K4EeaGA== +"@reef-knot/wallet-adapter-ambire@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-ambire/-/wallet-adapter-ambire-4.0.0.tgz#4e9a3ce763132c088233d5f6725bd96f6e3005b8" + integrity sha512-jaJodTqh8bw0w17vcyjAFlagb/Xpu/VOj7MNeyjKmByvIIPFfNFrmskq8OexvjjSNMw2CP5dVwgL7VWIc+DxAA== -"@reef-knot/wallet-adapter-binance-wallet@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-binance-wallet/-/wallet-adapter-binance-wallet-2.0.0.tgz#0a7fcc38fbb941e7985066c0fc3f6de0202951dd" - integrity sha512-ivMY8Vz2Yc8RByNLLa/C5Yg0SKQ9lwEmapZyVexo8CtizHNKjKAo9oYam9tCkbAD4rhdSjG3nK11vIiWclgwfA== +"@reef-knot/wallet-adapter-binance-wallet@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-binance-wallet/-/wallet-adapter-binance-wallet-3.0.0.tgz#30117b6c3f4885c5982f16a0eb314fa7d8daa609" + integrity sha512-biVDQSXwkpo/z4U0K54JF5soSRhtS4OIA54My4zGvlRkDBWRBxOv6uU+YwkRTxGNit16quND04j7kDtJdUrhfA== dependencies: "@binance/w3w-utils" "^1.1.6" "@binance/w3w-wagmi-connector-v2" "^1.2.3" -"@reef-knot/wallet-adapter-bitkeep@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-bitkeep/-/wallet-adapter-bitkeep-3.0.0.tgz#ab0d10e45097cb519ddedc5462a37480b42735d4" - integrity sha512-YgbJ+d0vo6sHFLUEjr24XZUdjiZ55jCq0hJx5sIUNteaXXVWMxNL/FnrH7znRzALoD+RpFNa80wQxSnyuRarFQ== - -"@reef-knot/wallet-adapter-brave@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-brave/-/wallet-adapter-brave-3.0.0.tgz#873a8b62f33307f087da5d3ac80ff2b17a68d468" - integrity sha512-CMjwB/OvjpFMW1YKBPNoAcgjMgIsSzL8Ts/WnTdH5Qfwavq1PXCrlF1iNdybEv2CSNE/F5Lci9jnCZjENCMjkA== - -"@reef-knot/wallet-adapter-browser-extension@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-browser-extension/-/wallet-adapter-browser-extension-3.0.0.tgz#2919fa952934b7e6359ecc0715bdaf2b19c4aa0d" - integrity sha512-Y7gb9JzMGBMbK8VldrgPHzY1DDubCrGCDzsY0c+dWErL6pxVDRmkr53GVmF0T84DuN0t9hVbvOrAaNAioqBP/g== +"@reef-knot/wallet-adapter-bitkeep@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-bitkeep/-/wallet-adapter-bitkeep-4.0.0.tgz#de1c3ab73408935c3495369ea9d90506c346b78b" + integrity sha512-CqRGSb6gnKYSwK+gOxsX4K5T31N42HCPVFbDkGUAECNHZEl/vS9gIwY04D7U7L8sI10rgJqYp8vLlflwnMod5Q== -"@reef-knot/wallet-adapter-coin98@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-coin98/-/wallet-adapter-coin98-3.0.0.tgz#9c4cc3e3e5671afad4778ab986e804d3ce239813" - integrity sha512-YaBFO18nWjghXxDkLomrcOdxAD8vfRzfI5Shl3da++sRAqeNens0t6wVegSsq4akkESxAp/X7lnq6AKA6i4vZg== +"@reef-knot/wallet-adapter-brave@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-brave/-/wallet-adapter-brave-4.0.0.tgz#3816be28bcbde295d1ceed9fb8fe56c3a4d52d5b" + integrity sha512-H1xGjCIbkeQhWUoh7rH9ea+S39G9QdUqyaIBjKEbG7pUIpUOiWMVVk2oprTGmwqfjDL1KnsB0oG6PmGwGRuiFg== -"@reef-knot/wallet-adapter-coinbase-smart-wallet@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-coinbase-smart-wallet/-/wallet-adapter-coinbase-smart-wallet-2.0.0.tgz#225f8047e1b4dac254e6f63514fd9155243997f6" - integrity sha512-18e/mHkD7kYp5u0mkvviLcDsSGJR7xpv0a7IyRL90zngMwiYZ2hlcHUwYL4BoVNxLJWsligxdauAkJKNMD20mQ== +"@reef-knot/wallet-adapter-browser-extension@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-browser-extension/-/wallet-adapter-browser-extension-4.0.0.tgz#6f4bf073d3a414d12003a7a68f98b66ce2a3085c" + integrity sha512-+YTVsvhFhtwYfOl/ehWUpFTWzqbgNrzP1JeDac6GMsZlAnCUwUty++G0uTlJZ7taYKnWUOEcILWmFq39ND0dbg== -"@reef-knot/wallet-adapter-coinbase@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-coinbase/-/wallet-adapter-coinbase-3.0.0.tgz#383d66e53ee6ff13b6563455d37db242faed9895" - integrity sha512-23XNmugzu9+tXOPY58aScGAbDC/dEgUvG5u1BqyIA0wKiTu+8JVnsk0qpqMAMxt487P/CXk7oo37bTwMoqS86g== +"@reef-knot/wallet-adapter-coin98@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-coin98/-/wallet-adapter-coin98-4.0.0.tgz#a544d39760c39d42a8fe739bb13555bd9ac2a633" + integrity sha512-f0xgdWffZG6SKArzUVYxafjANvzzjyq3gWngM6mw6huqTHdsWtESxbLdlx/UncQeoQm4H5+s7TIEihOsjZf4cQ== -"@reef-knot/wallet-adapter-dapp-browser-injected@3.0.0": +"@reef-knot/wallet-adapter-coinbase-smart-wallet@3.0.0": version "3.0.0" - resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-dapp-browser-injected/-/wallet-adapter-dapp-browser-injected-3.0.0.tgz#0e7f1e6b8ab595dc4947e02880d6c790b9992ced" - integrity sha512-G2RUDJDMxuxEdXB97cB9wbSAaq0YSjhkGhvNM8iRGbAhwgb4nWmxh8leXkLg4tZmjYkxBwm8gd1w0yT0Bt0v5A== + resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-coinbase-smart-wallet/-/wallet-adapter-coinbase-smart-wallet-3.0.0.tgz#1c0ec550d55a2a05ae85feff93b44e1cc1335ef0" + integrity sha512-S6cogxq2Tmageuu08ALrTLta0hj6hX4lwrefHC9nwnUIHWAA9/x9R6rCpV2kvcb0tEodmGIlsqmfj8BLTu3+ow== -"@reef-knot/wallet-adapter-exodus@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-exodus/-/wallet-adapter-exodus-3.0.0.tgz#942823c5fb0d75ea9aa34341f912a742d88f0fb0" - integrity sha512-GJzKUWkfSax/5wCR5lbfCU4CwU7uxzjNFyJvlicYCnJ+gQxdXi2reD7lCNtCNleKz+BtK0Z5VuCgKyezzSNz2A== +"@reef-knot/wallet-adapter-coinbase@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-coinbase/-/wallet-adapter-coinbase-4.0.0.tgz#f60c2670810cdc6bee8ebfb1e869917d719ca60f" + integrity sha512-UqJqTr6qBVhpQCWNckZaKaT3MZWJ/JQnbIJbg95+UODnq5U+TrwfE4M77WLQjTXCI0iL3GgqhL9/v4uvum2xHQ== -"@reef-knot/wallet-adapter-imtoken@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-imtoken/-/wallet-adapter-imtoken-3.0.0.tgz#ca7e1c6de6823b9b965e1bf865c220fb891ba983" - integrity sha512-xX0uMTO92Q2BO3WP9uDdDNO1GvFfBgD/tYgOA1AHO3YNg3THi3UBktY8XeEhY61Xg8cEICGnEw/UgwN3VRxfAA== +"@reef-knot/wallet-adapter-dapp-browser-injected@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-dapp-browser-injected/-/wallet-adapter-dapp-browser-injected-4.0.0.tgz#fe5d9f483b13a9becb871ca325792787739e2181" + integrity sha512-4zLtkzvTT64pz9e5r3F/+DHSSG3aP7Gd58H9XoPM+7zbDhpjXlxY9zQrFbuQxhFKjxdD9cMfQMpXbS3xKo8neg== -"@reef-knot/wallet-adapter-ledger-hid@4.0.0": +"@reef-knot/wallet-adapter-exodus@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-ledger-hid/-/wallet-adapter-ledger-hid-4.0.0.tgz#6a3b620d68d73e00258ea142d79a7c7666ca47d0" - integrity sha512-e9XS6gyr8t7v5F6xqp+XlrDrHipkEZZAWuHlzx+FlC9s7cSex8hnTXeTMsLGd5SwitxAKy2RSvNvo/F0VUrpUg== + resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-exodus/-/wallet-adapter-exodus-4.0.0.tgz#396d11d62305387746951c3a9ef140ed54376352" + integrity sha512-Qpg06wgFOoR67LgbOUO0NqbV+FhLk/THzHbjMcZ0a3kxt1S/1aPGfIL1+OJEQU+HUDv1Hxcx+TS9oQf+KrK2Zg== -"@reef-knot/wallet-adapter-ledger-live@4.0.0": +"@reef-knot/wallet-adapter-imtoken@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-ledger-live/-/wallet-adapter-ledger-live-4.0.0.tgz#24ef7c5a0ce58a5fd6e6973cdfe42155d3084424" - integrity sha512-QzbxFA/V9DtvZJ4XYceNHAeiu0nmmImy0dddlpCa0eBXsuji19dE6E0JQZELllGp/of67Ky0SgdbytQY8Fncjg== + resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-imtoken/-/wallet-adapter-imtoken-4.0.0.tgz#eb2a65a5d0d6e8b6a89e536235a1ef7e0f532b17" + integrity sha512-mcR5bz5K2RCEuJl5aQeUe3ioiEcNZjA7wU7A38jIQhswMtX58P5kCUkU10RvkzMDzZ6a4ZZS0hRQ+aVJjsNz3w== -"@reef-knot/wallet-adapter-metamask@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-metamask/-/wallet-adapter-metamask-3.0.0.tgz#7194cbe90d74c8bba43a5c5fc1f0c32b0f9dc9b1" - integrity sha512-RvAvWPzkpZawQU/ev9rt/82rtkul3lw3GZ9qxpBXTtG2OhEl1MYo/G83/LO8PaDbyN/9w5w09EX0kHPmwbttSQ== +"@reef-knot/wallet-adapter-ledger-hid@5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-ledger-hid/-/wallet-adapter-ledger-hid-5.0.0.tgz#437e287dddad277a26a54c8e1be644a7da7cedcc" + integrity sha512-m0A7C1ww95HoWUMELF4GZN6/Ql3hwowr6E+xmSq4f0hvxOSgOZni6MnJFEutlu7UY5EuKz2ikDniVquNEhG5hQ== -"@reef-knot/wallet-adapter-okx@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-okx/-/wallet-adapter-okx-3.0.0.tgz#443af63acccf7ab964d8d7fc15e934fda665b4bb" - integrity sha512-gwTvCZrjbCTv/BGfk/ZjB0lRrBM9AeZ4boz7X5vDDFTw9RAMLRQi7T3aNrSybGpNNcVvS5YGS2S9b8oZX7cLGg== +"@reef-knot/wallet-adapter-ledger-live@5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-ledger-live/-/wallet-adapter-ledger-live-5.0.0.tgz#122897b1791d03aef6cb52bb37301ba1ab7c7f5a" + integrity sha512-8Ibx8h8Wjx/7ayAPiZQwuOJEZGenhxq6AQNzQkUA5DidfbsDM2JHyGj0H1MW1gHLv0adhpAAV1aMZtxidKOYyg== -"@reef-knot/wallet-adapter-safe@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-safe/-/wallet-adapter-safe-3.0.0.tgz#4e99e38e3ea0964f625c1dfd3b2ea3d7a9a956ea" - integrity sha512-I2aaSX8Gn5OMLX5rQOs3195PFhf8FaqwQnpuFFQTSGAPFvvGLmXkSN8FnmXKyghvTZX+VNuMhv9Q6+INwIsAoQ== +"@reef-knot/wallet-adapter-metamask@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-metamask/-/wallet-adapter-metamask-4.0.0.tgz#fee331d1c095676c61057f1d89406a56e70e128c" + integrity sha512-2y1156wM1jBlK5mAxtfWUk4UhaJgtrJ3u/4HW9abH5d1P5mIohn4lwqdS67EJ8HWLtOn9g+9ByPlGM9sOdcvaA== -"@reef-knot/wallet-adapter-trust@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-trust/-/wallet-adapter-trust-3.0.0.tgz#622f96d51df8d98a5419dc864638773382a5ca7c" - integrity sha512-4cv95KC+6zEqEnkiwLKrmJkUQKcc+jBqpxiDeh0e0ezYVd51yS55YHmZ7blzGncg6iQVJJVJxgv9FN6g9huTtg== +"@reef-knot/wallet-adapter-okx@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-okx/-/wallet-adapter-okx-4.0.0.tgz#be556adf7c9ce3e8b43d28f09fcf827b6f3add3d" + integrity sha512-5J227Qe27rdyTATlgQ5QLY20iK20m7HHXzE6hol+tZ2ZYDS2JDrwDdtf7LdY8Kaacyi9QevmIvNJ1z1Qzy2xeA== -"@reef-knot/wallet-adapter-walletconnect@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-walletconnect/-/wallet-adapter-walletconnect-3.0.0.tgz#4540e376b3960657ca9fc298822a1534e228c4ea" - integrity sha512-+kJtpbpn4gID2le5OtVLdtE86wABCMLGGYZShOREx6nXwDsZSJtkas4RF3eqMK5gZGxYBC1+ZUHWlMVQcw0fEw== +"@reef-knot/wallet-adapter-safe@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-safe/-/wallet-adapter-safe-4.0.0.tgz#83ecce8891bcbcf81f8d7d6d703c75af05a5ba78" + integrity sha512-XCBDJG5BxYYZCxMieumZiPdNKyMa6WJ5E4h5tVlhGjLLhunQJLHo5wImYlvzS1CyT7DYTplaMrc8r60ycvPdhQ== -"@reef-knot/wallet-adapter-xdefi@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-xdefi/-/wallet-adapter-xdefi-3.0.0.tgz#89e4a9f67bba6ecedcbbf5d6f3fc568dd1518629" - integrity sha512-reiyLhrSqN/5kn5x5xIKxR1YsLBO3ZJl5uQRmsRxUZhXYGbWAvjOQkJ/04CqF+FENLhqDAGsu/GBp7bV2SDepQ== +"@reef-knot/wallet-adapter-trust@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-trust/-/wallet-adapter-trust-4.0.0.tgz#e551b0f4f1490543ad89bb474789a7f39108d712" + integrity sha512-4VNsdW+botVbeyZI/vAL3kqcFLJefYHCl4vDpTlSvcjSCJfuyxqU2VZGo7GkLBW6ONN2Lnitf15MydgkPBj0Ag== + +"@reef-knot/wallet-adapter-walletconnect@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-walletconnect/-/wallet-adapter-walletconnect-4.0.0.tgz#7aa49b8148c789a69af16655da9d486c3dceb4e2" + integrity sha512-Vcxqw6l/gEeW1arxMQQVeJo0nmRFVCzfUy2/gBYSF/fFLr/z4/980ghGCpMWnH3xjG5dObZB330dSfClLVDo7w== + +"@reef-knot/wallet-adapter-xdefi@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-xdefi/-/wallet-adapter-xdefi-4.0.0.tgz#9ce8720ea12c7c6b14379d4adae69107e8f41dab" + integrity sha512-C/MGlscHtUSn7bbWfyJki2EWJ4C7TxkGRjuuC5daX4/zkcJgVqOBHNB2wETKzLBbP4LhLx1Tx7MaQwbMexGRnQ== "@reef-knot/wallets-helpers@2.1.1": version "2.1.1" @@ -3080,35 +3080,35 @@ "@types/ua-parser-js" "0.7.39" ua-parser-js "1.0.37" -"@reef-knot/wallets-list@3.0.0", "@reef-knot/wallets-list@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@reef-knot/wallets-list/-/wallets-list-3.0.0.tgz#aa0cfe4a206ecf883ac460de13d42b197d69b240" - integrity sha512-u+oygH28tFmHVo9U1iE/QogD8Fmz+1kF2XccSHeq04L/Jq/0nfgkvSl65AibNbecaxLORqFOIHP3SxOLyhzKmw== - dependencies: - "@reef-knot/wallet-adapter-ambire" "3.0.0" - "@reef-knot/wallet-adapter-binance-wallet" "2.0.0" - "@reef-knot/wallet-adapter-bitkeep" "3.0.0" - "@reef-knot/wallet-adapter-brave" "3.0.0" - "@reef-knot/wallet-adapter-browser-extension" "3.0.0" - "@reef-knot/wallet-adapter-coin98" "3.0.0" - "@reef-knot/wallet-adapter-coinbase" "3.0.0" - "@reef-knot/wallet-adapter-coinbase-smart-wallet" "2.0.0" - "@reef-knot/wallet-adapter-dapp-browser-injected" "3.0.0" - "@reef-knot/wallet-adapter-exodus" "3.0.0" - "@reef-knot/wallet-adapter-imtoken" "3.0.0" - "@reef-knot/wallet-adapter-ledger-hid" "4.0.0" - "@reef-knot/wallet-adapter-ledger-live" "4.0.0" - "@reef-knot/wallet-adapter-metamask" "3.0.0" - "@reef-knot/wallet-adapter-okx" "3.0.0" - "@reef-knot/wallet-adapter-safe" "3.0.0" - "@reef-knot/wallet-adapter-trust" "3.0.0" - "@reef-knot/wallet-adapter-walletconnect" "3.0.0" - "@reef-knot/wallet-adapter-xdefi" "3.0.0" - -"@reef-knot/web3-react@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@reef-knot/web3-react/-/web3-react-5.0.0.tgz#0e12be5ebbfe1d411afbea86905632ced6d3e079" - integrity sha512-NQhlpixF2Ue1b7+o3cGMrh4u1ZNukGIr5u81gIkTGuvDFUavfSwHoEkE2S5zW6zYVcP8wd5K6qUk89Uf9DqijQ== +"@reef-knot/wallets-list@4.0.0", "@reef-knot/wallets-list@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@reef-knot/wallets-list/-/wallets-list-4.0.0.tgz#00e1c1602acde0fffb6c23173a71e37285f2c9c8" + integrity sha512-Em4bwAx15hf4tGpHVG6Wg3BOlymVIt35zElpCe21bONZqqh6H9ylmqLexDZv87UnzRZ+Jnbic5pKvmYRGKsAqA== + dependencies: + "@reef-knot/wallet-adapter-ambire" "4.0.0" + "@reef-knot/wallet-adapter-binance-wallet" "3.0.0" + "@reef-knot/wallet-adapter-bitkeep" "4.0.0" + "@reef-knot/wallet-adapter-brave" "4.0.0" + "@reef-knot/wallet-adapter-browser-extension" "4.0.0" + "@reef-knot/wallet-adapter-coin98" "4.0.0" + "@reef-knot/wallet-adapter-coinbase" "4.0.0" + "@reef-knot/wallet-adapter-coinbase-smart-wallet" "3.0.0" + "@reef-knot/wallet-adapter-dapp-browser-injected" "4.0.0" + "@reef-knot/wallet-adapter-exodus" "4.0.0" + "@reef-knot/wallet-adapter-imtoken" "4.0.0" + "@reef-knot/wallet-adapter-ledger-hid" "5.0.0" + "@reef-knot/wallet-adapter-ledger-live" "5.0.0" + "@reef-knot/wallet-adapter-metamask" "4.0.0" + "@reef-knot/wallet-adapter-okx" "4.0.0" + "@reef-knot/wallet-adapter-safe" "4.0.0" + "@reef-knot/wallet-adapter-trust" "4.0.0" + "@reef-knot/wallet-adapter-walletconnect" "4.0.0" + "@reef-knot/wallet-adapter-xdefi" "4.0.0" + +"@reef-knot/web3-react@6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@reef-knot/web3-react/-/web3-react-6.0.0.tgz#4b13261efef4baea4bf485f645e3d51bd8e3dda1" + integrity sha512-/XOQvpHDCz3XpkQNWgexhDcJWSY7/47yRkT+U6avWP2D528HKnebzh1DnnYefD/+5PncIk+2I6uYH64JXxWJOw== dependencies: tiny-invariant "^1.1.0" @@ -9537,19 +9537,19 @@ redis-parser@^3.0.0: dependencies: redis-errors "^1.0.0" -reef-knot@6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/reef-knot/-/reef-knot-6.0.3.tgz#7077ec539695a1d94558f4025a59cd02af41aa36" - integrity sha512-ngeDPAaQevVq3JvKjzALN8DfjP674li9TluYZEJYz+X/Uj2N1kSATm4scNVRNhItSrmiMlmr6tt5g7FNC6LEqA== +reef-knot@7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/reef-knot/-/reef-knot-7.0.1.tgz#b49700dc0e053e55087275b015779c18cb0e232e" + integrity sha512-isp9mWwCJ/2ncg3dIEMI9HstAMB25xKiscP36qo+T+6KmgFXyv1B+OcivTkXT4oKoxGe4aeU2pubrLoTexUTnA== dependencies: - "@reef-knot/connect-wallet-modal" "6.0.1" - "@reef-knot/core-react" "5.1.0" + "@reef-knot/connect-wallet-modal" "7.0.1" + "@reef-knot/core-react" "6.0.0" "@reef-knot/ledger-connector" "4.2.0" - "@reef-knot/types" "3.0.0" + "@reef-knot/types" "4.0.0" "@reef-knot/ui-react" "2.1.5" "@reef-knot/wallets-helpers" "2.1.1" - "@reef-knot/wallets-list" "3.0.0" - "@reef-knot/web3-react" "5.0.0" + "@reef-knot/wallets-list" "4.0.0" + "@reef-knot/web3-react" "6.0.0" reflect.getprototypeof@^1.0.4: version "1.0.4"