From 13701e229a0d0a75d3947e0792962fee1cb29505 Mon Sep 17 00:00:00 2001 From: Daniel Dimitrov Date: Mon, 11 Mar 2024 14:11:31 +0100 Subject: [PATCH] WIP --- package.json | 2 +- src/components/stake/Widget.tsx | 50 ++++- .../flows/SafeAppsTx/ReviewSafeAppsTx.tsx | 4 + .../tx-flow/flows/SafeAppsTx/index.tsx | 3 +- src/services/safe-wallet-provider/index.ts | 3 +- .../useSafeWalletProvider.tsx | 3 +- yarn.lock | 210 +++++++++--------- 7 files changed, 161 insertions(+), 114 deletions(-) diff --git a/package.json b/package.json index 3db01a5376..665f7cae4b 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "@safe-global/safe-modules-deployments": "^1.2.0", "@sentry/react": "^7.91.0", "@spindl-xyz/attribution-lite": "^1.4.0", - "@stakekit/widget": "^0.0.107", + "@stakekit/widget": "^0.0.114", "@tkey-mpc/common-types": "^8.2.2", "@truffle/hdwallet-provider": "^2.1.4", "@vanilla-extract/next-plugin": "^2.3.6", diff --git a/src/components/stake/Widget.tsx b/src/components/stake/Widget.tsx index ba2a8108f6..565aede634 100644 --- a/src/components/stake/Widget.tsx +++ b/src/components/stake/Widget.tsx @@ -1,21 +1,61 @@ import '@stakekit/widget/package/css' import { SKApp, darkTheme, lightTheme } from '@stakekit/widget' -import useSafeWalletProvider from '../../services/safe-wallet-provider/useSafeWalletProvider' import { useDarkMode } from '../../hooks/useDarkMode' import css from './styles.module.css' +import useSafeWalletProvider, { _useTxFlowApi } from '../../services/safe-wallet-provider/useSafeWalletProvider' +import type { ComponentProps } from 'react' +import { useMemo } from 'react' +import useSafeInfo from '../../hooks/useSafeInfo' +import { OperationType } from '@safe-global/safe-core-sdk-types' +import type { AppInfo } from '../../services/safe-wallet-provider' export const Widget = () => { - const wallet = useSafeWalletProvider() + const safeProvider = useSafeWalletProvider() + const { safe, safeAddress } = useSafeInfo() + const txFlowApi = _useTxFlowApi(safe.chainId, safeAddress) const darkMode = useDarkMode() - if (!wallet) return null + const providerParams = useMemo['externalProviders']> | null>(() => { + if (!safeProvider || !txFlowApi) return null - console.log('wallet', wallet) + return { + type: 'safe_wallet', + provider: { + getAccounts: safeProvider.eth_accounts.bind(safeProvider), + getChainId: safeProvider.eth_chainId.bind(safeProvider), + getTransactionReceipt: safeProvider.eth_getTransactionReceipt.bind(safeProvider), + switchEthereumChain: safeProvider.wallet_switchEthereumChain.bind(safeProvider), + sendTransactions: ({ + txs, + appInfo, + }: { + txs: { + gas: string | number + to: string + value: string + data: string + }[] + appInfo: AppInfo + }) => + txFlowApi + .send( + { + txs, + params: { safeTxGas: 0, operation: txs.length > 1 ? OperationType.DelegateCall : OperationType.Call }, + }, + appInfo, + ) + .then((res) => ({ hash: res.txHash ?? res.safeTxHash })), + }, + } + }, [safeProvider, txFlowApi]) + + if (!providerParams) return null return (
diff --git a/src/components/tx-flow/flows/SafeAppsTx/ReviewSafeAppsTx.tsx b/src/components/tx-flow/flows/SafeAppsTx/ReviewSafeAppsTx.tsx index e87d88daf1..bdcb5fdae6 100644 --- a/src/components/tx-flow/flows/SafeAppsTx/ReviewSafeAppsTx.tsx +++ b/src/components/tx-flow/flows/SafeAppsTx/ReviewSafeAppsTx.tsx @@ -37,6 +37,10 @@ const ReviewSafeAppsTx = ({ const isMultiSend = txs.length > 1 const tx = isMultiSend ? await createMultiSendCallOnlyTx(txs) : await createTx(txs[0]) + if (params?.operation) { + tx.data.operation = params.operation + } + if (params?.safeTxGas !== undefined) { // FIXME: do it properly via the Core SDK // @ts-expect-error safeTxGas readonly diff --git a/src/components/tx-flow/flows/SafeAppsTx/index.tsx b/src/components/tx-flow/flows/SafeAppsTx/index.tsx index 297d13f569..91b6898ecb 100644 --- a/src/components/tx-flow/flows/SafeAppsTx/index.tsx +++ b/src/components/tx-flow/flows/SafeAppsTx/index.tsx @@ -3,13 +3,14 @@ import TxLayout from '@/components/tx-flow/common/TxLayout' import type { SafeAppData } from '@safe-global/safe-gateway-typescript-sdk' import ReviewSafeAppsTx from './ReviewSafeAppsTx' import { AppTitle } from '@/components/tx-flow/flows/SignMessage' +import type { OperationType } from '@safe-global/safe-core-sdk-types' export type SafeAppsTxParams = { appId?: string app?: Partial requestId: RequestId txs: BaseTransaction[] - params?: SendTransactionRequestParams + params?: SendTransactionRequestParams & { operation?: OperationType } } const SafeAppsTxFlow = ({ diff --git a/src/services/safe-wallet-provider/index.ts b/src/services/safe-wallet-provider/index.ts index 5001cb8edc..94b73d1083 100644 --- a/src/services/safe-wallet-provider/index.ts +++ b/src/services/safe-wallet-provider/index.ts @@ -2,6 +2,7 @@ import type { TransactionDetails } from '@safe-global/safe-gateway-typescript-sd import { TransactionStatus } from '@safe-global/safe-gateway-typescript-sdk' import type { TransactionReceipt } from 'ethers' import { numberToHex } from '@/utils/hex' +import type { OperationType } from '@safe-global/safe-core-sdk-types' type SafeInfo = { safeAddress: string @@ -24,7 +25,7 @@ export type WalletSDK = { signMessage: (message: string, appInfo: AppInfo) => Promise<{ signature?: string }> signTypedMessage: (typedData: unknown, appInfo: AppInfo) => Promise<{ signature?: string }> send: ( - params: { txs: unknown[]; params: { safeTxGas: number } }, + params: { txs: unknown[]; params: { safeTxGas: number; operation?: OperationType } }, appInfo: AppInfo, ) => Promise<{ safeTxHash: string; txHash?: string }> getBySafeTxHash: (safeTxHash: string) => Promise diff --git a/src/services/safe-wallet-provider/useSafeWalletProvider.tsx b/src/services/safe-wallet-provider/useSafeWalletProvider.tsx index 0138887c65..f076663ac1 100644 --- a/src/services/safe-wallet-provider/useSafeWalletProvider.tsx +++ b/src/services/safe-wallet-provider/useSafeWalletProvider.tsx @@ -22,6 +22,7 @@ import { SignMessageOnChainFlow } from '@/components/tx-flow/flows' import { useAppSelector } from '@/store' import { selectOnChainSigning } from '@/store/settingsSlice' import { isOffchainEIP1271Supported } from '@/utils/safe-messages' +import type { OperationType } from '@safe-global/safe-core-sdk-types' export const _useTxFlowApi = (chainId: string, safeAddress: string): WalletSDK | undefined => { const { safe } = useSafeInfo() @@ -110,7 +111,7 @@ export const _useTxFlowApi = (chainId: string, safeAddress: string): WalletSDK | return await signMessage(typedData as EIP712TypedData, appInfo, Methods.signTypedMessage) }, - async send(params: { txs: any[]; params: { safeTxGas: number } }, appInfo) { + async send(params: { txs: any[]; params: { safeTxGas: number; operation?: OperationType } }, appInfo) { const id = Math.random().toString(36).slice(2) const transactions = params.txs.map(({ to, value, data }) => { diff --git a/yarn.lock b/yarn.lock index 96f0300615..1564970c6b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1591,41 +1591,41 @@ "@cosmos-kit/keplr-extension" "^2.7.9" "@cosmos-kit/keplr-mobile" "^2.6.9" -"@cosmos-kit/leap-extension@^2.7.9": - version "2.7.9" - resolved "https://registry.yarnpkg.com/@cosmos-kit/leap-extension/-/leap-extension-2.7.9.tgz#f0d05b9adc89963a31996852d9426e4b47d38492" - integrity sha512-+F764htkzaHz/MRQOZf/iO72NmquGLU9l+nec+HlInooJ3EZianrP/3H61PVlbjdQ3RrHRFznn4FNapOVnqXCw== +"@cosmos-kit/leap-extension@^2.7.10": + version "2.7.10" + resolved "https://registry.yarnpkg.com/@cosmos-kit/leap-extension/-/leap-extension-2.7.10.tgz#ff109ead4358f9cbe0b5a727733689d2bea3a60a" + integrity sha512-vVMkF+64oMFLbrw244AxoUR4vrFSKlOHhFHw7wOEHfeTSdvX4mcCsU8CC1LtVV5Bc0msVdkNWVbE04VEump8rg== dependencies: "@chain-registry/keplr" "1.28.0" "@cosmos-kit/core" "^2.8.9" -"@cosmos-kit/leap-metamask-cosmos-snap@^0.6.0": - version "0.6.0" - resolved "https://registry.yarnpkg.com/@cosmos-kit/leap-metamask-cosmos-snap/-/leap-metamask-cosmos-snap-0.6.0.tgz#1b3aae4c41bb1f1daf251c30be051c3752bc2203" - integrity sha512-KO4tHQm8QkHYwnADWGMUkvEEIRJzYHgA09YImhPfSGhqsCsjLzDAIStS12J5iqU1v+Py8uX1n7AGd339amMV5g== +"@cosmos-kit/leap-metamask-cosmos-snap@^0.6.2": + version "0.6.2" + resolved "https://registry.yarnpkg.com/@cosmos-kit/leap-metamask-cosmos-snap/-/leap-metamask-cosmos-snap-0.6.2.tgz#951d3934c781a8135247e5270bdb52a5fb6be311" + integrity sha512-47Kq0ZrXNinbTfNH0i0GtxdfIDkq7iaixLQ5p9qc56CtiqBtT4bSrZoYqUl3nlM7iFKTtrb7FdCPkAVkWpYUew== dependencies: "@chain-registry/keplr" "1.28.0" "@cosmos-kit/core" "^2.8.9" "@leapwallet/cosmos-snap-provider" "0.1.25" "@metamask/providers" "^11.1.1" -"@cosmos-kit/leap-mobile@^2.6.9": - version "2.6.9" - resolved "https://registry.yarnpkg.com/@cosmos-kit/leap-mobile/-/leap-mobile-2.6.9.tgz#c772988732c9fa92ecbc52b82671e47baa0ab76e" - integrity sha512-ecyPcfeBSI8PiXbAMG9t9HLTJw7G3C3y6sZpVdJAOp0dOPbLLiHd3782veC0ts3Sps7Z148lSKkpIeRfdfRS4Q== +"@cosmos-kit/leap-mobile@^2.6.10": + version "2.6.10" + resolved "https://registry.yarnpkg.com/@cosmos-kit/leap-mobile/-/leap-mobile-2.6.10.tgz#f7fdc404c41f61d8e8d6a4e70f77c71e5dcca31d" + integrity sha512-IpKThc3BMM6X/ItXK0kuEnaN/0397aCXNbRmx4mWnxQgFljEo+XncoOs8VZcf6q89Td+GOAvuMQ5djDKXNR4Ew== dependencies: "@chain-registry/keplr" "1.28.0" "@cosmos-kit/core" "^2.8.9" "@cosmos-kit/walletconnect" "^2.5.9" -"@cosmos-kit/leap@^2.6.9": - version "2.6.9" - resolved "https://registry.yarnpkg.com/@cosmos-kit/leap/-/leap-2.6.9.tgz#2aad3284699bd77331130b2b62350d0124ef3c0f" - integrity sha512-jtHzdcQ+Jx7oqQuKl1blu+NpNbjmJxSt0i8La8XMsLK2cYMxmlefelabkK2uV/ToMVpV7DN0zrTvyPWblEWfMw== +"@cosmos-kit/leap@^2.6.10": + version "2.6.12" + resolved "https://registry.yarnpkg.com/@cosmos-kit/leap/-/leap-2.6.12.tgz#769bbb2426049bfa8d4b71e3aa1f8d4ae1b1aba1" + integrity sha512-oBxj3pQEuF2YPIJdn2hZ6pOHF1hsqpmPNg3ywDDlOXJE4pubtVYqk5pQpPVndt9OHzCSTyJr1pj2ZH+Pksb9Hg== dependencies: - "@cosmos-kit/leap-extension" "^2.7.9" - "@cosmos-kit/leap-metamask-cosmos-snap" "^0.6.0" - "@cosmos-kit/leap-mobile" "^2.6.9" + "@cosmos-kit/leap-extension" "^2.7.10" + "@cosmos-kit/leap-metamask-cosmos-snap" "^0.6.2" + "@cosmos-kit/leap-mobile" "^2.6.10" "@cosmos-kit/walletconnect@2.5.9", "@cosmos-kit/walletconnect@^2.5.9": version "2.5.9" @@ -2921,7 +2921,7 @@ resolved "https://registry.yarnpkg.com/@faker-js/faker/-/faker-8.1.0.tgz#e14896f1c57af2495e341dc4c7bf04125c8aeafd" integrity sha512-38DT60rumHfBYynif3lmtxMqMqmsOQIxQgEuPZxCk2yUYN0eqWpTACgxi0VpidvsJB8CRxCpvP7B3anK85FjtQ== -"@faker-js/faker@^8.3.1": +"@faker-js/faker@^8.4.1": version "8.4.1" resolved "https://registry.yarnpkg.com/@faker-js/faker/-/faker-8.4.1.tgz#5d5e8aee8fce48f5e189bf730ebd1f758f491451" integrity sha512-XQ3cU+Q8Uqmrbf2e0cIC/QN43sTBSC8KF12u29Mb47tWrt2hAgBXSgpZMj4Ao8Uk0iJcU99QsOCaIL8934obCg== @@ -4145,19 +4145,19 @@ bignumber.js "^9.1.2" rxjs "6" -"@ledgerhq/wallet-api-client@^1.5.4": - version "1.5.4" - resolved "https://registry.yarnpkg.com/@ledgerhq/wallet-api-client/-/wallet-api-client-1.5.4.tgz#9d45383f8a79176737abcac43b019443e49cc1bf" - integrity sha512-tOfKvgLYPUIuVFYkygBNoyZmJvlTvWf2A83EdGnNjAlETj1JPPMJYzLy9D4zGroZ/lBXgf2kmfgrwkgDwSB7cA== +"@ledgerhq/wallet-api-client@^1.5.5": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@ledgerhq/wallet-api-client/-/wallet-api-client-1.5.5.tgz#e69a27925b38b347c06f680a83c3f907d7dfacf8" + integrity sha512-xZTVotu6lM7LpRiC+Toc4dcsgQe81A6wVd78WlzVrCCWcwhj95Xyz97w3j18ETn2d9Gqacsd+hAsHajJjmH/2w== dependencies: "@ledgerhq/hw-transport" "^6.28.8" - "@ledgerhq/wallet-api-core" "1.7.1" + "@ledgerhq/wallet-api-core" "1.7.2" bignumber.js "^9.1.2" -"@ledgerhq/wallet-api-core@1.7.1": - version "1.7.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/wallet-api-core/-/wallet-api-core-1.7.1.tgz#c6bb9fa579b3f6cb4a766ffea88f3f15685bea42" - integrity sha512-VdGe/JRp+sNnAQ+dYphkhyl81gPlCru0CPpZY8etLogPb+xBdYrAuSq6X0P/HM8M5pyN0xKg9VjjxYT8ponwUQ== +"@ledgerhq/wallet-api-core@1.7.2": + version "1.7.2" + resolved "https://registry.yarnpkg.com/@ledgerhq/wallet-api-core/-/wallet-api-core-1.7.2.tgz#8fab0b8f1b03b7f4b7d7625b798d55ae77d7f826" + integrity sha512-McleNF0FlL7xIuAIWozfpjDabhjbkNL3pvxRVGc84rVrv0G03RcKVuXqQKY7L+5zxbSQ7m4qxQnPXlaLaekk1w== dependencies: "@ledgerhq/errors" "^6.14.0" bignumber.js "^9.1.2" @@ -5120,10 +5120,10 @@ redux-thunk "^2.4.2" reselect "^4.1.8" -"@remix-run/router@1.15.1": - version "1.15.1" - resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.15.1.tgz#221fd31a65186b9bc027b74573485fb3226dff7f" - integrity sha512-zcU0gM3z+3iqj8UX45AmWY810l3oUmXM7uH4dt5xtzvMhRtYVhKGOmgOd1877dOPPepfCjUv57w+syamWIYe7w== +"@remix-run/router@1.15.3": + version "1.15.3" + resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.15.3.tgz#d2509048d69dbb72d5389a14945339f1430b2d3c" + integrity sha512-Oy8rmScVrVxWZVOpEF57ovlnhpZ8CCPlnIIumVcV9nFdiSIrus99+Lw78ekXyGvVDlIsFJbSfmSovJUhCWYV3w== "@rollup/plugin-babel@^5.2.0": version "5.3.1" @@ -5737,21 +5737,21 @@ "@stablelib/random" "^1.0.2" "@stablelib/wipe" "^1.0.1" -"@stakekit/api-hooks@^0.0.56": - version "0.0.56" - resolved "https://registry.yarnpkg.com/@stakekit/api-hooks/-/api-hooks-0.0.56.tgz#d8f267a1ae18f59827358b8d4326fd194dcf0e73" - integrity sha512-LYeBmmqDqmfKClJjT58Db6qXCK47hLrKe/8zj8HfKER+/AelWKvTbH246IkWemtHdKD+lImc3X9H5AMl0stxeg== +"@stakekit/api-hooks@^0.0.58": + version "0.0.58" + resolved "https://registry.yarnpkg.com/@stakekit/api-hooks/-/api-hooks-0.0.58.tgz#1c07470847835e8c878b249101d80d01ff7258f5" + integrity sha512-OCJX1OivtyGYA+WsPlpopq9F1R4WqJjRKtbjYwk8AfwNPNKwblZEQP13gPIuHasYiNvAzgFh0RL8mA9H15gLLQ== dependencies: - "@faker-js/faker" "^8.3.1" - "@tanstack/react-query" "^5.17.19" - axios "^1.6.5" + "@faker-js/faker" "^8.4.1" + "@tanstack/react-query" "^5.24.1" + axios "^1.6.7" lodash.merge "^4.6.2" - msw "^2.1.4" + msw "^2.2.2" -"@stakekit/common@^0.0.24": - version "0.0.24" - resolved "https://registry.yarnpkg.com/@stakekit/common/-/common-0.0.24.tgz#579afa2a7082989614888c0ad004b807ff2cc78d" - integrity sha512-BNT1+PD7afWp10eeUFcx19/vGeKNdwHJTXlXDCnmepMHALc+byaWcvPVQ0bn25ax0y5GlfgPLhsuCTecN9qPfg== +"@stakekit/common@^0.0.25": + version "0.0.25" + resolved "https://registry.yarnpkg.com/@stakekit/common/-/common-0.0.25.tgz#28c1992fd0a88f9e1aedb5c12e17bda6ca8f5847" + integrity sha512-+mU8MVug/nNjTnPI1bjzOhEhtQMqc5j+ZsMSROS3QXt8ot+dRDbvckFhZYfGfldg7NwAa0GIT4YjgPC06gb1jg== "@stakekit/rainbowkit@^1.3.10": version "1.3.10" @@ -5767,10 +5767,10 @@ react-remove-scroll "2.5.4" ua-parser-js "^1.0.35" -"@stakekit/widget@^0.0.107": - version "0.0.107" - resolved "https://registry.yarnpkg.com/@stakekit/widget/-/widget-0.0.107.tgz#6afb482bb11dd8a772544c44819e3668322b7e5b" - integrity sha512-uaFSL5Kx4l4gb3f3z7sTedPz75yndqgQ6nwMtfzQpcu59J1Cn6e9Xr+OzRbXyH13Dw+LQXG1N5EIu714aXdXMQ== +"@stakekit/widget@^0.0.114": + version "0.0.114" + resolved "https://registry.yarnpkg.com/@stakekit/widget/-/widget-0.0.114.tgz#c8604588b2230ff55a3e41c55f51e6d62a330fc0" + integrity sha512-lk/GBFdI/UnAn+Dm37CsTE3MaPHGd61F6+0CXRUFALgMbEkoo0acMlS9GOgDDbfSvGSxtCj3TZwj3VTWFM22Ig== dependencies: "@cassiozen/usestatemachine" "^1.0.1" "@cosmjs/amino" "^0.32.2" @@ -5779,16 +5779,16 @@ "@cosmjs/stargate" "^0.32.2" "@cosmos-kit/core" "2.8.9" "@cosmos-kit/keplr" "^2.6.9" - "@cosmos-kit/leap" "^2.6.9" + "@cosmos-kit/leap" "^2.6.10" "@cosmos-kit/walletconnect" "2.5.9" - "@ledgerhq/wallet-api-client" "^1.5.4" + "@ledgerhq/wallet-api-client" "^1.5.5" "@radix-ui/react-alert-dialog" "^1.0.5" "@radix-ui/react-dropdown-menu" "^2.0.6" - "@stakekit/api-hooks" "^0.0.56" - "@stakekit/common" "^0.0.24" + "@stakekit/api-hooks" "^0.0.58" + "@stakekit/common" "^0.0.25" "@stakekit/rainbowkit" "^1.3.10" - "@tanstack/react-query" "^5.17.19" - "@tanstack/react-query-devtools" "^5.20.5" + "@tanstack/react-query" "^5.24.1" + "@tanstack/react-query-devtools" "^5.24.1" "@tronweb3/tronwallet-abstract-adapter" "^1.1.6" "@tronweb3/tronwallet-adapter-bitkeep" "^1.1.0" "@tronweb3/tronwallet-adapter-ledger" "^1.1.8" @@ -5802,15 +5802,15 @@ bignumber.js "^9.1.2" clsx "^2.1.0" cosmjs-types "^0.9.0" - framer-motion "^11.0.5" - i18next "^23.8.2" + framer-motion "^11.0.6" + i18next "^23.10.0" i18next-browser-languagedetector "^7.2.0" lodash.merge "^4.6.2" purify-ts "^2.0.3" react-i18next "^14.0.5" react-loading-skeleton "^3.4.0" - react-router-dom "^6.22.0" - react-virtuoso "^4.6.3" + react-router-dom "^6.22.1" + react-virtuoso "^4.7.1" reselect "^5.1.0" "@surma/rollup-plugin-off-main-thread@^2.2.3": @@ -5955,15 +5955,15 @@ resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.36.1.tgz#79f8c1a539d47c83104210be2388813a7af2e524" integrity sha512-DJSilV5+ytBP1FbFcEJovv4rnnm/CokuVvrBEtW/Va9DvuJ3HksbXUJEpI0aV1KtuL4ZoO9AVE6PyNLzF7tLeA== -"@tanstack/query-core@5.20.5": - version "5.20.5" - resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.20.5.tgz#12bb02a937cc8f4f158b1428c0ddef5a1f48479b" - integrity sha512-T1W28gGgWn0A++tH3lxj3ZuUVZZorsiKcv+R50RwmPYz62YoDEkG4/aXHZELGkRp4DfrW07dyq2K5dvJ4Wl1aA== +"@tanstack/query-core@5.25.0": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.25.0.tgz#e08ed0a9fad34c8005d1a282e57280031ac50cdc" + integrity sha512-vlobHP64HTuSE68lWF1mEhwSRC5Q7gaT+a/m9S+ItuN+ruSOxe1rFnR9j0ACWQ314BPhBEVKfBQ6mHL0OWfdbQ== -"@tanstack/query-devtools@5.21.5": - version "5.21.5" - resolved "https://registry.yarnpkg.com/@tanstack/query-devtools/-/query-devtools-5.21.5.tgz#c1b51e2d28a4f43fd2b619c4789dea18255b2eaa" - integrity sha512-A7rVpVP1GRcQBnB/GzXZfVhxmoP17J1f+RoYRu+DOV8Jp4QPIJRE/nFueEiiRPSVL7aNcNw4rTm0RmJZRI2fUA== +"@tanstack/query-devtools@5.24.0": + version "5.24.0" + resolved "https://registry.yarnpkg.com/@tanstack/query-devtools/-/query-devtools-5.24.0.tgz#b9b7828d42d5034415b1973ff4a154e880b17d59" + integrity sha512-pThim455t69zrZaQKa7IRkEIK8UBTS+gHVAdNfhO72Xh4rWpMc63ovRje5/n6iw63+d6QiJzVadsJVdPoodSeQ== "@tanstack/query-persist-client-core@4.36.1": version "4.36.1" @@ -5979,12 +5979,12 @@ dependencies: "@tanstack/query-persist-client-core" "4.36.1" -"@tanstack/react-query-devtools@^5.20.5": - version "5.21.7" - resolved "https://registry.yarnpkg.com/@tanstack/react-query-devtools/-/react-query-devtools-5.21.7.tgz#050f09f945995cfcf41d55e34bde1136fa434a65" - integrity sha512-SfGw5KErNfeC8beEfV3vg9QjxVUaJkDEkZGfjVEHdHR/H9owmf1SI8FLDH3GtWXMO0YczaKjDiFyvMSZUk2I1Q== +"@tanstack/react-query-devtools@^5.24.1": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@tanstack/react-query-devtools/-/react-query-devtools-5.25.0.tgz#1efe7723d3eedc9793ef752d264e9801d2f9ae14" + integrity sha512-bqtr1Bwvo/jspJXb2l4R1DSZ848TvIzGBk4V0b6YGS5EQ3015dhm3mPqyTgh0DquK5ZR0h1yP/4DpzhhvTnFHA== dependencies: - "@tanstack/query-devtools" "5.21.5" + "@tanstack/query-devtools" "5.24.0" "@tanstack/react-query-persist-client@^4.28.0": version "4.36.1" @@ -6001,12 +6001,12 @@ "@tanstack/query-core" "4.36.1" use-sync-external-store "^1.2.0" -"@tanstack/react-query@^5.17.19": - version "5.20.5" - resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.20.5.tgz#ebf57b6d3344478d505ad8db09a8b29262a35dab" - integrity sha512-6MHwJ8G9cnOC/XKrwt56QMc91vN7hLlAQNUA0ubP7h9Jj3a/CmkUwT6ALdFbnVP+PsYdhW3WONa8WQ4VcTaSLQ== +"@tanstack/react-query@^5.24.1": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.25.0.tgz#f4dac794cf10dd956aa56dbbdf67049a5ba2669d" + integrity sha512-u+n5R7mLO7RmeiIonpaCRVXNRWtZEef/aVZ/XGWRPa7trBIvGtzlfo0Ah7ZtnTYfrKEVwnZ/tzRCBcoiqJ/tFw== dependencies: - "@tanstack/query-core" "5.20.5" + "@tanstack/query-core" "5.25.0" "@testing-library/cypress@^8.0.7": version "8.0.7" @@ -8895,7 +8895,7 @@ axios@^1.3.4: form-data "^4.0.0" proxy-from-env "^1.1.0" -axios@^1.6.0, axios@^1.6.5, axios@^1.6.7: +axios@^1.6.0, axios@^1.6.7: version "1.6.7" resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.7.tgz#7b48c2e27c96f9c68a2f8f31e2ab19f59b06b0a7" integrity sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA== @@ -12366,10 +12366,10 @@ framer-motion@^10.13.1: optionalDependencies: "@emotion/is-prop-valid" "^0.8.2" -framer-motion@^11.0.5: - version "11.0.5" - resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-11.0.5.tgz#2ae1341d8605a01c50009d3bb195a67e4e2bfc69" - integrity sha512-Lb0EYbQcSK/pgyQUJm+KzsQrKrJRX9sFRyzl9hSr9gFG4Mk8yP7BjhuxvRXzblOM/+JxycrJdCDVmOQBsjpYlw== +framer-motion@^11.0.6: + version "11.0.8" + resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-11.0.8.tgz#8f97a18cbad5858d85b53bc325c40a03d0a5c203" + integrity sha512-1KSGNuqe1qZkS/SWQlDnqK2VCVzRVEoval379j0FiUBJAZoqgwyvqFkfvJbgW2IPFo4wX16K+M0k5jO23lCIjA== dependencies: tslib "^2.4.0" optionalDependencies: @@ -13037,10 +13037,10 @@ i18next-browser-languagedetector@^7.2.0: dependencies: "@babel/runtime" "^7.23.2" -i18next@^23.8.2: - version "23.9.0" - resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.9.0.tgz#659cfcbf51a20158bb094d17a85f3c583d473901" - integrity sha512-f3MUciKqwzNV//mHG6EtdSlC65+nqH/3zK8sOSWqNV6FVu2tmHhF/rFOp9UF8S4m1odojtuipKaKJrP0Loh60g== +i18next@^23.10.0: + version "23.10.1" + resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.10.1.tgz#217ce93b75edbe559ac42be00a20566b53937df6" + integrity sha512-NDiIzFbcs3O9PXpfhkjyf7WdqFn5Vq6mhzhtkXzj51aOcNuPNcTwuYNuXCpHsanZGHlHKL35G7huoFeVic1hng== dependencies: "@babel/runtime" "^7.23.2" @@ -15128,10 +15128,10 @@ ms@2.1.3, ms@^2.0.0, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -msw@^2.1.4: - version "2.2.0" - resolved "https://registry.yarnpkg.com/msw/-/msw-2.2.0.tgz#a57cf5503e85e7ca39d1f188bb0fef93660ff2c9" - integrity sha512-98cUGcIphhdf3KDbmSxji7XFqLxeSFAmPUNV00N/U76GOkuUKEwp6MHqM6KW70rlpgeJP8qIWueppdnVThzG1g== +msw@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/msw/-/msw-2.2.3.tgz#d05b46d73e8832cbf2145743938635beaaafa0d7" + integrity sha512-84CoNCkcJ/EvY8Tv0tD/6HKVd4S5HyGowHjM5W12K8Wgryp4fikqS7IaTOceyQgP5dNedxo2icTLDXo7dkpxCg== dependencies: "@bundled-es-modules/cookie" "^2.0.0" "@bundled-es-modules/statuses" "^1.0.1" @@ -16440,20 +16440,20 @@ react-remove-scroll@2.5.5: use-callback-ref "^1.3.0" use-sidecar "^1.1.2" -react-router-dom@^6.22.0: - version "6.22.1" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.22.1.tgz#cfa109d4b6b0a4d00bac179bc0ad2a6469455282" - integrity sha512-iwMyyyrbL7zkKY7MRjOVRy+TMnS/OPusaFVxM2P11x9dzSzGmLsebkCvYirGq0DWB9K9hOspHYYtDz33gE5Duw== +react-router-dom@^6.22.1: + version "6.22.3" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.22.3.tgz#9781415667fd1361a475146c5826d9f16752a691" + integrity sha512-7ZILI7HjcE+p31oQvwbokjk6OA/bnFxrhJ19n82Ex9Ph8fNAq+Hm/7KchpMGlTgWhUxRHMMCut+vEtNpWpowKw== dependencies: - "@remix-run/router" "1.15.1" - react-router "6.22.1" + "@remix-run/router" "1.15.3" + react-router "6.22.3" -react-router@6.22.1: - version "6.22.1" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.22.1.tgz#a5ff849bfe709438f7e139421bb28138209662c7" - integrity sha512-0pdoRGwLtemnJqn1K0XHUbnKiX0S4X8CgvVVmHGOWmofESj31msHo/1YiqcJWK7Wxfq2a4uvvtS01KAQyWK/CQ== +react-router@6.22.3: + version "6.22.3" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.22.3.tgz#9d9142f35e08be08c736a2082db5f0c9540a885e" + integrity sha512-dr2eb3Mj5zK2YISHK++foM9w4eBnO23eKnZEDs7c880P6oKbrjz/Svg9+nxqtHQK+oMW4OtjZca0RqPglXxguQ== dependencies: - "@remix-run/router" "1.15.1" + "@remix-run/router" "1.15.3" react-style-singleton@^2.2.1: version "2.2.1" @@ -16474,10 +16474,10 @@ react-transition-group@^4.4.5: loose-envify "^1.4.0" prop-types "^15.6.2" -react-virtuoso@^4.6.3: - version "4.7.0" - resolved "https://registry.yarnpkg.com/react-virtuoso/-/react-virtuoso-4.7.0.tgz#6c0970d9560fc2bffbd6cbb01b1601b2b0e7966e" - integrity sha512-cpgvI1rSOETGDMhqVAVDuH+XHbWO1uIGKv5I6l4CyC71xWYUeGrE5n7sgTZklROB4+Vbv85pcgfWloTlY48HGQ== +react-virtuoso@^4.7.1: + version "4.7.2" + resolved "https://registry.yarnpkg.com/react-virtuoso/-/react-virtuoso-4.7.2.tgz#edf8c428e41978ffa78d926728de70384a84af03" + integrity sha512-xF4es1ajK36Hs9MciaiGA9l16tV2bpkpgxM9JVKh0rJSn6uhdAUrxSQ6FttQOOPAGt4GRG2A4gdjlo18JWhyRw== react@16.13.1: version "16.13.1"