From 7e8348941abc1720887ded76bfc6ff3ead656d86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?U=C4=9Fur=20Eren?= Date: Tue, 3 Dec 2024 14:27:00 +0300 Subject: [PATCH] fix: token check bug (#286) Resolves a bug introduced with the PR #282 which upgrades the starknetjs version but ignores @starknet-react/core and @starknet-react/chains packages. I had to make changes to a few files to be able upgrade it, since there are API changes with the newer versions. I also fixed minor warnings in the tg-bot package. I also created 2 new CI jobs for core & hooks packages. ## Package version changes - starknet peer dependency upgraded from >=5.0.0 to >=6.8.0 - @starknet-react/core dependency upgraded from 2.2.4 to 3.6.2 - @starknet-react/core peer dependency upgraded from >=2.0.0 to >=3.0.0 - @starknet-react/chains dependency upgraded from 0.1.0 to 3.1.0 - @tanstack/react-query dependency upgraded from 5.0.1 to 5.25.0 - @starknet-io/types-js dependency installed with version ^0.7.10 --- .github/workflows/core.yml | 39 +++ .github/workflows/hooks.yml | 44 +++ packages/core/package.json | 2 +- packages/core/src/constants/contracts.ts | 19 +- packages/core/src/types/tokens.ts | 2 + packages/frontend/package.json | 7 +- .../src/components/TransactionModal/index.tsx | 26 +- .../src/components/WalletModal/Option.tsx | 4 +- .../src/components/Web3Provider/index.tsx | 12 +- packages/frontend/src/constants/networks.ts | 8 +- packages/frontend/src/hooks/useBalances.ts | 16 +- packages/frontend/src/hooks/useChainId.ts | 3 +- packages/hooks/package.json | 8 +- .../hooks/internal/useInvalidateOnBlock.ts | 3 +- packages/hooks/src/providers/Provider.tsx | 4 +- packages/sdk/package.json | 2 +- packages/tg-bot/package.json | 2 +- packages/tg-bot/src/forms/launch.ts | 10 +- packages/tg-bot/src/utils/constants.ts | 2 +- packages/tg-bot/src/utils/validation.ts | 2 +- yarn.lock | 268 +++++++++++------- 21 files changed, 314 insertions(+), 169 deletions(-) create mode 100644 .github/workflows/core.yml create mode 100644 .github/workflows/hooks.yml diff --git a/.github/workflows/core.yml b/.github/workflows/core.yml new file mode 100644 index 00000000..74dd56ad --- /dev/null +++ b/.github/workflows/core.yml @@ -0,0 +1,39 @@ +name: Core + +on: + push: + paths: [packages/core/**] + pull_request: + paths: [packages/core/**] + +permissions: read-all + +jobs: + check: + defaults: + run: + working-directory: packages/core + + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Node.js + uses: actions/setup-node@v2 + with: + node-version: '18' + + - name: Install dependencies + run: yarn install + working-directory: ./ + + - name: Lint + run: yarn lint + + - name: Test + run: yarn test + + - name: Build + run: yarn build diff --git a/.github/workflows/hooks.yml b/.github/workflows/hooks.yml new file mode 100644 index 00000000..36998105 --- /dev/null +++ b/.github/workflows/hooks.yml @@ -0,0 +1,44 @@ +name: Hooks + +on: + push: + paths: [packages/hooks/**] + pull_request: + paths: [packages/hooks/**] + +permissions: read-all + +jobs: + check: + defaults: + run: + working-directory: packages/hooks + + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Node.js + uses: actions/setup-node@v2 + with: + node-version: '18' + + - name: Install dependencies + run: yarn install + working-directory: ./ + + # Core package is required for hooks to test and build + - name: Build Core + run: yarn build + working-directory: ./packages/core + + - name: Lint + run: yarn lint + + - name: Test + run: yarn test + + - name: Build Hooks + run: yarn build diff --git a/packages/core/package.json b/packages/core/package.json index 74bf8a3a..280402f2 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -34,7 +34,7 @@ "moment": "^2.30.1" }, "peerDependencies": { - "starknet": ">=5.0.0" + "starknet": ">=6.8.0" }, "devDependencies": { "@uniswap/eslint-config": "^1.2.0", diff --git a/packages/core/src/constants/contracts.ts b/packages/core/src/constants/contracts.ts index 10486eb8..e985e2c2 100644 --- a/packages/core/src/constants/contracts.ts +++ b/packages/core/src/constants/contracts.ts @@ -1,49 +1,50 @@ +import { MultichainAddress } from 'src/types' import { constants, json } from 'starknet' import EkuboPositions from '../abis/EkuboPositions.json' import JediswapPair from '../abis/JediswapPair.json' import Multicall from '../abis/Multicall.json' -export const TOKEN_CLASS_HASH = { +export const TOKEN_CLASS_HASH: MultichainAddress = { [constants.StarknetChainId.SN_SEPOLIA]: '0x063ee878d3559583ceae80372c6088140e1180d9893aa65fbefc81f45ddaaa17', [constants.StarknetChainId.SN_MAIN]: '0x063ee878d3559583ceae80372c6088140e1180d9893aa65fbefc81f45ddaaa17', } -export const FACTORY_ADDRESSES = { +export const FACTORY_ADDRESSES: MultichainAddress = { [constants.StarknetChainId.SN_SEPOLIA]: '0x06b5096ba5a3c30e231e7b74ca565594d167a0a22d71cce0ebf9ae2b06584097', [constants.StarknetChainId.SN_MAIN]: '0x01a46467a9246f45c8c340f1f155266a26a71c07bd55d36e8d1c7d0d438a2dbc', } -export const EKUBO_POSITIONS_ADDRESSES = { +export const EKUBO_POSITIONS_ADDRESSES: MultichainAddress = { [constants.StarknetChainId.SN_SEPOLIA]: '0x06a2aee84bb0ed5dded4384ddd0e40e9c1372b818668375ab8e3ec08807417e5', [constants.StarknetChainId.SN_MAIN]: '0x02e0af29598b407c8716b17f6d2795eca1b471413fa03fb145a5e33722184067', } -export const ETH_ADDRESSES = { +export const ETH_ADDRESSES: MultichainAddress = { [constants.StarknetChainId.SN_SEPOLIA]: '0x49d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7', [constants.StarknetChainId.SN_MAIN]: '0x49d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7', } -export const STRK_ADDRESSES = { +export const STRK_ADDRESSES: MultichainAddress = { [constants.StarknetChainId.SN_SEPOLIA]: '0x4718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d', [constants.StarknetChainId.SN_MAIN]: '0x4718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d', } -export const USDC_ADDRESSES = { +export const USDC_ADDRESSES: MultichainAddress = { [constants.StarknetChainId.SN_SEPOLIA]: '0x5a643907b9a4bc6a55e9069c4fd5fd1f5c79a22470690f75556c4736e34426', [constants.StarknetChainId.SN_MAIN]: '0x53c91253bc9682c04929ca02ed00b3e423f6710d2ee7e0d5ebb06f3ecf368a8', } -export const MULTICALL_ADDRESSES = { +export const MULTICALL_ADDRESSES: MultichainAddress = { [constants.StarknetChainId.SN_SEPOLIA]: '0x01a33330996310a1e3fa1df5b16c1e07f0491fdd20c441126e02613b948f0225', [constants.StarknetChainId.SN_MAIN]: '0x01a33330996310a1e3fa1df5b16c1e07f0491fdd20c441126e02613b948f0225', } -export const JEDISWAP_ETH_USDC = { +export const JEDISWAP_ETH_USDC: MultichainAddress = { [constants.StarknetChainId.SN_SEPOLIA]: '0x05a2b2b37f66157f767ea711cb4e034c40d41f2f5acf9ff4a19049fa11c1a884', [constants.StarknetChainId.SN_MAIN]: '0x04d0390b777b424e43839cd1e744799f3de6c176c7e32c1812a41dbd9c19db6a', } -export const JEDISWAP_STRK_USDC = { +export const JEDISWAP_STRK_USDC: MultichainAddress = { [constants.StarknetChainId.SN_SEPOLIA]: '0x018b129b1a372b3288077521ad8749f5a2b2ddfb67ef5a37e2d02190fa11c40f', [constants.StarknetChainId.SN_MAIN]: '0x5726725e9507c3586cc0516449e2c74d9b201ab2747752bb0251aaa263c9a26', } diff --git a/packages/core/src/types/tokens.ts b/packages/core/src/types/tokens.ts index c9dcf1d7..3d6f54a0 100644 --- a/packages/core/src/types/tokens.ts +++ b/packages/core/src/types/tokens.ts @@ -17,3 +17,5 @@ export type Token = { } export type MultichainToken = { [chainId in constants.StarknetChainId]: Token } + +export type MultichainAddress = { [chainId in constants.StarknetChainId]: `0x${string}` } diff --git a/packages/frontend/package.json b/packages/frontend/package.json index ac8060ee..f848d3c5 100644 --- a/packages/frontend/package.json +++ b/packages/frontend/package.json @@ -11,9 +11,10 @@ "dependencies": { "@avnu/avnu-sdk": "^2.0.0", "@hookform/resolvers": "^3.3.2", - "@starknet-react/chains": "^0.1.0", - "@starknet-react/core": "^2.2.4", - "@tanstack/react-query": "^5.0.1", + "@starknet-io/types-js": "^0.7.10", + "@starknet-react/chains": "^3.1.0", + "@starknet-react/core": "^3.6.2", + "@tanstack/react-query": "^5.25.0", "@types/react-dom": "^18.2.1", "@uniswap/sdk-core": "^4.0.9", "@vanilla-extract/css": "^1.11.0", diff --git a/packages/frontend/src/components/TransactionModal/index.tsx b/packages/frontend/src/components/TransactionModal/index.tsx index 10b6f103..23049264 100644 --- a/packages/frontend/src/components/TransactionModal/index.tsx +++ b/packages/frontend/src/components/TransactionModal/index.tsx @@ -1,4 +1,4 @@ -import { useContractWrite, useWaitForTransaction } from '@starknet-react/core' +import { useSendTransaction, useTransactionReceipt } from '@starknet-react/core' import { useEffect, useMemo, useState } from 'react' import { STARKNET_POLLING } from 'src/constants/misc' import { useCloseModal, useTransactionModal } from 'src/hooks/useModal' @@ -15,8 +15,8 @@ import Overlay from '../Modal/Overlay' import Spinner from '../Spinner' import * as styles from './style.css' -type UseWaitForTransactionResponse = Omit, 'data'> & { - data?: { finality_status?: TransactionStatus } +type UseWaitForTransactionResponse = Omit, 'data'> & { + data?: { value?: { finality_status?: TransactionStatus } } } export function TransactionModal() { @@ -31,13 +31,13 @@ export function TransactionModal() { const close = useCloseModal() // starknet - const { writeAsync } = useContractWrite({}) + const { sendAsync } = useSendTransaction({}) // calls const [invokeTransactionDetails, resetTransaction] = useTransaction() // transaction status - const { data, refetch } = useWaitForTransaction({ + const { data, refetch } = useTransactionReceipt({ retry: true, retryDelay: STARKNET_POLLING, refetchInterval: STARKNET_POLLING, @@ -45,7 +45,7 @@ export function TransactionModal() { }) as UseWaitForTransactionResponse const statusComponent = useMemo(() => { - switch (data?.finality_status) { + switch (data?.value?.finality_status) { // Success case TransactionStatus.ACCEPTED_ON_L1: case TransactionStatus.ACCEPTED_ON_L2: @@ -69,11 +69,11 @@ export function TransactionModal() { } return - }, [data?.finality_status]) + }, [data?.value?.finality_status]) // refetch useEffect(() => { - if (!isOpen || (data?.finality_status && data.finality_status !== TransactionStatus.RECEIVED)) return + if (!isOpen || (data?.value?.finality_status && data.value.finality_status !== TransactionStatus.RECEIVED)) return const intervalId = setInterval(() => { setTransactionHash((state) => { @@ -86,13 +86,13 @@ export function TransactionModal() { }, STARKNET_POLLING) return () => clearInterval(intervalId) - }, [data?.finality_status, isOpen, refetch]) + }, [data?.value?.finality_status, isOpen, refetch]) // onSuccess callback useEffect(() => { if (accepted || !currentInvokeTransactionDetails?.onSuccess) return - switch (data?.finality_status) { + switch (data?.value?.finality_status) { // Success case TransactionStatus.ACCEPTED_ON_L1: case TransactionStatus.ACCEPTED_ON_L2: @@ -100,7 +100,7 @@ export function TransactionModal() { currentInvokeTransactionDetails.onSuccess() } // eslint-disable-next-line react-hooks/exhaustive-deps - }, [accepted, data?.finality_status, currentInvokeTransactionDetails?.onSuccess]) + }, [accepted, data?.value?.finality_status, currentInvokeTransactionDetails?.onSuccess]) // error component const errorComponent = useMemo(() => { @@ -123,7 +123,7 @@ export function TransactionModal() { useEffect(() => { if (!currentInvokeTransactionDetails) return - writeAsync({ calls: currentInvokeTransactionDetails.calls }) + sendAsync(currentInvokeTransactionDetails.calls) .then((res) => { setTransactionHash(res.transaction_hash) }) @@ -134,7 +134,7 @@ export function TransactionModal() { }) resetTransaction() - }, [resetTransaction, currentInvokeTransactionDetails, writeAsync]) + }, [resetTransaction, currentInvokeTransactionDetails, sendAsync]) // updating current invoke transaction details useEffect(() => { diff --git a/packages/frontend/src/components/WalletModal/Option.tsx b/packages/frontend/src/components/WalletModal/Option.tsx index 63551e94..1d6f9827 100644 --- a/packages/frontend/src/components/WalletModal/Option.tsx +++ b/packages/frontend/src/components/WalletModal/Option.tsx @@ -11,7 +11,7 @@ interface OptionProps { } function Option({ connection, activate }: OptionProps) { - const icon = connection.icon.dark + const icon = typeof connection.icon === 'string' ? connection.icon : connection.icon.dark const isSvg = icon?.startsWith(' /* display svg */ ) : ( - + )} {connection.name} diff --git a/packages/frontend/src/components/Web3Provider/index.tsx b/packages/frontend/src/components/Web3Provider/index.tsx index be948dab..aaad27df 100644 --- a/packages/frontend/src/components/Web3Provider/index.tsx +++ b/packages/frontend/src/components/Web3Provider/index.tsx @@ -1,4 +1,12 @@ -import { argent, braavos, StarknetConfig, starkscan, useInjectedConnectors, useNetwork } from '@starknet-react/core' +import { + argent, + braavos, + Connector, + StarknetConfig, + starkscan, + useInjectedConnectors, + useNetwork, +} from '@starknet-react/core' import { QueryClient } from '@tanstack/react-query' import { Provider as HooksProvider } from 'hooks' import { useMemo } from 'react' @@ -22,7 +30,7 @@ export function StarknetProvider({ children }: React.PropsWithChildren) { ...injected, new WebWalletConnector({ url: 'https://web.argent.xyz' }), new ArgentMobileConnector(), - ] + ] as Connector[] return ( { switch (chain.id) { - case goerli.id: + case sepolia.id: return new RpcProvider({ - nodeUrl: `https://rpc.nethermind.io/goerli-juno/?apikey=${NETHERMIND_KEY}`, + nodeUrl: `https://rpc.nethermind.io/sepolia-juno/?apikey=${NETHERMIND_KEY}`, }) case mainnet.id: diff --git a/packages/frontend/src/hooks/useBalances.ts b/packages/frontend/src/hooks/useBalances.ts index 03911a8f..3ad4f78e 100644 --- a/packages/frontend/src/hooks/useBalances.ts +++ b/packages/frontend/src/hooks/useBalances.ts @@ -1,4 +1,4 @@ -import { useAccount, useContractRead, UseContractReadResult } from '@starknet-react/core' +import { useAccount, useReadContract, UseReadContractResult } from '@starknet-react/core' import { Fraction } from '@uniswap/sdk-core' import { Token } from 'core' import { compiledMulticall, Entrypoint, MULTICALL_ADDRESSES } from 'core/constants' @@ -11,7 +11,7 @@ import useChainId from './useChainId' type Balance = Fraction type Balances = Record -interface UseBalancesResult extends Pick { +interface UseBalancesResult extends Pick, 'error' | 'refetch'> { data?: Balances loading: boolean } @@ -23,7 +23,7 @@ export default function useBalances(tokens: UseBalancesToken[]): UseBalancesResu const { address: accountAddress } = useAccount() const chainId = useChainId() - const res = useContractRead({ + const res = useReadContract({ abi: compiledMulticall, // call is not send if abi is undefined address: accountAddress && chainId ? MULTICALL_ADDRESSES[chainId] : undefined, functionName: 'aggregate', @@ -37,12 +37,14 @@ export default function useBalances(tokens: UseBalancesToken[]): UseBalancesResu }), ), ], - }) as UseContractReadResult & { data?: [bigint, [bigint, bigint][]] } + }) + + const resData: [bigint, [bigint, bigint][]] | undefined = res.data const data = useMemo(() => { - if (!res.data) return undefined + if (!resData) return undefined - return res.data[1].reduce>((acc, balance, index) => { + return resData[1].reduce>((acc, balance, index) => { const token = tokens[index] acc[token.address] = new Fraction( uint256.uint256ToBN({ low: balance[0], high: balance[1] }).toString(), @@ -52,7 +54,7 @@ export default function useBalances(tokens: UseBalancesToken[]): UseBalancesResu return acc }, {}) // eslint-disable-next-line react-hooks/exhaustive-deps - }, [res.data?.[0].toString()]) + }, [resData?.[0].toString()]) return { data, loading: res.fetchStatus === 'fetching', error: res.error, refetch: res.refetch } } diff --git a/packages/frontend/src/hooks/useChainId.ts b/packages/frontend/src/hooks/useChainId.ts index a8eed9cf..ef81bd4c 100644 --- a/packages/frontend/src/hooks/useChainId.ts +++ b/packages/frontend/src/hooks/useChainId.ts @@ -1,7 +1,8 @@ import { starknetChainId, useNetwork } from '@starknet-react/core' import { useMemo } from 'react' +import { constants } from 'starknet' -export default function useChainId() { +export default function useChainId(): constants.StarknetChainId | undefined { const { chain } = useNetwork() return useMemo(() => (chain.id ? starknetChainId(chain.id) : undefined), [chain.id]) } diff --git a/packages/hooks/package.json b/packages/hooks/package.json index 674971a1..6c89a7af 100644 --- a/packages/hooks/package.json +++ b/packages/hooks/package.json @@ -24,7 +24,7 @@ "prepublishOnly": "npm run build" }, "devDependencies": { - "@starknet-react/core": "^2.6.1", + "@starknet-react/core": "^3.6.2", "@testing-library/react": "^15.0.2", "@types/react": "^18.2.79", "@types/react-test-renderer": "^18.0.7", @@ -40,12 +40,12 @@ "vitest": "^1.5.0" }, "peerDependencies": { - "@starknet-react/core": ">=2.0.0", + "@starknet-react/core": ">=3.0.0", "react": ">=18.0.0", - "starknet": ">=5.0.0" + "starknet": ">=6.8.0" }, "dependencies": { - "@tanstack/react-query": "^5.29.2", + "@tanstack/react-query": "^5.25.0", "@uniswap/sdk-core": "^4.2.0", "core": "*" } diff --git a/packages/hooks/src/hooks/internal/useInvalidateOnBlock.ts b/packages/hooks/src/hooks/internal/useInvalidateOnBlock.ts index 8fdce2df..45da6847 100644 --- a/packages/hooks/src/hooks/internal/useInvalidateOnBlock.ts +++ b/packages/hooks/src/hooks/internal/useInvalidateOnBlock.ts @@ -1,7 +1,8 @@ import { useBlockNumber } from '@starknet-react/core' import { QueryKey, useQueryClient } from '@tanstack/react-query' import { useEffect, useRef } from 'react' -import { STARKNET_BLOCK_POLLING } from 'src/constants/misc' + +import { STARKNET_BLOCK_POLLING } from '../../constants/misc' /** * Invalidates the given query keys on every new block. diff --git a/packages/hooks/src/providers/Provider.tsx b/packages/hooks/src/providers/Provider.tsx index 06c264fd..26ef85f5 100644 --- a/packages/hooks/src/providers/Provider.tsx +++ b/packages/hooks/src/providers/Provider.tsx @@ -25,9 +25,9 @@ export interface ProviderProps { queryClient?: QueryClient } -export function Provider({ factory, queryClient, children }: React.PropsWithChildren) { +export function Provider({ factory, provider, queryClient, children }: React.PropsWithChildren) { return ( - + {children} ) diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 3d3374cd..a5e591df 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -40,7 +40,7 @@ "starknet": "6.11.0" }, "peerDependencies": { - "starknet": ">=5.0.0" + "starknet": ">=6.8.0" }, "devDependencies": { "@uniswap/eslint-config": "^1.2.0", diff --git a/packages/tg-bot/package.json b/packages/tg-bot/package.json index c025e705..dab60b22 100644 --- a/packages/tg-bot/package.json +++ b/packages/tg-bot/package.json @@ -12,7 +12,7 @@ "@walletconnect/sign-client": "^2.12.2", "node-telegram-bot-api": "^0.65.1", "qrcode": "^1.5.3", - "starknet": "^5.24.3", + "starknet": "^6.18.0", "ts-dedent": "^2.2.0", "zod": "^3.23.4" }, diff --git a/packages/tg-bot/src/forms/launch.ts b/packages/tg-bot/src/forms/launch.ts index 8a3e610e..ae264398 100644 --- a/packages/tg-bot/src/forms/launch.ts +++ b/packages/tg-bot/src/forms/launch.ts @@ -1,17 +1,11 @@ import { EkuboLaunchData, StandardAMMLaunchData } from 'core' -import { - AMM, - AMMS, - DECIMALS, - LIQUIDITY_LOCK_FOREVER_TIMESTAMP, - QUOTE_TOKENS, - STARKNET_MAX_BLOCK_TIME, -} from 'core/constants' +import { AMM, AMMS, DECIMALS, LIQUIDITY_LOCK_FOREVER_TIMESTAMP, QUOTE_TOKENS } from 'core/constants' import { dedent } from 'ts-dedent' import { bot } from '../services/bot' import { factory } from '../services/factory' import { useWallet } from '../services/wallet' +import { STARKNET_MAX_BLOCK_TIME } from '../utils/constants' import { createForm, defineField, Forms } from '../utils/form' import { decimalsScale, parsePercentage } from '../utils/helpers' import { LaunchValidation } from '../utils/validation' diff --git a/packages/tg-bot/src/utils/constants.ts b/packages/tg-bot/src/utils/constants.ts index 914446dd..84291a6a 100644 --- a/packages/tg-bot/src/utils/constants.ts +++ b/packages/tg-bot/src/utils/constants.ts @@ -1 +1 @@ -export const PERCENTAGE_INPUT_PRECISION = 2 +export const STARKNET_MAX_BLOCK_TIME = 3600 * 2 diff --git a/packages/tg-bot/src/utils/validation.ts b/packages/tg-bot/src/utils/validation.ts index 51e765e2..f12aece1 100644 --- a/packages/tg-bot/src/utils/validation.ts +++ b/packages/tg-bot/src/utils/validation.ts @@ -26,7 +26,7 @@ export const validateAndSend = ( return false } -export const addressValidation = z +const addressValidation = z .string({ invalid_type_error: 'Please provide a valid *Address*.', required_error: 'Please provide a valid *Address*.', diff --git a/yarn.lock b/yarn.lock index d414c4d5..5f32c2c6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,6 +12,11 @@ resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz#63430d04bd8c5e74f8d7d049338f1cd9d4f02069" integrity sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw== +"@adraffy/ens-normalize@^1.10.1": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz#42cc67c5baa407ac25059fcd7d405cc5ecdb0c33" + integrity sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg== + "@algolia/autocomplete-core@1.9.3": version "1.9.3" resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz#1d56482a768c33aae0868c8533049e02e8961be7" @@ -2043,7 +2048,7 @@ "@docusaurus/theme-search-algolia" "3.2.1" "@docusaurus/types" "3.2.1" -"@docusaurus/react-loadable@5.5.2": +"@docusaurus/react-loadable@5.5.2", "react-loadable@npm:@docusaurus/react-loadable@5.5.2": version "5.5.2" resolved "https://registry.yarnpkg.com/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz#81aae0db81ecafbdaee3651f12804580868fa6ce" integrity sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ== @@ -3050,13 +3055,27 @@ dependencies: eslint-scope "5.1.1" -"@noble/curves@1.2.0", "@noble/curves@~1.2.0": +"@noble/curves@1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== dependencies: "@noble/hashes" "1.3.2" +"@noble/curves@1.6.0", "@noble/curves@~1.6.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.6.0.tgz#be5296ebcd5a1730fccea4786d420f87abfeb40b" + integrity sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ== + dependencies: + "@noble/hashes" "1.5.0" + +"@noble/curves@^1.4.0", "@noble/curves@^1.6.0", "@noble/curves@~1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.7.0.tgz#0512360622439256df892f21d25b388f52505e45" + integrity sha512-UTMhXK9SeDhFJVrHeUJ5uZlI6ajXg10O6Ddocf9S6GjbSBVZsJo88HzKwXznNfGpMTRDyJkqMjNDPYgf0qFWnw== + dependencies: + "@noble/hashes" "1.6.0" + "@noble/curves@~1.3.0": version "1.3.0" resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.3.0.tgz#01be46da4fd195822dab821e72f71bf4aeec635e" @@ -3076,7 +3095,7 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== -"@noble/hashes@1.3.3", "@noble/hashes@~1.3.0", "@noble/hashes@~1.3.2", "@noble/hashes@~1.3.3": +"@noble/hashes@1.3.3", "@noble/hashes@~1.3.0", "@noble/hashes@~1.3.3": version "1.3.3" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.3.tgz#39908da56a4adc270147bb07968bf3b16cfe1699" integrity sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA== @@ -3086,11 +3105,21 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426" integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== -"@noble/hashes@^1.4.0": +"@noble/hashes@1.5.0", "@noble/hashes@^1.4.0", "@noble/hashes@~1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.5.0.tgz#abadc5ca20332db2b1b2aa3e496e9af1213570b0" integrity sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA== +"@noble/hashes@1.6.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.6.0.tgz#d4bfb516ad6e7b5111c216a5cc7075f4cf19e6c5" + integrity sha512-YUULf0Uk4/mAA89w+k3+yUYh6NrEvxZa5T6SY3wlMvE2chHkxFUUIDI8/XW1QSC357iA5pSnqt7XEhvFOqmDyQ== + +"@noble/hashes@^1.5.0", "@noble/hashes@~1.6.0": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.6.1.tgz#df6e5943edcea504bac61395926d6fd67869a0d5" + integrity sha512-pq5D8h10hHBjyqX+cfBm0i8JUXJ0UhczFc4r74zbuT9XgewFo2E3J1cOaGtdZynILNmQ685YWGzGE1Zv6io50w== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -3387,23 +3416,49 @@ resolved "https://registry.yarnpkg.com/@saucelabs/theme-github-codeblock/-/theme-github-codeblock-0.2.3.tgz#706a43292f600532271979941b0155db667c2c21" integrity sha512-GSl3Lr/jOWm4OP3BPX2vXxc8FMSOXj1mJnls6cUqMwlGOfKQ1Ia9pq1O9/ES+5TrZHIzAws/n5FFSn1OkGJw/Q== -"@scure/base@^1.1.3": - version "1.1.6" - resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.6.tgz#8ce5d304b436e4c84f896e0550c83e4d88cb917d" - integrity sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g== - -"@scure/base@~1.1.3": +"@scure/base@~1.1.3", "@scure/base@~1.1.7", "@scure/base@~1.1.8": version "1.1.9" resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.9.tgz#e5e142fbbfe251091f9c5f1dd4c834ac04c3dbd1" integrity sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg== -"@scure/starknet@~0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@scure/starknet/-/starknet-0.3.0.tgz#b8273a42fc721025f8098b1f1d96368a7067e1c4" - integrity sha512-Ma66yZlwa5z00qI5alSxdWtIpky5LBhy22acVFdoC5kwwbd9uDyMWEYzWHdNyKmQg9t5Y2UOXzINMeb3yez+Gw== +"@scure/base@~1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.2.1.tgz#dd0b2a533063ca612c17aa9ad26424a2ff5aa865" + integrity sha512-DGmGtC8Tt63J5GfHgfl5CuAXh96VF/LD8K9Hr/Gv0J2lAoRGlPOMpqMpMbCTOoOJMZCk2Xt+DskdDyn6dEFdzQ== + +"@scure/bip32@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.5.0.tgz#dd4a2e1b8a9da60e012e776d954c4186db6328e6" + integrity sha512-8EnFYkqEQdnkuGBVpCzKxyIwDCBLDVj3oiX0EKUFre/tOjL/Hqba1D6n/8RcmaQy4f95qQFrO2A8Sr6ybh4NRw== + dependencies: + "@noble/curves" "~1.6.0" + "@noble/hashes" "~1.5.0" + "@scure/base" "~1.1.7" + +"@scure/bip32@^1.5.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.6.0.tgz#6dbc6b4af7c9101b351f41231a879d8da47e0891" + integrity sha512-82q1QfklrUUdXJzjuRU7iG7D7XiFx5PHYVS0+oeNKhyDLT7WPqs6pBcM2W5ZdwOwKCwoE1Vy1se+DHjcXwCYnA== + dependencies: + "@noble/curves" "~1.7.0" + "@noble/hashes" "~1.6.0" + "@scure/base" "~1.2.1" + +"@scure/bip39@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.4.0.tgz#664d4f851564e2e1d4bffa0339f9546ea55960a6" + integrity sha512-BEEm6p8IueV/ZTfQLp/0vhw4NPnT9oWf5+28nvmeUICjP99f4vr2d+qc7AVGDDtwRep6ifR43Yed9ERVmiITzw== dependencies: - "@noble/curves" "~1.2.0" - "@noble/hashes" "~1.3.2" + "@noble/hashes" "~1.5.0" + "@scure/base" "~1.1.8" + +"@scure/bip39@^1.4.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.5.0.tgz#c8f9533dbd787641b047984356531d84485f19be" + integrity sha512-Dop+ASYhnrwm9+HA/HwXg7j2ZqM6yk2fyLWb5znexjctFY3+E+eU8cIWI0Pql0Qx4hPZCijlGq4OL71g+Uz30A== + dependencies: + "@noble/hashes" "~1.6.0" + "@scure/base" "~1.2.1" "@scure/starknet@~1.0.0": version "1.0.0" @@ -3607,26 +3662,33 @@ "@stablelib/random" "^1.0.2" "@stablelib/wipe" "^1.0.1" -"@starknet-io/types-js@^0.7.7": +"@starknet-io/types-js@^0.7.10": + version "0.7.10" + resolved "https://registry.yarnpkg.com/@starknet-io/types-js/-/types-js-0.7.10.tgz#d21dc973d0cd04d7b6293ce461f2f06a5873c760" + integrity sha512-1VtCqX4AHWJlRRSYGSn+4X1mqolI1Tdq62IwzoU2vUuEE72S1OlEeGhpvd6XsdqXcfHmVzYfj8k1XtKBQqwo9w== + +"@starknet-io/types-js@^0.7.7", "starknet-types-07@npm:@starknet-io/types-js@^0.7.7": + name starknet-types-07 version "0.7.7" resolved "https://registry.yarnpkg.com/@starknet-io/types-js/-/types-js-0.7.7.tgz#444be5e4e585ec6f599d42d3407280d98b2dfdf8" integrity sha512-WLrpK7LIaIb8Ymxu6KF/6JkGW1sso988DweWu7p5QY/3y7waBIiPvzh27D9bX5KIJNRDyOoOVoHVEKYUYWZ/RQ== -"@starknet-react/chains@^0.1.0", "@starknet-react/chains@^0.1.7": - version "0.1.7" - resolved "https://registry.yarnpkg.com/@starknet-react/chains/-/chains-0.1.7.tgz#58503379e2ffabe33b4f6e0f2aef775e84745a4d" - integrity sha512-UNh97I1SvuJKaAhKOmpEk8JcWuZWMlPG/ba2HcvFYL9x/47BKndJ+Da9V+iJFtkHUjreVnajT1snsaz1XMG+UQ== +"@starknet-react/chains@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@starknet-react/chains/-/chains-3.1.0.tgz#35c75f8da68a8871e74a377a59b7de1345151312" + integrity sha512-h+fxh+Bs8h0ZSEX651vG3mn1NtMKzFDSHqrX7Q8YRRIeTKolPCx4vmoi5Gg19SXr/9iIVSwgx6qe4rVZTNfhcQ== -"@starknet-react/core@^2.2.4", "@starknet-react/core@^2.6.1": - version "2.6.1" - resolved "https://registry.yarnpkg.com/@starknet-react/core/-/core-2.6.1.tgz#03fbe858c32744236fd74c9350e057a0bcda7266" - integrity sha512-EaHT/B/If2PC0CVlb8Wwdv5axmmIRK+ysjTUbSeIs7/U8A03KXuuoJBrXMHLPBgMWk/0E0hZKqNUVdDKGVlFTQ== +"@starknet-react/core@^3.6.2": + version "3.6.2" + resolved "https://registry.yarnpkg.com/@starknet-react/core/-/core-3.6.2.tgz#c39193e2dc5c18cf2e6db94d11b625f345c794e3" + integrity sha512-cEheoYB8Sy65+su1A7WzdyX/Qq89wLQXFmqOwsaIwpKNy1zzcwZfEOStCpzs6jLh7yEy3QU6arbn7wytt5OhKQ== dependencies: - "@starknet-react/chains" "^0.1.7" - "@tanstack/react-query" "^5.0.1" + "@starknet-io/types-js" "^0.7.7" + "@starknet-react/chains" "^3.1.0" + "@tanstack/react-query" "^5.25.0" eventemitter3 "^5.0.1" - immutable "^4.3.4" - zod "^3.22.2" + viem "^2.21.1" + zod "^3.22.4" "@surma/rollup-plugin-off-main-thread@^2.2.3": version "2.2.3" @@ -3854,17 +3916,17 @@ dependencies: defer-to-connect "^2.0.1" -"@tanstack/query-core@5.31.0": - version "5.31.0" - resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.31.0.tgz#b11372dedbf307bc8b2c25397c7107205bf50dfa" - integrity sha512-r1V6RXB1LUGoEp7HGHVK4Tl59kOvAfwI9/kNNwPsb6cR5oHgfn1683sQnoH/3xEDUKOen3fEO90EnGE+OjRw5A== +"@tanstack/query-core@5.62.1": + version "5.62.1" + resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.62.1.tgz#0ef80db0832f7d96cf3f93b81470ce5a36e84478" + integrity sha512-thYv90GkMcfumgmtp6sptC18SqxWwXTCKUuk7jyeHHn7kYouh0VJrowuuBffAIBiR3Z8OnsccmPUnP1leKJBVQ== -"@tanstack/react-query@^5.0.1", "@tanstack/react-query@^5.29.2": - version "5.31.0" - resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.31.0.tgz#ead732a5323c6c2c95da3115542cabc0920e4748" - integrity sha512-/GUUDFA8yNIYZaSyImkecVfN9mAVw1Y+9LpHkOQ1DdWaKnbLtwfjelh6OF+6EtwQCycH50EjTL68UK3YTMxwvg== +"@tanstack/react-query@^5.25.0": + version "5.62.1" + resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.62.1.tgz#90f3558a7a7c45e4387172df2ff15fe7b371d9ad" + integrity sha512-gb4eglrgW+yOeiNPkpqFyN8oLrFafHrHE+q2LzVl7TfyA4fuQluH92NTl6Jed7ae35v+BNtAQng9mykywWLzfA== dependencies: - "@tanstack/query-core" "5.31.0" + "@tanstack/query-core" "5.62.1" "@testing-library/dom@^10.0.0": version "10.0.0" @@ -5052,6 +5114,11 @@ abi-wan-kanabi@^2.2.2, abi-wan-kanabi@^2.2.3: fs-extra "^10.0.0" yargs "^17.7.2" +abitype@1.0.6, abitype@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/abitype/-/abitype-1.0.6.tgz#76410903e1d88e34f1362746e2d407513c38565b" + integrity sha512-MMSqYh4+C/aVqI2RQaWqbvI4Kxo5cQV40WQ4QFtDnNzCkqChm8MuENhElmynZlO0qUy/ObkEUaXtKqYnx1Kp3A== + abort-controller@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" @@ -8407,6 +8474,11 @@ event-target-shim@^5.0.0: resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== +eventemitter3@5.0.1, eventemitter3@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" + integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== + eventemitter3@^3.0.0: version "3.1.2" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" @@ -8417,11 +8489,6 @@ eventemitter3@^4.0.0: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== -eventemitter3@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" - integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== - events@^3.2.0, events@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" @@ -9746,11 +9813,6 @@ immer@^9.0.7: resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.21.tgz#1e025ea31a40f24fb064f1fef23e931496330176" integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== -immutable@^4.3.4: - version "4.3.5" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.5.tgz#f8b436e66d59f99760dc577f5c99a4fd2a5cc5a0" - integrity sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw== - import-fresh@^3.1.0, import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" @@ -10297,6 +10359,11 @@ isomorphic-unfetch@3.1.0: node-fetch "^2.6.1" unfetch "^4.2.0" +isows@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/isows/-/isows-1.0.6.tgz#0da29d706fa51551c663c627ace42769850f86e7" + integrity sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw== + isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" @@ -11349,11 +11416,6 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3 dependencies: js-tokens "^3.0.0 || ^4.0.0" -lossless-json@^2.0.8: - version "2.0.11" - resolved "https://registry.yarnpkg.com/lossless-json/-/lossless-json-2.0.11.tgz#3137684c93fd99481c6f99c985efc9c9c5cc76a5" - integrity sha512-BP0vn+NGYvzDielvBZaFain/wgeJ1hTvURCqtKvhr1SCPePdaaTanmmcplrHfEJSJOUql7hk4FHwToNJjWRY3g== - lossless-json@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/lossless-json/-/lossless-json-4.0.2.tgz#f00c52815805d1421930a87e2670e27350958a3f" @@ -12745,6 +12807,19 @@ outdent@^0.8.0: resolved "https://registry.yarnpkg.com/outdent/-/outdent-0.8.0.tgz#2ebc3e77bf49912543f1008100ff8e7f44428eb0" integrity sha512-KiOAIsdpUTcAXuykya5fnVVT+/5uS0Q1mrkRHcF89tpieSmY33O/tmc54CqwA+bfhbtEfZUNLHaPUiB9X3jt1A== +ox@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ox/-/ox-0.1.2.tgz#0f791be2ccabeaf4928e6d423498fe1c8094e560" + integrity sha512-ak/8K0Rtphg9vnRJlbOdaX9R7cmxD2MiSthjWGaQdMk3D7hrAlDoM+6Lxn7hN52Za3vrXfZ7enfke/5WjolDww== + dependencies: + "@adraffy/ens-normalize" "^1.10.1" + "@noble/curves" "^1.6.0" + "@noble/hashes" "^1.5.0" + "@scure/bip32" "^1.5.0" + "@scure/bip39" "^1.4.0" + abitype "^1.0.6" + eventemitter3 "5.0.1" + p-cancelable@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" @@ -14321,14 +14396,6 @@ react-loadable-ssr-addon-v5-slorber@^1.0.1: dependencies: "@babel/runtime" "^7.10.3" -"react-loadable@npm:@docusaurus/react-loadable@5.5.2": - version "5.5.2" - resolved "https://registry.yarnpkg.com/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz#81aae0db81ecafbdaee3651f12804580868fa6ce" - integrity sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ== - dependencies: - "@types/react" "*" - prop-types "^15.6.2" - react-refresh@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.11.0.tgz#77198b944733f0f1f1a90e791de4541f9f074046" @@ -15475,11 +15542,6 @@ stackframe@^1.3.4: resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.3.4.tgz#b881a004c8c149a5e8efef37d51b16e412943310" integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== -"starknet-types-07@npm:@starknet-io/types-js@^0.7.7": - version "0.7.7" - resolved "https://registry.yarnpkg.com/@starknet-io/types-js/-/types-js-0.7.7.tgz#444be5e4e585ec6f599d42d3407280d98b2dfdf8" - integrity sha512-WLrpK7LIaIb8Ymxu6KF/6JkGW1sso988DweWu7p5QY/3y7waBIiPvzh27D9bX5KIJNRDyOoOVoHVEKYUYWZ/RQ== - starknet@6.11.0: version "6.11.0" resolved "https://registry.yarnpkg.com/starknet/-/starknet-6.11.0.tgz#5d7e868e913777e9bf64323e59ed8be86437f291" @@ -15499,19 +15561,6 @@ starknet@6.11.0: ts-mixer "^6.0.3" url-join "^4.0.1" -starknet@^5.24.3: - version "5.24.3" - resolved "https://registry.yarnpkg.com/starknet/-/starknet-5.24.3.tgz#1d8a84047783ea122a6cf4f2dac59bfa6d628154" - integrity sha512-v0TuaNc9iNtHdbIRzX372jfQH1vgx2rwBHQDMqK4DqjJbwFEE5dog8Go6rGiZVW750NqRSWrZ7ahqyRNc3bscg== - dependencies: - "@noble/curves" "~1.2.0" - "@scure/base" "^1.1.3" - "@scure/starknet" "~0.3.0" - isomorphic-fetch "^3.0.0" - lossless-json "^2.0.8" - pako "^2.0.4" - url-join "^4.0.1" - starknet@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/starknet/-/starknet-6.18.0.tgz#4f99b495b0e146f0d1f8a8cbbbe851ce414244bb" @@ -15622,16 +15671,7 @@ string-natural-compare@^3.0.1: resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4" integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw== -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -15726,14 +15766,7 @@ stringify-object@^3.3.0: is-obj "^1.0.1" is-regexp "^1.0.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -16873,6 +16906,21 @@ vfile@^6.0.0, vfile@^6.0.1: unist-util-stringify-position "^4.0.0" vfile-message "^4.0.0" +viem@^2.21.1: + version "2.21.53" + resolved "https://registry.yarnpkg.com/viem/-/viem-2.21.53.tgz#a5ba6da48e5edded27dde286e431ae97034f4fc4" + integrity sha512-0pY8clBacAwzc59iV1vY4a6U4xvRlA5tAuhClJCKvqA6rXJzmNMMvxQ0EG79lkHr7WtBEruXz8nAmONXwnq4EQ== + dependencies: + "@noble/curves" "1.6.0" + "@noble/hashes" "1.5.0" + "@scure/bip32" "1.5.0" + "@scure/bip39" "1.4.0" + abitype "1.0.6" + isows "1.0.6" + ox "0.1.2" + webauthn-p256 "0.0.10" + ws "8.18.0" + vite-node@1.5.0, vite-node@^1.2.0: version "1.5.0" resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-1.5.0.tgz#7f74dadfecb15bca016c5ce5ef85e5cc4b82abf2" @@ -16972,6 +17020,14 @@ web-vitals@^3.5.2: resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-3.5.2.tgz#5bb58461bbc173c3f00c2ddff8bfe6e680999ca9" integrity sha512-c0rhqNcHXRkY/ogGDJQxZ9Im9D19hDihbzSQJrsioex+KnFgmMzBiy57Z1EjkhX/+OjyBpclDCzz2ITtjokFmg== +webauthn-p256@0.0.10: + version "0.0.10" + resolved "https://registry.yarnpkg.com/webauthn-p256/-/webauthn-p256-0.0.10.tgz#877e75abe8348d3e14485932968edf3325fd2fdd" + integrity sha512-EeYD+gmIT80YkSIDb2iWq0lq2zbHo1CxHlQTeJ+KkCILWpVy3zASH3ByD4bopzfk0uCwXxLqKGLqp2W4O28VFA== + dependencies: + "@noble/curves" "^1.4.0" + "@noble/hashes" "^1.4.0" + webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" @@ -17465,7 +17521,7 @@ workbox-window@6.6.1: "@types/trusted-types" "^2.0.2" workbox-core "6.6.1" -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -17483,15 +17539,6 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" @@ -17521,6 +17568,11 @@ ws@8.17.1: resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== +ws@8.18.0: + version "8.18.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc" + integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== + ws@^7.3.1, ws@^7.4.6, ws@^7.5.1: version "7.5.9" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" @@ -17664,7 +17716,7 @@ yocto-queue@^1.0.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== -zod@^3.22.2, zod@^3.22.4: +zod@^3.22.4: version "3.23.0" resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.0.tgz#a25dab5052702834233e0041e9dd8b6a8480e744" integrity sha512-OFLT+LTocvabn6q76BTwVB0hExEBS0IduTr3cqZyMqEDbOnYmcU+y0tUAYbND4uwclpBGi4I4UUBGzylWpjLGA==