diff --git a/.eslintrc.js b/.eslintrc.js index b9202ff1a..451c82a9b 100755 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,5 +1,5 @@ module.exports = { - 'extends': ['./node_modules/@yearn-finance/web-lib/.eslintrc.cjs'], + 'extends': ['./node_modules/@yearn-finance/web-lib/.eslintrc.cjs', 'plugin:react-hooks/recommended'], 'parser': '@typescript-eslint/parser', 'parserOptions': { 'ecmaFeatures': { @@ -16,6 +16,11 @@ module.exports = { '@typescript-eslint/indent': ['error', 'tab'], 'no-multi-spaces': ['error', {ignoreEOLComments: false}], 'no-mixed-spaces-and-tabs': 'error', - 'react/jsx-max-props-per-line': 'off' + 'react/jsx-max-props-per-line': 'off', + 'react-hooks/exhaustive-deps': [ + 'warn', { + 'additionalHooks': '^useAsyncTrigger$' + } + ] } }; diff --git a/apps/common/components/AmountInput.tsx b/apps/common/components/AmountInput.tsx index b72276f7b..9c4127097 100644 --- a/apps/common/components/AmountInput.tsx +++ b/apps/common/components/AmountInput.tsx @@ -1,15 +1,15 @@ import {Renderable} from '@yearn-finance/web-lib/components/Renderable'; -import {isZero} from '@yearn-finance/web-lib/utils/isZero'; import type {ReactElement} from 'react'; +import type {TNormalizedBN} from '@common/types/types'; type TAmountInputProps = { - amount: string | number; - maxAmount?: string | number; + amount: TNormalizedBN; + maxAmount?: TNormalizedBN; maxLabel?: string; label?: string; placeholder?: string; - legend?: string; + legend?: string | ReactElement; error?: string; disabled?: boolean; loading?: boolean; @@ -31,13 +31,6 @@ export function AmountInput({ onLegendClick, onMaxClick }: TAmountInputProps): ReactElement { - let displayedAmount = amount.toString(); - if (isZero(displayedAmount) && !disabled) { - displayedAmount = ''; - } - if (isZero(displayedAmount) && disabled) { - displayedAmount = '0'; - } return (
{label && ( @@ -49,10 +42,10 @@ export function AmountInput({
onAmountChange(e.target.value) : undefined} placeholder={loading ? '' : placeholder ?? '0'} disabled={disabled} @@ -70,7 +63,7 @@ export function AmountInput({ role={onLegendClick ? 'button' : 'text'} onClick={onLegendClick} suppressHydrationWarning - className={`mt-1 pl-2 text-xs md:mr-0 ${error ? 'text-[#EA5204]' : 'text-neutral-600'}`}> + className={`mt-1 pl-1 text-xs md:mr-0 ${error ? 'text-[#EA5204]' : 'text-neutral-600'}`}> {error ?? legend} diff --git a/apps/common/components/Dropdown.tsx b/apps/common/components/Dropdown.tsx index 87b40259c..3415d43af 100644 --- a/apps/common/components/Dropdown.tsx +++ b/apps/common/components/Dropdown.tsx @@ -44,7 +44,7 @@ const DropdownOption = (option: TDropdownOption): ReactElement => { }; const DropdownEmpty = ({isSearching}: {isSearching: boolean}): ReactElement => { - if(isSearching) { + if (!isSearching) { return (
@@ -170,10 +170,8 @@ export const Dropdown = ({selected, options, onChange, label, legend, isDisabled leaveFrom={'transform scale-100 opacity-100'} leaveTo={'transform scale-95 opacity-0'} afterLeave={(): void => { - performBatchedUpdates((): void => { - set_isOpen(false); - set_search(''); - }); + set_isOpen(false); + set_search(''); }}> {filteredOptions.length === 0 ? ( diff --git a/apps/common/components/SearchBar.tsx b/apps/common/components/SearchBar.tsx index 845d0d293..16f923692 100644 --- a/apps/common/components/SearchBar.tsx +++ b/apps/common/components/SearchBar.tsx @@ -1,20 +1,29 @@ +import {cl} from '@yearn-finance/web-lib/utils/cl'; + import type {ChangeEvent, ReactElement} from 'react'; export type TSearchBar = { searchPlaceholder: string; searchValue: string; set_searchValue: (searchValue: string) => void; -} + className?: string; +}; -export function SearchBar({searchPlaceholder, searchValue, set_searchValue}: TSearchBar): ReactElement { +export function SearchBar({searchPlaceholder, searchValue, set_searchValue, className}: TSearchBar): ReactElement { return ( <> -
+
+ }} + />
+ d={ + 'M10 1C5.02972 1 1 5.02972 1 10C1 14.9703 5.02972 19 10 19C12.1249 19 14.0779 18.2635 15.6176 17.0318L21.2929 22.7071C21.6834 23.0976 22.3166 23.0976 22.7071 22.7071C23.0976 22.3166 23.0976 21.6834 22.7071 21.2929L17.0318 15.6176C18.2635 14.0779 19 12.1249 19 10C19 5.02972 14.9703 1 10 1ZM3 10C3 6.13428 6.13428 3 10 3C13.8657 3 17 6.13428 17 10C17 13.8657 13.8657 17 10 17C6.13428 17 3 13.8657 3 10Z' + } + fill={'currentcolor'} + />
-
diff --git a/apps/common/components/Table.tsx b/apps/common/components/Table.tsx index f174ae8c0..f99767056 100644 --- a/apps/common/components/Table.tsx +++ b/apps/common/components/Table.tsx @@ -2,7 +2,6 @@ import {useCallback, useMemo, useState} from 'react'; import {sort} from '@veYFI/utils'; import {cl} from '@yearn-finance/web-lib/utils/cl'; -import {isZero} from '@yearn-finance/web-lib/utils/isZero'; import {Pagination} from '@common/components/Pagination'; import {usePagination} from '@common/hooks/usePagination'; import {IconChevronPlain} from '@common/icons/IconChevronPlain'; @@ -25,6 +24,7 @@ type TMetadata = { sortable?: boolean; fullWidth?: boolean; columnSpan?: number; + isDisabled?: (item: T) => boolean; format?: (item: T) => string | number; transform?: (item: T) => ReactElement; } @@ -36,9 +36,10 @@ type TTableProps = { initialSortBy?: Extract; onRowClick?: (item: T) => void; itemsPerPage?: number; + isLoading?: boolean; } -export function Table({metadata, data, columns, initialSortBy, onRowClick, itemsPerPage}: TTableProps): ReactElement { +export function Table({metadata, data, columns, initialSortBy, onRowClick, itemsPerPage, isLoading}: TTableProps): ReactElement { const [{sortedBy, order}, set_state] = useState>({sortedBy: initialSortBy, order: 'desc'}); const sortedData = useMemo((): T[] => { @@ -65,10 +66,11 @@ export function Table({metadata, data, columns, initialSortBy, onRowClick, it 9: 'md:grid-cols-9', 10: 'md:grid-cols-10', 11: 'md:grid-cols-11', - 12: 'md:grid-cols-12' + 12: 'md:grid-cols-12', + 13: 'md:grid-cols-13' }; - const numberOfColumns = Math.min(columns ?? (metadata.length), 12) as keyof typeof gridColsVariants; + const numberOfColumns = Math.min(columns ?? (metadata.length), 13) as keyof typeof gridColsVariants; const colSpanVariants = { 1: 'md:col-span-1', @@ -82,7 +84,8 @@ export function Table({metadata, data, columns, initialSortBy, onRowClick, it 9: 'md:col-span-9', 10: 'md:col-span-10', 11: 'md:col-span-11', - 12: 'md:col-span-12' + 12: 'md:col-span-12', + 13: 'md:col-span-13' }; return ( @@ -103,7 +106,7 @@ export function Table({metadata, data, columns, initialSortBy, onRowClick, it className || '' )} > -

+

{label}

{sortable && sortedBy === key && } @@ -112,6 +115,25 @@ export function Table({metadata, data, columns, initialSortBy, onRowClick, it ))}
+ {currentItems.length === 0 && isLoading ? + ( +
+ {'Fetching gauge data'} +

{'We are retrieving the gauges. Please wait.'}

+
+ +
+
+ ) : currentItems.length === 0 && !isLoading ? + ( +
+ {'No Gauges'} +

+ {'No gauges available.'} +

+
+ ) : null + } {currentItems.map((item, rowIndex): ReactElement => (
({metadata, data, columns, initialSortBy, onRowClick, it )} onClick={(): void => onRowClick?.(item)} > - {metadata.map(({key, label, className, fullWidth, columnSpan, format, transform}): ReactElement => { - const isNumber = !isNaN(item[key] as number); + {metadata.map(({key, label, className, fullWidth, columnSpan, format, transform, isDisabled}): ReactElement => { + let isNumberLike = false; + if (typeof item[key] === 'bigint') { + isNumberLike = true; + } else { + isNumberLike = !isNaN(Number(item[key])); + } + const isNumber = isNumberLike; return (
({metadata, data, columns, initialSortBy, onRowClick, it {!fullWidth && }
diff --git a/apps/common/contexts/useWallet.tsx b/apps/common/contexts/useWallet.tsx index 89c33a4a9..35b3f1a11 100755 --- a/apps/common/contexts/useWallet.tsx +++ b/apps/common/contexts/useWallet.tsx @@ -1,6 +1,6 @@ import {createContext, memo, useCallback, useContext, useEffect, useMemo, useState} from 'react'; import {useChainId} from 'wagmi'; -import {OPT_YVSTERN_ERN_STAKING_CONTRACT, OPT_YVAGEUR_USDC_STAKING_CONTRACT, OPT_YVALETH_FRXETH_STAKING_CONTRACT, OPT_YVALETH_WETH_STAKING_CONTRACT, OPT_YVALUSD_FRAX_STAKING_CONTRACT, OPT_YVALUSD_USDC_STAKING_CONTRACT, OPT_YVDAI_STAKING_CONTRACT, OPT_YVDOLA_USDC_STAKING_CONTRACT, OPT_YVDOLAUSDC_STAKING_CONTRACT, OPT_YVERN_DOLA_STAKING_CONTRACT, OPT_YVERN_LUSD_STAKING_CONTRACT, OPT_YVETH_STAKING_CONTRACT, OPT_YVEXA_WETH_STAKING_CONTRACT, OPT_YVFRAX_DOLA_STAKING_CONTRACT, OPT_YVIB_WETH_STAKING_CONTRACT, OPT_YVLDO_WSTETH_STAKING_CONTRACT, OPT_YVLUSD_WETH_STAKING_CONTRACT, OPT_YVMAI_ALUSD_STAKING_CONTRACT, OPT_YVMAI_DOLA_STAKING_CONTRACT, OPT_YVMAI_STAKING_CONTRACT, OPT_YVMAI_USDC_STAKING_CONTRACT, OPT_YVMAIUSDC_STAKING_CONTRACT, OPT_YVMIM_USDC_STAKING_CONTRACT, OPT_YVMTA_USDC_STAKING_CONTRACT, OPT_YVOP_USDC_STAKING_CONTRACT, OPT_YVOP_VELO_STAKING_CONTRACT, OPT_YVOP_WETH_STAKING_CONTRACT, OPT_YVSNX_USDC_STAKING_CONTRACT, OPT_YVSUSCUSDC_STAKING_CONTRACT, OPT_YVTBTC_WBTC_STAKING_CONTRACT, OPT_YVTBTC_WETH_STAKING_CONTRACT, OPT_YVUSDC_STAKING_CONTRACT, OPT_YVUSDT_STAKING_CONTRACT, OPT_YVVELO_USDC_STAKING_CONTRACT, OPT_YVWUSDR_USDC_STAKING_CONTRACT, OPT_YVWUSDRV2_USDC_STAKING_CONTRACT, STACKING_TO_VAULT} from '@vaults/constants/optRewards'; +import {OPT_YVAGEUR_USDC_STAKING_CONTRACT, OPT_YVALETH_FRXETH_STAKING_CONTRACT, OPT_YVALETH_WETH_STAKING_CONTRACT, OPT_YVALUSD_FRAX_STAKING_CONTRACT, OPT_YVALUSD_USDC_STAKING_CONTRACT, OPT_YVDAI_STAKING_CONTRACT, OPT_YVDOLA_USDC_STAKING_CONTRACT, OPT_YVDOLAUSDC_STAKING_CONTRACT, OPT_YVERN_DOLA_STAKING_CONTRACT, OPT_YVERN_LUSD_STAKING_CONTRACT, OPT_YVETH_STAKING_CONTRACT, OPT_YVEXA_WETH_STAKING_CONTRACT, OPT_YVFRAX_DOLA_STAKING_CONTRACT, OPT_YVIB_WETH_STAKING_CONTRACT, OPT_YVLDO_WSTETH_STAKING_CONTRACT, OPT_YVLUSD_WETH_STAKING_CONTRACT, OPT_YVMAI_ALUSD_STAKING_CONTRACT, OPT_YVMAI_DOLA_STAKING_CONTRACT, OPT_YVMAI_STAKING_CONTRACT, OPT_YVMAI_USDC_STAKING_CONTRACT, OPT_YVMAIUSDC_STAKING_CONTRACT, OPT_YVMIM_USDC_STAKING_CONTRACT, OPT_YVMTA_USDC_STAKING_CONTRACT, OPT_YVOP_USDC_STAKING_CONTRACT, OPT_YVOP_VELO_STAKING_CONTRACT, OPT_YVOP_WETH_STAKING_CONTRACT, OPT_YVSNX_USDC_STAKING_CONTRACT, OPT_YVSTERN_ERN_STAKING_CONTRACT, OPT_YVSUSCUSDC_STAKING_CONTRACT, OPT_YVTBTC_WBTC_STAKING_CONTRACT, OPT_YVTBTC_WETH_STAKING_CONTRACT, OPT_YVUSDC_STAKING_CONTRACT, OPT_YVUSDT_STAKING_CONTRACT, OPT_YVVELO_USDC_STAKING_CONTRACT, OPT_YVWUSDR_USDC_STAKING_CONTRACT, OPT_YVWUSDRV2_USDC_STAKING_CONTRACT, STACKING_TO_VAULT} from '@vaults/constants/optRewards'; import {useUI} from '@yearn-finance/web-lib/contexts/useUI'; import {useBalances} from '@yearn-finance/web-lib/hooks/useBalances'; import {toAddress} from '@yearn-finance/web-lib/utils/address'; @@ -214,6 +214,7 @@ export const WalletContextApp = memo(function WalletContextApp({children}: {chil refresh: onRefresh }), [balances, cumulatedValueInVaults, isLoading, onRefresh, nonce]); + return ( {children} diff --git a/apps/common/hooks/useAsyncEffect.ts b/apps/common/hooks/useAsyncEffect.ts new file mode 100644 index 000000000..7f68c07fe --- /dev/null +++ b/apps/common/hooks/useAsyncEffect.ts @@ -0,0 +1,19 @@ +/* eslint-disable react-hooks/exhaustive-deps */ + +import {type DependencyList, useCallback, useEffect} from 'react'; + +//Should be useAsyncEffect, but exhaustive-deps is messing with this. +function useAsyncTrigger(effect: () => Promise, deps: DependencyList): () => Promise { + const asyncEffectInCallback = useCallback(async (): Promise => { + effect(); + }, [...deps]); + + useEffect((): void => { + asyncEffectInCallback(); + }, [asyncEffectInCallback]); + + return asyncEffectInCallback; +} + + +export {useAsyncTrigger}; diff --git a/apps/common/hooks/useTimer.ts b/apps/common/hooks/useTimer.ts index cc61f52dd..d42e61b12 100755 --- a/apps/common/hooks/useTimer.ts +++ b/apps/common/hooks/useTimer.ts @@ -10,7 +10,6 @@ type TProps = { endTime?: TSeconds; } -// TODO Check if we can use `getTimeUntil` from the web lib for this computation export function computeTimeLeft({endTime}: {endTime?: TSeconds}): number { if (!endTime) { return 0; diff --git a/apps/common/hooks/useTokenPrice.ts b/apps/common/hooks/useTokenPrice.ts index 3aec104a5..bc557a5d9 100644 --- a/apps/common/hooks/useTokenPrice.ts +++ b/apps/common/hooks/useTokenPrice.ts @@ -8,9 +8,9 @@ import type {TAddress} from '@yearn-finance/web-lib/types'; export function useTokenPrice(address: TAddress): number { const {prices} = useYearn(); - const tokenPrice = useMemo((): number => ( - formatToNormalizedValue(toBigInt(prices?.[address] || 0), 6) - ), [address, prices]); + const tokenPrice = useMemo((): number => { + return formatToNormalizedValue(toBigInt(prices?.[address] || 0), 6); + }, [address, prices]); return tokenPrice; } diff --git a/apps/common/schemas/yDaemonVaultsSchemas.ts b/apps/common/schemas/yDaemonVaultsSchemas.ts index 57c4aa440..6da8cc051 100644 --- a/apps/common/schemas/yDaemonVaultsSchemas.ts +++ b/apps/common/schemas/yDaemonVaultsSchemas.ts @@ -76,7 +76,7 @@ export const yDaemonVaultTokenSchema = z.object({ export const yDaemonVaultSchema = z.object({ address: addressSchema, - type: z.literal('Automated').or(z.literal('Standard').or(z.literal('Experimental'))), + type: z.literal('Automated').or(z.literal('Standard').or(z.literal('Experimental').or(z.literal('Automated Yearn Vault').or(z.literal('Yearn Vault'))))), symbol: z.string(), display_symbol: z.string(), formated_symbol: z.string(), diff --git a/apps/common/utils/QueryParamsProvider.tsx b/apps/common/utils/QueryParamsProvider.tsx new file mode 100644 index 000000000..8b9060abf --- /dev/null +++ b/apps/common/utils/QueryParamsProvider.tsx @@ -0,0 +1,29 @@ +import {useMemo} from 'react'; +import {usePathname, useRouter, useSearchParams} from 'next/navigation'; + +import type {ReactElement} from 'react'; +import type {PartialLocation, QueryParamAdapterComponent} from 'use-query-params'; + +export const NextQueryParamAdapter: QueryParamAdapterComponent = ({children}): ReactElement | null => { + const router = useRouter(); + const pathname = usePathname(); + const searchParams = useSearchParams(); + + const adapter = useMemo((): any => { + return { + replace(location: PartialLocation): void { + router.replace(pathname + location.search); + }, + push(location: PartialLocation): void { + router.push(pathname + location.search); + }, + get location(): {search: string} { + return { + search: searchParams.toString() + }; + } + }; + }, [router, pathname, searchParams]); + + return children(adapter); +}; diff --git a/apps/common/utils/actions.ts b/apps/common/utils/actions.ts index 64346de6a..0fa11097e 100755 --- a/apps/common/utils/actions.ts +++ b/apps/common/utils/actions.ts @@ -47,6 +47,7 @@ export async function isApprovedERC20( ******************************************************************************/ type TAllowanceOf = { connector: Connector | undefined, + chainID: number, tokenAddress: TAddress, spenderAddress: TAddress } @@ -54,6 +55,7 @@ export async function allowanceOf(props: TAllowanceOf): Promise { const wagmiProvider = await toWagmiProvider(props.connector); const result = await readContract({ ...wagmiProvider, + chainId: props.chainID, abi: erc20ABI, address: props.tokenAddress, functionName: 'allowance', diff --git a/apps/common/utils/wagmiUtils.ts b/apps/common/utils/wagmiUtils.ts deleted file mode 100644 index 41349b76e..000000000 --- a/apps/common/utils/wagmiUtils.ts +++ /dev/null @@ -1,115 +0,0 @@ -import {BaseError} from 'viem'; -import {captureException} from '@sentry/nextjs'; -import {prepareWriteContract, waitForTransaction, writeContract} from '@wagmi/core'; -import {toast} from '@yearn-finance/web-lib/components/yToast'; -import {toAddress} from '@yearn-finance/web-lib/utils/address'; -import {ZERO_ADDRESS} from '@yearn-finance/web-lib/utils/constants'; -import {toBigInt} from '@yearn-finance/web-lib/utils/format.bigNumber'; -import {isEth} from '@yearn-finance/web-lib/utils/isEth'; -import {isTAddress} from '@yearn-finance/web-lib/utils/isTAddress'; -import {defaultTxStatus} from '@yearn-finance/web-lib/utils/web3/transaction'; -import {assert} from '@common/utils/assert'; - -import type {Abi, SimulateContractParameters} from 'viem'; -import type {Connector} from 'wagmi'; -import type {TAddress} from '@yearn-finance/web-lib/types'; -import type {TTxResponse} from '@yearn-finance/web-lib/utils/web3/transaction'; -import type {GetWalletClientResult, WalletClient} from '@wagmi/core'; - -export type TWagmiProviderContract = { - walletClient: GetWalletClientResult, - chainId: number, - address: TAddress, -} -export async function toWagmiProvider(connector: Connector | undefined): Promise { - assert(connector, 'Connector is not set'); - - const signer = await connector.getWalletClient(); - const chainId = await connector.getChainId(); - const {address} = signer.account; - return ({ - walletClient: signer, - chainId, - address - }); -} - -export type TWriteTransaction = { - connector: Connector | undefined; - contractAddress: TAddress | undefined; - statusHandler?: (status: typeof defaultTxStatus) => void; - onTrySomethingElse?: () => Promise; //When the abi is incorrect, ex: usdt, we may need to bypass the error and try something else -} - -export function assertAddress(addr: string | TAddress | undefined, name?: string): asserts addr is TAddress { - assert(addr, `${name || 'Address'} is not set`); - assert(isTAddress(addr), `${name || 'Address'} provided is invalid`); - assert(toAddress(addr) !== ZERO_ADDRESS, `${name || 'Address'} is 0x0`); - assert(!isEth(addr), `${name || 'Address'} is 0xE`); -} - -export function assertAddresses(addresses: (string | TAddress | undefined)[], name?: string): asserts addresses is TAddress[] { - addresses.forEach((addr): void => assertAddress(addr, name)); -} - -type TPrepareWriteContractConfig< - TAbi extends Abi | readonly unknown[] = Abi, - TFunctionName extends string = string -> = Omit, 'chain' | 'address'> & { - chainId?: number - walletClient?: WalletClient - address: TAddress | undefined -} -export async function handleTx< - TAbi extends Abi | readonly unknown[], - TFunctionName extends string ->( - args: TWriteTransaction, - props: TPrepareWriteContractConfig -): Promise { - args.statusHandler?.({...defaultTxStatus, pending: true}); - const wagmiProvider = await toWagmiProvider(args.connector); - - assertAddress(props.address, 'contractAddress'); - assertAddress(wagmiProvider.address, 'userAddress'); - try { - const config = await prepareWriteContract({ - ...wagmiProvider, - ...props as TPrepareWriteContractConfig, - address: props.address, - value: toBigInt(props.value) - }); - const {hash} = await writeContract(config.request); - const receipt = await waitForTransaction({chainId: wagmiProvider.chainId, hash}); - if (receipt.status === 'success') { - args.statusHandler?.({...defaultTxStatus, success: true}); - } else if (receipt.status === 'reverted') { - args.statusHandler?.({...defaultTxStatus, error: true}); - } - toast({type: 'success', content: 'Transaction successful!'}); - return ({isSuccessful: receipt.status === 'success', receipt}); - } catch (error) { - if (process.env.NODE_ENV === 'production') { - captureException(error); - } - - if (!(error instanceof BaseError)) { - return ({isSuccessful: false, error}); - } - - if (args.onTrySomethingElse) { - if (error.name === 'ContractFunctionExecutionError') { - return await args.onTrySomethingElse(); - } - } - - toast({type: 'error', content: error.shortMessage}); - args.statusHandler?.({...defaultTxStatus, error: true}); - console.error(error); - return ({isSuccessful: false, error}); - } finally { - setTimeout((): void => { - args.statusHandler?.({...defaultTxStatus}); - }, 3000); - } -} diff --git a/apps/vaults/components/RewardsTab.tsx b/apps/vaults/components/RewardsTab.tsx index 429dab4cf..9db7d5e03 100644 --- a/apps/vaults/components/RewardsTab.tsx +++ b/apps/vaults/components/RewardsTab.tsx @@ -56,6 +56,7 @@ export function RewardsTab({currentVault}: {currentVault: TYDaemonVault}): React const onApprove = useCallback(async (): Promise => { const result = await approveERC20({ connector: provider, + chainID: currentVault.chainID, contractAddress: currentVault.address, spenderAddress: toAddress(stakingRewards?.address), amount: vaultBalance.raw, @@ -69,6 +70,7 @@ export function RewardsTab({currentVault}: {currentVault: TYDaemonVault}): React const onStake = useCallback(async (): Promise => { const result = await stakeAction({ connector: provider, + chainID: currentVault.chainID, contractAddress: toAddress(stakingRewards?.address), amount: vaultBalance.raw, statusHandler: set_stakeStatus @@ -81,6 +83,7 @@ export function RewardsTab({currentVault}: {currentVault: TYDaemonVault}): React const onUnstake = useCallback(async (): Promise => { const result = await unstakeAction({ connector: provider, + chainID: currentVault.chainID, contractAddress: toAddress(stakingRewards?.address), statusHandler: set_unstakeStatus }); @@ -92,6 +95,7 @@ export function RewardsTab({currentVault}: {currentVault: TYDaemonVault}): React const onClaim = useCallback(async (): Promise => { const result = await claimAction({ connector: provider, + chainID: currentVault.chainID, contractAddress: toAddress(stakingRewards?.address), statusHandler: set_claimStatus }); diff --git a/apps/vaults/components/graphs/GraphForStrategyReports.tsx b/apps/vaults/components/graphs/GraphForStrategyReports.tsx index f0e048b7b..8c5a5eb35 100755 --- a/apps/vaults/components/graphs/GraphForStrategyReports.tsx +++ b/apps/vaults/components/graphs/GraphForStrategyReports.tsx @@ -58,7 +58,7 @@ export function GraphForStrategyReports({strategy, vaultDecimals, vaultTicker, h dataKey={'value'} stroke={'currentcolor'} dot={false} - activeDot={(e): ReactElement => { + activeDot={(e: any): ReactElement => { e.className = `${e.className} activeDot`; delete e.dataKey; return ; diff --git a/apps/vaults/components/graphs/GraphForVaultEarnings.tsx b/apps/vaults/components/graphs/GraphForVaultEarnings.tsx index fb07a4977..128474ac4 100755 --- a/apps/vaults/components/graphs/GraphForVaultEarnings.tsx +++ b/apps/vaults/components/graphs/GraphForVaultEarnings.tsx @@ -44,7 +44,7 @@ export function GraphForVaultEarnings({currentVault, harvestData, height = 312, className={'text-primary-600'} type={'step'} dot={false} - activeDot={(e): ReactElement => { + activeDot={(e: any): ReactElement => { e.className = `${e.className} activeDot`; delete e.dataKey; return ; diff --git a/apps/vaults/components/graphs/GraphForVaultPPSGrowth.tsx b/apps/vaults/components/graphs/GraphForVaultPPSGrowth.tsx index a046ba751..cc47132be 100755 --- a/apps/vaults/components/graphs/GraphForVaultPPSGrowth.tsx +++ b/apps/vaults/components/graphs/GraphForVaultPPSGrowth.tsx @@ -28,7 +28,7 @@ export function GraphForVaultPPSGrowth({messariData, height = 312}: TGraphForVau dataKey={'pps'} stroke={'currentcolor'} dot={false} - activeDot={(e): ReactElement => { + activeDot={(e: any): ReactElement => { e.className = `${e.className} activeDot`; delete e.dataKey; return ; diff --git a/apps/vaults/components/graphs/GraphForVaultTVL.tsx b/apps/vaults/components/graphs/GraphForVaultTVL.tsx index 54d0b58bb..64ebcac60 100755 --- a/apps/vaults/components/graphs/GraphForVaultTVL.tsx +++ b/apps/vaults/components/graphs/GraphForVaultTVL.tsx @@ -28,7 +28,7 @@ export function GraphForVaultTVL({messariData, height = 312}: TGraphForVaultTVLP dataKey={'tvl'} stroke={'currentcolor'} dot={false} - activeDot={(e): ReactElement => { + activeDot={(e: any): ReactElement => { e.className = `${e.className} activeDot`; delete e.dataKey; return ; diff --git a/apps/vaults/hooks/useSolverChainCoin.ts b/apps/vaults/hooks/useSolverChainCoin.ts index bf57fb90d..c2f34231a 100644 --- a/apps/vaults/hooks/useSolverChainCoin.ts +++ b/apps/vaults/hooks/useSolverChainCoin.ts @@ -67,6 +67,7 @@ export function useSolverChainCoin(): TSolverContext { assert(isEth(request.current.outputToken.value), 'Out is not ETH'); const allowance = await allowanceOf({ connector: provider, + chainID: safeChainID, tokenAddress: toAddress(request.current.inputToken.value), spenderAddress: toAddress(getEthZapperContract(safeChainID)) }); @@ -87,6 +88,7 @@ export function useSolverChainCoin(): TSolverContext { const result = await approveERC20({ connector: provider, + chainID: safeChainID, contractAddress: toAddress(request.current.inputToken.value), spenderAddress: getEthZapperContract(safeChainID), amount: amount, @@ -111,6 +113,7 @@ export function useSolverChainCoin(): TSolverContext { const result = await depositETH({ connector: provider, + chainID: safeChainID, contractAddress: getEthZapperContract(safeChainID), amount: request.current.inputAmount, statusHandler: txStatusSetter @@ -134,6 +137,7 @@ export function useSolverChainCoin(): TSolverContext { const result = await withdrawETH({ connector: provider, + chainID: safeChainID, contractAddress: getEthZapperContract(safeChainID), amount: request.current.inputAmount, statusHandler: txStatusSetter diff --git a/apps/vaults/hooks/useSolverCowswap.ts b/apps/vaults/hooks/useSolverCowswap.ts index b13676886..1d5e534be 100644 --- a/apps/vaults/hooks/useSolverCowswap.ts +++ b/apps/vaults/hooks/useSolverCowswap.ts @@ -282,6 +282,7 @@ export function useSolverCowswap(): TSolverContext { } const allowance = await allowanceOf({ connector: provider, + chainID: safeChainID, tokenAddress: request.current.inputToken.value, spenderAddress: SOLVER_COW_VAULT_RELAYER_ADDRESS }); @@ -316,6 +317,7 @@ export function useSolverCowswap(): TSolverContext { } const result = await approveERC20({ connector: provider, + chainID: safeChainID, contractAddress: request.current.inputToken.value, spenderAddress: SOLVER_COW_VAULT_RELAYER_ADDRESS, amount: toBigInt(amount), diff --git a/apps/vaults/hooks/useSolverInternalMigration.ts b/apps/vaults/hooks/useSolverInternalMigration.ts index edcf4926d..9df53a009 100644 --- a/apps/vaults/hooks/useSolverInternalMigration.ts +++ b/apps/vaults/hooks/useSolverInternalMigration.ts @@ -80,6 +80,7 @@ export function useSolverInternalMigration(): TSolverContext { const allowance = await allowanceOf({ connector: provider, + chainID: safeChainID, tokenAddress: toAddress(request.current.inputToken.value), spenderAddress: toAddress(request.current.migrator) }); @@ -104,6 +105,7 @@ export function useSolverInternalMigration(): TSolverContext { const result = await approveERC20({ connector: provider, + chainID: safeChainID, contractAddress: toAddress(request.current.inputToken.value), spenderAddress: request.current.migrator, amount: amount, @@ -137,6 +139,7 @@ export function useSolverInternalMigration(): TSolverContext { }); const result = await zapCRV({ connector: provider, + chainID: safeChainID, contractAddress: ZAP_YEARN_VE_CRV_ADDRESS, inputToken: request.current.inputToken.value, //_input_token outputToken: request.current.outputToken.value, //_output_token @@ -153,6 +156,7 @@ export function useSolverInternalMigration(): TSolverContext { const result = await migrateShares({ connector: provider, + chainID: safeChainID, contractAddress: request.current.migrator, fromVault: request.current.inputToken.value, toVault: request.current.outputToken.value, diff --git a/apps/vaults/hooks/useSolverOptimismBooster.ts b/apps/vaults/hooks/useSolverOptimismBooster.ts index c9129a761..471ab499e 100644 --- a/apps/vaults/hooks/useSolverOptimismBooster.ts +++ b/apps/vaults/hooks/useSolverOptimismBooster.ts @@ -63,6 +63,7 @@ export function useSolverOptimismBooster(): TSolverContext { const allowance = await allowanceOf({ connector: provider, + chainID: safeChainID, tokenAddress: toAddress(request.current.inputToken.value), spenderAddress: toAddress(STAKING_REWARDS_ZAP_ADDRESS) }); @@ -85,6 +86,7 @@ export function useSolverOptimismBooster(): TSolverContext { const result = await approveERC20({ connector: provider, + chainID: safeChainID, contractAddress: request.current.inputToken.value, spenderAddress: STAKING_REWARDS_ZAP_ADDRESS, amount: amount, @@ -108,6 +110,7 @@ export function useSolverOptimismBooster(): TSolverContext { const result = await depositAndStake({ connector: provider, + chainID: safeChainID, contractAddress: STAKING_REWARDS_ZAP_ADDRESS, vaultAddress: request.current.outputToken.value, amount: request.current.inputAmount, diff --git a/apps/vaults/hooks/useSolverPartnerContract.ts b/apps/vaults/hooks/useSolverPartnerContract.ts index d5a359793..c0f8af004 100644 --- a/apps/vaults/hooks/useSolverPartnerContract.ts +++ b/apps/vaults/hooks/useSolverPartnerContract.ts @@ -65,6 +65,7 @@ export function useSolverPartnerContract(): TSolverContext { const allowance = await allowanceOf({ connector: provider, + chainID: safeChainID, tokenAddress: toAddress(request.current.inputToken.value), spenderAddress: toAddress(getNetwork(safeChainID)?.contracts?.partnerContract?.address) }); @@ -92,6 +93,7 @@ export function useSolverPartnerContract(): TSolverContext { const result = await approveERC20({ connector: provider, + chainID: safeChainID, contractAddress: request.current.inputToken.value, spenderAddress: partnerContract, amount: amount, @@ -117,6 +119,7 @@ export function useSolverPartnerContract(): TSolverContext { const result = await depositViaPartner({ connector: provider, + chainID: safeChainID, contractAddress: partnerContract, vaultAddress: request.current.outputToken.value, partnerAddress: currentPartner ? currentPartner : undefined, @@ -142,6 +145,7 @@ export function useSolverPartnerContract(): TSolverContext { const result = await withdrawShares({ connector: provider, + chainID: safeChainID, contractAddress: request.current.inputToken.value, amount: request.current.inputAmount, statusHandler: txStatusSetter diff --git a/apps/vaults/hooks/useSolverPortals.ts b/apps/vaults/hooks/useSolverPortals.ts index 011b73538..6802d2014 100644 --- a/apps/vaults/hooks/useSolverPortals.ts +++ b/apps/vaults/hooks/useSolverPortals.ts @@ -309,6 +309,7 @@ export function useSolverPortals(): TSolverContext { const allowance = await allowanceOf({ connector: provider, + chainID: safeChainID, tokenAddress: toAddress(request.current.inputToken.value), //token to approve spenderAddress: toAddress(approval.context.spender) //contract to approve }); @@ -316,6 +317,7 @@ export function useSolverPortals(): TSolverContext { assertAddress(approval.context.spender, 'spender'); const result = await approveERC20({ connector: provider, + chainID: safeChainID, contractAddress: request.current.inputToken.value, spenderAddress: approval.context.spender, amount: amount, diff --git a/apps/vaults/hooks/useSolverVanilla.ts b/apps/vaults/hooks/useSolverVanilla.ts index e70d2ed54..f68f1050e 100644 --- a/apps/vaults/hooks/useSolverVanilla.ts +++ b/apps/vaults/hooks/useSolverVanilla.ts @@ -62,6 +62,7 @@ export function useSolverVanilla(): TSolverContext { const allowance = await allowanceOf({ connector: provider, + chainID: safeChainID, tokenAddress: toAddress(request.current.inputToken.value), spenderAddress: toAddress(request.current.outputToken.value) }); @@ -86,6 +87,7 @@ export function useSolverVanilla(): TSolverContext { const result = await approveERC20({ connector: provider, + chainID: safeChainID, contractAddress: request.current.inputToken.value, spenderAddress: request.current.outputToken.value, amount: amount, @@ -110,6 +112,7 @@ export function useSolverVanilla(): TSolverContext { const result = await deposit({ connector: provider, + chainID: safeChainID, contractAddress: request.current.outputToken.value, amount: request.current.inputAmount, statusHandler: txStatusSetter @@ -133,6 +136,7 @@ export function useSolverVanilla(): TSolverContext { const result = await withdrawShares({ connector: provider, + chainID: safeChainID, contractAddress: request.current.inputToken.value, amount: request.current.inputAmount, statusHandler: txStatusSetter diff --git a/apps/vaults/hooks/useSolverWido.ts b/apps/vaults/hooks/useSolverWido.ts index c2773e5d7..aa3ec3d89 100644 --- a/apps/vaults/hooks/useSolverWido.ts +++ b/apps/vaults/hooks/useSolverWido.ts @@ -208,6 +208,7 @@ export function useSolverWido(): TSolverContext { const allowance = await allowanceOf({ connector: provider, + chainID: safeChainID, tokenAddress: toAddress(request.current.inputToken.value), spenderAddress: toAddress(widoSpender) }); @@ -257,6 +258,7 @@ export function useSolverWido(): TSolverContext { assertAddress(widoSpender, 'spender'); const result = await approveERC20({ connector: provider, + chainID: safeChainID, contractAddress: request.current.inputToken.value, spenderAddress: widoSpender, amount: amount, diff --git a/apps/veyfi/Wrapper.tsx b/apps/veyfi/Wrapper.tsx index 86ae1fa96..818dbd2b0 100644 --- a/apps/veyfi/Wrapper.tsx +++ b/apps/veyfi/Wrapper.tsx @@ -21,7 +21,7 @@ export function Wrapper({children, router}: {children: ReactElement, router: Nex (); - const {provider, address, isActive, chainID} = useWeb3(); - const {gaugeAddresses, gaugesMap, positionsMap, allowancesMap, refresh: refreshGauges, isLoading: isLoadingGauges} = useGauge(); - const {vaults} = useYearn(); - const {balances, refresh: refreshBalances} = useWallet(); - const refreshData = (): unknown => Promise.all([refreshGauges(), refreshBalances()]); - const [approveAndStakeStatus, set_approveAndStakeStatus] = useState(defaultTxStatus); - const [stakeStatus, set_stakeStatus] = useState(defaultTxStatus); - const [unstakeStatus, set_unstakeStatus] = useState(defaultTxStatus); - - const userAddress = address as TAddress; - - const gaugesData = gaugeAddresses.map((address): TGaugeData => { - const gauge = gaugesMap[address]; - const vaultAddress = toAddress(gauge?.vaultAddress); - const vault = vaults[vaultAddress]; - - return { - gaugeAddress: address, - vaultAddress, - decimals: gauge?.decimals ?? 18, - vaultIcon: `${process.env.BASE_YEARN_ASSETS_URI}/1/${vaultAddress}/logo-128.png`, - vaultName: vault?.display_name ?? '', - vaultApy: vault?.apy.net_apy ?? 0, - vaultDeposited: toBigInt(formatBigNumberAsAmount(balances[vaultAddress]?.raw)), - gaugeApy: 0, // TODO: gauge apy calcs - gaugeBoost: positionsMap[address]?.boost ?? 1, - gaugeStaked: toBigInt(formatBigNumberAsAmount(positionsMap[address]?.deposit.balance)), - allowance: toBigInt(formatBigNumberAsAmount(allowancesMap[allowanceKey(1, vaultAddress, address, userAddress)])), - isApproved: toBigInt(formatBigNumberAsAmount(allowancesMap[allowanceKey(1, vaultAddress, address, userAddress)])) >= toBigInt(formatBigNumberAsAmount(balances[vaultAddress]?.raw)), - actions: undefined - }; - }); - - const {isValid: isValidNetwork} = validateNetwork({supportedNetwork: 1, walletNetwork: chainID}); - - const onApproveAndStake = useCallback(async (vaultAddress: TAddress, gaugeAddress: TAddress, amount: bigint): Promise => { - set_selectedGauge(gaugeAddress); - set_selectedAction('stake'); - const response = await GaugeActions.approveAndStake({ - connector: provider, - contractAddress: gaugeAddress, - vaultAddress, - amount, - statusHandler: set_approveAndStakeStatus - }); - - if (response.isSuccessful) { - await refreshData(); - } - }, [provider, refreshData]); - - const onStake = useCallback(async (gaugeAddress: TAddress, amount: bigint): Promise => { - set_selectedGauge(gaugeAddress); - set_selectedAction('stake'); - - const response = await GaugeActions.stake({ - connector: provider, - contractAddress: gaugeAddress, - amount, - statusHandler: set_stakeStatus - }); - - if (response.isSuccessful) { - await refreshData(); - } - }, [provider, refreshData]); - - const onUnstake = useCallback(async (gaugeAddress: TAddress, amount: bigint): Promise => { - set_selectedGauge(gaugeAddress); - set_selectedAction('unstake'); - - const response = await GaugeActions.unstake({ - connector: provider, - contractAddress: gaugeAddress, - accountAddress: userAddress, - amount, - statusHandler: set_unstakeStatus - }); - - if (response.isSuccessful) { - await refreshData(); - } - }, [provider, refreshData, userAddress]); - - return ( -
- ( -
-
- -
-

{vaultName}

-
- ) - }, - { - key: 'vaultApy', - label: 'Vault APY', - sortable: true, - format: ({vaultApy}): string => formatPercent((vaultApy) * 100, 2, 2, 500) - }, - { - key: 'vaultDeposited', - label: 'Deposited in Vault', - sortable: true, - format: ({vaultDeposited, decimals}): string => formatAmount(toNormalizedValue(vaultDeposited, decimals)) - }, - { - key: 'gaugeApy', - label: 'Gauge APY', - sortable: true - }, - { - key: 'gaugeBoost', - label: 'Boost', - sortable: true, - format: ({gaugeBoost}): string => `${gaugeBoost.toFixed(2)}x` - }, - { - key: 'gaugeStaked', - label: 'Staked in Gauge', - sortable: true, - format: ({gaugeStaked, decimals}): string => formatAmount(toNormalizedValue(gaugeStaked, decimals)) - }, - { - key: 'actions', - label: '', - columnSpan: 2, - fullWidth: true, - className: 'my-4 md:my-0', - transform: ({isApproved, vaultAddress, gaugeAddress, vaultDeposited, gaugeStaked}): ReactElement => ( -
- - {!isApproved && ( - - )} - {isApproved && ( - - )} -
- ) - } - ]} - data={gaugesData} - columns={9} - initialSortBy={'gaugeApy'} - /> - - ); -} diff --git a/apps/veyfi/components/ManageLockTab.tsx b/apps/veyfi/components/ManageLockTab.tsx deleted file mode 100644 index 3d2ea3a05..000000000 --- a/apps/veyfi/components/ManageLockTab.tsx +++ /dev/null @@ -1,152 +0,0 @@ -import {useCallback, useMemo, useState} from 'react'; -import {formatUnits} from 'viem'; -import {useVotingEscrow} from '@veYFI/contexts/useVotingEscrow'; -import {getVotingPower} from '@veYFI/utils'; -import {extendVeYFILockTime, withdrawLockedVeYFI} from '@veYFI/utils/actions'; -import {MAX_LOCK_TIME, MIN_LOCK_TIME} from '@veYFI/utils/constants'; -import {validateAmount, validateNetwork} from '@veYFI/utils/validations'; -import {Button} from '@yearn-finance/web-lib/components/Button'; -import {useWeb3} from '@yearn-finance/web-lib/contexts/useWeb3'; -import {useChainID} from '@yearn-finance/web-lib/hooks/useChainID'; -import {toBigInt} from '@yearn-finance/web-lib/utils/format.bigNumber'; -import {fromWeeks, getTimeUntil, toSeconds, toTime, toWeeks} from '@yearn-finance/web-lib/utils/time'; -import {defaultTxStatus} from '@yearn-finance/web-lib/utils/web3/transaction'; -import {AmountInput} from '@common/components/AmountInput'; -import {useWallet} from '@common/contexts/useWallet'; - -import type {ReactElement} from 'react'; - -export function ManageLockTab(): ReactElement { - const [lockTime, set_lockTime] = useState(''); - const {provider, address, isActive} = useWeb3(); - const {safeChainID} = useChainID(); - const {refresh: refreshBalances} = useWallet(); - const {votingEscrow, positions, refresh: refreshVotingEscrow} = useVotingEscrow(); - const hasLockedAmount = toBigInt(positions?.deposit?.underlyingBalance) > 0n; - const willExtendLock = toBigInt(lockTime) > 0n; - const timeUntilUnlock = positions?.unlockTime ? getTimeUntil(positions?.unlockTime) : undefined; - const weeksToUnlock = toWeeks(timeUntilUnlock); - const newUnlockTime = toTime(positions?.unlockTime) + fromWeeks(toTime(lockTime)); - const hasPenalty = toBigInt(positions?.penalty) > 0n; - const [extendLockTimeStatus, set_extendLockTimeStatus] = useState(defaultTxStatus); - const [withdrawLockedStatus, set_withdrawLockedStatus] = useState(defaultTxStatus); - - const onTxSuccess = useCallback(async (): Promise => { - await Promise.all([refreshVotingEscrow(), refreshBalances(), set_lockTime('')]); - }, [refreshBalances, refreshVotingEscrow]); - - const onExtendLockTime = useCallback(async (): Promise => { - const result = await extendVeYFILockTime({ - connector: provider, - contractAddress: votingEscrow?.address, - time: toBigInt(toSeconds(newUnlockTime)), - statusHandler: set_extendLockTimeStatus - }); - if (result.isSuccessful) { - onTxSuccess(); - } - }, [newUnlockTime, onTxSuccess, provider, votingEscrow?.address]); - - const onWithdrawLocked = useCallback(async (): Promise => { - const result = await withdrawLockedVeYFI({ - connector: provider, - contractAddress: votingEscrow?.address, - statusHandler: set_withdrawLockedStatus - }); - if (result.isSuccessful) { - onTxSuccess(); - } - }, [onTxSuccess, provider, votingEscrow?.address]); - - const votingPower = useMemo((): bigint => { - if(!positions?.deposit || !newUnlockTime) { - return 0n; - } - return willExtendLock ? getVotingPower(positions?.deposit?.underlyingBalance, newUnlockTime) : toBigInt(positions?.deposit?.balance); - }, [positions?.deposit, newUnlockTime, willExtendLock]); - - const {isValid: isValidLockTime, error: lockTimeError} = validateAmount({ - amount: lockTime, - minAmountAllowed: MIN_LOCK_TIME - }); - - const {isValid: isValidNetwork} = validateNetwork({supportedNetwork: 1, walletNetwork: safeChainID}); - - return ( -
-
-
-

- {'Extend lock'} -

-
-

{'Want to lock for longer? Extend your lock period to increase your gauge boost weight.'}

-
-
-
- - set_lockTime(Math.floor(toTime(amount)).toString())} - maxAmount={MAX_LOCK_TIME - weeksToUnlock > 0 ? MAX_LOCK_TIME - weeksToUnlock : 0} - onMaxClick={(): void => set_lockTime(Math.floor(toTime(MAX_LOCK_TIME - weeksToUnlock > 0 ? MAX_LOCK_TIME - weeksToUnlock : 0)).toString())} - disabled={!hasLockedAmount} - error={lockTimeError} - legend={'Minimum: 1 week'} /> -
-
- - -
-
- -
-
-

- {'Early exit'} -

-
-

{'Or you can exit early by paying a penalty based on lock duration.'}

-
-
-
- - -
-
- - -
-
-
- ); -} diff --git a/apps/veyfi/components/RedeemTab.tsx b/apps/veyfi/components/RedeemTab.tsx index 4a0237084..5b429e663 100644 --- a/apps/veyfi/components/RedeemTab.tsx +++ b/apps/veyfi/components/RedeemTab.tsx @@ -1,50 +1,52 @@ import {useCallback, useState} from 'react'; -import {useAsync} from '@react-hookz/web'; import {useOption} from '@veYFI/contexts/useOption'; import {redeem} from '@veYFI/utils/actions/option'; -import {VEYFI_OPTIONS_ADDRESS, VEYFI_OYFI_ADDRESS} from '@veYFI/utils/constants'; -import {validateAllowance, validateAmount, validateNetwork} from '@veYFI/utils/validations'; +import {VEYFI_CHAIN_ID, VEYFI_DYFI_ADDRESS,VEYFI_OPTIONS_ADDRESS} from '@veYFI/utils/constants'; +import {validateAllowance, validateAmount} from '@veYFI/utils/validations'; import {Button} from '@yearn-finance/web-lib/components/Button'; import {useWeb3} from '@yearn-finance/web-lib/contexts/useWeb3'; -import {useChainID} from '@yearn-finance/web-lib/hooks/useChainID'; import {toAddress} from '@yearn-finance/web-lib/utils/address'; -import {BIG_ZERO, ETH_TOKEN_ADDRESS, YFI_ADDRESS} from '@yearn-finance/web-lib/utils/constants'; -import {formatBigNumberAsAmount, toNormalizedBN, toNormalizedValue} from '@yearn-finance/web-lib/utils/format.bigNumber'; +import {ETH_TOKEN_ADDRESS, YFI_ADDRESS} from '@yearn-finance/web-lib/utils/constants'; +import {toNormalizedBN} from '@yearn-finance/web-lib/utils/format.bigNumber'; +import {formatAmount} from '@yearn-finance/web-lib/utils/format.number'; import {formatCounterValue} from '@yearn-finance/web-lib/utils/format.value'; import {handleInputChangeEventValue} from '@yearn-finance/web-lib/utils/handlers/handleInputChangeEventValue'; import {defaultTxStatus} from '@yearn-finance/web-lib/utils/web3/transaction'; import {AmountInput} from '@common/components/AmountInput'; import {useWallet} from '@common/contexts/useWallet'; +import {useAsyncTrigger} from '@common/hooks/useAsyncEffect'; import {useBalance} from '@common/hooks/useBalance'; import {useTokenPrice} from '@common/hooks/useTokenPrice'; import {approveERC20} from '@common/utils/actions'; import type {ReactElement} from 'react'; -import type {TAddress} from '@yearn-finance/web-lib/types'; export function RedeemTab(): ReactElement { const [redeemAmount, set_redeemAmount] = useState(toNormalizedBN(0)); const {provider, address, isActive} = useWeb3(); - const {safeChainID} = useChainID(); const {refresh: refreshBalances} = useWallet(); - const {getRequiredEth, price: optionPrice, positions, allowances, isLoading: isLoadingOption, refresh} = useOption(); + const {getRequiredEth, position: dYFIBalance, discount, allowances, refresh, dYFIPrice} = useOption(); const clearLockAmount = (): void => set_redeemAmount(toNormalizedBN(0)); const refreshData = useCallback((): unknown => Promise.all([refresh(), refreshBalances()]), [refresh, refreshBalances]); const onTxSuccess = useCallback((): unknown => Promise.all([refreshData(), clearLockAmount()]), [refreshData]); - const [{status, result}, fetchRequiredEth] = useAsync(getRequiredEth, BIG_ZERO); const ethBalance = useBalance(ETH_TOKEN_ADDRESS); + const yfiBalance = useBalance(YFI_ADDRESS); const yfiPrice = useTokenPrice(YFI_ADDRESS); const [approveRedeemStatus, set_approveRedeemStatus] = useState(defaultTxStatus); const [redeemStatus, set_redeemStatus] = useState(defaultTxStatus); + const [ethRequired, set_ethRequired] = useState(toNormalizedBN(0)); - const userAddress = address as TAddress; - const oYFIBalance = toNormalizedBN(formatBigNumberAsAmount(positions?.balance), 18); - const ethRequired = toNormalizedValue(result, 18); - const handleApproveRedeem = useCallback(async (): Promise => { + useAsyncTrigger(async (): Promise => { + const result = await getRequiredEth(redeemAmount.raw); + set_ethRequired(toNormalizedBN(result)); + }, [getRequiredEth, redeemAmount.raw]); + + const onApproveRedeem = useCallback(async (): Promise => { const response = await approveERC20({ connector: provider, - contractAddress: VEYFI_OYFI_ADDRESS, + chainID: VEYFI_CHAIN_ID, + contractAddress: VEYFI_DYFI_ADDRESS, spenderAddress: VEYFI_OPTIONS_ADDRESS, statusHandler: set_approveRedeemStatus, amount: redeemAmount.raw @@ -55,82 +57,102 @@ export function RedeemTab(): ReactElement { } }, [provider, redeemAmount.raw, refreshData]); - const handleRedeem = useCallback(async (): Promise => { + const onRedeem = useCallback(async (): Promise => { const response = await redeem({ connector: provider, + chainID: VEYFI_CHAIN_ID, contractAddress: VEYFI_OPTIONS_ADDRESS, statusHandler: set_redeemStatus, accountAddress: toAddress(address), amount: redeemAmount.raw, - ethRequired: result - + ethRequired: ethRequired.raw }); if (response.isSuccessful) { await onTxSuccess(); } - }, [address, onTxSuccess, provider, redeemAmount.raw, result]); - + }, [address, onTxSuccess, provider, redeemAmount.raw, ethRequired.raw]); const {isValid: isApproved} = validateAllowance({ - tokenAddress: VEYFI_OYFI_ADDRESS, + tokenAddress: VEYFI_DYFI_ADDRESS, spenderAddress: VEYFI_OPTIONS_ADDRESS, allowances, amount: redeemAmount.raw, - ownerAddress: userAddress, - chainID: 1 + ownerAddress: toAddress(address), + chainID: VEYFI_CHAIN_ID }); const {isValid: isValidRedeemAmount, error: redeemAmountError} = validateAmount({ amount: redeemAmount.normalized, - balance: oYFIBalance.normalized + balance: dYFIBalance.normalized }); - const {isValid: isValidNetwork} = validateNetwork({supportedNetwork: 1, walletNetwork: safeChainID}); + const onChangeInput = useCallback((value: string): void => { + set_redeemAmount(handleInputChangeEventValue(value, 18)); + }, []); return (
-
+

{'Redeem'}

+
+

+ {'Got dYFI, want YFI? You’ve come to the right place. Redeem dYFI for YFI by paying the redemption cost in ETH. Enjoy your cheap YFI anon.'} +

+ + {`Current discount: ${formatAmount(Number(discount.normalized) * 100, 2, 2)}%`} + +
-
- +
{ - const amount = handleInputChangeEventValue(value, 18); - set_redeemAmount(amount); - fetchRequiredEth.execute(amount.raw); - }} - onLegendClick={(): void => set_redeemAmount(oYFIBalance)} - onMaxClick={(): void => set_redeemAmount(oYFIBalance)} - legend={formatCounterValue(redeemAmount.normalized, yfiPrice)} + label={'dYFI to use'} + amount={redeemAmount} + maxAmount={dYFIBalance} + onAmountChange={onChangeInput} + onLegendClick={(): void => set_redeemAmount(dYFIBalance)} + onMaxClick={(): void => set_redeemAmount(dYFIBalance)} error={redeemAmountError} + legend={ +
+

{formatCounterValue(redeemAmount.normalized, dYFIPrice)}

+

{`You have: ${formatAmount(dYFIBalance.normalized, 2, 6)} dYFI`}

+
+ } /> + +

{formatCounterValue(ethRequired.normalized, ethBalance.normalizedPrice ?? 0)}

+

{`You have: ${formatAmount(ethBalance.normalized, 2, 6)} ETH`}

+
+ } + disabled + /> + + +

{formatCounterValue(redeemAmount.normalized, yfiPrice)}

+

{`You have: ${formatAmount(yfiBalance.normalized, 2, 6)} YFI`}

+
+ } disabled />
diff --git a/apps/veyfi/components/RewardsTab.tsx b/apps/veyfi/components/RewardsTab.tsx index 95007354a..69241198d 100644 --- a/apps/veyfi/components/RewardsTab.tsx +++ b/apps/veyfi/components/RewardsTab.tsx @@ -2,18 +2,16 @@ import {useCallback, useMemo, useState} from 'react'; import {useGauge} from '@veYFI/contexts/useGauge'; import {useOption} from '@veYFI/contexts/useOption'; import * as GaugeActions from '@veYFI/utils/actions/gauge'; -import {VEYFI_CLAIM_REWARDS_ZAP_ADDRESS} from '@veYFI/utils/constants'; -import {validateNetwork} from '@veYFI/utils/validations'; +import {VEYFI_CHAIN_ID} from '@veYFI/utils/constants'; import {Button} from '@yearn-finance/web-lib/components/Button'; import {useWeb3} from '@yearn-finance/web-lib/contexts/useWeb3'; -import {toAddress} from '@yearn-finance/web-lib/utils/address'; -import {BIG_ZERO} from '@yearn-finance/web-lib/utils/constants'; -import {formatBigNumberAsAmount, toBigInt, toNormalizedAmount} from '@yearn-finance/web-lib/utils/format.bigNumber'; +import {toAddress, truncateHex} from '@yearn-finance/web-lib/utils/address'; +import {toBigInt, toNormalizedBN} from '@yearn-finance/web-lib/utils/format.bigNumber'; import {formatCounterValue} from '@yearn-finance/web-lib/utils/format.value'; -import {isZero} from '@yearn-finance/web-lib/utils/isZero'; import {defaultTxStatus} from '@yearn-finance/web-lib/utils/web3/transaction'; import {AmountInput} from '@common/components/AmountInput'; import {Dropdown} from '@common/components/Dropdown'; +import {Input} from '@common/components/Input'; import {useYearn} from '@common/contexts/useYearn'; import type {ReactElement} from 'react'; @@ -21,19 +19,19 @@ import type {TDropdownOption} from '@common/components/Dropdown'; export function RewardsTab(): ReactElement { const [selectedGauge, set_selectedGauge] = useState(); - const {provider, isActive, chainID} = useWeb3(); - const {gaugeAddresses, gaugesMap, positionsMap, refresh: refreshGauges} = useGauge(); - const {price: optionPrice} = useOption(); + const {provider, isActive} = useWeb3(); + const {gaugesMap, positionsMap, refresh: refreshGauges} = useGauge(); + const {dYFIPrice} = useOption(); const {vaults} = useYearn(); const refreshData = useCallback((): unknown => Promise.all([refreshGauges()]), [refreshGauges]); const [claimStatus, set_claimStatus] = useState(defaultTxStatus); - const [claimAllStatus, set_claimAllStatus] = useState(defaultTxStatus); const selectedGaugeAddress = toAddress(selectedGauge?.id); - const selectedGaugeRewards = toBigInt(formatBigNumberAsAmount(positionsMap[selectedGaugeAddress]?.reward.balance)); + const selectedGaugeRewards = positionsMap[selectedGaugeAddress]?.reward ?? toNormalizedBN(0n); const onClaim = useCallback(async (): Promise => { const result = await GaugeActions.claimRewards({ connector: provider, + chainID: VEYFI_CHAIN_ID, contractAddress: selectedGaugeAddress, statusHandler: set_claimStatus }); @@ -42,93 +40,115 @@ export function RewardsTab(): ReactElement { } }, [provider, refreshData, selectedGaugeAddress]); - const onClaimAll = useCallback(async (): Promise => { - const result = await GaugeActions.claimAllRewards({ - connector: provider, - contractAddress: VEYFI_CLAIM_REWARDS_ZAP_ADDRESS, - gaugeAddresses, - willLockRewards: false, - statusHandler: set_claimAllStatus - }); - if (result.isSuccessful) { - refreshData(); - } - }, [gaugeAddresses, provider, refreshData]); + const gaugeOptions = useMemo((): TDropdownOption[] => { + const options: TDropdownOption[] = []; + for (const gauge of Object.values(gaugesMap)) { + if (!gauge || toBigInt(positionsMap[gauge.address]?.reward?.raw) === 0n) { + continue; + } + const vault = vaults[toAddress(gauge?.vaultAddress)]; - const gaugeOptions = gaugeAddresses.filter((address): boolean => toBigInt(positionsMap[address]?.reward.balance) > 0n ?? false) - .map((address): TDropdownOption => { - const gauge = gaugesMap[address]; - const vaultAddress = toAddress(gauge?.vaultAddress); - const vault = vaults[vaultAddress]; - - return { - id: address, - label: vault?.display_name ?? '', - icon: `${process.env.BASE_YEARN_ASSETS_URI}/1/${vaultAddress}/logo-128.png` - }; - }); - - const gaugesRewards = useMemo((): bigint => { - return gaugeAddresses.reduce((acc, address): bigint => { - return acc + toBigInt(formatBigNumberAsAmount(positionsMap[address]?.reward.balance)); - }, BIG_ZERO); - }, [gaugeAddresses, positionsMap]); - - const {isValid: isValidNetwork} = validateNetwork({supportedNetwork: 1, walletNetwork: chainID}); + options.push({ + id: gauge.address, + label: vault?.display_name ?? `Vault ${truncateHex(vault.address, 4)}`, + icon: `${process.env.BASE_YEARN_ASSETS_URI}/1/${vault.address}/logo-128.png` + }); + } + return options; + }, [gaugesMap, positionsMap, vaults]); return (
-
+

- {'Claim Rewards'} + {'Gauge Rewards'}

+
+

+ {'Select a gauge below and claim any dYFI rewards you’re eligible for. Remember, to earn rewards you must stake your Vault token into the corresponding gauge. '} +

+
-
+
+
-
+
+ +

- {'Claim Separately'} + {'veYFI boost rewards'}

+
+

+ {'These are rewards clawed from the game theoretically suboptimal hands of gauge stakers who farm without a max boost. Their loss is your gain (literally).'} +

+
-
- + - + {'Claim'} + +
+
+ +
+ +
+
+

+ {'veYFI exit rewards'} +

+
+

+ {'When some spaghetti handed locker takes an early exit from their veYFI lock, their penalty is distributed amongst other lockers. It’s like a loyalty bonus, but instead of cheaper groceries you get sweet sweet YFI.'} +

+
+
+ +
+
diff --git a/apps/veyfi/components/TabManageGauges.tsx b/apps/veyfi/components/TabManageGauges.tsx new file mode 100644 index 000000000..73cf8ac8e --- /dev/null +++ b/apps/veyfi/components/TabManageGauges.tsx @@ -0,0 +1,23 @@ +import {QueryParamProvider} from 'use-query-params'; +import {NextQueryParamAdapter} from '@common/utils/QueryParamsProvider'; + +import {StakeUnstakeGauges} from './ViewStakeUnstakeGauges'; +import {VoteGauge} from './ViewVoteGauges'; + +import type {ReactElement} from 'react'; + +export function TabManageGauges(): ReactElement { + return ( +
+
+ + + +
+
+ +
+ ); +} diff --git a/apps/veyfi/components/TabManageVeYFI.tsx b/apps/veyfi/components/TabManageVeYFI.tsx new file mode 100644 index 000000000..8f698795f --- /dev/null +++ b/apps/veyfi/components/TabManageVeYFI.tsx @@ -0,0 +1,31 @@ +import {useVotingEscrow} from '@veYFI/contexts/useVotingEscrow'; +import {toBigInt, toNormalizedBN} from '@yearn-finance/web-lib/utils/format.bigNumber'; +import {getTimeUntil, toWeeks} from '@yearn-finance/web-lib/utils/time'; + +import {ClaimVeYFI} from './ViewClaimVeYFI'; +import {EarlyExitVeYFI} from './ViewEarlyExitVeYFI'; +import {ExtendLockVeYFI} from './ViewExtendLockVeYFI'; +import {LockVeYFI} from './ViewLockVeYFI'; + +import type {ReactElement} from 'react'; + +export function TabManageVeYFI(): ReactElement { + const {positions} = useVotingEscrow(); + const hasLock = toNormalizedBN(toBigInt(positions?.deposit?.underlyingBalance), 18); + const timeUntilUnlock = positions?.unlockTime ? getTimeUntil(positions?.unlockTime) : undefined; + const weeksToUnlock = toWeeks(timeUntilUnlock); + + return ( +
+ +
0 ? 'grid gap-10' : 'grid gap-10 opacity-40'}> +
+ +
+ +
+ +
+
+ ); +} diff --git a/apps/veyfi/components/ClaimTab.tsx b/apps/veyfi/components/ViewClaimVeYFI.tsx similarity index 77% rename from apps/veyfi/components/ClaimTab.tsx rename to apps/veyfi/components/ViewClaimVeYFI.tsx index f8e34361f..3a21755d2 100644 --- a/apps/veyfi/components/ClaimTab.tsx +++ b/apps/veyfi/components/ViewClaimVeYFI.tsx @@ -1,12 +1,10 @@ import {useCallback, useState} from 'react'; -import {formatUnits} from 'viem'; import {useVotingEscrow} from '@veYFI/contexts/useVotingEscrow'; import {withdrawUnlockedVeYFI} from '@veYFI/utils/actions'; -import {validateNetwork} from '@veYFI/utils/validations'; +import {VEYFI_CHAIN_ID} from '@veYFI/utils/constants'; import {Button} from '@yearn-finance/web-lib/components/Button'; import {useWeb3} from '@yearn-finance/web-lib/contexts/useWeb3'; -import {useChainID} from '@yearn-finance/web-lib/hooks/useChainID'; -import {toBigInt} from '@yearn-finance/web-lib/utils/format.bigNumber'; +import {toBigInt, toNormalizedBN} from '@yearn-finance/web-lib/utils/format.bigNumber'; import {getTimeUntil} from '@yearn-finance/web-lib/utils/time'; import {defaultTxStatus} from '@yearn-finance/web-lib/utils/web3/transaction'; import {AmountInput} from '@common/components/AmountInput'; @@ -14,17 +12,15 @@ import {useWallet} from '@common/contexts/useWallet'; import type {ReactElement} from 'react'; -export function ClaimTab(): ReactElement { +export function ClaimVeYFI(): ReactElement { const {provider, address, isActive} = useWeb3(); - const {safeChainID} = useChainID(); const {refresh: refreshBalances} = useWallet(); const {votingEscrow, positions, refresh: refreshVotingEscrow} = useVotingEscrow(); const [withdrawUnlockedStatus, set_withdrawUnlockedStatus] = useState(defaultTxStatus); const hasLockedAmount = toBigInt(positions?.deposit?.underlyingBalance) > 0n; const timeUntilUnlock = positions?.unlockTime ? getTimeUntil(positions?.unlockTime) : 0; const isClaimable = hasLockedAmount && !timeUntilUnlock; - const claimableAmount = isClaimable ? positions?.deposit?.underlyingBalance : '0'; - const {isValid: isValidNetwork} = validateNetwork({supportedNetwork: 1, walletNetwork: safeChainID}); + const claimableAmount = toNormalizedBN(toBigInt(isClaimable ? positions?.deposit?.underlyingBalance : 0)); const refreshData = useCallback(async (): Promise => { await Promise.all([refreshVotingEscrow(), refreshBalances()]); @@ -33,6 +29,7 @@ export function ClaimTab(): ReactElement { const onWithdrawUnlocked = useCallback(async (): Promise => { const result = await withdrawUnlockedVeYFI({ connector: provider, + chainID: VEYFI_CHAIN_ID, contractAddress: votingEscrow?.address, statusHandler: set_withdrawUnlockedStatus }); @@ -58,13 +55,13 @@ export function ClaimTab(): ReactElement {
diff --git a/apps/veyfi/components/ViewEarlyExitVeYFI.tsx b/apps/veyfi/components/ViewEarlyExitVeYFI.tsx new file mode 100644 index 000000000..43ecfb8cc --- /dev/null +++ b/apps/veyfi/components/ViewEarlyExitVeYFI.tsx @@ -0,0 +1,79 @@ +import {useCallback, useState} from 'react'; +import {useVotingEscrow} from '@veYFI/contexts/useVotingEscrow'; +import {withdrawLockedVeYFI} from '@veYFI/utils/actions'; +import {VEYFI_CHAIN_ID} from '@veYFI/utils/constants'; +import {Button} from '@yearn-finance/web-lib/components/Button'; +import {useWeb3} from '@yearn-finance/web-lib/contexts/useWeb3'; +import {toBigInt, toNormalizedBN} from '@yearn-finance/web-lib/utils/format.bigNumber'; +import {getTimeUntil, toWeeks} from '@yearn-finance/web-lib/utils/time'; +import {defaultTxStatus} from '@yearn-finance/web-lib/utils/web3/transaction'; +import {AmountInput} from '@common/components/AmountInput'; +import {useWallet} from '@common/contexts/useWallet'; + +import type {ReactElement} from 'react'; + +export function EarlyExitVeYFI(): ReactElement { + const {provider, address, isActive} = useWeb3(); + const {refresh: refreshBalances} = useWallet(); + const {votingEscrow, positions, refresh: refreshVotingEscrow} = useVotingEscrow(); + const timeUntilUnlock = positions?.unlockTime ? getTimeUntil(positions?.unlockTime) : undefined; + const weeksToUnlock = toNormalizedBN(toWeeks(timeUntilUnlock), 0); + const hasPenalty = toBigInt(positions?.penalty) > 0n; + const [withdrawLockedStatus, set_withdrawLockedStatus] = useState(defaultTxStatus); + + const onTxSuccess = useCallback(async (): Promise => { + await Promise.all([refreshVotingEscrow(), refreshBalances()]); + }, [refreshBalances, refreshVotingEscrow]); + + const onWithdrawLocked = useCallback(async (): Promise => { + const result = await withdrawLockedVeYFI({ + connector: provider, + chainID: VEYFI_CHAIN_ID, + contractAddress: votingEscrow?.address, + statusHandler: set_withdrawLockedStatus + }); + if (result.isSuccessful) { + onTxSuccess(); + } + }, [onTxSuccess, provider, votingEscrow?.address]); + + return ( +
+
+

+ {'Early exit'} +

+
+

{'Or you can exit early by paying a penalty based on lock duration.'}

+
+
+ +
+
+ + +
+
+ + +
+
+
+ ); +} diff --git a/apps/veyfi/components/ViewExtendLockVeYFI.tsx b/apps/veyfi/components/ViewExtendLockVeYFI.tsx new file mode 100644 index 000000000..043d4223a --- /dev/null +++ b/apps/veyfi/components/ViewExtendLockVeYFI.tsx @@ -0,0 +1,111 @@ +import {useCallback, useMemo, useState} from 'react'; +import {useVotingEscrow} from '@veYFI/contexts/useVotingEscrow'; +import {getVotingPower} from '@veYFI/utils'; +import {extendVeYFILockTime} from '@veYFI/utils/actions'; +import {MAX_LOCK_TIME, MIN_LOCK_TIME, VEYFI_CHAIN_ID} from '@veYFI/utils/constants'; +import {validateAmount} from '@veYFI/utils/validations'; +import {Button} from '@yearn-finance/web-lib/components/Button'; +import {useWeb3} from '@yearn-finance/web-lib/contexts/useWeb3'; +import {toBigInt, toNormalizedBN} from '@yearn-finance/web-lib/utils/format.bigNumber'; +import {handleInputChangeEventValue} from '@yearn-finance/web-lib/utils/handlers/handleInputChangeEventValue'; +import {fromWeeks, getTimeUntil, toSeconds, toTime, toWeeks} from '@yearn-finance/web-lib/utils/time'; +import {defaultTxStatus} from '@yearn-finance/web-lib/utils/web3/transaction'; +import {AmountInput} from '@common/components/AmountInput'; +import {useWallet} from '@common/contexts/useWallet'; + +import type {ReactElement} from 'react'; +import type {TNormalizedBN} from '@common/types/types'; + +export function ExtendLockVeYFI(): ReactElement { + const [lockTime, set_lockTime] = useState(toNormalizedBN(0, 0)); + const {provider, address, isActive} = useWeb3(); + const {refresh: refreshBalances} = useWallet(); + const {votingEscrow, positions, refresh: refreshVotingEscrow} = useVotingEscrow(); + const hasLockedAmount = toBigInt(positions?.deposit?.underlyingBalance) > 0n; + const willExtendLock = toBigInt(lockTime.raw) > 0n; + const timeUntilUnlock = positions?.unlockTime ? getTimeUntil(positions?.unlockTime) : undefined; + const weeksToUnlock = toNormalizedBN(toWeeks(timeUntilUnlock), 0); + const newUnlockTime = toTime(positions?.unlockTime) + fromWeeks(toTime(lockTime.normalized)); + const [extendLockTimeStatus, set_extendLockTimeStatus] = useState(defaultTxStatus); + + const onTxSuccess = useCallback(async (): Promise => { + await Promise.all([refreshVotingEscrow(), refreshBalances(), set_lockTime(toNormalizedBN(0, 0))]); + }, [refreshBalances, refreshVotingEscrow]); + + const onExtendLockTime = useCallback(async (): Promise => { + const result = await extendVeYFILockTime({ + connector: provider, + chainID: VEYFI_CHAIN_ID, + contractAddress: votingEscrow?.address, + time: toBigInt(toSeconds(newUnlockTime)), + statusHandler: set_extendLockTimeStatus + }); + if (result.isSuccessful) { + onTxSuccess(); + } + }, [newUnlockTime, onTxSuccess, provider, votingEscrow?.address]); + + const votingPower = useMemo((): TNormalizedBN => { + if(!positions?.deposit || !newUnlockTime) { + return toNormalizedBN(0); + } + return toNormalizedBN(willExtendLock ? getVotingPower(positions?.deposit?.underlyingBalance, newUnlockTime) : toBigInt(positions?.deposit?.balance)); + }, [positions?.deposit, newUnlockTime, willExtendLock]); + + const {isValid: isValidLockTime, error: lockTimeError} = validateAmount({ + amount: lockTime.normalized, + minAmountAllowed: MIN_LOCK_TIME + }); + + const maxTime = MAX_LOCK_TIME - Number(weeksToUnlock?.normalized || 0) > 0 ? MAX_LOCK_TIME - Number(weeksToUnlock?.normalized || 0) : 0; + return ( +
+
+

+ {'Extend lock'} +

+
+

{'Want to lock for longer? Extend your lock period to increase your gauge boost weight.'}

+
+
+ +
+
+ + { + const inputed = handleInputChangeEventValue(v, 0); + if (Number(inputed.normalized) > maxTime) { + set_lockTime(toNormalizedBN(maxTime, 0)); + } else { + set_lockTime(toNormalizedBN(Math.floor(toTime(v)), 0)); + } + }} + maxAmount={toNormalizedBN(maxTime, 0)} + onMaxClick={(): void => set_lockTime(toNormalizedBN(Math.floor(toTime(maxTime)), 0))} + disabled={!hasLockedAmount} + error={lockTimeError} + legend={'Minimum: 1 week'} /> +
+
+ + +
+
+
+ ); +} diff --git a/apps/veyfi/components/LockTab.tsx b/apps/veyfi/components/ViewLockVeYFI.tsx similarity index 79% rename from apps/veyfi/components/LockTab.tsx rename to apps/veyfi/components/ViewLockVeYFI.tsx index cb3e2f74d..4587e6324 100644 --- a/apps/veyfi/components/LockTab.tsx +++ b/apps/veyfi/components/ViewLockVeYFI.tsx @@ -1,10 +1,9 @@ import {useCallback, useEffect, useMemo, useState} from 'react'; -import {formatUnits} from 'viem'; import {useVotingEscrow} from '@veYFI/contexts/useVotingEscrow'; import {getVotingPower} from '@veYFI/utils'; import {increaseVeYFILockAmount, lockVeYFI} from '@veYFI/utils/actions'; -import {MAX_LOCK_TIME, MIN_LOCK_AMOUNT, MIN_LOCK_TIME} from '@veYFI/utils/constants'; -import {validateAllowance, validateAmount, validateNetwork} from '@veYFI/utils/validations'; +import {MAX_LOCK_TIME, MIN_LOCK_AMOUNT, MIN_LOCK_TIME, VEYFI_CHAIN_ID} from '@veYFI/utils/constants'; +import {validateAllowance, validateAmount} from '@veYFI/utils/validations'; import {Button} from '@yearn-finance/web-lib/components/Button'; import {useWeb3} from '@yearn-finance/web-lib/contexts/useWeb3'; import {useChainID} from '@yearn-finance/web-lib/hooks/useChainID'; @@ -21,9 +20,10 @@ import {useBalance} from '@common/hooks/useBalance'; import {approveERC20} from '@common/utils/actions'; import type {ReactElement} from 'react'; +import type {TNormalizedBN} from '@yearn-finance/web-lib/utils/format.bigNumber'; import type {TMilliseconds} from '@yearn-finance/web-lib/utils/time'; -export function LockTab(): ReactElement { +export function LockVeYFI(): ReactElement { const [lockAmount, set_lockAmount] = useState(toNormalizedBN(0)); const [lockTime, set_lockTime] = useState(''); const {provider, address, isActive} = useWeb3(); @@ -40,8 +40,8 @@ export function LockTab(): ReactElement { return positions?.unlockTime || Date.now() + fromWeeks(toTime(lockTime)); }, [positions?.unlockTime, lockTime]); - const votingPower = useMemo((): bigint => { - return getVotingPower(toBigInt(positions?.deposit?.underlyingBalance) + toBigInt(lockAmount.raw), unlockTime); + const votingPower = useMemo((): TNormalizedBN => { + return toNormalizedBN(getVotingPower(toBigInt(positions?.deposit?.underlyingBalance) + toBigInt(lockAmount.raw), unlockTime), 18); }, [positions?.deposit?.underlyingBalance, lockAmount, unlockTime]); const refreshData = useCallback(async (): Promise => { @@ -55,6 +55,7 @@ export function LockTab(): ReactElement { const onApproveLock = useCallback(async (): Promise => { const result = await approveERC20({ connector: provider, + chainID: VEYFI_CHAIN_ID, contractAddress: votingEscrow?.token, spenderAddress: votingEscrow?.address, statusHandler: set_approveLockStatus, @@ -68,6 +69,7 @@ export function LockTab(): ReactElement { const onLock = useCallback(async (): Promise => { const result = await lockVeYFI({ connector: provider, + chainID: VEYFI_CHAIN_ID, contractAddress: votingEscrow?.address, amount: lockAmount.raw, time: toBigInt(toSeconds(unlockTime)), @@ -81,6 +83,7 @@ export function LockTab(): ReactElement { const onIncreaseLockAmount = useCallback(async (): Promise => { const result = await increaseVeYFILockAmount({ connector: provider, + chainID: VEYFI_CHAIN_ID, contractAddress: votingEscrow?.address, amount: lockAmount.raw, statusHandler: set_increaseLockAmountStatus @@ -118,10 +121,8 @@ export function LockTab(): ReactElement { minAmountAllowed: hasLockedAmount ? 0 : MIN_LOCK_TIME }); - const {isValid: isValidNetwork} = validateNetwork({supportedNetwork: 1, walletNetwork: safeChainID}); - - const isApproveDisabled = !isActive || !isValidNetwork || isApproved || isLoadingVotingEscrow || !votingEscrow || !address; - const isLockDisabled = !isActive || !isValidNetwork || !isApproved || !isValidLockAmount || !isValidLockTime || isLoadingVotingEscrow || !votingEscrow || !address; + const isApproveDisabled = !isActive || isApproved || isLoadingVotingEscrow || !votingEscrow || !address; + const isLockDisabled = !isActive || !isApproved || !isValidLockAmount || !isValidLockTime || isLoadingVotingEscrow || !votingEscrow || !address; const txAction = !isApproved ? { label: 'Approve', @@ -150,9 +151,12 @@ export function LockTab(): ReactElement { {"YFI holders, time to Lock' ‘N Load"}
-

{'Lock your YFI for veYFI to take part in Yearn governance.'}

-
-

{'Please note, governance is currently the only use for veYFI until the full platform launches ‘soon’. Stay tuned anon.'}

+

{'Lock your YFI to veYFI to:'}

+
    +
  • {'Take part in Yearn governance.'}
  • +
  • {'Direct YFI rewards to Vaults.'}
  • +
  • {'Receive dYFI (the longer you lock, the more you keep).'}
  • +
@@ -160,8 +164,8 @@ export function LockTab(): ReactElement {
set_lockAmount(handleInputChangeEventValue(amount, 18))} onLegendClick={(): void => set_lockAmount(tokenBalance)} onMaxClick={(): void => set_lockAmount(tokenBalance)} @@ -169,9 +173,16 @@ export function LockTab(): ReactElement { error={lockAmountError} /> { + const inputed = handleInputChangeEventValue(v, 0); + if (Number(inputed.normalized) > MAX_LOCK_TIME + 1) { + set_lockTime((MAX_LOCK_TIME + 1).toString()); + } else { + set_lockTime(inputed.normalized.toString()); + } + }} + maxAmount={toNormalizedBN(MAX_LOCK_TIME + 1, 0)} onMaxClick={(): void => set_lockTime((MAX_LOCK_TIME + 1).toString())} disabled={hasLockedAmount} legend={'Minimum: 1 week'} @@ -180,7 +191,7 @@ export function LockTab(): ReactElement {
+ {!isApproved && ( + + )} + {isApproved && ( + + )} +
+ ); +} + +export function StakeUnstakeGauges(): ReactElement { + const {isActive, address} = useWeb3(); + const {gaugesMap, positionsMap, allowancesMap} = useGauge(); + const {vaults, prices} = useYearn(); + const {balances} = useWallet(); + const {dYFIPrice} = useOption(); + const [isLoadingGauges, set_isLoadingGauges] = useState(true); + const {search, onSearch} = useQueryArguments(); + + const gaugesData = useDeepCompareMemo((): TGaugeData[] => { + if (!vaults || Object.values(vaults).length === 0) { + return []; + } + + const data: TGaugeData[] = []; + for (const gauge of Object.values(gaugesMap)) { + const vault = vaults[toAddress(gauge?.vaultAddress)]; + if (!gauge || !vault) { + continue; + } + + const tokenPrice = formatToNormalizedValue(toBigInt(prices?.[vault.token.address] || 0), 6); + const boost = Number(positionsMap[gauge.address]?.boost || 1); + let APRFor10xBoost = Number(gauge?.rewardRate.normalized || 0) * dYFIPrice * SECONDS_PER_YEAR / Number(gauge?.totalStaked.normalized || 0) / tokenPrice * 100; + if (tokenPrice === 0 || Number(gauge?.totalStaked.normalized || 0) === 0) { + APRFor10xBoost = 0; + } + + data.push({ + gaugeAddress: gauge.address, + vaultAddress: vault.address, + decimals: gauge.decimals, + vaultIcon: `${process.env.BASE_YEARN_ASSETS_URI}/1/${vault.address}/logo-128.png`, + vaultName: vault?.display_name ?? `Vault ${truncateHex(vault.address, 4)}`, + vaultApy: vault?.apy.net_apy ?? 0, + vaultDeposited: balances[vault.address], + gaugeAPR: APRFor10xBoost, + gaugeBoost: boost, + gaugeStaked: positionsMap[gauge.address]?.deposit ?? toNormalizedBN(0), + allowance: allowancesMap[allowanceKey(VEYFI_CHAIN_ID, vault.address, gauge.address, toAddress(address))], + isApproved: toBigInt(allowancesMap[allowanceKey(VEYFI_CHAIN_ID, vault.address, gauge.address, toAddress(address))]?.raw) >= toBigInt(balances[vault.address]?.raw), + actions: undefined + }); + } + set_isLoadingGauges(false); + return data; + }, [gaugesMap, vaults, balances, positionsMap, allowancesMap, address]); + + const searchedGaugesData = useMemo((): TGaugeData[] => { + if (!search) { + return gaugesData; + } + return gaugesData.filter((gauge: TGaugeData): boolean => { + const lowercaseSearch = search.toLowerCase(); + const splitted = + `${gauge.gaugeAddress} ${gauge.vaultName}` + .replaceAll('-', ' ') + .toLowerCase() + .split(' '); + return splitted.some((word): boolean => word.startsWith(lowercaseSearch)); + }); + }, [gaugesData, search]); + + return ( +
+
+

+ {'Stake/Unstake'} +

+
+

+ {'To earn rewards deposit into the Yearn Vault you want to vote for, and then stake that Vault token into its gauge below.\n'} + {'e.g yETH into curve-yETH and then stake curve-yETH into its gauge.'} +

+
+
+

{'Search'}

+ +
+
+
+
( +
+
+ +
+

{vaultName}

+
+ ) + }, + { + key: 'vaultApy', + label: 'Vault APY', + sortable: true, + format: ({vaultApy}): string => formatPercent((vaultApy) * 100, 2, 2, 500) + }, + { + key: 'vaultDeposited', + label: 'Deposited in vault', + columnSpan: 2, + className: 'mr-0 md:mr-4', + sortable: true, + isDisabled: ({vaultDeposited}): boolean => toBigInt(vaultDeposited?.raw) === 0n, + format: ({vaultDeposited}): string => formatAmount(vaultDeposited?.normalized || 0, 2, 6) + }, + { + key: 'gaugeAPR', + label: 'Gauge APR', + columnSpan: 2, + sortable: true, + className: 'whitespace-break text-right', + transform: ({gaugeAPR}): ReactElement => ( +
+

+ {`${formatAmount(gaugeAPR / 10, 2, 2)}% → ${formatAmount(gaugeAPR, 2, 2)}%`} +

+
+ ) + }, + { + key: 'gaugeStaked', + label: 'Staked in Gauge', + className: 'mr-0 md:mr-10', + columnSpan: 2, + sortable: true, + isDisabled: ({gaugeStaked}): boolean => toBigInt(gaugeStaked?.raw) === 0n, + format: ({gaugeStaked}): string => formatAmount(gaugeStaked?.normalized || 0, 2, 6) + }, + + { + key: 'gaugeBoost', + label: 'Boost', + className: 'mr-0 md:mr-10', + columnSpan: 1, + sortable: true, + isDisabled: ({gaugeStaked}): boolean => toBigInt(gaugeStaked?.raw) === 0n, + transform: ({gaugeBoost, gaugeStaked}): ReactElement => { + if (toBigInt(gaugeStaked?.raw) === 0n) { + return ( +

{'N/A'}

+ ); + } + return ( +

{`${gaugeBoost.toFixed(2)}x`}

+ ); + } + }, + + { + key: 'actions', + label: '', + columnSpan: 2, + className: 'my-4 md:my-0', + fullWidth: true, + transform: (props): ReactElement => { + if (toBigInt(props?.vaultDeposited?.raw) === 0n) { + return ( + + + + ); + } + return ; + } + } + ]} + isLoading={isLoadingGauges} + data={searchedGaugesData} + columns={13} + initialSortBy={'gaugeAPR'} + /> + + + + ); +} diff --git a/apps/veyfi/components/ViewVoteGauges.tsx b/apps/veyfi/components/ViewVoteGauges.tsx new file mode 100644 index 000000000..3d27359cf --- /dev/null +++ b/apps/veyfi/components/ViewVoteGauges.tsx @@ -0,0 +1,31 @@ +import Link from 'next/link'; +import {Button} from '@yearn-finance/web-lib/components/Button'; + +import type {ReactElement} from 'react'; + +export function VoteGauge(): ReactElement { + return ( +
+
+
+

+ {'Vote for Gauge'} +

+
+

{'Vote to direct future YFI rewards to a particular gauge.'}

+
+
+ + + +
+
+
+
+ ); +} diff --git a/apps/veyfi/components/VoteTab.tsx b/apps/veyfi/components/VoteTab.unused.tsx similarity index 75% rename from apps/veyfi/components/VoteTab.tsx rename to apps/veyfi/components/VoteTab.unused.tsx index 1bbcfd68d..21cf49e02 100644 --- a/apps/veyfi/components/VoteTab.tsx +++ b/apps/veyfi/components/VoteTab.unused.tsx @@ -1,8 +1,8 @@ import {useCallback, useState} from 'react'; import Link from 'next/link'; import {delegateVote} from '@veYFI/utils/actions/votingEscrow'; -import {SNAPSHOT_DELEGATE_REGISTRY_ADDRESS} from '@veYFI/utils/constants'; -import {validateAddress, validateNetwork} from '@veYFI/utils/validations'; +import {SNAPSHOT_DELEGATE_REGISTRY_ADDRESS, VEYFI_CHAIN_ID} from '@veYFI/utils/constants'; +import {validateAddress} from '@veYFI/utils/validations'; import {Button} from '@yearn-finance/web-lib/components/Button'; import {useWeb3} from '@yearn-finance/web-lib/contexts/useWeb3'; import {toAddress} from '@yearn-finance/web-lib/utils/address'; @@ -10,31 +10,26 @@ import {defaultTxStatus} from '@yearn-finance/web-lib/utils/web3/transaction'; import {Input} from '@common/components/Input'; import type {ReactElement} from 'react'; -import type {TAddress} from '@yearn-finance/web-lib/types'; export function VoteTab(): ReactElement { const [delegateAddress, set_delegateAddress] = useState(''); - const {provider, address, isActive, chainID} = useWeb3(); - + const {provider, address, isActive} = useWeb3(); const [delegateVoteStatus, set_delegateVoteStatus] = useState(defaultTxStatus); - - const userAddress = address as TAddress; - - const {isValid: isValidNetwork} = validateNetwork({supportedNetwork: 1, walletNetwork: chainID}); const {isValid: isValidDelegateAddress, error: delegateAddressError} = validateAddress({address: delegateAddress}); - const handleExecuteDelegateVote = useCallback(async (): Promise => { - if (!userAddress || !isValidDelegateAddress) { + const onHandleExecuteDelegateVote = useCallback(async (): Promise => { + if (!address || !isValidDelegateAddress) { return; } await delegateVote({ connector: provider, + chainID: VEYFI_CHAIN_ID, contractAddress: SNAPSHOT_DELEGATE_REGISTRY_ADDRESS, statusHandler: set_delegateVoteStatus, delegateAddress: toAddress(delegateAddress) }); - }, [delegateAddress, isValidDelegateAddress, provider, userAddress]); + }, [delegateAddress, isValidDelegateAddress, provider, address]); return (
@@ -72,9 +67,9 @@ export function VoteTab(): ReactElement { /> diff --git a/apps/veyfi/contexts/useGauge.tsx b/apps/veyfi/contexts/useGauge.tsx index cf6013364..b49a79a2c 100644 --- a/apps/veyfi/contexts/useGauge.tsx +++ b/apps/veyfi/contexts/useGauge.tsx @@ -1,18 +1,19 @@ -import React, {createContext, memo, useCallback, useContext, useEffect, useMemo} from 'react'; +import React, {createContext, memo, useCallback, useContext, useState} from 'react'; import {FixedNumber} from 'ethers'; -import {useContractRead} from 'wagmi'; -import {useAsync} from '@react-hookz/web'; -import {keyBy} from '@veYFI/utils'; +import {useDeepCompareMemo} from '@react-hookz/web'; import {VEYFI_GAUGE_ABI} from '@veYFI/utils/abi/veYFIGauge.abi'; -import {VEYFI_REGISTRY_ABI} from '@veYFI/utils/abi/veYFIRegistry.abi'; -import {VEYFI_REGISTRY_ADDRESS} from '@veYFI/utils/constants'; -import {erc20ABI, getContract, multicall} from '@wagmi/core'; +import {VE_YFI_GAUGES,VEYFI_CHAIN_ID} from '@veYFI/utils/constants'; +import {erc20ABI, readContracts} from '@wagmi/core'; import {useWeb3} from '@yearn-finance/web-lib/contexts/useWeb3'; -import {allowanceKey} from '@yearn-finance/web-lib/utils/address'; +import {allowanceKey, toAddress} from '@yearn-finance/web-lib/utils/address'; +import {decodeAsAddress, decodeAsBigInt, decodeAsNumber, decodeAsString} from '@yearn-finance/web-lib/utils/decoder'; +import {toNormalizedBN} from '@yearn-finance/web-lib/utils/format.bigNumber'; +import {useAsyncTrigger} from '@common/hooks/useAsyncEffect'; +import {keyBy} from '@common/utils'; import type {ReactElement} from 'react'; import type {TAddress, TDict} from '@yearn-finance/web-lib/types'; -import type {TMulticallContract} from '@common/types/types'; +import type {TNormalizedBN} from '@common/types/types'; export type TGauge = { address: TAddress, @@ -20,164 +21,147 @@ export type TGauge = { name: string, symbol: string, decimals: number, - totalStaked: bigint, - // apy?: number; -} - -export type TPosition = { - balance: bigint, - underlyingBalance: bigint, + totalStaked: TNormalizedBN, + rewardRate: TNormalizedBN, } export type TGaugePosition = { address: TAddress, - deposit: TPosition, - reward: TPosition, + deposit: TNormalizedBN, + reward: TNormalizedBN, boost: number, } export type TGaugeContext = { - gaugeAddresses: TAddress[], gaugesMap: TDict, positionsMap: TDict, - allowancesMap: TDict, - isLoading: boolean, + allowancesMap: TDict, refresh: () => void, } const defaultProps: TGaugeContext = { - gaugeAddresses: [], gaugesMap: {}, positionsMap: {}, allowancesMap: {}, - isLoading: true, refresh: (): void => undefined }; const GaugeContext = createContext(defaultProps); export const GaugeContextApp = memo(function GaugeContextApp({children}: {children: ReactElement}): ReactElement { - const {address: userAddress, isActive} = useWeb3(); - const veYFIRegistryContract = useMemo((): {address: TAddress, abi: typeof VEYFI_REGISTRY_ABI} => ({ - address: VEYFI_REGISTRY_ADDRESS, - abi: VEYFI_REGISTRY_ABI - }), []); - const {data: vaultAddresses} = useContractRead({ - ...veYFIRegistryContract, - functionName: 'getVaults', - chainId: 1 - }); - - const gaugesFetcher = useCallback(async (): Promise => { - if (!isActive || !userAddress) { - return []; - } - - const gaugeAddressCalls = vaultAddresses?.map((vaultAddress): TMulticallContract => ({ - ...veYFIRegistryContract, - functionName: 'gauges', - args: [vaultAddress] - })); - - const gaugeAddressesResults = await multicall({contracts: gaugeAddressCalls ?? [], chainId: 1}); - - const gaugeAddresses = gaugeAddressesResults.map(({result}): unknown => result) as TAddress[]; - const gaugePromises = gaugeAddresses.map(async (address): Promise => { - // todo: update once abi is available - const veYFIGaugeContract = getContract({ - address, - abi: VEYFI_GAUGE_ABI, - chainId: 1 - }); - - // TODO: These should be migrated to wagmi - const calls: TMulticallContract[] = []; - ['asset', 'name', 'symbol', 'decimals', 'totalAssets'].forEach((functionName): void => { - calls.push({...veYFIGaugeContract, functionName}); - }); - - const results = await multicall({ - contracts: calls, - chainId: 1 + const {address, isActive} = useWeb3(); + const [gauges, set_gauges] = useState([]); + const [allowancesMap, set_allowancesMap] = useState>({}); + const [positionsMap, set_positionsMap] = useState>({}); + + const refreshVotingEscrow = useAsyncTrigger(async (): Promise => { + const gaugePromises = VE_YFI_GAUGES.map(async (gaugeAddress): Promise => { + const results = await readContracts({ + contracts: [ + {address: gaugeAddress, abi: VEYFI_GAUGE_ABI, chainId: VEYFI_CHAIN_ID, functionName: 'asset'}, + {address: gaugeAddress, abi: VEYFI_GAUGE_ABI, chainId: VEYFI_CHAIN_ID, functionName: 'name'}, + {address: gaugeAddress, abi: VEYFI_GAUGE_ABI, chainId: VEYFI_CHAIN_ID, functionName: 'symbol'}, + {address: gaugeAddress, abi: VEYFI_GAUGE_ABI, chainId: VEYFI_CHAIN_ID, functionName: 'decimals'}, + {address: gaugeAddress, abi: VEYFI_GAUGE_ABI, chainId: VEYFI_CHAIN_ID, functionName: 'totalAssets'}, + {address: gaugeAddress, abi: VEYFI_GAUGE_ABI, chainId: VEYFI_CHAIN_ID, functionName: 'rewardRate'} + ] }); + const decimals = Number(decodeAsBigInt(results[3])) || decodeAsNumber(results[3]); + const totalAssets = toNormalizedBN(decodeAsBigInt(results[4]), decimals); + const rewardRate = toNormalizedBN(decodeAsBigInt(results[5]), 18); - const [asset, name, symbol, decimals, totalAssets] = results.map(({result}): unknown => result) as [TAddress, string, string, number, bigint]; + //Debug value to test + // const totalAssets = toNormalizedBN(40000000000000000000n, decimals); + // const rewardRate = toNormalizedBN(330687830n, 18); return ({ - address, - vaultAddress: asset, - name, - symbol, - decimals, - totalStaked: totalAssets + address: gaugeAddress, + vaultAddress: decodeAsAddress(results[0]), + name: decodeAsString(results[1]), + symbol: decodeAsString(results[2]), + decimals: decimals, + totalStaked: totalAssets, + rewardRate }); }); - return Promise.all(gaugePromises); + + const allGauges = await Promise.all(gaugePromises); + set_gauges(allGauges); }, []); - const [{result: allowancesMap, status: fetchAllowancesMapStatus}, {execute: refreshAllowances}] = useAsync(async (): Promise | undefined> => { - if (!gauges || !isActive) { + const refreshAllowances = useAsyncTrigger(async (): Promise => { + if (!gauges || !address) { return; } - return allowancesFetcher(); - }, {}); + const calls = []; + for (const gauge of Object.values(gauges)) { + calls.push({ + address: gauge.vaultAddress, + abi: erc20ABI, + chainId: VEYFI_CHAIN_ID, + functionName: 'allowance', + args: [toAddress(address), gauge.address] + }); + calls.push({ + address: gauge.vaultAddress, + abi: erc20ABI, + chainId: VEYFI_CHAIN_ID, + functionName: 'decimals' + }); - const [{result: positions, status: fetchPositionsStatus}, {execute: refreshPositions}] = useAsync(async (): Promise => { - if (!gauges || !isActive) { - return; } - return positionsFetcher(); - }, []); - - const [{result: gauges, status: fetchGaugesStatus}, {execute: refreshVotingEscrow}] = useAsync(async (): Promise => { - if (!isActive) { - return; + const results = await readContracts({contracts: calls}); + const _allowancesMap: TDict = {}; + let index = 0; + for (const gauge of Object.values(gauges)) { + const allowance = decodeAsBigInt(results[index++]); + const decimals = Number(decodeAsBigInt(results[index++])) || decodeAsNumber(results[index++]); + _allowancesMap[allowanceKey(VEYFI_CHAIN_ID, gauge.vaultAddress, gauge.address, toAddress(address))] = toNormalizedBN(allowance, decimals); } - return gaugesFetcher(); - }, []); + set_allowancesMap(_allowancesMap); + }, [address, gauges]); - const refresh = useCallback((): void => { - refreshVotingEscrow(); - refreshPositions(); - refreshAllowances(); - }, [refreshAllowances, refreshPositions, refreshVotingEscrow]); - - useEffect((): void => { - refresh(); - }, [refresh]); - - const positionsFetcher = useCallback(async (): Promise => { - if (!gauges|| !isActive|| !userAddress) { - return []; + const refreshPositions = useAsyncTrigger(async (): Promise => { + if (!gauges || !isActive || !address) { + return; } - - const positionPromises = gauges.map(async ({address}): Promise => { - // todo: update once abi is available - const veYFIGaugeContract = getContract({ - address, - abi: VEYFI_GAUGE_ABI, - chainId: 1 - }); - - const calls: TMulticallContract[] = []; - ['balanceOf', 'earned', 'nextBoostedBalanceOf'].forEach((functionName): void => { - calls.push({...veYFIGaugeContract, functionName, args: [userAddress]}); + const positionPromises = gauges.map(async (gauge): Promise => { + const results = await readContracts({ + contracts: [ + { + address: toAddress(gauge.address), + abi: VEYFI_GAUGE_ABI, + chainId: VEYFI_CHAIN_ID, + functionName: 'balanceOf', + args: [toAddress(address)] + }, + { + address: toAddress(gauge.address), + abi: VEYFI_GAUGE_ABI, + chainId: VEYFI_CHAIN_ID, + functionName: 'earned', + args: [toAddress(address)] + }, + { + address: toAddress(gauge.address), + abi: VEYFI_GAUGE_ABI, + chainId: VEYFI_CHAIN_ID, + functionName: 'nextBoostedBalanceOf', + args: [toAddress(address)] + }, + { + address: toAddress(gauge.address), + abi: VEYFI_GAUGE_ABI, + chainId: VEYFI_CHAIN_ID, + functionName: 'decimals' + } + ] }); - const results = await multicall({ - contracts: calls, - chainId: 1 - }); - - const [balance, earned, boostedBalance] = results.map(({result}): unknown => result) as bigint[]; - - const depositPosition: TPosition = { - balance, - underlyingBalance: balance - }; - - const rewardPosition: TPosition = { - balance: earned, - underlyingBalance: earned // TODO: convert to underlying - }; + const balance = decodeAsBigInt(results[0]); + const earned = decodeAsBigInt(results[1]); + const boostedBalance = decodeAsBigInt(results[2]); + const decimals = Number(decodeAsBigInt(results[3])) || decodeAsNumber(results[3]); + const depositPosition: TNormalizedBN = toNormalizedBN(balance, decimals); + const rewardPosition: TNormalizedBN = toNormalizedBN(earned, decimals); const boostRatio = balance > 0n ? FixedNumber.from(boostedBalance).divUnsafe(FixedNumber.from(balance)).toUnsafeFloat() @@ -185,56 +169,32 @@ export const GaugeContextApp = memo(function GaugeContextApp({children}: {childr const boost = Math.min(1, boostRatio) * 10; return { - address, + address: gauge.address, deposit: depositPosition, reward: rewardPosition, boost }; }); - return Promise.all(positionPromises); - }, [gauges, isActive, userAddress]); - - const allowancesFetcher = useCallback(async (): Promise> => { - if (!gauges || !isActive || !userAddress) { - return {}; + const allPositions = await Promise.all(positionPromises); + const allPositionsAsMap: TDict = {}; + for (const positions of allPositions) { + allPositionsAsMap[positions.address] = positions; } + set_positionsMap(allPositionsAsMap); + }, [address, gauges, isActive]); - const allowanceCalls = gauges.map(({address, vaultAddress}): TMulticallContract => { - const erc20Contract = getContract({ - address: vaultAddress, - abi: erc20ABI, - chainId: 1 - }); - return { - ...erc20Contract, - abi: erc20ABI, - functionName: 'allowance', - args: [userAddress, address] - }; - }); - - const results = await multicall({ - contracts: allowanceCalls, - chainId: 1 - }); - const allowances = results.map(({result}): unknown => result) as bigint[]; - - const allowancesMap: TDict = {}; - gauges.forEach(({address, vaultAddress}, index): void => { - allowancesMap[allowanceKey(1, vaultAddress, address, userAddress)] = allowances[index]; - }); - - return allowancesMap; - }, [gauges, isActive, userAddress]); + const refresh = useCallback((): void => { + refreshVotingEscrow(); + refreshPositions(); + refreshAllowances(); + }, [refreshAllowances, refreshPositions, refreshVotingEscrow]); - const contextValue = useMemo((): TGaugeContext => ({ - gaugeAddresses: gauges?.map(({address}): TAddress => address) ?? [], - gaugesMap: keyBy(gauges ?? [], 'address'), - positionsMap: keyBy(positions ?? [], 'address'), + const contextValue = useDeepCompareMemo((): TGaugeContext => ({ + gaugesMap: keyBy(gauges, 'address'), + positionsMap: positionsMap, allowancesMap: allowancesMap ?? {}, - isLoading: fetchGaugesStatus ==='loading' || fetchPositionsStatus === 'loading' || fetchAllowancesMapStatus === 'loading', refresh - }), [allowancesMap, fetchAllowancesMapStatus, fetchGaugesStatus, fetchPositionsStatus, gauges, positions, refresh]); + }), [allowancesMap, gauges, positionsMap, refresh]); return ( diff --git a/apps/veyfi/contexts/useOption.tsx b/apps/veyfi/contexts/useOption.tsx index 6971de4a9..34505eaf6 100644 --- a/apps/veyfi/contexts/useOption.tsx +++ b/apps/veyfi/contexts/useOption.tsx @@ -1,143 +1,117 @@ -import React, {createContext, memo, useCallback, useContext, useEffect, useMemo} from 'react'; -import {ethers} from 'ethers'; -import {useAsync} from '@react-hookz/web'; +import React, {createContext, memo, useCallback, useContext, useState} from 'react'; +import {useDeepCompareMemo} from '@react-hookz/web'; +import {VEYFI_DYFI_ABI} from '@veYFI/utils/abi/veYFIdYFI.abi'; import {VEYFI_OPTIONS_ABI} from '@veYFI/utils/abi/veYFIOptions.abi'; -import {VEYFI_OYFI_ABI} from '@veYFI/utils/abi/veYFIoYFI.abi'; -import {VEYFI_OPTIONS_ADDRESS, VEYFI_OYFI_ADDRESS} from '@veYFI/utils/constants'; +import {VEYFI_CHAIN_ID, VEYFI_DYFI_ADDRESS,VEYFI_OPTIONS_ADDRESS} from '@veYFI/utils/constants'; import {erc20ABI, readContract} from '@wagmi/core'; import {useWeb3} from '@yearn-finance/web-lib/contexts/useWeb3'; import {allowanceKey} from '@yearn-finance/web-lib/utils/address'; -import {BIG_ZERO, ETH_TOKEN_ADDRESS, YFI_ADDRESS} from '@yearn-finance/web-lib/utils/constants'; -import {toBigInt, toNormalizedValue} from '@yearn-finance/web-lib/utils/format.bigNumber'; +import {BIG_ZERO, YFI_ADDRESS} from '@yearn-finance/web-lib/utils/constants'; +import {toNormalizedBN} from '@yearn-finance/web-lib/utils/format.bigNumber'; +import {useAsyncTrigger} from '@common/hooks/useAsyncEffect'; import {useTokenPrice} from '@common/hooks/useTokenPrice'; import type {ReactElement} from 'react'; import type {TDict} from '@yearn-finance/web-lib/types'; - -export type TOptionPosition = { - balance: bigint, -} +import type {TNormalizedBN} from '@common/types/types'; export type TOptionContext = { getRequiredEth: (amount: bigint) => Promise, - price: number | undefined, - positions: TOptionPosition | undefined, + dYFIPrice: number, + position: TNormalizedBN, + discount: TNormalizedBN, allowances: TDict, - isLoading: boolean, refresh: () => void, } const defaultProps: TOptionContext = { getRequiredEth: async (): Promise => BIG_ZERO, - price: undefined, - positions: undefined, + dYFIPrice: 0, + discount: toNormalizedBN(0), + position: toNormalizedBN(0), allowances: {}, - isLoading: true, refresh: (): void => undefined }; const OptionContext = createContext(defaultProps); export const OptionContextApp = memo(function OptionContextApp({children}: {children: ReactElement}): ReactElement { - const {provider, address: userAddress, isActive} = useWeb3(); + const {address: userAddress, isActive} = useWeb3(); + const [dYFIPrice, set_dYFIPrice] = useState(0); + const [position, set_position] = useState(toNormalizedBN(0)); + const [discount, set_discount] = useState(toNormalizedBN(0)); + const [allowances, set_allowances] = useState>({}); const yfiPrice = useTokenPrice(YFI_ADDRESS); - const ethPrice = useTokenPrice(ETH_TOKEN_ADDRESS); - - const [{result: price, status: fetchPriceStatus}, {execute: refreshPrice}] = useAsync(async (): Promise => { - if (!isActive || provider) { - return; - } - return priceFetcher(); - }, 0); - - const [{result: positions, status: fetchPositionsStatus}, {execute: refreshPositions}] = useAsync(async (): Promise => { - if (!isActive || provider) { - return; - } - return positionsFetcher(); - }, {balance: 0n}); - - const [{result: allowances, status: fetchAllowancesStatus}, {execute: refreshAllowances}] = useAsync(async (): Promise | undefined> => { - if (!isActive || provider) { - return; - } - return allowancesFetcher(); - }, {}); - - const refresh = useCallback((): void => { - refreshPrice(); - refreshPositions(); - refreshAllowances(); - }, [refreshPrice, refreshPositions, refreshAllowances]); - - useEffect((): void => { - refresh(); - }, [refresh]); const getRequiredEth = useCallback(async (amount: bigint): Promise => { - // TODO: update once abi is available return readContract({ address: VEYFI_OPTIONS_ADDRESS, abi: VEYFI_OPTIONS_ABI, functionName: 'eth_required', args: [amount], - chainId: 1 + chainId: VEYFI_CHAIN_ID }); }, []); - const priceFetcher = useCallback(async (): Promise => { - if(!ethPrice || !yfiPrice) { - return undefined; - } - const oneOption = ethers.utils.parseEther('1'); - const requiredEthPerOption = await getRequiredEth(toBigInt(oneOption.toString())); - const requiredEthValuePerOption = toNormalizedValue(requiredEthPerOption, 18) * ethPrice; - const pricePerOption = yfiPrice - requiredEthValuePerOption; - return pricePerOption; - }, [ethPrice, yfiPrice, getRequiredEth]); + const refreshPrice = useAsyncTrigger(async (): Promise => { + const discountRaw = await readContract({ + address: VEYFI_OPTIONS_ADDRESS, + abi: VEYFI_OPTIONS_ABI, + functionName: 'discount', + chainId: VEYFI_CHAIN_ID + }); + const discount = toNormalizedBN(discountRaw); + const dYFIPrice = yfiPrice * Number(discount?.normalized || 0); + set_dYFIPrice(dYFIPrice); + set_discount(discount); + }, [yfiPrice]); - const positionsFetcher = useCallback(async (): Promise => { + const refreshPositions = useAsyncTrigger(async (): Promise => { if (!isActive || !userAddress) { - return undefined; + return; } - // TODO: update once abi is available - return { - balance: await readContract({ - address: VEYFI_OYFI_ADDRESS, - abi: VEYFI_OYFI_ABI, - functionName: 'balanceOf', - args: [userAddress], - chainId: 1 - }) - }; + const dYFIBalance = await readContract({ + address: VEYFI_DYFI_ADDRESS, + abi: VEYFI_DYFI_ABI, + functionName: 'balanceOf', + args: [userAddress], + chainId: VEYFI_CHAIN_ID + }); + set_position(toNormalizedBN(dYFIBalance)); }, [isActive, userAddress]); - const allowancesFetcher = useCallback(async (): Promise> => { + const refreshAllowances = useAsyncTrigger(async (): Promise => { if (!isActive || !userAddress) { - return {}; + return; } - const oYFIAllowanceOptions = await readContract({ - address: VEYFI_OYFI_ADDRESS, + const dYFIAllowanceOptions = await readContract({ + address: VEYFI_DYFI_ADDRESS, abi: erc20ABI, functionName: 'allowance', args: [userAddress, VEYFI_OPTIONS_ADDRESS], - chainId: 1 + chainId: VEYFI_CHAIN_ID }); - return ({ - [allowanceKey(1, VEYFI_OYFI_ADDRESS, VEYFI_OPTIONS_ADDRESS, userAddress)]: oYFIAllowanceOptions + set_allowances({ + [allowanceKey(VEYFI_CHAIN_ID, VEYFI_DYFI_ADDRESS, VEYFI_OPTIONS_ADDRESS, userAddress)]: dYFIAllowanceOptions }); }, [isActive, userAddress]); - const contextValue = useMemo((): TOptionContext => ({ + const refresh = useCallback((): void => { + refreshPrice(); + refreshPositions(); + refreshAllowances(); + }, [refreshPrice, refreshPositions, refreshAllowances]); + + const contextValue = useDeepCompareMemo((): TOptionContext => ({ getRequiredEth, - price, - positions, + dYFIPrice, + position, + discount, allowances: allowances ?? {}, - isLoading: fetchPriceStatus === 'loading' || fetchPositionsStatus === 'loading' || fetchAllowancesStatus === 'loading', refresh - }), [allowances, fetchAllowancesStatus, fetchPositionsStatus, fetchPriceStatus, getRequiredEth, positions, price, refresh]); + }), [allowances, getRequiredEth, position, dYFIPrice, refresh]); return ( diff --git a/apps/veyfi/contexts/useVotingEscrow.tsx b/apps/veyfi/contexts/useVotingEscrow.tsx index 701bf11df..4b8030afb 100644 --- a/apps/veyfi/contexts/useVotingEscrow.tsx +++ b/apps/veyfi/contexts/useVotingEscrow.tsx @@ -2,9 +2,10 @@ import {createContext, memo, useCallback, useContext, useMemo} from 'react'; import {erc20ABI, useContractRead, useContractReads} from 'wagmi'; import {VEYFI_ABI} from '@veYFI/utils/abi/veYFI.abi'; import {VEYFI_POSITION_HELPER_ABI} from '@veYFI/utils/abi/veYFIPositionHelper.abi'; +import {VEYFI_CHAIN_ID} from '@veYFI/utils/constants'; import {useWeb3} from '@yearn-finance/web-lib/contexts/useWeb3'; import {allowanceKey, isZeroAddress, toAddress} from '@yearn-finance/web-lib/utils/address'; -import {VEYFI_ADDRESS, VEYFI_POSITION_HELPER_ADDRESS, YFI_ADDRESS} from '@yearn-finance/web-lib/utils/constants'; +import {VEYFI_ADDRESS, VEYFI_POSITION_HELPER_ADDRESS,YFI_ADDRESS} from '@yearn-finance/web-lib/utils/constants'; import {decodeAsBigInt, decodeAsNumber, decodeAsString} from '@yearn-finance/web-lib/utils/decoder'; import {toMilliseconds} from '@yearn-finance/web-lib/utils/time'; @@ -119,9 +120,9 @@ export const VotingEscrowContextApp = memo(function VotingEscrowContextApp({chil /* 🔵 - Yearn Finance ********************************************************** ** Retrieving the user's allowances of YFI for the veYFI contract. ******************************************************************************/ - const baseYFIContract = {address: YFI_ADDRESS, abi: erc20ABI}; const {data: allowance, status: allowanceStatus, refetch: refreshAllowance} = useContractRead({ - ...baseYFIContract, + address: YFI_ADDRESS, + abi: erc20ABI, functionName: 'allowance', args: [toAddress(address), VEYFI_ADDRESS], enabled: isActive && address !== undefined && !isZeroAddress(address) @@ -131,7 +132,7 @@ export const VotingEscrowContextApp = memo(function VotingEscrowContextApp({chil return {}; } return ({ - [allowanceKey(1, YFI_ADDRESS, VEYFI_ADDRESS, address)]: allowance + [allowanceKey(VEYFI_CHAIN_ID, YFI_ADDRESS, VEYFI_ADDRESS, address)]: allowance }); }, [address, allowance, allowanceStatus]); diff --git a/apps/veyfi/hooks/useVeYFIQueryArgs.ts b/apps/veyfi/hooks/useVeYFIQueryArgs.ts new file mode 100644 index 000000000..6be604529 --- /dev/null +++ b/apps/veyfi/hooks/useVeYFIQueryArgs.ts @@ -0,0 +1,37 @@ +import {useEffect, useState} from 'react'; +import {StringParam, useQueryParam} from 'use-query-params'; + + +type TQueryArgs = { + search: string | null | undefined; + onSearch: (value: string) => void; +}; +function useQueryArguments(): TQueryArgs { + const [searchParam, set_searchParam] = useQueryParam('search', StringParam); + const [search, set_search] = useState(searchParam); + + /** 🔵 - Yearn ********************************************************************************* + ** This useEffect hook is used to synchronize the search state with the query parameter + *********************************************************************************************/ + useEffect((): void => { + if (searchParam === search) { + return; + } + if (search === undefined && searchParam !== undefined) { + set_search(searchParam); + return; + } + if (!search) { + set_searchParam(undefined); + } else { + set_searchParam(search); + } + }, [searchParam, search, set_searchParam]); + + return { + search, + onSearch: set_search + }; +} + +export {useQueryArguments}; diff --git a/apps/veyfi/utils/abi/veYFIClaimRewardsZap.abi.ts b/apps/veyfi/utils/abi/veYFIClaimRewardsZap.abi.ts index f0f823276..d3c5eb586 100644 --- a/apps/veyfi/utils/abi/veYFIClaimRewardsZap.abi.ts +++ b/apps/veyfi/utils/abi/veYFIClaimRewardsZap.abi.ts @@ -1,2 +1 @@ -// TODO: update once final version deployed export const VEYFI_CLAIM_REWARDS_ZAP_ABI = ['function claim(address[] calldata _gauges, bool _lock, bool _claimVeYfi) external']; diff --git a/apps/veyfi/utils/abi/veYFIGauge.abi.ts b/apps/veyfi/utils/abi/veYFIGauge.abi.ts index cfeffa9b1..db460a0c8 100644 --- a/apps/veyfi/utils/abi/veYFIGauge.abi.ts +++ b/apps/veyfi/utils/abi/veYFIGauge.abi.ts @@ -1,1411 +1 @@ -// TODO: update once final version deployed -export const VEYFI_GAUGE_ABI = [ - { - 'inputs': [ - { - 'internalType': 'address', - 'name': '_veYfi', - 'type': 'address' - }, - { - 'internalType': 'address', - 'name': '_oYfi', - 'type': 'address' - }, - { - 'internalType': 'address', - 'name': '_veYfiOYfiPool', - 'type': 'address' - } - ], - 'stateMutability': 'nonpayable', - 'type': 'constructor' - }, - { - 'anonymous': false, - 'inputs': [ - { - 'indexed': true, - 'internalType': 'address', - 'name': 'owner', - 'type': 'address' - }, - { - 'indexed': true, - 'internalType': 'address', - 'name': 'spender', - 'type': 'address' - }, - { - 'indexed': false, - 'internalType': 'uint256', - 'name': 'value', - 'type': 'uint256' - } - ], - 'name': 'Approval', - 'type': 'event' - }, - { - 'anonymous': false, - 'inputs': [ - { - 'indexed': false, - 'internalType': 'address', - 'name': 'account', - 'type': 'address' - }, - { - 'indexed': false, - 'internalType': 'uint256', - 'name': 'amount', - 'type': 'uint256' - } - ], - 'name': 'BoostedBalanceUpdated', - 'type': 'event' - }, - { - 'anonymous': false, - 'inputs': [ - { - 'indexed': true, - 'internalType': 'address', - 'name': 'caller', - 'type': 'address' - }, - { - 'indexed': true, - 'internalType': 'address', - 'name': 'owner', - 'type': 'address' - }, - { - 'indexed': false, - 'internalType': 'uint256', - 'name': 'assets', - 'type': 'uint256' - }, - { - 'indexed': false, - 'internalType': 'uint256', - 'name': 'shares', - 'type': 'uint256' - } - ], - 'name': 'Deposit', - 'type': 'event' - }, - { - 'anonymous': false, - 'inputs': [ - { - 'indexed': false, - 'internalType': 'uint256', - 'name': 'duration', - 'type': 'uint256' - }, - { - 'indexed': false, - 'internalType': 'uint256', - 'name': 'rewardRate', - 'type': 'uint256' - }, - { - 'indexed': false, - 'internalType': 'uint256', - 'name': 'periodFinish', - 'type': 'uint256' - } - ], - 'name': 'DurationUpdated', - 'type': 'event' - }, - { - 'anonymous': false, - 'inputs': [ - { - 'indexed': true, - 'internalType': 'address', - 'name': 'asset', - 'type': 'address' - }, - { - 'indexed': true, - 'internalType': 'address', - 'name': 'owner', - 'type': 'address' - } - ], - 'name': 'Initialize', - 'type': 'event' - }, - { - 'anonymous': false, - 'inputs': [ - { - 'indexed': false, - 'internalType': 'uint8', - 'name': 'version', - 'type': 'uint8' - } - ], - 'name': 'Initialized', - 'type': 'event' - }, - { - 'anonymous': false, - 'inputs': [ - { - 'indexed': true, - 'internalType': 'address', - 'name': 'previousOwner', - 'type': 'address' - }, - { - 'indexed': true, - 'internalType': 'address', - 'name': 'newOwner', - 'type': 'address' - } - ], - 'name': 'OwnershipTransferred', - 'type': 'event' - }, - { - 'anonymous': false, - 'inputs': [ - { - 'indexed': true, - 'internalType': 'address', - 'name': 'account', - 'type': 'address' - }, - { - 'indexed': true, - 'internalType': 'address', - 'name': 'recipient', - 'type': 'address' - } - ], - 'name': 'RecipientUpdated', - 'type': 'event' - }, - { - 'anonymous': false, - 'inputs': [ - { - 'indexed': true, - 'internalType': 'address', - 'name': 'user', - 'type': 'address' - }, - { - 'indexed': false, - 'internalType': 'uint256', - 'name': 'reward', - 'type': 'uint256' - } - ], - 'name': 'RewardPaid', - 'type': 'event' - }, - { - 'anonymous': false, - 'inputs': [ - { - 'indexed': false, - 'internalType': 'uint256', - 'name': 'currentRewards', - 'type': 'uint256' - }, - { - 'indexed': false, - 'internalType': 'uint256', - 'name': 'lastUpdateTime', - 'type': 'uint256' - }, - { - 'indexed': false, - 'internalType': 'uint256', - 'name': 'periodFinish', - 'type': 'uint256' - }, - { - 'indexed': false, - 'internalType': 'uint256', - 'name': 'rewardRate', - 'type': 'uint256' - }, - { - 'indexed': false, - 'internalType': 'uint256', - 'name': 'historicalRewards', - 'type': 'uint256' - } - ], - 'name': 'RewardsAdded', - 'type': 'event' - }, - { - 'anonymous': false, - 'inputs': [ - { - 'indexed': true, - 'internalType': 'address', - 'name': 'from', - 'type': 'address' - }, - { - 'indexed': false, - 'internalType': 'uint256', - 'name': 'amount', - 'type': 'uint256' - } - ], - 'name': 'RewardsQueued', - 'type': 'event' - }, - { - 'anonymous': false, - 'inputs': [ - { - 'indexed': true, - 'internalType': 'address', - 'name': 'token', - 'type': 'address' - }, - { - 'indexed': false, - 'internalType': 'uint256', - 'name': 'amount', - 'type': 'uint256' - } - ], - 'name': 'Sweep', - 'type': 'event' - }, - { - 'anonymous': false, - 'inputs': [ - { - 'indexed': true, - 'internalType': 'address', - 'name': 'from', - 'type': 'address' - }, - { - 'indexed': true, - 'internalType': 'address', - 'name': 'to', - 'type': 'address' - }, - { - 'indexed': false, - 'internalType': 'uint256', - 'name': 'value', - 'type': 'uint256' - } - ], - 'name': 'Transfer', - 'type': 'event' - }, - { - 'anonymous': false, - 'inputs': [ - { - 'indexed': true, - 'internalType': 'address', - 'name': 'account', - 'type': 'address' - }, - { - 'indexed': false, - 'internalType': 'uint256', - 'name': 'transfered', - 'type': 'uint256' - } - ], - 'name': 'TransferredPenalty', - 'type': 'event' - }, - { - 'anonymous': false, - 'inputs': [ - { - 'indexed': true, - 'internalType': 'address', - 'name': 'account', - 'type': 'address' - }, - { - 'indexed': false, - 'internalType': 'uint256', - 'name': 'rewardPerTokenStored', - 'type': 'uint256' - }, - { - 'indexed': false, - 'internalType': 'uint256', - 'name': 'lastUpdateTime', - 'type': 'uint256' - }, - { - 'indexed': false, - 'internalType': 'uint256', - 'name': 'rewards', - 'type': 'uint256' - }, - { - 'indexed': false, - 'internalType': 'uint256', - 'name': 'userRewardPerTokenPaid', - 'type': 'uint256' - } - ], - 'name': 'UpdatedRewards', - 'type': 'event' - }, - { - 'anonymous': false, - 'inputs': [ - { - 'indexed': true, - 'internalType': 'address', - 'name': 'caller', - 'type': 'address' - }, - { - 'indexed': true, - 'internalType': 'address', - 'name': 'receiver', - 'type': 'address' - }, - { - 'indexed': true, - 'internalType': 'address', - 'name': 'owner', - 'type': 'address' - }, - { - 'indexed': false, - 'internalType': 'uint256', - 'name': 'assets', - 'type': 'uint256' - }, - { - 'indexed': false, - 'internalType': 'uint256', - 'name': 'shares', - 'type': 'uint256' - } - ], - 'name': 'Withdraw', - 'type': 'event' - }, - { - 'inputs': [], - 'name': 'BOOSTING_FACTOR', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [], - 'name': 'BOOST_DENOMINATOR', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [], - 'name': 'PRECISION_FACTOR', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [], - 'name': 'REWARD_TOKEN', - 'outputs': [ - { - 'internalType': 'contract IERC20', - 'name': '', - 'type': 'address' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [], - 'name': 'VEYFI', - 'outputs': [ - { - 'internalType': 'address', - 'name': '', - 'type': 'address' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [], - 'name': 'VE_YFI_POOL', - 'outputs': [ - { - 'internalType': 'address', - 'name': '', - 'type': 'address' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'address', - 'name': 'owner', - 'type': 'address' - }, - { - 'internalType': 'address', - 'name': 'spender', - 'type': 'address' - } - ], - 'name': 'allowance', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'address', - 'name': 'spender', - 'type': 'address' - }, - { - 'internalType': 'uint256', - 'name': 'amount', - 'type': 'uint256' - } - ], - 'name': 'approve', - 'outputs': [ - { - 'internalType': 'bool', - 'name': '', - 'type': 'bool' - } - ], - 'stateMutability': 'nonpayable', - 'type': 'function' - }, - { - 'inputs': [], - 'name': 'asset', - 'outputs': [ - { - 'internalType': 'contract IERC20', - 'name': '', - 'type': 'address' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'address', - 'name': 'account', - 'type': 'address' - } - ], - 'name': 'balanceOf', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'address', - 'name': '_account', - 'type': 'address' - } - ], - 'name': 'boostedBalanceOf', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'uint256', - 'name': '_shares', - 'type': 'uint256' - } - ], - 'name': 'convertToAssets', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'uint256', - 'name': '_assets', - 'type': 'uint256' - } - ], - 'name': 'convertToShares', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [], - 'name': 'currentRewards', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [], - 'name': 'decimals', - 'outputs': [ - { - 'internalType': 'uint8', - 'name': '', - 'type': 'uint8' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'address', - 'name': 'spender', - 'type': 'address' - }, - { - 'internalType': 'uint256', - 'name': 'subtractedValue', - 'type': 'uint256' - } - ], - 'name': 'decreaseAllowance', - 'outputs': [ - { - 'internalType': 'bool', - 'name': '', - 'type': 'bool' - } - ], - 'stateMutability': 'nonpayable', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'uint256', - 'name': '_assets', - 'type': 'uint256' - } - ], - 'name': 'deposit', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'nonpayable', - 'type': 'function' - }, - { - 'inputs': [], - 'name': 'duration', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'address', - 'name': '_account', - 'type': 'address' - } - ], - 'name': 'earned', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [], - 'name': 'getReward', - 'outputs': [ - { - 'internalType': 'bool', - 'name': '', - 'type': 'bool' - } - ], - 'stateMutability': 'nonpayable', - 'type': 'function' - }, - { - 'inputs': [], - 'name': 'historicalRewards', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'address', - 'name': 'spender', - 'type': 'address' - }, - { - 'internalType': 'uint256', - 'name': 'addedValue', - 'type': 'uint256' - } - ], - 'name': 'increaseAllowance', - 'outputs': [ - { - 'internalType': 'bool', - 'name': '', - 'type': 'bool' - } - ], - 'stateMutability': 'nonpayable', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'address', - 'name': '_asset', - 'type': 'address' - }, - { - 'internalType': 'address', - 'name': '_owner', - 'type': 'address' - } - ], - 'name': 'initialize', - 'outputs': [], - 'stateMutability': 'nonpayable', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'address[]', - 'name': '_accounts', - 'type': 'address[]' - } - ], - 'name': 'kick', - 'outputs': [], - 'stateMutability': 'nonpayable', - 'type': 'function' - }, - { - 'inputs': [], - 'name': 'lastTimeRewardApplicable', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [], - 'name': 'lastUpdateTime', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'address', - 'name': '', - 'type': 'address' - } - ], - 'name': 'maxDeposit', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'address', - 'name': '', - 'type': 'address' - } - ], - 'name': 'maxMint', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'address', - 'name': '_owner', - 'type': 'address' - } - ], - 'name': 'maxRedeem', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'address', - 'name': '_owner', - 'type': 'address' - } - ], - 'name': 'maxWithdraw', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'uint256', - 'name': '_shares', - 'type': 'uint256' - }, - { - 'internalType': 'address', - 'name': '_receiver', - 'type': 'address' - } - ], - 'name': 'mint', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'nonpayable', - 'type': 'function' - }, - { - 'inputs': [], - 'name': 'name', - 'outputs': [ - { - 'internalType': 'string', - 'name': '', - 'type': 'string' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'address', - 'name': '_account', - 'type': 'address' - } - ], - 'name': 'nextBoostedBalanceOf', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [], - 'name': 'owner', - 'outputs': [ - { - 'internalType': 'address', - 'name': '', - 'type': 'address' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [], - 'name': 'periodFinish', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'uint256', - 'name': '_assets', - 'type': 'uint256' - } - ], - 'name': 'previewDeposit', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'uint256', - 'name': '_shares', - 'type': 'uint256' - } - ], - 'name': 'previewMint', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'uint256', - 'name': '_assets', - 'type': 'uint256' - } - ], - 'name': 'previewRedeem', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'uint256', - 'name': '_assets', - 'type': 'uint256' - } - ], - 'name': 'previewWithdraw', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'uint256', - 'name': '_amount', - 'type': 'uint256' - } - ], - 'name': 'queueNewRewards', - 'outputs': [ - { - 'internalType': 'bool', - 'name': '', - 'type': 'bool' - } - ], - 'stateMutability': 'nonpayable', - 'type': 'function' - }, - { - 'inputs': [], - 'name': 'queuedRewards', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'address', - 'name': '', - 'type': 'address' - } - ], - 'name': 'recipients', - 'outputs': [ - { - 'internalType': 'address', - 'name': '', - 'type': 'address' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'uint256', - 'name': '_assets', - 'type': 'uint256' - }, - { - 'internalType': 'address', - 'name': '_receiver', - 'type': 'address' - }, - { - 'internalType': 'address', - 'name': '_owner', - 'type': 'address' - } - ], - 'name': 'redeem', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'nonpayable', - 'type': 'function' - }, - { - 'inputs': [], - 'name': 'renounceOwnership', - 'outputs': [], - 'stateMutability': 'nonpayable', - 'type': 'function' - }, - { - 'inputs': [], - 'name': 'rewardPerToken', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [], - 'name': 'rewardPerTokenStored', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [], - 'name': 'rewardRate', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'address', - 'name': '', - 'type': 'address' - } - ], - 'name': 'rewards', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'uint256', - 'name': '_newDuration', - 'type': 'uint256' - } - ], - 'name': 'setDuration', - 'outputs': [], - 'stateMutability': 'nonpayable', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'address', - 'name': '_recipient', - 'type': 'address' - } - ], - 'name': 'setRecipient', - 'outputs': [], - 'stateMutability': 'nonpayable', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'address', - 'name': '_token', - 'type': 'address' - } - ], - 'name': 'sweep', - 'outputs': [ - { - 'internalType': 'bool', - 'name': '', - 'type': 'bool' - } - ], - 'stateMutability': 'nonpayable', - 'type': 'function' - }, - { - 'inputs': [], - 'name': 'symbol', - 'outputs': [ - { - 'internalType': 'string', - 'name': '', - 'type': 'string' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [], - 'name': 'totalAssets', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [], - 'name': 'totalSupply', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'address', - 'name': 'to', - 'type': 'address' - }, - { - 'internalType': 'uint256', - 'name': 'amount', - 'type': 'uint256' - } - ], - 'name': 'transfer', - 'outputs': [ - { - 'internalType': 'bool', - 'name': '', - 'type': 'bool' - } - ], - 'stateMutability': 'nonpayable', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'address', - 'name': 'from', - 'type': 'address' - }, - { - 'internalType': 'address', - 'name': 'to', - 'type': 'address' - }, - { - 'internalType': 'uint256', - 'name': 'amount', - 'type': 'uint256' - } - ], - 'name': 'transferFrom', - 'outputs': [ - { - 'internalType': 'bool', - 'name': '', - 'type': 'bool' - } - ], - 'stateMutability': 'nonpayable', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'address', - 'name': 'newOwner', - 'type': 'address' - } - ], - 'name': 'transferOwnership', - 'outputs': [], - 'stateMutability': 'nonpayable', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'address', - 'name': '', - 'type': 'address' - } - ], - 'name': 'userRewardPerTokenPaid', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [ - { - 'internalType': 'uint256', - 'name': '_assets', - 'type': 'uint256' - }, - { - 'internalType': 'address', - 'name': '_receiver', - 'type': 'address' - }, - { - 'internalType': 'address', - 'name': '_owner', - 'type': 'address' - }, - { - 'internalType': 'bool', - 'name': '_claim', - 'type': 'bool' - } - ], - 'name': 'withdraw', - 'outputs': [ - { - 'internalType': 'uint256', - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'nonpayable', - 'type': 'function' - } -] as const; +export const VEYFI_GAUGE_ABI = [{'inputs':[{'internalType':'address','name':'_veYfi','type':'address'},{'internalType':'address','name':'_dYfi','type':'address'},{'internalType':'address','name':'_veYfiDYfiPool','type':'address'}],'stateMutability':'nonpayable','type':'constructor'},{'anonymous':false,'inputs':[{'indexed':true,'internalType':'address','name':'owner','type':'address'},{'indexed':true,'internalType':'address','name':'spender','type':'address'},{'indexed':false,'internalType':'uint256','name':'value','type':'uint256'}],'name':'Approval','type':'event'},{'anonymous':false,'inputs':[{'indexed':false,'internalType':'address','name':'account','type':'address'},{'indexed':false,'internalType':'uint256','name':'amount','type':'uint256'}],'name':'BoostedBalanceUpdated','type':'event'},{'anonymous':false,'inputs':[{'indexed':true,'internalType':'address','name':'caller','type':'address'},{'indexed':true,'internalType':'address','name':'owner','type':'address'},{'indexed':false,'internalType':'uint256','name':'assets','type':'uint256'},{'indexed':false,'internalType':'uint256','name':'shares','type':'uint256'}],'name':'Deposit','type':'event'},{'anonymous':false,'inputs':[{'indexed':false,'internalType':'uint256','name':'duration','type':'uint256'},{'indexed':false,'internalType':'uint256','name':'rewardRate','type':'uint256'},{'indexed':false,'internalType':'uint256','name':'periodFinish','type':'uint256'}],'name':'DurationUpdated','type':'event'},{'anonymous':false,'inputs':[{'indexed':true,'internalType':'address','name':'asset','type':'address'},{'indexed':true,'internalType':'address','name':'owner','type':'address'}],'name':'Initialize','type':'event'},{'anonymous':false,'inputs':[{'indexed':false,'internalType':'uint8','name':'version','type':'uint8'}],'name':'Initialized','type':'event'},{'anonymous':false,'inputs':[{'indexed':true,'internalType':'address','name':'previousOwner','type':'address'},{'indexed':true,'internalType':'address','name':'newOwner','type':'address'}],'name':'OwnershipTransferred','type':'event'},{'anonymous':false,'inputs':[{'indexed':true,'internalType':'address','name':'account','type':'address'},{'indexed':true,'internalType':'address','name':'recipient','type':'address'}],'name':'RecipientUpdated','type':'event'},{'anonymous':false,'inputs':[{'indexed':true,'internalType':'address','name':'user','type':'address'},{'indexed':false,'internalType':'uint256','name':'reward','type':'uint256'}],'name':'RewardPaid','type':'event'},{'anonymous':false,'inputs':[{'indexed':false,'internalType':'uint256','name':'currentRewards','type':'uint256'},{'indexed':false,'internalType':'uint256','name':'lastUpdateTime','type':'uint256'},{'indexed':false,'internalType':'uint256','name':'periodFinish','type':'uint256'},{'indexed':false,'internalType':'uint256','name':'rewardRate','type':'uint256'},{'indexed':false,'internalType':'uint256','name':'historicalRewards','type':'uint256'}],'name':'RewardsAdded','type':'event'},{'anonymous':false,'inputs':[{'indexed':true,'internalType':'address','name':'from','type':'address'},{'indexed':false,'internalType':'uint256','name':'amount','type':'uint256'}],'name':'RewardsQueued','type':'event'},{'anonymous':false,'inputs':[{'indexed':true,'internalType':'address','name':'token','type':'address'},{'indexed':false,'internalType':'uint256','name':'amount','type':'uint256'}],'name':'Sweep','type':'event'},{'anonymous':false,'inputs':[{'indexed':true,'internalType':'address','name':'from','type':'address'},{'indexed':true,'internalType':'address','name':'to','type':'address'},{'indexed':false,'internalType':'uint256','name':'value','type':'uint256'}],'name':'Transfer','type':'event'},{'anonymous':false,'inputs':[{'indexed':true,'internalType':'address','name':'account','type':'address'},{'indexed':false,'internalType':'uint256','name':'transfered','type':'uint256'}],'name':'TransferredPenalty','type':'event'},{'anonymous':false,'inputs':[{'indexed':true,'internalType':'address','name':'account','type':'address'},{'indexed':false,'internalType':'uint256','name':'rewardPerTokenStored','type':'uint256'},{'indexed':false,'internalType':'uint256','name':'lastUpdateTime','type':'uint256'},{'indexed':false,'internalType':'uint256','name':'rewards','type':'uint256'},{'indexed':false,'internalType':'uint256','name':'userRewardPerTokenPaid','type':'uint256'}],'name':'UpdatedRewards','type':'event'},{'anonymous':false,'inputs':[{'indexed':true,'internalType':'address','name':'caller','type':'address'},{'indexed':true,'internalType':'address','name':'receiver','type':'address'},{'indexed':true,'internalType':'address','name':'owner','type':'address'},{'indexed':false,'internalType':'uint256','name':'assets','type':'uint256'},{'indexed':false,'internalType':'uint256','name':'shares','type':'uint256'}],'name':'Withdraw','type':'event'},{'inputs':[],'name':'BOOSTING_FACTOR','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[],'name':'BOOST_DENOMINATOR','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[],'name':'PRECISION_FACTOR','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[],'name':'REWARD_TOKEN','outputs':[{'internalType':'contract IERC20','name':'','type':'address'}],'stateMutability':'view','type':'function'},{'inputs':[],'name':'VEYFI','outputs':[{'internalType':'address','name':'','type':'address'}],'stateMutability':'view','type':'function'},{'inputs':[],'name':'VE_YFI_POOL','outputs':[{'internalType':'address','name':'','type':'address'}],'stateMutability':'view','type':'function'},{'inputs':[{'internalType':'address','name':'owner','type':'address'},{'internalType':'address','name':'spender','type':'address'}],'name':'allowance','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[{'internalType':'address','name':'spender','type':'address'},{'internalType':'uint256','name':'amount','type':'uint256'}],'name':'approve','outputs':[{'internalType':'bool','name':'','type':'bool'}],'stateMutability':'nonpayable','type':'function'},{'inputs':[],'name':'asset','outputs':[{'internalType':'contract IERC20','name':'','type':'address'}],'stateMutability':'view','type':'function'},{'inputs':[{'internalType':'address','name':'account','type':'address'}],'name':'balanceOf','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[{'internalType':'address','name':'_account','type':'address'}],'name':'boostedBalanceOf','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[{'internalType':'uint256','name':'_shares','type':'uint256'}],'name':'convertToAssets','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[{'internalType':'uint256','name':'_assets','type':'uint256'}],'name':'convertToShares','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[],'name':'currentRewards','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[],'name':'decimals','outputs':[{'internalType':'uint8','name':'','type':'uint8'}],'stateMutability':'view','type':'function'},{'inputs':[{'internalType':'address','name':'spender','type':'address'},{'internalType':'uint256','name':'subtractedValue','type':'uint256'}],'name':'decreaseAllowance','outputs':[{'internalType':'bool','name':'','type':'bool'}],'stateMutability':'nonpayable','type':'function'},{'inputs':[{'internalType':'uint256','name':'_assets','type':'uint256'},{'internalType':'address','name':'_receiver','type':'address'}],'name':'deposit','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'nonpayable','type':'function'},{'inputs':[{'internalType':'uint256','name':'_assets','type':'uint256'}],'name':'deposit','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'nonpayable','type':'function'},{'inputs':[],'name':'deposit','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'nonpayable','type':'function'},{'inputs':[],'name':'duration','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[{'internalType':'address','name':'_account','type':'address'}],'name':'earned','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[],'name':'getReward','outputs':[{'internalType':'bool','name':'','type':'bool'}],'stateMutability':'nonpayable','type':'function'},{'inputs':[{'internalType':'address','name':'_account','type':'address'}],'name':'getReward','outputs':[{'internalType':'bool','name':'','type':'bool'}],'stateMutability':'nonpayable','type':'function'},{'inputs':[],'name':'historicalRewards','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[{'internalType':'address','name':'spender','type':'address'},{'internalType':'uint256','name':'addedValue','type':'uint256'}],'name':'increaseAllowance','outputs':[{'internalType':'bool','name':'','type':'bool'}],'stateMutability':'nonpayable','type':'function'},{'inputs':[{'internalType':'address','name':'_asset','type':'address'},{'internalType':'address','name':'_owner','type':'address'}],'name':'initialize','outputs':[],'stateMutability':'nonpayable','type':'function'},{'inputs':[{'internalType':'address[]','name':'_accounts','type':'address[]'}],'name':'kick','outputs':[],'stateMutability':'nonpayable','type':'function'},{'inputs':[],'name':'lastTimeRewardApplicable','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[],'name':'lastUpdateTime','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[{'internalType':'address','name':'','type':'address'}],'name':'maxDeposit','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[{'internalType':'address','name':'','type':'address'}],'name':'maxMint','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[{'internalType':'address','name':'_owner','type':'address'}],'name':'maxRedeem','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[{'internalType':'address','name':'_owner','type':'address'}],'name':'maxWithdraw','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[{'internalType':'uint256','name':'_shares','type':'uint256'},{'internalType':'address','name':'_receiver','type':'address'}],'name':'mint','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'nonpayable','type':'function'},{'inputs':[],'name':'name','outputs':[{'internalType':'string','name':'','type':'string'}],'stateMutability':'view','type':'function'},{'inputs':[{'internalType':'address','name':'_account','type':'address'}],'name':'nextBoostedBalanceOf','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[],'name':'owner','outputs':[{'internalType':'address','name':'','type':'address'}],'stateMutability':'view','type':'function'},{'inputs':[],'name':'periodFinish','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[{'internalType':'uint256','name':'_assets','type':'uint256'}],'name':'previewDeposit','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[{'internalType':'uint256','name':'_shares','type':'uint256'}],'name':'previewMint','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[{'internalType':'uint256','name':'_assets','type':'uint256'}],'name':'previewRedeem','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[{'internalType':'uint256','name':'_assets','type':'uint256'}],'name':'previewWithdraw','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[{'internalType':'uint256','name':'_amount','type':'uint256'}],'name':'queueNewRewards','outputs':[{'internalType':'bool','name':'','type':'bool'}],'stateMutability':'nonpayable','type':'function'},{'inputs':[],'name':'queuedRewards','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[{'internalType':'address','name':'','type':'address'}],'name':'recipients','outputs':[{'internalType':'address','name':'','type':'address'}],'stateMutability':'view','type':'function'},{'inputs':[{'internalType':'uint256','name':'_assets','type':'uint256'},{'internalType':'address','name':'_receiver','type':'address'},{'internalType':'address','name':'_owner','type':'address'}],'name':'redeem','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'nonpayable','type':'function'},{'inputs':[],'name':'renounceOwnership','outputs':[],'stateMutability':'nonpayable','type':'function'},{'inputs':[],'name':'rewardPerToken','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[],'name':'rewardPerTokenStored','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[],'name':'rewardRate','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[{'internalType':'address','name':'','type':'address'}],'name':'rewards','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[{'internalType':'uint256','name':'_newDuration','type':'uint256'}],'name':'setDuration','outputs':[],'stateMutability':'nonpayable','type':'function'},{'inputs':[{'internalType':'address','name':'_recipient','type':'address'}],'name':'setRecipient','outputs':[],'stateMutability':'nonpayable','type':'function'},{'inputs':[{'internalType':'address','name':'_token','type':'address'}],'name':'sweep','outputs':[{'internalType':'bool','name':'','type':'bool'}],'stateMutability':'nonpayable','type':'function'},{'inputs':[],'name':'symbol','outputs':[{'internalType':'string','name':'','type':'string'}],'stateMutability':'view','type':'function'},{'inputs':[],'name':'totalAssets','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[],'name':'totalSupply','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[{'internalType':'address','name':'to','type':'address'},{'internalType':'uint256','name':'amount','type':'uint256'}],'name':'transfer','outputs':[{'internalType':'bool','name':'','type':'bool'}],'stateMutability':'nonpayable','type':'function'},{'inputs':[{'internalType':'address','name':'from','type':'address'},{'internalType':'address','name':'to','type':'address'},{'internalType':'uint256','name':'amount','type':'uint256'}],'name':'transferFrom','outputs':[{'internalType':'bool','name':'','type':'bool'}],'stateMutability':'nonpayable','type':'function'},{'inputs':[{'internalType':'address','name':'newOwner','type':'address'}],'name':'transferOwnership','outputs':[],'stateMutability':'nonpayable','type':'function'},{'inputs':[{'internalType':'address','name':'','type':'address'}],'name':'userRewardPerTokenPaid','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'view','type':'function'},{'inputs':[],'name':'withdraw','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'nonpayable','type':'function'},{'inputs':[{'internalType':'bool','name':'_claim','type':'bool'}],'name':'withdraw','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'nonpayable','type':'function'},{'inputs':[{'internalType':'uint256','name':'_assets','type':'uint256'},{'internalType':'address','name':'_receiver','type':'address'},{'internalType':'address','name':'_owner','type':'address'}],'name':'withdraw','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'nonpayable','type':'function'},{'inputs':[{'internalType':'uint256','name':'_assets','type':'uint256'},{'internalType':'address','name':'_receiver','type':'address'},{'internalType':'address','name':'_owner','type':'address'},{'internalType':'bool','name':'_claim','type':'bool'}],'name':'withdraw','outputs':[{'internalType':'uint256','name':'','type':'uint256'}],'stateMutability':'nonpayable','type':'function'}] as const; diff --git a/apps/veyfi/utils/abi/veYFIOptions.abi.ts b/apps/veyfi/utils/abi/veYFIOptions.abi.ts index bccf45240..d814c3887 100644 --- a/apps/veyfi/utils/abi/veYFIOptions.abi.ts +++ b/apps/veyfi/utils/abi/veYFIOptions.abi.ts @@ -1,260 +1 @@ -export const VEYFI_OPTIONS_ABI = [ - { - 'anonymous': false, - 'inputs': [ - { - 'indexed': false, - 'name': 'yfi_recovered', - 'type': 'uint256' - } - ], - 'name': 'Killed', - 'type': 'event' - }, - { - 'anonymous': false, - 'inputs': [ - { - 'indexed': false, - 'name': 'token', - 'type': 'address' - }, - { - 'indexed': false, - 'name': 'amount', - 'type': 'uint256' - } - ], - 'name': 'Sweep', - 'type': 'event' - }, - { - 'anonymous': false, - 'inputs': [ - { - 'indexed': true, - 'name': 'previous_owner', - 'type': 'address' - }, - { - 'indexed': true, - 'name': 'new_owner', - 'type': 'address' - } - ], - 'name': 'OwnershipTransferStarted', - 'type': 'event' - }, - { - 'anonymous': false, - 'inputs': [ - { - 'indexed': true, - 'name': 'previous_owner', - 'type': 'address' - }, - { - 'indexed': true, - 'name': 'new_owner', - 'type': 'address' - } - ], - 'name': 'OwnershipTransferred', - 'type': 'event' - }, - { - 'anonymous': false, - 'inputs': [ - { - 'indexed': true, - 'name': 'payee', - 'type': 'address' - } - ], - 'name': 'SetPayee', - 'type': 'event' - }, - { - 'inputs': [ - { - 'name': 'yfi', - 'type': 'address' - }, - { - 'name': 'o_yfi', - 'type': 'address' - }, - { - 'name': 've_yfi', - 'type': 'address' - }, - { - 'name': 'owner', - 'type': 'address' - }, - { - 'name': 'price_feed', - 'type': 'address' - }, - { - 'name': 'curve_pool', - 'type': 'address' - } - ], - 'stateMutability': 'nonpayable', - 'type': 'constructor' - }, - { - 'inputs': [ - { - 'name': 'amount', - 'type': 'uint256' - }, - { - 'name': 'recipient', - 'type': 'address' - } - ], - 'name': 'exercise', - 'outputs': [ - { - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'payable', - 'type': 'function' - }, - { - 'inputs': [ - { - 'name': 'amount', - 'type': 'uint256' - } - ], - 'name': 'eth_required', - 'outputs': [ - { - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [], - 'name': 'get_latest_price', - 'outputs': [ - { - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [ - { - 'name': 'new_payee', - 'type': 'address' - } - ], - 'name': 'set_payee', - 'outputs': [], - 'stateMutability': 'nonpayable', - 'type': 'function' - }, - { - 'inputs': [], - 'name': 'kill', - 'outputs': [], - 'stateMutability': 'nonpayable', - 'type': 'function' - }, - { - 'inputs': [ - { - 'name': 'token', - 'type': 'address' - } - ], - 'name': 'sweep', - 'outputs': [ - { - 'name': '', - 'type': 'uint256' - } - ], - 'stateMutability': 'nonpayable', - 'type': 'function' - }, - { - 'inputs': [ - { - 'name': 'new_owner', - 'type': 'address' - } - ], - 'name': 'transfer_ownership', - 'outputs': [], - 'stateMutability': 'nonpayable', - 'type': 'function' - }, - { - 'inputs': [], - 'name': 'accept_ownership', - 'outputs': [], - 'stateMutability': 'nonpayable', - 'type': 'function' - }, - { - 'inputs': [], - 'name': 'owner', - 'outputs': [ - { - 'name': '', - 'type': 'address' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [], - 'name': 'pending_owner', - 'outputs': [ - { - 'name': '', - 'type': 'address' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [], - 'name': 'killed', - 'outputs': [ - { - 'name': '', - 'type': 'bool' - } - ], - 'stateMutability': 'view', - 'type': 'function' - }, - { - 'inputs': [], - 'name': 'payee', - 'outputs': [ - { - 'name': '', - 'type': 'address' - } - ], - 'stateMutability': 'view', - 'type': 'function' - } -] as const; +export const VEYFI_OPTIONS_ABI = [{'name':'Killed','inputs':[{'name':'yfi_recovered','type':'uint256','indexed':false}],'anonymous':false,'type':'event'},{'name':'Sweep','inputs':[{'name':'token','type':'address','indexed':true},{'name':'amount','type':'uint256','indexed':false}],'anonymous':false,'type':'event'},{'name':'PendingOwnershipTransfer','inputs':[{'name':'previous_owner','type':'address','indexed':true},{'name':'pending_owner','type':'address','indexed':true}],'anonymous':false,'type':'event'},{'name':'OwnershipTransferred','inputs':[{'name':'previous_owner','type':'address','indexed':true},{'name':'new_owner','type':'address','indexed':true}],'anonymous':false,'type':'event'},{'name':'SetPayee','inputs':[{'name':'payee','type':'address','indexed':true}],'anonymous':false,'type':'event'},{'stateMutability':'nonpayable','type':'constructor','inputs':[{'name':'yfi','type':'address'},{'name':'d_yfi','type':'address'},{'name':'ve_yfi','type':'address'},{'name':'owner','type':'address'},{'name':'price_feed','type':'address'},{'name':'curve_pool','type':'address'},{'name':'scaling_factor','type':'uint256'}],'outputs':[]},{'stateMutability':'payable','type':'function','name':'redeem','inputs':[{'name':'amount','type':'uint256'}],'outputs':[{'name':'','type':'uint256'}]},{'stateMutability':'payable','type':'function','name':'redeem','inputs':[{'name':'amount','type':'uint256'},{'name':'recipient','type':'address'}],'outputs':[{'name':'','type':'uint256'}]},{'stateMutability':'view','type':'function','name':'discount','inputs':[],'outputs':[{'name':'','type':'uint256'}]},{'stateMutability':'view','type':'function','name':'eth_required','inputs':[{'name':'amount','type':'uint256'}],'outputs':[{'name':'','type':'uint256'}]},{'stateMutability':'view','type':'function','name':'get_latest_price','inputs':[],'outputs':[{'name':'','type':'uint256'}]},{'stateMutability':'view','type':'function','name':'scaling_factor','inputs':[],'outputs':[{'name':'','type':'uint256'}]},{'stateMutability':'view','type':'function','name':'scaling_factor_ramp','inputs':[],'outputs':[{'name':'','type':'uint256'},{'name':'','type':'uint256'},{'name':'','type':'uint256'},{'name':'','type':'uint256'}]},{'stateMutability':'nonpayable','type':'function','name':'set_payee','inputs':[{'name':'new_payee','type':'address'}],'outputs':[]},{'stateMutability':'nonpayable','type':'function','name':'start_ramp','inputs':[{'name':'new','type':'uint256'}],'outputs':[]},{'stateMutability':'nonpayable','type':'function','name':'start_ramp','inputs':[{'name':'new','type':'uint256'},{'name':'duration','type':'uint256'}],'outputs':[]},{'stateMutability':'nonpayable','type':'function','name':'start_ramp','inputs':[{'name':'new','type':'uint256'},{'name':'duration','type':'uint256'},{'name':'start','type':'uint256'}],'outputs':[]},{'stateMutability':'nonpayable','type':'function','name':'stop_ramp','inputs':[],'outputs':[]},{'stateMutability':'nonpayable','type':'function','name':'kill','inputs':[],'outputs':[]},{'stateMutability':'nonpayable','type':'function','name':'sweep','inputs':[{'name':'token','type':'address'}],'outputs':[{'name':'','type':'uint256'}]},{'stateMutability':'nonpayable','type':'function','name':'transfer_ownership','inputs':[{'name':'new_owner','type':'address'}],'outputs':[]},{'stateMutability':'nonpayable','type':'function','name':'accept_ownership','inputs':[],'outputs':[]},{'stateMutability':'view','type':'function','name':'owner','inputs':[],'outputs':[{'name':'','type':'address'}]},{'stateMutability':'view','type':'function','name':'pending_owner','inputs':[],'outputs':[{'name':'','type':'address'}]},{'stateMutability':'view','type':'function','name':'killed','inputs':[],'outputs':[{'name':'','type':'bool'}]},{'stateMutability':'view','type':'function','name':'payee','inputs':[],'outputs':[{'name':'','type':'address'}]}] as const; diff --git a/apps/veyfi/utils/abi/veYFIRegistry.abi.ts b/apps/veyfi/utils/abi/veYFIRegistry.abi.ts index 42b9e70a6..028723c5a 100644 --- a/apps/veyfi/utils/abi/veYFIRegistry.abi.ts +++ b/apps/veyfi/utils/abi/veYFIRegistry.abi.ts @@ -1,4 +1,3 @@ -// TODO: update once final version deployed export const VEYFI_REGISTRY_ABI = [ { 'inputs': [ diff --git a/apps/veyfi/utils/abi/veYFIoYFI.abi.ts b/apps/veyfi/utils/abi/veYFIdYFI.abi.ts similarity index 99% rename from apps/veyfi/utils/abi/veYFIoYFI.abi.ts rename to apps/veyfi/utils/abi/veYFIdYFI.abi.ts index 0cd98ff0e..3c1209e84 100644 --- a/apps/veyfi/utils/abi/veYFIoYFI.abi.ts +++ b/apps/veyfi/utils/abi/veYFIdYFI.abi.ts @@ -1,4 +1,4 @@ -export const VEYFI_OYFI_ABI = [ +export const VEYFI_DYFI_ABI = [ { 'inputs': [], 'stateMutability': 'nonpayable', diff --git a/apps/veyfi/utils/actions/gauge.ts b/apps/veyfi/utils/actions/gauge.ts index f5d38f8f7..bfabe5048 100644 --- a/apps/veyfi/utils/actions/gauge.ts +++ b/apps/veyfi/utils/actions/gauge.ts @@ -1,12 +1,14 @@ +import {erc20ABI} from 'wagmi'; import {VEYFI_CLAIM_REWARDS_ZAP_ABI} from '@veYFI/utils/abi/veYFIClaimRewardsZap.abi'; import {VEYFI_GAUGE_ABI} from '@veYFI/utils/abi/veYFIGauge.abi'; +import {handleTx} from '@yearn-finance/web-lib/utils/wagmi/provider'; +import {assertAddress} from '@yearn-finance/web-lib/utils/wagmi/utils'; import {allowanceOf} from '@common/utils/actions'; import {assert} from '@common/utils/assert'; -import {assertAddress, assertAddresses, handleTx as handleTxWagmi} from '@common/utils/wagmiUtils'; import type {TAddress} from '@yearn-finance/web-lib/types'; +import type {TWriteTransaction} from '@yearn-finance/web-lib/utils/wagmi/provider'; import type {TTxResponse} from '@yearn-finance/web-lib/utils/web3/transaction'; -import type {TWriteTransaction} from '@common/utils/wagmiUtils'; type TApproveAndStake = TWriteTransaction & { vaultAddress: TAddress; @@ -19,20 +21,25 @@ export async function approveAndStake(props: TApproveAndStake): Promise= props.amount)) { - await handleTxWagmi(props, { - address: props.vaultAddress, - abi: ['function approve(address _spender, uint256 _value) external'], - functionName: 'approve', - args: [props.contractAddress, props.amount] - }); + if (allowance < props.amount) { + try { + await handleTx(props, { + address: props.vaultAddress, + abi: erc20ABI, + functionName: 'approve', + args: [props.contractAddress, props.amount] + }); + } catch (error) { + return ({isSuccessful: false, error: error}); + } } - return await handleTxWagmi(props, { + return await handleTx(props, { address: props.contractAddress, abi: VEYFI_GAUGE_ABI, functionName: 'deposit', @@ -47,7 +54,7 @@ export async function stake(props: TStake): Promise { assertAddress(props.contractAddress); assert(props.amount > 0n, 'Amount is 0'); - return await handleTxWagmi(props, { + return await handleTx(props, { address: props.contractAddress, abi: VEYFI_GAUGE_ABI, functionName: 'deposit', @@ -66,7 +73,7 @@ export async function unstake(props: TUnstake): Promise { const willClaim = false; - return await handleTxWagmi(props, { + return await handleTx(props, { address: props.contractAddress, abi: VEYFI_GAUGE_ABI, functionName: 'withdraw', @@ -78,7 +85,7 @@ type TClaimRewards = TWriteTransaction; export async function claimRewards(props: TClaimRewards): Promise { assertAddress(props.contractAddress); - return await handleTxWagmi(props, { + return await handleTx(props, { address: props.contractAddress, abi: VEYFI_GAUGE_ABI, functionName: 'getReward' @@ -91,10 +98,12 @@ type TClaimAllRewards = TWriteTransaction & { claimVotingEscrow?: boolean; }; export async function claimAllRewards(props: TClaimAllRewards): Promise { - assertAddress(props.contractAddress); - assertAddresses(props.gaugeAddresses); + assertAddress(props.contractAddress, 'contractAddress'); + for (const addr of props.gaugeAddresses) { + assertAddress(addr); + } - return await handleTxWagmi(props, { + return await handleTx(props, { address: props.contractAddress, abi: VEYFI_CLAIM_REWARDS_ZAP_ABI, functionName: 'claim', diff --git a/apps/veyfi/utils/actions/option.ts b/apps/veyfi/utils/actions/option.ts index 0ef1e2671..aab233240 100644 --- a/apps/veyfi/utils/actions/option.ts +++ b/apps/veyfi/utils/actions/option.ts @@ -1,10 +1,11 @@ import {VEYFI_OPTIONS_ABI} from '@veYFI/utils/abi/veYFIOptions.abi'; +import {handleTx} from '@yearn-finance/web-lib/utils/wagmi/provider'; +import {assertAddress} from '@yearn-finance/web-lib/utils/wagmi/utils'; import {assert} from '@common/utils/assert'; -import {assertAddress, handleTx as handleTxWagmi} from '@common/utils/wagmiUtils'; import type {TAddress} from '@yearn-finance/web-lib/types'; +import type {TWriteTransaction} from '@yearn-finance/web-lib/utils/wagmi/provider'; import type {TTxResponse} from '@yearn-finance/web-lib/utils/web3/transaction'; -import type {TWriteTransaction} from '@common/utils/wagmiUtils'; type TRedeem = TWriteTransaction & { accountAddress: TAddress; @@ -17,10 +18,10 @@ export async function redeem(props: TRedeem): Promise { assert(props.amount > 0n, 'amount is zero'); assert(props.ethRequired > 0n, 'ethRequired is zero'); - return await handleTxWagmi(props, { + return await handleTx(props, { address: props.contractAddress, abi: VEYFI_OPTIONS_ABI, - functionName: 'exercise', + functionName: 'redeem', value: props.ethRequired, args: [props.amount, props.accountAddress] }); diff --git a/apps/veyfi/utils/actions/votingEscrow.ts b/apps/veyfi/utils/actions/votingEscrow.ts index 7f4f80a83..78e960f06 100644 --- a/apps/veyfi/utils/actions/votingEscrow.ts +++ b/apps/veyfi/utils/actions/votingEscrow.ts @@ -5,22 +5,22 @@ import {YEARN_SNAPSHOT_SPACE} from '@veYFI/utils/constants'; import {prepareWriteContract} from '@wagmi/core'; import {MAX_UINT_256} from '@yearn-finance/web-lib/utils/constants'; import {toBigInt} from '@yearn-finance/web-lib/utils/format.bigNumber'; +import {handleTx, type TWriteTransaction} from '@yearn-finance/web-lib/utils/wagmi/provider'; +import {assertAddress} from '@yearn-finance/web-lib/utils/wagmi/utils'; import {assert} from '@common/utils/assert'; -import {assertAddresses, handleTx as handleTxWagmi} from '@common/utils/wagmiUtils'; import type {TAddress} from '@yearn-finance/web-lib/types'; import type {TSeconds} from '@yearn-finance/web-lib/utils/time'; import type {TTxResponse} from '@yearn-finance/web-lib/utils/web3/transaction'; -import type {TWriteTransaction} from '@common/utils/wagmiUtils'; type TApproveLock = TWriteTransaction & {votingEscrowAddress: TAddress; amount: bigint;}; export async function approveLock(props: TApproveLock): Promise { const {votingEscrowAddress, amount = MAX_UINT_256, contractAddress} = props; - - assertAddresses([votingEscrowAddress, contractAddress]); + assertAddress(votingEscrowAddress, 'votingEscrowAddress'); + assertAddress(contractAddress, 'contractAddress'); assert(amount > 0n, 'Amount is 0'); - return await handleTxWagmi(props, { + return await handleTx(props, { address: contractAddress, abi: ['function approve(address _spender, uint256 _value) external'], functionName: 'approve', @@ -30,11 +30,13 @@ export async function approveLock(props: TApproveLock): Promise { type TLock = TWriteTransaction & {votingEscrowAddress: TAddress; accountAddress: TAddress; amount: bigint; time: TSeconds}; export async function lock(props: TLock): Promise { - assertAddresses([props.votingEscrowAddress, props.accountAddress, props.contractAddress]); + assertAddress(props.votingEscrowAddress, 'votingEscrowAddress'); + assertAddress(props.accountAddress, 'accountAddress'); + assertAddress(props.contractAddress, 'contractAddress'); assert(props.amount > 0n, 'Amount is 0'); assert(props.time > 0, 'Time is 0'); - return await handleTxWagmi(props, { + return await handleTx(props, { address: props.contractAddress, abi: VEYFI_ABI, functionName: 'modify_lock', @@ -44,10 +46,12 @@ export async function lock(props: TLock): Promise { type TIncreaseLockAmount = TWriteTransaction & {votingEscrowAddress: TAddress; accountAddress: TAddress; amount: bigint}; export async function increaseLockAmount(props: TIncreaseLockAmount): Promise { - assertAddresses([props.votingEscrowAddress, props.accountAddress, props.contractAddress]); + assertAddress(props.votingEscrowAddress, 'votingEscrowAddress'); + assertAddress(props.accountAddress, 'accountAddress'); + assertAddress(props.contractAddress, 'contractAddress'); assert(props.amount > 0n, 'Amount is 0'); - return await handleTxWagmi(props, { + return await handleTx(props, { address: props.contractAddress, abi: VEYFI_ABI, functionName: 'modify_lock', @@ -57,10 +61,12 @@ export async function increaseLockAmount(props: TIncreaseLockAmount): Promise { - assertAddresses([props.votingEscrowAddress, props.accountAddress, props.contractAddress]); + assertAddress(props.votingEscrowAddress, 'votingEscrowAddress'); + assertAddress(props.accountAddress, 'accountAddress'); + assertAddress(props.contractAddress, 'contractAddress'); assert(props.time > 0, 'Time is 0'); - return await handleTxWagmi(props, { + return await handleTx(props, { address: props.contractAddress, abi: VEYFI_ABI, functionName: 'modify_lock', @@ -70,7 +76,8 @@ export async function extendLockTime(props: TExtendLockTime): Promise { - assertAddresses([props.votingEscrowAddress, props.contractAddress]); + assertAddress(props.votingEscrowAddress, 'votingEscrowAddress'); + assertAddress(props.contractAddress, 'contractAddress'); const {result} = await prepareWriteContract({ address: props.votingEscrowAddress, @@ -82,7 +89,7 @@ export async function withdrawUnlocked(props: TWithdrawUnlocked): Promise { - assertAddresses([props.votingEscrowAddress, props.contractAddress]); + assertAddress(props.votingEscrowAddress, 'votingEscrowAddress'); + assertAddress(props.contractAddress, 'contractAddress'); - return await handleTxWagmi(props, { + return await handleTx(props, { address: props.contractAddress, abi: VEYFI_ABI, functionName: 'withdraw' @@ -102,9 +110,10 @@ export async function withdrawLocked(props: TWithdrawLocked): Promise { - assertAddresses([props.delegateAddress, props.contractAddress]); + assertAddress(props.delegateAddress, 'delegateAddress'); + assertAddress(props.contractAddress, 'contractAddress'); - return await handleTxWagmi(props, { + return await handleTx(props, { address: props.contractAddress, abi: SNAPSHOT_DELEGATE_REGISTRY_ABI, functionName: 'setDelegate', diff --git a/apps/veyfi/utils/constants.ts b/apps/veyfi/utils/constants.ts index e5e2a1e0d..42aee7192 100644 --- a/apps/veyfi/utils/constants.ts +++ b/apps/veyfi/utils/constants.ts @@ -1,17 +1,24 @@ - import {toAddress} from '@yearn-finance/web-lib/utils/address'; import type {TAddress} from '@yearn-finance/web-lib/types'; import type {TWeeks} from '@yearn-finance/web-lib/utils/time'; +export const VEYFI_CHAIN_ID = 1; + export const VEYFI_REGISTRY_ADDRESS: TAddress = toAddress(''); // TODO: update once deployed -export const VEYFI_CLAIM_REWARDS_ZAP_ADDRESS: TAddress = toAddress(''); // TODO: update once deployed -export const VEYFI_OPTIONS_ADDRESS = toAddress(''); // TODO: update once deployed -export const VEYFI_OYFI_ADDRESS = toAddress(''); // TODO: update once deployed +export const VEYFI_OPTIONS_ADDRESS = toAddress('0x2fBa208E1B2106d40DaA472Cb7AE0c6C7EFc0224'); +export const VEYFI_DYFI_ADDRESS = toAddress('0x41252E8691e964f7DE35156B68493bAb6797a275'); +export const SNAPSHOT_DELEGATE_REGISTRY_ADDRESS = toAddress('0x469788fE6E9E9681C6ebF3bF78e7Fd26Fc015446'); +export const YEARN_SNAPSHOT_SPACE = 'veyfi.eth'; + +export const SECONDS_PER_YEAR = 31556952; export const MAX_LOCK_TIME: TWeeks = 208; export const MIN_LOCK_TIME: TWeeks = 1; export const MIN_LOCK_AMOUNT: TWeeks = 1; -export const YEARN_SNAPSHOT_SPACE = 'veyfi.eth'; -export const SNAPSHOT_DELEGATE_REGISTRY_ADDRESS = toAddress('0x469788fE6E9E9681C6ebF3bF78e7Fd26Fc015446'); +export const VE_YFI_GAUGES = [ + toAddress('0x7Fd8Af959B54A677a1D8F92265Bd0714274C56a3'), // YFI/ETH yVault + toAddress('0x107717C98C8125A94D3d2Cc82b86a1b705f3A27C'), // yCRV/CRV yVault + toAddress('0x81d93531720d86f0491DeE7D03f30b3b5aC24e59') // yETH/ETH yVault +]; diff --git a/apps/veyfi/utils/validations.ts b/apps/veyfi/utils/validations.ts index d68f3fc3f..633699670 100644 --- a/apps/veyfi/utils/validations.ts +++ b/apps/veyfi/utils/validations.ts @@ -26,7 +26,6 @@ export function validateAllowance(props: TValidateAllowanceProps): TValidationRe } // TODO: return valid when is native token - const allowance = allowances[allowanceKey(chainID, tokenAddress, spenderAddress, ownerAddress)]; const isApproved = allowance >= amount; @@ -73,19 +72,6 @@ export type TValidateNetworkProps = { walletNetwork?: number; } -export function validateNetwork(props: TValidateNetworkProps): TValidationResponse { - const {supportedNetwork, walletNetwork} = props; - - if (!walletNetwork) { - return {isValid: false, error: 'Wallet Not Connected'}; - } - if (supportedNetwork !== walletNetwork) { - return {isValid: false, error: 'Incorrect Network Selected'}; - } - - return {isValid: true}; -} - export type TValidateAddressProps = { address?: string; } diff --git a/apps/ybal/components/CardTransactorWrapper.tsx b/apps/ybal/components/CardTransactorWrapper.tsx index 80be5a7b6..c4fce8c97 100755 --- a/apps/ybal/components/CardTransactorWrapper.tsx +++ b/apps/ybal/components/CardTransactorWrapper.tsx @@ -14,6 +14,7 @@ import {useWallet} from '@common/contexts/useWallet'; import {useYearn} from '@common/contexts/useYearn'; import {getVaultAPY} from '@common/utils'; import {approveERC20, deposit} from '@common/utils/actions'; +import {YBAL_CHAIN_ID} from '@yBal/constants'; import {ZAP_OPTIONS_FROM, ZAP_OPTIONS_TO} from '@yBal/constants/tokens'; import {useYBal} from '@yBal/contexts/useYBal'; import {simulateZapForMinOut, zapBal} from '@yBal/utils/actions'; @@ -113,6 +114,7 @@ export function CardTransactorContextApp({ ): Promise<{shouldMint: boolean; minOut: bigint;}> => { return await simulateZapForMinOut({ connector: provider, + chainID: YBAL_CHAIN_ID, contractAddress: ZAP_YEARN_YBAL_ADDRESS, inputToken: _inputToken, outputToken: _outputToken, @@ -136,6 +138,7 @@ export function CardTransactorContextApp({ const onApprove = useCallback(async (): Promise => { const result = await approveERC20({ connector: provider, + chainID: YBAL_CHAIN_ID, contractAddress: selectedOptionFrom.value, spenderAddress: selectedOptionFrom.zapVia, amount: MAX_UINT_256, @@ -174,6 +177,7 @@ export function CardTransactorContextApp({ // Direct deposit to vault from Bal/yBal balancer LP Token to lp-yBal Vault const result = await deposit({ connector: provider, + chainID: YBAL_CHAIN_ID, contractAddress: selectedOptionTo.value, amount: amount.raw, //amount_in statusHandler: set_txStatusZap @@ -187,6 +191,7 @@ export function CardTransactorContextApp({ // Zap in const result = await zapBal({ connector: provider, + chainID: YBAL_CHAIN_ID, contractAddress: ZAP_YEARN_YBAL_ADDRESS, inputToken: selectedOptionFrom.value, //_input_token outputToken: selectedOptionTo.value, //_output_token diff --git a/apps/ybal/constants/index.tsx b/apps/ybal/constants/index.tsx new file mode 100644 index 000000000..3ad49acfc --- /dev/null +++ b/apps/ybal/constants/index.tsx @@ -0,0 +1 @@ +export const YBAL_CHAIN_ID = 1; diff --git a/apps/ybal/utils/actions.test.ts b/apps/ybal/utils/actions.test.ts index 07629fbc0..17741dab7 100644 --- a/apps/ybal/utils/actions.test.ts +++ b/apps/ybal/utils/actions.test.ts @@ -1,18 +1,6 @@ /* eslint-disable @typescript-eslint/explicit-function-return-type */ -import {createWalletClient, http, parseEther} from 'viem'; import {describe, expect, it, vi} from 'vitest'; -import {MockConnector} from '@wagmi/core/connectors/mock'; -import {toAddress} from '@yearn-finance/web-lib/utils/address'; -import {BAL_TOKEN_ADDRESS, YBAL_TOKEN_ADDRESS, ZAP_YEARN_YBAL_ADDRESS} from '@yearn-finance/web-lib/utils/constants'; -import {toBigInt} from '@yearn-finance/web-lib/utils/format.bigNumber'; -import {simulateZapForMinOut, zapBal} from '@yBal/utils/actions'; - -import type {TAddress} from '@yearn-finance/web-lib/types'; - -const LOCAL_ZAP_YEARN_YBAL_ADDRESS = toAddress('0x43cA9bAe8dF108684E5EAaA720C25e1b32B0A075'); - -const mockZap = vi.fn(); -const mockCallStaticZap = vi.fn(); +import {zapBal} from '@yBal/utils/actions'; // const mockMintBuffer = vi.fn().mockReturnValue(toBigInt('5')); @@ -51,112 +39,4 @@ describe('actions', () => { }); return; - //TODO: update tests - describe('simulateZapForMinOut', () => { - describe('when buffered amount is greater than expected amount mint', () => { - it('should use the bufferedAmount for min out', async () => { - const EXPECTED_AMOUNT_MINT = parseEther('100'); // 100e18 - const EXPECTED_AMOUNT_SWAP = parseEther('200'); // 200e18 - - mockCallStaticZap - .mockReturnValueOnce(EXPECTED_AMOUNT_MINT) - .mockReturnValueOnce(EXPECTED_AMOUNT_SWAP); - - const inputToken = BAL_TOKEN_ADDRESS as TAddress; - const outputToken = YBAL_TOKEN_ADDRESS as TAddress; - const amountIn = parseEther('500'); // 500e18 - const connector = new MockConnector({ - options: { - walletClient: createWalletClient({ - transport: http('http://localhost:8545') - }) - } - }); - const {shouldMint, minOut} = await simulateZapForMinOut({ - connector: connector, - contractAddress: ZAP_YEARN_YBAL_ADDRESS, - inputToken: inputToken, - outputToken: outputToken, - amountIn: amountIn - }); - - expect(mockCallStaticZap).toHaveBeenNthCalledWith(1, BAL_TOKEN_ADDRESS, YBAL_TOKEN_ADDRESS, amountIn, true); - expect(mockCallStaticZap).toHaveBeenNthCalledWith(2, BAL_TOKEN_ADDRESS, YBAL_TOKEN_ADDRESS, amountIn, false); - expect(shouldMint).toBe(false); - expect(minOut).toEqual(toBigInt('197752499999999997726')); - }); - }); - - describe('when buffered amount is less or equal to expected amount mint', () => { - it('should use the expected amount mint for min out', async () => { - const EXPECTED_AMOUNT_MINT = parseEther('42'); // 42e18 - const EXPECTED_AMOUNT_SWAP = parseEther('42'); // 42e18 - - mockCallStaticZap - .mockReturnValueOnce(EXPECTED_AMOUNT_MINT) - .mockReturnValueOnce(EXPECTED_AMOUNT_SWAP); - - const inputToken = BAL_TOKEN_ADDRESS as TAddress; - const outputToken = YBAL_TOKEN_ADDRESS as TAddress; - const amountIn = parseEther('400'); // 400e18 - const expectedIn = parseEther('500'); - const connector = new MockConnector({ - options: { - walletClient: createWalletClient({ - transport: http('http://localhost:8545') - }) - } - }); - const {shouldMint, minOut} = await simulateZapForMinOut({ - connector: connector, - contractAddress: ZAP_YEARN_YBAL_ADDRESS, - inputToken: inputToken, - outputToken: outputToken, - amountIn: amountIn - }); - - expect(mockCallStaticZap).toHaveBeenNthCalledWith(1, BAL_TOKEN_ADDRESS, YBAL_TOKEN_ADDRESS, expectedIn, true); - expect(mockCallStaticZap).toHaveBeenNthCalledWith(2, BAL_TOKEN_ADDRESS, YBAL_TOKEN_ADDRESS, expectedIn, false); - expect(shouldMint).toBe(true); - expect(minOut).toEqual(toBigInt('41579999999999998295')); - }); - }); - }); - - describe('zap', () => { - it('should call zap with the correct arguments', async () => { - const inputToken = BAL_TOKEN_ADDRESS; - const outputToken = YBAL_TOKEN_ADDRESS; - const amountIn = parseEther('100'); // 100e18; - const minOut = parseEther('100'); // 100e18; - const slippage = 2; - const connector = new MockConnector({ - options: { - walletClient: createWalletClient({ - transport: http('http://localhost:8545') - }) - } - }); - - await zapBal({ - connector: connector, - contractAddress: LOCAL_ZAP_YEARN_YBAL_ADDRESS, - inputToken: inputToken, - outputToken: outputToken, - amount: amountIn, - minAmount: minOut, - slippage: toBigInt(slippage), - shouldMint: true - }); - - expect(mockZap).toHaveBeenCalledWith( - BAL_TOKEN_ADDRESS, - YBAL_TOKEN_ADDRESS, - toBigInt('100000000000000000000'), - toBigInt('98000000000000000000'), - (await connector.getAccount()), - true - ); - }); - }); }); diff --git a/apps/ybribe/components/bribe/GaugeBribeModal.tsx b/apps/ybribe/components/bribe/GaugeBribeModal.tsx index b166cd661..51a76541c 100755 --- a/apps/ybribe/components/bribe/GaugeBribeModal.tsx +++ b/apps/ybribe/components/bribe/GaugeBribeModal.tsx @@ -13,6 +13,7 @@ import {isZero} from '@yearn-finance/web-lib/utils/isZero'; import {defaultTxStatus} from '@yearn-finance/web-lib/utils/web3/transaction'; import {useYearn} from '@common/contexts/useYearn'; import {approveERC20} from '@common/utils/actions'; +import {YBRIBE_CHAIN_ID} from '@yBribe/constants'; import {useBribes} from '@yBribe/contexts/useBribes'; import {addReward} from '@yBribe/utils/actions'; @@ -74,6 +75,7 @@ export function GaugeBribeModal({currentGauge, onClose}: {currentGauge: TCurveGa const onApprove = useCallback(async (): Promise => { const result = await approveERC20({ connector: provider, + chainID: YBRIBE_CHAIN_ID, contractAddress: tokenAddress, spenderAddress: CURVE_BRIBE_V3_ADDRESS, amount: amount.raw, @@ -87,6 +89,7 @@ export function GaugeBribeModal({currentGauge, onClose}: {currentGauge: TCurveGa const onAddReward = useCallback(async (): Promise => { const result = await addReward({ connector: provider, + chainID: YBRIBE_CHAIN_ID, contractAddress: CURVE_BRIBE_V3_ADDRESS, gaugeAddress: currentGauge.gauge, tokenAddress: tokenAddress, diff --git a/apps/ybribe/components/claim/GaugeListRow.tsx b/apps/ybribe/components/claim/GaugeListRow.tsx index c330514c8..1c62dd9b4 100755 --- a/apps/ybribe/components/claim/GaugeListRow.tsx +++ b/apps/ybribe/components/claim/GaugeListRow.tsx @@ -10,6 +10,7 @@ import {isZero} from '@yearn-finance/web-lib/utils/isZero'; import {defaultTxStatus} from '@yearn-finance/web-lib/utils/web3/transaction'; import {ImageWithFallback} from '@common/components/ImageWithFallback'; import {useYearn} from '@common/contexts/useYearn'; +import {YBRIBE_CHAIN_ID} from '@yBribe/constants'; import {useBribes} from '@yBribe/contexts/useBribes'; import {claimRewardV3} from '@yBribe/utils/actions'; @@ -101,6 +102,7 @@ export function GaugeListRow({currentGauge, category}: {currentGauge: TCurveGaug const onClaimReward = useCallback(async (token: TAddress): Promise => { const result = await claimRewardV3({ connector: provider, + chainID: YBRIBE_CHAIN_ID, contractAddress: CURVE_BRIBE_V3_ADDRESS, gaugeAddress: currentGauge.gauge, tokenAddress: token, diff --git a/apps/ybribe/constants/index.tsx b/apps/ybribe/constants/index.tsx new file mode 100644 index 000000000..0adec3f82 --- /dev/null +++ b/apps/ybribe/constants/index.tsx @@ -0,0 +1 @@ +export const YBRIBE_CHAIN_ID = 1; diff --git a/apps/ycrv/components/CardTransactorWrapper.tsx b/apps/ycrv/components/CardTransactorWrapper.tsx index 584277819..0cadded1d 100755 --- a/apps/ycrv/components/CardTransactorWrapper.tsx +++ b/apps/ycrv/components/CardTransactorWrapper.tsx @@ -17,6 +17,7 @@ import {useWallet} from '@common/contexts/useWallet'; import {useYearn} from '@common/contexts/useYearn'; import {getAmountWithSlippage, getVaultAPY} from '@common/utils'; import {approveERC20, deposit} from '@common/utils/actions'; +import {YCRV_CHAIN_ID} from '@yCRV/constants'; import {ZAP_OPTIONS_FROM, ZAP_OPTIONS_TO} from '@yCRV/constants/tokens'; import {useYCRV} from '@yCRV/contexts/useYCRV'; import {ZAP_CRV_ABI} from '@yCRV/utils/abi/zapCRV.abi'; @@ -164,6 +165,7 @@ export function CardTransactorContextApp({ const onApprove = useCallback(async (): Promise => { const result = await approveERC20({ connector: provider, + chainID: YCRV_CHAIN_ID, contractAddress: selectedOptionFrom.value, spenderAddress: selectedOptionFrom.zapVia, amount: MAX_UINT_256, @@ -185,6 +187,7 @@ export function CardTransactorContextApp({ const onIncreaseCRVAllowance = useCallback(async (): Promise => { const resultReset = await approveERC20({ connector: provider, + chainID: YCRV_CHAIN_ID, contractAddress: selectedOptionFrom.value, spenderAddress: selectedOptionFrom.zapVia, amount: 0n, @@ -193,6 +196,7 @@ export function CardTransactorContextApp({ if (resultReset.isSuccessful) { const result = await approveERC20({ connector: provider, + chainID: YCRV_CHAIN_ID, contractAddress: selectedOptionFrom.value, spenderAddress: selectedOptionFrom.zapVia, amount: MAX_UINT_256, @@ -233,6 +237,7 @@ export function CardTransactorContextApp({ // This is valid for v1 and v2 const result = await deposit({ connector: provider, + chainID: YCRV_CHAIN_ID, contractAddress: selectedOptionTo.value, amount: amount.raw, statusHandler: set_txStatusZap @@ -246,6 +251,7 @@ export function CardTransactorContextApp({ // Zap in const result = await zapCRV({ connector: provider, + chainID: YCRV_CHAIN_ID, contractAddress: ZAP_YEARN_VE_CRV_ADDRESS, inputToken: selectedOptionFrom.value, //_input_token outputToken: selectedOptionTo.value, //_output_token diff --git a/apps/ycrv/constants/index.tsx b/apps/ycrv/constants/index.tsx new file mode 100644 index 000000000..af608764c --- /dev/null +++ b/apps/ycrv/constants/index.tsx @@ -0,0 +1 @@ +export const YCRV_CHAIN_ID = 1; diff --git a/package.json b/package.json index d31d03971..cc40f3bd6 100644 --- a/package.json +++ b/package.json @@ -16,10 +16,10 @@ "@cowprotocol/cow-sdk": "2.1.0", "@headlessui/react": "^1.7.17", "@popperjs/core": "^2.11.8", - "@rainbow-me/rainbowkit": "^1.0.10", + "@rainbow-me/rainbowkit": "^1.1.2", "@wagmi/chains": "^1.8.0", - "@wagmi/core": "^1.4.1", - "@yearn-finance/web-lib": "3.0.37", + "@wagmi/core": "^1.4.3", + "@yearn-finance/web-lib": "^3.0.57", "axios": "^1.5.0", "dayjs": "^1.11.9", "eslint-plugin-react-hooks": "^4.6.0", @@ -42,9 +42,10 @@ "recharts": "^2.8.0", "swr": "2.1.5", "telegraf": "^4.13.1", - "viem": "^1.10.12", + "use-query-params": "^2.2.1", + "viem": "^1.16.5", "vite": "^4.2.0", - "wagmi": "^1.4.1", + "wagmi": "^1.4.3", "wido": "^0.4.1", "zod": "^3.22.2" }, diff --git a/pages/_app.tsx b/pages/_app.tsx index 812c82423..2512ed6c8 100755 --- a/pages/_app.tsx +++ b/pages/_app.tsx @@ -38,6 +38,10 @@ const aeonik = localFont({ path: '../public/fonts/Aeonik-Bold.woff2', weight: '700', style: 'normal' + }, { + path: '../public/fonts/Aeonik-Black.ttf', + weight: '900', + style: 'normal' } ] }); diff --git a/pages/vaults/factory.tsx b/pages/vaults/factory.tsx index 10ad9944b..bc6823f77 100644 --- a/pages/vaults/factory.tsx +++ b/pages/vaults/factory.tsx @@ -157,6 +157,7 @@ function Factory(): ReactElement { try { return await gasOfCreateNewVaultsAndStrategies({ connector: provider, + chainID: 1, contractAddress: VAULT_FACTORY_ADDRESS, gaugeAddress: selectedOption.value.gaugeAddress }); @@ -181,6 +182,7 @@ function Factory(): ReactElement { const onCreateNewVault = useCallback(async (): Promise => { const result = await createNewVaultsAndStrategies({ connector: provider, + chainID: 1, contractAddress: VAULT_FACTORY_ADDRESS, gaugeAddress: selectedOption.value.gaugeAddress, statusHandler: set_txStatus diff --git a/pages/veyfi/index.tsx b/pages/veyfi/index.tsx index 642f488d5..a40bbc2ef 100755 --- a/pages/veyfi/index.tsx +++ b/pages/veyfi/index.tsx @@ -1,10 +1,7 @@ -import {ClaimTab} from '@veYFI/components/ClaimTab'; -import {GaugesTab} from '@veYFI/components/GaugesTab'; -import {LockTab} from '@veYFI/components/LockTab'; -import {ManageLockTab} from '@veYFI/components/ManageLockTab'; import {RedeemTab} from '@veYFI/components/RedeemTab'; import {RewardsTab} from '@veYFI/components/RewardsTab'; -import {VoteTab} from '@veYFI/components/VoteTab'; +import {TabManageGauges} from '@veYFI/components/TabManageGauges'; +import {TabManageVeYFI} from '@veYFI/components/TabManageVeYFI'; import {useVotingEscrow} from '@veYFI/contexts/useVotingEscrow'; import {Wrapper} from '@veYFI/Wrapper'; import {formatToNormalizedValue, toBigInt} from '@yearn-finance/web-lib/utils/format.bigNumber'; @@ -12,7 +9,6 @@ import {formatAmount} from '@yearn-finance/web-lib/utils/format.number'; import {PageProgressBar} from '@common/components/PageProgressBar'; import {SummaryData} from '@common/components/SummaryData'; import {Tabs} from '@common/components/Tabs'; -import {useFeatureFlag} from '@common/hooks/useFeatureFlag'; import {formatDateShort} from '@common/utils'; import type {NextRouter} from 'next/router'; @@ -20,21 +16,15 @@ import type {ReactElement} from 'react'; function Index(): ReactElement { const {votingEscrow, positions, isLoading} = useVotingEscrow(); - const [isGaugeVotingFeatureEnabled] = useFeatureFlag('gauge-voting'); const totalLockedYFI = formatToNormalizedValue(toBigInt(votingEscrow?.supply), 18); const yourLockedYFI = formatToNormalizedValue(toBigInt(positions?.deposit?.underlyingBalance), 18); const tabs = [ - {id: 'lock', label: 'Lock YFI', content: }, - {id: 'manage', label: 'Manage lock', content: }, - {id: 'claim', label: 'Claim', content: }, - ...isGaugeVotingFeatureEnabled ? [ - {id: 'gauges', label: 'Stake / Unstake', content: }, - {id: 'rewards', label: 'Rewards', content: }, - {id: 'redeem', label: 'Redeem oYFI', content: }, - {id: 'vote', label: 'Vote for Gauge', content: } - ] : [] + {id: 'gauges', label: 'Manage Gauges', content: }, + {id: 'manage', label: 'Manage veYFI', content: }, + {id: 'rewards', label: 'Claim Rewards', content: }, + {id: 'redeem', label: 'Redeem dYFI', content: } ].filter(Boolean); return ( diff --git a/public/fonts/Aeonik-Black.ttf b/public/fonts/Aeonik-Black.ttf new file mode 100644 index 000000000..b4914cb88 Binary files /dev/null and b/public/fonts/Aeonik-Black.ttf differ diff --git a/tailwind.config.js b/tailwind.config.js index e3c5a845b..0b00a6dbf 100755 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -40,7 +40,9 @@ module.exports = { }, gridTemplateColumns: { '13': 'repeat(13, minmax(0, 1fr))', - '14': 'repeat(14, minmax(0, 1fr))' + '14': 'repeat(14, minmax(0, 1fr))', + '20': 'repeat(20, minmax(0, 1fr))', + '30': 'repeat(30, minmax(0, 1fr))' }, fontSize: { 'xxs': ['10px', '16px'], diff --git a/yarn.lock b/yarn.lock index cb1b1047b..d616de020 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7,10 +7,10 @@ resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== -"@adraffy/ens-normalize@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.9.0.tgz#223572538f6bea336750039bb43a4016dcc8182d" - integrity sha512-iowxq3U30sghZotgl4s/oJRci6WPBfNO5YYgk2cIOMCHr3LeGPcsZjCEr+33Q4N+oV3OABDAtA+pyvWjbvBifQ== +"@account-abstraction/contracts@^0.6.0": + version "0.6.0" + resolved "https://registry.yarnpkg.com/@account-abstraction/contracts/-/contracts-0.6.0.tgz#7188a01839999226e6b2796328af338329543b76" + integrity sha512-8ooRJuR7XzohMDM4MV34I12Ci2bmxfE9+cixakRL7lA4BAwJKQ3ahvd8FbJa9kiwkUPCUNtj+/zxDQWYYalLMQ== "@adraffy/ens-normalize@1.9.4": version "1.9.4" @@ -39,7 +39,7 @@ jsonpointer "^5.0.0" leven "^3.1.0" -"@babel/code-frame@^7.10.4", "@babel/code-frame@^7.22.10", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.22.5": +"@babel/code-frame@^7.10.4", "@babel/code-frame@^7.22.13": version "7.22.13" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== @@ -47,90 +47,38 @@ "@babel/highlight" "^7.22.13" chalk "^2.4.2" -"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" - integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9", "@babel/compat-data@^7.23.2": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.2.tgz#6a12ced93455827037bfb5ed8492820d60fc32cc" + integrity sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ== -"@babel/core@^7.11.1": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.9.tgz#bd96492c68822198f33e8a256061da3cf391f58f" - integrity sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.9" - "@babel/helper-compilation-targets" "^7.22.9" - "@babel/helper-module-transforms" "^7.22.9" - "@babel/helpers" "^7.22.6" - "@babel/parser" "^7.22.7" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.8" - "@babel/types" "^7.22.5" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.2" - semver "^6.3.1" - -"@babel/core@^7.22.17": - version "7.22.17" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.17.tgz#2f9b0b395985967203514b24ee50f9fd0639c866" - integrity sha512-2EENLmhpwplDux5PSsZnSbnSkB3tZ6QTksgO25xwEL7pIDcNOMhF5v/s6RzwjMZzZzw9Ofc30gHv5ChCC8pifQ== +"@babel/core@^7.11.1", "@babel/core@^7.22.20", "@babel/core@^7.23.0": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.2.tgz#ed10df0d580fff67c5f3ee70fd22e2e4c90a9f94" + integrity sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ== dependencies: "@ampproject/remapping" "^2.2.0" "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.22.15" + "@babel/generator" "^7.23.0" "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-module-transforms" "^7.22.17" - "@babel/helpers" "^7.22.15" - "@babel/parser" "^7.22.16" + "@babel/helper-module-transforms" "^7.23.0" + "@babel/helpers" "^7.23.2" + "@babel/parser" "^7.23.0" "@babel/template" "^7.22.15" - "@babel/traverse" "^7.22.17" - "@babel/types" "^7.22.17" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.3" - semver "^6.3.1" - -"@babel/core@^7.22.9": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.11.tgz#8033acaa2aa24c3f814edaaa057f3ce0ba559c24" - integrity sha512-lh7RJrtPdhibbxndr6/xx0w8+CVlY5FJZiaSz908Fpy+G0xkBFTvwLcKJFF4PJxVfGhVWNebikpWGnOoC71juQ== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.10" - "@babel/generator" "^7.22.10" - "@babel/helper-compilation-targets" "^7.22.10" - "@babel/helper-module-transforms" "^7.22.9" - "@babel/helpers" "^7.22.11" - "@babel/parser" "^7.22.11" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.11" - "@babel/types" "^7.22.11" - convert-source-map "^1.7.0" + "@babel/traverse" "^7.23.2" + "@babel/types" "^7.23.0" + convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.22.10", "@babel/generator@^7.22.9": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.10.tgz#c92254361f398e160645ac58831069707382b722" - integrity sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A== +"@babel/generator@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" + integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== dependencies: - "@babel/types" "^7.22.10" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/generator@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.15.tgz#1564189c7ec94cb8f77b5e8a90c4d200d21b2339" - integrity sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA== - dependencies: - "@babel/types" "^7.22.15" + "@babel/types" "^7.23.0" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" @@ -143,24 +91,13 @@ "@babel/types" "^7.22.5" "@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.10.tgz#573e735937e99ea75ea30788b57eb52fab7468c9" - integrity sha512-Av0qubwDQxC56DoUReVDeLfMEjYYSN1nZrTUrWkXd7hpU73ymRANkbuDm3yni9npkn+RXy9nNbEJZEzXr7xrfQ== - dependencies: - "@babel/types" "^7.22.10" - -"@babel/helper-compilation-targets@^7.22.10", "@babel/helper-compilation-targets@^7.22.9": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz#01d648bbc25dd88f513d862ee0df27b7d4e67024" - integrity sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q== + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956" + integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== dependencies: - "@babel/compat-data" "^7.22.9" - "@babel/helper-validator-option" "^7.22.5" - browserslist "^4.21.9" - lru-cache "^5.1.1" - semver "^6.3.1" + "@babel/types" "^7.22.15" -"@babel/helper-compilation-targets@^7.22.15": +"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== @@ -171,41 +108,15 @@ lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz#f9d0a7aaaa7cd32a3f31c9316a69f5a9bcacb892" - integrity sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw== - dependencies: - "@babel/compat-data" "^7.22.9" - "@babel/helper-validator-option" "^7.22.5" - browserslist "^4.21.9" - lru-cache "^5.1.1" - semver "^6.3.1" - -"@babel/helper-create-class-features-plugin@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.11.tgz#4078686740459eeb4af3494a273ac09148dfb213" - integrity sha512-y1grdYL4WzmUDBRGK0pDbIoFd7UZKoDurDzWEoNMYoj1EL+foGRQNyPWDcC+YyegN5y1DUsFFmzjGijB3nSVAQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.5" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - semver "^6.3.1" - -"@babel/helper-create-class-features-plugin@^7.22.5": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.9.tgz#c36ea240bb3348f942f08b0fbe28d6d979fab236" - integrity sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ== +"@babel/helper-create-class-features-plugin@^7.22.11", "@babel/helper-create-class-features-plugin@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz#97a61b385e57fe458496fad19f8e63b63c867de4" + integrity sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-environment-visitor" "^7.22.5" "@babel/helper-function-name" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.15" "@babel/helper-optimise-call-expression" "^7.22.5" "@babel/helper-replace-supers" "^7.22.9" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" @@ -213,18 +124,18 @@ semver "^6.3.1" "@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.5": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz#9d8e61a8d9366fe66198f57c40565663de0825f6" - integrity sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw== + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" + integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" regexpu-core "^5.3.1" semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.4.2": - version "0.4.2" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz#82c825cadeeeee7aad237618ebbe8fa1710015d7" - integrity sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw== +"@babel/helper-define-polyfill-provider@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz#a71c10f7146d809f4a256c373f462d9bba8cf6ba" + integrity sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug== dependencies: "@babel/helper-compilation-targets" "^7.22.6" "@babel/helper-plugin-utils" "^7.22.5" @@ -232,18 +143,18 @@ lodash.debounce "^4.0.8" resolve "^1.14.2" -"@babel/helper-environment-visitor@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" - integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== +"@babel/helper-environment-visitor@^7.22.20", "@babel/helper-environment-visitor@^7.22.5": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== -"@babel/helper-function-name@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" - integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ== +"@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== dependencies: - "@babel/template" "^7.22.5" - "@babel/types" "^7.22.5" + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" "@babel/helper-hoist-variables@^7.22.5": version "7.22.5" @@ -252,48 +163,30 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-member-expression-to-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz#0a7c56117cad3372fbf8d2fb4bf8f8d64a1e76b2" - integrity sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ== +"@babel/helper-member-expression-to-functions@^7.22.15": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" + integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== dependencies: - "@babel/types" "^7.22.5" + "@babel/types" "^7.23.0" -"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" - integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-module-imports@^7.22.15": +"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.22.5": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== dependencies: "@babel/types" "^7.22.15" -"@babel/helper-module-transforms@^7.22.17": - version "7.22.17" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.17.tgz#7edf129097a51ccc12443adbc6320e90eab76693" - integrity sha512-XouDDhQESrLHTpnBtCKExJdyY4gJCdrvH2Pyv8r8kovX2U8G0dRUOT45T9XlbLtuu9CLXP15eusnkprhoPV5iQ== +"@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz#3ec246457f6c842c0aee62a01f60739906f7047e" + integrity sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw== dependencies: - "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-module-imports" "^7.22.15" "@babel/helper-simple-access" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/helper-validator-identifier" "^7.22.15" - -"@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz#92dfcb1fbbb2bc62529024f72d942a8c97142129" - integrity sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ== - dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-module-imports" "^7.22.5" - "@babel/helper-simple-access" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/helper-validator-identifier" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" "@babel/helper-optimise-call-expression@^7.22.5": version "7.22.5" @@ -307,22 +200,22 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== -"@babel/helper-remap-async-to-generator@^7.22.5", "@babel/helper-remap-async-to-generator@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz#53a25b7484e722d7efb9c350c75c032d4628de82" - integrity sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ== +"@babel/helper-remap-async-to-generator@^7.22.20", "@babel/helper-remap-async-to-generator@^7.22.5": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0" + integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-wrap-function" "^7.22.9" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-wrap-function" "^7.22.20" "@babel/helper-replace-supers@^7.22.5", "@babel/helper-replace-supers@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz#cbdc27d6d8d18cd22c81ae4293765a5d9afd0779" - integrity sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg== + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" + integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-member-expression-to-functions" "^7.22.15" "@babel/helper-optimise-call-expression" "^7.22.5" "@babel/helper-simple-access@^7.22.5": @@ -351,92 +244,63 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== -"@babel/helper-validator-identifier@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.15.tgz#601fa28e4cc06786c18912dca138cec73b882044" - integrity sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ== - -"@babel/helper-validator-identifier@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" - integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== "@babel/helper-validator-option@^7.22.15": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== -"@babel/helper-validator-option@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" - integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== - -"@babel/helper-wrap-function@^7.22.9": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.10.tgz#d845e043880ed0b8c18bd194a12005cb16d2f614" - integrity sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ== +"@babel/helper-wrap-function@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz#15352b0b9bfb10fc9c76f79f6342c00e3411a569" + integrity sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw== dependencies: "@babel/helper-function-name" "^7.22.5" - "@babel/template" "^7.22.5" - "@babel/types" "^7.22.10" - -"@babel/helpers@^7.22.11", "@babel/helpers@^7.22.6": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.11.tgz#b02f5d5f2d7abc21ab59eeed80de410ba70b056a" - integrity sha512-vyOXC8PBWaGc5h7GMsNx68OH33cypkEDJCHvYVVgVbbxJDROYVtexSk0gK5iCF1xNjRIN2s8ai7hwkWDq5szWg== - dependencies: - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.11" - "@babel/types" "^7.22.11" + "@babel/template" "^7.22.15" + "@babel/types" "^7.22.19" -"@babel/helpers@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.15.tgz#f09c3df31e86e3ea0b7ff7556d85cdebd47ea6f1" - integrity sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw== +"@babel/helpers@^7.23.2": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.2.tgz#2832549a6e37d484286e15ba36a5330483cac767" + integrity sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ== dependencies: "@babel/template" "^7.22.15" - "@babel/traverse" "^7.22.15" - "@babel/types" "^7.22.15" + "@babel/traverse" "^7.23.2" + "@babel/types" "^7.23.0" "@babel/highlight@^7.22.13": - version "7.22.13" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.13.tgz#9cda839e5d3be9ca9e8c26b6dd69e7548f0cbf16" - integrity sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ== + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" + integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== dependencies: - "@babel/helper-validator-identifier" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.22.11", "@babel/parser@^7.22.7": - version "7.22.14" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.14.tgz#c7de58e8de106e88efca42ce17f0033209dfd245" - integrity sha512-1KucTHgOvaw/LzCVrEOAyXkr9rQlp0A1HiHRYnSUE9dmb8PvPW7o5sscg+5169r54n3vGlbx6GevTE/Iw/P3AQ== +"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" + integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== -"@babel/parser@^7.22.15", "@babel/parser@^7.22.16": - version "7.22.16" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.16.tgz#180aead7f247305cce6551bea2720934e2fa2c95" - integrity sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA== - -"@babel/parser@^7.22.5": - version "7.22.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae" - integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q== - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz#87245a21cd69a73b0b81bcda98d443d6df08f05e" - integrity sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ== +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz#02dc8a03f613ed5fdc29fb2f728397c78146c962" + integrity sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz#fef09f9499b1f1c930da8a0c419db42167d792ca" - integrity sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz#2aeb91d337d4e1a1e7ce85b76a37f5301781200f" + integrity sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/plugin-transform-optional-chaining" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.22.15" "@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": version "7.21.0-placeholder-for-preset-env.2" @@ -577,14 +441,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-async-generator-functions@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.11.tgz#dbe3b1ff5a52e2e5edc4b19a60d325a675ed2649" - integrity sha512-0pAlmeRJn6wU84zzZsEOx1JV1Jf8fqO9ok7wofIJwUnplYo247dcd24P+cMJht7ts9xkzdtB0EPHmOb7F+KzXw== +"@babel/plugin-transform-async-generator-functions@^7.23.2": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz#054afe290d64c6f576f371ccc321772c8ea87ebb" + integrity sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ== dependencies: - "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.9" + "@babel/helper-remap-async-to-generator" "^7.22.20" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-transform-async-to-generator@^7.22.5": @@ -603,10 +467,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoping@^7.22.10": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.10.tgz#88a1dccc3383899eb5e660534a76a22ecee64faa" - integrity sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg== +"@babel/plugin-transform-block-scoping@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz#8744d02c6c264d82e1a4bc5d2d501fd8aff6f022" + integrity sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -627,18 +491,18 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-transform-classes@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz#e04d7d804ed5b8501311293d1a0e6d43e94c3363" - integrity sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ== +"@babel/plugin-transform-classes@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz#aaf4753aee262a232bbc95451b4bdf9599c65a0b" + integrity sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-compilation-targets" "^7.22.15" "@babel/helper-environment-visitor" "^7.22.5" "@babel/helper-function-name" "^7.22.5" "@babel/helper-optimise-call-expression" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.9" "@babel/helper-split-export-declaration" "^7.22.6" globals "^11.1.0" @@ -650,10 +514,10 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/template" "^7.22.5" -"@babel/plugin-transform-destructuring@^7.22.10": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.10.tgz#38e2273814a58c810b6c34ea293be4973c4eb5e2" - integrity sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw== +"@babel/plugin-transform-destructuring@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz#6447aa686be48b32eaf65a73e0e2c0bd010a266c" + integrity sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -696,10 +560,10 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-transform-for-of@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz#ab1b8a200a8f990137aff9a084f8de4099ab173f" - integrity sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A== +"@babel/plugin-transform-for-of@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz#f64b4ccc3a4f131a996388fae7680b472b306b29" + integrity sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -742,32 +606,32 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-amd@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz#4e045f55dcf98afd00f85691a68fc0780704f526" - integrity sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ== +"@babel/plugin-transform-modules-amd@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz#05b2bc43373faa6d30ca89214731f76f966f3b88" + integrity sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw== dependencies: - "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-module-transforms" "^7.23.0" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-commonjs@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.11.tgz#d7991d3abad199c03b68ee66a64f216c47ffdfae" - integrity sha512-o2+bg7GDS60cJMgz9jWqRUsWkMzLCxp+jFDeDUT5sjRlAxcJWZ2ylNdI7QQ2+CH5hWu7OnN+Cv3htt7AkSf96g== +"@babel/plugin-transform-modules-commonjs@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz#b3dba4757133b2762c00f4f94590cf6d52602481" + integrity sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ== dependencies: - "@babel/helper-module-transforms" "^7.22.9" + "@babel/helper-module-transforms" "^7.23.0" "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-simple-access" "^7.22.5" -"@babel/plugin-transform-modules-systemjs@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.11.tgz#3386be5875d316493b517207e8f1931d93154bb1" - integrity sha512-rIqHmHoMEOhI3VkVf5jQ15l539KrwhzqcBO6wdCNWPWc/JWt9ILNYNUssbRpeq0qWns8svuw8LnMNCvWBIJ8wA== +"@babel/plugin-transform-modules-systemjs@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz#77591e126f3ff4132a40595a6cccd00a6b60d160" + integrity sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg== dependencies: "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-module-transforms" "^7.22.9" + "@babel/helper-module-transforms" "^7.23.0" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" "@babel/plugin-transform-modules-umd@^7.22.5": version "7.22.5" @@ -808,16 +672,16 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-transform-object-rest-spread@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.11.tgz#dbbb06ce783cd994a8f430d8cefa553e9b42ca62" - integrity sha512-nX8cPFa6+UmbepISvlf5jhQyaC7ASs/7UxHmMkuJ/k5xSHvDPPaibMo+v3TXwU/Pjqhep/nFNpd3zn4YR59pnw== +"@babel/plugin-transform-object-rest-spread@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz#21a95db166be59b91cde48775310c0df6e1da56f" + integrity sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q== dependencies: "@babel/compat-data" "^7.22.9" - "@babel/helper-compilation-targets" "^7.22.10" + "@babel/helper-compilation-targets" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.22.5" + "@babel/plugin-transform-parameters" "^7.22.15" "@babel/plugin-transform-object-super@^7.22.5": version "7.22.5" @@ -835,19 +699,19 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-transform-optional-chaining@^7.22.12", "@babel/plugin-transform-optional-chaining@^7.22.5": - version "7.22.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.12.tgz#d7ebf6a88cd2f4d307b0e000ab630acd8124b333" - integrity sha512-7XXCVqZtyFWqjDsYDY4T45w4mlx1rf7aOgkc/Ww76xkgBiOlmjPkx36PBLHa1k1rwWvVgYMPsbuVnIamx2ZQJw== +"@babel/plugin-transform-optional-chaining@^7.22.15", "@babel/plugin-transform-optional-chaining@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz#73ff5fc1cf98f542f09f29c0631647d8ad0be158" + integrity sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-transform-parameters@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz#c3542dd3c39b42c8069936e48717a8d179d63a18" - integrity sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg== +"@babel/plugin-transform-parameters@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz#719ca82a01d177af358df64a514d64c2e3edb114" + integrity sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -973,16 +837,16 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/preset-env@^7.11.0": - version "7.22.14" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.14.tgz#1cbb468d899f64fa71c53446f13b7ff8c0005cc1" - integrity sha512-daodMIoVo+ol/g+//c/AH+szBkFj4STQUikvBijRGL72Ph+w+AMTSh55DUETe8KJlPlDT1k/mp7NBfOuiWmoig== + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.2.tgz#1f22be0ff0e121113260337dbc3e58fafce8d059" + integrity sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ== dependencies: - "@babel/compat-data" "^7.22.9" - "@babel/helper-compilation-targets" "^7.22.10" + "@babel/compat-data" "^7.23.2" + "@babel/helper-compilation-targets" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.5" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.5" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.15" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.15" "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" @@ -1003,39 +867,39 @@ "@babel/plugin-syntax-top-level-await" "^7.14.5" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" "@babel/plugin-transform-arrow-functions" "^7.22.5" - "@babel/plugin-transform-async-generator-functions" "^7.22.11" + "@babel/plugin-transform-async-generator-functions" "^7.23.2" "@babel/plugin-transform-async-to-generator" "^7.22.5" "@babel/plugin-transform-block-scoped-functions" "^7.22.5" - "@babel/plugin-transform-block-scoping" "^7.22.10" + "@babel/plugin-transform-block-scoping" "^7.23.0" "@babel/plugin-transform-class-properties" "^7.22.5" "@babel/plugin-transform-class-static-block" "^7.22.11" - "@babel/plugin-transform-classes" "^7.22.6" + "@babel/plugin-transform-classes" "^7.22.15" "@babel/plugin-transform-computed-properties" "^7.22.5" - "@babel/plugin-transform-destructuring" "^7.22.10" + "@babel/plugin-transform-destructuring" "^7.23.0" "@babel/plugin-transform-dotall-regex" "^7.22.5" "@babel/plugin-transform-duplicate-keys" "^7.22.5" "@babel/plugin-transform-dynamic-import" "^7.22.11" "@babel/plugin-transform-exponentiation-operator" "^7.22.5" "@babel/plugin-transform-export-namespace-from" "^7.22.11" - "@babel/plugin-transform-for-of" "^7.22.5" + "@babel/plugin-transform-for-of" "^7.22.15" "@babel/plugin-transform-function-name" "^7.22.5" "@babel/plugin-transform-json-strings" "^7.22.11" "@babel/plugin-transform-literals" "^7.22.5" "@babel/plugin-transform-logical-assignment-operators" "^7.22.11" "@babel/plugin-transform-member-expression-literals" "^7.22.5" - "@babel/plugin-transform-modules-amd" "^7.22.5" - "@babel/plugin-transform-modules-commonjs" "^7.22.11" - "@babel/plugin-transform-modules-systemjs" "^7.22.11" + "@babel/plugin-transform-modules-amd" "^7.23.0" + "@babel/plugin-transform-modules-commonjs" "^7.23.0" + "@babel/plugin-transform-modules-systemjs" "^7.23.0" "@babel/plugin-transform-modules-umd" "^7.22.5" "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" "@babel/plugin-transform-new-target" "^7.22.5" "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.11" "@babel/plugin-transform-numeric-separator" "^7.22.11" - "@babel/plugin-transform-object-rest-spread" "^7.22.11" + "@babel/plugin-transform-object-rest-spread" "^7.22.15" "@babel/plugin-transform-object-super" "^7.22.5" "@babel/plugin-transform-optional-catch-binding" "^7.22.11" - "@babel/plugin-transform-optional-chaining" "^7.22.12" - "@babel/plugin-transform-parameters" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.23.0" + "@babel/plugin-transform-parameters" "^7.22.15" "@babel/plugin-transform-private-methods" "^7.22.5" "@babel/plugin-transform-private-property-in-object" "^7.22.11" "@babel/plugin-transform-property-literals" "^7.22.5" @@ -1051,10 +915,10 @@ "@babel/plugin-transform-unicode-regex" "^7.22.5" "@babel/plugin-transform-unicode-sets-regex" "^7.22.5" "@babel/preset-modules" "0.1.6-no-external-plugins" - "@babel/types" "^7.22.11" - babel-plugin-polyfill-corejs2 "^0.4.5" - babel-plugin-polyfill-corejs3 "^0.8.3" - babel-plugin-polyfill-regenerator "^0.5.2" + "@babel/types" "^7.23.0" + babel-plugin-polyfill-corejs2 "^0.4.6" + babel-plugin-polyfill-corejs3 "^0.8.5" + babel-plugin-polyfill-regenerator "^0.5.3" core-js-compat "^3.31.0" semver "^6.3.1" @@ -1072,14 +936,14 @@ resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@^7.1.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.2", "@babel/runtime@^7.20.7", "@babel/runtime@^7.22.6", "@babel/runtime@^7.8.4": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.11.tgz#7a9ba3bbe406ad6f9e8dd4da2ece453eb23a77a4" - integrity sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA== +"@babel/runtime@^7.1.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.2", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.6", "@babel/runtime@^7.8.4": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.2.tgz#062b0ac103261d68a966c4c7baf2ae3e62ec3885" + integrity sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg== dependencies: regenerator-runtime "^0.14.0" -"@babel/template@^7.22.15": +"@babel/template@^7.22.15", "@babel/template@^7.22.5": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== @@ -1088,93 +952,85 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/template@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" - integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw== - dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/parser" "^7.22.5" - "@babel/types" "^7.22.5" - -"@babel/traverse@^7.22.11", "@babel/traverse@^7.22.8": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.11.tgz#71ebb3af7a05ff97280b83f05f8865ac94b2027c" - integrity sha512-mzAenteTfomcB7mfPtyi+4oe5BZ6MXxWcn4CX+h4IRJ+OOGXBrWU6jDQavkQI9Vuc5P+donFabBfFCcmWka9lQ== - dependencies: - "@babel/code-frame" "^7.22.10" - "@babel/generator" "^7.22.10" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.22.11" - "@babel/types" "^7.22.11" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/traverse@^7.22.15", "@babel/traverse@^7.22.17": - version "7.22.17" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.17.tgz#b23c203ab3707e3be816043081b4a994fcacec44" - integrity sha512-xK4Uwm0JnAMvxYZxOVecss85WxTEIbTa7bnGyf/+EgCL5Zt3U7htUpEOWv9detPlamGKuRzCqw74xVglDWpPdg== +"@babel/traverse@^7.23.2": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8" + integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw== dependencies: "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.22.15" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" + "@babel/generator" "^7.23.0" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.22.16" - "@babel/types" "^7.22.17" + "@babel/parser" "^7.23.0" + "@babel/types" "^7.23.0" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.22.10", "@babel/types@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.11.tgz#0e65a6a1d4d9cbaa892b2213f6159485fe632ea2" - integrity sha512-siazHiGuZRz9aB9NpHy9GOs9xiQPKnMzgdr493iI1M67vRXpnEq8ZOOKzezC5q7zwuQ6sDhdSp4SD9ixKSqKZg== - dependencies: - "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.5" - to-fast-properties "^2.0.0" - -"@babel/types@^7.22.15", "@babel/types@^7.22.17": - version "7.22.17" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.17.tgz#f753352c4610ffddf9c8bc6823f9ff03e2303eee" - integrity sha512-YSQPHLFtQNE5xN9tHuZnzu8vPr61wVTBZdfv1meex1NBosa4iT05k/Jw06ddJugi4bk7The/oSwQGFcksmEJQg== +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.4.4": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" + integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== dependencies: "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.15" + "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" -"@babel/types@^7.22.5", "@babel/types@^7.4.4": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" - integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== +"@biconomy/common@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@biconomy/common/-/common-3.1.0.tgz#08e07ebe7d0e62a2dc52bc6aa1c7f07eec67667a" + integrity sha512-28uMOgMhitG0JhM4I48Kz5WPkc75qZ8LuS4X3mvuv6UpoojiVrWmh1pSA3PW+8LHreEsaopNVx0yfd1MzX534Q== dependencies: - "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.5" - to-fast-properties "^2.0.0" + "@account-abstraction/contracts" "^0.6.0" + "@biconomy/core-types" "^3.1.0" + "@biconomy/node-client" "^3.1.0" + "@ethersproject/abi" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/providers" "^5.7.0" + "@openzeppelin/contracts" "^4.7.3" + "@typechain/ethers-v5" "^10.2.0" + concurrently "^7.4.0" + debug "^4.3.4" + ethers "^5.7.0" + typechain "^8.1.1" -"@biconomy/core-types@^3.0.0-alpha.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@biconomy/core-types/-/core-types-3.0.0.tgz#61feae0ac3ee982daeb52924d0fa9c55d2381afc" - integrity sha512-qzJkP/2P970RJ+9y+vhnG6aSenCeMiS7t++ed1r7SCPiiaZOwfz6oC3/O5VaDz8dgO7HFJDQCLXQlsA1Ybakew== +"@biconomy/core-types@^3.0.0-alpha.0", "@biconomy/core-types@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@biconomy/core-types/-/core-types-3.1.0.tgz#fe405c809155ef26b6f3557ae67af951d8ea552f" + integrity sha512-6daCXWxfT2Gl3pzUTvz0bpzXytBMt1CRFYmH5QiRv9nLrh9qVsjbJz1rWwdZOu0J90R5Ium5ssHpPFFoAIr58A== dependencies: "@ethersproject/bignumber" "^5.6.0" "@ethersproject/contracts" "^5.6.0" "@ethersproject/providers" "^5.7.0" + ethers "^5.7.2" web3-core "^1.7.1" +"@biconomy/node-client@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@biconomy/node-client/-/node-client-3.1.0.tgz#914a061bce2152971244202c257a4f3c5937d619" + integrity sha512-b2WCHjTRFlnERRapocf9C5vq8+1JoPsF18jADmPdEIUJueBe6cOEcvv0hGZc2P3gNHVJTtTziLFTxEKeM2WAFQ== + dependencies: + "@biconomy/core-types" "^3.1.0" + "@ethersproject/abstract-signer" "^5.6.0" + "@nomiclabs/hardhat-ethers" "^2.1.0" + node-fetch "^2.6.6" + "@biconomy/paymaster@^3.0.0-alpha.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@biconomy/paymaster/-/paymaster-3.0.0.tgz#db3eea6df72c3005032f9b17a5bc80dcad3b0bb4" - integrity sha512-fQC53RtHCPJ8gaK59J50Wl9+WQnhZhcT6Aca3WzlUjL/aQ4ji9vNusCFWLM3wKREFh1GZYGtgi0Z5ge5jyczww== + version "3.1.0" + resolved "https://registry.yarnpkg.com/@biconomy/paymaster/-/paymaster-3.1.0.tgz#325f0f7f6fab2aa6863b9b092fa88d6d6e4e9514" + integrity sha512-m/0ATqQ1hb4G9dHzjhGukCTE82yv/CwwH6p9IM11dTxwvAKzYGeeOfqvmnzmy86ag0wYM1qwdo339mWwlwFJdQ== + dependencies: + "@biconomy/common" "^3.1.0" + "@biconomy/core-types" "^3.1.0" + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + ethers "^5.7.0" "@coinbase/wallet-sdk@^3.6.6": - version "3.7.1" - resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-3.7.1.tgz#44b3b7a925ff5cc974e4cbf7a44199ffdcf03541" - integrity sha512-LjyoDCB+7p0waQXfK+fUgcAs3Ezk6S6e+LYaoFjpJ6c9VTop3NyZF40Pi7df4z7QJohCwzuIDjz0Rhtig6Y7Pg== + version "3.7.2" + resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-3.7.2.tgz#7a89bd9e3a06a1f26d4480d8642af33fb0c7e3aa" + integrity sha512-lIGvXMsgpsQWci/XOMQIJ2nIZ8JUy/L+bvC0wkRaYarr0YylwpXrJ2gRM3hCXPS477pkyO7N/kSiAoRgEXUdJQ== dependencies: "@metamask/safe-event-emitter" "2.0.0" "@solana/web3.js" "^1.70.1" @@ -1351,9 +1207,9 @@ eslint-visitor-keys "^3.3.0" "@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": - version "4.8.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.8.0.tgz#11195513186f68d42fbf449f9a7136b2c0c92005" - integrity sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg== + version "4.9.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.9.1.tgz#449dfa81a57a1d755b09aa58d826c1262e4283b4" + integrity sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA== "@eslint/eslintrc@^2.1.2": version "2.1.2" @@ -1370,10 +1226,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.48.0": - version "8.48.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.48.0.tgz#642633964e217905436033a2bd08bf322849b7fb" - integrity sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw== +"@eslint/js@8.51.0": + version "8.51.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.51.0.tgz#6d419c240cfb2b66da37df230f7e7eef801c32fa" + integrity sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg== "@ethereumjs/rlp@^4.0.1": version "4.0.1" @@ -1417,7 +1273,7 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/web" "^5.7.0" -"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.7.0": +"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.6.0", "@ethersproject/abstract-signer@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== @@ -1743,7 +1599,7 @@ dependencies: client-only "^0.0.1" -"@humanwhocodes/config-array@^0.11.10": +"@humanwhocodes/config-array@^0.11.11": version "0.11.11" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.11.tgz#88a04c570dbbc7dd943e4712429c3df09bc32844" integrity sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA== @@ -1815,9 +1671,9 @@ integrity sha512-mscwGroSJQrCTjtNGBu+18FQbZYA4+q6Tyx6K7CXHl6AwgZKbWfZYdgP2F+fyZcRUdGRsMX8QtvU61VcGGtO1A== "@lit-labs/ssr-dom-shim@^1.0.0", "@lit-labs/ssr-dom-shim@^1.1.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.1.tgz#64df34e2f12e68e78ac57e571d25ec07fa460ca9" - integrity sha512-kXOeFbfCm4fFf2A3WwVEeQj55tMZa8c8/f9AKHMobQMkzNUfUj+antR3fRPaZJawsa1aZiP/Da3ndpZrwEe4rQ== + version "1.1.2" + resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.2.tgz#d693d972974a354034454ec1317eb6afd0b00312" + integrity sha512-jnOD+/+dSrfTWYfSXBXlo5l5f0q1UuJo3tkbMDCYA2lKUYq79jaxqtGEvnRoh049nt1vdo1+45RinipU6FGY2g== "@lit/reactive-element@^1.3.0", "@lit/reactive-element@^1.6.0": version "1.6.3" @@ -1841,145 +1697,138 @@ semver "^7.3.8" superstruct "^1.0.3" -"@motionone/animation@^10.15.1": - version "10.15.1" - resolved "https://registry.yarnpkg.com/@motionone/animation/-/animation-10.15.1.tgz#4a85596c31cbc5100ae8eb8b34c459fb0ccf6807" - integrity sha512-mZcJxLjHor+bhcPuIFErMDNyrdb2vJur8lSfMCsuCB4UyV8ILZLvK+t+pg56erv8ud9xQGK/1OGPt10agPrCyQ== +"@motionone/animation@^10.15.1", "@motionone/animation@^10.16.3": + version "10.16.3" + resolved "https://registry.yarnpkg.com/@motionone/animation/-/animation-10.16.3.tgz#f5b71e27fd8b88b61f983adb0ed6c8e3e89281f9" + integrity sha512-QUGWpLbMFLhyqKlngjZhjtxM8IqiJQjLK0DF+XOF6od9nhSvlaeEpOY/UMCRVcZn/9Tr2rZO22EkuCIjYdI74g== dependencies: - "@motionone/easing" "^10.15.1" - "@motionone/types" "^10.15.1" - "@motionone/utils" "^10.15.1" + "@motionone/easing" "^10.16.3" + "@motionone/types" "^10.16.3" + "@motionone/utils" "^10.16.3" tslib "^2.3.1" -"@motionone/dom@^10.16.2": - version "10.16.2" - resolved "https://registry.yarnpkg.com/@motionone/dom/-/dom-10.16.2.tgz#0c44df8ee3d1cfc50ee11d27050b27824355a61a" - integrity sha512-bnuHdNbge1FutZXv+k7xub9oPWcF0hsu8y1HTH/qg6av58YI0VufZ3ngfC7p2xhMJMnoh0LXFma2EGTgPeCkeg== +"@motionone/dom@^10.16.2", "@motionone/dom@^10.16.4": + version "10.16.4" + resolved "https://registry.yarnpkg.com/@motionone/dom/-/dom-10.16.4.tgz#9385716928cc2d5b3208a7dcaf504b69b47fd1ae" + integrity sha512-HPHlVo/030qpRj9R8fgY50KTN4Ko30moWRTA3L3imrsRBmob93cTYmodln49HYFbQm01lFF7X523OkKY0DX6UA== dependencies: - "@motionone/animation" "^10.15.1" - "@motionone/generators" "^10.15.1" - "@motionone/types" "^10.15.1" - "@motionone/utils" "^10.15.1" + "@motionone/animation" "^10.16.3" + "@motionone/generators" "^10.16.4" + "@motionone/types" "^10.16.3" + "@motionone/utils" "^10.16.3" hey-listen "^1.0.8" tslib "^2.3.1" -"@motionone/easing@^10.15.1": - version "10.15.1" - resolved "https://registry.yarnpkg.com/@motionone/easing/-/easing-10.15.1.tgz#95cf3adaef34da6deebb83940d8143ede3deb693" - integrity sha512-6hIHBSV+ZVehf9dcKZLT7p5PEKHGhDwky2k8RKkmOvUoYP3S+dXsKupyZpqx5apjd9f+php4vXk4LuS+ADsrWw== +"@motionone/easing@^10.16.3": + version "10.16.3" + resolved "https://registry.yarnpkg.com/@motionone/easing/-/easing-10.16.3.tgz#a62abe0ba2841861f167f286782e287eab8d7466" + integrity sha512-HWTMZbTmZojzwEuKT/xCdvoMPXjYSyQvuVM6jmM0yoGU6BWzsmYMeB4bn38UFf618fJCNtP9XeC/zxtKWfbr0w== dependencies: - "@motionone/utils" "^10.15.1" + "@motionone/utils" "^10.16.3" tslib "^2.3.1" -"@motionone/generators@^10.15.1": - version "10.15.1" - resolved "https://registry.yarnpkg.com/@motionone/generators/-/generators-10.15.1.tgz#dc6abb11139d1bafe758a41c134d4c753a9b871c" - integrity sha512-67HLsvHJbw6cIbLA/o+gsm7h+6D4Sn7AUrB/GPxvujse1cGZ38F5H7DzoH7PhX+sjvtDnt2IhFYF2Zp1QTMKWQ== +"@motionone/generators@^10.16.4": + version "10.16.4" + resolved "https://registry.yarnpkg.com/@motionone/generators/-/generators-10.16.4.tgz#4a38708244bce733bfcebd4a26d19f4bbabd36af" + integrity sha512-geFZ3w0Rm0ZXXpctWsSf3REGywmLLujEjxPYpBR0j+ymYwof0xbV6S5kGqqsDKgyWKVWpUInqQYvQfL6fRbXeg== dependencies: - "@motionone/types" "^10.15.1" - "@motionone/utils" "^10.15.1" + "@motionone/types" "^10.16.3" + "@motionone/utils" "^10.16.3" tslib "^2.3.1" "@motionone/svelte@^10.16.2": - version "10.16.2" - resolved "https://registry.yarnpkg.com/@motionone/svelte/-/svelte-10.16.2.tgz#0b37c3b12927814d31d24941d1ca0ff49981b444" - integrity sha512-38xsroKrfK+aHYhuQlE6eFcGy0EwrB43Q7RGjF73j/kRUTcLNu/LAaKiLLsN5lyqVzCgTBVt4TMT/ShWbTbc5Q== + version "10.16.4" + resolved "https://registry.yarnpkg.com/@motionone/svelte/-/svelte-10.16.4.tgz#5daf117cf5b2576fc6dd487c5e0500938a742470" + integrity sha512-zRVqk20lD1xqe+yEDZhMYgftsuHc25+9JSo+r0a0OWUJFocjSV9D/+UGhX4xgJsuwB9acPzXLr20w40VnY2PQA== dependencies: - "@motionone/dom" "^10.16.2" + "@motionone/dom" "^10.16.4" tslib "^2.3.1" -"@motionone/types@^10.15.1": - version "10.15.1" - resolved "https://registry.yarnpkg.com/@motionone/types/-/types-10.15.1.tgz#89441b54285012795cbba8612cbaa0fa420db3eb" - integrity sha512-iIUd/EgUsRZGrvW0jqdst8st7zKTzS9EsKkP+6c6n4MPZoQHwiHuVtTQLD6Kp0bsBLhNzKIBlHXponn/SDT4hA== +"@motionone/types@^10.15.1", "@motionone/types@^10.16.3": + version "10.16.3" + resolved "https://registry.yarnpkg.com/@motionone/types/-/types-10.16.3.tgz#9284ea8a52f6b32c51c54b617214f20e43ac6c59" + integrity sha512-W4jkEGFifDq73DlaZs3HUfamV2t1wM35zN/zX7Q79LfZ2sc6C0R1baUHZmqc/K5F3vSw3PavgQ6HyHLd/MXcWg== -"@motionone/utils@^10.15.1": - version "10.15.1" - resolved "https://registry.yarnpkg.com/@motionone/utils/-/utils-10.15.1.tgz#6b5f51bde75be88b5411e084310299050368a438" - integrity sha512-p0YncgU+iklvYr/Dq4NobTRdAPv9PveRDUXabPEeOjBLSO/1FNB2phNTZxOxpi1/GZwYpAoECEa0Wam+nsmhSw== +"@motionone/utils@^10.15.1", "@motionone/utils@^10.16.3": + version "10.16.3" + resolved "https://registry.yarnpkg.com/@motionone/utils/-/utils-10.16.3.tgz#ddf07ab6cf3000d89e3bcbdc9a8c3e1fd64f8520" + integrity sha512-WNWDksJIxQkaI9p9Z9z0+K27xdqISGNFy1SsWVGaiedTHq0iaT6iZujby8fT/ZnZxj1EOaxJtSfUPCFNU5CRoA== dependencies: - "@motionone/types" "^10.15.1" + "@motionone/types" "^10.16.3" hey-listen "^1.0.8" tslib "^2.3.1" "@motionone/vue@^10.16.2": - version "10.16.2" - resolved "https://registry.yarnpkg.com/@motionone/vue/-/vue-10.16.2.tgz#faf13afc27620a2df870c71c58a04ee8de8dea65" - integrity sha512-7/dEK/nWQXOkJ70bqb2KyNfSWbNvWqKKq1C8juj+0Mg/AorgD8O5wE3naddK0G+aXuNMqRuc4jlsYHHWHtIzVw== + version "10.16.4" + resolved "https://registry.yarnpkg.com/@motionone/vue/-/vue-10.16.4.tgz#07d09e3aa5115ca0bcc0076cb9e5322775277c09" + integrity sha512-z10PF9JV6SbjFq+/rYabM+8CVlMokgl8RFGvieSGNTmrkQanfHn+15XBrhG3BgUfvmTeSeyShfOHpG0i9zEdcg== dependencies: - "@motionone/dom" "^10.16.2" + "@motionone/dom" "^10.16.4" tslib "^2.3.1" "@next/bundle-analyzer@^13.4.19": - version "13.4.19" - resolved "https://registry.yarnpkg.com/@next/bundle-analyzer/-/bundle-analyzer-13.4.19.tgz#aaa423b029a4c7af04c7da9ba5980b267946a5fb" - integrity sha512-nXKHz63dM0Kn3XPFOKrv2wK+hP9rdBg2iR1PsxuXLHVBoZhMyS1/ldRcX80YFsm2VUws9zM4a0E/1HlLI+P92g== + version "13.5.4" + resolved "https://registry.yarnpkg.com/@next/bundle-analyzer/-/bundle-analyzer-13.5.4.tgz#dcbd18f9f6a7fe358d8b91e61cc63f3c1184bd03" + integrity sha512-2vgmkuSKyTiyI7NorL+zYerxQRvzmSGbCDr2/kVrbKX28a4UNhbYn8/cQW8z6pvx0EncEFpd0GCUA5r9aRLhJg== dependencies: webpack-bundle-analyzer "4.7.0" -"@next/env@13.4.19": - version "13.4.19" - resolved "https://registry.yarnpkg.com/@next/env/-/env-13.4.19.tgz#46905b4e6f62da825b040343cbc233144e9578d3" - integrity sha512-FsAT5x0jF2kkhNkKkukhsyYOrRqtSxrEhfliniIq0bwWbuXLgyt3Gv0Ml+b91XwjwArmuP7NxCiGd++GGKdNMQ== +"@next/env@13.5.4": + version "13.5.4" + resolved "https://registry.yarnpkg.com/@next/env/-/env-13.5.4.tgz#777c3af16de2cf2f611b6c8126910062d13d222c" + integrity sha512-LGegJkMvRNw90WWphGJ3RMHMVplYcOfRWf2Be3td3sUa+1AaxmsYyANsA+znrGCBjXJNi4XAQlSoEfUxs/4kIQ== -"@next/eslint-plugin-next@13.4.19": - version "13.4.19" - resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-13.4.19.tgz#93d130c37b47fd120f6d111aee36a60611148df1" - integrity sha512-N/O+zGb6wZQdwu6atMZHbR7T9Np5SUFUjZqCbj0sXm+MwQO35M8TazVB4otm87GkXYs2l6OPwARd3/PUWhZBVQ== +"@next/eslint-plugin-next@13.5.4": + version "13.5.4" + resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-13.5.4.tgz#ec70af509f07dc4e545df25834ac94d2c341c36a" + integrity sha512-vI94U+D7RNgX6XypSyjeFrOzxGlZyxOplU0dVE5norIfZGn/LDjJYPHdvdsR5vN1eRtl6PDAsOHmycFEOljK5A== dependencies: glob "7.1.7" -"@next/swc-darwin-arm64@13.4.19": - version "13.4.19" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.19.tgz#77ad462b5ced4efdc26cb5a0053968d2c7dac1b6" - integrity sha512-vv1qrjXeGbuF2mOkhkdxMDtv9np7W4mcBtaDnHU+yJG+bBwa6rYsYSCI/9Xm5+TuF5SbZbrWO6G1NfTh1TMjvQ== - -"@next/swc-darwin-x64@13.4.19": - version "13.4.19" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.19.tgz#aebe38713a4ce536ee5f2a291673e14b715e633a" - integrity sha512-jyzO6wwYhx6F+7gD8ddZfuqO4TtpJdw3wyOduR4fxTUCm3aLw7YmHGYNjS0xRSYGAkLpBkH1E0RcelyId6lNsw== - -"@next/swc-linux-arm64-gnu@13.4.19": - version "13.4.19" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.19.tgz#ec54db65b587939c7b94f9a84800f003a380f5a6" - integrity sha512-vdlnIlaAEh6H+G6HrKZB9c2zJKnpPVKnA6LBwjwT2BTjxI7e0Hx30+FoWCgi50e+YO49p6oPOtesP9mXDRiiUg== - -"@next/swc-linux-arm64-musl@13.4.19": - version "13.4.19" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.19.tgz#1f5e2c1ea6941e7d530d9f185d5d64be04279d86" - integrity sha512-aU0HkH2XPgxqrbNRBFb3si9Ahu/CpaR5RPmN2s9GiM9qJCiBBlZtRTiEca+DC+xRPyCThTtWYgxjWHgU7ZkyvA== - -"@next/swc-linux-x64-gnu@13.4.19": - version "13.4.19" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.19.tgz#96b0882492a2f7ffcce747846d3680730f69f4d1" - integrity sha512-htwOEagMa/CXNykFFeAHHvMJeqZfNQEoQvHfsA4wgg5QqGNqD5soeCer4oGlCol6NGUxknrQO6VEustcv+Md+g== - -"@next/swc-linux-x64-musl@13.4.19": - version "13.4.19" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.19.tgz#f276b618afa321d2f7b17c81fc83f429fb0fd9d8" - integrity sha512-4Gj4vvtbK1JH8ApWTT214b3GwUh9EKKQjY41hH/t+u55Knxi/0wesMzwQRhppK6Ddalhu0TEttbiJ+wRcoEj5Q== - -"@next/swc-win32-arm64-msvc@13.4.19": - version "13.4.19" - resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.19.tgz#1599ae0d401da5ffca0947823dac577697cce577" - integrity sha512-bUfDevQK4NsIAHXs3/JNgnvEY+LRyneDN788W2NYiRIIzmILjba7LaQTfihuFawZDhRtkYCv3JDC3B4TwnmRJw== - -"@next/swc-win32-ia32-msvc@13.4.19": - version "13.4.19" - resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.19.tgz#55cdd7da90818f03e4da16d976f0cb22045d16fd" - integrity sha512-Y5kikILFAr81LYIFaw6j/NrOtmiM4Sf3GtOc0pn50ez2GCkr+oejYuKGcwAwq3jiTKuzF6OF4iT2INPoxRycEA== - -"@next/swc-win32-x64-msvc@13.4.19": - version "13.4.19" - resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.19.tgz#648f79c4e09279212ac90d871646ae12d80cdfce" - integrity sha512-YzA78jBDXMYiINdPdJJwGgPNT3YqBNNGhsthsDoWHL9p24tEJn9ViQf/ZqTbwSpX/RrkPupLfuuTH2sf73JBAw== - -"@noble/curves@1.0.0", "@noble/curves@~1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.0.0.tgz#e40be8c7daf088aaf291887cbc73f43464a92932" - integrity sha512-2upgEu0iLiDVDZkNLeFV2+ht0BAVgQnEmCk6JsOch9Rp8xfkMCbvbAZlA2pBHQc73dbl+vFOXfqkf4uemdn0bw== - dependencies: - "@noble/hashes" "1.3.0" +"@next/swc-darwin-arm64@13.5.4": + version "13.5.4" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.5.4.tgz#241957774fef3f876dc714cfc0ca6f00f561737e" + integrity sha512-Df8SHuXgF1p+aonBMcDPEsaahNo2TCwuie7VXED4FVyECvdXfRT9unapm54NssV9tF3OQFKBFOdlje4T43VO0w== + +"@next/swc-darwin-x64@13.5.4": + version "13.5.4" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-13.5.4.tgz#fa11bb97bf06cd45cbd554354b46bf93e22c025b" + integrity sha512-siPuUwO45PnNRMeZnSa8n/Lye5ZX93IJom9wQRB5DEOdFrw0JjOMu1GINB8jAEdwa7Vdyn1oJ2xGNaQpdQQ9Pw== + +"@next/swc-linux-arm64-gnu@13.5.4": + version "13.5.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.5.4.tgz#dd3a482cd6871ed23b049066a0f3c4c2f955dc88" + integrity sha512-l/k/fvRP/zmB2jkFMfefmFkyZbDkYW0mRM/LB+tH5u9pB98WsHXC0WvDHlGCYp3CH/jlkJPL7gN8nkTQVrQ/2w== + +"@next/swc-linux-arm64-musl@13.5.4": + version "13.5.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.5.4.tgz#ed6d7abaf5712cff2752ce5300d6bacc6aff1b18" + integrity sha512-YYGb7SlLkI+XqfQa8VPErljb7k9nUnhhRrVaOdfJNCaQnHBcvbT7cx/UjDQLdleJcfyg1Hkn5YSSIeVfjgmkTg== + +"@next/swc-linux-x64-gnu@13.5.4": + version "13.5.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.5.4.tgz#977a040388e8a685a3a85e0dbdff90a4ee2a7189" + integrity sha512-uE61vyUSClnCH18YHjA8tE1prr/PBFlBFhxBZis4XBRJoR+txAky5d7gGNUIbQ8sZZ7LVkSVgm/5Fc7mwXmRAg== + +"@next/swc-linux-x64-musl@13.5.4": + version "13.5.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.5.4.tgz#3e29a0ad8efc016196c3a120da04397eea328b2a" + integrity sha512-qVEKFYML/GvJSy9CfYqAdUexA6M5AklYcQCW+8JECmkQHGoPxCf04iMh7CPR7wkHyWWK+XLt4Ja7hhsPJtSnhg== + +"@next/swc-win32-arm64-msvc@13.5.4": + version "13.5.4" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.5.4.tgz#18a236c3fe5a48d24b56d939e6a05488bb682b7e" + integrity sha512-mDSQfqxAlfpeZOLPxLymZkX0hYF3juN57W6vFHTvwKlnHfmh12Pt7hPIRLYIShk8uYRsKPtMTth/EzpwRI+u8w== + +"@next/swc-win32-ia32-msvc@13.5.4": + version "13.5.4" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.5.4.tgz#255132243ab6fb20d3c7c92a585e2c4fa50368fe" + integrity sha512-aoqAT2XIekIWoriwzOmGFAvTtVY5O7JjV21giozBTP5c6uZhpvTWRbmHXbmsjZqY4HnEZQRXWkSAppsIBweKqw== + +"@next/swc-win32-x64-msvc@13.5.4": + version "13.5.4" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.5.4.tgz#cc542907b55247c5634d9a8298e1c143a1847e25" + integrity sha512-cyRvlAxwlddlqeB9xtPSfNSCRy8BOa4wtMo0IuI9P7Y0XT2qpDrpFKRyZ7kUngZis59mPVla5k8X1oOJ8RxDYg== "@noble/curves@1.1.0", "@noble/curves@~1.1.0": version "1.1.0" @@ -1988,18 +1837,13 @@ dependencies: "@noble/hashes" "1.3.1" -"@noble/curves@1.2.0", "@noble/curves@^1.0.0", "@noble/curves@~1.2.0": +"@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/hashes@1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.0.tgz#085fd70f6d7d9d109671090ccae1d3bec62554a1" - integrity sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg== - "@noble/hashes@1.3.1": version "1.3.1" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.1.tgz#8831ef002114670c603c458ab8b11328406953a9" @@ -2031,49 +1875,36 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@pkgr/utils@^2.3.1": - version "2.4.2" - resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.4.2.tgz#9e638bbe9a6a6f165580dc943f138fd3309a2cbc" - integrity sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw== - dependencies: - cross-spawn "^7.0.3" - fast-glob "^3.3.0" - is-glob "^4.0.3" - open "^9.1.0" - picocolors "^1.0.0" - tslib "^2.6.0" +"@nomiclabs/hardhat-ethers@^2.1.0": + version "2.2.3" + resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.3.tgz#b41053e360c31a32c2640c9a45ee981a7e603fe0" + integrity sha512-YhzPdzb612X591FOe68q+qXVXGG2ANZRvDo0RRUtimev85rCrAlv/TLMEZw5c+kq9AbzocLTVX/h2jVIFPL9Xg== + +"@openzeppelin/contracts@^4.7.3": + version "4.9.3" + resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.9.3.tgz#00d7a8cf35a475b160b3f0293a6403c511099364" + integrity sha512-He3LieZ1pP2TNt5JbkPA4PNT9WC3gOTOlDcFGJW4Le4QKqwmiNJCRt44APfxMxvq7OugU/cqYuPcSBzOw38DAg== "@polka/url@^1.0.0-next.20": - version "1.0.0-next.21" - resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1" - integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g== + version "1.0.0-next.23" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.23.tgz#498e41218ab3b6a1419c735e5c6ae2c5ed609b6c" + integrity sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg== "@popperjs/core@^2.11.8": version "2.11.8" resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== -"@rainbow-me/rainbowkit@^1.0.10": - version "1.0.10" - resolved "https://registry.yarnpkg.com/@rainbow-me/rainbowkit/-/rainbowkit-1.0.10.tgz#fa6d38d962c9fa8113f2478af73b309f08c59bf0" - integrity sha512-nXo1mPO8c7aV8mtog0QN9Kn1DoNRJmjd5V8zMU+kIUDAmZFzUhwrBKNcL/X24ie67NjOtbmIKlSBlwWdGZlcvg== - dependencies: - "@vanilla-extract/css" "1.9.1" - "@vanilla-extract/dynamic" "2.0.2" - "@vanilla-extract/sprinkles" "1.5.0" - clsx "1.1.1" - qrcode "1.5.0" - react-remove-scroll "2.5.4" - -"@rainbow-me/rainbowkit@^1.0.11": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@rainbow-me/rainbowkit/-/rainbowkit-1.0.11.tgz#5d03a8b1f8b8d7f8b3dee14dae378574ea3e6f8b" - integrity sha512-+cm6+WUPG9iPgkfJKbvlowcrSHu266Zk20LVRsYLcmb6v29gVMHcWQvyI4T6EVC9TxNjnyq/jIlen++uiUBmmQ== +"@rainbow-me/rainbowkit@^1.1.1", "@rainbow-me/rainbowkit@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@rainbow-me/rainbowkit/-/rainbowkit-1.1.2.tgz#733a2c864dd7dd3625ed54440a1ccb18b0636c72" + integrity sha512-yWxKDfHL4xDZJW34APGkmO2SkxjHwrEeAfvx6+137hWLttQwHcalG9nj4II8roYV2/2XJPmQsbEs7TM0rC0fOg== dependencies: "@vanilla-extract/css" "1.9.1" "@vanilla-extract/dynamic" "2.0.2" "@vanilla-extract/sprinkles" "1.5.0" clsx "1.1.1" + i18n-js "^4.3.2" qrcode "1.5.0" react-remove-scroll "2.5.4" @@ -2139,18 +1970,18 @@ picomatch "^2.2.2" "@rollup/pluginutils@^5.0.1": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.4.tgz#74f808f9053d33bafec0cc98e7b835c9667d32ba" - integrity sha512-0KJnIoRI8A+a1dqOYLxH8vBf8bphDmty5QvIm2hqm7oFCFYKCAZWWd2hXgMibaPsNDhI0AtpYfQZJG47pt/k4g== + version "5.0.5" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.5.tgz#bbb4c175e19ebfeeb8c132c2eea0ecb89941a66c" + integrity sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q== dependencies: "@types/estree" "^1.0.0" estree-walker "^2.0.2" picomatch "^2.3.1" -"@rushstack/eslint-patch@^1.1.3": - version "1.3.3" - resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.3.3.tgz#16ab6c727d8c2020a5b6e4a176a243ecd88d8d69" - integrity sha512-0xd7qez0AQ+MbHatZTlI1gu5vkG8r7MYRUJAHPAHJBmGLs16zpkrpAVLvjQKQOqaXPDUBwOiJzNc00znHSCVBw== +"@rushstack/eslint-patch@^1.3.3": + version "1.5.1" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.5.1.tgz#5f1b518ec5fa54437c0b7c4a821546c64fed6922" + integrity sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA== "@safe-global/safe-apps-provider@^0.17.1": version "0.17.1" @@ -2177,26 +2008,15 @@ viem "^1.0.0" "@safe-global/safe-gateway-typescript-sdk@^3.5.3": - version "3.10.0" - resolved "https://registry.yarnpkg.com/@safe-global/safe-gateway-typescript-sdk/-/safe-gateway-typescript-sdk-3.10.0.tgz#a252ac5a61487d7785c44f1ed7e899ccd5aa9038" - integrity sha512-nhWjFRRgrGz4uZbyQ3Hgm4si1AixCWlnvi5WUCq/+V+e8EoA2Apj9xJEt8zzXvtELlddFqkH2sfTFy9LIjGXKg== - dependencies: - cross-fetch "^3.1.5" + version "3.12.0" + resolved "https://registry.yarnpkg.com/@safe-global/safe-gateway-typescript-sdk/-/safe-gateway-typescript-sdk-3.12.0.tgz#aa767a32f4d10f4ec9a47ad7e32d547d3b51e94c" + integrity sha512-hExCo62lScVC9/ztVqYEYL2pFxcqLTvB8fj0WtdP5FWrvbtEgD0pbVolchzD5bf85pbzvEwdAxSVS7EdCZxTNw== "@scure/base@~1.1.0", "@scure/base@~1.1.2": version "1.1.3" resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.3.tgz#8584115565228290a6c6c4961973e0903bb3df2f" integrity sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q== -"@scure/bip32@1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.3.0.tgz#6c8d980ef3f290987736acd0ee2e0f0d50068d87" - integrity sha512-bcKpo1oj54hGholplGLpqPHRbIsnbixFtc06nwuNM5/dwSXOq/AAYoIBRsBmnZJSdfeNW5rnff7NTAz3ZCqR9Q== - dependencies: - "@noble/curves" "~1.0.0" - "@noble/hashes" "~1.3.0" - "@scure/base" "~1.1.0" - "@scure/bip32@1.3.1": version "1.3.1" resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.3.1.tgz#7248aea723667f98160f593d621c47e208ccbb10" @@ -2215,14 +2035,6 @@ "@noble/hashes" "~1.3.2" "@scure/base" "~1.1.2" -"@scure/bip39@1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.2.0.tgz#a207e2ef96de354de7d0002292ba1503538fc77b" - integrity sha512-SX/uKq52cuxm4YFXWFaVByaSHJh2w3BnokVSeUJVCv6K7WulT9u2BuNRBhuFl8vAuYnzx9bEu9WgpcNYTrYieg== - dependencies: - "@noble/hashes" "~1.3.0" - "@scure/base" "~1.1.0" - "@scure/bip39@1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.2.1.tgz#5cee8978656b272a917b7871c981e0541ad6ac2a" @@ -2231,26 +2043,26 @@ "@noble/hashes" "~1.3.0" "@scure/base" "~1.1.0" -"@sentry-internal/tracing@7.66.0": - version "7.66.0" - resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.66.0.tgz#45ea607917d55a5bcaa3229341387ff6ed9b3a2b" - integrity sha512-3vCgC2hC3T45pn53yTDVcRpHoJTBxelDPPZVsipAbZnoOVPkj7n6dNfDhj3I3kwWCBPahPkXmE+R4xViR8VqJg== +"@sentry-internal/tracing@7.74.0": + version "7.74.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.74.0.tgz#11b0762d0b18b01cc18dfb1e40bbaa41c6f97452" + integrity sha512-JK6IRGgdtZjswGfaGIHNWIThffhOHzVIIaGmglui+VFIzOsOqePjoxaDV0MEvzafxXZD7eWqGE5RGuZ0n6HFVg== dependencies: - "@sentry/core" "7.66.0" - "@sentry/types" "7.66.0" - "@sentry/utils" "7.66.0" + "@sentry/core" "7.74.0" + "@sentry/types" "7.74.0" + "@sentry/utils" "7.74.0" tslib "^2.4.1 || ^1.9.3" -"@sentry/browser@7.66.0": - version "7.66.0" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.66.0.tgz#9aa3078f8914d2f8acb4ad9fc7b2011c80e357f5" - integrity sha512-rW037rf8jkhyykG38+HUdwkRCKHJEMM5NkCqPIO5zuuxfLKukKdI2rbvgJ93s3/9UfsTuDFcKFL1u43mCn6sDw== +"@sentry/browser@7.74.0": + version "7.74.0" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.74.0.tgz#4a01bccb34059894007b9a22a89892f2c4dff130" + integrity sha512-Njr8216Z1dFUcl6NqBOk20dssK9SjoVddY74Xq+Q4p3NfXBG3lkMcACXor7SFoJRZXq8CZWGS13Cc5KwViRw4g== dependencies: - "@sentry-internal/tracing" "7.66.0" - "@sentry/core" "7.66.0" - "@sentry/replay" "7.66.0" - "@sentry/types" "7.66.0" - "@sentry/utils" "7.66.0" + "@sentry-internal/tracing" "7.74.0" + "@sentry/core" "7.74.0" + "@sentry/replay" "7.74.0" + "@sentry/types" "7.74.0" + "@sentry/utils" "7.74.0" tslib "^2.4.1 || ^1.9.3" "@sentry/cli@^1.74.6": @@ -2265,88 +2077,100 @@ proxy-from-env "^1.1.0" which "^2.0.2" -"@sentry/core@7.66.0": - version "7.66.0" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.66.0.tgz#8968f2a9e641d33e3750a8e24d1d39953680c4f2" - integrity sha512-WMAEPN86NeCJ1IT48Lqiz4MS5gdDjBwP4M63XP4msZn9aujSf2Qb6My5uT87AJr9zBtgk8MyJsuHr35F0P3q1w== +"@sentry/core@7.74.0": + version "7.74.0" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.74.0.tgz#2cfcb5133a4a3f82fbac09d3573ea9f508fb7c67" + integrity sha512-83NRuqn7nDZkSVBN5yJQqcpXDG4yMYiB7TkYUKrGTzBpRy6KUOrkCdybuKk0oraTIGiGSe5WEwCFySiNgR9FzA== dependencies: - "@sentry/types" "7.66.0" - "@sentry/utils" "7.66.0" + "@sentry/types" "7.74.0" + "@sentry/utils" "7.74.0" tslib "^2.4.1 || ^1.9.3" -"@sentry/integrations@7.66.0": - version "7.66.0" - resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-7.66.0.tgz#297d13fd2f567b0eba7faaa3727301db586b398a" - integrity sha512-2PNEnihG9e9Rjbz205+A4BYtFcS2XdgwsN6obAU6Yir7VIbskwZXxx87lKZuz6S53sOWPHleC7uvUBjL+Q6vYg== +"@sentry/integrations@7.74.0": + version "7.74.0" + resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-7.74.0.tgz#4f6159efd43d65b822cf26d273e0e1e763a6a887" + integrity sha512-O4UyxiV5wzXSDnEd9Z/SIt/5M12URWNtIJPPJjowlllzw8X9e3zBcnXmjMOLZ+mZWjQmRDjOoz3lPPQ17f7fvw== dependencies: - "@sentry/types" "7.66.0" - "@sentry/utils" "7.66.0" + "@sentry/core" "7.74.0" + "@sentry/types" "7.74.0" + "@sentry/utils" "7.74.0" localforage "^1.8.1" tslib "^2.4.1 || ^1.9.3" "@sentry/nextjs@^7.66.0": - version "7.66.0" - resolved "https://registry.yarnpkg.com/@sentry/nextjs/-/nextjs-7.66.0.tgz#4ee5a8dc99ed930d2957ac7e287918ff3ba31e87" - integrity sha512-CJwl3/rIJRR1isqWjGEE8CYiNUndvRksp7l0/75tfe4JoKTk+XS3tXcXVZyyXh34GU5San1c46ctiyodaGGIeg== + version "7.74.0" + resolved "https://registry.yarnpkg.com/@sentry/nextjs/-/nextjs-7.74.0.tgz#ccbc297ff0d0bcb8eaf65cad7222b25e75263777" + integrity sha512-ZxhlBKRV8To3NgNblJ+8RL1urDIzsdV9+8k9GZqNG5BFxLN2tJvbgHaxI7iV4E4qYpJAae379dWpvCzGWUXWkw== dependencies: "@rollup/plugin-commonjs" "24.0.0" - "@sentry/core" "7.66.0" - "@sentry/integrations" "7.66.0" - "@sentry/node" "7.66.0" - "@sentry/react" "7.66.0" - "@sentry/types" "7.66.0" - "@sentry/utils" "7.66.0" + "@sentry/core" "7.74.0" + "@sentry/integrations" "7.74.0" + "@sentry/node" "7.74.0" + "@sentry/react" "7.74.0" + "@sentry/types" "7.74.0" + "@sentry/utils" "7.74.0" + "@sentry/vercel-edge" "7.74.0" "@sentry/webpack-plugin" "1.20.0" chalk "3.0.0" rollup "2.78.0" stacktrace-parser "^0.1.10" tslib "^2.4.1 || ^1.9.3" -"@sentry/node@7.66.0": - version "7.66.0" - resolved "https://registry.yarnpkg.com/@sentry/node/-/node-7.66.0.tgz#d3e08471e1ecae28d3cd0ba3c18487ecb2449881" - integrity sha512-PxqIqLr4Sh5xcDfECiBQ4PuZ7v8yTgLhaRkruWrZPYxQrcJFPkwbFkw/IskzVnhT2VwXUmeWEIlRMQKBJ0t83A== +"@sentry/node@7.74.0": + version "7.74.0" + resolved "https://registry.yarnpkg.com/@sentry/node/-/node-7.74.0.tgz#c6b6704a3a238155f047972fd4c6944004347aba" + integrity sha512-uBmW2/z0cz/WFIG74ZF7lSipO0XNzMf9yrdqnZXnGDYsUZE4I4QiqDN0hNi6fkTgf9MYRC8uFem2OkAvyPJ74Q== dependencies: - "@sentry-internal/tracing" "7.66.0" - "@sentry/core" "7.66.0" - "@sentry/types" "7.66.0" - "@sentry/utils" "7.66.0" - cookie "^0.4.1" + "@sentry-internal/tracing" "7.74.0" + "@sentry/core" "7.74.0" + "@sentry/types" "7.74.0" + "@sentry/utils" "7.74.0" + cookie "^0.5.0" https-proxy-agent "^5.0.0" lru_map "^0.3.3" tslib "^2.4.1 || ^1.9.3" -"@sentry/react@7.66.0": - version "7.66.0" - resolved "https://registry.yarnpkg.com/@sentry/react/-/react-7.66.0.tgz#5f4d52a47b97e4daad0a2729ec6c88c0b29f0186" - integrity sha512-TC7kCkLoo+Klp9uywdV6tg8DDyn1CrTdndJghO6PoGz6sCa9k+t7K+z4E7MlgDoh3wiZwS2G2zhkT/xVeDRvJA== +"@sentry/react@7.74.0": + version "7.74.0" + resolved "https://registry.yarnpkg.com/@sentry/react/-/react-7.74.0.tgz#11e63e7f99cc60fa8c2846d929aa7dc0f0769e77" + integrity sha512-w5VODhLM8Kva2ZscGzgwLgkAi0TY+/Ht9SxdKlGFBJU9r7LllqzuGQ5HUcw9CPsQJnrL8VNdq8ngJPE1YbAUqw== dependencies: - "@sentry/browser" "7.66.0" - "@sentry/types" "7.66.0" - "@sentry/utils" "7.66.0" + "@sentry/browser" "7.74.0" + "@sentry/types" "7.74.0" + "@sentry/utils" "7.74.0" hoist-non-react-statics "^3.3.2" tslib "^2.4.1 || ^1.9.3" -"@sentry/replay@7.66.0": - version "7.66.0" - resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-7.66.0.tgz#5469144192824e7688c475ed29586a8cce6606f6" - integrity sha512-5Y2SlVTOFTo3uIycv0mRneBakQtLgWkOnsJaC5LB0Ip0TqVKiMCbQ578vvXp+yvRj4LcS1gNd98xTTNojBoQNg== +"@sentry/replay@7.74.0": + version "7.74.0" + resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-7.74.0.tgz#618d40f7c9ecc7589dd14df0c560b20a24839d3f" + integrity sha512-GoYa3cHTTFVI/J1cnZ0i4X128mf/JljaswO3PWNTe2k3lSHq/LM5aV0keClRvwM0W8hlix8oOTT06nnenOUmmw== dependencies: - "@sentry/core" "7.66.0" - "@sentry/types" "7.66.0" - "@sentry/utils" "7.66.0" + "@sentry/core" "7.74.0" + "@sentry/types" "7.74.0" + "@sentry/utils" "7.74.0" -"@sentry/types@7.66.0": - version "7.66.0" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.66.0.tgz#4ec290cc6a3dd2024a61a0bffb468cedb409f7fb" - integrity sha512-uUMSoSiar6JhuD8p7ON/Ddp4JYvrVd2RpwXJRPH1A4H4Bd4DVt1mKJy1OLG6HdeQv39XyhB1lPZckKJg4tATPw== +"@sentry/types@7.74.0": + version "7.74.0" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.74.0.tgz#810a62cd28db21c5f15f131da6525d7ddf7a29db" + integrity sha512-rI5eIRbUycWjn6s6o3yAjjWtIvYSxZDdnKv5je2EZINfLKcMPj1dkl6wQd2F4y7gLfD/N6Y0wZYIXC3DUdJQQg== -"@sentry/utils@7.66.0": - version "7.66.0" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.66.0.tgz#2e37c96610f26bc79ac064fca4222ea91fece68d" - integrity sha512-9GYUVgXjK66uXXcLXVMXVzlptqMtq1eJENCuDeezQiEFrNA71KkLDg00wESp+LL+bl3wpVTBApArpbF6UEG5hQ== +"@sentry/utils@7.74.0": + version "7.74.0" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.74.0.tgz#e0a16d345b2af6f8b09d157c8c8a3145d7a2070a" + integrity sha512-k3np8nuTPtx5KDODPtULfFln4UXdE56MZCcF19Jv6Ljxf+YN/Ady1+0Oi3e0XoSvFpWNyWnglauT7M65qCE6kg== dependencies: - "@sentry/types" "7.66.0" + "@sentry/types" "7.74.0" + tslib "^2.4.1 || ^1.9.3" + +"@sentry/vercel-edge@7.74.0": + version "7.74.0" + resolved "https://registry.yarnpkg.com/@sentry/vercel-edge/-/vercel-edge-7.74.0.tgz#eeb49a9520606400834585410ea249c1d1a825ab" + integrity sha512-KU7k2GrbGNAOfia8lcGDL90EQo7jqXv8cqyeEypU+7pe9q0R6horHA9J7f0T1P0zRYlqC6ab5RAlWdDvAdUJEQ== + dependencies: + "@sentry/core" "7.74.0" + "@sentry/types" "7.74.0" + "@sentry/utils" "7.74.0" tslib "^2.4.1 || ^1.9.3" "@sentry/webpack-plugin@1.20.0": @@ -2370,12 +2194,12 @@ buffer "~6.0.3" "@solana/web3.js@^1.70.1": - version "1.78.4" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.78.4.tgz#e8ca9abe4ec2af5fc540c1d272efee24aaffedb3" - integrity sha512-up5VG1dK+GPhykmuMIozJZBbVqpm77vbOG6/r5dS7NBGZonwHfTLdBbsYc3rjmaQ4DpCXUa3tUc4RZHRORvZrw== + version "1.87.1" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.87.1.tgz#da376cebbc4cc97ece0cb028d799163ea147f299" + integrity sha512-E8Y9bNlZ8TQlhOvCx1b7jG+TjA4SJLVwufmIk1+tcQctUhK5HiB1Q8ljd4yQDkFlk6OOeAlAeqvW0YntWJU94Q== dependencies: "@babel/runtime" "^7.22.6" - "@noble/curves" "^1.0.0" + "@noble/curves" "^1.2.0" "@noble/hashes" "^1.3.1" "@solana/buffer-layout" "^4.0.0" agentkeepalive "^4.3.0" @@ -2534,10 +2358,10 @@ magic-string "^0.25.0" string.prototype.matchall "^4.0.6" -"@swc/helpers@0.5.1": - version "0.5.1" - resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.1.tgz#e9031491aa3f26bfcc974a67f48bd456c8a5357a" - integrity sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg== +"@swc/helpers@0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.2.tgz#85ea0c76450b61ad7d10a37050289eded783c27d" + integrity sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw== dependencies: tslib "^2.4.0" @@ -2558,49 +2382,49 @@ lodash.merge "^4.6.2" postcss-selector-parser "6.0.10" -"@tanstack/query-core@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.33.0.tgz#7756da9a75a424e521622b1d84eb55b7a2b33715" - integrity sha512-qYu73ptvnzRh6se2nyBIDHGBQvPY1XXl3yR769B7B6mIDD7s+EZhdlWHQ67JI6UOTFRaI7wupnTnwJ3gE0Mr/g== +"@tanstack/query-core@4.36.1": + version "4.36.1" + resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.36.1.tgz#79f8c1a539d47c83104210be2388813a7af2e524" + integrity sha512-DJSilV5+ytBP1FbFcEJovv4rnnm/CokuVvrBEtW/Va9DvuJ3HksbXUJEpI0aV1KtuL4ZoO9AVE6PyNLzF7tLeA== -"@tanstack/query-persist-client-core@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@tanstack/query-persist-client-core/-/query-persist-client-core-4.33.0.tgz#38bddb653cd61fa7303039e6d13dd5f39c38d0e0" - integrity sha512-3P16+2JjcUU5CHi10jJuwd0ZQYvQtSuzLvCUCjVuAnj3GZjfSso1v8t6WAObAr9RPuIC6vDXeOQ3mr07EF/NxQ== +"@tanstack/query-persist-client-core@4.36.1": + version "4.36.1" + resolved "https://registry.yarnpkg.com/@tanstack/query-persist-client-core/-/query-persist-client-core-4.36.1.tgz#4d7284994bdc2a15fe6cbe7161be21e03033fe12" + integrity sha512-eocgCeI7D7TRv1IUUBMfVwOI0wdSmMkBIbkKhqEdTrnUHUQEeOaYac8oeZk2cumAWJdycu6P/wB+WqGynTnzXg== dependencies: - "@tanstack/query-core" "4.33.0" + "@tanstack/query-core" "4.36.1" "@tanstack/query-sync-storage-persister@^4.27.1": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.33.0.tgz#9f821335db7c08177211fe151a0ffd76f0b1f4e0" - integrity sha512-V6igMcdEOXPRpvmNFQ6I/iJaw9NhxWy7x8PWamm2cgSsLi8bHaDvUVuWkZm+ikI47QjoCUk7qll/82JYLaH+pw== + version "4.36.1" + resolved "https://registry.yarnpkg.com/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.36.1.tgz#bf5d800d54416bc88f150792a53e25ed8aa8769f" + integrity sha512-yMEt5hWe2+1eclf1agMtXHnPIkxEida0lYWkfdhR8U6KXk/lO4Vca6piJmhKI85t0NHlx3l/z6zX+t/Fn5O9NA== dependencies: - "@tanstack/query-persist-client-core" "4.33.0" + "@tanstack/query-persist-client-core" "4.36.1" "@tanstack/react-query-persist-client@^4.28.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@tanstack/react-query-persist-client/-/react-query-persist-client-4.33.0.tgz#ec37f43837c35d3f99738df49832b265e2723112" - integrity sha512-B3q0r1tqTTSkd9vctyqFj28xdGZJ+Dnr/7H05Ta1JF1w7EauVQl8ILrmXADecwvILnr1xoZO6lvi2W+mZxMinw== + version "4.36.1" + resolved "https://registry.yarnpkg.com/@tanstack/react-query-persist-client/-/react-query-persist-client-4.36.1.tgz#d96fa44cdc661534379623423da596a7b5dc13a7" + integrity sha512-32I5b9aAu4NCiXZ7Te/KEQLfHbYeTNriVPrKYcvEThnZ9tlW01vLcSoxpUIsMYRsembvJUUAkzYBAiZHLOd6pQ== dependencies: - "@tanstack/query-persist-client-core" "4.33.0" + "@tanstack/query-persist-client-core" "4.36.1" "@tanstack/react-query@^4.28.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.33.0.tgz#e927b0343a6ecaa948fee59e9ca98fe561062638" - integrity sha512-97nGbmDK0/m0B86BdiXzx3EW9RcDYKpnyL2+WwyuLHEgpfThYAnXFaMMmnTDuAO4bQJXEhflumIEUfKmP7ESGA== + version "4.36.1" + resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.36.1.tgz#acb589fab4085060e2e78013164868c9c785e5d2" + integrity sha512-y7ySVHFyyQblPl3J3eQBWpXZkliroki3ARnBKsdJchlgt7yJLRDUcf4B8soufgiYt3pEQIkBWBx1N9/ZPIeUWw== dependencies: - "@tanstack/query-core" "4.33.0" + "@tanstack/query-core" "4.36.1" use-sync-external-store "^1.2.0" -"@telegraf/types@^6.8.1": - version "6.8.1" - resolved "https://registry.yarnpkg.com/@telegraf/types/-/types-6.8.1.tgz#c9c567e8ba4fb3c656494f3901a7dfb22cb7d676" - integrity sha512-JCRQuPPDCreYQaAeOwnqIlWrs8pJVvaNEUWBVNvdK3oJoTUKyBV+3TsPrIcnGqLeapptznuTk5s4udTlZPvGTA== +"@telegraf/types@^6.9.0": + version "6.9.1" + resolved "https://registry.yarnpkg.com/@telegraf/types/-/types-6.9.1.tgz#ee2d335164f582db55337d77cc440c1faeadd510" + integrity sha512-bzqwhicZq401T0e09tu8b1KvGfJObPmzKU/iKCT5V466AsAZZWQrBYQ5edbmD1VZuHLEwopoOVY5wPP4HaLtug== "@testing-library/dom@^9.0.0": - version "9.3.1" - resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-9.3.1.tgz#8094f560e9389fb973fe957af41bf766937a9ee9" - integrity sha512-0DGPd9AR3+iDTjGoMpxIkAsUihHZ3Ai6CneU6bRRrffXMgzCdlNk43jTrD2/5LT6CBb3MWTP8v510JzYtahD2w== + version "9.3.3" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-9.3.3.tgz#108c23a5b0ef51121c26ae92eb3179416b0434f5" + integrity sha512-fB0R+fa3AUqbLHWyxXa2kGVtf1Fe1ZZFr0Zp6AIbIAzXb2mKbEXl+PCQNUOaq5lbTab5tfctfXRNsWXxa2f7Aw== dependencies: "@babel/code-frame" "^7.10.4" "@babel/runtime" "^7.12.5" @@ -2620,15 +2444,56 @@ "@testing-library/dom" "^9.0.0" "@types/react-dom" "^18.0.0" +"@typechain/ethers-v5@^10.2.0": + version "10.2.1" + resolved "https://registry.yarnpkg.com/@typechain/ethers-v5/-/ethers-v5-10.2.1.tgz#50241e6957683281ecfa03fb5a6724d8a3ce2391" + integrity sha512-n3tQmCZjRE6IU4h6lqUGiQ1j866n5MTCBJreNEHHVWXa2u9GJTaeYyU1/k+1qLutkyw+sS6VAN+AbeiTqsxd/A== + dependencies: + lodash "^4.17.15" + ts-essentials "^7.0.1" + "@types/aria-query@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.1.tgz#3286741fb8f1e1580ac28784add4c7a1d49bdfbc" - integrity sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q== + version "5.0.2" + resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.2.tgz#6f1225829d89794fd9f891989c9ce667422d7f64" + integrity sha512-PHKZuMN+K5qgKIWhBodXzQslTo5P+K/6LqeKXS6O/4liIDdZqaX5RXrCK++LAw+y/nptN48YmUMFiQHRSWYwtQ== + +"@types/babel__core@^7.20.2": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.2.tgz#215db4f4a35d710256579784a548907237728756" + integrity sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.5" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.5.tgz#281f4764bcbbbc51fdded0f25aa587b4ce14da95" + integrity sha512-h9yIuWbJKdOPLJTbmSpPzkF67e659PbQDba7ifWm5BJ8xTv+sDmS7rFmywkWOvXedGTivCdeGSIIX8WLcRTz8w== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.2" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.2.tgz#843e9f1f47c957553b0c374481dc4772921d6a6b" + integrity sha512-/AVzPICMhMOMYoSx9MoKpGDKdBRsIXMNByh1PXSZoa+v6ZoLa8xxtsT/uLQ/NJm0XVAWl/BvId4MlDeXJaeIZQ== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.2.tgz#4ddf99d95cfdd946ff35d2b65c978d9c9bf2645d" + integrity sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw== + dependencies: + "@babel/types" "^7.20.7" "@types/bn.js@^5.1.1": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.1.tgz#b51e1b55920a4ca26e9285ff79936bbdec910682" - integrity sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g== + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.2.tgz#162f5238c46f4bcbac07a98561724eca1fcf0c5e" + integrity sha512-dkpZu0szUtn9UXTmw+e0AJFd4D2XAxDnsCLdc05SfqpqzPEBft8eQr8uaFitfo/dUUOZERaLec2hHMG87A4Dxg== dependencies: "@types/node" "*" @@ -2640,26 +2505,26 @@ "@types/chai" "*" "@types/chai@*", "@types/chai@^4.3.5": - version "4.3.5" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.5.tgz#ae69bcbb1bebb68c4ac0b11e9d8ed04526b3562b" - integrity sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng== + version "4.3.8" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.8.tgz#aa200a264a3bc78ccfc1718eedbd3b9d5a591270" + integrity sha512-yW/qTM4mRBBcsA9Xw9FbcImYtFPY7sgr+G/O5RDYVmxiy9a+pE5FyoFUi8JYCZY5nicj8atrr1pcfPiYpeNGOA== "@types/connect@^3.4.33": - version "3.4.35" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" - integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + version "3.4.36" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.36.tgz#e511558c15a39cb29bd5357eebb57bd1459cd1ab" + integrity sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w== dependencies: "@types/node" "*" "@types/d3-array@^3.0.3": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@types/d3-array/-/d3-array-3.0.7.tgz#b128a0c0b0d9481d3281df47de0955730db384a1" - integrity sha512-4/Q0FckQ8TBjsB0VdGFemJOG8BLXUB2KKlL0VmZ+eOYeOnTb/wDRQqYWpBmQ6IlvWkXwkYiot+n9Px2aTJ7zGQ== + version "3.0.8" + resolved "https://registry.yarnpkg.com/@types/d3-array/-/d3-array-3.0.8.tgz#a5d0687a12b48142c6f124d5e3796054e91bcea5" + integrity sha512-2xAVyAUgaXHX9fubjcCbGAUOqYfRJN1em1EKR2HfzWBpObZhwfnZKvofTN4TplMqJdFQao61I+NVSai/vnBvDQ== "@types/d3-color@*": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-3.1.0.tgz#6594da178ded6c7c3842f3cc0ac84b156f12f2d4" - integrity sha512-HKuicPHJuvPgCD+np6Se9MQvS6OCbJmOjGvylzMJRlDwUXjKTTXs6Pwgk79O09Vj/ho3u1ofXnhFOaEWWPrlwA== + version "3.1.1" + resolved "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-3.1.1.tgz#43a2aa7836fdae19ce32fabe97742e787f4b2e08" + integrity sha512-CSAVrHAtM9wfuLJ2tpvvwCU/F22sm7rMHNN+yh9D6O6hyAms3+O0cgMpC1pm6UEUMOntuZC8bMt74PteiDUdCg== "@types/d3-ease@^3.0.0": version "3.0.0" @@ -2667,9 +2532,9 @@ integrity sha512-aMo4eaAOijJjA6uU+GIeW018dvy9+oH5Y2VPPzjjfxevvGQ/oRDs+tfYC9b50Q4BygRR8yE2QCLsrT0WtAVseA== "@types/d3-interpolate@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/d3-interpolate/-/d3-interpolate-3.0.1.tgz#e7d17fa4a5830ad56fe22ce3b4fac8541a9572dc" - integrity sha512-jx5leotSeac3jr0RePOH1KdR9rISG91QIE4Q2PYTu4OymLTZfA3SrnURSLzKH48HmXVUru50b8nje4E79oQSQw== + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/d3-interpolate/-/d3-interpolate-3.0.2.tgz#b5928cca26fc20dbfe689ff37d62f7bac434c74e" + integrity sha512-zAbCj9lTqW9J9PlF4FwnvEjXZUy75NQqPm7DMHZXuxCFTpuTrdK2NMYGQekf4hlasL78fCYOLu4EE3/tXElwow== dependencies: "@types/d3-color" "*" @@ -2679,23 +2544,23 @@ integrity sha512-0g/A+mZXgFkQxN3HniRDbXMN79K3CdTpLsevj+PXiTcb2hVyvkZUBg37StmgCQkaD84cUJ4uaDAWq7UJOQy2Tg== "@types/d3-scale@^4.0.2": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-4.0.4.tgz#3c5e2263eea5a3670cd91043b9f4d150a94c43f1" - integrity sha512-eq1ZeTj0yr72L8MQk6N6heP603ubnywSDRfNpi5enouR112HzGLS6RIvExCzZTraFF4HdzNpJMwA/zGiMoHUUw== + version "4.0.5" + resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-4.0.5.tgz#daa4faa5438315a37a1f5eb1bcdc5aeb3d3e5a2d" + integrity sha512-w/C++3W394MHzcLKO2kdsIn5KKNTOqeQVzyPSGPLzQbkPw/jpeaGtSRlakcKevGgGsjJxGsbqS0fPrVFDbHrDA== dependencies: "@types/d3-time" "*" "@types/d3-shape@^3.1.0": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-3.1.2.tgz#a3d421d8b0bc0c6c67cb3f4b4471ddc133cb0117" - integrity sha512-NN4CXr3qeOUNyK5WasVUV8NCSAx/CRVcwcb0BuuS1PiTqwIm6ABi1SyasLZ/vsVCFDArF+W4QiGzSry1eKYQ7w== + version "3.1.3" + resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-3.1.3.tgz#20eee7aad70f2562041af18e305fec6b48fd511d" + integrity sha512-cHMdIq+rhF5IVwAV7t61pcEXfEHsEsrbBUPkFGBwTXuxtTAkBBrnrNA8++6OWm3jwVsXoZYQM8NEekg6CPJ3zw== dependencies: "@types/d3-path" "*" "@types/d3-time@*", "@types/d3-time@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-3.0.0.tgz#e1ac0f3e9e195135361fa1a1d62f795d87e6e819" - integrity sha512-sZLCdHvBUcNby1cB6Fd3ZBrABbjz3v1Vm90nysCQ6Vt7vd6e/h9Lt7SiJUoEX0l4Dzc7P5llKyhqSi1ycSf1Hg== + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-3.0.1.tgz#f0c8f9037632cc4511ae55e7e1459dcb95fb3619" + integrity sha512-5j/AnefKAhCw4HpITmLDTPlf4vhi8o/dES+zbegfPb7LaGfNyqkLxBR6E+4yvTAgnJLmhe80EXFMzUs38fw4oA== "@types/d3-timer@^3.0.0": version "3.0.0" @@ -2703,32 +2568,32 @@ integrity sha512-HNB/9GHqu7Fo8AQiugyJbv6ZxYz58wef0esl4Mv828w1ZKpAshw/uFWVDUcIB9KKFeFKoxS3cHY07FFgtTRZ1g== "@types/debug@^4.1.7": - version "4.1.8" - resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.8.tgz#cef723a5d0a90990313faec2d1e22aee5eecb317" - integrity sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ== + version "4.1.9" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.9.tgz#906996938bc672aaf2fb8c0d3733ae1dda05b005" + integrity sha512-8Hz50m2eoS56ldRlepxSBa6PWEVCtzUo/92HgLc2qTMnotJNIm7xP+UZhyWoYsyOdd5dxZ+NZLb24rsKyFs2ow== dependencies: "@types/ms" "*" "@types/eslint-scope@^3.7.3": - version "3.7.4" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" - integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== + version "3.7.5" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.5.tgz#e28b09dbb1d9d35fdfa8a884225f00440dfc5a3e" + integrity sha512-JNvhIEyxVW6EoMIFIvj93ZOywYFatlpu9deeH6eSx6PE3WHYvHaQtmHmQeNw7aA81bYGBPPQqdtBm6b1SsQMmA== dependencies: "@types/eslint" "*" "@types/estree" "*" "@types/eslint@*": - version "8.44.2" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.2.tgz#0d21c505f98a89b8dd4d37fa162b09da6089199a" - integrity sha512-sdPRb9K6iL5XZOmBubg8yiFp5yS/JdUDQsq5e6h95km91MCYMuvp7mh1fjPEYUhvHepKpZOjnEaMBR4PxjWDzg== + version "8.44.4" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.4.tgz#28eaff82e1ca0a96554ec5bb0188f10ae1a74c2f" + integrity sha512-lOzjyfY/D9QR4hY9oblZ76B90MYTB3RrQ4z2vBIJKj9ROCRqdkYl2gSUx1x1a4IWPjKJZLL4Aw1Zfay7eMnmnA== dependencies: "@types/estree" "*" "@types/json-schema" "*" "@types/estree@*", "@types/estree@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" - integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== + version "1.0.2" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.2.tgz#ff02bc3dc8317cd668dfec247b750ba1f1d62453" + integrity sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA== "@types/estree@0.0.39": version "0.0.39" @@ -2744,9 +2609,9 @@ "@types/node" "*" "@types/json-schema@*", "@types/json-schema@^7.0.12", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": - version "7.0.12" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" - integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== + version "7.0.13" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.13.tgz#02c24f4363176d2d18fc8b70b9f3c54aba178a85" + integrity sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ== "@types/json5@^0.0.29": version "0.0.29" @@ -2759,50 +2624,43 @@ integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== "@types/ms@*": - version "0.7.31" - resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" - integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== + version "0.7.32" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.32.tgz#f6cd08939ae3ad886fcc92ef7f0109dacddf61ab" + integrity sha512-xPSg0jm4mqgEkNhowKgZFBNtwoEwF6gJ4Dhww+GFpm3IgtNseHQZ5IqdNwnquZEoANxyDAKDRAdVo4Z72VvD/g== -"@types/node@*": - version "20.4.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.4.5.tgz#9dc0a5cb1ccce4f7a731660935ab70b9c00a5d69" - integrity sha512-rt40Nk13II9JwQBdeYqmbn2Q6IVTA5uPhvSO+JVqdXw/6/4glI6oR9ezty/A9Hg5u7JH4OmYmuQ+XvjKm0Datg== +"@types/node@*", "@types/node@^20.5.9": + version "20.8.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.8.6.tgz#0dbd4ebcc82ad0128df05d0e6f57e05359ee47fa" + integrity sha512-eWO4K2Ji70QzKUqRy6oyJWUeB7+g2cRagT3T/nxYibYcT4y2BDL8lqolRXjTHmkZCdJfIPaY73KbJAZmcryxTQ== + dependencies: + undici-types "~5.25.1" "@types/node@^12.12.54", "@types/node@^12.12.6": version "12.20.55" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== -"@types/node@^20.5.9": - version "20.5.9" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.5.9.tgz#a70ec9d8fa0180a314c3ede0e20ea56ff71aed9a" - integrity sha512-PcGNd//40kHAS3sTlzKB9C9XL4K0sTup8nbG5lC14kzEteTNuAFh9u5nA0o5TWnSG2r/JNPRXFVcHJIIeRlmqQ== +"@types/prettier@^2.1.1": + version "2.7.3" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" + integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== "@types/prop-types@*": - version "15.7.5" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" - integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== + version "15.7.8" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.8.tgz#805eae6e8f41bd19e88917d2ea200dc992f405d3" + integrity sha512-kMpQpfZKSCBqltAJwskgePRaYRFukDkm1oItcAbC3gNELR20XIBcN9VRgg4+m8DKsTfkWeA4m4Imp4DDuWy7FQ== "@types/react-dom@^18.0.0", "@types/react-dom@^18.2.7": - version "18.2.7" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.7.tgz#67222a08c0a6ae0a0da33c3532348277c70abb63" - integrity sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA== + version "18.2.13" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.13.tgz#89cd7f9ec8b28c8b6f0392b9591671fb4a9e96b7" + integrity sha512-eJIUv7rPP+EC45uNYp/ThhSpE16k22VJUknt5OLoH9tbXoi8bMhwLf5xRuWMywamNbWzhrSmU7IBJfPup1+3fw== dependencies: "@types/react" "*" -"@types/react@*": - version "18.2.17" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.17.tgz#baa565b17ddb649c2dac85b5eaf9e9a1fe0f3b4e" - integrity sha512-u+e7OlgPPh+aryjOm5UJMX32OvB2E3QASOAqVMY6Ahs90djagxwv2ya0IctglNbNTexC12qCSMZG47KPfy1hAA== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - -"@types/react@^18.2.21": - version "18.2.21" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.21.tgz#774c37fd01b522d0b91aed04811b58e4e0514ed9" - integrity sha512-neFKG/sBAwGxHgXiIxnbm3/AAVQ/cMRS93hvBpg8xYRbeQSPVABp9U2bRnPf0iI4+Ucdv3plSxKK+3CW2ENJxA== +"@types/react@*", "@types/react@^18.2.21": + version "18.2.28" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.28.tgz#86877465c0fcf751659a36c769ecedfcfacee332" + integrity sha512-ad4aa/RaaJS3hyGz0BGegdnSRXQBkd1CCYDCdNjBPg90UUpLgo+WlJqb9fMYUxtehmzF3PJaTWqRZjko6BRzBg== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -2816,19 +2674,19 @@ "@types/node" "*" "@types/scheduler@*": - version "0.16.3" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" - integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== + version "0.16.4" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.4.tgz#fedc3e5b15c26dc18faae96bf1317487cb3658cf" + integrity sha512-2L9ifAGl7wmXwP4v3pN4p2FLhD0O1qsJpvKmNin5VA8+UvNVb447UDaAEV6UdrkA+m/Xs58U1RFps44x6TFsVQ== "@types/semver@^7.5.0": - version "7.5.1" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.1.tgz#0480eeb7221eb9bc398ad7432c9d7e14b1a5a367" - integrity sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg== + version "7.5.3" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.3.tgz#9a726e116beb26c24f1ccd6850201e1246122e04" + integrity sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw== "@types/trusted-types@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.3.tgz#a136f83b0758698df454e328759dbd3d44555311" - integrity sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g== + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.4.tgz#2b38784cd16957d3782e8e2b31c03bc1d13b4d65" + integrity sha512-IDaobHimLQhjwsQ/NMwRVfa/yL7L/wriQPMhw1ZJall0KX6E1oxk29XMDeilW5qTIg5aoiqf5Udy8U/51aNoQQ== "@types/ws@^7.4.4": version "7.4.7" @@ -2837,23 +2695,16 @@ dependencies: "@types/node" "*" -"@types/ws@^8.5.5": - version "8.5.5" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.5.tgz#af587964aa06682702ee6dcbc7be41a80e4b28eb" - integrity sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg== - dependencies: - "@types/node" "*" - "@typescript-eslint/eslint-plugin@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.5.0.tgz#5cee33edf0d45d5ec773e3b3111206b098ac8599" - integrity sha512-2pktILyjvMaScU6iK3925uvGU87E+N9rh372uGZgiMYwafaw9SXq86U04XPq3UH6tzRvNgBsub6x2DacHc33lw== + version "6.7.5" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.5.tgz#f4024b9f63593d0c2b5bd6e4ca027e6f30934d4f" + integrity sha512-JhtAwTRhOUcP96D0Y6KYnwig/MRQbOoLGXTON2+LlyB/N35SP9j1boai2zzwXb7ypKELXMx3DVk9UTaEq1vHEw== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.5.0" - "@typescript-eslint/type-utils" "6.5.0" - "@typescript-eslint/utils" "6.5.0" - "@typescript-eslint/visitor-keys" "6.5.0" + "@typescript-eslint/scope-manager" "6.7.5" + "@typescript-eslint/type-utils" "6.7.5" + "@typescript-eslint/utils" "6.7.5" + "@typescript-eslint/visitor-keys" "6.7.5" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" @@ -2862,71 +2713,71 @@ ts-api-utils "^1.0.1" "@typescript-eslint/parser@^5.4.2 || ^6.0.0", "@typescript-eslint/parser@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.5.0.tgz#3d6ed231c5e307c5f5f4a0d86893ec01e92b8c77" - integrity sha512-LMAVtR5GN8nY0G0BadkG0XIe4AcNMeyEy3DyhKGAh9k4pLSMBO7rF29JvDBpZGCmp5Pgz5RLHP6eCpSYZJQDuQ== - dependencies: - "@typescript-eslint/scope-manager" "6.5.0" - "@typescript-eslint/types" "6.5.0" - "@typescript-eslint/typescript-estree" "6.5.0" - "@typescript-eslint/visitor-keys" "6.5.0" + version "6.7.5" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.7.5.tgz#8d7ca3d1fbd9d5a58cc4d30b2aa797a760137886" + integrity sha512-bIZVSGx2UME/lmhLcjdVc7ePBwn7CLqKarUBL4me1C5feOd663liTGjMBGVcGr+BhnSLeP4SgwdvNnnkbIdkCw== + dependencies: + "@typescript-eslint/scope-manager" "6.7.5" + "@typescript-eslint/types" "6.7.5" + "@typescript-eslint/typescript-estree" "6.7.5" + "@typescript-eslint/visitor-keys" "6.7.5" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.5.0.tgz#f2cb20895aaad41b3ad27cc3a338ce8598f261c5" - integrity sha512-A8hZ7OlxURricpycp5kdPTH3XnjG85UpJS6Fn4VzeoH4T388gQJ/PGP4ole5NfKt4WDVhmLaQ/dBLNDC4Xl/Kw== +"@typescript-eslint/scope-manager@6.7.5": + version "6.7.5" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.7.5.tgz#1cf33b991043886cd67f4f3600b8e122fc14e711" + integrity sha512-GAlk3eQIwWOJeb9F7MKQ6Jbah/vx1zETSDw8likab/eFcqkjSD7BI75SDAeC5N2L0MmConMoPvTsmkrg71+B1A== dependencies: - "@typescript-eslint/types" "6.5.0" - "@typescript-eslint/visitor-keys" "6.5.0" + "@typescript-eslint/types" "6.7.5" + "@typescript-eslint/visitor-keys" "6.7.5" -"@typescript-eslint/type-utils@6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.5.0.tgz#6d246c93739282bc0d2e623f28d0dec6cfcc38d7" - integrity sha512-f7OcZOkRivtujIBQ4yrJNIuwyCQO1OjocVqntl9dgSIZAdKqicj3xFDqDOzHDlGCZX990LqhLQXWRnQvsapq8A== +"@typescript-eslint/type-utils@6.7.5": + version "6.7.5" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.7.5.tgz#0a65949ec16588d8956f6d967f7d9c84ddb2d72a" + integrity sha512-Gs0qos5wqxnQrvpYv+pf3XfcRXW6jiAn9zE/K+DlmYf6FcpxeNYN0AIETaPR7rHO4K2UY+D0CIbDP9Ut0U4m1g== dependencies: - "@typescript-eslint/typescript-estree" "6.5.0" - "@typescript-eslint/utils" "6.5.0" + "@typescript-eslint/typescript-estree" "6.7.5" + "@typescript-eslint/utils" "6.7.5" debug "^4.3.4" ts-api-utils "^1.0.1" -"@typescript-eslint/types@6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.5.0.tgz#f4e55cfd99ac5346ea772770bf212a3e689a8f04" - integrity sha512-eqLLOEF5/lU8jW3Bw+8auf4lZSbbljHR2saKnYqON12G/WsJrGeeDHWuQePoEf9ro22+JkbPfWQwKEC5WwLQ3w== +"@typescript-eslint/types@6.7.5": + version "6.7.5" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.7.5.tgz#4571320fb9cf669de9a95d9849f922c3af809790" + integrity sha512-WboQBlOXtdj1tDFPyIthpKrUb+kZf2VroLZhxKa/VlwLlLyqv/PwUNgL30BlTVZV1Wu4Asu2mMYPqarSO4L5ZQ== -"@typescript-eslint/typescript-estree@6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.5.0.tgz#1cef6bc822585e9ef89d88834bc902d911d747ed" - integrity sha512-q0rGwSe9e5Kk/XzliB9h2LBc9tmXX25G0833r7kffbl5437FPWb2tbpIV9wAATebC/018pGa9fwPDuvGN+LxWQ== +"@typescript-eslint/typescript-estree@6.7.5": + version "6.7.5" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.5.tgz#4578de1a26e9f24950f029a4f00d1bfe41f15a39" + integrity sha512-NhJiJ4KdtwBIxrKl0BqG1Ur+uw7FiOnOThcYx9DpOGJ/Abc9z2xNzLeirCG02Ig3vkvrc2qFLmYSSsaITbKjlg== dependencies: - "@typescript-eslint/types" "6.5.0" - "@typescript-eslint/visitor-keys" "6.5.0" + "@typescript-eslint/types" "6.7.5" + "@typescript-eslint/visitor-keys" "6.7.5" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.5.0.tgz#6668bee4f7f24978b11df8a2ea42d56eebc4662c" - integrity sha512-9nqtjkNykFzeVtt9Pj6lyR9WEdd8npPhhIPM992FWVkZuS6tmxHfGVnlUcjpUP2hv8r4w35nT33mlxd+Be1ACQ== +"@typescript-eslint/utils@6.7.5": + version "6.7.5" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.7.5.tgz#ab847b53d6b65e029314b8247c2336843dba81ab" + integrity sha512-pfRRrH20thJbzPPlPc4j0UNGvH1PjPlhlCMq4Yx7EGjV7lvEeGX0U6MJYe8+SyFutWgSHsdbJ3BXzZccYggezA== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.5.0" - "@typescript-eslint/types" "6.5.0" - "@typescript-eslint/typescript-estree" "6.5.0" + "@typescript-eslint/scope-manager" "6.7.5" + "@typescript-eslint/types" "6.7.5" + "@typescript-eslint/typescript-estree" "6.7.5" semver "^7.5.4" -"@typescript-eslint/visitor-keys@6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.5.0.tgz#1a6f474a0170a447b76f0699ce6700110fd11436" - integrity sha512-yCB/2wkbv3hPsh02ZS8dFQnij9VVQXJMN/gbQsaaY+zxALkZnxa/wagvLEFsAWMPv7d7lxQmNsIzGU1w/T/WyA== +"@typescript-eslint/visitor-keys@6.7.5": + version "6.7.5" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.5.tgz#84c68d6ceb5b12d5246b918b84f2b79affd6c2f1" + integrity sha512-3MaWdDZtLlsexZzDSdQWsFQ9l9nL8B80Z4fImSpyllFC/KLqWQRdEcB+gGGO+N3Q2uL40EsG66wZLsohPxNXvg== dependencies: - "@typescript-eslint/types" "6.5.0" + "@typescript-eslint/types" "6.7.5" eslint-visitor-keys "^3.4.1" "@vanilla-extract/css@1.9.1": @@ -2964,98 +2815,94 @@ integrity sha512-W58f2Rzz5lLmk0jbhgStVlZl5wEiPB1Ur3fRvUaBM+MrifZ3qskmFq/CiH//fEYeG5Dh9vF1qRviMMH46cX9Nw== "@vitejs/plugin-react@^4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.0.4.tgz#31c3f779dc534e045c4b134e7cf7b150af0a7646" - integrity sha512-7wU921ABnNYkETiMaZy7XqpueMnpu5VxvVps13MjmCo+utBdD79sZzrApHawHtVX66cCJQQTXFcjH0y9dSUK8g== + version "4.1.0" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.1.0.tgz#e4f56f46fd737c5d386bb1f1ade86ba275fe09bd" + integrity sha512-rM0SqazU9iqPUraQ2JlIvReeaxOoRj6n+PzB1C0cBzIbd8qP336nC39/R9yPi3wVcah7E7j/kdU1uCUqMEU4OQ== dependencies: - "@babel/core" "^7.22.9" + "@babel/core" "^7.22.20" "@babel/plugin-transform-react-jsx-self" "^7.22.5" "@babel/plugin-transform-react-jsx-source" "^7.22.5" + "@types/babel__core" "^7.20.2" react-refresh "^0.14.0" -"@vitest/expect@0.34.3": - version "0.34.3" - resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-0.34.3.tgz#576e1fd6a3a8b8b7a79a06477f3d450a77d67852" - integrity sha512-F8MTXZUYRBVsYL1uoIft1HHWhwDbSzwAU9Zgh8S6WFC3YgVb4AnFV2GXO3P5Em8FjEYaZtTnQYoNwwBrlOMXgg== +"@vitest/expect@0.34.6": + version "0.34.6" + resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-0.34.6.tgz#608a7b7a9aa3de0919db99b4cc087340a03ea77e" + integrity sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw== dependencies: - "@vitest/spy" "0.34.3" - "@vitest/utils" "0.34.3" - chai "^4.3.7" + "@vitest/spy" "0.34.6" + "@vitest/utils" "0.34.6" + chai "^4.3.10" -"@vitest/runner@0.34.3": - version "0.34.3" - resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-0.34.3.tgz#ce09b777d133bbcf843e1a67f4a743365764e097" - integrity sha512-lYNq7N3vR57VMKMPLVvmJoiN4bqwzZ1euTW+XXYH5kzr3W/+xQG3b41xJn9ChJ3AhYOSoweu974S1V3qDcFESA== +"@vitest/runner@0.34.6": + version "0.34.6" + resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-0.34.6.tgz#6f43ca241fc96b2edf230db58bcde5b974b8dcaf" + integrity sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ== dependencies: - "@vitest/utils" "0.34.3" + "@vitest/utils" "0.34.6" p-limit "^4.0.0" pathe "^1.1.1" -"@vitest/snapshot@0.34.3": - version "0.34.3" - resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-0.34.3.tgz#cb4767aa44711a1072bd2e06204b659275c4f0f2" - integrity sha512-QyPaE15DQwbnIBp/yNJ8lbvXTZxS00kRly0kfFgAD5EYmCbYcA+1EEyRalc93M0gosL/xHeg3lKAClIXYpmUiQ== +"@vitest/snapshot@0.34.6": + version "0.34.6" + resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-0.34.6.tgz#b4528cf683b60a3e8071cacbcb97d18b9d5e1d8b" + integrity sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w== dependencies: magic-string "^0.30.1" pathe "^1.1.1" pretty-format "^29.5.0" -"@vitest/spy@0.34.3": - version "0.34.3" - resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-0.34.3.tgz#d4cf25e6ca9230991a0223ecd4ec2df30f0784ff" - integrity sha512-N1V0RFQ6AI7CPgzBq9kzjRdPIgThC340DGjdKdPSE8r86aUSmeliTUgkTqLSgtEwWWsGfBQ+UetZWhK0BgJmkQ== +"@vitest/spy@0.34.6": + version "0.34.6" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-0.34.6.tgz#b5e8642a84aad12896c915bce9b3cc8cdaf821df" + integrity sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ== dependencies: tinyspy "^2.1.1" -"@vitest/utils@0.34.3": - version "0.34.3" - resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-0.34.3.tgz#6e243189a358b736b9fc0216e6b6979bc857e897" - integrity sha512-kiSnzLG6m/tiT0XEl4U2H8JDBjFtwVlaE8I3QfGiMFR0QvnRDfYfdP3YvTBWM/6iJDAyaPY6yVQiCTUc7ZzTHA== +"@vitest/utils@0.34.6": + version "0.34.6" + resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-0.34.6.tgz#38a0a7eedddb8e7291af09a2409cb8a189516968" + integrity sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A== dependencies: diff-sequences "^29.4.3" loupe "^2.3.6" pretty-format "^29.5.0" -"@wagmi/chains@1.6.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@wagmi/chains/-/chains-1.6.0.tgz#eb992ad28dbaaab729b5bcab3e5b461e8a035656" - integrity sha512-5FRlVxse5P4ZaHG3GTvxwVANSmYJas1eQrTBHhjxVtqXoorm0aLmCHbhmN8Xo1yu09PaWKlleEvfE98yH4AgIw== - "@wagmi/chains@1.8.0", "@wagmi/chains@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@wagmi/chains/-/chains-1.8.0.tgz#70e5fd0d50c8f9b8e63585eaf8544481e71707d3" integrity sha512-UXo0GF0Cl0+neKC2KAmVAahv8L/5rACbFRRqkDvHMefzY6Fh7yzJd8F4GaGNNG3w4hj8eUB/E3+dEpaTYDN62w== -"@wagmi/connectors@3.1.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@wagmi/connectors/-/connectors-3.1.1.tgz#3a7993e1e6865370aa9635b7a5d53f0faf0534f1" - integrity sha512-ewOV40AlrXcX018qckU0V9OCsDgHhs+KZjQJZhlplqRtc2ijjS62B5kcypXkcTtfU5qXUBA9KEwPsSTxGdT4ag== +"@wagmi/connectors@3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@wagmi/connectors/-/connectors-3.1.2.tgz#4fd33fc4061ffb53c68860a203f099c6cac649c3" + integrity sha512-IlLKErqCzQRBUcCvXGPowcczbWcvJtEG006gPsAoePNJEXCHEWoKASghgu+L/bqD7006Z6mW6zlTNjcSQJvFAg== dependencies: "@coinbase/wallet-sdk" "^3.6.6" "@ledgerhq/connect-kit-loader" "^1.1.0" "@safe-global/safe-apps-provider" "^0.17.1" "@safe-global/safe-apps-sdk" "^8.0.0" - "@walletconnect/ethereum-provider" "2.10.0" + "@walletconnect/ethereum-provider" "2.10.1" "@walletconnect/legacy-provider" "^2.0.0" - "@walletconnect/modal" "2.6.1" - "@walletconnect/utils" "2.10.0" + "@walletconnect/modal" "2.6.2" + "@walletconnect/utils" "2.10.1" abitype "0.8.7" eventemitter3 "^4.0.7" -"@wagmi/core@1.4.1", "@wagmi/core@^1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@wagmi/core/-/core-1.4.1.tgz#808a44260e1149709649b6ab2b4425988edbdd02" - integrity sha512-b6LDFL0vZSCNcIHjnJzv++hakavTTt1/2WEQg2S5eEnaHTp7UoQlwfCyjKeiBhRih4yF34N06ea8cyEVjyjXrw== +"@wagmi/core@1.4.3", "@wagmi/core@^1.4.3": + version "1.4.3" + resolved "https://registry.yarnpkg.com/@wagmi/core/-/core-1.4.3.tgz#1dfe1492b3cc1579d18fa07c88a9cfb82111ffcc" + integrity sha512-CIV9jwv5ue+WpqmA3FvwGa+23cppe7oIaz6TRnlGm0Hm0wDImSaQSWqcsFyOPvleD29oOIJ8e3KnHINEvI64AA== dependencies: - "@wagmi/connectors" "3.1.1" + "@wagmi/connectors" "3.1.2" abitype "0.8.7" eventemitter3 "^4.0.7" zustand "^4.3.1" -"@walletconnect/core@2.10.0": - version "2.10.0" - resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-2.10.0.tgz#b659de4dfb374becd938964abd4f2150d410e617" - integrity sha512-Z8pdorfIMueuiBXLdnf7yloiO9JIiobuxN3j0OTal+MYc4q5/2O7d+jdD1DAXbLi1taJx3x60UXT/FPVkjIqIQ== +"@walletconnect/core@2.10.1": + version "2.10.1" + resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-2.10.1.tgz#d1fb442bd77424666bacdb0f5a07f7708fb3d984" + integrity sha512-WAoXfmj+Zy5q48TnrKUjmHXJCBahzKwbul+noepRZf7JDtUAZ9IOWpUjg+UPRbfK5EiWZ0TF42S6SXidf7EHoQ== dependencies: "@walletconnect/heartbeat" "1.2.1" "@walletconnect/jsonrpc-provider" "1.0.13" @@ -3068,8 +2915,8 @@ "@walletconnect/relay-auth" "^1.0.4" "@walletconnect/safe-json" "^1.0.2" "@walletconnect/time" "^1.0.2" - "@walletconnect/types" "2.10.0" - "@walletconnect/utils" "2.10.0" + "@walletconnect/types" "2.10.1" + "@walletconnect/utils" "2.10.1" events "^3.3.0" lodash.isequal "4.5.0" uint8arrays "^3.1.0" @@ -3102,19 +2949,19 @@ dependencies: tslib "1.14.1" -"@walletconnect/ethereum-provider@2.10.0": - version "2.10.0" - resolved "https://registry.yarnpkg.com/@walletconnect/ethereum-provider/-/ethereum-provider-2.10.0.tgz#eebde38674222a48be35bb4aa3f6a74247ba059b" - integrity sha512-NyTm7RcrtAiSaYQPh6G4sOtr1kg/pL5Z3EDE6rBTV3Se5pMsYvtuwMiSol7MidsQpf4ux9HFhthTO3imcoWImw== +"@walletconnect/ethereum-provider@2.10.1": + version "2.10.1" + resolved "https://registry.yarnpkg.com/@walletconnect/ethereum-provider/-/ethereum-provider-2.10.1.tgz#4733a98f0b388cf5ae6c2b269f50da87da432ee5" + integrity sha512-Yhoz8EXkKzxOlBT6G+elphqCx/gkH6RxD9/ZAiy9lLc8Ng5p1gvKCVVP5zsGNE9FbkKmHd+J9JJRzn2Bw2yqtQ== dependencies: "@walletconnect/jsonrpc-http-connection" "^1.0.7" "@walletconnect/jsonrpc-provider" "^1.0.13" "@walletconnect/jsonrpc-types" "^1.0.3" "@walletconnect/jsonrpc-utils" "^1.0.8" - "@walletconnect/sign-client" "2.10.0" - "@walletconnect/types" "2.10.0" - "@walletconnect/universal-provider" "2.10.0" - "@walletconnect/utils" "2.10.0" + "@walletconnect/sign-client" "2.10.1" + "@walletconnect/types" "2.10.1" + "@walletconnect/universal-provider" "2.10.1" + "@walletconnect/utils" "2.10.1" events "^3.3.0" "@walletconnect/events@^1.0.1": @@ -3257,30 +3104,30 @@ pino "7.11.0" tslib "1.14.1" -"@walletconnect/modal-core@2.6.1": - version "2.6.1" - resolved "https://registry.yarnpkg.com/@walletconnect/modal-core/-/modal-core-2.6.1.tgz#bc76055d0b644a2d4b98024324825c108a700905" - integrity sha512-f2hYlJ5pwzGvjyaZ6BoGR5uiMgXzWXt6w6ktt1N8lmY6PiYp8whZgqx2hTxVWwVlsGnaIfh6UHp1hGnANx0eTQ== +"@walletconnect/modal-core@2.6.2": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@walletconnect/modal-core/-/modal-core-2.6.2.tgz#d73e45d96668764e0c8668ea07a45bb8b81119e9" + integrity sha512-cv8ibvdOJQv2B+nyxP9IIFdxvQznMz8OOr/oR/AaUZym4hjXNL/l1a2UlSQBXrVjo3xxbouMxLb3kBsHoYP2CA== dependencies: - valtio "1.11.0" + valtio "1.11.2" -"@walletconnect/modal-ui@2.6.1": - version "2.6.1" - resolved "https://registry.yarnpkg.com/@walletconnect/modal-ui/-/modal-ui-2.6.1.tgz#200c54c8dfe3c71321abb2724e18bb357dfd6371" - integrity sha512-RFUOwDAMijSK8B7W3+KoLKaa1l+KEUG0LCrtHqaB0H0cLnhEGdLR+kdTdygw+W8+yYZbkM5tXBm7MlFbcuyitA== +"@walletconnect/modal-ui@2.6.2": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@walletconnect/modal-ui/-/modal-ui-2.6.2.tgz#fa57c087c57b7f76aaae93deab0f84bb68b59cf9" + integrity sha512-rbdstM1HPGvr7jprQkyPggX7rP4XiCG85ZA+zWBEX0dVQg8PpAgRUqpeub4xQKDgY7pY/xLRXSiCVdWGqvG2HA== dependencies: - "@walletconnect/modal-core" "2.6.1" - lit "2.7.6" + "@walletconnect/modal-core" "2.6.2" + lit "2.8.0" motion "10.16.2" qrcode "1.5.3" -"@walletconnect/modal@2.6.1": - version "2.6.1" - resolved "https://registry.yarnpkg.com/@walletconnect/modal/-/modal-2.6.1.tgz#066fdbfcff83b58c8a9da66ab4af0eb93e3626de" - integrity sha512-G84tSzdPKAFk1zimgV7JzIUFT5olZUVtI3GcOk77OeLYjlMfnDT23RVRHm5EyCrjkptnvpD0wQScXePOFd2Xcw== +"@walletconnect/modal@2.6.2": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@walletconnect/modal/-/modal-2.6.2.tgz#4b534a836f5039eeb3268b80be7217a94dd12651" + integrity sha512-eFopgKi8AjKf/0U4SemvcYw9zlLpx9njVN8sf6DAkowC2Md0gPU/UNEbH1Wwj407pEKnEds98pKWib1NN1ACoA== dependencies: - "@walletconnect/modal-core" "2.6.1" - "@walletconnect/modal-ui" "2.6.1" + "@walletconnect/modal-core" "2.6.2" + "@walletconnect/modal-ui" "2.6.2" "@walletconnect/randombytes@^1.0.3": version "1.0.3" @@ -3319,19 +3166,19 @@ dependencies: tslib "1.14.1" -"@walletconnect/sign-client@2.10.0": - version "2.10.0" - resolved "https://registry.yarnpkg.com/@walletconnect/sign-client/-/sign-client-2.10.0.tgz#0fee8f12821e37783099f0c7bd64e6efdfbd9d86" - integrity sha512-hbDljDS53kR/It3oXD91UkcOsT6diNnW5+Zzksm0YEfwww5dop/YfNlcdnc8+jKUhWOL/YDPNQCjzsCSNlVzbw== +"@walletconnect/sign-client@2.10.1": + version "2.10.1" + resolved "https://registry.yarnpkg.com/@walletconnect/sign-client/-/sign-client-2.10.1.tgz#db60bc9400cd79f0cb2380067343512b21ee4749" + integrity sha512-iG3eJGi1yXeG3xGeVSSMf8wDFyx239B0prLQfy1uYDtYFb2ynnH/09oqAZyKn96W5nfQzUgM2Mz157PVdloH3Q== dependencies: - "@walletconnect/core" "2.10.0" + "@walletconnect/core" "2.10.1" "@walletconnect/events" "^1.0.1" "@walletconnect/heartbeat" "1.2.1" "@walletconnect/jsonrpc-utils" "1.0.8" "@walletconnect/logger" "^2.0.1" "@walletconnect/time" "^1.0.2" - "@walletconnect/types" "2.10.0" - "@walletconnect/utils" "2.10.0" + "@walletconnect/types" "2.10.1" + "@walletconnect/utils" "2.10.1" events "^3.3.0" "@walletconnect/time@^1.0.2": @@ -3341,10 +3188,10 @@ dependencies: tslib "1.14.1" -"@walletconnect/types@2.10.0": - version "2.10.0" - resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-2.10.0.tgz#5d63235b49e03d609521402a4b49627dbc4ed514" - integrity sha512-kSTA/WZnbKdEbvbXSW16Ty6dOSzOZCHnGg6JH7q1MuraalD2HuNg00lVVu7QAZ/Rj1Gn9DAkrgP5Wd5a8Xq//Q== +"@walletconnect/types@2.10.1": + version "2.10.1" + resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-2.10.1.tgz#1355bce236f3eef575716ea3efe4beed98a873ef" + integrity sha512-7pccAhajQdiH2kYywjE1XI64IqRI+4ioyGy0wvz8d0UFQ/DSG3MLKR8jHf5aTOafQQ/HRLz6xvlzN4a7gIVkUQ== dependencies: "@walletconnect/events" "^1.0.1" "@walletconnect/heartbeat" "1.2.1" @@ -3353,25 +3200,25 @@ "@walletconnect/logger" "^2.0.1" events "^3.3.0" -"@walletconnect/universal-provider@2.10.0": - version "2.10.0" - resolved "https://registry.yarnpkg.com/@walletconnect/universal-provider/-/universal-provider-2.10.0.tgz#565d6478dcb5cc66955e5f03d6a00f51c9bcac14" - integrity sha512-jtVWf+AeTCqBcB3lCmWkv3bvSmdRCkQdo67GNoT5y6/pvVHMxfjgrJNBOUsWQMxpREpWDpZ993X0JRjsYVsMcA== +"@walletconnect/universal-provider@2.10.1": + version "2.10.1" + resolved "https://registry.yarnpkg.com/@walletconnect/universal-provider/-/universal-provider-2.10.1.tgz#c4a77bd2eed1a335edae5b2b298636092fff63ef" + integrity sha512-81QxTH/X4dRoYCz0U9iOrBYOcj7N897ONcB57wsGhEkV7Rc9htmWJq2CzeOuxvVZ+pNZkE+/aw9LrhizO1Ltxg== dependencies: "@walletconnect/jsonrpc-http-connection" "^1.0.7" "@walletconnect/jsonrpc-provider" "1.0.13" "@walletconnect/jsonrpc-types" "^1.0.2" "@walletconnect/jsonrpc-utils" "^1.0.7" "@walletconnect/logger" "^2.0.1" - "@walletconnect/sign-client" "2.10.0" - "@walletconnect/types" "2.10.0" - "@walletconnect/utils" "2.10.0" + "@walletconnect/sign-client" "2.10.1" + "@walletconnect/types" "2.10.1" + "@walletconnect/utils" "2.10.1" events "^3.3.0" -"@walletconnect/utils@2.10.0": - version "2.10.0" - resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-2.10.0.tgz#6918d12180d797b8bd4a19fb2ff128e394e181d6" - integrity sha512-9GRyEz/7CJW+G04RvrjPET5k7hOEsB9b3fF9cWDk/iDCxSWpbkU/hv/urRB36C+gvQMAZgIZYX3dHfzJWkY/2g== +"@walletconnect/utils@2.10.1": + version "2.10.1" + resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-2.10.1.tgz#65b37c9800eb0e80a08385b6987471fb46e1e22e" + integrity sha512-DM0dKgm9O58l7VqJEyV2OVv16XRePhDAReI23let6WdW1dSpw/Y/A89Lp99ZJOjLm2FxyblMRF3YRaZtHwBffw== dependencies: "@stablelib/chacha20poly1305" "1.0.1" "@stablelib/hkdf" "1.0.1" @@ -3381,7 +3228,7 @@ "@walletconnect/relay-api" "^1.0.9" "@walletconnect/safe-json" "^1.0.2" "@walletconnect/time" "^1.0.2" - "@walletconnect/types" "2.10.0" + "@walletconnect/types" "2.10.1" "@walletconnect/window-getters" "^1.0.1" "@walletconnect/window-metadata" "^1.0.1" detect-browser "5.3.0" @@ -3403,36 +3250,6 @@ "@walletconnect/window-getters" "^1.0.1" tslib "1.14.1" -"@web3modal/core@2.7.1": - version "2.7.1" - resolved "https://registry.yarnpkg.com/@web3modal/core/-/core-2.7.1.tgz#257534d45f7b5d6bddbc667f787c094eb91dd281" - integrity sha512-eFWR1tK1qN4FguhaZq2VW0AVr8DC/Fox2eJnK1eTfk32hxSgUtl8wr5fVM8EoLeoapQ7Zcc0SNg/QLuLQ9t2tA== - dependencies: - valtio "1.11.0" - -"@web3modal/ethereum@^2.7.1": - version "2.7.1" - resolved "https://registry.yarnpkg.com/@web3modal/ethereum/-/ethereum-2.7.1.tgz#464dbc1d00d075c16961b77e9a353b1966538653" - integrity sha512-1x3qhYh9qgtvw1MDQD4VeDf2ZOsVANKRPtUty4lF+N4L8xnAIwvNKUAMA4j6T5xSsjqUfq5Tdy5mYsNxLmsWMA== - -"@web3modal/react@^2.7.1": - version "2.7.1" - resolved "https://registry.yarnpkg.com/@web3modal/react/-/react-2.7.1.tgz#c768aae41bfe15abe379f8b6489d69d153fc7a46" - integrity sha512-+zvP5Q7Q3ozW2hyA1NvS8giVDeZWA6PWgVhKA6656dCnOutonPUpWYuFPJahsFBYCrhLO8ApPmomgb6Dx/mh5A== - dependencies: - "@web3modal/core" "2.7.1" - "@web3modal/ui" "2.7.1" - -"@web3modal/ui@2.7.1": - version "2.7.1" - resolved "https://registry.yarnpkg.com/@web3modal/ui/-/ui-2.7.1.tgz#9c2cb0f66623fcf41084f50e63acff33f26b0635" - integrity sha512-JpGJbLAl/Wmuyyn+JwuwtlPD8mUW2HV/gsSxKWZoElgjbfDY4vjHo9PH2G++2HhugISfzjawp43r8lP/hWgWOQ== - dependencies: - "@web3modal/core" "2.7.1" - lit "2.7.6" - motion "10.16.2" - qrcode "1.5.3" - "@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" @@ -3564,42 +3381,34 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -"@yearn-finance/web-lib@3.0.37": - version "3.0.37" - resolved "https://registry.yarnpkg.com/@yearn-finance/web-lib/-/web-lib-3.0.37.tgz#e2e8679e2acbcc5041aeb13f9338a4b85aa3d466" - integrity sha512-ocQFwO2QPiK9HIbtkYnqWIVUGRbsAQ/WsYcHKElvc4IUUSpxGm537eFCwwWApLaYXtHIRvb1LHafja+62DDhbg== +"@yearn-finance/web-lib@^3.0.57": + version "3.0.57" + resolved "https://registry.yarnpkg.com/@yearn-finance/web-lib/-/web-lib-3.0.57.tgz#a1918e313c1d53d48641c7de9a71e2f977379c9f" + integrity sha512-AOrv6MzQuTuF+VWkLXhqpMXWNVju8PiFDt3+qZTttfJB7QggeRTb7Hc2mJAVuyhW5CX/4xW4fDTs4+hpEBQp7A== dependencies: - "@babel/core" "^7.22.17" + "@babel/core" "^7.23.0" "@headlessui/react" "^1.7.17" - "@rainbow-me/rainbowkit" "^1.0.11" + "@rainbow-me/rainbowkit" "^1.1.1" "@react-hookz/web" "^23.1.0" "@tailwindcss/forms" "^0.5.6" "@tailwindcss/typography" "^0.5.10" "@wagmi/chains" "1.8.0" - "@wagmi/core" "1.4.1" - "@web3modal/ethereum" "^2.7.1" - "@web3modal/react" "^2.7.1" - autoprefixer "^10.4.15" - axios "^1.5.0" - csstype "^3.0.10" - dayjs "^1.11.9" - encoding "^0.1.13" + "@wagmi/core" "^1.4.3" + axios "^1.5.1" + dayjs "^1.11.10" ethers "5.7.2" eventemitter3 "^5.0.1" - graphql "^16.8.0" + graphql "^16.8.1" graphql-request "^6.1.0" - lokijs "^1.5.12" - next "^13.4.19" + next "^13.5.4" nprogress "^0.2.0" - pino-pretty "^10.2.0" react-hot-toast "2.4.1" - sass "^1.66.1" - sharp "^0.32.5" + sass "^1.69.0" + sharp "^0.32.6" tailwindcss "^3.3.3" - tsup "^7.2.0" - viem "1.10.9" - wagmi "1.4.1" - zod "^3.22.2" + viem "^1.15.4" + wagmi "^1.4.3" + zod "^3.22.4" JSONStream@^1.3.5: version "1.3.5" @@ -3614,11 +3423,6 @@ abitype@0.8.7: resolved "https://registry.yarnpkg.com/abitype/-/abitype-0.8.7.tgz#e4b3f051febd08111f486c0cc6a98fa72d033622" integrity sha512-wQ7hV8Yg/yKmGyFpqrNZufCxbszDe5es4AZGYPBitocfSqXtjrTG9JMWFcc4N30ukl2ve48aBTwt7NJxVQdU3w== -abitype@0.9.3: - version "0.9.3" - resolved "https://registry.yarnpkg.com/abitype/-/abitype-0.9.3.tgz#294d25288ee683d72baf4e1fed757034e3c8c277" - integrity sha512-dz4qCQLurx97FQhnb/EIYTk/ldQ+oafEDUqC0VVIeQS1Q48/YWt/9YNfMmp9SLFqN41ktxny3c8aYxHjmFIB/w== - abitype@0.9.8: version "0.9.8" resolved "https://registry.yarnpkg.com/abitype/-/abitype-0.9.8.tgz#1f120b6b717459deafd213dfbf3a3dd1bf10ae8c" @@ -3785,6 +3589,16 @@ aria-query@^5.1.3: dependencies: dequal "^2.0.3" +array-back@^3.0.1, array-back@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0" + integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== + +array-back@^4.0.1, array-back@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-4.0.2.tgz#8004e999a6274586beeb27342168652fdb89fa1e" + integrity sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg== + array-buffer-byte-length@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" @@ -3833,44 +3647,45 @@ array.prototype.findlastindex@^1.2.2: get-intrinsic "^1.2.1" array.prototype.flat@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" - integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" + integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" array.prototype.flatmap@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" - integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" + integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" array.prototype.tosorted@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz#ccf44738aa2b5ac56578ffda97c03fd3e23dd532" - integrity sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ== + version "1.1.2" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz#620eff7442503d66c799d95503f82b475745cefd" + integrity sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" - get-intrinsic "^1.1.3" + get-intrinsic "^1.2.1" -arraybuffer.prototype.slice@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz#9b5ea3868a6eebc30273da577eb888381c0044bb" - integrity sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw== +arraybuffer.prototype.slice@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" + integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== dependencies: array-buffer-byte-length "^1.0.0" call-bind "^1.0.2" define-properties "^1.2.0" + es-abstract "^1.22.1" get-intrinsic "^1.2.1" is-array-buffer "^3.0.2" is-shared-array-buffer "^1.0.2" @@ -3925,13 +3740,13 @@ atomic-sleep@^1.0.0: integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== autoprefixer@^10.4.15: - version "10.4.15" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.15.tgz#a1230f4aeb3636b89120b34a1f513e2f6834d530" - integrity sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew== + version "10.4.16" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.16.tgz#fad1411024d8670880bdece3970aa72e3572feb8" + integrity sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ== dependencies: browserslist "^4.21.10" - caniuse-lite "^1.0.30001520" - fraction.js "^4.2.0" + caniuse-lite "^1.0.30001538" + fraction.js "^4.3.6" normalize-range "^0.1.2" picocolors "^1.0.0" postcss-value-parser "^4.2.0" @@ -3942,14 +3757,14 @@ available-typed-arrays@^1.0.5: integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== axe-core@^4.6.2: - version "4.7.2" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.2.tgz#040a7342b20765cb18bb50b628394c21bccc17a0" - integrity sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g== + version "4.8.2" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.8.2.tgz#2f6f3cde40935825cf4465e3c1c9e77b240ff6ae" + integrity sha512-/dlp0fxyM3R8YW7MFzaHWXrf4zzbr0vaYb23VBFCl83R7nWNPg/yaQw2Dc8jzCMmDVLhSdzH8MjrsuIUuvX+6g== -axios@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.5.0.tgz#f02e4af823e2e46a9768cfc74691fdd0517ea267" - integrity sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ== +axios@^1.5.0, axios@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.5.1.tgz#11fbaa11fc35f431193a9564109c88c1f27b585f" + integrity sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A== dependencies: follow-redirects "^1.15.0" form-data "^4.0.0" @@ -3985,29 +3800,29 @@ babel-loader@^9.1.3: find-cache-dir "^4.0.0" schema-utils "^4.0.0" -babel-plugin-polyfill-corejs2@^0.4.5: - version "0.4.5" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz#8097b4cb4af5b64a1d11332b6fb72ef5e64a054c" - integrity sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg== +babel-plugin-polyfill-corejs2@^0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz#b2df0251d8e99f229a8e60fc4efa9a68b41c8313" + integrity sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q== dependencies: "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.4.2" + "@babel/helper-define-polyfill-provider" "^0.4.3" semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.8.3: - version "0.8.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz#b4f719d0ad9bb8e0c23e3e630c0c8ec6dd7a1c52" - integrity sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA== +babel-plugin-polyfill-corejs3@^0.8.5: + version "0.8.5" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.5.tgz#a75fa1b0c3fc5bd6837f9ec465c0f48031b8cab1" + integrity sha512-Q6CdATeAvbScWPNLB8lzSO7fgUVBkQt6zLgNlfyeCr/EQaEQR+bWiBYYPYAFyE528BMjRhL+1QBMOI4jc/c5TA== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.2" - core-js-compat "^3.31.0" + "@babel/helper-define-polyfill-provider" "^0.4.3" + core-js-compat "^3.32.2" -babel-plugin-polyfill-regenerator@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz#80d0f3e1098c080c8b5a65f41e9427af692dc326" - integrity sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA== +babel-plugin-polyfill-regenerator@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz#d4c49e4b44614607c13fb769bcd85c72bb26a4a5" + integrity sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.2" + "@babel/helper-define-polyfill-provider" "^0.4.3" balanced-match@^1.0.0: version "1.0.2" @@ -4036,11 +3851,6 @@ bech32@1.1.4: resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== -big-integer@^1.6.44: - version "1.6.51" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" - integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== - big.js@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" @@ -4053,7 +3863,7 @@ bigint-buffer@^1.1.5: dependencies: bindings "^1.3.0" -bignumber.js@^9.0.0: +bignumber.js@*, bignumber.js@^9.0.0: version "9.1.2" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== @@ -4108,13 +3918,6 @@ borsh@^0.7.0: bs58 "^4.0.0" text-encoding-utf-8 "^1.0.2" -bplist-parser@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" - integrity sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw== - dependencies: - big-integer "^1.6.44" - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -4142,15 +3945,15 @@ brorand@^1.1.0: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== -browserslist@^4.14.5, browserslist@^4.21.10, browserslist@^4.21.9: - version "4.21.10" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0" - integrity sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ== +browserslist@^4.14.5, browserslist@^4.21.10, browserslist@^4.21.9, browserslist@^4.22.1: + version "4.22.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.1.tgz#ba91958d1a59b87dab6fed8dfbcb3da5e2e9c619" + integrity sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ== dependencies: - caniuse-lite "^1.0.30001517" - electron-to-chromium "^1.4.477" + caniuse-lite "^1.0.30001541" + electron-to-chromium "^1.4.535" node-releases "^2.0.13" - update-browserslist-db "^1.0.11" + update-browserslist-db "^1.0.13" bs58@^4.0.0, bs58@^4.0.1: version "4.0.1" @@ -4199,9 +4002,9 @@ buffer@^5.5.0: ieee754 "^1.1.13" bufferutil@^4.0.1: - version "4.0.7" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.7.tgz#60c0d19ba2c992dd8273d3f73772ffc894c153ad" - integrity sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw== + version "4.0.8" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.8.tgz#1de6a71092d65d7766c4d8a522b261a6e787e8ea" + integrity sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw== dependencies: node-gyp-build "^4.3.0" @@ -4215,20 +4018,6 @@ bump@^0.2.5: resolved "https://registry.yarnpkg.com/bump/-/bump-0.2.5.tgz#16d5567b75e77ea6597a805c10294c578495b47b" integrity sha512-d4CZYvcP317+twjo7PhGd+EptYjvw83itgaxbJtJnHE64qH29qMtqAQ5vb3x3Su7WuaPjow88GBgp0FDBxbm8w== -bundle-name@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a" - integrity sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw== - dependencies: - run-applescript "^5.0.0" - -bundle-require@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bundle-require/-/bundle-require-4.0.1.tgz#2cc1ad76428043d15e0e7f30990ee3d5404aa2e3" - integrity sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ== - dependencies: - load-tsconfig "^0.2.3" - busboy@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" @@ -4236,7 +4025,7 @@ busboy@1.6.0: dependencies: streamsearch "^1.1.0" -cac@^6.7.12, cac@^6.7.14: +cac@^6.7.14: version "6.7.14" resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== @@ -4264,28 +4053,23 @@ camelcase@^5.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -caniuse-lite@^1.0.30001406, caniuse-lite@^1.0.30001517: - version "1.0.30001518" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001518.tgz#b3ca93904cb4699c01218246c4d77a71dbe97150" - integrity sha512-rup09/e3I0BKjncL+FesTayKtPrdwKhUufQFd3riFw1hHg8JmIFoInYfB102cFcY/pPgGmdyl/iy+jgiDi2vdA== - -caniuse-lite@^1.0.30001520: - version "1.0.30001525" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001525.tgz#d2e8fdec6116ffa36284ca2c33ef6d53612fe1c8" - integrity sha512-/3z+wB4icFt3r0USMwxujAqRvaD/B7rvGTsKhbhSQErVrJvkZCLhgNLJxU8MevahQVH6hCU9FsHdNUFbiwmE7Q== +caniuse-lite@^1.0.30001406, caniuse-lite@^1.0.30001538, caniuse-lite@^1.0.30001541: + version "1.0.30001549" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001549.tgz#7d1a3dce7ea78c06ed72c32c2743ea364b3615aa" + integrity sha512-qRp48dPYSCYaP+KurZLhDYdVE+yEyht/3NlmcJgVQ2VMGt6JL36ndQ/7rgspdZsJuxDPFIo/OzBT2+GmIJ53BA== -chai@^4.3.7: - version "4.3.8" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.8.tgz#40c59718ad6928da6629c70496fe990b2bb5b17c" - integrity sha512-vX4YvVVtxlfSZ2VecZgFUTU5qPCYsobVI2O9FmwEXBhDigYGQA6jRXCycIs1yJnnWbZ6/+a2zNIF5DfVCcJBFQ== +chai@^4.3.10: + version "4.3.10" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.10.tgz#d784cec635e3b7e2ffb66446a63b4e33bd390384" + integrity sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g== dependencies: assertion-error "^1.1.0" - check-error "^1.0.2" - deep-eql "^4.1.2" - get-func-name "^2.0.0" - loupe "^2.3.1" + check-error "^1.0.3" + deep-eql "^4.1.3" + get-func-name "^2.0.2" + loupe "^2.3.6" pathval "^1.1.1" - type-detect "^4.0.5" + type-detect "^4.0.8" chalk@3.0.0: version "3.0.0" @@ -4312,12 +4096,14 @@ chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1: ansi-styles "^4.1.0" supports-color "^7.1.0" -check-error@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" - integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== +check-error@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" + integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== + dependencies: + get-func-name "^2.0.2" -"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.1, chokidar@^3.5.3: +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -4368,6 +4154,15 @@ cliui@^6.0.0: strip-ansi "^6.0.0" wrap-ansi "^6.2.0" +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + clsx@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" @@ -4418,11 +4213,6 @@ color@^4.2.3: color-convert "^2.0.1" color-string "^1.9.0" -colorette@^2.0.7: - version "2.0.20" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" - integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== - combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -4430,6 +4220,26 @@ combined-stream@^1.0.8: dependencies: delayed-stream "~1.0.0" +command-line-args@^5.1.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.2.1.tgz#c44c32e437a57d7c51157696893c5909e9cec42e" + integrity sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg== + dependencies: + array-back "^3.1.0" + find-replace "^3.0.0" + lodash.camelcase "^4.3.0" + typical "^4.0.0" + +command-line-usage@^6.1.0: + version "6.1.3" + resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-6.1.3.tgz#428fa5acde6a838779dfa30e44686f4b6761d957" + integrity sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw== + dependencies: + array-back "^4.0.2" + chalk "^2.4.2" + table-layout "^1.0.2" + typical "^5.2.0" + commander@^2.20.0, commander@^2.20.3: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -4465,15 +4275,30 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -convert-source-map@^1.7.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== +concurrently@^7.4.0: + version "7.6.0" + resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-7.6.0.tgz#531a6f5f30cf616f355a4afb8f8fcb2bba65a49a" + integrity sha512-BKtRgvcJGeZ4XttiDiNcFiRlxoAeZOseqUvyYRUp/Vtd+9p1ULmeoSqGsDA+2ivdeDFpqrJvGvmI+StKfKl5hw== + dependencies: + chalk "^4.1.0" + date-fns "^2.29.1" + lodash "^4.17.21" + rxjs "^7.0.0" + shell-quote "^1.7.3" + spawn-command "^0.0.2-1" + supports-color "^8.1.0" + tree-kill "^1.2.2" + yargs "^17.3.1" -cookie@^0.4.1: - version "0.4.2" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" - integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +cookie@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== copy-to-clipboard@^3.3.3: version "3.3.3" @@ -4482,12 +4307,12 @@ copy-to-clipboard@^3.3.3: dependencies: toggle-selection "^1.0.6" -core-js-compat@^3.31.0: - version "3.32.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.32.1.tgz#55f9a7d297c0761a8eb1d31b593e0f5b6ffae964" - integrity sha512-GSvKDv4wE0bPnQtjklV101juQ85g6H3rm5PDP20mqlS5j0kXF3pP97YvAu5hl+uFHqMictp3b2VxOHljWMAtuA== +core-js-compat@^3.31.0, core-js-compat@^3.32.2: + version "3.33.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.33.0.tgz#24aa230b228406450b2277b7c8bfebae932df966" + integrity sha512-0w4LcLXsVEuNkIqwjjf9rjCoPhK8uqA4tMRh4Ge26vfLtUutshn+aRJU21I9LCJlh2QQHfisNToLjw1XEJLTWw== dependencies: - browserslist "^4.21.10" + browserslist "^4.22.1" cross-fetch@^3.1.4, cross-fetch@^3.1.5: version "3.1.8" @@ -4503,7 +4328,7 @@ cross-fetch@^4.0.0: dependencies: node-fetch "^2.6.12" -cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.2: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -4524,11 +4349,6 @@ css-line-break@^2.1.0: dependencies: utrie "^1.0.2" -css-unit-converter@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.2.tgz#4c77f5a1954e6dbff60695ecb214e3270436ab21" - integrity sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA== - css-what@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" @@ -4539,7 +4359,7 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -csstype@^3.0.10, csstype@^3.0.2, csstype@^3.0.7: +csstype@^3.0.2, csstype@^3.0.7: version "3.1.2" resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== @@ -4628,15 +4448,17 @@ damerau-levenshtein@^1.0.8: resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== -dateformat@^4.6.3: - version "4.6.3" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5" - integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== +date-fns@^2.29.1: + version "2.30.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" + integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== + dependencies: + "@babel/runtime" "^7.21.0" -dayjs@^1.11.9: - version "1.11.9" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.9.tgz#9ca491933fadd0a60a2c19f6c237c03517d71d1a" - integrity sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA== +dayjs@^1.11.10, dayjs@^1.11.9: + version "1.11.10" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.10.tgz#68acea85317a6e164457d6d6947564029a6a16a0" + integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ== debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" @@ -4681,7 +4503,7 @@ decompress-response@^6.0.0: dependencies: mimic-response "^3.1.0" -deep-eql@^4.1.2: +deep-eql@^4.1.3: version "4.1.3" resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== @@ -4712,7 +4534,7 @@ deep-equal@^2.0.5: which-collection "^1.0.1" which-typed-array "^1.1.9" -deep-extend@^0.6.0: +deep-extend@^0.6.0, deep-extend@~0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== @@ -4732,34 +4554,21 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== -default-browser-id@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-3.0.0.tgz#bee7bbbef1f4e75d31f98f4d3f1556a14cea790c" - integrity sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA== - dependencies: - bplist-parser "^0.2.0" - untildify "^4.0.0" - -default-browser@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-4.0.0.tgz#53c9894f8810bf86696de117a6ce9085a3cbc7da" - integrity sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA== +define-data-property@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" + integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== dependencies: - bundle-name "^3.0.0" - default-browser-id "^3.0.0" - execa "^7.1.1" - titleize "^3.0.0" - -define-lazy-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" - integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" -define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" - integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== +define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0, define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== dependencies: + define-data-property "^1.0.1" has-property-descriptors "^1.0.0" object-keys "^1.1.1" @@ -4889,10 +4698,10 @@ ejs@^3.1.6: dependencies: jake "^10.8.5" -electron-to-chromium@^1.4.477: - version "1.4.508" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.508.tgz#5641ff2f5ba11df4bd960fe6a2f9f70aa8b9af96" - integrity sha512-FFa8QKjQK/A5QuFr2167myhMesGrhlOBD+3cYNxO9/S4XzHEXesyTD/1/xF644gC8buFPz3ca6G1LOQD0tZrrg== +electron-to-chromium@^1.4.535: + version "1.4.554" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.554.tgz#04e09c2ee31dc0f1546174033809b54cc372740b" + integrity sha512-Q0umzPJjfBrrj8unkONTgbKQXzXRrH7sVV7D9ea2yBV3Oaogz991yhbpfvo2LMNkJItmruXTEzVpP9cp7vaIiQ== elliptic@6.5.4: version "6.5.4" @@ -4927,13 +4736,6 @@ encode-utf8@^1.0.3: resolved "https://registry.yarnpkg.com/encode-utf8/-/encode-utf8-1.0.3.tgz#f30fdd31da07fb596f281beb2f6b027851994cda" integrity sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw== -encoding@^0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -4949,18 +4751,18 @@ enhanced-resolve@^5.0.0, enhanced-resolve@^5.10.0, enhanced-resolve@^5.12.0, enh graceful-fs "^4.2.4" tapable "^2.2.0" -es-abstract@^1.20.4, es-abstract@^1.22.1: - version "1.22.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.1.tgz#8b4e5fc5cefd7f1660f0f8e1a52900dfbc9d9ccc" - integrity sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw== +es-abstract@^1.22.1: + version "1.22.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.2.tgz#90f7282d91d0ad577f505e423e52d4c1d93c1b8a" + integrity sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA== dependencies: array-buffer-byte-length "^1.0.0" - arraybuffer.prototype.slice "^1.0.1" + arraybuffer.prototype.slice "^1.0.2" available-typed-arrays "^1.0.5" call-bind "^1.0.2" es-set-tostringtag "^2.0.1" es-to-primitive "^1.2.1" - function.prototype.name "^1.1.5" + function.prototype.name "^1.1.6" get-intrinsic "^1.2.1" get-symbol-description "^1.0.0" globalthis "^1.0.3" @@ -4976,23 +4778,23 @@ es-abstract@^1.20.4, es-abstract@^1.22.1: is-regex "^1.1.4" is-shared-array-buffer "^1.0.2" is-string "^1.0.7" - is-typed-array "^1.1.10" + is-typed-array "^1.1.12" is-weakref "^1.0.2" object-inspect "^1.12.3" object-keys "^1.1.1" object.assign "^4.1.4" - regexp.prototype.flags "^1.5.0" - safe-array-concat "^1.0.0" + regexp.prototype.flags "^1.5.1" + safe-array-concat "^1.0.1" safe-regex-test "^1.0.0" - string.prototype.trim "^1.2.7" - string.prototype.trimend "^1.0.6" - string.prototype.trimstart "^1.0.6" + string.prototype.trim "^1.2.8" + string.prototype.trimend "^1.0.7" + string.prototype.trimstart "^1.0.7" typed-array-buffer "^1.0.0" typed-array-byte-length "^1.0.0" typed-array-byte-offset "^1.0.0" typed-array-length "^1.0.4" unbox-primitive "^1.0.2" - which-typed-array "^1.1.10" + which-typed-array "^1.1.11" es-get-iterator@^1.1.3: version "1.1.3" @@ -5010,13 +4812,13 @@ es-get-iterator@^1.1.3: stop-iteration-iterator "^1.0.0" es-iterator-helpers@^1.0.12: - version "1.0.14" - resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.14.tgz#19cd7903697d97e21198f3293b55e8985791c365" - integrity sha512-JgtVnwiuoRuzLvqelrvN3Xu7H9bu2ap/kQ2CrM62iidP8SKuD99rWU3CJy++s7IVL2qb/AjXPGR/E7i9ngd/Cw== + version "1.0.15" + resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz#bd81d275ac766431d19305923707c3efd9f1ae40" + integrity sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g== dependencies: asynciterator.prototype "^1.0.0" call-bind "^1.0.2" - define-properties "^1.2.0" + define-properties "^1.2.1" es-abstract "^1.22.1" es-set-tostringtag "^2.0.1" function-bind "^1.1.1" @@ -5026,13 +4828,13 @@ es-iterator-helpers@^1.0.12: has-proto "^1.0.1" has-symbols "^1.0.3" internal-slot "^1.0.5" - iterator.prototype "^1.1.0" - safe-array-concat "^1.0.0" + iterator.prototype "^1.1.2" + safe-array-concat "^1.0.1" es-module-lexer@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.3.0.tgz#6be9c9e0b4543a60cd166ff6f8b4e9dae0b0c16f" - integrity sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA== + version "1.3.1" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.3.1.tgz#c1b0dd5ada807a3b3155315911f364dc4e909db1" + integrity sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q== es-set-tostringtag@^2.0.1: version "2.0.1" @@ -5097,7 +4899,7 @@ es6-symbol@^3.1.1, es6-symbol@^3.1.3: d "^1.0.1" ext "^1.1.2" -esbuild@^0.18.10, esbuild@^0.18.2: +esbuild@^0.18.10: version "0.18.20" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6" integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== @@ -5141,18 +4943,18 @@ escape-string-regexp@^4.0.0: integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== eslint-config-next@^13.4.19: - version "13.4.19" - resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-13.4.19.tgz#f46be9d4bd9e52755f846338456132217081d7f8" - integrity sha512-WE8367sqMnjhWHvR5OivmfwENRQ1ixfNE9hZwQqNCsd+iM3KnuMc1V8Pt6ytgjxjf23D+xbesADv9x3xaKfT3g== + version "13.5.4" + resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-13.5.4.tgz#e50bb157d8346b63426f4b36bf53c2e46ccbc938" + integrity sha512-FzQGIj4UEszRX7fcRSJK6L1LrDiVZvDFW320VVntVKh3BSU8Fb9kpaoxQx0cdFgf3MQXdeSbrCXJ/5Z/NndDkQ== dependencies: - "@next/eslint-plugin-next" "13.4.19" - "@rushstack/eslint-patch" "^1.1.3" + "@next/eslint-plugin-next" "13.5.4" + "@rushstack/eslint-patch" "^1.3.3" "@typescript-eslint/parser" "^5.4.2 || ^6.0.0" eslint-import-resolver-node "^0.3.6" eslint-import-resolver-typescript "^3.5.2" - eslint-plugin-import "^2.26.0" - eslint-plugin-jsx-a11y "^6.5.1" - eslint-plugin-react "^7.31.7" + eslint-plugin-import "^2.28.1" + eslint-plugin-jsx-a11y "^6.7.1" + eslint-plugin-react "^7.33.2" eslint-plugin-react-hooks "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705" eslint-import-resolver-node@^0.3.6, eslint-import-resolver-node@^0.3.7: @@ -5164,24 +4966,10 @@ eslint-import-resolver-node@^0.3.6, eslint-import-resolver-node@^0.3.7: is-core-module "^2.13.0" resolve "^1.22.4" -eslint-import-resolver-typescript@^3.5.2: - version "3.5.5" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.5.tgz#0a9034ae7ed94b254a360fbea89187b60ea7456d" - integrity sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw== - dependencies: - debug "^4.3.4" - enhanced-resolve "^5.12.0" - eslint-module-utils "^2.7.4" - get-tsconfig "^4.5.0" - globby "^13.1.3" - is-core-module "^2.11.0" - is-glob "^4.0.3" - synckit "^0.8.5" - -eslint-import-resolver-typescript@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.0.tgz#36f93e1eb65a635e688e16cae4bead54552e3bbd" - integrity sha512-QTHR9ddNnn35RTxlaEnx2gCxqFlF2SEN0SE2d17SqwyM7YOSI2GHWRYp5BiRkObTUNYPupC/3Fq2a0PpT+EKpg== +eslint-import-resolver-typescript@^3.5.2, eslint-import-resolver-typescript@^3.6.0: + version "3.6.1" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz#7b983680edd3f1c5bce1a5829ae0bc2d57fe9efa" + integrity sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg== dependencies: debug "^4.3.4" enhanced-resolve "^5.12.0" @@ -5205,30 +4993,6 @@ eslint-plugin-brackets@^0.1.3: dependencies: lodash "^4.17.2" -eslint-plugin-import@^2.26.0: - version "2.28.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.28.0.tgz#8d66d6925117b06c4018d491ae84469eb3cb1005" - integrity sha512-B8s/n+ZluN7sxj9eUf7/pRFERX0r5bnFA2dCaLHy2ZeaQEAz0k+ZZkFWRFHJAqxfxQDx6KLv9LeIki7cFdwW+Q== - dependencies: - array-includes "^3.1.6" - array.prototype.findlastindex "^1.2.2" - array.prototype.flat "^1.3.1" - array.prototype.flatmap "^1.3.1" - debug "^3.2.7" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.7" - eslint-module-utils "^2.8.0" - has "^1.0.3" - is-core-module "^2.12.1" - is-glob "^4.0.3" - minimatch "^3.1.2" - object.fromentries "^2.0.6" - object.groupby "^1.0.0" - object.values "^1.1.6" - resolve "^1.22.3" - semver "^6.3.1" - tsconfig-paths "^3.14.2" - eslint-plugin-import@^2.28.1: version "2.28.1" resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz#63b8b5b3c409bfc75ebaf8fb206b07ab435482c4" @@ -5252,7 +5016,7 @@ eslint-plugin-import@^2.28.1: semver "^6.3.1" tsconfig-paths "^3.14.2" -eslint-plugin-jsx-a11y@^6.5.1: +eslint-plugin-jsx-a11y@^6.7.1: version "6.7.1" resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz#fca5e02d115f48c9a597a6894d5bcec2f7a76976" integrity sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA== @@ -5279,27 +5043,6 @@ eslint-plugin-jsx-a11y@^6.5.1: resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== -eslint-plugin-react@^7.31.7: - version "7.33.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.33.1.tgz#bc27cccf860ae45413a4a4150bf0977345c1ceab" - integrity sha512-L093k0WAMvr6VhNwReB8VgOq5s2LesZmrpPdKz/kZElQDzqS7G7+DnKoqT+w4JwuiGeAhAvHO0fvy0Eyk4ejDA== - dependencies: - array-includes "^3.1.6" - array.prototype.flatmap "^1.3.1" - array.prototype.tosorted "^1.1.1" - doctrine "^2.1.0" - estraverse "^5.3.0" - jsx-ast-utils "^2.4.1 || ^3.0.0" - minimatch "^3.1.2" - object.entries "^1.1.6" - object.fromentries "^2.0.6" - object.hasown "^1.1.2" - object.values "^1.1.6" - prop-types "^15.8.1" - resolve "^2.0.0-next.4" - semver "^6.3.1" - string.prototype.matchall "^4.0.8" - eslint-plugin-react@^7.33.2: version "7.33.2" resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz#69ee09443ffc583927eafe86ffebb470ee737608" @@ -5363,26 +5106,21 @@ eslint-scope@^7.2.2: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.2.tgz#8c2095440eca8c933bedcadf16fefa44dbe9ba5f" - integrity sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw== - -eslint-visitor-keys@^3.4.3: +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: version "3.4.3" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== eslint@^8.48.0: - version "8.48.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.48.0.tgz#bf9998ba520063907ba7bfe4c480dc8be03c2155" - integrity sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg== + version "8.51.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.51.0.tgz#4a82dae60d209ac89a5cff1604fea978ba4950f3" + integrity sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" "@eslint/eslintrc" "^2.1.2" - "@eslint/js" "8.48.0" - "@humanwhocodes/config-array" "^0.11.10" + "@eslint/js" "8.51.0" + "@humanwhocodes/config-array" "^0.11.11" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" ajv "^6.12.4" @@ -5524,7 +5262,7 @@ ethereum-cryptography@^2.0.0, ethereum-cryptography@^2.1.2: "@scure/bip32" "1.3.1" "@scure/bip39" "1.2.1" -ethers@5.7.2: +ethers@5.7.2, ethers@^5.7.0, ethers@^5.7.2: version "5.7.2" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== @@ -5593,36 +5331,6 @@ events@^3.2.0, events@^3.3.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -execa@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-7.2.0.tgz#657e75ba984f42a70f38928cedc87d6f2d4fe4e9" - integrity sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.1" - human-signals "^4.3.0" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^3.0.7" - strip-final-newline "^3.0.0" - expand-template@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" @@ -5650,11 +5358,6 @@ eyes@^0.1.8: resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== -fast-copy@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/fast-copy/-/fast-copy-3.0.1.tgz#9e89ef498b8c04c1cd76b33b8e14271658a732aa" - integrity sha512-Knr7NOtK3HWRYGtHoJrjkaWepqT8thIVGAwt0p0aUs1zqkAzXZV4vo9fFNwyb5fcqK1GKYFYxldQdIDVKhUAfA== - fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -5670,7 +5373,7 @@ fast-fifo@^1.1.0, fast-fifo@^1.2.0: resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.3.2.tgz#286e31de96eb96d38a97899815740ba2a4f3640c" integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== -fast-glob@^3.2.12, fast-glob@^3.2.5, fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.1: +fast-glob@^3.2.12, fast-glob@^3.2.5, fast-glob@^3.2.9, fast-glob@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== @@ -5696,7 +5399,7 @@ fast-redact@^3.0.0: resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.3.0.tgz#7c83ce3a7be4898241a46560d51de10f653f7634" integrity sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ== -fast-safe-stringify@^2.0.6, fast-safe-stringify@^2.1.1: +fast-safe-stringify@^2.0.6: version "2.1.1" resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== @@ -5761,6 +5464,13 @@ find-cache-dir@^4.0.0: common-path-prefix "^3.0.0" pkg-dir "^7.0.0" +find-replace@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-3.0.0.tgz#3e7e23d3b05167a76f770c9fbd5258b0def68c38" + integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ== + dependencies: + array-back "^3.0.1" + find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -5786,23 +5496,23 @@ find-up@^6.3.0: path-exists "^5.0.0" flat-cache@^3.0.4: - version "3.1.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.1.0.tgz#0e54ab4a1a60fe87e2946b6b00657f1c99e1af3f" - integrity sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew== + version "3.1.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.1.1.tgz#a02a15fdec25a8f844ff7cc658f03dd99eb4609b" + integrity sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q== dependencies: - flatted "^3.2.7" + flatted "^3.2.9" keyv "^4.5.3" rimraf "^3.0.2" -flatted@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" - integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== +flatted@^3.2.9: + version "3.2.9" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" + integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== follow-redirects@^1.15.0: - version "1.15.2" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" - integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + version "1.15.3" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a" + integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== for-each@^0.3.3: version "0.3.3" @@ -5838,15 +5548,15 @@ formidable@^3.5.1: hexoid "^1.0.0" once "^1.4.0" -fraction.js@^4.2.0: - version "4.3.6" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.6.tgz#e9e3acec6c9a28cf7bc36cbe35eea4ceb2c5c92d" - integrity sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg== +fraction.js@^4.3.6: + version "4.3.7" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== framer-motion@^10.16.2: - version "10.16.2" - resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-10.16.2.tgz#b737f628f69a883824024124dab452273f73cbba" - integrity sha512-aY6L9YMvqMWtfOQptaUvvr8dp97jskXY5UYLQM0vOPxKeERrG/Z034EIQZ/52u7MeCT0HlCQy3/l0HdUZCB9Tw== + version "10.16.4" + resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-10.16.4.tgz#30279ef5499b8d85db3a298ee25c83429933e9f8" + integrity sha512-p9V9nGomS3m6/CALXqv6nFGMuFOxbWsmaOrdmhyQimMIlLl3LC7h7l86wge/Js/8cRu5ktutS/zlzgR7eBOtFA== dependencies: tslib "^2.4.0" optionalDependencies: @@ -5857,6 +5567,15 @@ fs-constants@^1.0.0: resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== +fs-extra@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs-extra@^9.0.1: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" @@ -5878,11 +5597,11 @@ fsevents@~2.3.2: integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -function.prototype.name@^1.1.5: +function.prototype.name@^1.1.5, function.prototype.name@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== @@ -5902,15 +5621,15 @@ gensync@^1.0.0-beta.2: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-caller-file@^2.0.1: +get-caller-file@^2.0.1, get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-func-name@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" - integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== +get-func-name@^2.0.1, get-func-name@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" + integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1: version "1.2.1" @@ -5932,11 +5651,6 @@ get-own-enumerable-property-symbols@^3.0.0: resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== -get-stream@^6.0.0, get-stream@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - get-symbol-description@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" @@ -5946,9 +5660,9 @@ get-symbol-description@^1.0.0: get-intrinsic "^1.1.1" get-tsconfig@^4.5.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.0.tgz#06ce112a1463e93196aa90320c35df5039147e34" - integrity sha512-pmjiZ7xtB8URYm74PlGJozDNyhvsVLUcpBa8DZBG3bWHwaHa9bPiRpiSfovw+fjhwONSCWKRyk+JQHEGZmMrzw== + version "4.7.2" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.2.tgz#0dcd6fb330391d46332f4c6c1bf89a6514c2ddce" + integrity sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A== dependencies: resolve-pkg-maps "^1.0.0" @@ -6012,7 +5726,7 @@ glob@^7.0.3, glob@^7.1.3, glob@^7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^8.0.0, glob@^8.0.3: +glob@^8.0.3: version "8.1.0" resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== @@ -6029,9 +5743,9 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.19.0: - version "13.21.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.21.0.tgz#163aae12f34ef502f5153cfbdd3600f36c63c571" - integrity sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg== + version "13.23.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02" + integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA== dependencies: type-fest "^0.20.2" @@ -6042,7 +5756,7 @@ globalthis@^1.0.3: dependencies: define-properties "^1.1.3" -globby@^11.0.3, globby@^11.0.4, globby@^11.1.0: +globby@^11.0.4, globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -6054,17 +5768,6 @@ globby@^11.0.3, globby@^11.0.4, globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -globby@^13.1.3: - version "13.2.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-13.2.2.tgz#63b90b1bf68619c2135475cbd4e71e66aa090592" - integrity sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w== - dependencies: - dir-glob "^3.0.1" - fast-glob "^3.3.0" - ignore "^5.2.4" - merge2 "^1.4.1" - slash "^4.0.0" - globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" @@ -6115,10 +5818,10 @@ graphql-request@^6.1.0: "@graphql-typed-document-node/core" "^3.2.0" cross-fetch "^3.1.5" -graphql@^16.8.0: - version "16.8.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.8.0.tgz#374478b7f27b2dc6153c8f42c1b80157f79d79d4" - integrity sha512-0oKGaR+y3qcS5mCu1vb7KG+a89vjn06C7Ihq/dDl3jA+A8B3TKomvi3CiEcVLJQGalbu8F52LxkOym7U5sSfbg== +graphql@^16.8.0, graphql@^16.8.1: + version "16.8.1" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.8.1.tgz#1930a965bef1170603702acdb68aedd3f3cf6f07" + integrity sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw== gzip-size@^6.0.0: version "6.0.0" @@ -6167,27 +5870,17 @@ has-tostringtag@^1.0.0: has-symbols "^1.0.2" has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" + version "1.0.4" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6" + integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -help-me@^4.0.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/help-me/-/help-me-4.2.0.tgz#50712bfd799ff1854ae1d312c36eafcea85b0563" - integrity sha512-TAOnTB8Tz5Dw8penUuzHVrKNKlCIbwwbHnXraNJxPwf8LRtE2HlM84RYuezMFcwOJmoYOCWVDyJ8TQGxn9PgxA== - dependencies: - glob "^8.0.0" - readable-stream "^3.6.0" + inherits "^2.0.3" + minimalistic-assert "^1.0.1" hexoid@^1.0.0: version "1.0.0" @@ -6236,16 +5929,6 @@ https-proxy-agent@^5.0.0: agent-base "6" debug "4" -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -human-signals@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" - integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== - humanize-ms@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" @@ -6253,12 +5936,14 @@ humanize-ms@^1.2.1: dependencies: ms "^2.0.0" -iconv-lite@^0.6.2: - version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== +i18n-js@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/i18n-js/-/i18n-js-4.3.2.tgz#ec5391f23c76f5374b53645c83d272914eb81291" + integrity sha512-n8gbEbQEueym2/q2yrZk5/xKWjFcKtg3/Escw4JHSVWa8qtKqP8j7se3UjkRbHlO/REqFA0V/MG1q8tEfyHeOA== dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" + bignumber.js "*" + lodash "*" + make-plural "*" idb@^7.0.1: version "7.1.1" @@ -6393,7 +6078,7 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.11.0, is-core-module@^2.12.1, is-core-module@^2.13.0, is-core-module@^2.9.0: +is-core-module@^2.11.0, is-core-module@^2.13.0: version "2.13.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== @@ -6407,16 +6092,6 @@ is-date-object@^1.0.1, is-date-object@^1.0.5: dependencies: has-tostringtag "^1.0.0" -is-docker@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - -is-docker@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" - integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== - is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -6453,13 +6128,6 @@ is-hex-prefixed@1.0.0: resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" integrity sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA== -is-inside-container@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" - integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== - dependencies: - is-docker "^3.0.0" - is-map@^2.0.1, is-map@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" @@ -6553,11 +6221,6 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== -is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" @@ -6572,7 +6235,7 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.10, is-typed-array@^1.1.3, is-typed-array@^1.1.9: +is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.3, is-typed-array@^1.1.9: version "1.1.12" resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== @@ -6604,13 +6267,6 @@ is-weakset@^2.0.1: call-bind "^1.0.2" get-intrinsic "^1.1.1" -is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - isarray@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" @@ -6621,25 +6277,26 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -isomorphic-ws@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" - integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== - isomorphic-ws@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== -iterator.prototype@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.1.tgz#ab5b790e23ec00658f5974e032a2b05188bd3a5c" - integrity sha512-9E+nePc8C9cnQldmNl6bgpTY6zI4OPRZd97fhJ/iVZ1GifIUDVV5F6x1nEDqpe8KaMEZGT4xgrwKQDxXnjOIZQ== +isows@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/isows/-/isows-1.0.3.tgz#93c1cf0575daf56e7120bab5c8c448b0809d0d74" + integrity sha512-2cKei4vlmg2cxEjm3wVSqn8pcoRF/LX/wpifuuNquFO4SQmPwarClT+SUCA2lt+l581tTeZIPIZuIDo2jWN1fg== + +iterator.prototype@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz#5e29c8924f01916cb9335f1ff80619dcff22b0c0" + integrity sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w== dependencies: - define-properties "^1.2.0" + define-properties "^1.2.1" get-intrinsic "^1.2.1" has-symbols "^1.0.3" - reflect.getprototypeof "^1.0.3" + reflect.getprototypeof "^1.0.4" + set-function-name "^2.0.1" jake@^10.8.5: version "10.8.7" @@ -6688,14 +6345,9 @@ jest-worker@^27.4.5: supports-color "^8.0.0" jiti@^1.18.2: - version "1.19.3" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.19.3.tgz#ef554f76465b3c2b222dc077834a71f0d4a37569" - integrity sha512-5eEbBDQT/jF1xg6l36P+mWGGoH9Spuy0PCdSr2dtWRDGC6ph/w9ZCL4lmESW8f8F7MwT3XKescfP0wnZWAKL9w== - -joycon@^3.0.1, joycon@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03" - integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw== + version "1.20.0" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.20.0.tgz#2d823b5852ee8963585c8dd8b7992ffc1ae83b42" + integrity sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA== js-sha3@0.8.0, js-sha3@^0.8.0: version "0.8.0" @@ -6772,7 +6424,7 @@ json-stringify-safe@^5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== -json5@>=2.2.2, json5@^1.0.2, json5@^2.1.2, json5@^2.2.0, json5@^2.2.2, json5@^2.2.3: +json5@>=2.2.2, json5@^1.0.2, json5@^2.1.2, json5@^2.2.0, json5@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== @@ -6782,6 +6434,13 @@ jsonc-parser@^3.2.0: resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + jsonfile@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" @@ -6817,18 +6476,18 @@ just-performance@4.3.0: integrity sha512-L7RjvtJsL0QO8xFs5wEoDDzzJwoiowRw6Rn/GnvldlchS2JQr9wFYPiwZcDfrbbujEKqKN0tvENdbjXdYhDp5Q== keccak@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.3.tgz#4bc35ad917be1ef54ff246f904c2bbbf9ac61276" - integrity sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ== + version "3.0.4" + resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.4.tgz#edc09b89e633c0549da444432ecf062ffadee86d" + integrity sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q== dependencies: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" readable-stream "^3.6.0" keyv@^4.5.3: - version "4.5.3" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.3.tgz#00873d2b046df737963157bd04f294ca818c9c25" - integrity sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug== + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== dependencies: json-buffer "3.0.1" @@ -6895,26 +6554,21 @@ lit-element@^3.3.0: "@lit/reactive-element" "^1.3.0" lit-html "^2.8.0" -lit-html@^2.7.0, lit-html@^2.8.0: +lit-html@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-2.8.0.tgz#96456a4bb4ee717b9a7d2f94562a16509d39bffa" integrity sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q== dependencies: "@types/trusted-types" "^2.0.2" -lit@2.7.6: - version "2.7.6" - resolved "https://registry.yarnpkg.com/lit/-/lit-2.7.6.tgz#810007b876ed43e0c70124de91831921598b1665" - integrity sha512-1amFHA7t4VaaDe+vdQejSVBklwtH9svGoG6/dZi9JhxtJBBlqY5D1RV7iLUYY0trCqQc4NfhYYZilZiVHt7Hxg== +lit@2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/lit/-/lit-2.8.0.tgz#4d838ae03059bf9cafa06e5c61d8acc0081e974e" + integrity sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA== dependencies: "@lit/reactive-element" "^1.6.0" lit-element "^3.3.0" - lit-html "^2.7.0" - -load-tsconfig@^0.2.3: - version "0.2.5" - resolved "https://registry.yarnpkg.com/load-tsconfig/-/load-tsconfig-0.2.5.tgz#453b8cd8961bfb912dea77eb6c168fe8cca3d3a1" - integrity sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg== + lit-html "^2.8.0" loader-runner@^4.2.0: version "4.3.0" @@ -6963,6 +6617,11 @@ locate-path@^7.1.0: dependencies: p-locate "^6.0.0" +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + lodash.castarray@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.castarray/-/lodash.castarray-4.4.0.tgz#c02513515e309daddd4c24c60cfddcf5976d9115" @@ -6993,16 +6652,11 @@ lodash.sortby@^4.7.0: resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== -lodash@^4.17.19, lodash@^4.17.2, lodash@^4.17.20, lodash@^4.17.21: +lodash@*, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.2, lodash@^4.17.20, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -lokijs@^1.5.12: - version "1.5.12" - resolved "https://registry.yarnpkg.com/lokijs/-/lokijs-1.5.12.tgz#cb55b37009bdf09ee7952a6adddd555b893653a0" - integrity sha512-Q5ALD6JiS6xAUWCwX3taQmgwxyveCtIIuL08+ml0nHwT3k0S/GIFJN+Hd38b1qYIMaE5X++iqsqWVksz7SYW+Q== - loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -7010,12 +6664,12 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" -loupe@^2.3.1, loupe@^2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.6.tgz#76e4af498103c532d1ecc9be102036a21f787b53" - integrity sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA== +loupe@^2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" + integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== dependencies: - get-func-name "^2.0.0" + get-func-name "^2.0.1" lru-cache@^5.1.1: version "5.1.1" @@ -7056,9 +6710,9 @@ magic-string@^0.27.0: "@jridgewell/sourcemap-codec" "^1.4.13" magic-string@^0.30.1: - version "0.30.3" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.3.tgz#403755dfd9d6b398dfa40635d52e96c5ac095b85" - integrity sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw== + version "0.30.5" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" + integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== dependencies: "@jridgewell/sourcemap-codec" "^1.4.15" @@ -7069,6 +6723,11 @@ make-dir@^3.0.2, make-dir@^3.1.0: dependencies: semver "^6.0.0" +make-plural@*: + version "7.3.0" + resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-7.3.0.tgz#2889dbafca2fb097037c47967d3e3afa7e48a52c" + integrity sha512-/K3BC0KIsO+WK2i94LkMPv3wslMrazrQhfi5We9fMbLlLjzoOSJWr7TAdupLlDWaJcWxwoNosBkhFDejiu5VDw== + media-query-parser@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/media-query-parser/-/media-query-parser-2.0.2.tgz#ff79e56cee92615a304a1c2fa4f2bd056c0a1d29" @@ -7111,16 +6770,6 @@ mime-types@^2.1.12, mime-types@^2.1.27: dependencies: mime-db "1.52.0" -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== - mimic-response@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" @@ -7172,20 +6821,15 @@ mkdirp@^0.5.5: dependencies: minimist "^1.2.6" -mlly@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.4.0.tgz#830c10d63f1f97bd8785377b24dc2a15d972832b" - integrity sha512-ua8PAThnTwpprIaU47EPeZ/bPUVp2QYBbWMphUQpVdBI3Lgqzm5KZQ45Agm3YJedHXaIHl6pBGabaLSUPPSptg== - dependencies: - acorn "^8.9.0" - pathe "^1.1.1" - pkg-types "^1.0.3" - ufo "^1.1.2" +mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mlly@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.4.1.tgz#7ab9cbb040bf8bd8205a0c341ce9acc3ae0c3a74" - integrity sha512-SCDs78Q2o09jiZiE2WziwVBEqXQ02XkGdUy45cbJf+BpYRIjArXRJ1Wbowxkb+NaM9DWvS3UC9GiO/6eqvQ/pg== +mlly@^1.2.0, mlly@^1.4.0: + version "1.4.2" + resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.4.2.tgz#7cf406aa319ff6563d25da6b36610a93f2a8007e" + integrity sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg== dependencies: acorn "^8.10.0" pathe "^1.1.1" @@ -7243,7 +6887,7 @@ mz@^2.7.0: object-assign "^4.0.1" thenify-all "^1.0.0" -nanoid@^3.3.4, nanoid@^3.3.6: +nanoid@^3.3.6: version "3.3.6" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== @@ -7292,34 +6936,33 @@ next-transpile-modules@^10.0.1: dependencies: enhanced-resolve "^5.10.0" -next@^13.4.19: - version "13.4.19" - resolved "https://registry.yarnpkg.com/next/-/next-13.4.19.tgz#2326e02aeedee2c693d4f37b90e4f0ed6882b35f" - integrity sha512-HuPSzzAbJ1T4BD8e0bs6B9C1kWQ6gv8ykZoRWs5AQoiIuqbGHHdQO7Ljuvg05Q0Z24E2ABozHe6FxDvI6HfyAw== +next@^13.4.19, next@^13.5.4: + version "13.5.4" + resolved "https://registry.yarnpkg.com/next/-/next-13.5.4.tgz#7e6a93c9c2b9a2c78bf6906a6c5cc73ae02d5b4d" + integrity sha512-+93un5S779gho8y9ASQhb/bTkQF17FNQOtXLKAj3lsNgltEcF0C5PMLLncDmH+8X1EnJH1kbqAERa29nRXqhjA== dependencies: - "@next/env" "13.4.19" - "@swc/helpers" "0.5.1" + "@next/env" "13.5.4" + "@swc/helpers" "0.5.2" busboy "1.6.0" caniuse-lite "^1.0.30001406" - postcss "8.4.14" + postcss "8.4.31" styled-jsx "5.1.1" watchpack "2.4.0" - zod "3.21.4" optionalDependencies: - "@next/swc-darwin-arm64" "13.4.19" - "@next/swc-darwin-x64" "13.4.19" - "@next/swc-linux-arm64-gnu" "13.4.19" - "@next/swc-linux-arm64-musl" "13.4.19" - "@next/swc-linux-x64-gnu" "13.4.19" - "@next/swc-linux-x64-musl" "13.4.19" - "@next/swc-win32-arm64-msvc" "13.4.19" - "@next/swc-win32-ia32-msvc" "13.4.19" - "@next/swc-win32-x64-msvc" "13.4.19" + "@next/swc-darwin-arm64" "13.5.4" + "@next/swc-darwin-x64" "13.5.4" + "@next/swc-linux-arm64-gnu" "13.5.4" + "@next/swc-linux-arm64-musl" "13.5.4" + "@next/swc-linux-x64-gnu" "13.5.4" + "@next/swc-linux-x64-musl" "13.5.4" + "@next/swc-win32-arm64-msvc" "13.5.4" + "@next/swc-win32-ia32-msvc" "13.5.4" + "@next/swc-win32-x64-msvc" "13.5.4" node-abi@^3.3.0: - version "3.47.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.47.0.tgz#6cbfa2916805ae25c2b7156ca640131632eb05e8" - integrity sha512-2s6B2CWZM//kPgwnuI0KrYwNjfdByE25zvAaEpq9IH4zcNsarH8Ihu/UuX6XMPEogDAxkuUFeZn60pXNHAqn3A== + version "3.50.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.50.0.tgz#bbee6943c8812d20e241539854d7b8003404d917" + integrity sha512-2Gxu7Eq7vnBIRfYSmqPruEllMM14FjOQFJSoqdGWthVn+tmwEXzmdPpya6cvvwf0uZA3F5N1fMFr9mijZBplFA== dependencies: semver "^7.3.5" @@ -7333,7 +6976,7 @@ node-addon-api@^6.1.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-6.1.0.tgz#ac8470034e58e67d0c6f1204a18ae6995d9c0d76" integrity sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA== -node-fetch@^2.6.12, node-fetch@^2.6.7, node-fetch@^2.6.8: +node-fetch@^2.6.12, node-fetch@^2.6.6, node-fetch@^2.6.7, node-fetch@^2.6.8: version "2.7.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== @@ -7360,20 +7003,6 @@ normalize-range@^0.1.2: resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -npm-run-path@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" - integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== - dependencies: - path-key "^4.0.0" - nprogress@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" @@ -7398,9 +7027,9 @@ object-hash@^3.0.0: integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== object-inspect@^1.12.3, object-inspect@^1.9.0: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== + version "1.13.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.0.tgz#42695d3879e1cd5bda6df5062164d80c996e23e2" + integrity sha512-HQ4J+ic8hKrgIt3mqk6cVOVrW2ozL4KdvHlqpBv9vDYWx9ysAgENAdvy4FoGF+KFdhR7nQTNm5J0ctAeOwn+3g== object-is@^1.1.5: version "1.1.5" @@ -7482,11 +7111,6 @@ on-exit-leak-free@^0.2.0: resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz#b39c9e3bf7690d890f4861558b0d7b90a442d209" integrity sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg== -on-exit-leak-free@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz#5c703c968f7e7f851885f6459bf8a8a57edc9cc4" - integrity sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w== - once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -7494,30 +7118,6 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - dependencies: - mimic-fn "^4.0.0" - -open@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/open/-/open-9.1.0.tgz#684934359c90ad25742f5a26151970ff8c6c80b6" - integrity sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg== - dependencies: - default-browser "^4.0.0" - define-lazy-prop "^3.0.0" - is-inside-container "^1.0.0" - is-wsl "^2.2.0" - opener@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" @@ -7624,16 +7224,11 @@ path-is-inside@^1.0.2: resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== -path-key@^3.0.0, path-key@^3.1.0: +path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" @@ -7696,14 +7291,6 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== -pino-abstract-transport@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz#cc0d6955fffcadb91b7b49ef220a6cc111d48bb3" - integrity sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA== - dependencies: - readable-stream "^4.0.0" - split2 "^4.0.0" - pino-abstract-transport@v0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz#4b54348d8f73713bfd14e3dc44228739aa13d9c0" @@ -7712,26 +7299,6 @@ pino-abstract-transport@v0.5.0: duplexify "^4.1.2" split2 "^4.0.0" -pino-pretty@^10.2.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-10.2.0.tgz#c674a153e15c08d7032a826d0051d786feace1d9" - integrity sha512-tRvpyEmGtc2D+Lr3FulIZ+R1baggQ4S3xD2Ar93KixFEDx6SEAUP3W5aYuEw1C73d6ROrNcB2IXLteW8itlwhA== - dependencies: - colorette "^2.0.7" - dateformat "^4.6.3" - fast-copy "^3.0.0" - fast-safe-stringify "^2.1.1" - help-me "^4.0.1" - joycon "^3.1.1" - minimist "^1.2.6" - on-exit-leak-free "^2.1.0" - pino-abstract-transport "^1.0.0" - pump "^3.0.0" - readable-stream "^4.0.0" - secure-json-parse "^2.4.0" - sonic-boom "^3.0.0" - strip-json-comments "^3.1.1" - pino-std-serializers@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz#1791ccd2539c091ae49ce9993205e2cd5dbba1e2" @@ -7842,47 +7409,24 @@ postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.13: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-value-parser@^3.3.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== - postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@8.4.14: - version "8.4.14" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" - integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== - dependencies: - nanoid "^3.3.4" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -postcss@^8.4.23, postcss@^8.4.4: - version "8.4.27" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.27.tgz#234d7e4b72e34ba5a92c29636734349e0d9c3057" - integrity sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ== - dependencies: - nanoid "^3.3.6" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -postcss@^8.4.27, postcss@^8.4.29: - version "8.4.29" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.29.tgz#33bc121cf3b3688d4ddef50be869b2a54185a1dd" - integrity sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw== +postcss@8.4.31, postcss@^8.4.23, postcss@^8.4.27, postcss@^8.4.29, postcss@^8.4.4: + version "8.4.31" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" + integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== dependencies: nanoid "^3.3.6" picocolors "^1.0.0" source-map-js "^1.0.2" preact@^10.12.0, preact@^10.5.9: - version "10.17.1" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.17.1.tgz#0a1b3c658c019e759326b9648c62912cf5c2dde1" - integrity sha512-X9BODrvQ4Ekwv9GURm9AKAGaomqXmip7NQTZgY7gcNmr7XE83adOMJvd3N42id1tMFU7ojiynRsYnY6/BRFxLA== + version "10.18.1" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.18.1.tgz#3b84bb305f0b05f4ad5784b981d15fcec4e105da" + integrity sha512-mKUD7RRkQQM6s7Rkmi7IFkoEHjuFqRQUaXamO61E6Nn7vqF/bo7EZCmSyrUnp2UWHw0O7XjZ2eeXis+m7tf4lg== prebuild-install@^7.1.1: version "7.1.1" @@ -7907,6 +7451,11 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== +prettier@^2.3.1: + version "2.8.8" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== + pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: version "5.6.0" resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" @@ -7922,9 +7471,9 @@ pretty-format@^27.0.2: react-is "^17.0.1" pretty-format@^29.5.0: - version "29.6.3" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.6.3.tgz#d432bb4f1ca6f9463410c3fb25a0ba88e594ace7" - integrity sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw== + version "29.7.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== dependencies: "@jest/schemas" "^29.6.3" ansi-styles "^5.0.0" @@ -7935,11 +7484,6 @@ process-warning@^1.0.0: resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-1.0.0.tgz#980a0b25dc38cd6034181be4b7726d89066b4616" integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== - progress@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" @@ -8142,10 +7686,10 @@ react-resize-detector@^8.0.4: dependencies: lodash "^4.17.21" -react-smooth@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/react-smooth/-/react-smooth-2.0.3.tgz#2845fa8f22914f2e4445856d5688fb8a7d72f3ae" - integrity sha512-yl4y3XiMorss7ayF5QnBiSprig0+qFHui8uh7Hgg46QX5O+aRMRKlfGGNGLHno35JkQSvSYY8eCWkBfHfrSHfg== +react-smooth@^2.0.4: + version "2.0.5" + resolved "https://registry.yarnpkg.com/react-smooth/-/react-smooth-2.0.5.tgz#d153b7dffc7143d0c99e82db1532f8cf93f20ecd" + integrity sha512-BMP2Ad42tD60h0JW6BFaib+RJuV5dsXJK9Baxiv/HlNFjvRLqA9xrNKxVWnUIZPQfzUwGXIlU/dSYLU+54YGQA== dependencies: fast-equals "^5.0.0" react-transition-group "2.9.0" @@ -8197,17 +7741,6 @@ readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable string_decoder "^1.1.1" util-deprecate "^1.0.1" -readable-stream@^4.0.0: - version "4.4.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.4.2.tgz#e6aced27ad3b9d726d8308515b9a1b98dc1b9d13" - integrity sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA== - dependencies: - abort-controller "^3.0.0" - buffer "^6.0.3" - events "^3.3.0" - process "^0.11.10" - string_decoder "^1.3.0" - readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -8228,29 +7761,26 @@ recharts-scale@^0.4.4: decimal.js-light "^2.4.1" recharts@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/recharts/-/recharts-2.8.0.tgz#90c95136e2cb6930224c94a51adce607701284fc" - integrity sha512-nciXqQDh3aW8abhwUlA4EBOBusRHLNiKHfpRZiG/yjups1x+auHb2zWPuEcTn/IMiN47vVMMuF8Sr+vcQJtsmw== + version "2.9.0" + resolved "https://registry.yarnpkg.com/recharts/-/recharts-2.9.0.tgz#dde7531298cffe8677b1206967830d34f7972ea6" + integrity sha512-cVgiAU3W5UrA8nRRV/N0JrudgZzY/vjkzrlShbH+EFo1vs4nMlXgshZWLI0DfDLmn4/p4pF7Lq7F5PU+K94Ipg== dependencies: classnames "^2.2.5" eventemitter3 "^4.0.1" lodash "^4.17.19" react-is "^16.10.2" react-resize-detector "^8.0.4" - react-smooth "^2.0.2" + react-smooth "^2.0.4" recharts-scale "^0.4.4" - reduce-css-calc "^2.1.8" + tiny-invariant "^1.3.1" victory-vendor "^36.6.8" -reduce-css-calc@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz#7ef8761a28d614980dc0c982f772c93f7a99de03" - integrity sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg== - dependencies: - css-unit-converter "^1.1.1" - postcss-value-parser "^3.3.0" +reduce-flatten@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27" + integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== -reflect.getprototypeof@^1.0.3: +reflect.getprototypeof@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz#aaccbf41aca3821b87bb71d9dcbc7ad0ba50a3f3" integrity sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw== @@ -8263,9 +7793,9 @@ reflect.getprototypeof@^1.0.3: which-builtin-type "^1.1.3" regenerate-unicode-properties@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" - integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ== + version "10.1.1" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480" + integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== dependencies: regenerate "^1.4.2" @@ -8286,14 +7816,14 @@ regenerator-transform@^0.15.2: dependencies: "@babel/runtime" "^7.8.4" -regexp.prototype.flags@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" - integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== +regexp.prototype.flags@^1.5.0, regexp.prototype.flags@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" + integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== dependencies: call-bind "^1.0.2" define-properties "^1.2.0" - functions-have-names "^1.2.3" + set-function-name "^2.0.0" regexpu-core@^5.3.1: version "5.3.2" @@ -8334,31 +7864,26 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - resolve-pkg-maps@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== -resolve@^1.1.7, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.22.2, resolve@^1.22.3, resolve@^1.22.4: - version "1.22.4" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.4.tgz#1dc40df46554cdaf8948a486a10f6ba1e2026c34" - integrity sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg== +resolve@^1.1.7, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.22.2, resolve@^1.22.4: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== dependencies: is-core-module "^2.13.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" resolve@^2.0.0-next.4: - version "2.0.0-next.4" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" - integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== + version "2.0.0-next.5" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.5.tgz#6b0ec3107e671e52b68cd068ef327173b90dc03c" + integrity sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA== dependencies: - is-core-module "^2.9.0" + is-core-module "^2.13.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -8405,10 +7930,10 @@ rollup@^2.43.1: optionalDependencies: fsevents "~2.3.2" -rollup@^3.2.5, rollup@^3.27.1: - version "3.28.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.28.1.tgz#fb44aa6d5e65c7e13fd5bcfff266d0c4ea9ba433" - integrity sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw== +rollup@^3.27.1: + version "3.29.4" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981" + integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw== optionalDependencies: fsevents "~2.3.2" @@ -8425,13 +7950,6 @@ rpc-websockets@^7.5.1: bufferutil "^4.0.1" utf-8-validate "^5.0.2" -run-applescript@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c" - integrity sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg== - dependencies: - execa "^5.0.0" - run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -8446,13 +7964,20 @@ rxjs@^6.6.3: dependencies: tslib "^1.9.0" -safe-array-concat@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.0.tgz#2064223cba3c08d2ee05148eedbc563cd6d84060" - integrity sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ== +rxjs@^7.0.0: + version "7.8.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== + dependencies: + tslib "^2.1.0" + +safe-array-concat@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" + integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== dependencies: call-bind "^1.0.2" - get-intrinsic "^1.2.0" + get-intrinsic "^1.2.1" has-symbols "^1.0.3" isarray "^2.0.5" @@ -8487,20 +8012,15 @@ safe-stable-stringify@^2.1.0: resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== -"safer-buffer@>= 2.1.2 < 3.0.0": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - sandwich-stream@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/sandwich-stream/-/sandwich-stream-2.0.2.tgz#6d1feb6cf7e9fe9fadb41513459a72c2e84000fa" integrity sha512-jLYV0DORrzY3xaz/S9ydJL6Iz7essZeAfnAavsJ+zsJGZ1MOnsS52yRjU3uF3pJa/lla7+wisp//fxOwOH8SKQ== -sass@^1.66.1: - version "1.66.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.66.1.tgz#04b51c4671e4650aa393740e66a4e58b44d055b1" - integrity sha512-50c+zTsZOJVgFfTgwwEzkjA3/QACgdNsKueWPyAR0mRINIvLAStVQBbPg14iuqEQ74NPDbXzJARJ/O4SI1zftA== +sass@^1.66.1, sass@^1.69.0: + version "1.69.3" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.69.3.tgz#f8a0c488697e6419519834a13335e7b65a609c11" + integrity sha512-X99+a2iGdXkdWn1akFPs0ZmelUzyAQfvqYc2P/MPTrJRuIRoTffGzT9W9nFqG00S+c8hXzVmgxhUuHFdrwxkhQ== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -8546,11 +8066,6 @@ scrypt-js@3.0.1: resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== -secure-json-parse@^2.4.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.7.0.tgz#5a5f9cd6ae47df23dba3151edd06855d47e09862" - integrity sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw== - semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" @@ -8577,11 +8092,25 @@ serialize-javascript@^6.0.1: dependencies: randombytes "^2.1.0" +serialize-query-params@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/serialize-query-params/-/serialize-query-params-2.0.2.tgz#598a3fb9e13f4ea1c1992fbd20231aa16b31db81" + integrity sha512-1chMo1dST4pFA9RDXAtF0Rbjaut4is7bzFbI1Z26IuMub68pNCILku85aYmeFhvnY//BXUPUhoRMjYcsT93J/Q== + set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== +set-function-name@^2.0.0, set-function-name@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" + integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== + dependencies: + define-data-property "^1.0.1" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.0" + sha.js@^2.4.11: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" @@ -8590,10 +8119,10 @@ sha.js@^2.4.11: inherits "^2.0.1" safe-buffer "^5.0.1" -sharp@^0.32.5: - version "0.32.5" - resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.32.5.tgz#9ddc78ead6446094f51e50355a2d4ec6e7220cd4" - integrity sha512-0dap3iysgDkNaPOaOL4X/0akdu0ma62GcdC2NBQ+93eqpePdDdr2/LM0sFdDSMmN7yS+odyZtPsb7tx/cYBKnQ== +sharp@^0.32.6: + version "0.32.6" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.32.6.tgz#6ad30c0b7cd910df65d5f355f774aa4fce45732a" + integrity sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w== dependencies: color "^4.2.3" detect-libc "^2.0.2" @@ -8616,6 +8145,11 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== +shell-quote@^1.7.3: + version "1.8.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" + integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== + side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" @@ -8630,11 +8164,6 @@ siginfo@^2.0.0: resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== -signal-exit@^3.0.3, signal-exit@^3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - simple-concat@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" @@ -8670,11 +8199,6 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -slash@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" - integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== - sonic-boom@^2.2.1: version "2.8.0" resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-2.8.0.tgz#c1def62a77425090e6ad7516aad8eb402e047611" @@ -8682,13 +8206,6 @@ sonic-boom@^2.2.1: dependencies: atomic-sleep "^1.0.0" -sonic-boom@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.3.0.tgz#cffab6dafee3b2bcb88d08d589394198bee1838c" - integrity sha512-LYxp34KlZ1a2Jb8ZQgFCK3niIHzibdwtwNUWKg0qQRzsDoJ3Gfgkf8KdBTFU3SkejDEIlWwnSnpVdOZIhFMl/g== - dependencies: - atomic-sleep "^1.0.0" - source-list-map@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" @@ -8707,23 +8224,33 @@ source-map-support@~0.5.20: buffer-from "^1.0.0" source-map "^0.6.0" -source-map@0.8.0-beta.0, source-map@^0.8.0-beta.0: +source-map@^0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + +source-map@^0.8.0-beta.0: version "0.8.0-beta.0" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11" integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA== dependencies: whatwg-url "^7.0.0" -source-map@^0.6.0, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - sourcemap-codec@^1.4.8: version "1.4.8" resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== +spawn-command@^0.0.2-1: + version "0.0.2-1" + resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" + integrity sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg== + split-on-first@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" @@ -8789,7 +8316,12 @@ strict-uri-encode@^2.0.0: resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== -string-width@^4.1.0, string-width@^4.2.0: +string-format@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string-format/-/string-format-2.0.0.tgz#f2df2e7097440d3b65de31b6d40d54c96eaffb9b" + integrity sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA== + +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== @@ -8799,9 +8331,9 @@ string-width@^4.1.0, string-width@^4.2.0: strip-ansi "^6.0.1" string.prototype.matchall@^4.0.6, string.prototype.matchall@^4.0.8: - version "4.0.9" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.9.tgz#148779de0f75d36b13b15885fec5cadde994520d" - integrity sha512-6i5hL3MqG/K2G43mWXWgP+qizFW/QH/7kCNN13JrJS5q48FN5IKksLDscexKP3dnmB6cdm9jlNgAsWNLpSykmA== + version "4.0.10" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz#a1553eb532221d4180c51581d6072cd65d1ee100" + integrity sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ== dependencies: call-bind "^1.0.2" define-properties "^1.2.0" @@ -8810,36 +8342,37 @@ string.prototype.matchall@^4.0.6, string.prototype.matchall@^4.0.8: has-symbols "^1.0.3" internal-slot "^1.0.5" regexp.prototype.flags "^1.5.0" + set-function-name "^2.0.0" side-channel "^1.0.4" -string.prototype.trim@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" - integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== +string.prototype.trim@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" + integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" -string.prototype.trimend@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" - integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== +string.prototype.trimend@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" + integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" -string.prototype.trimstart@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" - integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== +string.prototype.trimstart@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" + integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" -string_decoder@^1.1.1, string_decoder@^1.3.0: +string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== @@ -8872,16 +8405,6 @@ strip-comments@^2.0.1: resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-2.0.1.tgz#4ad11c3fbcac177a67a40ac224ca339ca1c1ba9b" integrity sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw== -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - strip-hex-prefix@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" @@ -8913,7 +8436,7 @@ styled-jsx@5.1.1: dependencies: client-only "0.0.1" -sucrase@^3.20.3, sucrase@^3.32.0: +sucrase@^3.32.0: version "3.34.0" resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.34.0.tgz#1e0e2d8fcf07f8b9c3569067d92fbd8690fb576f" integrity sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw== @@ -8950,7 +8473,7 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-color@^8.0.0: +supports-color@^8.0.0, supports-color@^8.1.0: version "8.1.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== @@ -8969,13 +8492,15 @@ swr@2.1.5: dependencies: use-sync-external-store "^1.2.0" -synckit@^0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.5.tgz#b7f4358f9bb559437f9f167eb6bc46b3c9818fa3" - integrity sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q== +table-layout@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.2.tgz#c4038a1853b0136d63365a734b6931cf4fad4a04" + integrity sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A== dependencies: - "@pkgr/utils" "^2.3.1" - tslib "^2.5.0" + array-back "^4.0.1" + deep-extend "~0.6.0" + typical "^5.2.0" + wordwrapjs "^4.0.0" tailwindcss@^3.3.3: version "3.3.3" @@ -9050,11 +8575,11 @@ tar-stream@^3.1.5: streamx "^2.15.0" telegraf@^4.13.1: - version "4.13.1" - resolved "https://registry.yarnpkg.com/telegraf/-/telegraf-4.13.1.tgz#ad0b6df452aa133bf6561b4a182bdedb558046b6" - integrity sha512-WXITwqE3ivqDqjHFxj94xaQhHddldBZdE2g/hRJXyCMTkwZYw69q9I7La7nsDpsHLn5ADSQlGv0KAbwFkFpmlA== + version "4.14.0" + resolved "https://registry.yarnpkg.com/telegraf/-/telegraf-4.14.0.tgz#4cba12ea79e52e6e288e40801d663c9b04319966" + integrity sha512-Nn2EBsuar/Mf3SD6O9tHmJ0FyJWnwAi4rewkJMmzd/O1xWYKglEuzSnCuHHRY7oD5NJ6WNPsavta5DbED8tG3w== dependencies: - "@telegraf/types" "^6.8.1" + "@telegraf/types" "^6.9.0" abort-controller "^3.0.0" debug "^4.3.4" mri "^1.2.0" @@ -9090,9 +8615,9 @@ terser-webpack-plugin@^5.3.3, terser-webpack-plugin@^5.3.7: terser "^5.16.8" terser@^5.0.0, terser@^5.16.8: - version "5.19.3" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.19.3.tgz#359baeba615aef13db4b8c4d77a2aa0d8814aa9e" - integrity sha512-pQzJ9UJzM0IgmT4FAtYI6+VqFf0lj/to58AV0Xfgg0Up37RyPG7Al+1cepC6/BVuAxR9oNb41/DL4DEoHJvTdg== + version "5.22.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.22.0.tgz#4f18103f84c5c9437aafb7a14918273310a8a49d" + integrity sha512-hHZVLgRA2z4NWcN6aS5rQDc+7Dcy58HOf2zbYwmFcQ+ua3h6eEFf5lIDKTzbWwlazPyOZsFQO8V80/IjVNExEw== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -9142,10 +8667,15 @@ thread-stream@^0.15.1: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== +tiny-invariant@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.1.tgz#8560808c916ef02ecfd55e66090df23a4b7aa642" + integrity sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw== + tinybench@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.5.0.tgz#4711c99bbf6f3e986f67eb722fed9cddb3a68ba5" - integrity sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA== + version "2.5.1" + resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.5.1.tgz#3408f6552125e53a5a48adee31261686fd71587e" + integrity sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg== tinypool@^0.7.0: version "0.7.0" @@ -9153,14 +8683,9 @@ tinypool@^0.7.0: integrity sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww== tinyspy@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-2.1.1.tgz#9e6371b00c259e5c5b301917ca18c01d40ae558c" - integrity sha512-XPJL2uSzcOyBMky6OFrusqWlzfFrXtE0hPuMgW8A2HmaqrPo4ZQHRN/V0QXN3FSjKxpsbRrFc5LI7KOwBsT1/w== - -titleize@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53" - integrity sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ== + version "2.2.0" + resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-2.2.0.tgz#9dc04b072746520b432f77ea2c2d17933de5d6ce" + integrity sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg== to-fast-properties@^2.0.0: version "2.0.0" @@ -9202,9 +8727,24 @@ tree-kill@^1.2.2: integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== ts-api-utils@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.2.tgz#7c094f753b6705ee4faee25c3c684ade52d66d99" - integrity sha512-Cbu4nIqnEdd+THNEsBdkolnOXhg0I8XteoHaEKgvsxpsbWda4IsUut2c187HxywQCvveojow0Dgw/amxtSKVkQ== + version "1.0.3" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" + integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== + +ts-command-line-args@^2.2.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz#e64456b580d1d4f6d948824c274cf6fa5f45f7f0" + integrity sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw== + dependencies: + chalk "^4.1.0" + command-line-args "^5.1.1" + command-line-usage "^6.1.0" + string-format "^2.0.0" + +ts-essentials@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-7.0.3.tgz#686fd155a02133eedcc5362dc8b5056cde3e5a38" + integrity sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ== ts-interface-checker@^0.1.9: version "0.1.13" @@ -9212,14 +8752,15 @@ ts-interface-checker@^0.1.9: integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== ts-loader@^9.4.4: - version "9.4.4" - resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.4.4.tgz#6ceaf4d58dcc6979f84125335904920884b7cee4" - integrity sha512-MLukxDHBl8OJ5Dk3y69IsKVFRA/6MwzEqBgh+OXMPB/OD01KQuWPFd1WAQP8a5PeSCAxfnkhiuWqfmFJzJQt9w== + version "9.5.0" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.5.0.tgz#f0a51dda37cc4d8e43e6cb14edebbc599b0c3aa2" + integrity sha512-LLlB/pkB4q9mW2yLdFMnK3dEHbrBjeZTYguaaIfusyojBgAGf5kF+O6KcWqiGzWqHk0LBsoolrp4VftEURhybg== dependencies: chalk "^4.1.0" enhanced-resolve "^5.0.0" micromatch "^4.0.0" semver "^7.3.4" + source-map "^0.7.4" tsconfig-paths@^3.14.2: version "3.14.2" @@ -9236,36 +8777,11 @@ tslib@1.14.1, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.3.1, tslib@^2.4.0, "tslib@^2.4.1 || ^1.9.3": - version "2.6.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.1.tgz#fd8c9a0ff42590b25703c0acb3de3d3f4ede0410" - integrity sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig== - -tslib@^2.1.0, tslib@^2.5.0, tslib@^2.6.0: +tslib@^2.0.0, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, "tslib@^2.4.1 || ^1.9.3": version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== -tsup@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/tsup/-/tsup-7.2.0.tgz#bb24c0d5e436477900c712e42adc67200607303c" - integrity sha512-vDHlczXbgUvY3rWvqFEbSqmC1L7woozbzngMqTtL2PGBODTtWlRwGDDawhvWzr5c1QjKe4OAKqJGfE1xeXUvtQ== - dependencies: - bundle-require "^4.0.0" - cac "^6.7.12" - chokidar "^3.5.1" - debug "^4.3.1" - esbuild "^0.18.2" - execa "^5.0.0" - globby "^11.0.3" - joycon "^3.0.1" - postcss-load-config "^4.0.1" - resolve-from "^5.0.0" - rollup "^3.2.5" - source-map "0.8.0-beta.0" - sucrase "^3.20.3" - tree-kill "^1.2.2" - tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" @@ -9280,7 +8796,7 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -type-detect@^4.0.0, type-detect@^4.0.5: +type-detect@^4.0.0, type-detect@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== @@ -9310,6 +8826,22 @@ type@^2.7.2: resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== +typechain@^8.1.1: + version "8.3.2" + resolved "https://registry.yarnpkg.com/typechain/-/typechain-8.3.2.tgz#1090dd8d9c57b6ef2aed3640a516bdbf01b00d73" + integrity sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q== + dependencies: + "@types/prettier" "^2.1.1" + debug "^4.3.1" + fs-extra "^7.0.0" + glob "7.1.7" + js-sha3 "^0.8.0" + lodash "^4.17.15" + mkdirp "^1.0.4" + prettier "^2.3.1" + ts-command-line-args "^2.2.0" + ts-essentials "^7.0.1" + typed-array-buffer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" @@ -9361,10 +8893,20 @@ typescript@^5.2.2: resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== -ufo@^1.1.2, ufo@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.3.0.tgz#c92f8ac209daff607c57bbd75029e190930a0019" - integrity sha512-bRn3CsoojyNStCZe0BG0Mt4Nr/4KF+rhFlnNXybgqt5pXHNFRlqinSoQaTrGyzE4X8aHplSb+TorH+COin9Yxw== +typical@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4" + integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw== + +typical@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066" + integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== + +ufo@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.3.1.tgz#e085842f4627c41d4c1b60ebea1f75cdab4ce86b" + integrity sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw== uint8arrays@^3.0.0, uint8arrays@^3.1.0: version "3.1.1" @@ -9383,6 +8925,11 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +undici-types@~5.25.1: + version "5.25.3" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.25.3.tgz#e044115914c85f0bcbb229f346ab739f064998c3" + integrity sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA== + unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" @@ -9413,30 +8960,25 @@ unique-string@^2.0.0: dependencies: crypto-random-string "^2.0.0" +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + universalify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== -untildify@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" - integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== - -unws@0.2.4: - version "0.2.4" - resolved "https://registry.yarnpkg.com/unws/-/unws-0.2.4.tgz#cb6f27a98a7fab4bf1c2f842648f9a2fc8be80f2" - integrity sha512-/N1ajiqrSp0A/26/LBg7r10fOcPtGXCqJRJ61sijUFoGZMr6ESWGYn7i0cwr7fR7eEECY5HsitqtjGHDZLAu2w== - upath@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== -update-browserslist-db@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" - integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== dependencies: escalade "^3.1.1" picocolors "^1.0.0" @@ -9455,6 +8997,13 @@ use-callback-ref@^1.3.0: dependencies: tslib "^2.0.0" +use-query-params@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/use-query-params/-/use-query-params-2.2.1.tgz#c558ab70706f319112fbccabf6867b9f904e947d" + integrity sha512-i6alcyLB8w9i3ZK3caNftdb+UnbfBRNPDnc89CNQWkGRmDrm/gfydHvMBfVsQJRq3NoHOM2dt/ceBWG2397v1Q== + dependencies: + serialize-query-params "^2.0.2" + use-sidecar@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/use-sidecar/-/use-sidecar-1.1.2.tgz#2f43126ba2d7d7e117aa5855e5d8f0276dfe73c2" @@ -9508,10 +9057,10 @@ uuid@^8.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -valtio@1.11.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/valtio/-/valtio-1.11.0.tgz#c029dcd17a0f99d2fbec933721fe64cfd32a31ed" - integrity sha512-65Yd0yU5qs86b5lN1eu/nzcTgQ9/6YnD6iO+DDaDbQLn1Zv2w12Gwk43WkPlUBxk5wL/6cD5YMFf7kj6HZ1Kpg== +valtio@1.11.2: + version "1.11.2" + resolved "https://registry.yarnpkg.com/valtio/-/valtio-1.11.2.tgz#b8049c02dfe65620635d23ebae9121a741bb6530" + integrity sha512-1XfIxnUXzyswPAPXo1P3Pdx2mq/pIqZICkWN60Hby0d9Iqb+MEIpqgYVlbflvHdrp2YR/q3jyKWRPJJ100yxaw== dependencies: proxy-compare "2.5.1" use-sync-external-store "1.2.0" @@ -9536,67 +9085,36 @@ victory-vendor@^36.6.8: d3-time "^3.0.0" d3-timer "^3.0.1" -viem@1.10.9: - version "1.10.9" - resolved "https://registry.yarnpkg.com/viem/-/viem-1.10.9.tgz#9b16ade429b234f7b33a79544badddbb5498b13c" - integrity sha512-fhQxnMBFwGbyE/VOfcvcavxAPyqIHSgOB793gQcMPH1B9ahQvjMe3C3icqypC01ACaqpDPgYWGfvF/ExTeIPuA== - dependencies: - "@adraffy/ens-normalize" "1.9.4" - "@noble/curves" "1.2.0" - "@noble/hashes" "1.3.2" - "@scure/bip32" "1.3.2" - "@scure/bip39" "1.2.1" - "@types/ws" "^8.5.5" - abitype "0.9.8" - isomorphic-ws "5.0.0" - ws "8.13.0" - -viem@^1.0.0: - version "1.4.2" - resolved "https://registry.yarnpkg.com/viem/-/viem-1.4.2.tgz#81aaff0d8ee0d39bb2994ffa6c89bf7ee4fbcde6" - integrity sha512-125E7HoOr5PrL+Iwt8853dQexwRoiPpLwPsrRvlDX94su2xoe7AYqrdfR6N9nmy6vd6mt8eQy8+LWiP3A+1dqw== - dependencies: - "@adraffy/ens-normalize" "1.9.0" - "@noble/curves" "1.0.0" - "@noble/hashes" "1.3.0" - "@scure/bip32" "1.3.0" - "@scure/bip39" "1.2.0" - "@wagmi/chains" "1.6.0" - abitype "0.9.3" - isomorphic-ws "5.0.0" - ws "8.12.0" - -viem@^1.10.12: - version "1.10.12" - resolved "https://registry.yarnpkg.com/viem/-/viem-1.10.12.tgz#aefbd10acab48316290f6223d19defc4f03afa21" - integrity sha512-Q6v6rKxRiswAcLbHMaqmpEUKtgANjzBNEeco04WVX/yxFihDafLcuRmz17AtgvgbN+ROclZcbY3lsKOiSABUJg== +viem@^1.0.0, viem@^1.15.4, viem@^1.16.5: + version "1.16.5" + resolved "https://registry.yarnpkg.com/viem/-/viem-1.16.5.tgz#99bac3bd6a2ccdff4a097438a8ef23a91f01d414" + integrity sha512-D8aE6cp/5w6PDtOOkJjkN+FtLyfsNWkfE78N4yTgCt4BG7KsBsePp4O68r1IaTVTVa41anebiZAy9kNEIwAXiw== dependencies: "@adraffy/ens-normalize" "1.9.4" "@noble/curves" "1.2.0" "@noble/hashes" "1.3.2" "@scure/bip32" "1.3.2" "@scure/bip39" "1.2.1" - "@types/ws" "^8.5.5" abitype "0.9.8" - unws "0.2.4" + isows "1.0.3" ws "8.13.0" -vite-node@0.34.3: - version "0.34.3" - resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.34.3.tgz#de134fe38bc1555ac8ab5e489d7df6159a3e1a4c" - integrity sha512-+0TzJf1g0tYXj6tR2vEyiA42OPq68QkRZCu/ERSo2PtsDJfBpDyEfuKbRvLmZqi/CgC7SCBtyC+WjTGNMRIaig== +vite-node@0.34.6: + version "0.34.6" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.34.6.tgz#34d19795de1498562bf21541a58edcd106328a17" + integrity sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA== dependencies: cac "^6.7.14" debug "^4.3.4" mlly "^1.4.0" pathe "^1.1.1" picocolors "^1.0.0" - vite "^3.0.0 || ^4.0.0" + vite "^3.0.0 || ^4.0.0 || ^5.0.0-0" -"vite@^3.0.0 || ^4.0.0", vite@^4.2.0: - version "4.4.9" - resolved "https://registry.yarnpkg.com/vite/-/vite-4.4.9.tgz#1402423f1a2f8d66fd8d15e351127c7236d29d3d" - integrity sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA== +"vite@^3.0.0 || ^4.0.0 || ^5.0.0-0", "vite@^3.1.0 || ^4.0.0 || ^5.0.0-0", vite@^4.2.0: + version "4.4.11" + resolved "https://registry.yarnpkg.com/vite/-/vite-4.4.11.tgz#babdb055b08c69cfc4c468072a2e6c9ca62102b0" + integrity sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A== dependencies: esbuild "^0.18.10" postcss "^8.4.27" @@ -9605,22 +9123,22 @@ vite-node@0.34.3: fsevents "~2.3.2" vitest@^0.34.3: - version "0.34.3" - resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.34.3.tgz#863d61c133d01b16e49fd52d380c09fa5ac03188" - integrity sha512-7+VA5Iw4S3USYk+qwPxHl8plCMhA5rtfwMjgoQXMT7rO5ldWcdsdo3U1QD289JgglGK4WeOzgoLTsGFu6VISyQ== + version "0.34.6" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.34.6.tgz#44880feeeef493c04b7f795ed268f24a543250d7" + integrity sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q== dependencies: "@types/chai" "^4.3.5" "@types/chai-subset" "^1.3.3" "@types/node" "*" - "@vitest/expect" "0.34.3" - "@vitest/runner" "0.34.3" - "@vitest/snapshot" "0.34.3" - "@vitest/spy" "0.34.3" - "@vitest/utils" "0.34.3" + "@vitest/expect" "0.34.6" + "@vitest/runner" "0.34.6" + "@vitest/snapshot" "0.34.6" + "@vitest/spy" "0.34.6" + "@vitest/utils" "0.34.6" acorn "^8.9.0" acorn-walk "^8.2.0" cac "^6.7.14" - chai "^4.3.7" + chai "^4.3.10" debug "^4.3.4" local-pkg "^0.4.3" magic-string "^0.30.1" @@ -9630,19 +9148,19 @@ vitest@^0.34.3: strip-literal "^1.0.1" tinybench "^2.5.0" tinypool "^0.7.0" - vite "^3.0.0 || ^4.0.0" - vite-node "0.34.3" + vite "^3.1.0 || ^4.0.0 || ^5.0.0-0" + vite-node "0.34.6" why-is-node-running "^2.2.2" -wagmi@1.4.1, wagmi@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/wagmi/-/wagmi-1.4.1.tgz#32e5fda3e3a47559115118e7c8315fe25115ab11" - integrity sha512-v3xd+uYZfLCAs1I4fLU7U9hg/gCw+Ud005J7kNR0mi20BcFAEU1EDN1LxHxpjUV0qKhOzSlMlrLjJyBCmSYhFA== +wagmi@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/wagmi/-/wagmi-1.4.3.tgz#e3f8c9e7ec5b899eb15a29a727e833d44bd50ce4" + integrity sha512-3LjbqqVRe6WW/WD07QCd5Itmo4nUfLsXuoc8F7nw9NslNUg8SFEb+g/jZ4665V0xh5ZRqPBJ7XOXASpdM2Y/5Q== dependencies: "@tanstack/query-sync-storage-persister" "^4.27.1" "@tanstack/react-query" "^4.28.0" "@tanstack/react-query-persist-client" "^4.28.0" - "@wagmi/core" "1.4.1" + "@wagmi/core" "1.4.3" abitype "0.8.7" use-sync-external-store "^1.2.0" @@ -9807,9 +9325,9 @@ webpack-sources@^1.4.3: integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== webpack@^5.88.2: - version "5.88.2" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.88.2.tgz#f62b4b842f1c6ff580f3fcb2ed4f0b579f4c210e" - integrity sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ== + version "5.89.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.89.0.tgz#56b8bf9a34356e93a6625770006490bf3a7f32dc" + integrity sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw== dependencies: "@types/eslint-scope" "^3.7.3" "@types/estree" "^1.0.0" @@ -9909,7 +9427,7 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== -which-typed-array@^1.1.10, which-typed-array@^1.1.11, which-typed-array@^1.1.2, which-typed-array@^1.1.9: +which-typed-array@^1.1.11, which-typed-array@^1.1.2, which-typed-array@^1.1.9: version "1.1.11" resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.11.tgz#99d691f23c72aab6768680805a271b69761ed61a" integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew== @@ -9944,6 +9462,14 @@ wido@^0.4.1: "@biconomy/paymaster" "^3.0.0-alpha.0" "@ethersproject/properties" "^5.7.0" +wordwrapjs@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-4.0.1.tgz#d9790bccfb110a0fc7836b5ebce0937b37a8b98f" + integrity sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA== + dependencies: + reduce-flatten "^2.0.0" + typical "^5.2.0" + workbox-background-sync@6.6.1: version "6.6.1" resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-6.6.1.tgz#08d603a33717ce663e718c30cc336f74909aff2f" @@ -10122,6 +9648,15 @@ 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" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -10132,12 +9667,7 @@ ws@7.4.6: resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== -ws@8.12.0: - version "8.12.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.0.tgz#485074cc392689da78e1828a9ff23585e06cddd8" - integrity sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig== - -ws@8.13.0, ws@^8.5.0: +ws@8.13.0: version "8.13.0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== @@ -10147,6 +9677,11 @@ ws@^7.3.1, ws@^7.4.5, ws@^7.5.1: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== +ws@^8.5.0: + version "8.14.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" + integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== + xtend@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" @@ -10157,6 +9692,11 @@ y18n@^4.0.0: resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + yaeti@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" @@ -10173,9 +9713,9 @@ yallist@^4.0.0: integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yaml@^2.1.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.2.tgz#f522db4313c671a0ca963a75670f1c12ea909144" - integrity sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg== + version "2.3.3" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.3.tgz#01f6d18ef036446340007db8e016810e5d64aad9" + integrity sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ== yargs-parser@^18.1.2: version "18.1.3" @@ -10185,6 +9725,11 @@ yargs-parser@^18.1.2: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + yargs@^15.3.1: version "15.4.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" @@ -10202,6 +9747,19 @@ yargs@^15.3.1: y18n "^4.0.0" yargs-parser "^18.1.2" +yargs@^17.3.1: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" @@ -10212,19 +9770,14 @@ 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.21.4: - version "3.21.4" - resolved "https://registry.yarnpkg.com/zod/-/zod-3.21.4.tgz#10882231d992519f0a10b5dd58a38c9dabbb64db" - integrity sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw== - -zod@^3.22.2: - version "3.22.2" - resolved "https://registry.yarnpkg.com/zod/-/zod-3.22.2.tgz#3add8c682b7077c05ac6f979fea6998b573e157b" - integrity sha512-wvWkphh5WQsJbVk1tbx1l1Ly4yg+XecD+Mq280uBGt9wa5BKSWf4Mhp6GmrkPixhMxmabYY7RbzlwVP32pbGCg== +zod@^3.22.2, zod@^3.22.4: + version "3.22.4" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.22.4.tgz#f31c3a9386f61b1f228af56faa9255e845cf3fff" + integrity sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg== zustand@^4.3.1: - version "4.4.1" - resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.4.1.tgz#0cd3a3e4756f21811bd956418fdc686877e8b3b0" - integrity sha512-QCPfstAS4EBiTQzlaGP1gmorkh/UL1Leaj2tdj+zZCZ/9bm0WS7sI2wnfD5lpOszFqWJ1DcPnGoY8RDL61uokw== + version "4.4.3" + resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.4.3.tgz#1d54cf7fa4507ad8bf58e2f13e08ddc8a6730128" + integrity sha512-oRy+X3ZazZvLfmv6viIaQmtLOMeij1noakIsK/Y47PWYhT8glfXzQ4j0YcP5i0P0qI1A4rIB//SGROGyZhx91A== dependencies: use-sync-external-store "1.2.0"