From bc8db70fe3dcd2f45e3694229b9e6a89e0a33026 Mon Sep 17 00:00:00 2001 From: Zishan Mohd Date: Fri, 31 Oct 2025 20:01:58 +0530 Subject: [PATCH 01/14] feat: initial page --- .../profile/identity-verification/page.tsx | 4 +- src/assets/icons/europe-globe.svg | 19 +++++ src/assets/icons/index.ts | 4 + src/assets/icons/latam-globe.svg | 17 ++++ src/assets/icons/north-america-globe.svg | 33 ++++++++ src/assets/icons/rest-of-world-globe.svg | 14 ++++ src/components/ActionListCard/index.tsx | 4 +- src/components/Profile/index.tsx | 2 +- .../views/RegionsVerification.view.tsx | 66 ++++++++++++++++ src/hooks/useIdentityVerification.tsx | 79 +++++++++++++++++++ 10 files changed, 239 insertions(+), 3 deletions(-) create mode 100644 src/assets/icons/europe-globe.svg create mode 100644 src/assets/icons/latam-globe.svg create mode 100644 src/assets/icons/north-america-globe.svg create mode 100644 src/assets/icons/rest-of-world-globe.svg create mode 100644 src/components/Profile/views/RegionsVerification.view.tsx create mode 100644 src/hooks/useIdentityVerification.tsx diff --git a/src/app/(mobile-ui)/profile/identity-verification/page.tsx b/src/app/(mobile-ui)/profile/identity-verification/page.tsx index 904794567..60fce450b 100644 --- a/src/app/(mobile-ui)/profile/identity-verification/page.tsx +++ b/src/app/(mobile-ui)/profile/identity-verification/page.tsx @@ -1,10 +1,12 @@ import PageContainer from '@/components/0_Bruddle/PageContainer' import IdentityVerificationView from '@/components/Profile/views/IdentityVerification.view' +import RegionsVerification from '@/components/Profile/views/RegionsVerification.view' export default function IdentityVerificationPage() { return ( - + {/* */} + ) } diff --git a/src/assets/icons/europe-globe.svg b/src/assets/icons/europe-globe.svg new file mode 100644 index 000000000..dc035219e --- /dev/null +++ b/src/assets/icons/europe-globe.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/icons/index.ts b/src/assets/icons/index.ts index 613f6a642..44e588767 100644 --- a/src/assets/icons/index.ts +++ b/src/assets/icons/index.ts @@ -23,3 +23,7 @@ export { default as IMESSAGE_ICON } from './imessage.svg' export { default as FBMessenger_ICON } from './fbmessenger.svg' export { default as SOCIALS_ICON } from './socials.svg' export { default as COIN_ICON } from './coin.svg' +export { default as EUROPE_GLOBE_ICON } from './europe-globe.svg' +export { default as NORTH_AMERICA_GLOBE_ICON } from './north-america-globe.svg' +export { default as LATAM_GLOBE_ICON } from './latam-globe.svg' +export { default as REST_OF_WORLD_GLOBE_ICON } from './rest-of-world-globe.svg' \ No newline at end of file diff --git a/src/assets/icons/latam-globe.svg b/src/assets/icons/latam-globe.svg new file mode 100644 index 000000000..349180f96 --- /dev/null +++ b/src/assets/icons/latam-globe.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/assets/icons/north-america-globe.svg b/src/assets/icons/north-america-globe.svg new file mode 100644 index 000000000..e93a549ef --- /dev/null +++ b/src/assets/icons/north-america-globe.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/icons/rest-of-world-globe.svg b/src/assets/icons/rest-of-world-globe.svg new file mode 100644 index 000000000..47cef39cb --- /dev/null +++ b/src/assets/icons/rest-of-world-globe.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/components/ActionListCard/index.tsx b/src/components/ActionListCard/index.tsx index d738fb71b..b7eb1fce6 100644 --- a/src/components/ActionListCard/index.tsx +++ b/src/components/ActionListCard/index.tsx @@ -14,6 +14,7 @@ interface ActionListCardProps { rightContent?: React.ReactNode isDisabled?: boolean descriptionClassName?: string + titleClassName?: string } export const ActionListCard = ({ @@ -26,6 +27,7 @@ export const ActionListCard = ({ rightContent, isDisabled = false, descriptionClassName, + titleClassName, }: ActionListCardProps) => { const handleCardClick = () => { onClick() @@ -45,7 +47,7 @@ export const ActionListCard = ({
{leftIcon}
-
{title}
+
{title}
{description && (
{description}
)} diff --git a/src/components/Profile/index.tsx b/src/components/Profile/index.tsx index cd5d63d8e..d7be613bc 100644 --- a/src/components/Profile/index.tsx +++ b/src/components/Profile/index.tsx @@ -75,7 +75,7 @@ export const Profile = () => { { setShowInitiateKycModal(true) diff --git a/src/components/Profile/views/RegionsVerification.view.tsx b/src/components/Profile/views/RegionsVerification.view.tsx new file mode 100644 index 000000000..fb6a99def --- /dev/null +++ b/src/components/Profile/views/RegionsVerification.view.tsx @@ -0,0 +1,66 @@ +'use client' + +import { ActionListCard } from '@/components/ActionListCard' +import { getCardPosition } from '@/components/Global/Card' +import { Icon } from '@/components/Global/Icons/Icon' +import NavHeader from '@/components/Global/NavHeader' +import { useIdentityVerification, type Region } from '@/hooks/useIdentityVerification' +import Image from 'next/image' +import { useRouter } from 'next/navigation' +import React from 'react' + +const RegionsVerification = () => { + const router = useRouter() + const { unlockedRegions, lockedRegions } = useIdentityVerification() + + return ( +
+ router.replace('/profile')} /> +
+

Unlocked regions

+

+ Transfer to and receive from any bank account and use supported payments methods. +

+ + + +

Locked regions

+

Where do you want to send and receive money?

+ + +
+
+ ) +} + +export default RegionsVerification + +interface RegionsListProps { + regions: Region[] + isLocked: boolean +} +const RegionsList = ({ regions, isLocked }: RegionsListProps) => { + return ( +
+ {regions.map((region, index) => ( + + } + position={getCardPosition(index, regions.length)} + title={region.name} + onClick={() => {}} + description={region.description} + descriptionClassName="text-xs" + rightContent={!isLocked ? : null} + /> + ))} +
+ ) +} diff --git a/src/hooks/useIdentityVerification.tsx b/src/hooks/useIdentityVerification.tsx new file mode 100644 index 000000000..27c96f539 --- /dev/null +++ b/src/hooks/useIdentityVerification.tsx @@ -0,0 +1,79 @@ +import { EUROPE_GLOBE_ICON, LATAM_GLOBE_ICON, NORTH_AMERICA_GLOBE_ICON, REST_OF_WORLD_GLOBE_ICON } from '@/assets' +import type { StaticImageData } from 'next/image' +import useKycStatus from './useKycStatus' +import { useMemo } from 'react' + +export type Region = { + name: string + icon: StaticImageData | string + description?: string +} + +const MANTECA_SUPPORTED_REGIONS = ['LATAM'] +const BRIDGE_SUPPORTED_REGIONS = ['North America', 'Europe'] + +const SUPPORTED_REGIONS: Region[] = [ + { + name: 'Europe', + icon: EUROPE_GLOBE_ICON, + }, + { + name: 'North America', + icon: NORTH_AMERICA_GLOBE_ICON, + }, + { + name: 'LATAM', + icon: LATAM_GLOBE_ICON, + }, + { + name: 'Rest of the world', + icon: REST_OF_WORLD_GLOBE_ICON, + }, +] + +const MANTECA_QR_ONLY_REGIONS: Region[] = [ + { + name: 'Argentina', + icon: 'https://flagcdn.com/w160/ar.png', + description: 'Only Mercado Pago QR payments', + }, + { + name: 'Brazil', + icon: 'https://flagcdn.com/w160/br.png', + description: 'Only PIX QR payments', + }, +] + +export const useIdentityVerification = () => { + const { isUserBridgeKycApproved, isUserMantecaKycApproved } = useKycStatus() + + const { lockedRegions, unlockedRegions } = useMemo(() => { + const isBridgeApproved = isUserBridgeKycApproved + const isMantecaApproved = isUserMantecaKycApproved + + const isRegionUnlocked = (regionName: string) => { + return ( + (isBridgeApproved && BRIDGE_SUPPORTED_REGIONS.includes(regionName)) || + (isMantecaApproved && MANTECA_SUPPORTED_REGIONS.includes(regionName)) + ) + } + + const unlocked = SUPPORTED_REGIONS.filter((region) => isRegionUnlocked(region.name)) + const locked = SUPPORTED_REGIONS.filter((region) => !isRegionUnlocked(region.name)) + + // If user has completed Bridge KYC but not Manteca, they can do QR payments in Argentina and Brazil + if (isBridgeApproved && !isMantecaApproved) { + unlocked.push(...MANTECA_QR_ONLY_REGIONS) + } + + return { + lockedRegions: locked, + unlockedRegions: unlocked, + } + }, [isUserBridgeKycApproved, isUserMantecaKycApproved]) + + return { + lockedRegions, + unlockedRegions, + } +} From 631baf6745126b71effdcd238c8c56ef2343b989 Mon Sep 17 00:00:00 2001 From: Zishan Mohd Date: Mon, 3 Nov 2025 19:46:07 +0530 Subject: [PATCH 02/14] feat: update flow --- .../[region]/[country]/page.tsx | 11 + .../identity-verification/[region]/page.tsx | 15 ++ src/components/AddMoney/consts/index.ts | 245 ++++++++++++++++++ src/components/Common/CountryList.tsx | 4 + .../StartVerificationModal.tsx | 145 +++++++++++ .../IdentityVerificationCountryList.tsx | 125 +++++++++ .../views/IdentityVerification.view.tsx | 80 ++++-- .../Profile/views/RegionsPage.view.tsx | 43 +++ .../views/RegionsVerification.view.tsx | 7 +- src/hooks/useIdentityVerification.tsx | 7 + src/utils/identityVerification.tsx | 22 ++ 11 files changed, 681 insertions(+), 23 deletions(-) create mode 100644 src/app/(mobile-ui)/profile/identity-verification/[region]/[country]/page.tsx create mode 100644 src/app/(mobile-ui)/profile/identity-verification/[region]/page.tsx create mode 100644 src/components/IdentityVerification/StartVerificationModal.tsx create mode 100644 src/components/Profile/components/IdentityVerificationCountryList.tsx create mode 100644 src/components/Profile/views/RegionsPage.view.tsx create mode 100644 src/utils/identityVerification.tsx diff --git a/src/app/(mobile-ui)/profile/identity-verification/[region]/[country]/page.tsx b/src/app/(mobile-ui)/profile/identity-verification/[region]/[country]/page.tsx new file mode 100644 index 000000000..9f960286c --- /dev/null +++ b/src/app/(mobile-ui)/profile/identity-verification/[region]/[country]/page.tsx @@ -0,0 +1,11 @@ +'use client' +import PageContainer from '@/components/0_Bruddle/PageContainer' +import IdentityVerificationView from '@/components/Profile/views/IdentityVerification.view' + +export default function IdentityVerificationCountryPage() { + return ( + + + + ) +} diff --git a/src/app/(mobile-ui)/profile/identity-verification/[region]/page.tsx b/src/app/(mobile-ui)/profile/identity-verification/[region]/page.tsx new file mode 100644 index 000000000..06418517e --- /dev/null +++ b/src/app/(mobile-ui)/profile/identity-verification/[region]/page.tsx @@ -0,0 +1,15 @@ +'use client' +import PageContainer from '@/components/0_Bruddle/PageContainer' +import RegionsPage from '@/components/Profile/views/RegionsPage.view' +import { useParams } from 'next/navigation' + +export default function IdentityVerificationRegionPage() { + const params = useParams() + const region = params.region as string + + return ( + + + + ) +} diff --git a/src/components/AddMoney/consts/index.ts b/src/components/AddMoney/consts/index.ts index 13a17a8ab..0cdec4bb0 100644 --- a/src/components/AddMoney/consts/index.ts +++ b/src/components/AddMoney/consts/index.ts @@ -161,6 +161,7 @@ export interface CountryData { path: string iso2?: string iso3?: string + region?: 'europe' | 'north-america' | 'latam' | 'rest-of-the-world' } export interface DepositMethods extends CountryData { @@ -304,6 +305,7 @@ export const countryData: CountryData[] = [ path: 'andorra', iso2: 'AD', iso3: 'AND', + region: 'europe', }, { id: 'AE', @@ -313,6 +315,7 @@ export const countryData: CountryData[] = [ path: 'united-arab-emirates', iso2: 'AE', iso3: 'ARE', + region: 'rest-of-the-world', }, { id: 'AG', @@ -322,6 +325,7 @@ export const countryData: CountryData[] = [ path: 'antigua-and-barbuda', iso2: 'AG', iso3: 'ATG', + region: 'north-america', }, { id: 'AI', @@ -331,6 +335,7 @@ export const countryData: CountryData[] = [ path: 'anguilla', iso2: 'AI', iso3: 'AIA', + region: 'north-america', }, { id: 'AL', @@ -340,6 +345,7 @@ export const countryData: CountryData[] = [ path: 'albania', iso2: 'AL', iso3: 'ALB', + region: 'europe', }, { id: 'AM', @@ -349,6 +355,7 @@ export const countryData: CountryData[] = [ path: 'armenia', iso2: 'AM', iso3: 'ARM', + region: 'rest-of-the-world', }, { id: 'AO', @@ -358,6 +365,7 @@ export const countryData: CountryData[] = [ path: 'angola', iso2: 'AO', iso3: 'AGO', + region: 'rest-of-the-world', }, { id: 'AQ', @@ -367,6 +375,7 @@ export const countryData: CountryData[] = [ path: 'antarctica', iso2: 'AQ', iso3: 'ATA', + region: 'rest-of-the-world', }, { id: 'AR', @@ -376,6 +385,7 @@ export const countryData: CountryData[] = [ path: 'argentina', iso2: 'AR', iso3: 'ARG', + region: 'latam', }, { id: 'AS', @@ -385,6 +395,7 @@ export const countryData: CountryData[] = [ path: 'american-samoa', iso2: 'AS', iso3: 'ASM', + region: 'rest-of-the-world', }, { id: 'AUT', @@ -394,6 +405,7 @@ export const countryData: CountryData[] = [ path: 'austria', iso2: 'AT', iso3: 'AUT', + region: 'europe', }, { id: 'AU', @@ -403,6 +415,7 @@ export const countryData: CountryData[] = [ path: 'australia', iso2: 'AU', iso3: 'AUS', + region: 'rest-of-the-world', }, { id: 'AW', @@ -412,6 +425,7 @@ export const countryData: CountryData[] = [ path: 'aruba', iso2: 'AW', iso3: 'ABW', + region: 'north-america', }, { id: 'ALA', @@ -421,6 +435,7 @@ export const countryData: CountryData[] = [ path: 'aland', iso2: 'AX', iso3: 'ALA', + region: 'europe', }, { id: 'AZ', @@ -430,6 +445,7 @@ export const countryData: CountryData[] = [ path: 'azerbaijan', iso2: 'AZ', iso3: 'AZE', + region: 'rest-of-the-world', }, { id: 'BA', @@ -439,6 +455,7 @@ export const countryData: CountryData[] = [ path: 'bosnia-and-herzegovina', iso2: 'BA', iso3: 'BIH', + region: 'europe', }, { id: 'BB', @@ -448,6 +465,7 @@ export const countryData: CountryData[] = [ path: 'barbados', iso2: 'BB', iso3: 'BRB', + region: 'north-america', }, { id: 'BD', @@ -457,6 +475,7 @@ export const countryData: CountryData[] = [ path: 'bangladesh', iso2: 'BD', iso3: 'BGD', + region: 'rest-of-the-world', }, { id: 'BEL', @@ -466,6 +485,7 @@ export const countryData: CountryData[] = [ path: 'belgium', iso2: 'BE', iso3: 'BEL', + region: 'europe', }, { id: 'BF', @@ -475,6 +495,7 @@ export const countryData: CountryData[] = [ path: 'burkina-faso', iso2: 'BF', iso3: 'BFA', + region: 'rest-of-the-world', }, { id: 'BGR', @@ -484,6 +505,7 @@ export const countryData: CountryData[] = [ path: 'bulgaria', iso2: 'BG', iso3: 'BGR', + region: 'europe', }, { id: 'BH', @@ -493,6 +515,7 @@ export const countryData: CountryData[] = [ path: 'bahrain', iso2: 'BH', iso3: 'BHR', + region: 'rest-of-the-world', }, { id: 'BI', @@ -502,6 +525,7 @@ export const countryData: CountryData[] = [ path: 'burundi', iso2: 'BI', iso3: 'BDI', + region: 'rest-of-the-world', }, { id: 'BJ', @@ -511,6 +535,7 @@ export const countryData: CountryData[] = [ path: 'benin', iso2: 'BJ', iso3: 'BEN', + region: 'rest-of-the-world', }, { id: 'BL', @@ -520,6 +545,7 @@ export const countryData: CountryData[] = [ path: 'saint-barthélemy', iso2: 'BL', iso3: 'BLM', + region: 'europe', }, { id: 'BM', @@ -529,6 +555,7 @@ export const countryData: CountryData[] = [ path: 'bermuda', iso2: 'BM', iso3: 'BMU', + region: 'north-america', }, { id: 'BN', @@ -538,6 +565,7 @@ export const countryData: CountryData[] = [ path: 'brunei', iso2: 'BN', iso3: 'BRN', + region: 'rest-of-the-world', }, { id: 'BO', @@ -547,6 +575,7 @@ export const countryData: CountryData[] = [ path: 'bolivia', iso2: 'BO', iso3: 'BOL', + region: 'latam', }, { id: 'BQ', @@ -556,6 +585,7 @@ export const countryData: CountryData[] = [ path: 'bonaire', iso2: 'BQ', iso3: 'BES', + region: 'north-america', }, { id: 'BR', @@ -565,6 +595,7 @@ export const countryData: CountryData[] = [ path: 'brazil', iso2: 'BR', iso3: 'BRA', + region: 'latam', }, { id: 'BS', @@ -574,6 +605,7 @@ export const countryData: CountryData[] = [ path: 'bahamas', iso2: 'BS', iso3: 'BHS', + region: 'north-america', }, { id: 'BT', @@ -583,6 +615,7 @@ export const countryData: CountryData[] = [ path: 'bhutan', iso2: 'BT', iso3: 'BTN', + region: 'rest-of-the-world', }, { id: 'BV', @@ -592,6 +625,7 @@ export const countryData: CountryData[] = [ path: 'bouvet-island', iso2: 'BV', iso3: 'BVT', + region: 'rest-of-the-world', }, { id: 'BW', @@ -601,6 +635,7 @@ export const countryData: CountryData[] = [ path: 'botswana', iso2: 'BW', iso3: 'BWA', + region: 'rest-of-the-world', }, { id: 'BZ', @@ -610,6 +645,7 @@ export const countryData: CountryData[] = [ path: 'belize', iso2: 'BZ', iso3: 'BLZ', + region: 'latam', }, { id: 'CA', @@ -619,6 +655,7 @@ export const countryData: CountryData[] = [ path: 'canada', iso2: 'CA', iso3: 'CAN', + region: 'north-america', }, { id: 'CC', @@ -628,6 +665,7 @@ export const countryData: CountryData[] = [ path: 'cocos-keeling-islands', iso2: 'CC', iso3: 'CCK', + region: 'rest-of-the-world', }, { id: 'CD', @@ -637,6 +675,7 @@ export const countryData: CountryData[] = [ path: 'democratic-republic-of-the-congo', iso2: 'CD', iso3: 'COD', + region: 'rest-of-the-world', }, { id: 'CF', @@ -646,6 +685,7 @@ export const countryData: CountryData[] = [ path: 'central-african-republic', iso2: 'CF', iso3: 'CAF', + region: 'rest-of-the-world', }, { id: 'CG', @@ -655,6 +695,7 @@ export const countryData: CountryData[] = [ path: 'republic-of-the-congo', iso2: 'CG', iso3: 'COG', + region: 'rest-of-the-world', }, { id: 'CHE', @@ -664,6 +705,7 @@ export const countryData: CountryData[] = [ path: 'switzerland', iso2: 'CH', iso3: 'CHE', + region: 'europe', }, { id: 'CI', @@ -673,6 +715,7 @@ export const countryData: CountryData[] = [ path: 'ivory-coast', iso2: 'CI', iso3: 'CIV', + region: 'rest-of-the-world', }, { id: 'CK', @@ -682,6 +725,7 @@ export const countryData: CountryData[] = [ path: 'cook-islands', iso2: 'CK', iso3: 'COK', + region: 'rest-of-the-world', }, { id: 'CL', @@ -691,6 +735,7 @@ export const countryData: CountryData[] = [ path: 'chile', iso2: 'CL', iso3: 'CHL', + region: 'latam', }, { id: 'CM', @@ -700,6 +745,7 @@ export const countryData: CountryData[] = [ path: 'cameroon', iso2: 'CM', iso3: 'CMR', + region: 'rest-of-the-world', }, { id: 'CN', @@ -709,6 +755,7 @@ export const countryData: CountryData[] = [ path: 'china', iso2: 'CN', iso3: 'CHN', + region: 'rest-of-the-world', }, { id: 'CO', @@ -718,6 +765,7 @@ export const countryData: CountryData[] = [ path: 'colombia', iso2: 'CO', iso3: 'COL', + region: 'latam', }, { id: 'CR', @@ -727,6 +775,7 @@ export const countryData: CountryData[] = [ path: 'costa-rica', iso2: 'CR', iso3: 'CRI', + region: 'latam', }, { id: 'CV', @@ -736,6 +785,7 @@ export const countryData: CountryData[] = [ path: 'cape-verde', iso2: 'CV', iso3: 'CPV', + region: 'rest-of-the-world', }, { id: 'CW', @@ -745,6 +795,7 @@ export const countryData: CountryData[] = [ path: 'curacao', iso2: 'CW', iso3: 'CUW', + region: 'north-america', }, { id: 'CX', @@ -754,6 +805,7 @@ export const countryData: CountryData[] = [ path: 'christmas-island', iso2: 'CX', iso3: 'CXR', + region: 'rest-of-the-world', }, { id: 'CYP', @@ -763,6 +815,7 @@ export const countryData: CountryData[] = [ path: 'cyprus', iso2: 'CY', iso3: 'CYP', + region: 'europe', }, { id: 'CZE', @@ -772,6 +825,7 @@ export const countryData: CountryData[] = [ path: 'czechia', iso2: 'CZ', iso3: 'CZE', + region: 'europe', }, { id: 'DEU', @@ -781,6 +835,7 @@ export const countryData: CountryData[] = [ path: 'germany', iso2: 'DE', iso3: 'DEU', + region: 'europe', }, { id: 'DJ', @@ -790,6 +845,7 @@ export const countryData: CountryData[] = [ path: 'djibouti', iso2: 'DJ', iso3: 'DJI', + region: 'rest-of-the-world', }, { id: 'DNK', @@ -799,6 +855,7 @@ export const countryData: CountryData[] = [ path: 'denmark', iso2: 'DK', iso3: 'DNK', + region: 'europe', }, { id: 'DM', @@ -808,6 +865,7 @@ export const countryData: CountryData[] = [ path: 'dominica', iso2: 'DM', iso3: 'DMA', + region: 'latam', }, { id: 'DO', @@ -817,6 +875,7 @@ export const countryData: CountryData[] = [ path: 'dominican-republic', iso2: 'DO', iso3: 'DOM', + region: 'latam', }, { id: 'DZ', @@ -826,6 +885,7 @@ export const countryData: CountryData[] = [ path: 'algeria', iso2: 'DZ', iso3: 'DZA', + region: 'rest-of-the-world', }, { id: 'EC', @@ -835,6 +895,7 @@ export const countryData: CountryData[] = [ path: 'ecuador', iso2: 'EC', iso3: 'ECU', + region: 'latam', }, { id: 'EST', @@ -844,6 +905,7 @@ export const countryData: CountryData[] = [ path: 'estonia', iso2: 'EE', iso3: 'EST', + region: 'europe', }, { id: 'EG', @@ -853,6 +915,7 @@ export const countryData: CountryData[] = [ path: 'egypt', iso2: 'EG', iso3: 'EGY', + region: 'rest-of-the-world', }, { id: 'EH', @@ -862,6 +925,7 @@ export const countryData: CountryData[] = [ path: 'western-sahara', iso2: 'EH', iso3: 'ESH', + region: 'rest-of-the-world', }, { id: 'ER', @@ -871,6 +935,7 @@ export const countryData: CountryData[] = [ path: 'eritrea', iso2: 'ER', iso3: 'ERI', + region: 'rest-of-the-world', }, { id: 'ESP', @@ -880,6 +945,7 @@ export const countryData: CountryData[] = [ path: 'spain', iso2: 'ES', iso3: 'ESP', + region: 'europe', }, { id: 'ET', @@ -889,6 +955,7 @@ export const countryData: CountryData[] = [ path: 'ethiopia', iso2: 'ET', iso3: 'ETH', + region: 'rest-of-the-world', }, { id: 'FIN', @@ -898,6 +965,7 @@ export const countryData: CountryData[] = [ path: 'finland', iso2: 'FI', iso3: 'FIN', + region: 'europe', }, { id: 'FJ', @@ -907,6 +975,7 @@ export const countryData: CountryData[] = [ path: 'fiji', iso2: 'FJ', iso3: 'FJI', + region: 'rest-of-the-world', }, { id: 'FK', @@ -916,6 +985,7 @@ export const countryData: CountryData[] = [ path: 'falkland-islands', iso2: 'FK', iso3: 'FLK', + region: 'latam', }, { id: 'FM', @@ -925,6 +995,7 @@ export const countryData: CountryData[] = [ path: 'micronesia', iso2: 'FM', iso3: 'FSM', + region: 'rest-of-the-world', }, { id: 'FO', @@ -934,6 +1005,7 @@ export const countryData: CountryData[] = [ path: 'faroe-islands', iso2: 'FO', iso3: 'FRO', + region: 'europe', }, { id: 'FRA', @@ -943,6 +1015,7 @@ export const countryData: CountryData[] = [ path: 'france', iso2: 'FR', iso3: 'FRA', + region: 'europe', }, { id: 'GA', @@ -952,6 +1025,7 @@ export const countryData: CountryData[] = [ path: 'gabon', iso2: 'GA', iso3: 'GAB', + region: 'rest-of-the-world', }, { id: 'GBR', @@ -961,6 +1035,7 @@ export const countryData: CountryData[] = [ path: 'united-kingdom', iso2: 'GB', iso3: 'GBR', + region: 'europe', }, { id: 'GD', @@ -970,6 +1045,7 @@ export const countryData: CountryData[] = [ path: 'grenada', iso2: 'GD', iso3: 'GRD', + region: 'latam', }, { id: 'GE', @@ -979,6 +1055,7 @@ export const countryData: CountryData[] = [ path: 'georgia', iso2: 'GE', iso3: 'GEO', + region: 'europe', }, { id: 'GUF', @@ -988,6 +1065,7 @@ export const countryData: CountryData[] = [ path: 'french-guiana', iso2: 'GF', iso3: 'GUF', + region: 'europe', }, { id: 'GG', @@ -997,6 +1075,7 @@ export const countryData: CountryData[] = [ path: 'guernsey', iso2: 'GG', iso3: 'GGY', + region: 'europe', }, { id: 'GH', @@ -1006,6 +1085,7 @@ export const countryData: CountryData[] = [ path: 'ghana', iso2: 'GH', iso3: 'GHA', + region: 'rest-of-the-world', }, { id: 'GI', @@ -1015,6 +1095,7 @@ export const countryData: CountryData[] = [ path: 'gibraltar', iso2: 'GI', iso3: 'GIB', + region: 'europe', }, { id: 'GL', @@ -1024,6 +1105,7 @@ export const countryData: CountryData[] = [ path: 'greenland', iso2: 'GL', iso3: 'GRL', + region: 'north-america', }, { id: 'GM', @@ -1033,6 +1115,7 @@ export const countryData: CountryData[] = [ path: 'gambia', iso2: 'GM', iso3: 'GMB', + region: 'rest-of-the-world', }, { id: 'GN', @@ -1042,6 +1125,7 @@ export const countryData: CountryData[] = [ path: 'guinea', iso2: 'GN', iso3: 'GIN', + region: 'rest-of-the-world', }, { id: 'GP', @@ -1051,6 +1135,7 @@ export const countryData: CountryData[] = [ path: 'guadeloupe', iso2: 'GP', iso3: 'GLP', + region: 'europe', }, { id: 'GQ', @@ -1060,6 +1145,7 @@ export const countryData: CountryData[] = [ path: 'equatorial-guinea', iso2: 'GQ', iso3: 'GNQ', + region: 'rest-of-the-world', }, { id: 'GR', @@ -1069,6 +1155,7 @@ export const countryData: CountryData[] = [ path: 'greece', iso2: 'GR', iso3: 'GRC', + region: 'europe', }, { id: 'GS', @@ -1078,6 +1165,7 @@ export const countryData: CountryData[] = [ path: 'south-georgia-and-the-south-sandwich-islands', iso2: 'GS', iso3: 'SGS', + region: 'rest-of-the-world', }, { id: 'GT', @@ -1087,6 +1175,7 @@ export const countryData: CountryData[] = [ path: 'guatemala', iso2: 'GT', iso3: 'GTM', + region: 'latam', }, { id: 'GU', @@ -1096,6 +1185,7 @@ export const countryData: CountryData[] = [ path: 'guam', iso2: 'GU', iso3: 'GUM', + region: 'rest-of-the-world', }, { id: 'GW', @@ -1105,6 +1195,7 @@ export const countryData: CountryData[] = [ path: 'guinea-bissau', iso2: 'GW', iso3: 'GNB', + region: 'rest-of-the-world', }, { id: 'GY', @@ -1114,6 +1205,7 @@ export const countryData: CountryData[] = [ path: 'guyana', iso2: 'GY', iso3: 'GUY', + region: 'latam', }, { id: 'HK', @@ -1123,6 +1215,7 @@ export const countryData: CountryData[] = [ path: 'hong-kong', iso2: 'HK', iso3: 'HKG', + region: 'rest-of-the-world', }, { id: 'HM', @@ -1132,6 +1225,7 @@ export const countryData: CountryData[] = [ path: 'heard-island-and-mcdonald-islands', iso2: 'HM', iso3: 'HMD', + region: 'rest-of-the-world', }, { id: 'HN', @@ -1141,6 +1235,7 @@ export const countryData: CountryData[] = [ path: 'honduras', iso2: 'HN', iso3: 'HND', + region: 'latam', }, { id: 'HRV', @@ -1150,6 +1245,7 @@ export const countryData: CountryData[] = [ path: 'croatia', iso2: 'HR', iso3: 'HRV', + region: 'europe', }, { id: 'HT', @@ -1159,6 +1255,7 @@ export const countryData: CountryData[] = [ path: 'haiti', iso2: 'HT', iso3: 'HTI', + region: 'latam', }, { id: 'HUN', @@ -1168,6 +1265,7 @@ export const countryData: CountryData[] = [ path: 'hungary', iso2: 'HU', iso3: 'HUN', + region: 'europe', }, { id: 'ID', @@ -1177,6 +1275,7 @@ export const countryData: CountryData[] = [ path: 'indonesia', iso2: 'ID', iso3: 'IDN', + region: 'rest-of-the-world', }, { id: 'IRL', @@ -1186,6 +1285,7 @@ export const countryData: CountryData[] = [ path: 'ireland', iso2: 'IE', iso3: 'IRL', + region: 'europe', }, { id: 'IL', @@ -1195,6 +1295,7 @@ export const countryData: CountryData[] = [ path: 'israel', iso2: 'IL', iso3: 'ISR', + region: 'rest-of-the-world', }, { id: 'IM', @@ -1204,6 +1305,7 @@ export const countryData: CountryData[] = [ path: 'isle-of-man', iso2: 'IM', iso3: 'IMN', + region: 'europe', }, { id: 'IN', @@ -1213,6 +1315,7 @@ export const countryData: CountryData[] = [ path: 'india', iso2: 'IN', iso3: 'IND', + region: 'rest-of-the-world', }, { id: 'IO', @@ -1222,6 +1325,7 @@ export const countryData: CountryData[] = [ path: 'british-indian-ocean-territory', iso2: 'IO', iso3: 'IOT', + region: 'rest-of-the-world', }, { id: 'ISL', @@ -1231,6 +1335,7 @@ export const countryData: CountryData[] = [ path: 'iceland', iso2: 'IS', iso3: 'ISL', + region: 'europe', }, { id: 'ITA', @@ -1240,6 +1345,7 @@ export const countryData: CountryData[] = [ path: 'italy', iso2: 'IT', iso3: 'ITA', + region: 'europe', }, { id: 'JE', @@ -1249,6 +1355,7 @@ export const countryData: CountryData[] = [ path: 'jersey', iso2: 'JE', iso3: 'JEY', + region: 'europe', }, { id: 'JM', @@ -1258,6 +1365,7 @@ export const countryData: CountryData[] = [ path: 'jamaica', iso2: 'JM', iso3: 'JAM', + region: 'latam', }, { id: 'JO', @@ -1267,6 +1375,7 @@ export const countryData: CountryData[] = [ path: 'jordan', iso2: 'JO', iso3: 'JOR', + region: 'rest-of-the-world', }, { id: 'JP', @@ -1276,6 +1385,7 @@ export const countryData: CountryData[] = [ path: 'japan', iso2: 'JP', iso3: 'JPN', + region: 'rest-of-the-world', }, { id: 'KE', @@ -1285,6 +1395,7 @@ export const countryData: CountryData[] = [ path: 'kenya', iso2: 'KE', iso3: 'KEN', + region: 'rest-of-the-world', }, { id: 'KG', @@ -1294,6 +1405,7 @@ export const countryData: CountryData[] = [ path: 'kyrgyzstan', iso2: 'KG', iso3: 'KGZ', + region: 'rest-of-the-world', }, { id: 'KH', @@ -1303,6 +1415,7 @@ export const countryData: CountryData[] = [ path: 'cambodia', iso2: 'KH', iso3: 'KHM', + region: 'rest-of-the-world', }, { id: 'KI', @@ -1312,6 +1425,7 @@ export const countryData: CountryData[] = [ path: 'kiribati', iso2: 'KI', iso3: 'KIR', + region: 'rest-of-the-world', }, { id: 'KM', @@ -1321,6 +1435,7 @@ export const countryData: CountryData[] = [ path: 'comoros', iso2: 'KM', iso3: 'COM', + region: 'rest-of-the-world', }, { id: 'KN', @@ -1330,6 +1445,7 @@ export const countryData: CountryData[] = [ path: 'saint-kitts-and-nevis', iso2: 'KN', iso3: 'KNA', + region: 'latam', }, { id: 'KR', @@ -1339,6 +1455,7 @@ export const countryData: CountryData[] = [ path: 'south-korea', iso2: 'KR', iso3: 'KOR', + region: 'rest-of-the-world', }, { id: 'KW', @@ -1348,6 +1465,7 @@ export const countryData: CountryData[] = [ path: 'kuwait', iso2: 'KW', iso3: 'KWT', + region: 'rest-of-the-world', }, { id: 'KY', @@ -1357,6 +1475,7 @@ export const countryData: CountryData[] = [ path: 'cayman-islands', iso2: 'KY', iso3: 'CYM', + region: 'north-america', }, { id: 'KZ', @@ -1366,6 +1485,7 @@ export const countryData: CountryData[] = [ path: 'kazakhstan', iso2: 'KZ', iso3: 'KAZ', + region: 'rest-of-the-world', }, { id: 'LA', @@ -1375,6 +1495,7 @@ export const countryData: CountryData[] = [ path: 'laos', iso2: 'LA', iso3: 'LAO', + region: 'rest-of-the-world', }, { id: 'LB', @@ -1384,6 +1505,7 @@ export const countryData: CountryData[] = [ path: 'lebanon', iso2: 'LB', iso3: 'LBN', + region: 'rest-of-the-world', }, { id: 'LC', @@ -1393,6 +1515,7 @@ export const countryData: CountryData[] = [ path: 'saint-lucia', iso2: 'LC', iso3: 'LCA', + region: 'latam', }, { id: 'LI', @@ -1402,6 +1525,7 @@ export const countryData: CountryData[] = [ path: 'liechtenstein', iso2: 'LI', iso3: 'LIE', + region: 'europe', }, { id: 'LK', @@ -1411,6 +1535,7 @@ export const countryData: CountryData[] = [ path: 'sri-lanka', iso2: 'LK', iso3: 'LKA', + region: 'rest-of-the-world', }, { id: 'LR', @@ -1420,6 +1545,7 @@ export const countryData: CountryData[] = [ path: 'liberia', iso2: 'LR', iso3: 'LBR', + region: 'rest-of-the-world', }, { id: 'LS', @@ -1429,6 +1555,7 @@ export const countryData: CountryData[] = [ path: 'lesotho', iso2: 'LS', iso3: 'LSO', + region: 'rest-of-the-world', }, { id: 'LTU', @@ -1438,6 +1565,7 @@ export const countryData: CountryData[] = [ path: 'lithuania', iso2: 'LT', iso3: 'LTU', + region: 'europe', }, { id: 'LUX', @@ -1447,6 +1575,7 @@ export const countryData: CountryData[] = [ path: 'luxembourg', iso2: 'LU', iso3: 'LUX', + region: 'europe', }, { id: 'LVA', @@ -1456,6 +1585,7 @@ export const countryData: CountryData[] = [ path: 'latvia', iso2: 'LV', iso3: 'LVA', + region: 'europe', }, { id: 'LY', @@ -1465,6 +1595,7 @@ export const countryData: CountryData[] = [ path: 'libya', iso2: 'LY', iso3: 'LBY', + region: 'rest-of-the-world', }, { id: 'MA', @@ -1474,6 +1605,7 @@ export const countryData: CountryData[] = [ path: 'morocco', iso2: 'MA', iso3: 'MAR', + region: 'rest-of-the-world', }, { id: 'MC', @@ -1483,6 +1615,7 @@ export const countryData: CountryData[] = [ path: 'monaco', iso2: 'MC', iso3: 'MCO', + region: 'europe', }, { id: 'MD', @@ -1492,6 +1625,7 @@ export const countryData: CountryData[] = [ path: 'moldova', iso2: 'MD', iso3: 'MDA', + region: 'europe', }, { id: 'ME', @@ -1501,6 +1635,7 @@ export const countryData: CountryData[] = [ path: 'montenegro', iso2: 'ME', iso3: 'MNE', + region: 'europe', }, { id: 'MAF', @@ -1510,6 +1645,7 @@ export const countryData: CountryData[] = [ path: 'saint-martin', iso2: 'MF', iso3: 'MAF', + region: 'europe', }, { id: 'MG', @@ -1519,6 +1655,7 @@ export const countryData: CountryData[] = [ path: 'madagascar', iso2: 'MG', iso3: 'MDG', + region: 'rest-of-the-world', }, { id: 'MH', @@ -1528,6 +1665,7 @@ export const countryData: CountryData[] = [ path: 'marshall-islands', iso2: 'MH', iso3: 'MHL', + region: 'rest-of-the-world', }, { id: 'MK', @@ -1537,6 +1675,7 @@ export const countryData: CountryData[] = [ path: 'macedonia', iso2: 'MK', iso3: 'MKD', + region: 'europe', }, { id: 'ML', @@ -1546,6 +1685,7 @@ export const countryData: CountryData[] = [ path: 'mali', iso2: 'ML', iso3: 'MLI', + region: 'rest-of-the-world', }, { id: 'MN', @@ -1555,6 +1695,7 @@ export const countryData: CountryData[] = [ path: 'mongolia', iso2: 'MN', iso3: 'MNG', + region: 'rest-of-the-world', }, { id: 'MO', @@ -1564,6 +1705,7 @@ export const countryData: CountryData[] = [ path: 'macao', iso2: 'MO', iso3: 'MAC', + region: 'rest-of-the-world', }, { id: 'MP', @@ -1573,6 +1715,7 @@ export const countryData: CountryData[] = [ path: 'northern-mariana-islands', iso2: 'MP', iso3: 'MNP', + region: 'rest-of-the-world', }, { id: 'MTQ', @@ -1582,6 +1725,7 @@ export const countryData: CountryData[] = [ path: 'martinique', iso2: 'MQ', iso3: 'MTQ', + region: 'europe', }, { id: 'MR', @@ -1591,6 +1735,7 @@ export const countryData: CountryData[] = [ path: 'mauritania', iso2: 'MR', iso3: 'MRT', + region: 'rest-of-the-world', }, { id: 'MS', @@ -1600,6 +1745,7 @@ export const countryData: CountryData[] = [ path: 'montserrat', iso2: 'MS', iso3: 'MSR', + region: 'rest-of-the-world', }, { id: 'MLT', @@ -1609,6 +1755,7 @@ export const countryData: CountryData[] = [ path: 'malta', iso2: 'MT', iso3: 'MLT', + region: 'europe', }, { id: 'MU', @@ -1618,6 +1765,7 @@ export const countryData: CountryData[] = [ path: 'mauritius', iso2: 'MU', iso3: 'MUS', + region: 'rest-of-the-world', }, { id: 'MV', @@ -1627,6 +1775,7 @@ export const countryData: CountryData[] = [ path: 'maldives', iso2: 'MV', iso3: 'MDV', + region: 'rest-of-the-world', }, { id: 'MW', @@ -1636,6 +1785,7 @@ export const countryData: CountryData[] = [ path: 'malawi', iso2: 'MW', iso3: 'MWI', + region: 'rest-of-the-world', }, { id: 'MX', @@ -1645,6 +1795,7 @@ export const countryData: CountryData[] = [ path: 'mexico', iso2: 'MX', iso3: 'MEX', + region: 'latam', }, { id: 'MY', @@ -1654,6 +1805,7 @@ export const countryData: CountryData[] = [ path: 'malaysia', iso2: 'MY', iso3: 'MYS', + region: 'rest-of-the-world', }, { id: 'MZ', @@ -1663,6 +1815,7 @@ export const countryData: CountryData[] = [ path: 'mozambique', iso2: 'MZ', iso3: 'MOZ', + region: 'rest-of-the-world', }, { id: 'NA', @@ -1672,6 +1825,7 @@ export const countryData: CountryData[] = [ path: 'namibia', iso2: 'NA', iso3: 'NAM', + region: 'rest-of-the-world', }, { id: 'NC', @@ -1681,6 +1835,7 @@ export const countryData: CountryData[] = [ path: 'new-caledonia', iso2: 'NC', iso3: 'NCL', + region: 'rest-of-the-world', }, { id: 'NE', @@ -1690,6 +1845,7 @@ export const countryData: CountryData[] = [ path: 'niger', iso2: 'NE', iso3: 'NER', + region: 'rest-of-the-world', }, { id: 'NF', @@ -1699,6 +1855,7 @@ export const countryData: CountryData[] = [ path: 'norfolk-island', iso2: 'NF', iso3: 'NFK', + region: 'rest-of-the-world', }, { id: 'NG', @@ -1708,6 +1865,7 @@ export const countryData: CountryData[] = [ path: 'nigeria', iso2: 'NG', iso3: 'NGA', + region: 'rest-of-the-world', }, { id: 'NI', @@ -1717,6 +1875,7 @@ export const countryData: CountryData[] = [ path: 'nicaragua', iso2: 'NI', iso3: 'NIC', + region: 'latam', }, { id: 'NLD', @@ -1726,6 +1885,7 @@ export const countryData: CountryData[] = [ path: 'netherlands', iso2: 'NL', iso3: 'NLD', + region: 'europe', }, { id: 'NOR', @@ -1735,6 +1895,7 @@ export const countryData: CountryData[] = [ path: 'norway', iso2: 'NO', iso3: 'NOR', + region: 'europe', }, { id: 'NP', @@ -1744,6 +1905,7 @@ export const countryData: CountryData[] = [ path: 'nepal', iso2: 'NP', iso3: 'NPL', + region: 'rest-of-the-world', }, { id: 'NR', @@ -1753,6 +1915,7 @@ export const countryData: CountryData[] = [ path: 'nauru', iso2: 'NR', iso3: 'NRU', + region: 'rest-of-the-world', }, { id: 'NU', @@ -1762,6 +1925,7 @@ export const countryData: CountryData[] = [ path: 'niue', iso2: 'NU', iso3: 'NIU', + region: 'rest-of-the-world', }, { id: 'NZ', @@ -1771,6 +1935,7 @@ export const countryData: CountryData[] = [ path: 'new-zealand', iso2: 'NZ', iso3: 'NZL', + region: 'rest-of-the-world', }, { id: 'OM', @@ -1780,6 +1945,7 @@ export const countryData: CountryData[] = [ path: 'oman', iso2: 'OM', iso3: 'OMN', + region: 'rest-of-the-world', }, { id: 'PA', @@ -1789,6 +1955,7 @@ export const countryData: CountryData[] = [ path: 'panama', iso2: 'PA', iso3: 'PAN', + region: 'latam', }, { id: 'PE', @@ -1798,6 +1965,7 @@ export const countryData: CountryData[] = [ path: 'peru', iso2: 'PE', iso3: 'PER', + region: 'latam', }, { id: 'PF', @@ -1807,6 +1975,7 @@ export const countryData: CountryData[] = [ path: 'french-polynesia', iso2: 'PF', iso3: 'PYF', + region: 'rest-of-the-world', }, { id: 'PG', @@ -1816,6 +1985,7 @@ export const countryData: CountryData[] = [ path: 'papua-new-guinea', iso2: 'PG', iso3: 'PNG', + region: 'rest-of-the-world', }, { id: 'PH', @@ -1825,6 +1995,7 @@ export const countryData: CountryData[] = [ path: 'philippines', iso2: 'PH', iso3: 'PHL', + region: 'rest-of-the-world', }, { id: 'PK', @@ -1834,6 +2005,7 @@ export const countryData: CountryData[] = [ path: 'pakistan', iso2: 'PK', iso3: 'PAK', + region: 'rest-of-the-world', }, { id: 'PL', @@ -1843,6 +2015,7 @@ export const countryData: CountryData[] = [ path: 'poland', iso2: 'PL', iso3: 'POL', + region: 'europe', }, { id: 'PM', @@ -1852,6 +2025,7 @@ export const countryData: CountryData[] = [ path: 'saint-pierre-and-miquelon', iso2: 'PM', iso3: 'SPM', + region: 'north-america', }, { id: 'PN', @@ -1861,6 +2035,7 @@ export const countryData: CountryData[] = [ path: 'pitcairn-islands', iso2: 'PN', iso3: 'PCN', + region: 'rest-of-the-world', }, { id: 'PR', @@ -1870,6 +2045,7 @@ export const countryData: CountryData[] = [ path: 'puerto-rico', iso2: 'PR', iso3: 'PRI', + region: 'latam', }, { id: 'PS', @@ -1879,6 +2055,7 @@ export const countryData: CountryData[] = [ path: 'palestine', iso2: 'PS', iso3: 'PSE', + region: 'rest-of-the-world', }, { id: 'PRT', @@ -1888,6 +2065,7 @@ export const countryData: CountryData[] = [ path: 'portugal', iso2: 'PT', iso3: 'PRT', + region: 'europe', }, { id: 'PW', @@ -1897,6 +2075,7 @@ export const countryData: CountryData[] = [ path: 'palau', iso2: 'PW', iso3: 'PLW', + region: 'rest-of-the-world', }, { id: 'PY', @@ -1906,6 +2085,7 @@ export const countryData: CountryData[] = [ path: 'paraguay', iso2: 'PY', iso3: 'PRY', + region: 'latam', }, { id: 'QA', @@ -1915,6 +2095,7 @@ export const countryData: CountryData[] = [ path: 'qatar', iso2: 'QA', iso3: 'QAT', + region: 'rest-of-the-world', }, { id: 'REU', @@ -1924,6 +2105,7 @@ export const countryData: CountryData[] = [ path: 'reunion', iso2: 'RE', iso3: 'REU', + region: 'europe', }, { id: 'ROU', @@ -1933,6 +2115,7 @@ export const countryData: CountryData[] = [ path: 'romania', iso2: 'RO', iso3: 'ROU', + region: 'europe', }, { id: 'RS', @@ -1942,6 +2125,7 @@ export const countryData: CountryData[] = [ path: 'serbia', iso2: 'RS', iso3: 'SRB', + region: 'europe', }, { id: 'RW', @@ -1951,6 +2135,7 @@ export const countryData: CountryData[] = [ path: 'rwanda', iso2: 'RW', iso3: 'RWA', + region: 'rest-of-the-world', }, { id: 'SA', @@ -1960,6 +2145,7 @@ export const countryData: CountryData[] = [ path: 'saudi-arabia', iso2: 'SA', iso3: 'SAU', + region: 'rest-of-the-world', }, { id: 'SB', @@ -1969,6 +2155,7 @@ export const countryData: CountryData[] = [ path: 'solomon-islands', iso2: 'SB', iso3: 'SLB', + region: 'rest-of-the-world', }, { id: 'SC', @@ -1978,6 +2165,7 @@ export const countryData: CountryData[] = [ path: 'seychelles', iso2: 'SC', iso3: 'SYC', + region: 'rest-of-the-world', }, { id: 'SD', @@ -1987,6 +2175,7 @@ export const countryData: CountryData[] = [ path: 'sudan', iso2: 'SD', iso3: 'SDN', + region: 'rest-of-the-world', }, { id: 'SE', @@ -1996,6 +2185,7 @@ export const countryData: CountryData[] = [ path: 'sweden', iso2: 'SE', iso3: 'SWE', + region: 'europe', }, { id: 'SG', @@ -2005,6 +2195,7 @@ export const countryData: CountryData[] = [ path: 'singapore', iso2: 'SG', iso3: 'SGP', + region: 'rest-of-the-world', }, { id: 'SH', @@ -2014,6 +2205,7 @@ export const countryData: CountryData[] = [ path: 'saint-helena', iso2: 'SH', iso3: 'SHN', + region: 'rest-of-the-world', }, { id: 'SVN', @@ -2023,6 +2215,7 @@ export const countryData: CountryData[] = [ path: 'slovenia', iso2: 'SI', iso3: 'SVN', + region: 'europe', }, { id: 'SJ', @@ -2032,6 +2225,7 @@ export const countryData: CountryData[] = [ path: 'svalbard-and-jan-mayen', iso2: 'SJ', iso3: 'SJM', + region: 'europe', }, { id: 'SVK', @@ -2041,6 +2235,7 @@ export const countryData: CountryData[] = [ path: 'slovakia', iso2: 'SK', iso3: 'SVK', + region: 'europe', }, { id: 'SL', @@ -2050,6 +2245,7 @@ export const countryData: CountryData[] = [ path: 'sierra-leone', iso2: 'SL', iso3: 'SLE', + region: 'rest-of-the-world', }, { id: 'SM', @@ -2059,6 +2255,7 @@ export const countryData: CountryData[] = [ path: 'san-marino', iso2: 'SM', iso3: 'SMR', + region: 'europe', }, { id: 'SN', @@ -2068,6 +2265,7 @@ export const countryData: CountryData[] = [ path: 'senegal', iso2: 'SN', iso3: 'SEN', + region: 'rest-of-the-world', }, { id: 'SO', @@ -2077,6 +2275,7 @@ export const countryData: CountryData[] = [ path: 'somalia', iso2: 'SO', iso3: 'SOM', + region: 'rest-of-the-world', }, { id: 'SR', @@ -2086,6 +2285,7 @@ export const countryData: CountryData[] = [ path: 'suriname', iso2: 'SR', iso3: 'SUR', + region: 'latam', }, { id: 'SS', @@ -2095,6 +2295,7 @@ export const countryData: CountryData[] = [ path: 'south-sudan', iso2: 'SS', iso3: 'SSD', + region: 'rest-of-the-world', }, { id: 'ST', @@ -2104,6 +2305,7 @@ export const countryData: CountryData[] = [ path: 'sao-tome-and-principe', iso2: 'ST', iso3: 'STP', + region: 'rest-of-the-world', }, { id: 'SV', @@ -2113,6 +2315,7 @@ export const countryData: CountryData[] = [ path: 'el-salvador', iso2: 'SV', iso3: 'SLV', + region: 'latam', }, { id: 'SX', @@ -2122,6 +2325,7 @@ export const countryData: CountryData[] = [ path: 'sint-maarten', iso2: 'SX', iso3: 'SXM', + region: 'north-america', }, { id: 'SZ', @@ -2131,6 +2335,7 @@ export const countryData: CountryData[] = [ path: 'swaziland', iso2: 'SZ', iso3: 'SWZ', + region: 'rest-of-the-world', }, { id: 'TC', @@ -2140,6 +2345,7 @@ export const countryData: CountryData[] = [ path: 'turks-and-caicos-islands', iso2: 'TC', iso3: 'TCA', + region: 'north-america', }, { id: 'TD', @@ -2149,6 +2355,7 @@ export const countryData: CountryData[] = [ path: 'chad', iso2: 'TD', iso3: 'TCD', + region: 'rest-of-the-world', }, { id: 'TF', @@ -2158,6 +2365,7 @@ export const countryData: CountryData[] = [ path: 'french-southern-territories', iso2: 'TF', iso3: 'ATF', + region: 'rest-of-the-world', }, { id: 'TG', @@ -2167,6 +2375,7 @@ export const countryData: CountryData[] = [ path: 'togo', iso2: 'TG', iso3: 'TGO', + region: 'rest-of-the-world', }, { id: 'TH', @@ -2176,6 +2385,7 @@ export const countryData: CountryData[] = [ path: 'thailand', iso2: 'TH', iso3: 'THA', + region: 'rest-of-the-world', }, { id: 'TJ', @@ -2185,6 +2395,7 @@ export const countryData: CountryData[] = [ path: 'tajikistan', iso2: 'TJ', iso3: 'TJK', + region: 'rest-of-the-world', }, { id: 'TK', @@ -2194,6 +2405,7 @@ export const countryData: CountryData[] = [ path: 'tokelau', iso2: 'TK', iso3: 'TKL', + region: 'rest-of-the-world', }, { id: 'TL', @@ -2203,6 +2415,7 @@ export const countryData: CountryData[] = [ path: 'east-timor', iso2: 'TL', iso3: 'TLS', + region: 'rest-of-the-world', }, { id: 'TM', @@ -2212,6 +2425,7 @@ export const countryData: CountryData[] = [ path: 'turkmenistan', iso2: 'TM', iso3: 'TKM', + region: 'rest-of-the-world', }, { id: 'TN', @@ -2221,6 +2435,7 @@ export const countryData: CountryData[] = [ path: 'tunisia', iso2: 'TN', iso3: 'TUN', + region: 'rest-of-the-world', }, { id: 'TO', @@ -2230,6 +2445,7 @@ export const countryData: CountryData[] = [ path: 'tonga', iso2: 'TO', iso3: 'TON', + region: 'rest-of-the-world', }, { id: 'TR', @@ -2239,6 +2455,7 @@ export const countryData: CountryData[] = [ path: 'turkey', iso2: 'TR', iso3: 'TUR', + region: 'rest-of-the-world', }, { id: 'TT', @@ -2248,6 +2465,7 @@ export const countryData: CountryData[] = [ path: 'trinidad-and-tobago', iso2: 'TT', iso3: 'TTO', + region: 'rest-of-the-world', }, { id: 'TV', @@ -2257,6 +2475,7 @@ export const countryData: CountryData[] = [ path: 'tuvalu', iso2: 'TV', iso3: 'TUV', + region: 'rest-of-the-world', }, { id: 'TW', @@ -2266,6 +2485,7 @@ export const countryData: CountryData[] = [ path: 'taiwan', iso2: 'TW', iso3: 'TWN', + region: 'rest-of-the-world', }, { id: 'TZ', @@ -2275,6 +2495,7 @@ export const countryData: CountryData[] = [ path: 'tanzania', iso2: 'TZ', iso3: 'TZA', + region: 'rest-of-the-world', }, { id: 'UA', @@ -2284,6 +2505,7 @@ export const countryData: CountryData[] = [ path: 'ukraine', iso2: 'UA', iso3: 'UKR', + region: 'europe', }, { id: 'UG', @@ -2293,6 +2515,7 @@ export const countryData: CountryData[] = [ path: 'uganda', iso2: 'UG', iso3: 'UGA', + region: 'rest-of-the-world', }, { id: 'UM', @@ -2302,6 +2525,7 @@ export const countryData: CountryData[] = [ path: 'u.s.-minor-outlying-islands', iso2: 'UM', iso3: 'UMI', + region: 'north-america', }, { id: 'US', @@ -2311,6 +2535,7 @@ export const countryData: CountryData[] = [ path: 'usa', iso2: 'US', iso3: 'USA', + region: 'north-america', }, { id: 'UY', @@ -2320,6 +2545,7 @@ export const countryData: CountryData[] = [ path: 'uruguay', iso2: 'UY', iso3: 'URY', + region: 'latam', }, { id: 'UZ', @@ -2329,6 +2555,7 @@ export const countryData: CountryData[] = [ path: 'uzbekistan', iso2: 'UZ', iso3: 'UZB', + region: 'rest-of-the-world', }, { id: 'VA', @@ -2338,6 +2565,7 @@ export const countryData: CountryData[] = [ path: 'vatican-city', iso2: 'VA', iso3: 'VAT', + region: 'europe', }, { id: 'VC', @@ -2347,6 +2575,7 @@ export const countryData: CountryData[] = [ path: 'saint-vincent-and-the-grenadines', iso2: 'VC', iso3: 'VCT', + region: 'latam', }, { id: 'VG', @@ -2356,6 +2585,7 @@ export const countryData: CountryData[] = [ path: 'british-virgin-islands', iso2: 'VG', iso3: 'VGB', + region: 'north-america', }, { id: 'VI', @@ -2365,6 +2595,7 @@ export const countryData: CountryData[] = [ path: 'us-virgin-islands', iso2: 'VI', iso3: 'VIR', + region: 'north-america', }, { id: 'VN', @@ -2374,6 +2605,7 @@ export const countryData: CountryData[] = [ path: 'vietnam', iso2: 'VN', iso3: 'VNM', + region: 'rest-of-the-world', }, { id: 'VU', @@ -2383,6 +2615,7 @@ export const countryData: CountryData[] = [ path: 'vanuatu', iso2: 'VU', iso3: 'VUT', + region: 'rest-of-the-world', }, { id: 'WF', @@ -2392,6 +2625,7 @@ export const countryData: CountryData[] = [ path: 'wallis-and-futuna', iso2: 'WF', iso3: 'WLF', + region: 'rest-of-the-world', }, { id: 'WS', @@ -2401,6 +2635,7 @@ export const countryData: CountryData[] = [ path: 'samoa', iso2: 'WS', iso3: 'WSM', + region: 'rest-of-the-world', }, { id: 'XK', @@ -2410,6 +2645,7 @@ export const countryData: CountryData[] = [ path: 'kosovo', iso2: 'XK', iso3: 'XKX', + region: 'europe', }, { id: 'YE', @@ -2419,6 +2655,7 @@ export const countryData: CountryData[] = [ path: 'yemen', iso2: 'YE', iso3: 'YEM', + region: 'rest-of-the-world', }, { id: 'YT', @@ -2428,6 +2665,7 @@ export const countryData: CountryData[] = [ path: 'mayotte', iso2: 'YT', iso3: 'MYT', + region: 'europe', }, { id: 'ZA', @@ -2437,6 +2675,7 @@ export const countryData: CountryData[] = [ path: 'south-africa', iso2: 'ZA', iso3: 'ZAF', + region: 'rest-of-the-world', }, { id: 'ZM', @@ -2446,6 +2685,7 @@ export const countryData: CountryData[] = [ path: 'zambia', iso2: 'ZM', iso3: 'ZMB', + region: 'rest-of-the-world', }, { id: 'ZW', @@ -2455,6 +2695,7 @@ export const countryData: CountryData[] = [ path: 'zimbabwe', iso2: 'ZW', iso3: 'ZWE', + region: 'rest-of-the-world', }, ] @@ -2531,6 +2772,10 @@ export const BRIDGE_ALPHA3_TO_ALPHA2: { [key: string]: string } = { USA: 'US', } +export const MEXICO_ALPHA3_TO_ALPHA2: { [key: string]: string } = { + MEX: 'MX', +} + export const MANTECA_ALPHA3_TO_ALPHA2: { [key: string]: string } = { ARG: 'AR', BRA: 'BR', diff --git a/src/components/Common/CountryList.tsx b/src/components/Common/CountryList.tsx index 56a019537..fecea3de6 100644 --- a/src/components/Common/CountryList.tsx +++ b/src/components/Common/CountryList.tsx @@ -21,6 +21,7 @@ import { ActionListCard } from '../ActionListCard' interface CountryListViewProps { inputTitle: string + inputDescription?: string viewMode: 'claim-request' | 'add-withdraw' | 'general-verification' onCountryClick: (country: CountryData) => void onCryptoClick?: (flow: 'add' | 'withdraw') => void @@ -36,6 +37,7 @@ interface CountryListViewProps { * * @param {object} props * @param {string} props.inputTitle The title for the input + * @param {string} props.inputDescription The description for the input * @param {string} props.viewMode The view mode of the list, either 'claim-request' or 'add-withdraw' or 'general-verification' * @param {function} props.onCountryClick The function to call when a country is clicked * @param {function} props.onCryptoClick The function to call when the crypto button is clicked @@ -44,6 +46,7 @@ interface CountryListViewProps { */ export const CountryList = ({ inputTitle, + inputDescription, viewMode, onCountryClick, onCryptoClick, @@ -97,6 +100,7 @@ export const CountryList = ({
{inputTitle}
+ {inputDescription &&

{inputDescription}

} setSearchTerm(e.target.value)} diff --git a/src/components/IdentityVerification/StartVerificationModal.tsx b/src/components/IdentityVerification/StartVerificationModal.tsx new file mode 100644 index 000000000..2eccb13fe --- /dev/null +++ b/src/components/IdentityVerification/StartVerificationModal.tsx @@ -0,0 +1,145 @@ +'use client' + +import ActionModal from '../Global/ActionModal' +import InfoCard from '../Global/InfoCard' +import { Icon } from '../Global/Icons/Icon' +import { MantecaSupportedExchanges } from '../AddMoney/consts' +import { useMemo } from 'react' + +interface StartVerificationModalProps { + visible: boolean + onClose: () => void + onStartVerification: () => void + selectedIdentityCountry: { id: string; title: string } + selectedCountry: { id: string; title: string } +} + +const StartVerificationModal = ({ + visible, + onClose, + onStartVerification, + selectedIdentityCountry, + selectedCountry, +}: StartVerificationModalProps) => { + const items = [ + { + title: ( +

+ QR Payments in Argentina and Brazil +

+ ), + type: 'bridge', + }, + { + title: ( +

+ United States ACH and Wire transfers +

+ ), + type: 'bridge', + }, + { + title: ( +

+ Europe SEPA transfers (+30 countries) +

+ ), + type: 'bridge', + }, + { + title: ( +

+ Mexico SPEI transfers +

+ ), + type: 'bridge', + }, + { + // Using identity country here for the title + // eg scenario - user selected Argentina but has a Brazil ID, they will be + // able to only use QR in Argentina but can do both Bank transfers and QR in Brazil. + title: `Bank transfers to your own accounts in ${selectedIdentityCountry.title}`, + type: 'manteca', + }, + { + title: 'QR Payments in Brazil and Argentina', + type: 'manteca', + }, + ] + + const isIdentityMantecaCountry = useMemo( + () => Object.prototype.hasOwnProperty.call(MantecaSupportedExchanges, selectedIdentityCountry.id.toUpperCase()), + [selectedIdentityCountry.id] + ) + + const isSelectedCountryMantecaCountry = useMemo( + () => Object.prototype.hasOwnProperty.call(MantecaSupportedExchanges, selectedCountry.id.toUpperCase()), + [selectedCountry] + ) + + const getDescription = () => { + if (isSelectedCountryMantecaCountry && isIdentityMantecaCountry) { + return ( +

+ To send and receive money locally, you'll need to verify your identity with a + government-issued ID from {selectedCountry.title}. +

+ ) + } + + if (isSelectedCountryMantecaCountry && !isIdentityMantecaCountry) { + return "Without an Argentina Issued ID, you can still pay in stores using QR codes but you won't be able to transfer money directly to bank accounts." + } + + return ( +

+ To make international money transfers, you must verify your identity using a government-issued + ID. +

+ ) + } + + return ( + +

What you'll unlock:

+ item.type === (isIdentityMantecaCountry ? 'manteca' : 'bridge')) + .map((item) => item.title)} + /> + +
+ +

Peanut doesn't store any of your documents.

+
+
+ } + /> + ) +} + +export default StartVerificationModal diff --git a/src/components/Profile/components/IdentityVerificationCountryList.tsx b/src/components/Profile/components/IdentityVerificationCountryList.tsx new file mode 100644 index 000000000..b76422044 --- /dev/null +++ b/src/components/Profile/components/IdentityVerificationCountryList.tsx @@ -0,0 +1,125 @@ +'use client' +import { ActionListCard } from '@/components/ActionListCard' +import StatusBadge from '@/components/Global/Badges/StatusBadge' +import { getCardPosition } from '@/components/Global/Card' +import { Icon } from '@/components/Global/Icons/Icon' +import { SearchInput } from '@/components/SearchInput' +import { getCountriesForRegion } from '@/utils/identityVerification' +import Image from 'next/image' +import { useRouter } from 'next/navigation' +import { useState } from 'react' + +const IdentityVerificationCountryList = ({ region }: { region: string }) => { + const [searchTerm, setSearchTerm] = useState('') + const router = useRouter() + + const { supportedCountries, unsupportedCountries } = getCountriesForRegion(region) + + // Filter both arrays based on search term + const filteredSupportedCountries = supportedCountries.filter((country) => + country.title.toLowerCase().includes(searchTerm.toLowerCase()) + ) + + const filteredUnsupportedCountries = unsupportedCountries.filter((country) => + country.title.toLowerCase().includes(searchTerm.toLowerCase()) + ) + + const isLatam = region === 'latam' + + return ( +
+
+ setSearchTerm(e.target.value)} + onClear={() => setSearchTerm('')} + placeholder="Search by country name" + /> +
+ +
+

Available countries in this region

+

Choose the one you want to move money on.

+ + {filteredSupportedCountries.map((country, index) => { + const position = getCardPosition(index, filteredSupportedCountries.length) + return ( + } + onClick={() => { + if (isLatam) { + router.push( + `/profile/identity-verification/${region}/${encodeURIComponent(country.id)}` + ) + } else { + router.push( + `/profile/identity-verification/${region}/${encodeURIComponent('bridge')}` + ) + } + }} + position={position} + leftIcon={ +
+ {`${country.title} { + e.currentTarget.style.display = 'none' + }} + /> +
+ } + /> + ) + })} +
+ +
+

Coming soon

+ + {filteredUnsupportedCountries.map((country, index) => { + const position = getCardPosition(index, filteredUnsupportedCountries.length) + return ( + {}} + rightContent={} + position={position} + isDisabled + leftIcon={ +
+ {`${country.title} { + e.currentTarget.style.display = 'none' + }} + /> +
+ } + /> + ) + })} +
+
+ ) +} + +export default IdentityVerificationCountryList diff --git a/src/components/Profile/views/IdentityVerification.view.tsx b/src/components/Profile/views/IdentityVerification.view.tsx index 1e6376e9c..f1dbe2005 100644 --- a/src/components/Profile/views/IdentityVerification.view.tsx +++ b/src/components/Profile/views/IdentityVerification.view.tsx @@ -1,7 +1,7 @@ 'use client' import { updateUserById } from '@/app/actions/users' import { Button } from '@/components/0_Bruddle' -import { BRIDGE_ALPHA3_TO_ALPHA2, MantecaSupportedExchanges } from '@/components/AddMoney/consts' +import { BRIDGE_ALPHA3_TO_ALPHA2, countryData, MantecaSupportedExchanges } from '@/components/AddMoney/consts' import { UserDetailsForm, type UserDetailsFormData } from '@/components/AddMoney/UserDetailsForm' import { CountryList } from '@/components/Common/CountryList' import ErrorAlert from '@/components/Global/ErrorAlert' @@ -13,14 +13,14 @@ import { PeanutDoesntStoreAnyPersonalInformation, } from '@/components/Kyc/KycVerificationInProgressModal' import { MantecaGeoSpecificKycModal } from '@/components/Kyc/InitiateMantecaKYCModal' -import { Icon } from '@/components/Global/Icons/Icon' import { useAuth } from '@/context/authContext' import { useBridgeKycFlow } from '@/hooks/useBridgeKycFlow' import { MantecaKycStatus } from '@/interfaces' -import { useRouter } from 'next/navigation' -import { useCallback, useMemo, useRef, useState } from 'react' +import { useParams, useRouter } from 'next/navigation' +import { useCallback, useEffect, useMemo, useRef, useState } from 'react' import useKycStatus from '@/hooks/useKycStatus' import { getRedirectUrl, clearRedirectUrl } from '@/utils/general.utils' +import StartVerificationModal from '@/components/IdentityVerification/StartVerificationModal' const IdentityVerificationView = () => { const router = useRouter() @@ -35,6 +35,9 @@ const IdentityVerificationView = () => { const [userClickedCountry, setUserClickedCountry] = useState<{ id: string; title: string } | null>(null) const { isUserBridgeKycApproved } = useKycStatus() const { user, fetchUser } = useAuth() + const [isStartVerificationModalOpen, setIsStartVerificationModalOpen] = useState(false) + const params = useParams() + const countryParam = params.country as string const handleRedirect = () => { const redirectUrl = getRedirectUrl() @@ -137,6 +140,36 @@ const IdentityVerificationView = () => { [user] ) + // Skip country selection if coming from a supported bridge country + useEffect(() => { + if (countryParam) { + if (isBridgeSupportedCountry(countryParam) || countryParam === 'bridge') { + const country = countryData.find((country) => country.id.toUpperCase() === countryParam.toUpperCase()) + + if (country) { + setUserClickedCountry({ title: country.title, id: country.id }) + setIsStartVerificationModalOpen(true) + } else { + // set as bridge + setUserClickedCountry({ title: 'Bridge', id: 'bridge' }) + setIsStartVerificationModalOpen(true) + } + } + } + }, [countryParam]) + + const selectedCountryParams = useMemo(() => { + if (countryParam) { + const country = countryData.find((country) => country.id.toUpperCase() === countryParam.toUpperCase()) + if (country) { + return country + } else { + return { title: 'Bridge', id: 'bridge' } + } + } + return null + }, [countryParam]) + return (
@@ -182,28 +215,13 @@ const IdentityVerificationView = () => { ) : (
- isVerifiedForCountry(country.id) ? ( - - ) : undefined - } onCountryClick={(country) => { const { id, title } = country setUserClickedCountry({ id, title }) - - if (isVerifiedForCountry(id)) { - setIsAlreadyVerifiedModalOpen(true) - return - } - - if (isMantecaSupportedCountry(id)) { - setSelectedCountry({ id, title }) - setIsMantecaModalOpen(true) - } else { - setShowUserDetailsForm(true) - } + setIsStartVerificationModalOpen(true) }} />
@@ -242,6 +260,24 @@ const IdentityVerificationView = () => { onKycSuccess={handleRedirect} /> )} + + {userClickedCountry && selectedCountryParams && ( + setIsStartVerificationModalOpen(false)} + onStartVerification={() => { + setIsStartVerificationModalOpen(false) + if (isMantecaSupportedCountry(userClickedCountry.id)) { + setSelectedCountry(userClickedCountry) + setIsMantecaModalOpen(true) + } else { + setShowUserDetailsForm(true) + } + }} + selectedIdentityCountry={userClickedCountry} + selectedCountry={selectedCountryParams} + /> + )}
) } diff --git a/src/components/Profile/views/RegionsPage.view.tsx b/src/components/Profile/views/RegionsPage.view.tsx new file mode 100644 index 000000000..d2b7ff5f2 --- /dev/null +++ b/src/components/Profile/views/RegionsPage.view.tsx @@ -0,0 +1,43 @@ +'use client' + +import NavHeader from '@/components/Global/NavHeader' +import { useIdentityVerification } from '@/hooks/useIdentityVerification' +import { useRouter } from 'next/navigation' +import React from 'react' +import IdentityVerificationCountryList from '../components/IdentityVerificationCountryList' +import { Button } from '@/components/0_Bruddle' + +const RegionsPage = ({ path }: { path: string }) => { + const router = useRouter() + const { lockedRegions } = useIdentityVerification() + + const region = lockedRegions.find((region) => region.path === path) + + if (!region) { + return
Region not found
+ } + + return ( +
+
+ router.back()} /> + + +
+ {region.path !== 'latam' && ( +
+ +
+ )} +
+ ) +} + +export default RegionsPage diff --git a/src/components/Profile/views/RegionsVerification.view.tsx b/src/components/Profile/views/RegionsVerification.view.tsx index fb6a99def..626874d5f 100644 --- a/src/components/Profile/views/RegionsVerification.view.tsx +++ b/src/components/Profile/views/RegionsVerification.view.tsx @@ -40,6 +40,7 @@ interface RegionsListProps { isLocked: boolean } const RegionsList = ({ regions, isLocked }: RegionsListProps) => { + const router = useRouter() return (
{regions.map((region, index) => ( @@ -55,7 +56,11 @@ const RegionsList = ({ regions, isLocked }: RegionsListProps) => { } position={getCardPosition(index, regions.length)} title={region.name} - onClick={() => {}} + onClick={() => { + if (isLocked) { + router.push(`/profile/identity-verification/${region.path}`) + } + }} description={region.description} descriptionClassName="text-xs" rightContent={!isLocked ? : null} diff --git a/src/hooks/useIdentityVerification.tsx b/src/hooks/useIdentityVerification.tsx index 27c96f539..e2f3a1bb4 100644 --- a/src/hooks/useIdentityVerification.tsx +++ b/src/hooks/useIdentityVerification.tsx @@ -4,6 +4,7 @@ import useKycStatus from './useKycStatus' import { useMemo } from 'react' export type Region = { + path: string name: string icon: StaticImageData | string description?: string @@ -14,18 +15,22 @@ const BRIDGE_SUPPORTED_REGIONS = ['North America', 'Europe'] const SUPPORTED_REGIONS: Region[] = [ { + path: 'europe', name: 'Europe', icon: EUROPE_GLOBE_ICON, }, { + path: 'north-america', name: 'North America', icon: NORTH_AMERICA_GLOBE_ICON, }, { + path: 'latam', name: 'LATAM', icon: LATAM_GLOBE_ICON, }, { + path: 'rest-of-the-world', name: 'Rest of the world', icon: REST_OF_WORLD_GLOBE_ICON, }, @@ -33,11 +38,13 @@ const SUPPORTED_REGIONS: Region[] = [ const MANTECA_QR_ONLY_REGIONS: Region[] = [ { + path: 'argentina', name: 'Argentina', icon: 'https://flagcdn.com/w160/ar.png', description: 'Only Mercado Pago QR payments', }, { + path: 'brazil', name: 'Brazil', icon: 'https://flagcdn.com/w160/br.png', description: 'Only PIX QR payments', diff --git a/src/utils/identityVerification.tsx b/src/utils/identityVerification.tsx new file mode 100644 index 000000000..3f6abb80f --- /dev/null +++ b/src/utils/identityVerification.tsx @@ -0,0 +1,22 @@ +import { ALL_COUNTRIES_ALPHA3_TO_ALPHA2, countryData, MEXICO_ALPHA3_TO_ALPHA2 } from '@/components/AddMoney/consts' + +export const getCountriesForRegion = (region: string) => { + const supportedCountriesIso3 = Object.keys(ALL_COUNTRIES_ALPHA3_TO_ALPHA2).concat( + Object.keys(MEXICO_ALPHA3_TO_ALPHA2) // Add Mexico as well, supported by bridge + ) + + const countries = countryData.filter((country) => country.region === region) + + const supportedCountries = [] + const unsupportedCountries = [] + + for (const country of countries) { + if (country.iso3 && supportedCountriesIso3.includes(country.iso3)) { + supportedCountries.push({ ...country, isSupported: true }) + } else { + unsupportedCountries.push({ ...country, isSupported: false }) + } + } + + return { supportedCountries, unsupportedCountries } +} From 874185cb5b094aa7f219d4a02d73d28bb9388901 Mon Sep 17 00:00:00 2001 From: Zishan Mohd Date: Tue, 4 Nov 2025 12:22:27 +0530 Subject: [PATCH 03/14] add already verified checks --- .../[region]/[country]/page.tsx | 7 +- .../identity-verification/[region]/page.tsx | 7 +- .../profile/identity-verification/layout.tsx | 59 ++++++++++++++++ .../profile/identity-verification/page.tsx | 9 +-- src/components/Global/Icons/Icon.tsx | 3 + src/components/Global/Icons/globe-lock.tsx | 16 +++++ src/components/Profile/index.tsx | 15 +--- .../views/IdentityVerification.view.tsx | 70 +++++-------------- .../Profile/views/RegionsPage.view.tsx | 2 +- src/hooks/useIdentityVerification.tsx | 41 ++++++++++- 10 files changed, 141 insertions(+), 88 deletions(-) create mode 100644 src/app/(mobile-ui)/profile/identity-verification/layout.tsx create mode 100644 src/components/Global/Icons/globe-lock.tsx diff --git a/src/app/(mobile-ui)/profile/identity-verification/[region]/[country]/page.tsx b/src/app/(mobile-ui)/profile/identity-verification/[region]/[country]/page.tsx index 9f960286c..8ffed617b 100644 --- a/src/app/(mobile-ui)/profile/identity-verification/[region]/[country]/page.tsx +++ b/src/app/(mobile-ui)/profile/identity-verification/[region]/[country]/page.tsx @@ -1,11 +1,6 @@ 'use client' -import PageContainer from '@/components/0_Bruddle/PageContainer' import IdentityVerificationView from '@/components/Profile/views/IdentityVerification.view' export default function IdentityVerificationCountryPage() { - return ( - - - - ) + return } diff --git a/src/app/(mobile-ui)/profile/identity-verification/[region]/page.tsx b/src/app/(mobile-ui)/profile/identity-verification/[region]/page.tsx index 06418517e..d1843f861 100644 --- a/src/app/(mobile-ui)/profile/identity-verification/[region]/page.tsx +++ b/src/app/(mobile-ui)/profile/identity-verification/[region]/page.tsx @@ -1,5 +1,4 @@ 'use client' -import PageContainer from '@/components/0_Bruddle/PageContainer' import RegionsPage from '@/components/Profile/views/RegionsPage.view' import { useParams } from 'next/navigation' @@ -7,9 +6,5 @@ export default function IdentityVerificationRegionPage() { const params = useParams() const region = params.region as string - return ( - - - - ) + return } diff --git a/src/app/(mobile-ui)/profile/identity-verification/layout.tsx b/src/app/(mobile-ui)/profile/identity-verification/layout.tsx new file mode 100644 index 000000000..29884066e --- /dev/null +++ b/src/app/(mobile-ui)/profile/identity-verification/layout.tsx @@ -0,0 +1,59 @@ +'use client' + +import PageContainer from '@/components/0_Bruddle/PageContainer' +import ActionModal from '@/components/Global/ActionModal' +import { useIdentityVerification } from '@/hooks/useIdentityVerification' +import { useParams, useRouter } from 'next/navigation' +import { useEffect, useState } from 'react' + +export default function IdentityVerificationLayout({ children }: { children: React.ReactNode }) { + const [isAlreadyVerifiedModalOpen, setIsAlreadyVerifiedModalOpen] = useState(false) + const router = useRouter() + const { isRegionAlreadyUnlocked, isVerifiedForCountry } = useIdentityVerification() + const params = useParams() + const regionParams = params.region as string + const countryParams = params.country as string + + useEffect(() => { + const isAlreadyVerified = + (countryParams && isVerifiedForCountry(countryParams)) || + (regionParams && isRegionAlreadyUnlocked(regionParams)) + + if (isAlreadyVerified) { + setIsAlreadyVerifiedModalOpen(true) + } + }, [countryParams, regionParams, isVerifiedForCountry, isRegionAlreadyUnlocked]) + + return ( + + {children} + + { + setIsAlreadyVerifiedModalOpen(false) + router.push('/profile') + }} + title="You're already verified" + description={ +

+ Your identity has already been successfully verified for this region. You can continue to use + features available in this region. No further action is needed. +

+ } + icon="shield" + ctas={[ + { + text: 'Close', + shadowSize: '4', + className: 'md:py-2', + onClick: () => { + setIsAlreadyVerifiedModalOpen(false) + router.push('/profile') + }, + }, + ]} + /> +
+ ) +} diff --git a/src/app/(mobile-ui)/profile/identity-verification/page.tsx b/src/app/(mobile-ui)/profile/identity-verification/page.tsx index 60fce450b..c19062338 100644 --- a/src/app/(mobile-ui)/profile/identity-verification/page.tsx +++ b/src/app/(mobile-ui)/profile/identity-verification/page.tsx @@ -1,12 +1,5 @@ -import PageContainer from '@/components/0_Bruddle/PageContainer' -import IdentityVerificationView from '@/components/Profile/views/IdentityVerification.view' import RegionsVerification from '@/components/Profile/views/RegionsVerification.view' export default function IdentityVerificationPage() { - return ( - - {/* */} - - - ) + return } diff --git a/src/components/Global/Icons/Icon.tsx b/src/components/Global/Icons/Icon.tsx index 973a3b7c8..66ff79396 100644 --- a/src/components/Global/Icons/Icon.tsx +++ b/src/components/Global/Icons/Icon.tsx @@ -64,6 +64,7 @@ import { TrophyIcon } from './trophy' import { InviteHeartIcon } from './invite-heart' import { LockIcon } from './lock' import { SplitIcon } from './split' +import { GlobeLockIcon } from './globe-lock' // available icon names export type IconName = @@ -132,6 +133,7 @@ export type IconName = | 'invite-heart' | 'lock' | 'split' + | 'globe-lock' export interface IconProps extends SVGProps { name: IconName size?: number | string @@ -204,6 +206,7 @@ const iconComponents: Record>> = 'invite-heart': InviteHeartIcon, lock: LockIcon, split: SplitIcon, + 'globe-lock': GlobeLockIcon, } export const Icon: FC = ({ name, size = 24, width, height, ...props }) => { diff --git a/src/components/Global/Icons/globe-lock.tsx b/src/components/Global/Icons/globe-lock.tsx new file mode 100644 index 000000000..4ec52a2d9 --- /dev/null +++ b/src/components/Global/Icons/globe-lock.tsx @@ -0,0 +1,16 @@ +import type { FC, SVGProps } from 'react' + +export const GlobeLockIcon: FC> = (props) => { + return ( + + + + + ) +} diff --git a/src/components/Profile/index.tsx b/src/components/Profile/index.tsx index d7be613bc..45f53d5b1 100644 --- a/src/components/Profile/index.tsx +++ b/src/components/Profile/index.tsx @@ -23,7 +23,7 @@ export const Profile = () => { const [isInviteFriendsModalOpen, setIsInviteFriendsModalOpen] = useState(false) const [showInitiateKycModal, setShowInitiateKycModal] = useState(false) const router = useRouter() - const { isUserKycApproved, isUserBridgeKycUnderReview } = useKycStatus() + const { isUserKycApproved } = useKycStatus() const logout = async () => { await logoutUser() @@ -53,15 +53,6 @@ export const Profile = () => {
- {/* Menu Item - Invite Entry */} - {/* Enable with Invites project. */} - {/* */} {
{ setShowInitiateKycModal(true) }} position="middle" - endIcon={isUserKycApproved ? 'check' : undefined} - endIconClassName={isUserKycApproved ? 'text-success-3 size-4' : undefined} /> diff --git a/src/components/Profile/views/IdentityVerification.view.tsx b/src/components/Profile/views/IdentityVerification.view.tsx index f1dbe2005..ef2b478e5 100644 --- a/src/components/Profile/views/IdentityVerification.view.tsx +++ b/src/components/Profile/views/IdentityVerification.view.tsx @@ -1,13 +1,12 @@ 'use client' import { updateUserById } from '@/app/actions/users' import { Button } from '@/components/0_Bruddle' -import { BRIDGE_ALPHA3_TO_ALPHA2, countryData, MantecaSupportedExchanges } from '@/components/AddMoney/consts' +import { BRIDGE_ALPHA3_TO_ALPHA2, countryData } from '@/components/AddMoney/consts' import { UserDetailsForm, type UserDetailsFormData } from '@/components/AddMoney/UserDetailsForm' import { CountryList } from '@/components/Common/CountryList' import ErrorAlert from '@/components/Global/ErrorAlert' import IframeWrapper from '@/components/Global/IframeWrapper' import NavHeader from '@/components/Global/NavHeader' -import ActionModal from '@/components/Global/ActionModal' import { KycVerificationInProgressModal, PeanutDoesntStoreAnyPersonalInformation, @@ -15,12 +14,12 @@ import { import { MantecaGeoSpecificKycModal } from '@/components/Kyc/InitiateMantecaKYCModal' import { useAuth } from '@/context/authContext' import { useBridgeKycFlow } from '@/hooks/useBridgeKycFlow' -import { MantecaKycStatus } from '@/interfaces' import { useParams, useRouter } from 'next/navigation' import { useCallback, useEffect, useMemo, useRef, useState } from 'react' import useKycStatus from '@/hooks/useKycStatus' import { getRedirectUrl, clearRedirectUrl } from '@/utils/general.utils' import StartVerificationModal from '@/components/IdentityVerification/StartVerificationModal' +import { useIdentityVerification } from '@/hooks/useIdentityVerification' const IdentityVerificationView = () => { const router = useRouter() @@ -29,7 +28,6 @@ const IdentityVerificationView = () => { const [isUpdatingUser, setIsUpdatingUser] = useState(false) const [userUpdateError, setUserUpdateError] = useState(null) const [showUserDetailsForm, setShowUserDetailsForm] = useState(false) - const [isAlreadyVerifiedModalOpen, setIsAlreadyVerifiedModalOpen] = useState(false) const [isMantecaModalOpen, setIsMantecaModalOpen] = useState(false) const [selectedCountry, setSelectedCountry] = useState<{ id: string; title: string } | null>(null) const [userClickedCountry, setUserClickedCountry] = useState<{ id: string; title: string } | null>(null) @@ -38,20 +36,23 @@ const IdentityVerificationView = () => { const [isStartVerificationModalOpen, setIsStartVerificationModalOpen] = useState(false) const params = useParams() const countryParam = params.country as string + const { isMantecaSupportedCountry } = useIdentityVerification() - const handleRedirect = () => { + const handleRedirect = (isSuccess: boolean = false) => { const redirectUrl = getRedirectUrl() if (redirectUrl) { clearRedirectUrl() router.push(redirectUrl) + } else if (isSuccess) { + router.push('/profile') } else { - router.replace('/profile') + router.back() } } const handleBridgeKycSuccess = useCallback(async () => { await fetchUser() - handleRedirect() + handleRedirect(true) }, []) const { @@ -120,26 +121,6 @@ const IdentityVerificationView = () => { ) } - const isMantecaSupportedCountry = (code: string) => { - const upper = code.toUpperCase() - return Object.prototype.hasOwnProperty.call(MantecaSupportedExchanges, upper) - } - - const isVerifiedForCountry = useCallback( - (code: string) => { - const upper = code.toUpperCase() - const mantecaActive = - user?.user.kycVerifications?.some( - (v) => - v.provider === 'MANTECA' && - (v.mantecaGeo || '').toUpperCase() === upper && - v.status === MantecaKycStatus.ACTIVE - ) ?? false - return isMantecaSupportedCountry(upper) ? mantecaActive : isUserBridgeKycApproved - }, - [user] - ) - // Skip country selection if coming from a supported bridge country useEffect(() => { if (countryParam) { @@ -227,44 +208,27 @@ const IdentityVerificationView = () => {
)} - setIsAlreadyVerifiedModalOpen(false)} - title="You're already verified" - description={ -

- Your identity has already been successfully verified for {userClickedCountry?.title}. You can - continue to use features available in this region. No further action is needed. -

- } - icon="shield" - ctas={[ - { - text: 'Close', - shadowSize: '4', - className: 'md:py-2', - onClick: () => { - setIsAlreadyVerifiedModalOpen(false) - handleRedirect() - }, - }, - ]} - /> - {selectedCountry && ( handleRedirect(true)} /> )} {userClickedCountry && selectedCountryParams && ( setIsStartVerificationModalOpen(false)} + onClose={() => { + // we dont show ID issuer country list for bridge countries + if (isBridgeSupportedCountry(userClickedCountry.id) || userClickedCountry.id === 'bridge') { + handleRedirect() + } else { + setIsStartVerificationModalOpen(false) + } + }} onStartVerification={() => { setIsStartVerificationModalOpen(false) if (isMantecaSupportedCountry(userClickedCountry.id)) { diff --git a/src/components/Profile/views/RegionsPage.view.tsx b/src/components/Profile/views/RegionsPage.view.tsx index d2b7ff5f2..a02fb1720 100644 --- a/src/components/Profile/views/RegionsPage.view.tsx +++ b/src/components/Profile/views/RegionsPage.view.tsx @@ -14,7 +14,7 @@ const RegionsPage = ({ path }: { path: string }) => { const region = lockedRegions.find((region) => region.path === path) if (!region) { - return
Region not found
+ return null } return ( diff --git a/src/hooks/useIdentityVerification.tsx b/src/hooks/useIdentityVerification.tsx index e2f3a1bb4..1ecc38d24 100644 --- a/src/hooks/useIdentityVerification.tsx +++ b/src/hooks/useIdentityVerification.tsx @@ -1,7 +1,10 @@ import { EUROPE_GLOBE_ICON, LATAM_GLOBE_ICON, NORTH_AMERICA_GLOBE_ICON, REST_OF_WORLD_GLOBE_ICON } from '@/assets' import type { StaticImageData } from 'next/image' import useKycStatus from './useKycStatus' -import { useMemo } from 'react' +import { useMemo, useCallback } from 'react' +import { useAuth } from '@/context/authContext' +import { MantecaKycStatus } from '@/interfaces' +import { MantecaSupportedExchanges, countryData } from '@/components/AddMoney/consts' export type Region = { path: string @@ -52,8 +55,29 @@ const MANTECA_QR_ONLY_REGIONS: Region[] = [ ] export const useIdentityVerification = () => { + const { user } = useAuth() const { isUserBridgeKycApproved, isUserMantecaKycApproved } = useKycStatus() + const isMantecaSupportedCountry = useCallback((code: string) => { + const upper = code.toUpperCase() + return Object.prototype.hasOwnProperty.call(MantecaSupportedExchanges, upper) + }, []) + + const isVerifiedForCountry = useCallback( + (code: string) => { + const upper = code.toUpperCase() + const mantecaActive = + user?.user.kycVerifications?.some( + (v) => + v.provider === 'MANTECA' && + (v.mantecaGeo || '').toUpperCase() === upper && + v.status === MantecaKycStatus.ACTIVE + ) ?? false + return isMantecaSupportedCountry(upper) ? mantecaActive : isUserBridgeKycApproved + }, + [user, isUserBridgeKycApproved, isMantecaSupportedCountry] + ) + const { lockedRegions, unlockedRegions } = useMemo(() => { const isBridgeApproved = isUserBridgeKycApproved const isMantecaApproved = isUserMantecaKycApproved @@ -79,8 +103,23 @@ export const useIdentityVerification = () => { } }, [isUserBridgeKycApproved, isUserMantecaKycApproved]) + const isRegionAlreadyUnlocked = useCallback( + (regionPath: string) => { + return unlockedRegions.some((region) => region.path.toLowerCase() === regionPath.toLowerCase()) + }, + [unlockedRegions] + ) + + const getCountryTitle = useCallback((countryCode: string) => { + return countryData.find((country) => country.id.toUpperCase() === countryCode.toUpperCase())?.title ?? null + }, []) + return { lockedRegions, unlockedRegions, + isMantecaSupportedCountry, + isVerifiedForCountry, + isRegionAlreadyUnlocked, + getCountryTitle, } } From 581bd3b99d89b823d69b7217542b9ad6d8ae831a Mon Sep 17 00:00:00 2001 From: Zishan Mohd Date: Tue, 4 Nov 2025 12:43:51 +0530 Subject: [PATCH 04/14] feat: add empty state --- .../Profile/components/CountryListSection.tsx | 64 +++++++++++ .../IdentityVerificationCountryList.tsx | 106 ++++-------------- .../views/RegionsVerification.view.tsx | 9 ++ 3 files changed, 95 insertions(+), 84 deletions(-) create mode 100644 src/components/Profile/components/CountryListSection.tsx diff --git a/src/components/Profile/components/CountryListSection.tsx b/src/components/Profile/components/CountryListSection.tsx new file mode 100644 index 000000000..98abdf8e9 --- /dev/null +++ b/src/components/Profile/components/CountryListSection.tsx @@ -0,0 +1,64 @@ +import { ActionListCard } from '@/components/ActionListCard' +import { type CountryData } from '@/components/AddMoney/consts' +import { getCardPosition } from '@/components/Global/Card' +import Image from 'next/image' +import { type ReactNode } from 'react' + +interface CountryListSectionProps { + title: string + description?: string + countries: (CountryData & { isSupported?: boolean })[] + onCountryClick: (country: CountryData & { isSupported?: boolean }, index: number) => void + rightContent?: (country: CountryData & { isSupported?: boolean }, index: number) => ReactNode + isDisabled?: boolean +} + +const CountryListSection = ({ + title, + description, + countries, + onCountryClick, + rightContent, + isDisabled = false, +}: CountryListSectionProps) => { + return ( +
+

{title}

+ {description &&

{description}

} + + {countries.map((country, index) => { + const position = getCardPosition(index, countries.length) + return ( + onCountryClick(country, index)} + position={position} + isDisabled={isDisabled} + leftIcon={ +
+ {`${country.title} { + e.currentTarget.style.display = 'none' + }} + /> +
+ } + /> + ) + })} +
+ ) +} + +export default CountryListSection diff --git a/src/components/Profile/components/IdentityVerificationCountryList.tsx b/src/components/Profile/components/IdentityVerificationCountryList.tsx index b76422044..34070a334 100644 --- a/src/components/Profile/components/IdentityVerificationCountryList.tsx +++ b/src/components/Profile/components/IdentityVerificationCountryList.tsx @@ -1,13 +1,11 @@ 'use client' -import { ActionListCard } from '@/components/ActionListCard' import StatusBadge from '@/components/Global/Badges/StatusBadge' -import { getCardPosition } from '@/components/Global/Card' import { Icon } from '@/components/Global/Icons/Icon' import { SearchInput } from '@/components/SearchInput' import { getCountriesForRegion } from '@/utils/identityVerification' -import Image from 'next/image' import { useRouter } from 'next/navigation' import { useState } from 'react' +import CountryListSection from './CountryListSection' const IdentityVerificationCountryList = ({ region }: { region: string }) => { const [searchTerm, setSearchTerm] = useState('') @@ -37,87 +35,27 @@ const IdentityVerificationCountryList = ({ region }: { region: string }) => { />
-
-

Available countries in this region

-

Choose the one you want to move money on.

- - {filteredSupportedCountries.map((country, index) => { - const position = getCardPosition(index, filteredSupportedCountries.length) - return ( - } - onClick={() => { - if (isLatam) { - router.push( - `/profile/identity-verification/${region}/${encodeURIComponent(country.id)}` - ) - } else { - router.push( - `/profile/identity-verification/${region}/${encodeURIComponent('bridge')}` - ) - } - }} - position={position} - leftIcon={ -
- {`${country.title} { - e.currentTarget.style.display = 'none' - }} - /> -
- } - /> - ) - })} -
- -
-

Coming soon

- - {filteredUnsupportedCountries.map((country, index) => { - const position = getCardPosition(index, filteredUnsupportedCountries.length) - return ( - {}} - rightContent={} - position={position} - isDisabled - leftIcon={ -
- {`${country.title} { - e.currentTarget.style.display = 'none' - }} - /> -
- } - /> - ) - })} -
+ { + if (isLatam) { + router.push(`/profile/identity-verification/${region}/${encodeURIComponent(country.id)}`) + } else { + router.push(`/profile/identity-verification/${region}/${encodeURIComponent('bridge')}`) + } + }} + rightContent={() => (isLatam ? undefined : )} + /> + + {}} + rightContent={() => } + isDisabled + />
) } diff --git a/src/components/Profile/views/RegionsVerification.view.tsx b/src/components/Profile/views/RegionsVerification.view.tsx index 626874d5f..c95be5877 100644 --- a/src/components/Profile/views/RegionsVerification.view.tsx +++ b/src/components/Profile/views/RegionsVerification.view.tsx @@ -2,6 +2,7 @@ import { ActionListCard } from '@/components/ActionListCard' import { getCardPosition } from '@/components/Global/Card' +import EmptyState from '@/components/Global/EmptyStates/EmptyState' import { Icon } from '@/components/Global/Icons/Icon' import NavHeader from '@/components/Global/NavHeader' import { useIdentityVerification, type Region } from '@/hooks/useIdentityVerification' @@ -22,6 +23,14 @@ const RegionsVerification = () => { Transfer to and receive from any bank account and use supported payments methods.

+ {unlockedRegions.length === 0 && ( + + )} +

Locked regions

From 265b535d59810e08f982ee9bbbe5654ad713878a Mon Sep 17 00:00:00 2001 From: Zishan Mohd Date: Tue, 4 Nov 2025 12:57:54 +0530 Subject: [PATCH 05/14] feat: add accordion --- package.json | 1 + pnpm-lock.yaml | 398 ++++++++++-------- .../Profile/components/CountryListSection.tsx | 85 ++-- .../IdentityVerificationCountryList.tsx | 49 ++- tailwind.config.js | 10 + 5 files changed, 308 insertions(+), 235 deletions(-) diff --git a/package.json b/package.json index ed31e3a45..ad34c769f 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "@hookform/resolvers": "3.9.1", "@justaname.id/react": "0.3.180", "@justaname.id/sdk": "0.2.177", + "@radix-ui/react-accordion": "^1.2.12", "@radix-ui/react-slider": "^1.3.5", "@reduxjs/toolkit": "^2.5.0", "@reown/appkit": "1.6.9", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2c4d13456..61aaf0e1e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -34,7 +34,7 @@ importers: version: 2.0.4 '@daimo/pay': specifier: ^1.16.5 - version: 1.16.5(0133d12034a313dd0ab10c88bd8ab5d6) + version: 1.16.5(b5a9a1008f9b28340e09c03161d48735) '@dicebear/collection': specifier: ^9.2.2 version: 9.2.4(@dicebear/core@9.2.4) @@ -52,10 +52,13 @@ importers: version: 3.9.1(react-hook-form@7.62.0(react@19.1.1)) '@justaname.id/react': specifier: 0.3.180 - version: 0.3.180(8383227e2a6be16ae9aab830f74083e6) + version: 0.3.180(b36c95e2567a9a46ec24cf46ab011801) '@justaname.id/sdk': specifier: 0.2.177 version: 0.2.177(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(siwe@2.3.2(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)) + '@radix-ui/react-accordion': + specifier: ^1.2.12 + version: 1.2.12(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-slider': specifier: ^1.3.5 version: 1.3.6(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) @@ -64,10 +67,10 @@ importers: version: 2.8.2(react-redux@9.2.0(@types/react@18.3.23)(react@19.1.1)(redux@5.0.1))(react@19.1.1) '@reown/appkit': specifier: 1.6.9 - version: 1.6.9(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + version: 1.6.9(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) '@reown/appkit-adapter-wagmi': specifier: 1.6.9 - version: 1.6.9(effafef36b1ded2d90cd987f2d2bd92c) + version: 1.6.9(f6982cb15ba044993c19f5947b1d6381) '@safe-global/safe-apps-sdk': specifier: ^9.1.0 version: 9.1.0(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) @@ -85,7 +88,7 @@ importers: version: 0.6.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@tanstack/react-query': specifier: 5.8.4 - version: 5.8.4(react-dom@19.1.1(react@19.1.1))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1) + version: 5.8.4(react-dom@19.1.1(react@19.1.1))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1) '@typeform/embed-react': specifier: ^3.20.0 version: 3.20.0(react@19.1.1) @@ -205,7 +208,7 @@ importers: version: 2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) wagmi: specifier: 2.16.3 - version: 2.16.3(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@tanstack/query-core@5.8.3)(@tanstack/react-query@5.8.4(react-dom@19.1.1(react@19.1.1))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76) + version: 2.16.3(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@tanstack/query-core@5.8.3)(@tanstack/react-query@5.8.4(react-dom@19.1.1(react@19.1.1))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76) web-push: specifier: ^3.6.7 version: 3.6.7 @@ -2339,6 +2342,32 @@ packages: '@radix-ui/primitive@1.1.3': resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} + '@radix-ui/react-accordion@1.2.12': + resolution: {integrity: sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-collapsible@1.1.12': + resolution: {integrity: sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-collection@1.1.7': resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==} peerDependencies: @@ -8605,13 +8634,13 @@ snapshots: - typescript - utf-8-validate - '@daimo/pay@1.16.5(0133d12034a313dd0ab10c88bd8ab5d6)': + '@daimo/pay@1.16.5(b5a9a1008f9b28340e09c03161d48735)': dependencies: '@daimo/pay-common': 1.16.5(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10) '@solana/wallet-adapter-base': 0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)) - '@solana/wallet-adapter-react': 0.15.39(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10))(bs58@6.0.0)(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1) + '@solana/wallet-adapter-react': 0.15.39(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10))(bs58@5.0.0)(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1) '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10) - '@tanstack/react-query': 5.8.4(react-dom@19.1.1(react@19.1.1))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1) + '@tanstack/react-query': 5.8.4(react-dom@19.1.1(react@19.1.1))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1) '@trpc/client': 11.5.0(@trpc/server@11.5.0(typescript@5.9.2))(typescript@5.9.2) '@trpc/server': 11.5.0(typescript@5.9.2) buffer: 6.0.3 @@ -8627,7 +8656,7 @@ snapshots: resize-observer-polyfill: 1.5.1 styled-components: 5.3.11(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react-is@18.3.1)(react@19.1.1) viem: 2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) - wagmi: 2.16.3(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@tanstack/query-core@5.8.3)(@tanstack/react-query@5.8.4(react-dom@19.1.1(react@19.1.1))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76) + wagmi: 2.16.3(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@tanstack/query-core@5.8.3)(@tanstack/react-query@5.8.4(react-dom@19.1.1(react@19.1.1))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76) transitivePeerDependencies: - '@babel/core' - '@emotion/is-prop-valid' @@ -9661,17 +9690,17 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@justaname.id/react@0.3.180(8383227e2a6be16ae9aab830f74083e6)': + '@justaname.id/react@0.3.180(b36c95e2567a9a46ec24cf46ab011801)': dependencies: '@ensdomains/ensjs': 4.0.2(encoding@0.1.13)(typescript@5.9.2)(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76) '@justaname.id/sdk': 0.2.177(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(siwe@2.3.2(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)) - '@tanstack/react-query': 5.8.4(react-dom@19.1.1(react@19.1.1))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1) + '@tanstack/react-query': 5.8.4(react-dom@19.1.1(react@19.1.1))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1) axios: 1.11.0 ethers: 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) qs: 6.14.0 react: 19.1.1 viem: 2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) - wagmi: 2.16.3(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@tanstack/query-core@5.8.3)(@tanstack/react-query@5.8.4(react-dom@19.1.1(react@19.1.1))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76) + wagmi: 2.16.3(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@tanstack/query-core@5.8.3)(@tanstack/react-query@5.8.4(react-dom@19.1.1(react@19.1.1))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76) transitivePeerDependencies: - debug - encoding @@ -10351,6 +10380,39 @@ snapshots: '@radix-ui/primitive@1.1.3': {} + '@radix-ui/react-accordion@1.2.12(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@19.1.1) + '@radix-ui/react-direction': 1.1.1(@types/react@18.3.23)(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@18.3.23)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.23)(react@19.1.1) + react: 19.1.1 + react-dom: 19.1.1(react@19.1.1) + optionalDependencies: + '@types/react': 18.3.23 + '@types/react-dom': 18.3.7(@types/react@18.3.23) + + '@radix-ui/react-collapsible@1.1.12(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@18.3.23)(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.23)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.23)(react@19.1.1) + react: 19.1.1 + react-dom: 19.1.1(react@19.1.1) + optionalDependencies: + '@types/react': 18.3.23 + '@types/react-dom': 18.3.7(@types/react@18.3.23) + '@radix-ui/react-collection@1.1.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@19.1.1) @@ -10578,10 +10640,10 @@ snapshots: react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - '@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))': + '@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))': dependencies: merge-options: 3.0.4 - react-native: 0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10) + react-native: 0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10) optional: true '@react-native/assets-registry@0.81.0': {} @@ -10653,10 +10715,10 @@ snapshots: nullthrows: 1.1.1 yargs: 17.7.2 - '@react-native/community-cli-plugin@0.81.0(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + '@react-native/community-cli-plugin@0.81.0(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(utf-8-validate@5.0.10)': dependencies: '@react-native/dev-middleware': 0.81.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) - '@react-native/metro-config': 0.81.0(@babel/core@7.28.3) + '@react-native/metro-config': 0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10) debug: 4.4.3 invariant: 2.2.4 metro: 0.83.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) @@ -10701,7 +10763,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@react-native/metro-config@0.81.0(@babel/core@7.28.3)': + '@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10)': dependencies: '@react-native/js-polyfills': 0.81.0 '@react-native/metro-babel-transformer': 0.81.0(@babel/core@7.28.3) @@ -10709,16 +10771,18 @@ snapshots: metro-runtime: 0.83.2 transitivePeerDependencies: - '@babel/core' + - bufferutil - supports-color + - utf-8-validate '@react-native/normalize-colors@0.81.0': {} - '@react-native/virtualized-lists@0.81.0(@types/react@18.3.23)(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1)': + '@react-native/virtualized-lists@0.81.0(@types/react@18.3.23)(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1)': dependencies: invariant: 2.2.4 nullthrows: 1.1.1 react: 19.1.1 - react-native: 0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10) + react-native: 0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10) optionalDependencies: '@types/react': 18.3.23 @@ -10747,24 +10811,24 @@ snapshots: react: 19.1.1 react-redux: 9.2.0(@types/react@18.3.23)(react@19.1.1)(redux@5.0.1) - '@reown/appkit-adapter-wagmi@1.6.9(effafef36b1ded2d90cd987f2d2bd92c)': + '@reown/appkit-adapter-wagmi@1.6.9(f6982cb15ba044993c19f5947b1d6381)': dependencies: - '@reown/appkit': 1.6.9(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@reown/appkit': 1.6.9(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) '@reown/appkit-common': 1.6.9(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-core': 1.6.9(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@reown/appkit-core': 1.6.9(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) '@reown/appkit-polyfills': 1.6.9 - '@reown/appkit-scaffold-ui': 1.6.9(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.23)(react@19.1.1))(zod@3.25.76) + '@reown/appkit-scaffold-ui': 1.6.9(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.23)(react@19.1.1))(zod@3.25.76) '@reown/appkit-ui': 1.6.9 - '@reown/appkit-utils': 1.6.9(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.23)(react@19.1.1))(zod@3.25.76) + '@reown/appkit-utils': 1.6.9(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.23)(react@19.1.1))(zod@3.25.76) '@reown/appkit-wallet': 1.6.9(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10) '@wagmi/core': 2.19.0(@tanstack/query-core@5.8.3)(@types/react@18.3.23)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.5.0(react@19.1.1))(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)) - '@walletconnect/universal-provider': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@walletconnect/utils': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/universal-provider': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@walletconnect/utils': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) valtio: 1.13.2(@types/react@18.3.23)(react@19.1.1) viem: 2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) - wagmi: 2.16.3(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@tanstack/query-core@5.8.3)(@tanstack/react-query@5.8.4(react-dom@19.1.1(react@19.1.1))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76) + wagmi: 2.16.3(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@tanstack/query-core@5.8.3)(@tanstack/react-query@5.8.4(react-dom@19.1.1(react@19.1.1))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76) optionalDependencies: - '@wagmi/connectors': 5.9.3(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(@wagmi/core@2.19.0(@tanstack/query-core@5.8.3)(@types/react@18.3.23)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.5.0(react@19.1.1))(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)))(bufferutil@4.0.9)(encoding@0.1.13)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.5.0(react@19.1.1))(utf-8-validate@5.0.10)(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76) + '@wagmi/connectors': 5.9.3(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(@wagmi/core@2.19.0(@tanstack/query-core@5.8.3)(@types/react@18.3.23)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.5.0(react@19.1.1))(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)))(bufferutil@4.0.9)(encoding@0.1.13)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.5.0(react@19.1.1))(utf-8-validate@5.0.10)(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -10839,11 +10903,11 @@ snapshots: - utf-8-validate - zod - '@reown/appkit-controllers@1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)': + '@reown/appkit-controllers@1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)': dependencies: '@reown/appkit-common': 1.7.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) '@reown/appkit-wallet': 1.7.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10) - '@walletconnect/universal-provider': 2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@walletconnect/universal-provider': 2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) valtio: 1.13.2(@types/react@18.3.23)(react@19.1.1) viem: 2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) transitivePeerDependencies: @@ -10873,11 +10937,11 @@ snapshots: - utf-8-validate - zod - '@reown/appkit-core@1.6.9(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)': + '@reown/appkit-core@1.6.9(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)': dependencies: '@reown/appkit-common': 1.6.9(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) '@reown/appkit-wallet': 1.6.9(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10) - '@walletconnect/universal-provider': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@walletconnect/universal-provider': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) valtio: 1.13.2(@types/react@18.3.23)(react@19.1.1) viem: 2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) transitivePeerDependencies: @@ -10907,12 +10971,12 @@ snapshots: - utf-8-validate - zod - '@reown/appkit-pay@1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)': + '@reown/appkit-pay@1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)': dependencies: '@reown/appkit-common': 1.7.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-controllers': 1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-ui': 1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-utils': 1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.23)(react@19.1.1))(zod@3.25.76) + '@reown/appkit-controllers': 1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@reown/appkit-ui': 1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@reown/appkit-utils': 1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.23)(react@19.1.1))(zod@3.25.76) lit: 3.3.0 valtio: 1.13.2(@types/react@18.3.23)(react@19.1.1) transitivePeerDependencies: @@ -10950,12 +11014,12 @@ snapshots: dependencies: buffer: 6.0.3 - '@reown/appkit-scaffold-ui@1.6.9(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.23)(react@19.1.1))(zod@3.25.76)': + '@reown/appkit-scaffold-ui@1.6.9(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.23)(react@19.1.1))(zod@3.25.76)': dependencies: '@reown/appkit-common': 1.6.9(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-core': 1.6.9(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@reown/appkit-core': 1.6.9(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) '@reown/appkit-ui': 1.6.9 - '@reown/appkit-utils': 1.6.9(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.23)(react@19.1.1))(zod@3.25.76) + '@reown/appkit-utils': 1.6.9(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.23)(react@19.1.1))(zod@3.25.76) '@reown/appkit-wallet': 1.6.9(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10) lit: 3.1.0 transitivePeerDependencies: @@ -10986,12 +11050,12 @@ snapshots: - valtio - zod - '@reown/appkit-scaffold-ui@1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.23)(react@19.1.1))(zod@3.25.76)': + '@reown/appkit-scaffold-ui@1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.23)(react@19.1.1))(zod@3.25.76)': dependencies: '@reown/appkit-common': 1.7.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-controllers': 1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-ui': 1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-utils': 1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.23)(react@19.1.1))(zod@3.25.76) + '@reown/appkit-controllers': 1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@reown/appkit-ui': 1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@reown/appkit-utils': 1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.23)(react@19.1.1))(zod@3.25.76) '@reown/appkit-wallet': 1.7.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10) lit: 3.3.0 transitivePeerDependencies: @@ -11027,10 +11091,10 @@ snapshots: lit: 3.1.0 qrcode: 1.5.3 - '@reown/appkit-ui@1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)': + '@reown/appkit-ui@1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)': dependencies: '@reown/appkit-common': 1.7.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-controllers': 1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@reown/appkit-controllers': 1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) '@reown/appkit-wallet': 1.7.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10) lit: 3.3.0 qrcode: 1.5.3 @@ -11061,14 +11125,14 @@ snapshots: - utf-8-validate - zod - '@reown/appkit-utils@1.6.9(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.23)(react@19.1.1))(zod@3.25.76)': + '@reown/appkit-utils@1.6.9(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.23)(react@19.1.1))(zod@3.25.76)': dependencies: '@reown/appkit-common': 1.6.9(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-core': 1.6.9(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@reown/appkit-core': 1.6.9(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) '@reown/appkit-polyfills': 1.6.9 '@reown/appkit-wallet': 1.6.9(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10) '@walletconnect/logger': 2.1.2 - '@walletconnect/universal-provider': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@walletconnect/universal-provider': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) valtio: 1.13.2(@types/react@18.3.23)(react@19.1.1) viem: 2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) transitivePeerDependencies: @@ -11098,14 +11162,14 @@ snapshots: - utf-8-validate - zod - '@reown/appkit-utils@1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.23)(react@19.1.1))(zod@3.25.76)': + '@reown/appkit-utils@1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.23)(react@19.1.1))(zod@3.25.76)': dependencies: '@reown/appkit-common': 1.7.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-controllers': 1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@reown/appkit-controllers': 1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) '@reown/appkit-polyfills': 1.7.8 '@reown/appkit-wallet': 1.7.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10) '@walletconnect/logger': 2.1.2 - '@walletconnect/universal-provider': 2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@walletconnect/universal-provider': 2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) valtio: 1.13.2(@types/react@18.3.23)(react@19.1.1) viem: 2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) transitivePeerDependencies: @@ -11157,18 +11221,18 @@ snapshots: - typescript - utf-8-validate - '@reown/appkit@1.6.9(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)': + '@reown/appkit@1.6.9(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)': dependencies: '@reown/appkit-common': 1.6.9(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-core': 1.6.9(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@reown/appkit-core': 1.6.9(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) '@reown/appkit-polyfills': 1.6.9 - '@reown/appkit-scaffold-ui': 1.6.9(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.23)(react@19.1.1))(zod@3.25.76) + '@reown/appkit-scaffold-ui': 1.6.9(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.23)(react@19.1.1))(zod@3.25.76) '@reown/appkit-ui': 1.6.9 - '@reown/appkit-utils': 1.6.9(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.23)(react@19.1.1))(zod@3.25.76) + '@reown/appkit-utils': 1.6.9(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.23)(react@19.1.1))(zod@3.25.76) '@reown/appkit-wallet': 1.6.9(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10) - '@walletconnect/types': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) - '@walletconnect/universal-provider': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@walletconnect/utils': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/types': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/universal-provider': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@walletconnect/utils': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) bs58: 6.0.0 valtio: 1.13.2(@types/react@18.3.23)(react@19.1.1) viem: 2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) @@ -11199,18 +11263,18 @@ snapshots: - utf-8-validate - zod - '@reown/appkit@1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)': + '@reown/appkit@1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)': dependencies: '@reown/appkit-common': 1.7.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-controllers': 1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-pay': 1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@reown/appkit-controllers': 1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@reown/appkit-pay': 1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) '@reown/appkit-polyfills': 1.7.8 - '@reown/appkit-scaffold-ui': 1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.23)(react@19.1.1))(zod@3.25.76) - '@reown/appkit-ui': 1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-utils': 1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.23)(react@19.1.1))(zod@3.25.76) + '@reown/appkit-scaffold-ui': 1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.23)(react@19.1.1))(zod@3.25.76) + '@reown/appkit-ui': 1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@reown/appkit-utils': 1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.23)(react@19.1.1))(zod@3.25.76) '@reown/appkit-wallet': 1.7.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10) - '@walletconnect/types': 2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) - '@walletconnect/universal-provider': 2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@walletconnect/types': 2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/universal-provider': 2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) bs58: 6.0.0 valtio: 1.13.2(@types/react@18.3.23)(react@19.1.1) viem: 2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) @@ -11586,9 +11650,9 @@ snapshots: '@socket.io/component-emitter@3.1.2': {} - '@solana-mobile/mobile-wallet-adapter-protocol-web3js@2.2.3(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1)': + '@solana-mobile/mobile-wallet-adapter-protocol-web3js@2.2.3(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1)': dependencies: - '@solana-mobile/mobile-wallet-adapter-protocol': 2.2.3(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10))(bs58@5.0.0)(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1) + '@solana-mobile/mobile-wallet-adapter-protocol': 2.2.3(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10))(bs58@5.0.0)(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1) '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10) bs58: 5.0.0 js-base64: 3.7.8 @@ -11597,36 +11661,36 @@ snapshots: - react - react-native - '@solana-mobile/mobile-wallet-adapter-protocol@2.2.3(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10))(bs58@5.0.0)(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1)': + '@solana-mobile/mobile-wallet-adapter-protocol@2.2.3(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10))(bs58@5.0.0)(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1)': dependencies: '@solana/wallet-standard': 1.1.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10))(bs58@5.0.0)(react@19.1.1) '@solana/wallet-standard-util': 1.1.2 '@wallet-standard/core': 1.1.1 js-base64: 3.7.8 - react-native: 0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10) + react-native: 0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10) transitivePeerDependencies: - '@solana/wallet-adapter-base' - '@solana/web3.js' - bs58 - react - '@solana-mobile/wallet-adapter-mobile@2.2.3(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1)': + '@solana-mobile/wallet-adapter-mobile@2.2.3(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1)': dependencies: - '@solana-mobile/mobile-wallet-adapter-protocol-web3js': 2.2.3(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1) - '@solana-mobile/wallet-standard-mobile': 0.4.1(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1) + '@solana-mobile/mobile-wallet-adapter-protocol-web3js': 2.2.3(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1) + '@solana-mobile/wallet-standard-mobile': 0.4.1(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1) '@solana/wallet-adapter-base': 0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)) '@solana/wallet-standard-features': 1.3.0 '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10) js-base64: 3.7.8 optionalDependencies: - '@react-native-async-storage/async-storage': 1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)) + '@react-native-async-storage/async-storage': 1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)) transitivePeerDependencies: - react - react-native - '@solana-mobile/wallet-standard-mobile@0.4.1(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1)': + '@solana-mobile/wallet-standard-mobile@0.4.1(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1)': dependencies: - '@solana-mobile/mobile-wallet-adapter-protocol': 2.2.3(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10))(bs58@5.0.0)(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1) + '@solana-mobile/mobile-wallet-adapter-protocol': 2.2.3(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10))(bs58@5.0.0)(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1) '@solana/wallet-standard-chains': 1.1.1 '@solana/wallet-standard-features': 1.3.0 '@wallet-standard/base': 1.1.0 @@ -11669,11 +11733,11 @@ snapshots: '@wallet-standard/features': 1.1.0 eventemitter3: 5.0.1 - '@solana/wallet-adapter-react@0.15.39(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10))(bs58@6.0.0)(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1)': + '@solana/wallet-adapter-react@0.15.39(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10))(bs58@5.0.0)(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1)': dependencies: - '@solana-mobile/wallet-adapter-mobile': 2.2.3(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1) + '@solana-mobile/wallet-adapter-mobile': 2.2.3(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1) '@solana/wallet-adapter-base': 0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)) - '@solana/wallet-standard-wallet-adapter-react': 1.1.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10))(bs58@6.0.0)(react@19.1.1) + '@solana/wallet-standard-wallet-adapter-react': 1.1.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10))(bs58@5.0.0)(react@19.1.1) '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10) react: 19.1.1 transitivePeerDependencies: @@ -11714,19 +11778,6 @@ snapshots: '@wallet-standard/wallet': 1.1.0 bs58: 5.0.0 - '@solana/wallet-standard-wallet-adapter-base@1.1.4(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10))(bs58@6.0.0)': - dependencies: - '@solana/wallet-adapter-base': 0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)) - '@solana/wallet-standard-chains': 1.1.1 - '@solana/wallet-standard-features': 1.3.0 - '@solana/wallet-standard-util': 1.1.2 - '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10) - '@wallet-standard/app': 1.1.0 - '@wallet-standard/base': 1.1.0 - '@wallet-standard/features': 1.1.0 - '@wallet-standard/wallet': 1.1.0 - bs58: 6.0.0 - '@solana/wallet-standard-wallet-adapter-react@1.1.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10))(bs58@5.0.0)(react@19.1.1)': dependencies: '@solana/wallet-adapter-base': 0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)) @@ -11738,17 +11789,6 @@ snapshots: - '@solana/web3.js' - bs58 - '@solana/wallet-standard-wallet-adapter-react@1.1.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10))(bs58@6.0.0)(react@19.1.1)': - dependencies: - '@solana/wallet-adapter-base': 0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)) - '@solana/wallet-standard-wallet-adapter-base': 1.1.4(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10))(bs58@6.0.0) - '@wallet-standard/app': 1.1.0 - '@wallet-standard/base': 1.1.0 - react: 19.1.1 - transitivePeerDependencies: - - '@solana/web3.js' - - bs58 - '@solana/wallet-standard-wallet-adapter@1.1.4(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10))(bs58@5.0.0)(react@19.1.1)': dependencies: '@solana/wallet-standard-wallet-adapter-base': 1.1.4(@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10))(bs58@5.0.0) @@ -11839,13 +11879,13 @@ snapshots: '@tanstack/query-core@5.8.3': {} - '@tanstack/react-query@5.8.4(react-dom@19.1.1(react@19.1.1))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1)': + '@tanstack/react-query@5.8.4(react-dom@19.1.1(react@19.1.1))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1)': dependencies: '@tanstack/query-core': 5.8.3 react: 19.1.1 optionalDependencies: react-dom: 19.1.1(react@19.1.1) - react-native: 0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10) + react-native: 0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10) '@tanstack/react-virtual@3.13.12(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: @@ -12113,7 +12153,7 @@ snapshots: next: 15.3.1(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 - '@wagmi/connectors@5.9.3(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(@wagmi/core@2.19.0(@tanstack/query-core@5.8.3)(@types/react@18.3.23)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.5.0(react@19.1.1))(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)))(bufferutil@4.0.9)(encoding@0.1.13)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(utf-8-validate@5.0.10)(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76)': + '@wagmi/connectors@5.9.3(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(@wagmi/core@2.19.0(@tanstack/query-core@5.8.3)(@types/react@18.3.23)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.5.0(react@19.1.1))(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)))(bufferutil@4.0.9)(encoding@0.1.13)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(utf-8-validate@5.0.10)(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76)': dependencies: '@base-org/account': 1.1.1(@types/react@18.3.23)(bufferutil@4.0.9)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(utf-8-validate@5.0.10)(zod@3.25.76) '@coinbase/wallet-sdk': 4.3.6(@types/react@18.3.23)(bufferutil@4.0.9)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(utf-8-validate@5.0.10)(zod@3.25.76) @@ -12122,7 +12162,7 @@ snapshots: '@safe-global/safe-apps-provider': 0.18.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) '@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) '@wagmi/core': 2.19.0(@tanstack/query-core@5.8.3)(@types/react@18.3.23)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.5.0(react@19.1.1))(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)) - '@walletconnect/ethereum-provider': 2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@walletconnect/ethereum-provider': 2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) cbw-sdk: '@coinbase/wallet-sdk@3.9.3' viem: 2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) optionalDependencies: @@ -12156,7 +12196,7 @@ snapshots: - utf-8-validate - zod - '@wagmi/connectors@5.9.3(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(@wagmi/core@2.19.0(@tanstack/query-core@5.8.3)(@types/react@18.3.23)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.5.0(react@19.1.1))(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)))(bufferutil@4.0.9)(encoding@0.1.13)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.5.0(react@19.1.1))(utf-8-validate@5.0.10)(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76)': + '@wagmi/connectors@5.9.3(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(@wagmi/core@2.19.0(@tanstack/query-core@5.8.3)(@types/react@18.3.23)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.5.0(react@19.1.1))(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)))(bufferutil@4.0.9)(encoding@0.1.13)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.5.0(react@19.1.1))(utf-8-validate@5.0.10)(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76)': dependencies: '@base-org/account': 1.1.1(@types/react@18.3.23)(bufferutil@4.0.9)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.5.0(react@19.1.1))(utf-8-validate@5.0.10)(zod@3.25.76) '@coinbase/wallet-sdk': 4.3.6(@types/react@18.3.23)(bufferutil@4.0.9)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.5.0(react@19.1.1))(utf-8-validate@5.0.10)(zod@3.25.76) @@ -12165,7 +12205,7 @@ snapshots: '@safe-global/safe-apps-provider': 0.18.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) '@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) '@wagmi/core': 2.19.0(@tanstack/query-core@5.8.3)(@types/react@18.3.23)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.5.0(react@19.1.1))(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)) - '@walletconnect/ethereum-provider': 2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@walletconnect/ethereum-provider': 2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) cbw-sdk: '@coinbase/wallet-sdk@3.9.3' viem: 2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) optionalDependencies: @@ -12257,21 +12297,21 @@ snapshots: dependencies: '@wallet-standard/base': 1.1.0 - '@walletconnect/core@2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + '@walletconnect/core@2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(utf-8-validate@5.0.10)': dependencies: '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-provider': 1.0.14 '@walletconnect/jsonrpc-types': 1.0.4 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/jsonrpc-ws-connection': 1.0.16(bufferutil@4.0.9)(utf-8-validate@5.0.10) - '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) '@walletconnect/logger': 2.1.2 '@walletconnect/relay-api': 1.0.11 '@walletconnect/relay-auth': 1.1.0 '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) - '@walletconnect/utils': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/types': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/utils': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) '@walletconnect/window-getters': 1.0.1 events: 3.3.0 lodash.isequal: 4.5.0 @@ -12298,21 +12338,21 @@ snapshots: - uploadthing - utf-8-validate - '@walletconnect/core@2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)': + '@walletconnect/core@2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)': dependencies: '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-provider': 1.0.14 '@walletconnect/jsonrpc-types': 1.0.4 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/jsonrpc-ws-connection': 1.0.16(bufferutil@4.0.9)(utf-8-validate@5.0.10) - '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) '@walletconnect/logger': 2.1.2 '@walletconnect/relay-api': 1.0.11 '@walletconnect/relay-auth': 1.1.0 '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) - '@walletconnect/utils': 2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@walletconnect/types': 2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/utils': 2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) '@walletconnect/window-getters': 1.0.1 es-toolkit: 1.33.0 events: 3.3.0 @@ -12341,21 +12381,21 @@ snapshots: - utf-8-validate - zod - '@walletconnect/core@2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)': + '@walletconnect/core@2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)': dependencies: '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-provider': 1.0.14 '@walletconnect/jsonrpc-types': 1.0.4 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/jsonrpc-ws-connection': 1.0.16(bufferutil@4.0.9)(utf-8-validate@5.0.10) - '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) '@walletconnect/logger': 2.1.2 '@walletconnect/relay-api': 1.0.11 '@walletconnect/relay-auth': 1.1.0 '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) - '@walletconnect/utils': 2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@walletconnect/types': 2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/utils': 2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) '@walletconnect/window-getters': 1.0.1 es-toolkit: 1.33.0 events: 3.3.0 @@ -12388,18 +12428,18 @@ snapshots: dependencies: tslib: 1.14.1 - '@walletconnect/ethereum-provider@2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)': + '@walletconnect/ethereum-provider@2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)': dependencies: - '@reown/appkit': 1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@reown/appkit': 1.7.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) '@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/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) - '@walletconnect/sign-client': 2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) - '@walletconnect/types': 2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) - '@walletconnect/universal-provider': 2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) - '@walletconnect/utils': 2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/sign-client': 2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@walletconnect/types': 2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/universal-provider': 2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@walletconnect/utils': 2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) events: 3.3.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -12475,13 +12515,13 @@ snapshots: - bufferutil - utf-8-validate - '@walletconnect/keyvaluestorage@1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))': + '@walletconnect/keyvaluestorage@1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))': dependencies: '@walletconnect/safe-json': 1.0.2 idb-keyval: 6.2.2 unstorage: 1.16.1(idb-keyval@6.2.2) optionalDependencies: - '@react-native-async-storage/async-storage': 1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)) + '@react-native-async-storage/async-storage': 1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -12522,16 +12562,16 @@ snapshots: dependencies: tslib: 1.14.1 - '@walletconnect/sign-client@2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + '@walletconnect/sign-client@2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(utf-8-validate@5.0.10)': dependencies: - '@walletconnect/core': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@walletconnect/core': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/logger': 2.1.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) - '@walletconnect/utils': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/types': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/utils': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) events: 3.3.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -12555,16 +12595,16 @@ snapshots: - uploadthing - utf-8-validate - '@walletconnect/sign-client@2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)': + '@walletconnect/sign-client@2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)': dependencies: - '@walletconnect/core': 2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@walletconnect/core': 2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/logger': 2.1.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) - '@walletconnect/utils': 2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@walletconnect/types': 2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/utils': 2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) events: 3.3.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -12590,16 +12630,16 @@ snapshots: - utf-8-validate - zod - '@walletconnect/sign-client@2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)': + '@walletconnect/sign-client@2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)': dependencies: - '@walletconnect/core': 2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@walletconnect/core': 2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/logger': 2.1.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) - '@walletconnect/utils': 2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@walletconnect/types': 2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/utils': 2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) events: 3.3.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -12629,12 +12669,12 @@ snapshots: dependencies: tslib: 1.14.1 - '@walletconnect/types@2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))': + '@walletconnect/types@2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))': dependencies: '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-types': 1.0.4 - '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) '@walletconnect/logger': 2.1.2 events: 3.3.0 transitivePeerDependencies: @@ -12657,12 +12697,12 @@ snapshots: - ioredis - uploadthing - '@walletconnect/types@2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))': + '@walletconnect/types@2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))': dependencies: '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-types': 1.0.4 - '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) '@walletconnect/logger': 2.1.2 events: 3.3.0 transitivePeerDependencies: @@ -12685,12 +12725,12 @@ snapshots: - ioredis - uploadthing - '@walletconnect/types@2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))': + '@walletconnect/types@2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))': dependencies: '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-types': 1.0.4 - '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) '@walletconnect/logger': 2.1.2 events: 3.3.0 transitivePeerDependencies: @@ -12713,18 +12753,18 @@ snapshots: - ioredis - uploadthing - '@walletconnect/universal-provider@2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)': + '@walletconnect/universal-provider@2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)': dependencies: '@walletconnect/events': 1.0.1 '@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/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) '@walletconnect/logger': 2.1.2 - '@walletconnect/sign-client': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(utf-8-validate@5.0.10) - '@walletconnect/types': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) - '@walletconnect/utils': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/sign-client': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@walletconnect/types': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/utils': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) events: 3.3.0 lodash: 4.17.21 transitivePeerDependencies: @@ -12750,18 +12790,18 @@ snapshots: - uploadthing - utf-8-validate - '@walletconnect/universal-provider@2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)': + '@walletconnect/universal-provider@2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)': dependencies: '@walletconnect/events': 1.0.1 '@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/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) '@walletconnect/logger': 2.1.2 - '@walletconnect/sign-client': 2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) - '@walletconnect/types': 2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) - '@walletconnect/utils': 2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@walletconnect/sign-client': 2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@walletconnect/types': 2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/utils': 2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) es-toolkit: 1.33.0 events: 3.3.0 transitivePeerDependencies: @@ -12789,18 +12829,18 @@ snapshots: - utf-8-validate - zod - '@walletconnect/universal-provider@2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)': + '@walletconnect/universal-provider@2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)': dependencies: '@walletconnect/events': 1.0.1 '@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/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) '@walletconnect/logger': 2.1.2 - '@walletconnect/sign-client': 2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) - '@walletconnect/types': 2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) - '@walletconnect/utils': 2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@walletconnect/sign-client': 2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + '@walletconnect/types': 2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/utils': 2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) es-toolkit: 1.33.0 events: 3.3.0 transitivePeerDependencies: @@ -12828,19 +12868,19 @@ snapshots: - utf-8-validate - zod - '@walletconnect/utils@2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))': + '@walletconnect/utils@2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))': dependencies: '@ethersproject/transactions': 5.7.0 '@noble/ciphers': 1.2.1 '@noble/curves': 1.8.1 '@noble/hashes': 1.7.1 '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) '@walletconnect/relay-api': 1.0.11 '@walletconnect/relay-auth': 1.1.0 '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/types': 2.18.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) '@walletconnect/window-getters': 1.0.1 '@walletconnect/window-metadata': 1.0.1 detect-browser: 5.3.0 @@ -12867,18 +12907,18 @@ snapshots: - ioredis - uploadthing - '@walletconnect/utils@2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)': + '@walletconnect/utils@2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)': dependencies: '@noble/ciphers': 1.2.1 '@noble/curves': 1.8.1 '@noble/hashes': 1.7.1 '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) '@walletconnect/relay-api': 1.0.11 '@walletconnect/relay-auth': 1.1.0 '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/types': 2.21.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) '@walletconnect/window-getters': 1.0.1 '@walletconnect/window-metadata': 1.0.1 bs58: 6.0.0 @@ -12910,18 +12950,18 @@ snapshots: - utf-8-validate - zod - '@walletconnect/utils@2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)': + '@walletconnect/utils@2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)': dependencies: '@noble/ciphers': 1.2.1 '@noble/curves': 1.8.1 '@noble/hashes': 1.7.1 '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) '@walletconnect/relay-api': 1.0.11 '@walletconnect/relay-auth': 1.1.0 '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) + '@walletconnect/types': 2.21.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))) '@walletconnect/window-getters': 1.0.1 '@walletconnect/window-metadata': 1.0.1 bs58: 6.0.0 @@ -16257,16 +16297,16 @@ snapshots: react-is@18.3.1: {} - react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10): + react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10): dependencies: '@jest/create-cache-key-function': 29.7.0 '@react-native/assets-registry': 0.81.0 '@react-native/codegen': 0.81.0(@babel/core@7.28.3) - '@react-native/community-cli-plugin': 0.81.0(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@react-native/community-cli-plugin': 0.81.0(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@react-native/gradle-plugin': 0.81.0 '@react-native/js-polyfills': 0.81.0 '@react-native/normalize-colors': 0.81.0 - '@react-native/virtualized-lists': 0.81.0(@types/react@18.3.23)(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1) + '@react-native/virtualized-lists': 0.81.0(@types/react@18.3.23)(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1) abort-controller: 3.0.0 anser: 1.4.10 ansi-regex: 5.0.1 @@ -17321,10 +17361,10 @@ snapshots: dependencies: xml-name-validator: 4.0.0 - wagmi@2.16.3(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@tanstack/query-core@5.8.3)(@tanstack/react-query@5.8.4(react-dom@19.1.1(react@19.1.1))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76): + wagmi@2.16.3(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@tanstack/query-core@5.8.3)(@tanstack/react-query@5.8.4(react-dom@19.1.1(react@19.1.1))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1))(@types/react@18.3.23)(bufferutil@4.0.9)(encoding@0.1.13)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76): dependencies: - '@tanstack/react-query': 5.8.4(react-dom@19.1.1(react@19.1.1))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1) - '@wagmi/connectors': 5.9.3(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(@wagmi/core@2.19.0(@tanstack/query-core@5.8.3)(@types/react@18.3.23)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.5.0(react@19.1.1))(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)))(bufferutil@4.0.9)(encoding@0.1.13)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(utf-8-validate@5.0.10)(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76) + '@tanstack/react-query': 5.8.4(react-dom@19.1.1(react@19.1.1))(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10))(react@19.1.1) + '@wagmi/connectors': 5.9.3(@react-native-async-storage/async-storage@1.24.0(react-native@0.81.0(@babel/core@7.28.3)(@react-native/metro-config@0.81.0(@babel/core@7.28.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@types/react@18.3.23)(bufferutil@4.0.9)(react@19.1.1)(utf-8-validate@5.0.10)))(@types/react@18.3.23)(@wagmi/core@2.19.0(@tanstack/query-core@5.8.3)(@types/react@18.3.23)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.5.0(react@19.1.1))(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)))(bufferutil@4.0.9)(encoding@0.1.13)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(utf-8-validate@5.0.10)(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76) '@wagmi/core': 2.19.0(@tanstack/query-core@5.8.3)(@types/react@18.3.23)(immer@10.1.1)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(viem@2.33.3(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76)) react: 19.1.1 use-sync-external-store: 1.4.0(react@19.1.1) diff --git a/src/components/Profile/components/CountryListSection.tsx b/src/components/Profile/components/CountryListSection.tsx index 98abdf8e9..833624155 100644 --- a/src/components/Profile/components/CountryListSection.tsx +++ b/src/components/Profile/components/CountryListSection.tsx @@ -1,6 +1,8 @@ import { ActionListCard } from '@/components/ActionListCard' import { type CountryData } from '@/components/AddMoney/consts' import { getCardPosition } from '@/components/Global/Card' +import { Icon } from '@/components/Global/Icons/Icon' +import * as Accordion from '@radix-ui/react-accordion' import Image from 'next/image' import { type ReactNode } from 'react' @@ -11,6 +13,8 @@ interface CountryListSectionProps { onCountryClick: (country: CountryData & { isSupported?: boolean }, index: number) => void rightContent?: (country: CountryData & { isSupported?: boolean }, index: number) => ReactNode isDisabled?: boolean + value: string + defaultOpen?: boolean } const CountryListSection = ({ @@ -20,44 +24,55 @@ const CountryListSection = ({ onCountryClick, rightContent, isDisabled = false, + value, + defaultOpen = false, }: CountryListSectionProps) => { return ( -
-

{title}

- {description &&

{description}

} - - {countries.map((country, index) => { - const position = getCardPosition(index, countries.length) - return ( - onCountryClick(country, index)} - position={position} - isDisabled={isDisabled} - leftIcon={ -
- {`${country.title} { - e.currentTarget.style.display = 'none' - }} - /> -
- } + + + +

{title}

+ - ) - })} -
+ + + {description &&

{description}

} + + {countries.map((country, index) => { + const position = getCardPosition(index, countries.length) + return ( + onCountryClick(country, index)} + position={position} + isDisabled={isDisabled} + leftIcon={ +
+ {`${country.title} { + e.currentTarget.style.display = 'none' + }} + /> +
+ } + /> + ) + })} +
+ ) } diff --git a/src/components/Profile/components/IdentityVerificationCountryList.tsx b/src/components/Profile/components/IdentityVerificationCountryList.tsx index 34070a334..bc6b0416b 100644 --- a/src/components/Profile/components/IdentityVerificationCountryList.tsx +++ b/src/components/Profile/components/IdentityVerificationCountryList.tsx @@ -3,6 +3,7 @@ import StatusBadge from '@/components/Global/Badges/StatusBadge' import { Icon } from '@/components/Global/Icons/Icon' import { SearchInput } from '@/components/SearchInput' import { getCountriesForRegion } from '@/utils/identityVerification' +import * as Accordion from '@radix-ui/react-accordion' import { useRouter } from 'next/navigation' import { useState } from 'react' import CountryListSection from './CountryListSection' @@ -35,27 +36,33 @@ const IdentityVerificationCountryList = ({ region }: { region: string }) => { />
- { - if (isLatam) { - router.push(`/profile/identity-verification/${region}/${encodeURIComponent(country.id)}`) - } else { - router.push(`/profile/identity-verification/${region}/${encodeURIComponent('bridge')}`) - } - }} - rightContent={() => (isLatam ? undefined : )} - /> - - {}} - rightContent={() => } - isDisabled - /> + + { + if (isLatam) { + router.push(`/profile/identity-verification/${region}/${encodeURIComponent(country.id)}`) + } else { + router.push(`/profile/identity-verification/${region}/${encodeURIComponent('bridge')}`) + } + }} + rightContent={() => (isLatam ? undefined : )} + defaultOpen + /> + + {}} + rightContent={() => } + defaultOpen + isDisabled + /> +
) } diff --git a/tailwind.config.js b/tailwind.config.js index 6d9525faa..b0b5a1743 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -197,6 +197,14 @@ module.exports = { '0%, 50%': { opacity: '1' }, '50.01%, 100%': { opacity: '0' }, }, + 'accordion-down': { + from: { height: '0' }, + to: { height: 'var(--radix-accordion-content-height)' }, + }, + 'accordion-up': { + from: { height: 'var(--radix-accordion-content-height)' }, + to: { height: '0' }, + }, }, animation: { colorPulse: 'colorPulse 2.5s cubic-bezier(0.4, 0, 0.6, 1) infinite', @@ -205,6 +213,8 @@ module.exports = { 'pulsate-slow': 'pulsateDeep 4s ease-in-out infinite', 'pulse-strong': 'pulse-strong 1s ease-in-out infinite', blink: 'blink 1.5s step-end infinite', + 'accordion-down': 'accordion-down 0.3s cubic-bezier(0.87, 0, 0.13, 1)', + 'accordion-up': 'accordion-up 0.3s cubic-bezier(0.87, 0, 0.13, 1)', }, opacity: { 85: '.85', From b3238d7ed97c6f4a6ad6691736cdfdee33596c41 Mon Sep 17 00:00:00 2001 From: Zishan Mohd Date: Tue, 4 Nov 2025 12:59:54 +0530 Subject: [PATCH 06/14] run formatter --- src/components/Profile/components/CountryListSection.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Profile/components/CountryListSection.tsx b/src/components/Profile/components/CountryListSection.tsx index 833624155..803cb5f48 100644 --- a/src/components/Profile/components/CountryListSection.tsx +++ b/src/components/Profile/components/CountryListSection.tsx @@ -39,7 +39,7 @@ const CountryListSection = ({ {description &&

{description}

} - + {countries.map((country, index) => { const position = getCardPosition(index, countries.length) return ( From 821dc7dd7f2a0d4daa119e3fb86214dc2616e254 Mon Sep 17 00:00:00 2001 From: Zishan Mohd Date: Tue, 4 Nov 2025 13:20:58 +0530 Subject: [PATCH 07/14] fix: cr comments --- src/components/IdentityVerification/StartVerificationModal.tsx | 2 +- src/components/Profile/views/RegionsVerification.view.tsx | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/IdentityVerification/StartVerificationModal.tsx b/src/components/IdentityVerification/StartVerificationModal.tsx index 2eccb13fe..30f812569 100644 --- a/src/components/IdentityVerification/StartVerificationModal.tsx +++ b/src/components/IdentityVerification/StartVerificationModal.tsx @@ -88,7 +88,7 @@ const StartVerificationModal = ({ } if (isSelectedCountryMantecaCountry && !isIdentityMantecaCountry) { - return "Without an Argentina Issued ID, you can still pay in stores using QR codes but you won't be able to transfer money directly to bank accounts." + return `Without an ${selectedCountry.title} Issued ID, you can still pay in stores using QR codes but you won't be able to transfer money directly to bank accounts.` } return ( diff --git a/src/components/Profile/views/RegionsVerification.view.tsx b/src/components/Profile/views/RegionsVerification.view.tsx index c95be5877..056d4be63 100644 --- a/src/components/Profile/views/RegionsVerification.view.tsx +++ b/src/components/Profile/views/RegionsVerification.view.tsx @@ -54,6 +54,7 @@ const RegionsList = ({ regions, isLocked }: RegionsListProps) => {
{regions.map((region, index) => ( Date: Tue, 4 Nov 2025 14:13:41 +0530 Subject: [PATCH 08/14] fix: loading state on issuer country select --- src/components/Common/CountryList.tsx | 5 ++++- src/components/Profile/views/IdentityVerification.view.tsx | 6 +++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/components/Common/CountryList.tsx b/src/components/Common/CountryList.tsx index 72ba169c2..89d72d036 100644 --- a/src/components/Common/CountryList.tsx +++ b/src/components/Common/CountryList.tsx @@ -31,6 +31,7 @@ interface CountryListViewProps { // when true and viewMode is 'add-withdraw', disable countries that are not supported // this is used for the send -> bank flow to prevent selecting unsupported countries enforceSupportedCountries?: boolean + showLoadingState?: boolean } /** @@ -43,6 +44,7 @@ interface CountryListViewProps { * @param {function} props.onCountryClick The function to call when a country is clicked * @param {function} props.onCryptoClick The function to call when the crypto button is clicked * @param {string} props.flow The flow of the list, either 'add' or 'withdraw', only required for 'add-withdraw' view mode + * @param {boolean} props.showLoadingState Whether to show loading state when clicking a country, true by default * @returns {JSX.Element} */ export const CountryList = ({ @@ -54,6 +56,7 @@ export const CountryList = ({ flow, getRightContent, enforceSupportedCountries, + showLoadingState = true, // true by default to show loading state when clicking a country }: CountryListViewProps) => { const searchParams = useSearchParams() // get currencyCode from search params @@ -181,7 +184,7 @@ export const CountryList = ({ title={country.title} rightContent={ customRight ?? - (clickedCountryId === country.id ? ( + (showLoadingState && clickedCountryId === country.id ? ( ) : !isSupported ? ( diff --git a/src/components/Profile/views/IdentityVerification.view.tsx b/src/components/Profile/views/IdentityVerification.view.tsx index ef2b478e5..eef362924 100644 --- a/src/components/Profile/views/IdentityVerification.view.tsx +++ b/src/components/Profile/views/IdentityVerification.view.tsx @@ -204,6 +204,7 @@ const IdentityVerificationView = () => { setUserClickedCountry({ id, title }) setIsStartVerificationModalOpen(true) }} + showLoadingState={false} // we don't want to show loading state when clicking a country, here because there is no async operation when clicking a country />
)} @@ -223,7 +224,10 @@ const IdentityVerificationView = () => { visible={isStartVerificationModalOpen} onClose={() => { // we dont show ID issuer country list for bridge countries - if (isBridgeSupportedCountry(userClickedCountry.id) || userClickedCountry.id === 'bridge') { + if ( + isBridgeSupportedCountry(selectedCountryParams.id) || + selectedCountryParams.id === 'bridge' + ) { handleRedirect() } else { setIsStartVerificationModalOpen(false) From 70383beec2ef1a925d88f86a5b2557cf55ed5510 Mon Sep 17 00:00:00 2001 From: Zishan Mohd Date: Tue, 4 Nov 2025 23:08:44 +0530 Subject: [PATCH 09/14] feat: add KYC completed modal --- src/app/(mobile-ui)/home/page.tsx | 14 +++ .../Home/KycCompletedModal/index.tsx | 105 ++++++++++++++++++ .../StartVerificationModal.tsx | 51 +-------- src/hooks/useIdentityVerification.tsx | 55 +++++++++ src/interfaces/interfaces.ts | 1 + 5 files changed, 181 insertions(+), 45 deletions(-) create mode 100644 src/components/Home/KycCompletedModal/index.tsx diff --git a/src/app/(mobile-ui)/home/page.tsx b/src/app/(mobile-ui)/home/page.tsx index 5cca971d8..f63903c03 100644 --- a/src/app/(mobile-ui)/home/page.tsx +++ b/src/app/(mobile-ui)/home/page.tsx @@ -38,6 +38,8 @@ import NoMoreJailModal from '@/components/Global/NoMoreJailModal' import EarlyUserModal from '@/components/Global/EarlyUserModal' import InvitesIcon from '@/components/Home/InvitesIcon' import NavigationArrow from '@/components/Global/NavigationArrow' +import KycCompletedModal from '@/components/Home/KycCompletedModal' +import { updateUserById } from '@/app/actions/users' const BALANCE_WARNING_THRESHOLD = parseInt(process.env.NEXT_PUBLIC_BALANCE_WARNING_THRESHOLD ?? '500') const BALANCE_WARNING_EXPIRY = parseInt(process.env.NEXT_PUBLIC_BALANCE_WARNING_EXPIRY ?? '1814400') // 21 days in seconds @@ -65,6 +67,7 @@ export default function Home() { const [showBalanceWarningModal, setShowBalanceWarningModal] = useState(false) // const [showReferralCampaignModal, setShowReferralCampaignModal] = useState(false) const [isPostSignupActionModalVisible, setIsPostSignupActionModalVisible] = useState(false) + const [showKycModal, setShowKycModal] = useState(user?.user.showKycCompletedModal ?? false) const userFullName = useMemo(() => { if (!user) return @@ -289,6 +292,17 @@ export default function Home() { + { + updateUserById({ + userId: user?.user.userId, + showKycCompletedModal: false, + }) + setShowKycModal(false) + }} + /> + {/* Balance Warning Modal */} void }) => { + const { user } = useAuth() + const [approvedCountryData, setApprovedCountryData] = useState(null) + + const { isUserBridgeKycApproved, isUserMantecaKycApproved } = useKycStatus() + const { getVerificationUnlockItems } = useIdentityVerification() + + const kycApprovalType = useMemo(() => { + if (isUserBridgeKycApproved && isUserMantecaKycApproved) { + return 'all' + } + + if (isUserBridgeKycApproved) { + return 'bridge' + } + if (isUserMantecaKycApproved) { + return 'manteca' + } + return 'none' + }, [isUserBridgeKycApproved, isUserMantecaKycApproved]) + + const items = useMemo(() => { + return getVerificationUnlockItems(approvedCountryData?.title) + }, [getVerificationUnlockItems, approvedCountryData?.title]) + + useEffect(() => { + // If manteca KYC is approved, then we need to get the approved country + if (isUserMantecaKycApproved) { + const supportedCountries = Object.keys(MantecaSupportedExchanges) + let approvedCountry: string | undefined | null + + // get the manteca approved country + user?.user.kycVerifications?.forEach((v) => { + if ( + v.provider === 'MANTECA' && + supportedCountries.includes((v.mantecaGeo || '').toUpperCase()) && + v.status === MantecaKycStatus.ACTIVE + ) { + approvedCountry = v.mantecaGeo + } + }) + + if (approvedCountry) { + const _approvedCountryData = countryData.find( + (c) => c.iso2?.toUpperCase() === approvedCountry?.toUpperCase() + ) + setApprovedCountryData(_approvedCountryData || null) + } + } + }, [isUserMantecaKycApproved]) + + return ( + +

You now have access to:

+ { + if (kycApprovalType === 'all') { + // Show all items except the manteca QR Payments item because this already exists in brige items + return !( + item.type === 'manteca' && item.title === 'QR Payments in Brazil and Argentina' + ) + } + return item.type === kycApprovalType + }) + .map((item) => item.title)} + /> +
+ } + /> + ) +} + +export default KycCompletedModal diff --git a/src/components/IdentityVerification/StartVerificationModal.tsx b/src/components/IdentityVerification/StartVerificationModal.tsx index 30f812569..54b53b841 100644 --- a/src/components/IdentityVerification/StartVerificationModal.tsx +++ b/src/components/IdentityVerification/StartVerificationModal.tsx @@ -5,6 +5,7 @@ import InfoCard from '../Global/InfoCard' import { Icon } from '../Global/Icons/Icon' import { MantecaSupportedExchanges } from '../AddMoney/consts' import { useMemo } from 'react' +import { useIdentityVerification } from '@/hooks/useIdentityVerification' interface StartVerificationModalProps { visible: boolean @@ -21,51 +22,11 @@ const StartVerificationModal = ({ selectedIdentityCountry, selectedCountry, }: StartVerificationModalProps) => { - const items = [ - { - title: ( -

- QR Payments in Argentina and Brazil -

- ), - type: 'bridge', - }, - { - title: ( -

- United States ACH and Wire transfers -

- ), - type: 'bridge', - }, - { - title: ( -

- Europe SEPA transfers (+30 countries) -

- ), - type: 'bridge', - }, - { - title: ( -

- Mexico SPEI transfers -

- ), - type: 'bridge', - }, - { - // Using identity country here for the title - // eg scenario - user selected Argentina but has a Brazil ID, they will be - // able to only use QR in Argentina but can do both Bank transfers and QR in Brazil. - title: `Bank transfers to your own accounts in ${selectedIdentityCountry.title}`, - type: 'manteca', - }, - { - title: 'QR Payments in Brazil and Argentina', - type: 'manteca', - }, - ] + const { getVerificationUnlockItems } = useIdentityVerification() + + const items = useMemo(() => { + return getVerificationUnlockItems(selectedIdentityCountry.title) + }, [getVerificationUnlockItems, selectedIdentityCountry.title]) const isIdentityMantecaCountry = useMemo( () => Object.prototype.hasOwnProperty.call(MantecaSupportedExchanges, selectedIdentityCountry.id.toUpperCase()), diff --git a/src/hooks/useIdentityVerification.tsx b/src/hooks/useIdentityVerification.tsx index 1ecc38d24..48b5ad05f 100644 --- a/src/hooks/useIdentityVerification.tsx +++ b/src/hooks/useIdentityVerification.tsx @@ -5,6 +5,7 @@ import { useMemo, useCallback } from 'react' import { useAuth } from '@/context/authContext' import { MantecaKycStatus } from '@/interfaces' import { MantecaSupportedExchanges, countryData } from '@/components/AddMoney/consts' +import React from 'react' export type Region = { path: string @@ -13,6 +14,11 @@ export type Region = { description?: string } +export type VerificationUnlockItem = { + title: React.ReactNode | string + type: 'bridge' | 'manteca' +} + const MANTECA_SUPPORTED_REGIONS = ['LATAM'] const BRIDGE_SUPPORTED_REGIONS = ['North America', 'Europe'] @@ -114,6 +120,54 @@ export const useIdentityVerification = () => { return countryData.find((country) => country.id.toUpperCase() === countryCode.toUpperCase())?.title ?? null }, []) + const getVerificationUnlockItems = useCallback((countryTitle?: string): VerificationUnlockItem[] => { + return [ + { + title: ( +

+ QR Payments in Argentina and Brazil +

+ ), + type: 'bridge', + }, + { + title: ( +

+ United States ACH and Wire transfers +

+ ), + type: 'bridge', + }, + { + title: ( +

+ Europe SEPA transfers (+30 countries) +

+ ), + type: 'bridge', + }, + { + title: ( +

+ Mexico SPEI transfers +

+ ), + type: 'bridge', + }, + { + // Using identity country here for the title + // eg scenario - user selected Argentina but has a Brazil ID, they will be + // able to only use QR in Argentina but can do both Bank transfers and QR in Brazil. + title: `Bank transfers to your own accounts in ${countryTitle || 'your country'}`, + type: 'manteca', + }, + { + title: 'QR Payments in Brazil and Argentina', + type: 'manteca', + }, + ] + }, []) + return { lockedRegions, unlockedRegions, @@ -121,5 +175,6 @@ export const useIdentityVerification = () => { isVerifiedForCountry, isRegionAlreadyUnlocked, getCountryTitle, + getVerificationUnlockItems, } } diff --git a/src/interfaces/interfaces.ts b/src/interfaces/interfaces.ts index 6ba29eeef..f2991ce66 100644 --- a/src/interfaces/interfaces.ts +++ b/src/interfaces/interfaces.ts @@ -258,6 +258,7 @@ export interface User { showFullName: boolean createdAt: string accounts: Account[] + showKycCompletedModal: boolean badges?: Array<{ id?: string code: string From a12d51dfecab57ab37ee99cdef6ab5221a99b35b Mon Sep 17 00:00:00 2001 From: Zishan Mohd Date: Tue, 4 Nov 2025 23:17:13 +0530 Subject: [PATCH 10/14] add missing dependency --- src/components/Home/KycCompletedModal/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Home/KycCompletedModal/index.tsx b/src/components/Home/KycCompletedModal/index.tsx index b99ef4d49..1377b3a50 100644 --- a/src/components/Home/KycCompletedModal/index.tsx +++ b/src/components/Home/KycCompletedModal/index.tsx @@ -58,7 +58,7 @@ const KycCompletedModal = ({ isOpen, onClose }: { isOpen: boolean; onClose: () = setApprovedCountryData(_approvedCountryData || null) } } - }, [isUserMantecaKycApproved]) + }, [isUserMantecaKycApproved, user]) return ( Date: Fri, 7 Nov 2025 18:17:50 +0530 Subject: [PATCH 11/14] Add js doc comments in `useIdentityVerification` hook --- src/hooks/useIdentityVerification.tsx | 81 +++++++++++++++++++++++++-- 1 file changed, 77 insertions(+), 4 deletions(-) diff --git a/src/hooks/useIdentityVerification.tsx b/src/hooks/useIdentityVerification.tsx index 48b5ad05f..d73f4cc15 100644 --- a/src/hooks/useIdentityVerification.tsx +++ b/src/hooks/useIdentityVerification.tsx @@ -7,6 +7,7 @@ import { MantecaKycStatus } from '@/interfaces' import { MantecaSupportedExchanges, countryData } from '@/components/AddMoney/consts' import React from 'react' +/** Represents a geographic region with its display information */ export type Region = { path: string name: string @@ -14,12 +15,16 @@ export type Region = { description?: string } +/** Represents a feature that gets unlocked after identity verification */ export type VerificationUnlockItem = { title: React.ReactNode | string type: 'bridge' | 'manteca' } +// Manteca handles LATAM countries (Argentina, Brazil, Mexico, etc.) const MANTECA_SUPPORTED_REGIONS = ['LATAM'] + +// Bridge handles North America and Europe const BRIDGE_SUPPORTED_REGIONS = ['North America', 'Europe'] const SUPPORTED_REGIONS: Region[] = [ @@ -45,6 +50,8 @@ const SUPPORTED_REGIONS: Region[] = [ }, ] +// Special case: Users with Bridge KYC can do QR payments in these countries +// even without full Manteca KYC const MANTECA_QR_ONLY_REGIONS: Region[] = [ { path: 'argentina', @@ -60,18 +67,54 @@ const MANTECA_QR_ONLY_REGIONS: Region[] = [ }, ] +/** + * Hook for managing identity verification (KYC) status and region access. + * + * This hook handles two KYC providers: + * - Bridge: Covers North America and Europe (ACH, Wire, SEPA transfers) + * - Manteca: Covers LATAM countries (Bank transfers + QR payments) + * + * Users can complete one or both KYC processes to unlock different regions. + * Special case: Bridge KYC also unlocks QR payments in Argentina and Brazil. + * + * @returns {Object} Identity verification utilities + * @returns {Region[]} lockedRegions - Regions the user hasn't unlocked yet + * @returns {Region[]} unlockedRegions - Regions the user has access to + * @returns {Function} isMantecaSupportedCountry - Check if a country uses Manteca + * @returns {Function} isVerifiedForCountry - Check if user is verified for a specific country + * @returns {Function} isRegionAlreadyUnlocked - Check if a region path is already unlocked + * @returns {Function} getCountryTitle - Get the display name for a country code + * @returns {Function} getVerificationUnlockItems - Get list of features unlocked by verification + */ export const useIdentityVerification = () => { const { user } = useAuth() const { isUserBridgeKycApproved, isUserMantecaKycApproved } = useKycStatus() + /** + * Check if a country is supported by Manteca (LATAM countries). + * @param code - Country code (e.g., 'AR', 'BR', 'MX') + * @returns true if the country is supported by Manteca + */ const isMantecaSupportedCountry = useCallback((code: string) => { const upper = code.toUpperCase() return Object.prototype.hasOwnProperty.call(MantecaSupportedExchanges, upper) }, []) + /** + * Check if the user is verified for a specific country. + * + * Logic: + * - For Manteca countries: User must have an ACTIVE Manteca verification for that specific country + * - For Bridge countries: User just needs Bridge KYC approval + * + * @param code - Country code (e.g., 'US', 'GB', 'AR') + * @returns true if user has the required verification + */ const isVerifiedForCountry = useCallback( (code: string) => { const upper = code.toUpperCase() + + // Check if user has active Manteca verification for this specific country const mantecaActive = user?.user.kycVerifications?.some( (v) => @@ -79,15 +122,27 @@ export const useIdentityVerification = () => { (v.mantecaGeo || '').toUpperCase() === upper && v.status === MantecaKycStatus.ACTIVE ) ?? false + + // Manteca countries need country-specific verification, others just need Bridge KYC return isMantecaSupportedCountry(upper) ? mantecaActive : isUserBridgeKycApproved }, [user, isUserBridgeKycApproved, isMantecaSupportedCountry] ) + /** + * Calculate which regions are locked vs unlocked for the current user. + * + * Region unlock logic: + * - Bridge KYC → Unlocks North America, Mexico & Europe + * - Manteca KYC → Unlocks LATAM + * - Bridge KYC (without Manteca) → Also gets QR-only access to Argentina & Brazil + * + */ const { lockedRegions, unlockedRegions } = useMemo(() => { const isBridgeApproved = isUserBridgeKycApproved const isMantecaApproved = isUserMantecaKycApproved + // Helper to check if a region should be unlocked const isRegionUnlocked = (regionName: string) => { return ( (isBridgeApproved && BRIDGE_SUPPORTED_REGIONS.includes(regionName)) || @@ -98,7 +153,8 @@ export const useIdentityVerification = () => { const unlocked = SUPPORTED_REGIONS.filter((region) => isRegionUnlocked(region.name)) const locked = SUPPORTED_REGIONS.filter((region) => !isRegionUnlocked(region.name)) - // If user has completed Bridge KYC but not Manteca, they can do QR payments in Argentina and Brazil + // Bridge users get QR payment access in Argentina & Brazil + // even without full Manteca KYC (which unlocks bank transfers too) if (isBridgeApproved && !isMantecaApproved) { unlocked.push(...MANTECA_QR_ONLY_REGIONS) } @@ -109,6 +165,11 @@ export const useIdentityVerification = () => { } }, [isUserBridgeKycApproved, isUserMantecaKycApproved]) + /** + * Check if a region is already unlocked by comparing region paths. + * @param regionPath - Region path to check (e.g., 'north-america', 'latam') + * @returns true if the region is in the user's unlocked regions + */ const isRegionAlreadyUnlocked = useCallback( (regionPath: string) => { return unlockedRegions.some((region) => region.path.toLowerCase() === regionPath.toLowerCase()) @@ -116,10 +177,22 @@ export const useIdentityVerification = () => { [unlockedRegions] ) + /** + * Get the human-readable country name from a country code. + * @param countryCode - ISO country code (e.g., 'US', 'BR', 'AR') + * @returns Country display name or null if not found + */ const getCountryTitle = useCallback((countryCode: string) => { return countryData.find((country) => country.id.toUpperCase() === countryCode.toUpperCase())?.title ?? null }, []) + /** + * Get a list of features that will be unlocked after verification. + * Used to show users what they'll gain access to. + * + * @param countryTitle - Optional country name to personalize the messaging + * @returns Array of unlock items with title and which KYC provider unlocks it + */ const getVerificationUnlockItems = useCallback((countryTitle?: string): VerificationUnlockItem[] => { return [ { @@ -155,9 +228,9 @@ export const useIdentityVerification = () => { type: 'bridge', }, { - // Using identity country here for the title - // eg scenario - user selected Argentina but has a Brazil ID, they will be - // able to only use QR in Argentina but can do both Bank transfers and QR in Brazil. + // Important: This uses the user's verified ID country, not their selected country + // Example: User picks Argentina but has Brazil ID → they get QR in Argentina + // but bank transfers only work in Brazil (their verified country) title: `Bank transfers to your own accounts in ${countryTitle || 'your country'}`, type: 'manteca', }, From 82254b6efbf9159522deb16cf485d9e8d3b9fdc3 Mon Sep 17 00:00:00 2001 From: Zishan Mohd Date: Fri, 7 Nov 2025 18:30:40 +0530 Subject: [PATCH 12/14] cr suggestions --- src/components/Common/CountryList.tsx | 9 ++--- .../views/IdentityVerification.view.tsx | 33 ++++++++----------- src/hooks/useIdentityVerification.tsx | 13 +++++++- 3 files changed, 28 insertions(+), 27 deletions(-) diff --git a/src/components/Common/CountryList.tsx b/src/components/Common/CountryList.tsx index 89d72d036..1f40a8a86 100644 --- a/src/components/Common/CountryList.tsx +++ b/src/components/Common/CountryList.tsx @@ -19,6 +19,7 @@ import StatusBadge from '../Global/Badges/StatusBadge' import Loading from '../Global/Loading' import { useSearchParams } from 'next/navigation' import { ActionListCard } from '../ActionListCard' +import { useIdentityVerification } from '@/hooks/useIdentityVerification' interface CountryListViewProps { inputTitle: string @@ -68,6 +69,7 @@ export const CountryList = ({ const { countryCode: userGeoLocationCountryCode, isLoading: isGeoLoading } = useGeoLocation() // track which country is being clicked to show loading state const [clickedCountryId, setClickedCountryId] = useState(null) + const { isBridgeSupportedCountry: isBridgeSupportedCountryHook } = useIdentityVerification() const supportedCountries = countryData.filter((country) => country.type === 'country') @@ -140,12 +142,7 @@ export const CountryList = ({ ALL_COUNTRIES_ALPHA3_TO_ALPHA2[country.id.toUpperCase()] ?? country.id.toLowerCase() const position = getCardPosition(index, filteredCountries.length) - const isBridgeSupportedCountry = [ - 'US', - 'MX', - ...Object.keys(BRIDGE_ALPHA3_TO_ALPHA2), - ...Object.values(BRIDGE_ALPHA3_TO_ALPHA2), - ].includes(country.id) + const isBridgeSupportedCountry = isBridgeSupportedCountryHook(country.id) const isMantecaSupportedCountry = Object.keys(MantecaSupportedExchanges).includes( country.id ) diff --git a/src/components/Profile/views/IdentityVerification.view.tsx b/src/components/Profile/views/IdentityVerification.view.tsx index eef362924..034757e3b 100644 --- a/src/components/Profile/views/IdentityVerification.view.tsx +++ b/src/components/Profile/views/IdentityVerification.view.tsx @@ -36,23 +36,21 @@ const IdentityVerificationView = () => { const [isStartVerificationModalOpen, setIsStartVerificationModalOpen] = useState(false) const params = useParams() const countryParam = params.country as string - const { isMantecaSupportedCountry } = useIdentityVerification() + const { isMantecaSupportedCountry, isBridgeSupportedCountry } = useIdentityVerification() - const handleRedirect = (isSuccess: boolean = false) => { + const handleRedirect = () => { const redirectUrl = getRedirectUrl() if (redirectUrl) { clearRedirectUrl() router.push(redirectUrl) - } else if (isSuccess) { - router.push('/profile') } else { - router.back() + router.push('/profile') } } const handleBridgeKycSuccess = useCallback(async () => { await fetchUser() - handleRedirect(true) + handleRedirect() }, []) const { @@ -110,17 +108,6 @@ const IdentityVerificationView = () => { } }, [showUserDetailsForm]) - // country validation helpers - const isBridgeSupportedCountry = (code: string) => { - const upper = code.toUpperCase() - return ( - upper === 'US' || - upper === 'MX' || - Object.keys(BRIDGE_ALPHA3_TO_ALPHA2).includes(upper) || - Object.values(BRIDGE_ALPHA3_TO_ALPHA2).includes(upper) - ) - } - // Skip country selection if coming from a supported bridge country useEffect(() => { if (countryParam) { @@ -137,7 +124,7 @@ const IdentityVerificationView = () => { } } } - }, [countryParam]) + }, [countryParam, isBridgeSupportedCountry]) const selectedCountryParams = useMemo(() => { if (countryParam) { @@ -145,12 +132,18 @@ const IdentityVerificationView = () => { if (country) { return country } else { - return { title: 'Bridge', id: 'bridge' } + return { title: 'Bridge', id: 'bridge', type: 'bridge', description: '', path: 'bridge' } } } return null }, [countryParam]) + useEffect(() => { + return () => { + setIsStartVerificationModalOpen(false) + } + }, []) + return (
@@ -215,7 +208,7 @@ const IdentityVerificationView = () => { selectedCountry={selectedCountry} setIsMantecaModalOpen={setIsMantecaModalOpen} isMantecaModalOpen={isMantecaModalOpen} - onKycSuccess={() => handleRedirect(true)} + onKycSuccess={handleRedirect} /> )} diff --git a/src/hooks/useIdentityVerification.tsx b/src/hooks/useIdentityVerification.tsx index d73f4cc15..db22cc1db 100644 --- a/src/hooks/useIdentityVerification.tsx +++ b/src/hooks/useIdentityVerification.tsx @@ -4,7 +4,7 @@ import useKycStatus from './useKycStatus' import { useMemo, useCallback } from 'react' import { useAuth } from '@/context/authContext' import { MantecaKycStatus } from '@/interfaces' -import { MantecaSupportedExchanges, countryData } from '@/components/AddMoney/consts' +import { BRIDGE_ALPHA3_TO_ALPHA2, MantecaSupportedExchanges, countryData } from '@/components/AddMoney/consts' import React from 'react' /** Represents a geographic region with its display information */ @@ -241,6 +241,16 @@ export const useIdentityVerification = () => { ] }, []) + const isBridgeSupportedCountry = (code: string) => { + const upper = code.toUpperCase() + return ( + upper === 'US' || + upper === 'MX' || + Object.keys(BRIDGE_ALPHA3_TO_ALPHA2).includes(upper) || + Object.values(BRIDGE_ALPHA3_TO_ALPHA2).includes(upper) + ) + } + return { lockedRegions, unlockedRegions, @@ -249,5 +259,6 @@ export const useIdentityVerification = () => { isRegionAlreadyUnlocked, getCountryTitle, getVerificationUnlockItems, + isBridgeSupportedCountry, } } From 3d3f6596a6ab03235f65ab131c8485c053a91b11 Mon Sep 17 00:00:00 2001 From: Zishan Mohd Date: Fri, 7 Nov 2025 18:44:25 +0530 Subject: [PATCH 13/14] remove duplicate code --- .../views/IdentityVerification.view.tsx | 27 +++++++------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/src/components/Profile/views/IdentityVerification.view.tsx b/src/components/Profile/views/IdentityVerification.view.tsx index 034757e3b..d82e869ee 100644 --- a/src/components/Profile/views/IdentityVerification.view.tsx +++ b/src/components/Profile/views/IdentityVerification.view.tsx @@ -108,24 +108,7 @@ const IdentityVerificationView = () => { } }, [showUserDetailsForm]) - // Skip country selection if coming from a supported bridge country - useEffect(() => { - if (countryParam) { - if (isBridgeSupportedCountry(countryParam) || countryParam === 'bridge') { - const country = countryData.find((country) => country.id.toUpperCase() === countryParam.toUpperCase()) - - if (country) { - setUserClickedCountry({ title: country.title, id: country.id }) - setIsStartVerificationModalOpen(true) - } else { - // set as bridge - setUserClickedCountry({ title: 'Bridge', id: 'bridge' }) - setIsStartVerificationModalOpen(true) - } - } - } - }, [countryParam, isBridgeSupportedCountry]) - + // Memoized country lookup from URL param const selectedCountryParams = useMemo(() => { if (countryParam) { const country = countryData.find((country) => country.id.toUpperCase() === countryParam.toUpperCase()) @@ -138,6 +121,14 @@ const IdentityVerificationView = () => { return null }, [countryParam]) + // Skip country selection if coming from a supported bridge country + useEffect(() => { + if (selectedCountryParams && (isBridgeSupportedCountry(countryParam) || countryParam === 'bridge')) { + setUserClickedCountry({ title: selectedCountryParams.title, id: selectedCountryParams.id }) + setIsStartVerificationModalOpen(true) + } + }, [countryParam, isBridgeSupportedCountry, selectedCountryParams]) + useEffect(() => { return () => { setIsStartVerificationModalOpen(false) From 2089f0e3ce58fec22d947748217fb92092621f9d Mon Sep 17 00:00:00 2001 From: Zishan Mohd Date: Fri, 7 Nov 2025 18:52:48 +0530 Subject: [PATCH 14/14] feat: add mexico as unlocked region for bridge --- src/hooks/useIdentityVerification.tsx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/hooks/useIdentityVerification.tsx b/src/hooks/useIdentityVerification.tsx index db22cc1db..a6b4e7ed5 100644 --- a/src/hooks/useIdentityVerification.tsx +++ b/src/hooks/useIdentityVerification.tsx @@ -67,6 +67,14 @@ const MANTECA_QR_ONLY_REGIONS: Region[] = [ }, ] +const BRIDGE_SUPPORTED_LATAM_COUNTRIES: Region[] = [ + { + path: 'mexico', + name: 'Mexico', + icon: 'https://flagcdn.com/w160/mx.png', + }, +] + /** * Hook for managing identity verification (KYC) status and region access. * @@ -156,7 +164,7 @@ export const useIdentityVerification = () => { // Bridge users get QR payment access in Argentina & Brazil // even without full Manteca KYC (which unlocks bank transfers too) if (isBridgeApproved && !isMantecaApproved) { - unlocked.push(...MANTECA_QR_ONLY_REGIONS) + unlocked.push(...MANTECA_QR_ONLY_REGIONS, ...BRIDGE_SUPPORTED_LATAM_COUNTRIES) } return {