From d940ac5e9b447528537afdf910a540ac124626d1 Mon Sep 17 00:00:00 2001 From: v1rtl Date: Fri, 26 Jul 2024 17:38:03 +0300 Subject: [PATCH 01/38] wip move namewrapper to a separate component --- public/locales/en/profile.json | 1 + .../profile/[name]/tabs/MoreTab/MoreTab.tsx | 15 ++-- .../[name]/tabs/MoreTab/NameWrapper.tsx | 78 +++++++++++++++++++ .../[name]/tabs/MoreTab/Token/Token.tsx | 37 +-------- 4 files changed, 85 insertions(+), 46 deletions(-) create mode 100644 src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx diff --git a/public/locales/en/profile.json b/public/locales/en/profile.json index e981d024f..4b104ef7f 100644 --- a/public/locales/en/profile.json +++ b/public/locales/en/profile.json @@ -302,6 +302,7 @@ "hex": "hex", "decimal": "decimal", "wrapper": "wrapper", + "nameWrapper": "Name Wrapper", "wrapName": "Wrap Name", "unwrap": "Unwrap", "status": { diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/MoreTab.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/MoreTab.tsx index 566ed4783..fd3e289cb 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/MoreTab.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/MoreTab.tsx @@ -1,9 +1,11 @@ import styled, { css } from 'styled-components' +import { useAccount } from 'wagmi' import { CacheableComponent } from '@app/components/@atoms/CacheableComponent' import type { useAbilities } from '@app/hooks/abilities/useAbilities' import { useNameDetails } from '@app/hooks/useNameDetails' +import { NameWrapper } from './NameWrapper' import Resolver from './Resolver' import Token from './Token/Token' @@ -27,19 +29,11 @@ type Props = { const MoreTab = ({ name, nameDetails, abilities }: Props) => { const { canBeWrapped, ownerData, wrapperData, isWrapped, isCachedData, profile } = nameDetails + const { isConnected } = useAccount() return ( - {ownerData && ( - - )} + {ownerData && } { resolverAddress={profile?.resolverAddress} canEditResolverError={abilities.canEditResolverError} /> + {isConnected && } ) } diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx new file mode 100644 index 000000000..e8aec79c0 --- /dev/null +++ b/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx @@ -0,0 +1,78 @@ +import { useTranslation } from 'react-i18next' +import styled, { css } from 'styled-components' +import { match, P } from 'ts-pattern' + +import { GetOwnerReturnType, GetWrapperDataReturnType } from '@ensdomains/ensjs/public' +import { mq, RecordItem, Typography } from '@ensdomains/thorin' + +import { cacheableComponentStyles } from '@app/components/@atoms/CacheableComponent' +import { NameWrapperState } from '@app/hooks/fuses/useFusesStates' +import { Profile } from '@app/types' + +import { TabWrapper } from '../../../TabWrapper' + +type Props = { + name: string + isWrapped: boolean + canBeWrapped: boolean + ownerData?: GetOwnerReturnType + wrapperData?: GetWrapperDataReturnType + profile: Profile | undefined +} + +const getFuseStateFromWrapperData = (wrapperData?: GetWrapperDataReturnType): NameWrapperState => + match(wrapperData) + .with(P.nullish, () => 'unwrapped' as const) + .with({ fuses: { child: { CANNOT_UNWRAP: true } } }, () => 'locked' as const) + .with({ fuses: { parent: { PARENT_CANNOT_CONTROL: true } } }, () => 'emancipated' as const) + .otherwise(() => 'wrapped') + +const Container = styled(TabWrapper)( + cacheableComponentStyles, + ({ theme }) => css` + width: 100%; + display: flex; + flex-direction: column; + align-items: stretch; + justify-content: center; + gap: ${theme.space['4']}; + + padding: ${theme.space['4']}; + + ${mq.sm.min(css` + padding: ${theme.space['6']}; + `)} + `, +) + +const TwoRows = styled.div( + ({ theme }) => css` + display: flex; + flex-direction: row; + gap: ${theme.space['4']}; + `, +) + +export const NameWrapper = ({ + name, + isWrapped, + ownerData, + wrapperData, + canBeWrapped, + profile, +}: Props) => { + const { t } = useTranslation('profile') + const status: NameWrapperState = getFuseStateFromWrapperData(wrapperData) + + return ( + + {t('tabs.more.token.nameWrapper')} + + + {t(`tabs.more.token.status.${status}`)} + +
some div
+
+
+ ) +} diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/Token/Token.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/Token/Token.tsx index 1ef167c13..95d72bf51 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/Token/Token.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/Token/Token.tsx @@ -1,9 +1,7 @@ import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' -import { match, P } from 'ts-pattern' import { labelhash, namehash } from 'viem' -import { GetOwnerReturnType, GetWrapperDataReturnType } from '@ensdomains/ensjs/public' import { mq, Tag, Typography } from '@ensdomains/thorin' import { CacheableComponent } from '@app/components/@atoms/CacheableComponent' @@ -12,21 +10,13 @@ import { Outlink } from '@app/components/Outlink' import RecordItem from '@app/components/RecordItem' import { useChainName } from '@app/hooks/chain/useChainName' import { useContractAddress } from '@app/hooks/chain/useContractAddress' -import { NameWrapperState } from '@app/hooks/fuses/useFusesStates' -import { Profile } from '@app/types' import { checkETH2LDFromName, makeEtherscanLink } from '@app/utils/utils' import { TabWrapper } from '../../../../TabWrapper' -import UnwrapButton from './UnwrapButton' -import WrapButton from './WrapButton' type Props = { name: string isWrapped: boolean - canBeWrapped: boolean - ownerData?: GetOwnerReturnType - wrapperData?: GetWrapperDataReturnType - profile: Profile | undefined } const Container = styled(TabWrapper)( @@ -114,21 +104,13 @@ const NftBox = styled(NFTWithPlaceholder)( `, ) -const getFuseStateFromWrapperData = (wrapperData?: GetWrapperDataReturnType): NameWrapperState => - match(wrapperData) - .with(P.nullish, () => 'unwrapped' as const) - .with({ fuses: { child: { CANNOT_UNWRAP: true } } }, () => 'locked' as const) - .with({ fuses: { parent: { PARENT_CANNOT_CONTROL: true } } }, () => 'emancipated' as const) - .otherwise(() => 'wrapped') - -const Token = ({ name, isWrapped, canBeWrapped, ownerData, wrapperData, profile }: Props) => { +const Token = ({ name, isWrapped }: Props) => { const { t } = useTranslation('profile') const networkName = useChainName() const nameWrapperAddress = useContractAddress({ contract: 'ensNameWrapper' }) const registrarAddress = useContractAddress({ contract: 'ensBaseRegistrarImplementation' }) - const status: NameWrapperState = getFuseStateFromWrapperData(wrapperData) const is2ldEth = checkETH2LDFromName(name) const hex = isWrapped ? namehash(name) : labelhash(name.split('.')[0]) @@ -162,23 +144,6 @@ const Token = ({ name, isWrapped, canBeWrapped, ownerData, wrapperData, profile )} - - - {isWrapped ? ( - - ) : ( - - )} - ) } From 1a4beaaaf720a9d4b6f9ab915b6620aed140601b Mon Sep 17 00:00:00 2001 From: v1rtl Date: Mon, 5 Aug 2024 11:40:00 +0300 Subject: [PATCH 02/38] wip namewrapper ui --- public/locales/en/profile.json | 9 +-- .../profile/[name]/tabs/MoreTab/MoreTab.tsx | 18 ++++- .../[name]/tabs/MoreTab/NameWrapper.tsx | 65 ++++++++++++++++--- 3 files changed, 73 insertions(+), 19 deletions(-) diff --git a/public/locales/en/profile.json b/public/locales/en/profile.json index 4b104ef7f..524ae7a9f 100644 --- a/public/locales/en/profile.json +++ b/public/locales/en/profile.json @@ -303,14 +303,9 @@ "decimal": "decimal", "wrapper": "wrapper", "nameWrapper": "Name Wrapper", + "unwrappedText": " Wrapping your name gives it new features and functionality, however some functionality on your name will change. Please make sure you understand these changes before wrapping your name.", "wrapName": "Wrap Name", - "unwrap": "Unwrap", - "status": { - "unwrapped": "unwrapped", - "wrapped": "wrapped", - "emancipated": "wrapped, emancipated", - "locked": "wrapped, locked" - } + "unwrap": "Unwrap" }, "misc": { "registered": "Registered", diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/MoreTab.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/MoreTab.tsx index fd3e289cb..84ed07382 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/MoreTab.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/MoreTab.tsx @@ -3,6 +3,7 @@ import { useAccount } from 'wagmi' import { CacheableComponent } from '@app/components/@atoms/CacheableComponent' import type { useAbilities } from '@app/hooks/abilities/useAbilities' +import { usePrimaryName } from '@app/hooks/ensjs/public/usePrimaryName' import { useNameDetails } from '@app/hooks/useNameDetails' import { NameWrapper } from './NameWrapper' @@ -29,7 +30,9 @@ type Props = { const MoreTab = ({ name, nameDetails, abilities }: Props) => { const { canBeWrapped, ownerData, wrapperData, isWrapped, isCachedData, profile } = nameDetails - const { isConnected } = useAccount() + + const { isConnected, address } = useAccount() + const { data: primary } = usePrimaryName({ address }) return ( @@ -42,7 +45,18 @@ const MoreTab = ({ name, nameDetails, abilities }: Props) => { resolverAddress={profile?.resolverAddress} canEditResolverError={abilities.canEditResolverError} /> - {isConnected && } + {(isConnected || isWrapped) && ( + + )} ) } diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx index e8aec79c0..05383aa80 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx @@ -3,11 +3,11 @@ import styled, { css } from 'styled-components' import { match, P } from 'ts-pattern' import { GetOwnerReturnType, GetWrapperDataReturnType } from '@ensdomains/ensjs/public' -import { mq, RecordItem, Typography } from '@ensdomains/thorin' +import { AlertSVG, Button, CheckSVG, mq, Typography } from '@ensdomains/thorin' import { cacheableComponentStyles } from '@app/components/@atoms/CacheableComponent' -import { NameWrapperState } from '@app/hooks/fuses/useFusesStates' -import { Profile } from '@app/types' +import type { NameWrapperState } from '@app/hooks/fuses/useFusesStates' +import type { Profile } from '@app/types' import { TabWrapper } from '../../../TabWrapper' @@ -18,6 +18,7 @@ type Props = { ownerData?: GetOwnerReturnType wrapperData?: GetWrapperDataReturnType profile: Profile | undefined + isPrimaryName: boolean | undefined } const getFuseStateFromWrapperData = (wrapperData?: GetWrapperDataReturnType): NameWrapperState => @@ -50,9 +51,41 @@ const TwoRows = styled.div( display: flex; flex-direction: row; gap: ${theme.space['4']}; + justify-content: space-between; `, ) +const Record = styled.div( + ({ theme }) => css` + padding: ${theme.space[3]}; + background: ${theme.colors.greenSurface}; + border-radius: ${theme.radii.input}; + border: ${theme.borderWidths.px} ${theme.borderStyles.solid} ${theme.colors.border}; + width: ${theme.space.full}; + font-weight: ${theme.fontWeights.bold}; + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + `, +) + +const ParentControlRecord = styled(Record)<{ $isPCCBurned: boolean }>( + ({ theme, $isPCCBurned }) => css` + background: ${$isPCCBurned ? theme.colors.greenSurface : theme.colors.yellowSurface}; + & > svg { + color: ${$isPCCBurned ? theme.colors.green : theme.colors.yellow}; + } + `, +) + +const HeaderContainer = styled.div` + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; +` + export const NameWrapper = ({ name, isWrapped, @@ -60,19 +93,31 @@ export const NameWrapper = ({ wrapperData, canBeWrapped, profile, + isPrimaryName, }: Props) => { const { t } = useTranslation('profile') const status: NameWrapperState = getFuseStateFromWrapperData(wrapperData) + const isPCCBurned = !!wrapperData?.fuses.parent?.PARENT_CANNOT_CONTROL + return ( - {t('tabs.more.token.nameWrapper')} - - - {t(`tabs.more.token.status.${status}`)} - -
some div
-
+ + {t('tabs.more.token.nameWrapper')} + {isPrimaryName && } + + {/* {JSON.stringify({ wrapperData, ownerData, canBeWrapped, name, isWrapped })} */} + {isWrapped ? ( + + {isWrapped ? 'Wrapped' : 'Unwrapped'} + + {isPCCBurned ? 'Not parent-controllable' : 'Parent-controllable'} + {isPCCBurned ? : } + + + ) : ( + <>{t('tabs.more.token.unwrappedText')} + )}
) } From 048067df08e3f85efc1a96e35006ddf734bf4ae8 Mon Sep 17 00:00:00 2001 From: v1rtl Date: Tue, 6 Aug 2024 17:44:16 +0300 Subject: [PATCH 03/38] properly display wrap/unwrap button --- .../pages/profile/[name]/tabs/MoreTab/MoreTab.tsx | 6 +++--- .../profile/[name]/tabs/MoreTab/NameWrapper.tsx | 13 +++++++++---- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/MoreTab.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/MoreTab.tsx index 84ed07382..fc60b8c63 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/MoreTab.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/MoreTab.tsx @@ -3,7 +3,6 @@ import { useAccount } from 'wagmi' import { CacheableComponent } from '@app/components/@atoms/CacheableComponent' import type { useAbilities } from '@app/hooks/abilities/useAbilities' -import { usePrimaryName } from '@app/hooks/ensjs/public/usePrimaryName' import { useNameDetails } from '@app/hooks/useNameDetails' import { NameWrapper } from './NameWrapper' @@ -32,7 +31,6 @@ const MoreTab = ({ name, nameDetails, abilities }: Props) => { const { canBeWrapped, ownerData, wrapperData, isWrapped, isCachedData, profile } = nameDetails const { isConnected, address } = useAccount() - const { data: primary } = usePrimaryName({ address }) return ( @@ -53,7 +51,9 @@ const MoreTab = ({ name, nameDetails, abilities }: Props) => { canBeWrapped, name, profile, - isPrimaryName: primary?.match, + ownerData, + isConnected, + isOwned: address === ownerData?.owner, }} /> )} diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx index 05383aa80..eaa419287 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx @@ -18,7 +18,8 @@ type Props = { ownerData?: GetOwnerReturnType wrapperData?: GetWrapperDataReturnType profile: Profile | undefined - isPrimaryName: boolean | undefined + isConnected: boolean + isOwned: boolean } const getFuseStateFromWrapperData = (wrapperData?: GetWrapperDataReturnType): NameWrapperState => @@ -93,7 +94,8 @@ export const NameWrapper = ({ wrapperData, canBeWrapped, profile, - isPrimaryName, + isConnected, + isOwned, }: Props) => { const { t } = useTranslation('profile') const status: NameWrapperState = getFuseStateFromWrapperData(wrapperData) @@ -104,9 +106,12 @@ export const NameWrapper = ({ {t('tabs.more.token.nameWrapper')} - {isPrimaryName && } + {isOwned && isConnected && ( + + )} - {/* {JSON.stringify({ wrapperData, ownerData, canBeWrapped, name, isWrapped })} */} {isWrapped ? ( {isWrapped ? 'Wrapped' : 'Unwrapped'} From ce4d1c4ea1c7a510771f8de828aea2d45ddc1945 Mon Sep 17 00:00:00 2001 From: v1rtl Date: Tue, 6 Aug 2024 17:46:44 +0300 Subject: [PATCH 04/38] only show text for owners --- .../pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx index eaa419287..42b117803 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx @@ -112,7 +112,9 @@ export const NameWrapper = ({ )} - {isWrapped ? ( + {isOwned && !isWrapped ? ( + <>{t('tabs.more.token.unwrappedText')} + ) : ( {isWrapped ? 'Wrapped' : 'Unwrapped'} @@ -120,8 +122,6 @@ export const NameWrapper = ({ {isPCCBurned ? : } - ) : ( - <>{t('tabs.more.token.unwrappedText')} )} ) From 797c0248f17a14884c4b5b9dfb82aeea6eda7e3e Mon Sep 17 00:00:00 2001 From: v1rtl Date: Wed, 7 Aug 2024 00:33:03 +0300 Subject: [PATCH 05/38] only show the button if PCC wasn't burned --- .../pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx index 42b117803..c79499fdb 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx @@ -106,7 +106,7 @@ export const NameWrapper = ({ {t('tabs.more.token.nameWrapper')} - {isOwned && isConnected && ( + {isOwned && isConnected && !isPCCBurned && ( From 58d44ad7fc25f6a3d38a44ffd41798fa4bb2452d Mon Sep 17 00:00:00 2001 From: v1rtl Date: Sun, 11 Aug 2024 23:55:03 +0300 Subject: [PATCH 06/38] remove unused --- .../profile/[name]/tabs/MoreTab/NameWrapper.tsx | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx index c79499fdb..093431a1c 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx @@ -1,15 +1,14 @@ import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' -import { match, P } from 'ts-pattern' import { GetOwnerReturnType, GetWrapperDataReturnType } from '@ensdomains/ensjs/public' -import { AlertSVG, Button, CheckSVG, mq, Typography } from '@ensdomains/thorin' +import { AlertSVG, CheckSVG, mq, Typography } from '@ensdomains/thorin' import { cacheableComponentStyles } from '@app/components/@atoms/CacheableComponent' -import type { NameWrapperState } from '@app/hooks/fuses/useFusesStates' import type { Profile } from '@app/types' import { TabWrapper } from '../../../TabWrapper' +import WrapButton from './Token/WrapButton' type Props = { name: string @@ -22,13 +21,6 @@ type Props = { isOwned: boolean } -const getFuseStateFromWrapperData = (wrapperData?: GetWrapperDataReturnType): NameWrapperState => - match(wrapperData) - .with(P.nullish, () => 'unwrapped' as const) - .with({ fuses: { child: { CANNOT_UNWRAP: true } } }, () => 'locked' as const) - .with({ fuses: { parent: { PARENT_CANNOT_CONTROL: true } } }, () => 'emancipated' as const) - .otherwise(() => 'wrapped') - const Container = styled(TabWrapper)( cacheableComponentStyles, ({ theme }) => css` @@ -98,7 +90,6 @@ export const NameWrapper = ({ isOwned, }: Props) => { const { t } = useTranslation('profile') - const status: NameWrapperState = getFuseStateFromWrapperData(wrapperData) const isPCCBurned = !!wrapperData?.fuses.parent?.PARENT_CANNOT_CONTROL @@ -107,9 +98,7 @@ export const NameWrapper = ({ {t('tabs.more.token.nameWrapper')} {isOwned && isConnected && !isPCCBurned && ( - + )} {isOwned && !isWrapped ? ( From ecfce3fe3583b8745f1515961de3d9d3d2d89877 Mon Sep 17 00:00:00 2001 From: v1rtl Date: Mon, 12 Aug 2024 00:01:56 +0300 Subject: [PATCH 07/38] don't display NameWrapper for offchain imports --- .../pages/profile/[name]/tabs/MoreTab/MoreTab.tsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/MoreTab.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/MoreTab.tsx index fc60b8c63..1ee7ac6e5 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/MoreTab.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/MoreTab.tsx @@ -3,6 +3,7 @@ import { useAccount } from 'wagmi' import { CacheableComponent } from '@app/components/@atoms/CacheableComponent' import type { useAbilities } from '@app/hooks/abilities/useAbilities' +import { useIsOffchainName } from '@app/hooks/ensjs/dns/useIsOffchainName' import { useNameDetails } from '@app/hooks/useNameDetails' import { NameWrapper } from './NameWrapper' @@ -32,6 +33,11 @@ const MoreTab = ({ name, nameDetails, abilities }: Props) => { const { isConnected, address } = useAccount() + const isOffchainImport = useIsOffchainName({ + name, + enabled: nameDetails.registrationStatus === 'imported', + }) + return ( {ownerData && } @@ -43,7 +49,7 @@ const MoreTab = ({ name, nameDetails, abilities }: Props) => { resolverAddress={profile?.resolverAddress} canEditResolverError={abilities.canEditResolverError} /> - {(isConnected || isWrapped) && ( + {(isConnected || isWrapped) && !isOffchainImport && ( Date: Fri, 16 Aug 2024 17:24:06 +0300 Subject: [PATCH 08/38] wip add a case of cannot unwrap fuse --- public/locales/en/profile.json | 3 +- .../profile/[name]/tabs/MoreTab/MoreTab.tsx | 2 +- .../[name]/tabs/MoreTab/NameWrapper.tsx | 57 ++++++++++++++++--- .../tabs/MoreTab/Token/BaseWrapButton.tsx | 4 +- .../tabs/MoreTab/Token/UnwrapButton.tsx | 5 +- .../[name]/tabs/MoreTab/Token/WrapButton.tsx | 11 +--- 6 files changed, 60 insertions(+), 22 deletions(-) diff --git a/public/locales/en/profile.json b/public/locales/en/profile.json index ca26b59d2..d465fcecc 100644 --- a/public/locales/en/profile.json +++ b/public/locales/en/profile.json @@ -304,7 +304,8 @@ "nameWrapper": "Name Wrapper", "unwrappedText": " Wrapping your name gives it new features and functionality, however some functionality on your name will change. Please make sure you understand these changes before wrapping your name.", "wrapName": "Wrap Name", - "unwrap": "Unwrap" + "unwrap": "Unwrap Name", + "unwrapWarning": "This name has revoked the permissions needed for this action." }, "misc": { "registered": "Registered", diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/MoreTab.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/MoreTab.tsx index 1ee7ac6e5..f1f343d54 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/MoreTab.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/MoreTab.tsx @@ -58,7 +58,7 @@ const MoreTab = ({ name, nameDetails, abilities }: Props) => { name, profile, ownerData, - isConnected, + address, isOwned: address === ownerData?.owner, }} /> diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx index 093431a1c..e03ccb0d8 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx @@ -1,13 +1,19 @@ +/* eslint-disable no-nested-ternary */ import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' +import { match, P } from 'ts-pattern' +import { Address } from 'viem' import { GetOwnerReturnType, GetWrapperDataReturnType } from '@ensdomains/ensjs/public' import { AlertSVG, CheckSVG, mq, Typography } from '@ensdomains/thorin' import { cacheableComponentStyles } from '@app/components/@atoms/CacheableComponent' +import { DisabledButtonWithTooltip } from '@app/components/@molecules/DisabledButtonWithTooltip' +import { NameWrapperState } from '@app/hooks/fuses/useFusesStates' import type { Profile } from '@app/types' import { TabWrapper } from '../../../TabWrapper' +import UnwrapButton from './Token/UnwrapButton' import WrapButton from './Token/WrapButton' type Props = { @@ -17,7 +23,7 @@ type Props = { ownerData?: GetOwnerReturnType wrapperData?: GetWrapperDataReturnType profile: Profile | undefined - isConnected: boolean + address?: Address isOwned: boolean } @@ -79,29 +85,66 @@ const HeaderContainer = styled.div` justify-content: space-between; ` +const getFuseStateFromWrapperData = (wrapperData?: GetWrapperDataReturnType): NameWrapperState => + match(wrapperData) + .with(P.nullish, () => 'unwrapped' as const) + .with({ fuses: { child: { CANNOT_UNWRAP: true } } }, () => 'locked' as const) + .with({ fuses: { parent: { PARENT_CANNOT_CONTROL: true } } }, () => 'emancipated' as const) + .otherwise(() => 'wrapped') + export const NameWrapper = ({ name, isWrapped, ownerData, wrapperData, - canBeWrapped, + canBeWrapped: _canBeWrapped, profile, - isConnected, isOwned, + address, }: Props) => { const { t } = useTranslation('profile') const isPCCBurned = !!wrapperData?.fuses.parent?.PARENT_CANNOT_CONTROL + const cannotUnwrap = !!wrapperData?.fuses.child.CANNOT_UNWRAP + + const isButtonDisplayed = isOwned && address + + const status = getFuseStateFromWrapperData(wrapperData) + + const isManager = ownerData?.owner === address + const isRegistrant = ownerData?.registrant === address + + const canBeWrapped = + _canBeWrapped && + !!address && + (ownerData?.ownershipLevel === 'registrar' ? isRegistrant : isManager) + return ( {t('tabs.more.token.nameWrapper')} - {isOwned && isConnected && !isPCCBurned && ( - - )} + + {isButtonDisplayed ? ( + isWrapped ? ( + cannotUnwrap ? ( + + ) : ( + + ) + ) : ( + + ) + ) : null} + - {isOwned && !isWrapped ? ( + {isOwned && canBeWrapped ? ( <>{t('tabs.more.token.unwrappedText')} ) : ( diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/Token/BaseWrapButton.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/Token/BaseWrapButton.tsx index 2e2cecd5c..b6afcd266 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/Token/BaseWrapButton.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/Token/BaseWrapButton.tsx @@ -12,8 +12,8 @@ const StyledWrapButton = styled(Button)( `, ) -const BaseWrapButton = forwardRef( - ({ children, ...props }: ComponentProps, ref) => { +const BaseWrapButton = forwardRef>( + ({ children, ...props }, ref) => { return ( {children} diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/Token/UnwrapButton.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/Token/UnwrapButton.tsx index 50846324a..fedbb1c7e 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/Token/UnwrapButton.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/Token/UnwrapButton.tsx @@ -13,9 +13,10 @@ type Props = { name: string ownerData: GetOwnerReturnType | undefined status: NameWrapperState + disabled?: boolean } -const UnwrapButton = ({ name, ownerData, status }: Props) => { +const UnwrapButton = ({ name, ownerData, status, disabled }: Props) => { const { t } = useTranslation('profile') const { address } = useAccountSafely() @@ -31,7 +32,7 @@ const UnwrapButton = ({ name, ownerData, status }: Props) => { if (!canBeUnwrapped) return null return ( - + {t('tabs.more.token.unwrap')} ) diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/Token/WrapButton.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/Token/WrapButton.tsx index 8762e8d44..dabf1b411 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/Token/WrapButton.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/Token/WrapButton.tsx @@ -30,23 +30,16 @@ const WrapButton = ({ name, ownerData, profile, canBeWrapped }: Props) => { const resolverStatus = useResolverStatus({ name }) const hasOwnerData = !!ownerData - const isManager = ownerData?.owner === address - const isRegistrant = ownerData?.registrant === address const shouldMigrate = !resolverStatus.data?.isMigratedProfileEqual && !resolverStatus.data?.isNameWrapperAware const resolverAddress = profile?.resolverAddress - const _canBeWrapped = - canBeWrapped && - !!address && - (ownerData?.ownershipLevel === 'registrar' ? isRegistrant : isManager) - const isSubname = name.split('.').length > 2 const { data: approvedForAll, isLoading: isApprovalLoading } = useWrapperApprovedForAll({ address: address!, isSubname, - canBeWrapped: _canBeWrapped, + canBeWrapped, }) const { createTransactionFlow, resumeTransactionFlow, getResumable, usePreparedDataInput } = @@ -106,7 +99,7 @@ const WrapButton = ({ name, ownerData, profile, canBeWrapped }: Props) => { const isLoading = isApprovalLoading || resolverStatus.isLoading || hasGraphErrorLoading - if (!_canBeWrapped || hasGraphError) return null + if (!canBeWrapped || hasGraphError) return null return ( Date: Mon, 19 Aug 2024 17:39:25 +0300 Subject: [PATCH 09/38] wip --- .../pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx | 3 +-- .../pages/profile/[name]/tabs/MoreTab/Token/WrapButton.tsx | 4 +++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx index e03ccb0d8..e7677fef1 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx @@ -139,10 +139,9 @@ export const NameWrapper = ({ ) ) : ( - + ) ) : null} - {isOwned && canBeWrapped ? ( <>{t('tabs.more.token.unwrappedText')} diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/Token/WrapButton.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/Token/WrapButton.tsx index dabf1b411..f442f69b7 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/Token/WrapButton.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/Token/WrapButton.tsx @@ -20,9 +20,11 @@ type Props = { canBeWrapped: boolean ownerData: GetOwnerReturnType | undefined profile: Profile | undefined + isManager: boolean + isRegistrant: boolean } -const WrapButton = ({ name, ownerData, profile, canBeWrapped }: Props) => { +const WrapButton = ({ name, ownerData, profile, canBeWrapped, isManager, isRegistrant }: Props) => { const { t } = useTranslation('profile') const { data: hasGraphError, isLoading: hasGraphErrorLoading } = useHasGraphError() From 2d2d90c4c3830f615f3d3aeac55ea699a11333bc Mon Sep 17 00:00:00 2001 From: v1rtl Date: Mon, 19 Aug 2024 18:02:51 +0300 Subject: [PATCH 10/38] fix ownership checks --- .../pages/profile/[name]/tabs/MoreTab/MoreTab.tsx | 1 - .../profile/[name]/tabs/MoreTab/NameWrapper.tsx | 13 ++++--------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/MoreTab.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/MoreTab.tsx index f1f343d54..027c64311 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/MoreTab.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/MoreTab.tsx @@ -59,7 +59,6 @@ const MoreTab = ({ name, nameDetails, abilities }: Props) => { profile, ownerData, address, - isOwned: address === ownerData?.owner, }} /> )} diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx index e7677fef1..7b567324a 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx @@ -24,7 +24,6 @@ type Props = { wrapperData?: GetWrapperDataReturnType profile: Profile | undefined address?: Address - isOwned: boolean } const Container = styled(TabWrapper)( @@ -99,7 +98,6 @@ export const NameWrapper = ({ wrapperData, canBeWrapped: _canBeWrapped, profile, - isOwned, address, }: Props) => { const { t } = useTranslation('profile') @@ -108,23 +106,20 @@ export const NameWrapper = ({ const cannotUnwrap = !!wrapperData?.fuses.child.CANNOT_UNWRAP - const isButtonDisplayed = isOwned && address - const status = getFuseStateFromWrapperData(wrapperData) const isManager = ownerData?.owner === address const isRegistrant = ownerData?.registrant === address - const canBeWrapped = - _canBeWrapped && - !!address && - (ownerData?.ownershipLevel === 'registrar' ? isRegistrant : isManager) + const isOwned = ownerData?.ownershipLevel === 'registrar' ? isRegistrant : isManager + const isButtonDisplayed = isOwned && address + + const canBeWrapped = _canBeWrapped && !!address && isOwned return ( {t('tabs.more.token.nameWrapper')} - {isButtonDisplayed ? ( isWrapped ? ( cannotUnwrap ? ( From 2ac6c6d20d4a7e52c42b0e7baf245046ed2868bc Mon Sep 17 00:00:00 2001 From: v1rtl Date: Mon, 19 Aug 2024 18:40:10 +0300 Subject: [PATCH 11/38] tiny qa fixes --- .../profile/[name]/tabs/MoreTab/MoreTab.tsx | 16 ++++++++-------- .../profile/[name]/tabs/MoreTab/NameWrapper.tsx | 1 - 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/MoreTab.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/MoreTab.tsx index 027c64311..d9d177410 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/MoreTab.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/MoreTab.tsx @@ -41,14 +41,6 @@ const MoreTab = ({ name, nameDetails, abilities }: Props) => { return ( {ownerData && } - {(isConnected || isWrapped) && !isOffchainImport && ( { }} /> )} + ) } diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx index 7b567324a..2dce7e070 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx @@ -58,7 +58,6 @@ const Record = styled.div( padding: ${theme.space[3]}; background: ${theme.colors.greenSurface}; border-radius: ${theme.radii.input}; - border: ${theme.borderWidths.px} ${theme.borderStyles.solid} ${theme.colors.border}; width: ${theme.space.full}; font-weight: ${theme.fontWeights.bold}; display: flex; From d6e72dc004341361a3155c04cadd4a18316a71c9 Mon Sep 17 00:00:00 2001 From: v1rtl Date: Fri, 23 Aug 2024 14:22:56 +0300 Subject: [PATCH 12/38] fix unit tests for WrapButton --- .../tabs/MoreTab/Token/WrapButton.test.tsx | 213 ++++++++---------- 1 file changed, 93 insertions(+), 120 deletions(-) diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/Token/WrapButton.test.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/Token/WrapButton.test.tsx index bbfb1a9be..f6577caed 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/Token/WrapButton.test.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/Token/WrapButton.test.tsx @@ -65,6 +65,8 @@ describe('WrapButton', () => { canBeWrapped ownerData={{ owner: '0x123' } as any} profile={{ resolverAddress: '0x456' } as any} + isManager={false} + isRegistrant={false} />, ) expect(screen.getByTestId('wrap-name-btn')).toBeVisible() @@ -77,8 +79,7 @@ describe('WrapButton', () => { name="test123.eth" canBeWrapped={false} ownerData={{ owner: '0x123' } as any} - profile={{ resolverAddress: '0x456' } as any} - />, + profile={{ resolverAddress: '0x456' } as any} isManager={false} isRegistrant={false} />, ) expect(screen.queryByTestId('wrap-name-btn')).toBeNull() }) @@ -89,8 +90,7 @@ describe('WrapButton', () => { name="test123.eth" canBeWrapped ownerData={{ owner: '0x123' } as any} - profile={{ resolverAddress: '0x456' } as any} - />, + profile={{ resolverAddress: '0x456' } as any} isManager={false} isRegistrant={false} />, ) screen.getByTestId('wrap-name-btn').click() expect(mockCreateTransactionFlow).toHaveBeenCalled() @@ -104,25 +104,22 @@ describe('WrapButton', () => { name="test123.eth" canBeWrapped ownerData={{ owner: '0x123' } as any} - profile={ - { - resolverAddress: '0x456', - records: { - coinTypes: [ - { - key: 'coin1', - }, - { - key: 'coin2', - }, - ], - }, - } as any - } - />, + profile={{ + resolverAddress: '0x456', + records: { + coinTypes: [ + { + key: 'coin1', + }, + { + key: 'coin2', + }, + ], + }, + } as any} isManager={true} isRegistrant={false} />, ) screen.getByTestId('wrap-name-btn').click() - const args = mockCreateTransactionFlow.mock.lastCall + const args = mockCreateTransactionFlow.mock.lastCall! expect(args[0]).toBe('wrapName-test123.eth') expect(args[1].transactions[0].name).toEqual('migrateProfile') @@ -136,25 +133,22 @@ describe('WrapButton', () => { name="test123.eth" canBeWrapped ownerData={{ owner: '0x123' } as any} - profile={ - { - resolverAddress: '0x231b0Ee14048e9dCcD1d247744d114a4EB5E8E63', - records: { - coinTypes: [ - { - key: 'coin1', - }, - { - key: 'coin2', - }, - ], - }, - } as any - } - />, + profile={{ + resolverAddress: '0x231b0Ee14048e9dCcD1d247744d114a4EB5E8E63', + records: { + coinTypes: [ + { + key: 'coin1', + }, + { + key: 'coin2', + }, + ], + }, + } as any} isManager={false} isRegistrant={false} />, ) screen.getByTestId('wrap-name-btn').click() - const args = mockCreateTransactionFlow.mock.lastCall + const args = mockCreateTransactionFlow.mock.lastCall! expect(args[0]).toBe('wrapName-test123.eth') expect(args[1].transactions[0].name).toEqual('wrapName') @@ -167,16 +161,13 @@ describe('WrapButton', () => { name="test123.eth" canBeWrapped ownerData={{ owner: '0x123' } as any} - profile={ - { - resolverAddress: '0x456', - records: {}, - } as any - } - />, + profile={{ + resolverAddress: '0x456', + records: {}, + } as any} isManager={false} isRegistrant={false} />, ) screen.getByTestId('wrap-name-btn').click() - const args = mockCreateTransactionFlow.mock.lastCall + const args = mockCreateTransactionFlow.mock.lastCall! expect(args[0]).toBe('wrapName-test123.eth') expect(args[1].transactions[0].name).toEqual('wrapName') @@ -191,25 +182,22 @@ describe('WrapButton', () => { name="test123.eth" canBeWrapped ownerData={{ ownershipLevel: 'registrar', owner: '0x124', registrant: '0x123' }} - profile={ - { - resolverAddress: '0x456', - records: { - coinTypes: [ - { - key: 'coin1', - }, - { - key: 'coin2', - }, - ], - }, - } as any - } - />, + profile={{ + resolverAddress: '0x456', + records: { + coinTypes: [ + { + key: 'coin1', + }, + { + key: 'coin2', + }, + ], + }, + } as any} isManager={false} isRegistrant={true} />, ) screen.getByTestId('wrap-name-btn').click() - const args = mockCreateTransactionFlow.mock.lastCall + const args = mockCreateTransactionFlow.mock.lastCall! expect(args[0]).toBe('wrapName-test123.eth') expect(args[1].transactions[0].name).toEqual('wrapName') @@ -223,25 +211,22 @@ describe('WrapButton', () => { name="test123.eth" canBeWrapped ownerData={{ ownershipLevel: 'registrar', owner: '0x124', registrant: '0x123' }} - profile={ - { - resolverAddress: '0x231b0Ee14048e9dCcD1d247744d114a4EB5E8E63', - records: { - coinTypes: [ - { - key: 'coin1', - }, - { - key: 'coin2', - }, - ], - }, - } as any - } - />, + profile={{ + resolverAddress: '0x231b0Ee14048e9dCcD1d247744d114a4EB5E8E63', + records: { + coinTypes: [ + { + key: 'coin1', + }, + { + key: 'coin2', + }, + ], + }, + } as any} isManager={false} isRegistrant={false} />, ) screen.getByTestId('wrap-name-btn').click() - const args = mockCreateTransactionFlow.mock.lastCall + const args = mockCreateTransactionFlow.mock.lastCall! expect(args[0]).toBe('wrapName-test123.eth') expect(args[1].transactions[0].name).toEqual('wrapName') @@ -259,16 +244,13 @@ describe('WrapButton', () => { name="sub.test123.eth" canBeWrapped ownerData={{ owner: '0x123' } as any} - profile={ - { - resolverAddress: '0x456', - records: {}, - } as any - } - />, + profile={{ + resolverAddress: '0x456', + records: {}, + } as any} isManager={true} isRegistrant={false} />, ) screen.getByTestId('wrap-name-btn').click() - const args = mockCreateTransactionFlow.mock.lastCall + const args = mockCreateTransactionFlow.mock.lastCall! expect(args[0]).toBe('wrapName-sub.test123.eth') expect(args[1].transactions[0].name).toEqual('approveNameWrapper') @@ -286,16 +268,13 @@ describe('WrapButton', () => { name="sub.test123.eth" canBeWrapped ownerData={{ owner: '0x123' } as any} - profile={ - { - resolverAddress: '0x456', - records: {}, - } as any - } - />, + profile={{ + resolverAddress: '0x456', + records: {}, + } as any} isManager={false} isRegistrant={false} />, ) screen.getByTestId('wrap-name-btn').click() - const args = mockCreateTransactionFlow.mock.lastCall + const args = mockCreateTransactionFlow.mock.lastCall! expect(args[0]).toBe('wrapName-sub.test123.eth') expect(args[1].transactions[0].name).toEqual('wrapName') @@ -311,25 +290,22 @@ describe('WrapButton', () => { name="sub.test123.eth" canBeWrapped ownerData={{ owner: '0x123' } as any} - profile={ - { - resolverAddress: '0x456', - records: { - coinTypes: [ - { - key: 'coin1', - }, - { - key: 'coin2', - }, - ], - }, - } as any - } - />, + profile={{ + resolverAddress: '0x456', + records: { + coinTypes: [ + { + key: 'coin1', + }, + { + key: 'coin2', + }, + ], + }, + } as any} isManager={true} isRegistrant={false} />, ) screen.getByTestId('wrap-name-btn').click() - const args = mockCreateTransactionFlow.mock.lastCall + const args = mockCreateTransactionFlow.mock.lastCall! expect(args[0]).toBe('wrapName-sub.test123.eth') expect(args[1].transactions[0].name).toEqual('migrateProfile') @@ -345,8 +321,7 @@ describe('WrapButton', () => { name="test123.eth" canBeWrapped ownerData={{ owner: '0x123' } as any} - profile={{ resolverAddress: '0x456' } as any} - />, + profile={{ resolverAddress: '0x456' } as any} isManager={false} isRegistrant={false} />, ) screen.getByTestId('wrap-name-btn').click() expect(mockResumeTransactionFlow).toHaveBeenCalled() @@ -366,14 +341,13 @@ describe('WrapButton', () => { name="[b2fd3233fdc544d81e84c93822934ddd9b599f056b6a7f84f4de29378bf1cb15].test123.eth" canBeWrapped ownerData={{ owner: '0x123' } as any} - profile={{ resolverAddress: '0x456', records: {} } as any} - />, + profile={{ resolverAddress: '0x456', records: {} } as any} isManager={true} isRegistrant={false} />, ) screen.getByTestId('wrap-name-btn').click() expect(mockCreateTransactionFlow).not.toHaveBeenCalled() expect(mockShowDataInput).toHaveBeenCalled() - const args = mockShowDataInput.mock.lastCall + const args = mockShowDataInput.mock.lastCall! expect(args[0]).toBe( // eslint-disable-next-line no-restricted-syntax 'wrapName-[b2fd3233fdc544d81e84c93822934ddd9b599f056b6a7f84f4de29378bf1cb15].test123.eth', @@ -400,8 +374,7 @@ describe('WrapButton', () => { name="sub.test123.eth" canBeWrapped ownerData={{ owner: '0x123', ownershipLevel: 'registrar', registrant: '0x123' } as any} - profile={{ resolverAddress: '0x456' } as any} - />, + profile={{ resolverAddress: '0x456' } as any} isManager={false} isRegistrant={false} />, ) expect( mockUseWrapperApprovedForAll.mock.calls[mockUseWrapperApprovedForAll.mock.calls.length - 1], From c6d8a65a5857c91c78a0f85fb3b2851b3e5f4649 Mon Sep 17 00:00:00 2001 From: v1rtl Date: Sat, 24 Aug 2024 03:29:39 +0300 Subject: [PATCH 13/38] add test suite for NameWrapper --- package.json | 2 +- pnpm-lock.yaml | 605 ++++++------------ public/locales/en/profile.json | 10 +- .../[name]/tabs/MoreTab/NameWrapper.test.tsx | 57 ++ .../[name]/tabs/MoreTab/NameWrapper.tsx | 35 +- .../[name]/tabs/MoreTab/Token/Token.test.tsx | 62 +- 6 files changed, 303 insertions(+), 468 deletions(-) create mode 100644 src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.test.tsx diff --git a/package.json b/package.json index abb55d391..22132ac8c 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "dependencies": { "@ensdomains/address-encoder": "1.1.1", "@ensdomains/content-hash": "^3.0.0-beta.5", - "@ensdomains/ens-contracts": "1.2.0-beta.0", + "@ensdomains/ens-contracts": "1.2.0", "@ensdomains/ensjs": "4.0.0", "@ensdomains/thorin": "0.6.50", "@metamask/mobile-provider": "^2.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 37b4fb9e8..91a3f182d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -33,11 +33,11 @@ importers: specifier: ^3.0.0-beta.5 version: 3.0.0 '@ensdomains/ens-contracts': - specifier: 1.2.0-beta.0 - version: 1.2.0-beta.0 + specifier: 1.2.0 + version: 1.2.0 '@ensdomains/ensjs': specifier: 4.0.0 - version: 4.0.0(encoding@0.1.13)(typescript@5.4.5)(viem@2.19.4(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8) + version: 4.0.0(encoding@0.1.13)(typescript@5.4.5)(viem@2.19.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) '@ensdomains/thorin': specifier: 0.6.50 version: 0.6.50(react-dom@18.3.1(react@18.3.1))(react-transition-state@1.1.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react-is@17.0.2)(react@18.3.1)) @@ -55,7 +55,7 @@ importers: version: 1.4.0 '@rainbow-me/rainbowkit': specifier: 2.1.2 - version: 2.1.2(@tanstack/react-query@5.22.2(react@18.3.1))(@types/react@18.2.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(viem@2.19.4(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(wagmi@2.12.4(@tanstack/query-core@5.22.2)(@tanstack/react-query@5.22.2(react@18.3.1))(@types/react@18.2.21)(bufferutil@4.0.7)(encoding@0.1.13)(immer@9.0.21)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.7)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1)(rollup@2.78.0)(typescript@5.4.5)(utf-8-validate@6.0.3)(viem@2.19.4(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8)) + version: 2.1.2(@tanstack/react-query@5.22.2(react@18.3.1))(@types/react@18.2.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(viem@2.19.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8))(wagmi@2.12.4(@tanstack/query-core@5.22.2)(@tanstack/react-query@5.22.2(react@18.3.1))(@types/react@18.2.21)(bufferutil@4.0.8)(encoding@0.1.13)(immer@9.0.21)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@2.78.0)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.19.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8)) '@sentry/nextjs': specifier: 7.43.x version: 7.43.0(encoding@0.1.13)(next@13.5.6(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.91.0(esbuild@0.17.19)) @@ -76,10 +76,10 @@ importers: version: 5.22.2(@tanstack/react-query@5.22.2(react@18.3.1))(react@18.3.1) '@wagmi/core': specifier: 2.13.3 - version: 2.13.3(@tanstack/query-core@5.22.2)(@types/react@18.2.21)(immer@9.0.21)(react@18.3.1)(typescript@5.4.5)(viem@2.19.4(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8)) + version: 2.13.3(@tanstack/query-core@5.22.2)(@types/react@18.2.21)(immer@9.0.21)(react@18.3.1)(typescript@5.4.5)(viem@2.19.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8)) '@walletconnect/ethereum-provider': specifier: 2.11.1 - version: 2.11.1(@types/react@18.2.21)(bufferutil@4.0.7)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3) + version: 2.11.1(@types/react@18.2.21)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@5.0.10) '@walletconnect/modal': specifier: 2.6.2 version: 2.6.2(@types/react@18.2.21)(react@18.3.1) @@ -142,7 +142,7 @@ importers: version: 7.51.0(react@18.3.1) react-i18next: specifier: ^11.18.5 - version: 11.18.6(i18next@21.10.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.7)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1) + version: 11.18.6(i18next@21.10.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1) react-is: specifier: ^17.0.2 version: 17.0.2 @@ -169,10 +169,10 @@ importers: version: 0.7.0(immer@9.0.21)(react@18.3.1) viem: specifier: 2.19.4 - version: 2.19.4(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8) + version: 2.19.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8) wagmi: specifier: 2.12.4 - version: 2.12.4(@tanstack/query-core@5.22.2)(@tanstack/react-query@5.22.2(react@18.3.1))(@types/react@18.2.21)(bufferutil@4.0.7)(encoding@0.1.13)(immer@9.0.21)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.7)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1)(rollup@2.78.0)(typescript@5.4.5)(utf-8-validate@6.0.3)(viem@2.19.4(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8) + version: 2.12.4(@tanstack/query-core@5.22.2)(@tanstack/react-query@5.22.2(react@18.3.1))(@types/react@18.2.21)(bufferutil@4.0.8)(encoding@0.1.13)(immer@9.0.21)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@2.78.0)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.19.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) devDependencies: '@adraffy/ens-normalize': specifier: ^1.10.1 @@ -188,7 +188,7 @@ importers: version: 0.5.0-beta.1 '@ensdomains/headless-web3-provider': specifier: ^1.0.8 - version: 1.0.8(viem@2.19.4(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8)) + version: 1.0.8(viem@2.19.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8)) '@ethersproject/abi': specifier: ^5.4.0 version: 5.7.0 @@ -200,22 +200,22 @@ importers: version: 4.2.1(prettier@3.0.3) '@next/bundle-analyzer': specifier: ^13.4.19 - version: 13.5.6(bufferutil@4.0.7)(utf-8-validate@6.0.3) + version: 13.5.6(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@nomiclabs/hardhat-ethers': specifier: npm:hardhat-deploy-ethers@0.3.0-beta.13 - version: hardhat-deploy-ethers@0.3.0-beta.13(ethers@5.7.2(bufferutil@4.0.7)(utf-8-validate@6.0.3))(hardhat@2.22.4(bufferutil@4.0.7)(ts-node@10.9.2(@types/node@18.19.33)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@6.0.3)) + version: hardhat-deploy-ethers@0.3.0-beta.13(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.4(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@18.19.33)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) '@openzeppelin/contracts': specifier: ^4.7.3 version: 4.9.6 '@openzeppelin/test-helpers': specifier: ^0.5.16 - version: 0.5.16(bufferutil@4.0.7)(encoding@0.1.13)(utf-8-validate@6.0.3) + version: 0.5.16(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) '@playwright/test': specifier: ^1.36.2 version: 1.44.1 '@testing-library/jest-dom': specifier: ^6.4.2 - version: 6.4.5(@types/jest@29.5.12)(vitest@2.0.5(@types/node@18.19.33)(jsdom@24.1.0(bufferutil@4.0.7)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.3))(terser@5.31.5)) + version: 6.4.5(@types/jest@29.5.12)(vitest@2.0.5(@types/node@18.19.33)(jsdom@24.1.0(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.31.5)) '@testing-library/react': specifier: ^14.0.0 version: 14.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -242,7 +242,7 @@ importers: version: 2.7.3 '@types/puppeteer-core': specifier: ^5.4.0 - version: 5.4.0(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3) + version: 5.4.0(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10) '@types/react': specifier: 18.2.21 version: 18.2.21 @@ -269,7 +269,7 @@ importers: version: 4.3.1(vite@5.2.11(@types/node@18.19.33)(terser@5.31.5)) '@vitest/coverage-v8': specifier: ^2.0.5 - version: 2.0.5(vitest@2.0.5(@types/node@18.19.33)(jsdom@24.1.0(bufferutil@4.0.7)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.3))(terser@5.31.5)) + version: 2.0.5(vitest@2.0.5(@types/node@18.19.33)(jsdom@24.1.0(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.31.5)) '@vitest/spy': specifier: ^2.0.5 version: 2.0.5 @@ -323,28 +323,28 @@ importers: version: 6.2.2(eslint@8.50.0)(typescript@5.4.5) eslint-plugin-vitest: specifier: ^0.4.0 - version: 0.4.1(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint@8.50.0)(typescript@5.4.5))(eslint@8.50.0)(typescript@5.4.5)(vitest@2.0.5(@types/node@18.19.33)(jsdom@24.1.0(bufferutil@4.0.7)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.3))(terser@5.31.5)) + version: 0.4.1(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint@8.50.0)(typescript@5.4.5))(eslint@8.50.0)(typescript@5.4.5)(vitest@2.0.5(@types/node@18.19.33)(jsdom@24.1.0(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.31.5)) ethers: specifier: ^5.7.2 - version: 5.7.2(bufferutil@4.0.7)(utf-8-validate@6.0.3) + version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) hardhat: specifier: ^2.10.2 - version: 2.22.4(bufferutil@4.0.7)(ts-node@10.9.2(@types/node@18.19.33)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@6.0.3) + version: 2.22.4(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@18.19.33)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) hardhat-dependency-compiler: specifier: ^1.1.3 - version: 1.1.4(hardhat@2.22.4(bufferutil@4.0.7)(ts-node@10.9.2(@types/node@18.19.33)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@6.0.3)) + version: 1.1.4(hardhat@2.22.4(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@18.19.33)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)) hardhat-deploy: specifier: ^0.11.12 - version: 0.11.45(bufferutil@4.0.7)(utf-8-validate@6.0.3) + version: 0.11.45(bufferutil@4.0.8)(utf-8-validate@5.0.10) husky: specifier: ^7.0.4 version: 7.0.4 isows: specifier: ^1.0.3 - version: 1.0.4(ws@8.17.0(bufferutil@4.0.7)(utf-8-validate@6.0.3)) + version: 1.0.4(ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) jsdom: specifier: ^24.0.0 - version: 24.1.0(bufferutil@4.0.7)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.3) + version: 24.1.0(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10) lokijs: specifier: ^1.5.12 version: 1.5.12 @@ -422,19 +422,19 @@ importers: version: 1.3.0(vite@5.2.11(@types/node@18.19.33)(terser@5.31.5)) vitest: specifier: ^2.0.5 - version: 2.0.5(@types/node@18.19.33)(jsdom@24.1.0(bufferutil@4.0.7)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.3))(terser@5.31.5) + version: 2.0.5(@types/node@18.19.33)(jsdom@24.1.0(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.31.5) vitest-canvas-mock: specifier: ^0.3.3 - version: 0.3.3(vitest@2.0.5(@types/node@18.19.33)(jsdom@24.1.0(bufferutil@4.0.7)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.3))(terser@5.31.5)) + version: 0.3.3(vitest@2.0.5(@types/node@18.19.33)(jsdom@24.1.0(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.31.5)) wait-on: specifier: ^6.0.1 version: 6.0.1 wrangler: specifier: ^3.26.0 - version: 3.57.1(@cloudflare/workers-types@3.19.0)(bufferutil@4.0.7)(utf-8-validate@6.0.3) + version: 3.57.1(@cloudflare/workers-types@3.19.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10) ws: specifier: ^8.16.0 - version: 8.17.0(bufferutil@4.0.7)(utf-8-validate@6.0.3) + version: 8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) yalc: specifier: ^1.0.0-pre.53 version: 1.0.0-pre.53 @@ -1559,8 +1559,8 @@ packages: resolution: {integrity: sha512-nfm4ggpK5YBVwVwLZKF9WPjRGRTL9aUxX2O4pqv/AnQCz3WeGHsW7VhVFLj2s4EoWSzCXwR1E6nuqgUwnH692w==} engines: {node: '>=16.8'} - '@ensdomains/ens-contracts@1.2.0-beta.0': - resolution: {integrity: sha512-mb/1cPtwhShyaP6fWqDix6GfrJwVWlKgCFxzDKmqNGeFQhBOD/ojYGsy96eJ9UlM/7Tsg7w4RAj7xWrOlHtYIA==} + '@ensdomains/ens-contracts@1.2.0': + resolution: {integrity: sha512-AbTepyKcBDOOHMajdYxfWHq7bjk+k5GfZPQy433Qng46DVd/4JSodu7psv5XTg8mPSEgtTcUfK+Q8DC+mbXRZw==} '@ensdomains/ens-test-env@0.5.0-beta.1': resolution: {integrity: sha512-ppHKJTRQ5vlWSAflv20cNtlhpLyjn375VD9FeeUgl8BTx3IMPwlLvupGQTK2chDln/FJRyp6+wD41uI4oorM9w==} @@ -3232,9 +3232,6 @@ packages: '@trufflesuite/chromafi@3.0.0': resolution: {integrity: sha512-oqWcOqn8nT1bwlPPfidfzS55vqcIDdpfzo3HbU9EnUmcSTX+I8z0UyUFI3tZQjByVJulbzxHxUGS3ZJPwK/GPQ==} - '@trufflesuite/uws-js-unofficial@20.30.0-unofficial.0': - resolution: {integrity: sha512-r5X0aOQcuT6pLwTRLD+mPnAM/nlKtvIK4Z+My++A8tTOR0qTjNRx8UB8jzRj3D+p9PMAp5LnpCUUGmz7/TppwA==} - '@trysound/sax@0.2.0': resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} engines: {node: '>=10.13.0'} @@ -3414,9 +3411,6 @@ packages: '@types/secp256k1@4.0.6': resolution: {integrity: sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==} - '@types/seedrandom@3.0.1': - resolution: {integrity: sha512-giB9gzDeiCeloIXDgzFBCgjj1k4WxcDrZtGl6h1IqmUPlxF+Nx8Ve+96QCyDZ/HseB/uvDsKbpib9hU5cU53pw==} - '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} @@ -3792,14 +3786,6 @@ packages: abortcontroller-polyfill@1.7.5: resolution: {integrity: sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==} - abstract-level@1.0.3: - resolution: {integrity: sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==} - engines: {node: '>=12'} - - abstract-leveldown@7.2.0: - resolution: {integrity: sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ==} - engines: {node: '>=10'} - accepts@1.3.8: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} @@ -4049,18 +4035,12 @@ packages: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} - async-eventemitter@0.2.4: - resolution: {integrity: sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==} - async-limiter@1.0.1: resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==} async-mutex@0.2.6: resolution: {integrity: sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw==} - async@2.6.4: - resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} - asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} @@ -4266,14 +4246,6 @@ packages: buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - bufferutil@4.0.5: - resolution: {integrity: sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A==} - engines: {node: '>=6.14.2'} - - bufferutil@4.0.7: - resolution: {integrity: sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==} - engines: {node: '>=6.14.2'} - bufferutil@4.0.8: resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==} engines: {node: '>=6.14.2'} @@ -4371,10 +4343,6 @@ packages: caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} - catering@2.1.1: - resolution: {integrity: sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==} - engines: {node: '>=6'} - cbor@5.2.0: resolution: {integrity: sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==} engines: {node: '>=6.0.0'} @@ -5111,10 +5079,6 @@ packages: elliptic@6.5.5: resolution: {integrity: sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw==} - emittery@0.10.0: - resolution: {integrity: sha512-AGvFfs+d0JKCJQ4o01ASQLGPmSCxgfU9RFXvzPvZdjKK8oscynksuJhWrSTSw7j7Ep/sZct5b5ZhYCi8S/t0HQ==} - engines: {node: '>=12'} - emmet@2.4.7: resolution: {integrity: sha512-O5O5QNqtdlnQM2bmKHtJgyChcrFMgQuulI+WdiOw2NArzprUqqxUW6bgYtKvzKgrsYpuLWalOkdhNP+1jluhCA==} @@ -5833,15 +5797,6 @@ packages: resolution: {integrity: sha512-SewY5KdMpaoCeh7jachEWFsh1nNlaDjNHZXWqL5IGwtpEYHTgkr2+AMCgNwKWkcc0wpSYrZfR7he4WdmHFtDxQ==} engines: {node: '>=8'} - ganache@7.9.2: - resolution: {integrity: sha512-7gsVVDpO9AhrFyDMWWl7SpMsPpqGcnAzjxz3k32LheIPNd64p2XsY9GYRdhWmKuryb60W1iaWPZWDkFKlbRWHA==} - hasBin: true - bundledDependencies: - - '@trufflesuite/bigint-buffer' - - keccak - - leveldown - - secp256k1 - gauge@3.0.2: resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} engines: {node: '>=10'} @@ -6359,10 +6314,6 @@ packages: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} - is-buffer@2.0.5: - resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} - engines: {node: '>=4'} - is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} @@ -6821,22 +6772,6 @@ packages: resolution: {integrity: sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==} engines: {node: '>=0.10.0'} - level-concat-iterator@3.1.0: - resolution: {integrity: sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ==} - engines: {node: '>=10'} - - level-supports@2.1.0: - resolution: {integrity: sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA==} - engines: {node: '>=10'} - - level-supports@4.0.1: - resolution: {integrity: sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==} - engines: {node: '>=12'} - - level-transcoder@1.0.1: - resolution: {integrity: sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==} - engines: {node: '>=12'} - leven@3.1.0: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} @@ -7311,10 +7246,6 @@ packages: modern-ahocorasick@1.0.1: resolution: {integrity: sha512-yoe+JbhTClckZ67b2itRtistFKf8yPYelHLc7e5xAwtNAXxM6wJTUx2C7QeVSJFDzKT7bCIFyBVybPMKvmB9AA==} - module-error@1.0.2: - resolution: {integrity: sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==} - engines: {node: '>=10'} - moo-color@1.0.3: resolution: {integrity: sha512-i/+ZKXMDf6aqYtBhuOcej71YSlbjT3wCO/4H1j8rPvxDJEifdwgg5MaFyu6iYAT8GBZJg2z0dkgK4YMzvURALQ==} @@ -9666,14 +9597,6 @@ packages: resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} engines: {node: '>=6.14.2'} - utf-8-validate@5.0.7: - resolution: {integrity: sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q==} - engines: {node: '>=6.14.2'} - - utf-8-validate@6.0.3: - resolution: {integrity: sha512-uIuGf9TWQ/y+0Lp+KGZCMuJWc3N9BHA+l/UmHd/oUHwJJDeysyTRxNQVkbzsIWfGFbRe3OcgML/i0mvVRPOyDA==} - engines: {node: '>=6.14.2'} - utf8@3.0.0: resolution: {integrity: sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==} @@ -10269,18 +10192,6 @@ packages: utf-8-validate: optional: true - ws@8.13.0: - resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - ws@8.17.0: resolution: {integrity: sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==} engines: {node: '>=10.0.0'} @@ -11813,7 +11724,7 @@ snapshots: dns-packet: 5.6.1 typescript-logging: 1.0.1 - '@ensdomains/ens-contracts@1.2.0-beta.0': + '@ensdomains/ens-contracts@1.2.0': dependencies: '@ensdomains/buffer': 0.1.1 '@ensdomains/solsha1': 0.0.3 @@ -11845,7 +11756,7 @@ snapshots: testrpc: 0.0.1 web3-utils: 1.10.4 - '@ensdomains/ensjs@2.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3)': + '@ensdomains/ensjs@2.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: '@babel/runtime': 7.24.6 '@ensdomains/address-encoder': 0.1.9 @@ -11853,13 +11764,13 @@ snapshots: '@ensdomains/resolver': 0.2.4 content-hash: 2.5.2 eth-ens-namehash: 2.0.8 - ethers: 5.7.2(bufferutil@4.0.7)(utf-8-validate@6.0.3) + ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) js-sha3: 0.8.0 transitivePeerDependencies: - bufferutil - utf-8-validate - '@ensdomains/ensjs@4.0.0(encoding@0.1.13)(typescript@5.4.5)(viem@2.19.4(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8)': + '@ensdomains/ensjs@4.0.0(encoding@0.1.13)(typescript@5.4.5)(viem@2.19.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8)': dependencies: '@adraffy/ens-normalize': 1.10.1 '@ensdomains/address-encoder': 1.1.1 @@ -11870,17 +11781,17 @@ snapshots: graphql: 16.8.1 graphql-request: 6.1.0(encoding@0.1.13)(graphql@16.8.1) pako: 2.1.0 - viem: 2.19.4(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8) + viem: 2.19.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8) transitivePeerDependencies: - encoding - typescript - zod - '@ensdomains/headless-web3-provider@1.0.8(viem@2.19.4(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))': + '@ensdomains/headless-web3-provider@1.0.8(viem@2.19.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8))': dependencies: '@metamask/json-rpc-engine': 9.0.2 '@metamask/utils': 9.1.0 - viem: 2.19.4(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8) + viem: 2.19.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8) transitivePeerDependencies: - supports-color @@ -12246,7 +12157,7 @@ snapshots: dependencies: '@ethersproject/logger': 5.7.0 - '@ethersproject/providers@5.7.2(bufferutil@4.0.7)(utf-8-validate@6.0.3)': + '@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: '@ethersproject/abstract-provider': 5.7.0 '@ethersproject/abstract-signer': 5.7.0 @@ -12267,7 +12178,7 @@ snapshots: '@ethersproject/transactions': 5.7.0 '@ethersproject/web': 5.7.1 bech32: 1.1.4 - ws: 7.4.6(bufferutil@4.0.7)(utf-8-validate@6.0.3) + ws: 7.4.6(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - utf-8-validate @@ -12628,7 +12539,7 @@ snapshots: '@metamask/safe-event-emitter@3.1.1': {} - '@metamask/sdk-communication-layer@0.27.0(cross-fetch@4.0.0(encoding@0.1.13))(eciesjs@0.3.18)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.7.5(bufferutil@4.0.7)(utf-8-validate@6.0.3))': + '@metamask/sdk-communication-layer@0.27.0(cross-fetch@4.0.0(encoding@0.1.13))(eciesjs@0.3.18)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.7.5(bufferutil@4.0.8)(utf-8-validate@5.0.10))': dependencies: bufferutil: 4.0.8 cross-fetch: 4.0.0(encoding@0.1.13) @@ -12637,27 +12548,27 @@ snapshots: eciesjs: 0.3.18 eventemitter2: 6.4.9 readable-stream: 3.6.2 - socket.io-client: 4.7.5(bufferutil@4.0.7)(utf-8-validate@6.0.3) + socket.io-client: 4.7.5(bufferutil@4.0.8)(utf-8-validate@5.0.10) utf-8-validate: 5.0.10 uuid: 8.3.2 transitivePeerDependencies: - supports-color - '@metamask/sdk-install-modal-web@0.26.5(i18next@23.11.5)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.7)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1)': + '@metamask/sdk-install-modal-web@0.26.5(i18next@23.11.5)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)': dependencies: i18next: 23.11.5 qr-code-styling: 1.6.0-rc.1 optionalDependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-native: 0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.7)(react@18.3.1)(utf-8-validate@6.0.3) + react-native: 0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10) - '@metamask/sdk@0.27.0(bufferutil@4.0.7)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.7)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1)(rollup@2.78.0)(utf-8-validate@6.0.3)': + '@metamask/sdk@0.27.0(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@2.78.0)(utf-8-validate@5.0.10)': dependencies: '@metamask/onboarding': 1.0.1 '@metamask/providers': 16.1.0 - '@metamask/sdk-communication-layer': 0.27.0(cross-fetch@4.0.0(encoding@0.1.13))(eciesjs@0.3.18)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.7.5(bufferutil@4.0.7)(utf-8-validate@6.0.3)) - '@metamask/sdk-install-modal-web': 0.26.5(i18next@23.11.5)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.7)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1) + '@metamask/sdk-communication-layer': 0.27.0(cross-fetch@4.0.0(encoding@0.1.13))(eciesjs@0.3.18)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.7.5(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@metamask/sdk-install-modal-web': 0.26.5(i18next@23.11.5)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1) '@types/dom-screen-wake-lock': 1.0.3 bowser: 2.11.0 cross-fetch: 4.0.0(encoding@0.1.13) @@ -12670,10 +12581,10 @@ snapshots: obj-multiplex: 1.0.0 pump: 3.0.0 qrcode-terminal-nooctal: 0.12.1 - react-native-webview: 11.26.1(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.7)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1) + react-native-webview: 11.26.1(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1) readable-stream: 3.6.2 rollup-plugin-visualizer: 5.12.0(rollup@2.78.0) - socket.io-client: 4.7.5(bufferutil@4.0.7)(utf-8-validate@6.0.3) + socket.io-client: 4.7.5(bufferutil@4.0.8)(utf-8-validate@5.0.10) util: 0.12.5 uuid: 8.3.2 optionalDependencies: @@ -12795,9 +12706,9 @@ snapshots: js-sha3: 0.8.0 multiformats: 9.9.0 - '@next/bundle-analyzer@13.5.6(bufferutil@4.0.7)(utf-8-validate@6.0.3)': + '@next/bundle-analyzer@13.5.6(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: - webpack-bundle-analyzer: 4.7.0(bufferutil@4.0.7)(utf-8-validate@6.0.3) + webpack-bundle-analyzer: 4.7.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - utf-8-validate @@ -12959,17 +12870,17 @@ snapshots: '@openzeppelin/contracts@4.9.6': {} - '@openzeppelin/test-helpers@0.5.16(bufferutil@4.0.7)(encoding@0.1.13)(utf-8-validate@6.0.3)': + '@openzeppelin/test-helpers@0.5.16(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': dependencies: '@openzeppelin/contract-loader': 0.6.3 - '@truffle/contract': 4.6.31(bufferutil@4.0.7)(encoding@0.1.13)(utf-8-validate@6.0.3) + '@truffle/contract': 4.6.31(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) ansi-colors: 3.2.4 chai: 4.4.1 chai-bn: 0.2.2(chai@4.4.1) ethjs-abi: 0.2.1 lodash.flatten: 4.4.0 semver: 5.7.2 - web3: 1.10.4(bufferutil@4.0.7)(encoding@0.1.13)(utf-8-validate@6.0.3) + web3: 1.10.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) web3-utils: 1.10.4 transitivePeerDependencies: - bn.js @@ -13063,7 +12974,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@rainbow-me/rainbowkit@2.1.2(@tanstack/react-query@5.22.2(react@18.3.1))(@types/react@18.2.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(viem@2.19.4(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(wagmi@2.12.4(@tanstack/query-core@5.22.2)(@tanstack/react-query@5.22.2(react@18.3.1))(@types/react@18.2.21)(bufferutil@4.0.7)(encoding@0.1.13)(immer@9.0.21)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.7)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1)(rollup@2.78.0)(typescript@5.4.5)(utf-8-validate@6.0.3)(viem@2.19.4(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8))': + '@rainbow-me/rainbowkit@2.1.2(@tanstack/react-query@5.22.2(react@18.3.1))(@types/react@18.2.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(viem@2.19.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8))(wagmi@2.12.4(@tanstack/query-core@5.22.2)(@tanstack/react-query@5.22.2(react@18.3.1))(@types/react@18.2.21)(bufferutil@4.0.8)(encoding@0.1.13)(immer@9.0.21)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@2.78.0)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.19.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8))': dependencies: '@tanstack/react-query': 5.22.2(react@18.3.1) '@vanilla-extract/css': 1.14.0 @@ -13075,8 +12986,8 @@ snapshots: react-dom: 18.3.1(react@18.3.1) react-remove-scroll: 2.5.7(@types/react@18.2.21)(react@18.3.1) ua-parser-js: 1.0.37 - viem: 2.19.4(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8) - wagmi: 2.12.4(@tanstack/query-core@5.22.2)(@tanstack/react-query@5.22.2(react@18.3.1))(@types/react@18.2.21)(bufferutil@4.0.7)(encoding@0.1.13)(immer@9.0.21)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.7)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1)(rollup@2.78.0)(typescript@5.4.5)(utf-8-validate@6.0.3)(viem@2.19.4(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8) + viem: 2.19.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8) + wagmi: 2.12.4(@tanstack/query-core@5.22.2)(@tanstack/react-query@5.22.2(react@18.3.1))(@types/react@18.2.21)(bufferutil@4.0.8)(encoding@0.1.13)(immer@9.0.21)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@2.78.0)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.19.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) transitivePeerDependencies: - '@types/react' @@ -13151,7 +13062,7 @@ snapshots: dependencies: '@react-native-community/cli-platform-apple': 13.6.6 - '@react-native-community/cli-server-api@13.6.6(bufferutil@4.0.7)(utf-8-validate@6.0.3)': + '@react-native-community/cli-server-api@13.6.6(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: '@react-native-community/cli-debugger-ui': 13.6.6 '@react-native-community/cli-tools': 13.6.6 @@ -13161,7 +13072,7 @@ snapshots: nocache: 3.0.4 pretty-format: 26.6.2 serve-static: 1.15.0 - ws: 6.2.3(bufferutil@4.0.7)(utf-8-validate@6.0.3) + ws: 6.2.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - supports-color @@ -13185,14 +13096,14 @@ snapshots: dependencies: joi: 17.13.3 - '@react-native-community/cli@13.6.6(bufferutil@4.0.7)(utf-8-validate@6.0.3)': + '@react-native-community/cli@13.6.6(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: '@react-native-community/cli-clean': 13.6.6 '@react-native-community/cli-config': 13.6.6 '@react-native-community/cli-debugger-ui': 13.6.6 '@react-native-community/cli-doctor': 13.6.6 '@react-native-community/cli-hermes': 13.6.6 - '@react-native-community/cli-server-api': 13.6.6(bufferutil@4.0.7)(utf-8-validate@6.0.3) + '@react-native-community/cli-server-api': 13.6.6(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@react-native-community/cli-tools': 13.6.6 '@react-native-community/cli-types': 13.6.6 chalk: 4.1.2 @@ -13280,16 +13191,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@react-native/community-cli-plugin@0.74.83(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(bufferutil@4.0.7)(utf-8-validate@6.0.3)': + '@react-native/community-cli-plugin@0.74.83(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: - '@react-native-community/cli-server-api': 13.6.6(bufferutil@4.0.7)(utf-8-validate@6.0.3) + '@react-native-community/cli-server-api': 13.6.6(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@react-native-community/cli-tools': 13.6.6 - '@react-native/dev-middleware': 0.74.83(bufferutil@4.0.7)(utf-8-validate@6.0.3) + '@react-native/dev-middleware': 0.74.83(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@react-native/metro-babel-transformer': 0.74.83(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6)) chalk: 4.1.2 execa: 5.1.1 - metro: 0.80.10(bufferutil@4.0.7)(utf-8-validate@6.0.3) - metro-config: 0.80.10(bufferutil@4.0.7)(utf-8-validate@6.0.3) + metro: 0.80.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) + metro-config: 0.80.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) metro-core: 0.80.10 node-fetch: 2.6.1 querystring: 0.2.1 @@ -13303,7 +13214,7 @@ snapshots: '@react-native/debugger-frontend@0.74.83': {} - '@react-native/dev-middleware@0.74.83(bufferutil@4.0.7)(utf-8-validate@6.0.3)': + '@react-native/dev-middleware@0.74.83(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: '@isaacs/ttlcache': 1.4.1 '@react-native/debugger-frontend': 0.74.83 @@ -13317,7 +13228,7 @@ snapshots: selfsigned: 2.4.1 serve-static: 1.15.0 temp-dir: 2.0.0 - ws: 6.2.3(bufferutil@4.0.7)(utf-8-validate@6.0.3) + ws: 6.2.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - supports-color @@ -13339,12 +13250,12 @@ snapshots: '@react-native/normalize-colors@0.74.83': {} - '@react-native/virtualized-lists@0.74.83(@types/react@18.2.21)(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.7)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1)': + '@react-native/virtualized-lists@0.74.83(@types/react@18.2.21)(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)': dependencies: invariant: 2.2.4 nullthrows: 1.1.1 react: 18.3.1 - react-native: 0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.7)(react@18.3.1)(utf-8-validate@6.0.3) + react-native: 0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10) optionalDependencies: '@types/react': 18.2.21 @@ -13428,9 +13339,9 @@ snapshots: '@rushstack/eslint-patch@1.10.3': {} - '@safe-global/safe-apps-provider@0.18.3(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8)': + '@safe-global/safe-apps-provider@0.18.3(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8)': dependencies: - '@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8) + '@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8) events: 3.3.0 transitivePeerDependencies: - bufferutil @@ -13438,10 +13349,10 @@ snapshots: - utf-8-validate - zod - '@safe-global/safe-apps-sdk@9.1.0(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8)': + '@safe-global/safe-apps-sdk@9.1.0(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8)': dependencies: '@safe-global/safe-gateway-typescript-sdk': 3.21.1 - viem: 2.19.4(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8) + viem: 2.19.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8) transitivePeerDependencies: - bufferutil - typescript @@ -13879,7 +13790,7 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/jest-dom@6.4.5(@types/jest@29.5.12)(vitest@2.0.5(@types/node@18.19.33)(jsdom@24.1.0(bufferutil@4.0.7)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.3))(terser@5.31.5))': + '@testing-library/jest-dom@6.4.5(@types/jest@29.5.12)(vitest@2.0.5(@types/node@18.19.33)(jsdom@24.1.0(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.31.5))': dependencies: '@adobe/css-tools': 4.3.3 '@babel/runtime': 7.24.6 @@ -13891,7 +13802,7 @@ snapshots: redent: 3.0.0 optionalDependencies: '@types/jest': 29.5.12 - vitest: 2.0.5(@types/node@18.19.33)(jsdom@24.1.0(bufferutil@4.0.7)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.3))(terser@5.31.5) + vitest: 2.0.5(@types/node@18.19.33)(jsdom@24.1.0(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.31.5) '@testing-library/react-hooks@8.0.1(@types/react@18.2.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -13951,18 +13862,18 @@ snapshots: transitivePeerDependencies: - supports-color - '@truffle/contract@4.6.31(bufferutil@4.0.7)(encoding@0.1.13)(utf-8-validate@6.0.3)': + '@truffle/contract@4.6.31(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': dependencies: - '@ensdomains/ensjs': 2.1.0(bufferutil@4.0.7)(utf-8-validate@6.0.3) + '@ensdomains/ensjs': 2.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@truffle/blockchain-utils': 0.1.9 '@truffle/contract-schema': 3.4.16 '@truffle/debug-utils': 6.0.57 '@truffle/error': 0.2.2 - '@truffle/interface-adapter': 0.5.37(bufferutil@4.0.7)(encoding@0.1.13)(utf-8-validate@6.0.3) + '@truffle/interface-adapter': 0.5.37(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) bignumber.js: 7.2.1 debug: 4.3.4(supports-color@5.5.0) ethers: 4.0.49 - web3: 1.10.0(bufferutil@4.0.7)(encoding@0.1.13)(utf-8-validate@6.0.3) + web3: 1.10.0(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) web3-core-helpers: 1.10.0 web3-core-promievent: 1.10.0 web3-eth-abi: 1.10.0 @@ -13986,11 +13897,11 @@ snapshots: '@truffle/error@0.2.2': {} - '@truffle/interface-adapter@0.5.37(bufferutil@4.0.7)(encoding@0.1.13)(utf-8-validate@6.0.3)': + '@truffle/interface-adapter@0.5.37(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': dependencies: bn.js: 5.2.1 ethers: 4.0.49 - web3: 1.10.0(bufferutil@4.0.7)(encoding@0.1.13)(utf-8-validate@6.0.3) + web3: 1.10.0(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - encoding @@ -14008,13 +13919,6 @@ snapshots: strip-ansi: 4.0.0 strip-indent: 2.0.0 - '@trufflesuite/uws-js-unofficial@20.30.0-unofficial.0': - dependencies: - ws: 8.13.0(bufferutil@4.0.7)(utf-8-validate@6.0.3) - optionalDependencies: - bufferutil: 4.0.7 - utf-8-validate: 6.0.3 - '@trysound/sax@0.2.0': {} '@tsconfig/node10@1.0.11': {} @@ -14163,18 +14067,18 @@ snapshots: '@types/prop-types@15.7.12': {} - '@types/puppeteer-core@5.4.0(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)': + '@types/puppeteer-core@5.4.0(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)': dependencies: - '@types/puppeteer': 7.0.4(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3) + '@types/puppeteer': 7.0.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - supports-color - typescript - utf-8-validate - '@types/puppeteer@7.0.4(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)': + '@types/puppeteer@7.0.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)': dependencies: - puppeteer: 22.10.0(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3) + puppeteer: 22.10.0(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - supports-color @@ -14219,8 +14123,6 @@ snapshots: dependencies: '@types/node': 18.19.44 - '@types/seedrandom@3.0.1': {} - '@types/semver@7.5.8': {} '@types/set-cookie-parser@2.4.7': @@ -14456,7 +14358,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@2.0.5(vitest@2.0.5(@types/node@18.19.33)(jsdom@24.1.0(bufferutil@4.0.7)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.3))(terser@5.31.5))': + '@vitest/coverage-v8@2.0.5(vitest@2.0.5(@types/node@18.19.33)(jsdom@24.1.0(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.31.5))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 @@ -14470,7 +14372,7 @@ snapshots: std-env: 3.7.0 test-exclude: 7.0.1 tinyrainbow: 1.2.0 - vitest: 2.0.5(@types/node@18.19.33)(jsdom@24.1.0(bufferutil@4.0.7)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.3))(terser@5.31.5) + vitest: 2.0.5(@types/node@18.19.33)(jsdom@24.1.0(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.31.5) transitivePeerDependencies: - supports-color @@ -14507,17 +14409,17 @@ snapshots: loupe: 3.1.1 tinyrainbow: 1.2.0 - '@wagmi/connectors@5.1.4(@types/react@18.2.21)(@wagmi/core@2.13.3(@tanstack/query-core@5.22.2)(@types/react@18.2.21)(immer@9.0.21)(react@18.3.1)(typescript@5.4.5)(viem@2.19.4(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8)))(bufferutil@4.0.7)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.7)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1)(rollup@2.78.0)(typescript@5.4.5)(utf-8-validate@6.0.3)(viem@2.19.4(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8)': + '@wagmi/connectors@5.1.4(@types/react@18.2.21)(@wagmi/core@2.13.3(@tanstack/query-core@5.22.2)(@types/react@18.2.21)(immer@9.0.21)(react@18.3.1)(typescript@5.4.5)(viem@2.19.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@2.78.0)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.19.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8)': dependencies: '@coinbase/wallet-sdk': 4.0.4 - '@metamask/sdk': 0.27.0(bufferutil@4.0.7)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.7)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1)(rollup@2.78.0)(utf-8-validate@6.0.3) - '@safe-global/safe-apps-provider': 0.18.3(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8) - '@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8) - '@wagmi/core': 2.13.3(@tanstack/query-core@5.22.2)(@types/react@18.2.21)(immer@9.0.21)(react@18.3.1)(typescript@5.4.5)(viem@2.19.4(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8)) - '@walletconnect/ethereum-provider': 2.11.1(@types/react@18.2.21)(bufferutil@4.0.7)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3) + '@metamask/sdk': 0.27.0(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@2.78.0)(utf-8-validate@5.0.10) + '@safe-global/safe-apps-provider': 0.18.3(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8) + '@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8) + '@wagmi/core': 2.13.3(@tanstack/query-core@5.22.2)(@types/react@18.2.21)(immer@9.0.21)(react@18.3.1)(typescript@5.4.5)(viem@2.19.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8)) + '@walletconnect/ethereum-provider': 2.11.1(@types/react@18.2.21)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@5.0.10) '@walletconnect/modal': 2.6.2(@types/react@18.2.21)(react@18.3.1) cbw-sdk: '@coinbase/wallet-sdk@3.9.3' - viem: 2.19.4(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8) + viem: 2.19.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8) optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: @@ -14546,11 +14448,11 @@ snapshots: - utf-8-validate - zod - '@wagmi/core@2.13.3(@tanstack/query-core@5.22.2)(@types/react@18.2.21)(immer@9.0.21)(react@18.3.1)(typescript@5.4.5)(viem@2.19.4(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))': + '@wagmi/core@2.13.3(@tanstack/query-core@5.22.2)(@types/react@18.2.21)(immer@9.0.21)(react@18.3.1)(typescript@5.4.5)(viem@2.19.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8))': dependencies: eventemitter3: 5.0.1 mipd: 0.0.7(typescript@5.4.5) - viem: 2.19.4(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8) + viem: 2.19.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8) zustand: 4.4.1(@types/react@18.2.21)(immer@9.0.21)(react@18.3.1) optionalDependencies: '@tanstack/query-core': 5.22.2 @@ -14560,13 +14462,13 @@ snapshots: - immer - react - '@walletconnect/core@2.11.1(bufferutil@4.0.7)(utf-8-validate@6.0.3)': + '@walletconnect/core@2.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: '@walletconnect/heartbeat': 1.2.1 '@walletconnect/jsonrpc-provider': 1.0.13 '@walletconnect/jsonrpc-types': 1.0.3 '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/jsonrpc-ws-connection': 1.0.14(bufferutil@4.0.7)(utf-8-validate@6.0.3) + '@walletconnect/jsonrpc-ws-connection': 1.0.14(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@walletconnect/keyvaluestorage': 1.1.1 '@walletconnect/logger': 2.1.2 '@walletconnect/relay-api': 1.0.10 @@ -14601,16 +14503,16 @@ snapshots: dependencies: tslib: 1.14.1 - '@walletconnect/ethereum-provider@2.11.1(@types/react@18.2.21)(bufferutil@4.0.7)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@6.0.3)': + '@walletconnect/ethereum-provider@2.11.1(@types/react@18.2.21)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@5.0.10)': dependencies: '@walletconnect/jsonrpc-http-connection': 1.0.8(encoding@0.1.13) '@walletconnect/jsonrpc-provider': 1.0.14 '@walletconnect/jsonrpc-types': 1.0.4 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/modal': 2.6.2(@types/react@18.2.21)(react@18.3.1) - '@walletconnect/sign-client': 2.11.1(bufferutil@4.0.7)(utf-8-validate@6.0.3) + '@walletconnect/sign-client': 2.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@walletconnect/types': 2.11.1 - '@walletconnect/universal-provider': 2.11.1(bufferutil@4.0.7)(encoding@0.1.13)(utf-8-validate@6.0.3) + '@walletconnect/universal-provider': 2.11.1(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) '@walletconnect/utils': 2.11.1 events: 3.3.0 transitivePeerDependencies: @@ -14682,12 +14584,12 @@ snapshots: '@walletconnect/jsonrpc-types': 1.0.4 tslib: 1.14.1 - '@walletconnect/jsonrpc-ws-connection@1.0.14(bufferutil@4.0.7)(utf-8-validate@6.0.3)': + '@walletconnect/jsonrpc-ws-connection@1.0.14(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/safe-json': 1.0.2 events: 3.3.0 - ws: 7.5.10(bufferutil@4.0.7)(utf-8-validate@6.0.3) + ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - utf-8-validate @@ -14759,9 +14661,9 @@ snapshots: dependencies: tslib: 1.14.1 - '@walletconnect/sign-client@2.11.1(bufferutil@4.0.7)(utf-8-validate@6.0.3)': + '@walletconnect/sign-client@2.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: - '@walletconnect/core': 2.11.1(bufferutil@4.0.7)(utf-8-validate@6.0.3) + '@walletconnect/core': 2.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.1 '@walletconnect/jsonrpc-utils': 1.0.8 @@ -14816,14 +14718,14 @@ snapshots: - ioredis - uWebSockets.js - '@walletconnect/universal-provider@2.11.1(bufferutil@4.0.7)(encoding@0.1.13)(utf-8-validate@6.0.3)': + '@walletconnect/universal-provider@2.11.1(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': dependencies: '@walletconnect/jsonrpc-http-connection': 1.0.8(encoding@0.1.13) '@walletconnect/jsonrpc-provider': 1.0.13 '@walletconnect/jsonrpc-types': 1.0.4 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/logger': 2.1.2 - '@walletconnect/sign-client': 2.11.1(bufferutil@4.0.7)(utf-8-validate@6.0.3) + '@walletconnect/sign-client': 2.11.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@walletconnect/types': 2.11.1 '@walletconnect/utils': 2.11.1 events: 3.3.0 @@ -14987,25 +14889,6 @@ snapshots: abortcontroller-polyfill@1.7.5: {} - abstract-level@1.0.3: - dependencies: - buffer: 6.0.3 - catering: 2.1.1 - is-buffer: 2.0.5 - level-supports: 4.0.1 - level-transcoder: 1.0.1 - module-error: 1.0.2 - queue-microtask: 1.2.3 - - abstract-leveldown@7.2.0: - dependencies: - buffer: 6.0.3 - catering: 2.1.1 - is-buffer: 2.0.5 - level-concat-iterator: 3.1.0 - level-supports: 2.1.0 - queue-microtask: 1.2.3 - accepts@1.3.8: dependencies: mime-types: 2.1.35 @@ -15257,20 +15140,12 @@ snapshots: astral-regex@2.0.0: {} - async-eventemitter@0.2.4: - dependencies: - async: 2.6.4 - async-limiter@1.0.1: {} async-mutex@0.2.6: dependencies: tslib: 2.6.3 - async@2.6.4: - dependencies: - lodash: 4.17.21 - asynckit@0.4.0: {} atomic-sleep@1.0.0: {} @@ -15525,16 +15400,6 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - bufferutil@4.0.5: - dependencies: - node-gyp-build: 4.8.1 - optional: true - - bufferutil@4.0.7: - dependencies: - node-gyp-build: 4.8.1 - optional: true - bufferutil@4.0.8: dependencies: node-gyp-build: 4.8.1 @@ -15631,8 +15496,6 @@ snapshots: caseless@0.12.0: {} - catering@2.1.1: {} - cbor@5.2.0: dependencies: bignumber.js: 9.1.2 @@ -16439,8 +16302,6 @@ snapshots: minimalistic-assert: 1.0.1 minimalistic-crypto-utils: 1.0.1 - emittery@0.10.0: {} - emmet@2.4.7: dependencies: '@emmetio/abbreviation': 2.3.3 @@ -16463,12 +16324,12 @@ snapshots: dependencies: once: 1.4.0 - engine.io-client@6.5.3(bufferutil@4.0.7)(utf-8-validate@6.0.3): + engine.io-client@6.5.3(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: '@socket.io/component-emitter': 3.1.2 debug: 4.3.6 engine.io-parser: 5.2.2 - ws: 8.11.0(bufferutil@4.0.7)(utf-8-validate@6.0.3) + ws: 8.11.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) xmlhttprequest-ssl: 2.0.0 transitivePeerDependencies: - bufferutil @@ -16887,13 +16748,13 @@ snapshots: - supports-color - typescript - eslint-plugin-vitest@0.4.1(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint@8.50.0)(typescript@5.4.5))(eslint@8.50.0)(typescript@5.4.5)(vitest@2.0.5(@types/node@18.19.33)(jsdom@24.1.0(bufferutil@4.0.7)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.3))(terser@5.31.5)): + eslint-plugin-vitest@0.4.1(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint@8.50.0)(typescript@5.4.5))(eslint@8.50.0)(typescript@5.4.5)(vitest@2.0.5(@types/node@18.19.33)(jsdom@24.1.0(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.31.5)): dependencies: '@typescript-eslint/utils': 7.10.0(eslint@8.50.0)(typescript@5.4.5) eslint: 8.50.0 optionalDependencies: '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.50.0)(typescript@5.4.5))(eslint@8.50.0)(typescript@5.4.5) - vitest: 2.0.5(@types/node@18.19.33)(jsdom@24.1.0(bufferutil@4.0.7)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.3))(terser@5.31.5) + vitest: 2.0.5(@types/node@18.19.33)(jsdom@24.1.0(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.31.5) transitivePeerDependencies: - supports-color - typescript @@ -17014,13 +16875,13 @@ snapshots: json-rpc-engine: 6.1.0 pify: 5.0.0 - eth-lib@0.1.29(bufferutil@4.0.7)(utf-8-validate@6.0.3): + eth-lib@0.1.29(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: bn.js: 5.2.1 elliptic: 6.5.5 nano-json-stream-parser: 0.1.2 servify: 0.1.12 - ws: 3.3.3(bufferutil@4.0.7)(utf-8-validate@6.0.3) + ws: 3.3.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) xhr-request-promise: 0.1.3 transitivePeerDependencies: - bufferutil @@ -17113,7 +16974,7 @@ snapshots: uuid: 2.0.1 xmlhttprequest: 1.8.0 - ethers@5.7.2(bufferutil@4.0.7)(utf-8-validate@6.0.3): + ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: '@ethersproject/abi': 5.7.0 '@ethersproject/abstract-provider': 5.7.0 @@ -17133,7 +16994,7 @@ snapshots: '@ethersproject/networks': 5.7.1 '@ethersproject/pbkdf2': 5.7.0 '@ethersproject/properties': 5.7.0 - '@ethersproject/providers': 5.7.2(bufferutil@4.0.7)(utf-8-validate@6.0.3) + '@ethersproject/providers': 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@ethersproject/random': 5.7.0 '@ethersproject/rlp': 5.7.0 '@ethersproject/sha2': 5.7.0 @@ -17538,20 +17399,6 @@ snapshots: futoin-hkdf@1.5.3: {} - ganache@7.9.2: - dependencies: - '@trufflesuite/uws-js-unofficial': 20.30.0-unofficial.0 - '@types/bn.js': 5.1.5 - '@types/lru-cache': 5.1.1 - '@types/seedrandom': 3.0.1 - abstract-level: 1.0.3 - abstract-leveldown: 7.2.0 - async-eventemitter: 0.2.4 - emittery: 0.10.0 - optionalDependencies: - bufferutil: 4.0.5 - utf-8-validate: 5.0.7 - gauge@3.0.2: dependencies: aproba: 2.0.0 @@ -17797,16 +17644,16 @@ snapshots: hard-rejection@2.1.0: {} - hardhat-dependency-compiler@1.1.4(hardhat@2.22.4(bufferutil@4.0.7)(ts-node@10.9.2(@types/node@18.19.33)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@6.0.3)): + hardhat-dependency-compiler@1.1.4(hardhat@2.22.4(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@18.19.33)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)): dependencies: - hardhat: 2.22.4(bufferutil@4.0.7)(ts-node@10.9.2(@types/node@18.19.33)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@6.0.3) + hardhat: 2.22.4(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@18.19.33)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) - hardhat-deploy-ethers@0.3.0-beta.13(ethers@5.7.2(bufferutil@4.0.7)(utf-8-validate@6.0.3))(hardhat@2.22.4(bufferutil@4.0.7)(ts-node@10.9.2(@types/node@18.19.33)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@6.0.3)): + hardhat-deploy-ethers@0.3.0-beta.13(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.4(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@18.19.33)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10)): dependencies: - ethers: 5.7.2(bufferutil@4.0.7)(utf-8-validate@6.0.3) - hardhat: 2.22.4(bufferutil@4.0.7)(ts-node@10.9.2(@types/node@18.19.33)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@6.0.3) + ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + hardhat: 2.22.4(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@18.19.33)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10) - hardhat-deploy@0.11.45(bufferutil@4.0.7)(utf-8-validate@6.0.3): + hardhat-deploy@0.11.45(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: '@ethersproject/abi': 5.7.0 '@ethersproject/abstract-signer': 5.7.0 @@ -17815,7 +17662,7 @@ snapshots: '@ethersproject/bytes': 5.7.0 '@ethersproject/constants': 5.7.0 '@ethersproject/contracts': 5.7.0 - '@ethersproject/providers': 5.7.2(bufferutil@4.0.7)(utf-8-validate@6.0.3) + '@ethersproject/providers': 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@ethersproject/solidity': 5.7.0 '@ethersproject/transactions': 5.7.0 '@ethersproject/wallet': 5.7.0 @@ -17825,19 +17672,19 @@ snapshots: chokidar: 3.6.0 debug: 4.3.4(supports-color@5.5.0) enquirer: 2.4.1 - ethers: 5.7.2(bufferutil@4.0.7)(utf-8-validate@6.0.3) + ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) form-data: 4.0.0 fs-extra: 10.1.0 match-all: 1.2.6 murmur-128: 0.2.1 qs: 6.12.1 - zksync-web3: 0.14.4(ethers@5.7.2(bufferutil@4.0.7)(utf-8-validate@6.0.3)) + zksync-web3: 0.14.4(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)) transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - hardhat@2.22.4(bufferutil@4.0.7)(ts-node@10.9.2(@types/node@18.19.33)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@6.0.3): + hardhat@2.22.4(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@18.19.33)(typescript@5.4.5))(typescript@5.4.5)(utf-8-validate@5.0.10): dependencies: '@ethersproject/abi': 5.7.0 '@metamask/eth-sig-util': 4.0.1 @@ -17881,7 +17728,7 @@ snapshots: tsort: 0.0.1 undici: 5.28.4 uuid: 8.3.2 - ws: 7.5.9(bufferutil@4.0.7)(utf-8-validate@6.0.3) + ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10) optionalDependencies: ts-node: 10.9.2(@types/node@18.19.33)(typescript@5.4.5) typescript: 5.4.5 @@ -18222,8 +18069,6 @@ snapshots: call-bind: 1.0.7 has-tostringtag: 1.0.2 - is-buffer@2.0.5: {} - is-callable@1.2.7: {} is-core-module@2.13.1: @@ -18387,13 +18232,13 @@ snapshots: node-fetch: 2.6.1 unfetch: 4.2.0 - isows@1.0.4(ws@8.17.0(bufferutil@4.0.7)(utf-8-validate@6.0.3)): + isows@1.0.4(ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)): dependencies: - ws: 8.17.0(bufferutil@4.0.7)(utf-8-validate@6.0.3) + ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) - isows@1.0.4(ws@8.17.1(bufferutil@4.0.7)(utf-8-validate@6.0.3)): + isows@1.0.4(ws@8.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)): dependencies: - ws: 8.17.1(bufferutil@4.0.7)(utf-8-validate@6.0.3) + ws: 8.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) isstream@0.1.2: {} @@ -18583,7 +18428,7 @@ snapshots: transitivePeerDependencies: - supports-color - jsdom@24.1.0(bufferutil@4.0.7)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.3): + jsdom@24.1.0(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10): dependencies: cssstyle: 4.0.1 data-urls: 5.0.0 @@ -18604,7 +18449,7 @@ snapshots: whatwg-encoding: 3.1.1 whatwg-mimetype: 4.0.0 whatwg-url: 14.0.0 - ws: 8.17.0(bufferutil@4.0.7)(utf-8-validate@6.0.3) + ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) xml-name-validator: 5.0.0 optionalDependencies: canvas: 2.11.2(encoding@0.1.13) @@ -18717,19 +18562,6 @@ snapshots: dependencies: invert-kv: 1.0.0 - level-concat-iterator@3.1.0: - dependencies: - catering: 2.1.1 - - level-supports@2.1.0: {} - - level-supports@4.0.1: {} - - level-transcoder@1.0.1: - dependencies: - buffer: 6.0.3 - module-error: 1.0.2 - leven@3.1.0: {} levn@0.4.1: @@ -19016,13 +18848,13 @@ snapshots: flow-enums-runtime: 0.0.6 metro-core: 0.80.10 - metro-config@0.80.10(bufferutil@4.0.7)(utf-8-validate@6.0.3): + metro-config@0.80.10(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: connect: 3.7.0 cosmiconfig: 5.2.1 flow-enums-runtime: 0.0.6 jest-validate: 29.7.0 - metro: 0.80.10(bufferutil@4.0.7)(utf-8-validate@6.0.3) + metro: 0.80.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) metro-cache: 0.80.10 metro-core: 0.80.10 metro-runtime: 0.80.10 @@ -19106,14 +18938,14 @@ snapshots: transitivePeerDependencies: - supports-color - metro-transform-worker@0.80.10(bufferutil@4.0.7)(utf-8-validate@6.0.3): + metro-transform-worker@0.80.10(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: '@babel/core': 7.24.6 '@babel/generator': 7.25.0 '@babel/parser': 7.25.3 '@babel/types': 7.25.2 flow-enums-runtime: 0.0.6 - metro: 0.80.10(bufferutil@4.0.7)(utf-8-validate@6.0.3) + metro: 0.80.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) metro-babel-transformer: 0.80.10 metro-cache: 0.80.10 metro-cache-key: 0.80.10 @@ -19126,7 +18958,7 @@ snapshots: - supports-color - utf-8-validate - metro@0.80.10(bufferutil@4.0.7)(utf-8-validate@6.0.3): + metro@0.80.10(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: '@babel/code-frame': 7.24.7 '@babel/core': 7.24.6 @@ -19153,7 +18985,7 @@ snapshots: metro-babel-transformer: 0.80.10 metro-cache: 0.80.10 metro-cache-key: 0.80.10 - metro-config: 0.80.10(bufferutil@4.0.7)(utf-8-validate@6.0.3) + metro-config: 0.80.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) metro-core: 0.80.10 metro-file-map: 0.80.10 metro-resolver: 0.80.10 @@ -19161,7 +18993,7 @@ snapshots: metro-source-map: 0.80.10 metro-symbolicate: 0.80.10 metro-transform-plugins: 0.80.10 - metro-transform-worker: 0.80.10(bufferutil@4.0.7)(utf-8-validate@6.0.3) + metro-transform-worker: 0.80.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) mime-types: 2.1.35 node-fetch: 2.6.1 nullthrows: 1.1.1 @@ -19169,7 +19001,7 @@ snapshots: source-map: 0.5.7 strip-ansi: 6.0.1 throat: 5.0.0 - ws: 7.5.10(bufferutil@4.0.7)(utf-8-validate@6.0.3) + ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) yargs: 17.7.2 transitivePeerDependencies: - bufferutil @@ -19213,7 +19045,7 @@ snapshots: min-indent@1.0.1: {} - miniflare@3.20240512.0(bufferutil@4.0.7)(utf-8-validate@6.0.3): + miniflare@3.20240512.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: '@cspotcode/source-map-support': 0.8.1 acorn: 8.11.3 @@ -19224,7 +19056,7 @@ snapshots: stoppable: 1.1.0 undici: 5.28.4 workerd: 1.20240512.0 - ws: 8.17.1(bufferutil@4.0.7)(utf-8-validate@6.0.3) + ws: 8.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) youch: 3.3.3 zod: 3.23.8 transitivePeerDependencies: @@ -19344,8 +19176,6 @@ snapshots: modern-ahocorasick@1.0.1: {} - module-error@1.0.2: {} - moo-color@1.0.3: dependencies: color-name: 1.1.4 @@ -20147,24 +19977,24 @@ snapshots: punycode@2.3.1: {} - puppeteer-core@22.10.0(bufferutil@4.0.7)(utf-8-validate@6.0.3): + puppeteer-core@22.10.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: '@puppeteer/browsers': 2.2.3 chromium-bidi: 0.5.19(devtools-protocol@0.0.1286932) debug: 4.3.4(supports-color@5.5.0) devtools-protocol: 0.0.1286932 - ws: 8.17.0(bufferutil@4.0.7)(utf-8-validate@6.0.3) + ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - puppeteer@22.10.0(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3): + puppeteer@22.10.0(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10): dependencies: '@puppeteer/browsers': 2.2.3 cosmiconfig: 9.0.0(typescript@5.4.5) devtools-protocol: 0.0.1286932 - puppeteer-core: 22.10.0(bufferutil@4.0.7)(utf-8-validate@6.0.3) + puppeteer-core: 22.10.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - supports-color @@ -20258,10 +20088,10 @@ snapshots: react: 18.3.1 tween-functions: 1.2.0 - react-devtools-core@5.3.1(bufferutil@4.0.7)(utf-8-validate@6.0.3): + react-devtools-core@5.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: shell-quote: 1.8.1 - ws: 7.5.10(bufferutil@4.0.7)(utf-8-validate@6.0.3) + ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - utf-8-validate @@ -20286,7 +20116,7 @@ snapshots: dependencies: react: 18.3.1 - react-i18next@11.18.6(i18next@21.10.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.7)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1): + react-i18next@11.18.6(i18next@21.10.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1): dependencies: '@babel/runtime': 7.24.6 html-parse-stringify: 3.0.1 @@ -20294,7 +20124,7 @@ snapshots: react: 18.3.1 optionalDependencies: react-dom: 18.3.1(react@18.3.1) - react-native: 0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.7)(react@18.3.1)(utf-8-validate@6.0.3) + react-native: 0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10) react-is@16.13.1: {} @@ -20302,26 +20132,26 @@ snapshots: react-is@18.3.1: {} - react-native-webview@11.26.1(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.7)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1): + react-native-webview@11.26.1(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1): dependencies: escape-string-regexp: 2.0.0 invariant: 2.2.4 react: 18.3.1 - react-native: 0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.7)(react@18.3.1)(utf-8-validate@6.0.3) + react-native: 0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10) - react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.7)(react@18.3.1)(utf-8-validate@6.0.3): + react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10): dependencies: '@jest/create-cache-key-function': 29.7.0 - '@react-native-community/cli': 13.6.6(bufferutil@4.0.7)(utf-8-validate@6.0.3) + '@react-native-community/cli': 13.6.6(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@react-native-community/cli-platform-android': 13.6.6 '@react-native-community/cli-platform-ios': 13.6.6 '@react-native/assets-registry': 0.74.83 '@react-native/codegen': 0.74.83(@babel/preset-env@7.24.6(@babel/core@7.24.6)) - '@react-native/community-cli-plugin': 0.74.83(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(bufferutil@4.0.7)(utf-8-validate@6.0.3) + '@react-native/community-cli-plugin': 0.74.83(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@react-native/gradle-plugin': 0.74.83 '@react-native/js-polyfills': 0.74.83 '@react-native/normalize-colors': 0.74.83 - '@react-native/virtualized-lists': 0.74.83(@types/react@18.2.21)(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.7)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1) + '@react-native/virtualized-lists': 0.74.83(@types/react@18.2.21)(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1) abort-controller: 3.0.0 anser: 1.4.10 ansi-regex: 5.0.1 @@ -20340,14 +20170,14 @@ snapshots: pretty-format: 26.6.2 promise: 8.3.0 react: 18.3.1 - react-devtools-core: 5.3.1(bufferutil@4.0.7)(utf-8-validate@6.0.3) + react-devtools-core: 5.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) react-refresh: 0.14.2 react-shallow-renderer: 16.15.0(react@18.3.1) regenerator-runtime: 0.13.11 scheduler: 0.24.0-canary-efb381bbf-20230505 stacktrace-parser: 0.1.10 whatwg-fetch: 3.6.20 - ws: 6.2.3(bufferutil@4.0.7)(utf-8-validate@6.0.3) + ws: 6.2.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) yargs: 17.7.2 optionalDependencies: '@types/react': 18.2.21 @@ -20977,11 +20807,11 @@ snapshots: dot-case: 3.0.4 tslib: 2.6.2 - socket.io-client@4.7.5(bufferutil@4.0.7)(utf-8-validate@6.0.3): + socket.io-client@4.7.5(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: '@socket.io/component-emitter': 3.1.2 debug: 4.3.6 - engine.io-client: 6.5.3(bufferutil@4.0.7)(utf-8-validate@6.0.3) + engine.io-client: 6.5.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) socket.io-parser: 4.2.4 transitivePeerDependencies: - bufferutil @@ -21452,11 +21282,11 @@ snapshots: lower-case: 1.1.4 upper-case: 1.1.3 - swarm-js@0.1.42(bufferutil@4.0.7)(utf-8-validate@6.0.3): + swarm-js@0.1.42(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: bluebird: 3.7.2 buffer: 5.7.1 - eth-lib: 0.1.29(bufferutil@4.0.7)(utf-8-validate@6.0.3) + eth-lib: 0.1.29(bufferutil@4.0.8)(utf-8-validate@5.0.10) fs-extra: 4.0.3 got: 11.8.6 mime-types: 2.1.35 @@ -21921,16 +21751,6 @@ snapshots: dependencies: node-gyp-build: 4.8.1 - utf-8-validate@5.0.7: - dependencies: - node-gyp-build: 4.8.1 - optional: true - - utf-8-validate@6.0.3: - dependencies: - node-gyp-build: 4.8.1 - optional: true - utf8@3.0.0: {} util-deprecate@1.0.2: {} @@ -21980,7 +21800,7 @@ snapshots: core-util-is: 1.0.2 extsprintf: 1.3.0 - viem@2.19.4(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8): + viem@2.19.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8): dependencies: '@adraffy/ens-normalize': 1.10.0 '@noble/curves': 1.4.0 @@ -21988,9 +21808,9 @@ snapshots: '@scure/bip32': 1.4.0 '@scure/bip39': 1.3.0 abitype: 1.0.5(typescript@5.4.5)(zod@3.23.8) - isows: 1.0.4(ws@8.17.1(bufferutil@4.0.7)(utf-8-validate@6.0.3)) + isows: 1.0.4(ws@8.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)) webauthn-p256: 0.0.5 - ws: 8.17.1(bufferutil@4.0.7)(utf-8-validate@6.0.3) + ws: 8.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: @@ -22032,12 +21852,12 @@ snapshots: fsevents: 2.3.3 terser: 5.31.5 - vitest-canvas-mock@0.3.3(vitest@2.0.5(@types/node@18.19.33)(jsdom@24.1.0(bufferutil@4.0.7)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.3))(terser@5.31.5)): + vitest-canvas-mock@0.3.3(vitest@2.0.5(@types/node@18.19.33)(jsdom@24.1.0(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.31.5)): dependencies: jest-canvas-mock: 2.5.2 - vitest: 2.0.5(@types/node@18.19.33)(jsdom@24.1.0(bufferutil@4.0.7)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.3))(terser@5.31.5) + vitest: 2.0.5(@types/node@18.19.33)(jsdom@24.1.0(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.31.5) - vitest@2.0.5(@types/node@18.19.33)(jsdom@24.1.0(bufferutil@4.0.7)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.3))(terser@5.31.5): + vitest@2.0.5(@types/node@18.19.33)(jsdom@24.1.0(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.31.5): dependencies: '@ampproject/remapping': 2.3.0 '@vitest/expect': 2.0.5 @@ -22060,7 +21880,7 @@ snapshots: why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 18.19.33 - jsdom: 24.1.0(bufferutil@4.0.7)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.3) + jsdom: 24.1.0(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10) transitivePeerDependencies: - less - lightningcss @@ -22104,14 +21924,14 @@ snapshots: dependencies: xml-name-validator: 5.0.0 - wagmi@2.12.4(@tanstack/query-core@5.22.2)(@tanstack/react-query@5.22.2(react@18.3.1))(@types/react@18.2.21)(bufferutil@4.0.7)(encoding@0.1.13)(immer@9.0.21)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.7)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1)(rollup@2.78.0)(typescript@5.4.5)(utf-8-validate@6.0.3)(viem@2.19.4(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8): + wagmi@2.12.4(@tanstack/query-core@5.22.2)(@tanstack/react-query@5.22.2(react@18.3.1))(@types/react@18.2.21)(bufferutil@4.0.8)(encoding@0.1.13)(immer@9.0.21)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@2.78.0)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.19.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8): dependencies: '@tanstack/react-query': 5.22.2(react@18.3.1) - '@wagmi/connectors': 5.1.4(@types/react@18.2.21)(@wagmi/core@2.13.3(@tanstack/query-core@5.22.2)(@types/react@18.2.21)(immer@9.0.21)(react@18.3.1)(typescript@5.4.5)(viem@2.19.4(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8)))(bufferutil@4.0.7)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.7)(react@18.3.1)(utf-8-validate@6.0.3))(react@18.3.1)(rollup@2.78.0)(typescript@5.4.5)(utf-8-validate@6.0.3)(viem@2.19.4(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8) - '@wagmi/core': 2.13.3(@tanstack/query-core@5.22.2)(@types/react@18.2.21)(immer@9.0.21)(react@18.3.1)(typescript@5.4.5)(viem@2.19.4(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8)) + '@wagmi/connectors': 5.1.4(@types/react@18.2.21)(@wagmi/core@2.13.3(@tanstack/query-core@5.22.2)(@types/react@18.2.21)(immer@9.0.21)(react@18.3.1)(typescript@5.4.5)(viem@2.19.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.6)(@babel/preset-env@7.24.6(@babel/core@7.24.6))(@types/react@18.2.21)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@2.78.0)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.19.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) + '@wagmi/core': 2.13.3(@tanstack/query-core@5.22.2)(@types/react@18.2.21)(immer@9.0.21)(react@18.3.1)(typescript@5.4.5)(viem@2.19.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8)) react: 18.3.1 use-sync-external-store: 1.2.0(react@18.3.1) - viem: 2.19.4(bufferutil@4.0.7)(typescript@5.4.5)(utf-8-validate@6.0.3)(zod@3.23.8) + viem: 2.19.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8) optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: @@ -22177,21 +21997,21 @@ snapshots: web-streams-polyfill@3.3.3: {} - web3-bzz@1.10.0(bufferutil@4.0.7)(utf-8-validate@6.0.3): + web3-bzz@1.10.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: '@types/node': 12.20.55 got: 12.1.0 - swarm-js: 0.1.42(bufferutil@4.0.7)(utf-8-validate@6.0.3) + swarm-js: 0.1.42(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - web3-bzz@1.10.4(bufferutil@4.0.7)(utf-8-validate@6.0.3): + web3-bzz@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: '@types/node': 12.20.55 got: 12.1.0 - swarm-js: 0.1.42(bufferutil@4.0.7)(utf-8-validate@6.0.3) + swarm-js: 0.1.42(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - supports-color @@ -22560,9 +22380,9 @@ snapshots: randombytes: 2.1.0 utf8: 3.0.0 - web3@1.10.0(bufferutil@4.0.7)(encoding@0.1.13)(utf-8-validate@6.0.3): + web3@1.10.0(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10): dependencies: - web3-bzz: 1.10.0(bufferutil@4.0.7)(utf-8-validate@6.0.3) + web3-bzz: 1.10.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) web3-core: 1.10.0(encoding@0.1.13) web3-eth: 1.10.0(encoding@0.1.13) web3-eth-personal: 1.10.0(encoding@0.1.13) @@ -22575,9 +22395,9 @@ snapshots: - supports-color - utf-8-validate - web3@1.10.4(bufferutil@4.0.7)(encoding@0.1.13)(utf-8-validate@6.0.3): + web3@1.10.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10): dependencies: - web3-bzz: 1.10.4(bufferutil@4.0.7)(utf-8-validate@6.0.3) + web3-bzz: 1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) web3-core: 1.10.4(encoding@0.1.13) web3-eth: 1.10.4(encoding@0.1.13) web3-eth-personal: 1.10.4(encoding@0.1.13) @@ -22601,7 +22421,7 @@ snapshots: webidl-conversions@7.0.0: {} - webpack-bundle-analyzer@4.7.0(bufferutil@4.0.7)(utf-8-validate@6.0.3): + webpack-bundle-analyzer@4.7.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: acorn: 8.11.3 acorn-walk: 8.3.2 @@ -22611,7 +22431,7 @@ snapshots: lodash: 4.17.21 opener: 1.5.2 sirv: 1.0.19 - ws: 7.5.10(bufferutil@4.0.7)(utf-8-validate@6.0.3) + ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - utf-8-validate @@ -22755,7 +22575,7 @@ snapshots: workerpool@6.2.1: {} - wrangler@3.57.1(@cloudflare/workers-types@3.19.0)(bufferutil@4.0.7)(utf-8-validate@6.0.3): + wrangler@3.57.1(@cloudflare/workers-types@3.19.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: '@cloudflare/kv-asset-handler': 0.3.2 '@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.17.19) @@ -22763,7 +22583,7 @@ snapshots: blake3-wasm: 2.1.5 chokidar: 3.6.0 esbuild: 0.17.19 - miniflare: 3.20240512.0(bufferutil@4.0.7)(utf-8-validate@6.0.3) + miniflare: 3.20240512.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) nanoid: 3.3.7 path-to-regexp: 6.2.2 resolve: 1.22.8 @@ -22815,56 +22635,51 @@ snapshots: imurmurhash: 0.1.4 signal-exit: 3.0.7 - ws@3.3.3(bufferutil@4.0.7)(utf-8-validate@6.0.3): + ws@3.3.3(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: async-limiter: 1.0.1 safe-buffer: 5.1.2 ultron: 1.1.1 optionalDependencies: - bufferutil: 4.0.7 - utf-8-validate: 6.0.3 + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 - ws@6.2.3(bufferutil@4.0.7)(utf-8-validate@6.0.3): + ws@6.2.3(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: async-limiter: 1.0.1 optionalDependencies: - bufferutil: 4.0.7 - utf-8-validate: 6.0.3 - - ws@7.4.6(bufferutil@4.0.7)(utf-8-validate@6.0.3): - optionalDependencies: - bufferutil: 4.0.7 - utf-8-validate: 6.0.3 + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 - ws@7.5.10(bufferutil@4.0.7)(utf-8-validate@6.0.3): + ws@7.4.6(bufferutil@4.0.8)(utf-8-validate@5.0.10): optionalDependencies: - bufferutil: 4.0.7 - utf-8-validate: 6.0.3 + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 - ws@7.5.9(bufferutil@4.0.7)(utf-8-validate@6.0.3): + ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10): optionalDependencies: - bufferutil: 4.0.7 - utf-8-validate: 6.0.3 + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 - ws@8.11.0(bufferutil@4.0.7)(utf-8-validate@6.0.3): + ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10): optionalDependencies: - bufferutil: 4.0.7 - utf-8-validate: 6.0.3 + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 - ws@8.13.0(bufferutil@4.0.7)(utf-8-validate@6.0.3): + ws@8.11.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): optionalDependencies: - bufferutil: 4.0.7 - utf-8-validate: 6.0.3 + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 - ws@8.17.0(bufferutil@4.0.7)(utf-8-validate@6.0.3): + ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): optionalDependencies: - bufferutil: 4.0.7 - utf-8-validate: 6.0.3 + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 - ws@8.17.1(bufferutil@4.0.7)(utf-8-validate@6.0.3): + ws@8.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10): optionalDependencies: - bufferutil: 4.0.7 - utf-8-validate: 6.0.3 + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 xhr-request-promise@0.1.3: dependencies: @@ -23026,9 +22841,9 @@ snapshots: mustache: 4.2.0 stacktracey: 2.1.8 - zksync-web3@0.14.4(ethers@5.7.2(bufferutil@4.0.7)(utf-8-validate@6.0.3)): + zksync-web3@0.14.4(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)): dependencies: - ethers: 5.7.2(bufferutil@4.0.7)(utf-8-validate@6.0.3) + ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) zod@3.22.4: {} diff --git a/public/locales/en/profile.json b/public/locales/en/profile.json index e1d356bcb..2fe6d014e 100644 --- a/public/locales/en/profile.json +++ b/public/locales/en/profile.json @@ -309,7 +309,15 @@ "unwrappedText": " Wrapping your name gives it new features and functionality, however some functionality on your name will change. Please make sure you understand these changes before wrapping your name.", "wrapName": "Wrap Name", "unwrap": "Unwrap Name", - "unwrapWarning": "This name has revoked the permissions needed for this action." + "unwrapWarning": "This name has revoked the permissions needed for this action.", + "status": { + "unwrapped": "Unwrapped", + "wrapped": "Wrapped" + }, + "pcc": { + "controllable": "Parent-controllable", + "not-controllable": "Not parent-controllable" + } }, "misc": { "registered": "Registered", diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.test.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.test.tsx new file mode 100644 index 000000000..447abb938 --- /dev/null +++ b/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.test.tsx @@ -0,0 +1,57 @@ +import { render, screen } from '@app/test-utils' +import { makeMockUseWrapperDataData } from '@root/test/mock/makeMockUseWrapperDataData.ts' +import { describe, expect, it, vi } from 'vitest' +import { NameWrapper } from './NameWrapper' + + +vi.mock('./Token/WrapButton', () => ({ default: () =>
})) +vi.mock('./Token/UnwrapButton', () => ({ default: () =>
})) + +describe('NameWrapper', () => { + it('should show wrapped status for unwrapped name', () => { + const name = 'nick.eth' + render( + , + ) + expect(screen.getByTestId('namewrapper-status')).toHaveTextContent( + 'tabs.more.token.status.unwrapped', + ) + }) + it('should show wrapped status for wrapped name', () => { + const name = 'nick.eth' + render( + , + ) + expect(screen.getByTestId('namewrapper-status')).toHaveTextContent( + 'tabs.more.token.status.wrapped', + ) + }) + it('should show wrap button if unwrapped', () => { + const name = 'nick.eth' + render() + expect(screen.getByTestId('wrap-button')).toBeVisible() + }) + it('should show unwrap button if wrapped', () => { + const name = 'nick.eth' + render( + , + ) + expect(screen.getByTestId('unwrap-button')).toBeVisible() + }) +}) \ No newline at end of file diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx index 2dce7e070..4631df6e1 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.tsx @@ -5,7 +5,7 @@ import { match, P } from 'ts-pattern' import { Address } from 'viem' import { GetOwnerReturnType, GetWrapperDataReturnType } from '@ensdomains/ensjs/public' -import { AlertSVG, CheckSVG, mq, Typography } from '@ensdomains/thorin' +import { AlertSVG, CheckSVG, LockSVG, mq, Typography } from '@ensdomains/thorin' import { cacheableComponentStyles } from '@app/components/@atoms/CacheableComponent' import { DisabledButtonWithTooltip } from '@app/components/@molecules/DisabledButtonWithTooltip' @@ -22,7 +22,7 @@ type Props = { canBeWrapped: boolean ownerData?: GetOwnerReturnType wrapperData?: GetWrapperDataReturnType - profile: Profile | undefined + profile?: Profile address?: Address } @@ -67,9 +67,13 @@ const Record = styled.div( `, ) -const ParentControlRecord = styled(Record)<{ $isPCCBurned: boolean }>( - ({ theme, $isPCCBurned }) => css` - background: ${$isPCCBurned ? theme.colors.greenSurface : theme.colors.yellowSurface}; +const ParentControlRecord = styled(Record)<{ $isPCCBurned: boolean; $cannotUnwrap: boolean }>( + ({ theme, $isPCCBurned, $cannotUnwrap }) => css` + background: ${$cannotUnwrap + ? theme.colors.greySurface + : $isPCCBurned + ? theme.colors.greenSurface + : theme.colors.yellowSurface}; & > svg { color: ${$isPCCBurned ? theme.colors.green : theme.colors.yellow}; } @@ -111,7 +115,8 @@ export const NameWrapper = ({ const isRegistrant = ownerData?.registrant === address const isOwned = ownerData?.ownershipLevel === 'registrar' ? isRegistrant : isManager - const isButtonDisplayed = isOwned && address + + const isButtonDisplayed = isOwned && !!address const canBeWrapped = _canBeWrapped && !!address && isOwned @@ -141,10 +146,20 @@ export const NameWrapper = ({ <>{t('tabs.more.token.unwrappedText')} ) : ( - {isWrapped ? 'Wrapped' : 'Unwrapped'} - - {isPCCBurned ? 'Not parent-controllable' : 'Parent-controllable'} - {isPCCBurned ? : } + + {isWrapped + ? t('tabs.more.token.status.wrapped') + : t('tabs.more.token.status.unwrapped')} + + + {isPCCBurned + ? t('tabs.more.token.pcc.not-controllable') + : t('tabs.more.token.pcc.controllable')} + {cannotUnwrap ? : isPCCBurned ? : } )} diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/Token/Token.test.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/Token/Token.test.tsx index 9aedeb83b..814488630 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/Token/Token.test.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/Token/Token.test.tsx @@ -8,7 +8,7 @@ import { useContractAddress } from '@app/hooks/chain/useContractAddress' import { useParentBasicName } from '@app/hooks/useParentBasicName' import { useBreakpoint } from '@app/utils/BreakpointProvider' -import { makeMockUseWrapperDataData } from '../../../../../../../../test/mock/makeMockUseWrapperDataData.ts' +import { makeMockUseWrapperDataData } from '@root/test/mock/makeMockUseWrapperDataData.ts' import Token from './Token' vi.mock('@app/hooks/useParentBasicName') @@ -36,66 +36,6 @@ mockUseParentBasicName.mockImplementation(() => { }) describe('Token', () => { - it('should show wrapped status for unwrapped name', () => { - const name = 'nick.eth' - render( - , - ) - expect(screen.getByTestId('name-details-text-tabs.more.token.wrapper')).toHaveTextContent( - 'tabs.more.token.status.unwrapped', - ) - }) - it('should show wrapped status for wrapped name', () => { - const name = 'nick.eth' - render( - , - ) - expect(screen.getByTestId('name-details-text-tabs.more.token.wrapper')).toHaveTextContent( - 'tabs.more.token.status.wrapped', - ) - }) - it('should show wrapped status for emancipated name', () => { - const name = 'nick.eth' - render( - , - ) - expect(screen.getByTestId('name-details-text-tabs.more.token.wrapper')).toHaveTextContent( - 'tabs.more.token.status.emancipated', - ) - }) - it('should show wrapped status for locked name', () => { - const name = 'nick.eth' - render( - , - ) - expect(screen.getByTestId('name-details-text-tabs.more.token.wrapper')).toHaveTextContent( - 'tabs.more.token.status.locked', - ) - }) - it('should show wrap button if unwrapped', () => { - const name = 'nick.eth' - render() - expect(screen.getByTestId('wrap-button')).toBeVisible() - }) - it('should show unwrap button if wrapped', () => { - const name = 'nick.eth' - render( - , - ) - expect(screen.getByTestId('unwrap-button')).toBeVisible() - }) describe('tokenids', () => { it('should not show tokenid section for unwrapped non .eth 2ld', () => { const name = 'sub.nick.eth' From 9d3a01dead74547a338da648c573ee2f9eabe65b Mon Sep 17 00:00:00 2001 From: v1rtl Date: Sat, 24 Aug 2024 03:31:02 +0300 Subject: [PATCH 14/38] fmt --- .../[name]/tabs/MoreTab/NameWrapper.test.tsx | 34 ++++++++++++------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.test.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.test.tsx index 447abb938..db1115d01 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.test.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/NameWrapper.test.tsx @@ -1,8 +1,9 @@ import { render, screen } from '@app/test-utils' + import { makeMockUseWrapperDataData } from '@root/test/mock/makeMockUseWrapperDataData.ts' import { describe, expect, it, vi } from 'vitest' -import { NameWrapper } from './NameWrapper' +import { NameWrapper } from './NameWrapper' vi.mock('./Token/WrapButton', () => ({ default: () =>
})) vi.mock('./Token/UnwrapButton', () => ({ default: () =>
})) @@ -11,7 +12,9 @@ describe('NameWrapper', () => { it('should show wrapped status for unwrapped name', () => { const name = 'nick.eth' render( - , + , ) expect(screen.getByTestId('namewrapper-status')).toHaveTextContent( 'tabs.more.token.status.unwrapped', @@ -22,8 +25,8 @@ describe('NameWrapper', () => { render( , ) @@ -33,25 +36,30 @@ describe('NameWrapper', () => { }) it('should show wrap button if unwrapped', () => { const name = 'nick.eth' - render() + render( + , + ) expect(screen.getByTestId('wrap-button')).toBeVisible() }) it('should show unwrap button if wrapped', () => { const name = 'nick.eth' render( , ) expect(screen.getByTestId('unwrap-button')).toBeVisible() }) -}) \ No newline at end of file +}) From 347f5b37dac927cd505737a3c1e60fa9c6106a9a Mon Sep 17 00:00:00 2001 From: v1rtl Date: Sat, 24 Aug 2024 13:59:00 +0300 Subject: [PATCH 15/38] stop ens-contracts from failing --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 22132ac8c..d3c3c7fe3 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "dependencies": { "@ensdomains/address-encoder": "1.1.1", "@ensdomains/content-hash": "^3.0.0-beta.5", - "@ensdomains/ens-contracts": "1.2.0", + "@ensdomains/ens-contracts": "1.2.2", "@ensdomains/ensjs": "4.0.0", "@ensdomains/thorin": "0.6.50", "@metamask/mobile-provider": "^2.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 91a3f182d..c77ca632b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -33,8 +33,8 @@ importers: specifier: ^3.0.0-beta.5 version: 3.0.0 '@ensdomains/ens-contracts': - specifier: 1.2.0 - version: 1.2.0 + specifier: 1.2.2 + version: 1.2.2 '@ensdomains/ensjs': specifier: 4.0.0 version: 4.0.0(encoding@0.1.13)(typescript@5.4.5)(viem@2.19.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) @@ -1559,8 +1559,8 @@ packages: resolution: {integrity: sha512-nfm4ggpK5YBVwVwLZKF9WPjRGRTL9aUxX2O4pqv/AnQCz3WeGHsW7VhVFLj2s4EoWSzCXwR1E6nuqgUwnH692w==} engines: {node: '>=16.8'} - '@ensdomains/ens-contracts@1.2.0': - resolution: {integrity: sha512-AbTepyKcBDOOHMajdYxfWHq7bjk+k5GfZPQy433Qng46DVd/4JSodu7psv5XTg8mPSEgtTcUfK+Q8DC+mbXRZw==} + '@ensdomains/ens-contracts@1.2.2': + resolution: {integrity: sha512-fX2rvqKJRpW+Dxnq91zhG39pRTC03gOamz7RvSEMHFPCUN7phcthq5u4+5tsEIXS6g7Xp5xmC5XTgcxK5Rd4HQ==} '@ensdomains/ens-test-env@0.5.0-beta.1': resolution: {integrity: sha512-ppHKJTRQ5vlWSAflv20cNtlhpLyjn375VD9FeeUgl8BTx3IMPwlLvupGQTK2chDln/FJRyp6+wD41uI4oorM9w==} @@ -11724,7 +11724,7 @@ snapshots: dns-packet: 5.6.1 typescript-logging: 1.0.1 - '@ensdomains/ens-contracts@1.2.0': + '@ensdomains/ens-contracts@1.2.2': dependencies: '@ensdomains/buffer': 0.1.1 '@ensdomains/solsha1': 0.0.3 From e743c3629785ee94f506eefbef721eeaf43b635d Mon Sep 17 00:00:00 2001 From: v1rtl Date: Mon, 26 Aug 2024 18:38:27 +0300 Subject: [PATCH 16/38] revert bumping ens-contrracts --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index d3c3c7fe3..abb55d391 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "dependencies": { "@ensdomains/address-encoder": "1.1.1", "@ensdomains/content-hash": "^3.0.0-beta.5", - "@ensdomains/ens-contracts": "1.2.2", + "@ensdomains/ens-contracts": "1.2.0-beta.0", "@ensdomains/ensjs": "4.0.0", "@ensdomains/thorin": "0.6.50", "@metamask/mobile-provider": "^2.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c77ca632b..569b8235f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -33,8 +33,8 @@ importers: specifier: ^3.0.0-beta.5 version: 3.0.0 '@ensdomains/ens-contracts': - specifier: 1.2.2 - version: 1.2.2 + specifier: 1.2.0-beta.0 + version: 1.2.0-beta.0 '@ensdomains/ensjs': specifier: 4.0.0 version: 4.0.0(encoding@0.1.13)(typescript@5.4.5)(viem@2.19.4(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) @@ -1559,8 +1559,8 @@ packages: resolution: {integrity: sha512-nfm4ggpK5YBVwVwLZKF9WPjRGRTL9aUxX2O4pqv/AnQCz3WeGHsW7VhVFLj2s4EoWSzCXwR1E6nuqgUwnH692w==} engines: {node: '>=16.8'} - '@ensdomains/ens-contracts@1.2.2': - resolution: {integrity: sha512-fX2rvqKJRpW+Dxnq91zhG39pRTC03gOamz7RvSEMHFPCUN7phcthq5u4+5tsEIXS6g7Xp5xmC5XTgcxK5Rd4HQ==} + '@ensdomains/ens-contracts@1.2.0-beta.0': + resolution: {integrity: sha512-mb/1cPtwhShyaP6fWqDix6GfrJwVWlKgCFxzDKmqNGeFQhBOD/ojYGsy96eJ9UlM/7Tsg7w4RAj7xWrOlHtYIA==} '@ensdomains/ens-test-env@0.5.0-beta.1': resolution: {integrity: sha512-ppHKJTRQ5vlWSAflv20cNtlhpLyjn375VD9FeeUgl8BTx3IMPwlLvupGQTK2chDln/FJRyp6+wD41uI4oorM9w==} @@ -11724,7 +11724,7 @@ snapshots: dns-packet: 5.6.1 typescript-logging: 1.0.1 - '@ensdomains/ens-contracts@1.2.2': + '@ensdomains/ens-contracts@1.2.0-beta.0': dependencies: '@ensdomains/buffer': 0.1.1 '@ensdomains/solsha1': 0.0.3 From fe13da417362ad36198dcfc4cc4cc4ff4fe1587c Mon Sep 17 00:00:00 2001 From: v1rtl Date: Mon, 26 Aug 2024 19:00:28 +0300 Subject: [PATCH 17/38] fix e2e --- e2e/specs/stateless/wrapName.spec.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/e2e/specs/stateless/wrapName.spec.ts b/e2e/specs/stateless/wrapName.spec.ts index 44a64ac7a..bf4863f0a 100644 --- a/e2e/specs/stateless/wrapName.spec.ts +++ b/e2e/specs/stateless/wrapName.spec.ts @@ -255,7 +255,7 @@ test('should calculate needed steps without localstorage', async ({ await login.connect() await page.pause() - await expect(page.getByTestId('name-details-text-wrapper')).toContainText('unwrapped') + await expect(page.getByTestId('namewrapper-status')).toContainText('Unwrapped') await morePage.wrapButton.click() await page.pause() @@ -291,7 +291,7 @@ test('should calculate needed steps without localstorage', async ({ await transactionModal.introButton.click() await transactionModal.confirm() await transactionModal.complete() - await expect(page.getByTestId('name-details-text-wrapper')).not.toContainText('unwrapped') + await expect(page.getByTestId('')).not.toContainText('Unwrapped') await profilePage.goto(subname) await expect(profilePage.record('text', 'description')).toHaveText('test') From 1ed4ff677878fd134965de73d6f4a90a9ded356b Mon Sep 17 00:00:00 2001 From: v1rtl Date: Mon, 26 Aug 2024 19:02:03 +0300 Subject: [PATCH 18/38] oops --- e2e/specs/stateless/wrapName.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e/specs/stateless/wrapName.spec.ts b/e2e/specs/stateless/wrapName.spec.ts index bf4863f0a..adacb8972 100644 --- a/e2e/specs/stateless/wrapName.spec.ts +++ b/e2e/specs/stateless/wrapName.spec.ts @@ -291,7 +291,7 @@ test('should calculate needed steps without localstorage', async ({ await transactionModal.introButton.click() await transactionModal.confirm() await transactionModal.complete() - await expect(page.getByTestId('')).not.toContainText('Unwrapped') + await expect(page.getByTestId('namewrapper-status')).not.toContainText('Unwrapped') await profilePage.goto(subname) await expect(profilePage.record('text', 'description')).toHaveText('test') From 391563041c8344d3609f4b68e49f9e378a78fa85 Mon Sep 17 00:00:00 2001 From: storywithoutend Date: Wed, 4 Sep 2024 16:46:30 +0800 Subject: [PATCH 19/38] make registration calendar month short --- src/components/@atoms/Calendar/Calendar.tsx | 7 ++++++- src/utils/utils.test.ts | 12 ++++++++++++ src/utils/utils.ts | 4 ++-- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/components/@atoms/Calendar/Calendar.tsx b/src/components/@atoms/Calendar/Calendar.tsx index 3605244ab..c682ec494 100644 --- a/src/components/@atoms/Calendar/Calendar.tsx +++ b/src/components/@atoms/Calendar/Calendar.tsx @@ -3,6 +3,7 @@ import styled, { css } from 'styled-components' import CalendarSVG from '@app/assets/Calendar.svg' import { useDefaultRef } from '@app/hooks/useDefaultRef' +import { useBreakpoint } from '@app/utils/BreakpointProvider' import { secondsToDate, secondsToDateInput } from '@app/utils/date' import { formatExpiry } from '@app/utils/utils' @@ -78,6 +79,8 @@ export const Calendar = forwardRef( ) => { const inputRef = useDefaultRef(ref) + const breakpoint = useBreakpoint() + return (