diff --git a/.changeset/few-chicken-enjoy.md b/.changeset/few-chicken-enjoy.md new file mode 100644 index 0000000000..1449ab523e --- /dev/null +++ b/.changeset/few-chicken-enjoy.md @@ -0,0 +1,21 @@ +--- +'@reown/appkit-adapter-solana': patch +'@reown/appkit-adapter-wagmi': patch +'@reown/appkit': patch +'@reown/appkit-common': patch +'@reown/appkit-core': patch +'@reown/appkit-adapter-ethers': patch +'@reown/appkit-adapter-ethers5': patch +'@reown/appkit-utils': patch +'@reown/appkit-cdn': patch +'appkit-cli': patch +'@reown/appkit-experimental': patch +'@reown/appkit-polyfills': patch +'@reown/appkit-scaffold-ui': patch +'@reown/appkit-siwe': patch +'@reown/appkit-siwx': patch +'@reown/appkit-ui': patch +'@reown/appkit-wallet': patch +--- + +Fixes state and storage syncronization and persisting on multiple adapter instances diff --git a/packages/adapters/solana/src/client.ts b/packages/adapters/solana/src/client.ts index 49b3519fe8..4795eb4994 100644 --- a/packages/adapters/solana/src/client.ts +++ b/packages/adapters/solana/src/client.ts @@ -6,8 +6,10 @@ import { } from '@reown/appkit-common' import { AlertController, + ChainController, CoreHelperUtil, EventsController, + StorageUtil, type ConnectorType, type Provider } from '@reown/appkit-core' @@ -33,6 +35,7 @@ import { handleMobileWalletRedirection } from './utils/handleMobileWalletRedirec import { SolStoreUtil } from './utils/SolanaStoreUtil.js' import { watchStandard } from './utils/watchStandard.js' import { withSolanaNamespace } from './utils/withSolanaNamespace.js' +import { solana } from '@reown/appkit/networks' export interface AdapterOptions { connectionSettings?: Commitment | ConnectionConfig @@ -454,7 +457,8 @@ export class SolanaAdapter extends AdapterBlueprint { // For standard Solana wallets const address = await selectedProvider.connect() - const chainId = this.caipNetworks?.[0]?.id || 1 + const { chainId: activeChainId } = StorageUtil.getActiveNetworkProps() + const chainId = activeChainId || solana.id this.listenProviderEvents(selectedProvider as unknown as WalletStandardProvider) @@ -475,7 +479,7 @@ export class SolanaAdapter extends AdapterBlueprint { const walletConnectProvider = new WalletConnectProvider({ provider: params.provider as UniversalProvider, chains: params.caipNetworks, - getActiveChain: () => params.activeCaipNetwork + getActiveChain: () => ChainController.state.activeCaipNetwork }) return walletConnectProvider as unknown as UniversalProvider diff --git a/packages/adapters/wagmi/src/connectors/UniversalConnector.ts b/packages/adapters/wagmi/src/connectors/UniversalConnector.ts index 5ad7132b54..430b5e3fa6 100644 --- a/packages/adapters/wagmi/src/connectors/UniversalConnector.ts +++ b/packages/adapters/wagmi/src/connectors/UniversalConnector.ts @@ -23,7 +23,7 @@ import { StorageUtil } from '@reown/appkit-core' import type { AppKitOptions } from '@reown/appkit' import type { AppKit } from '@reown/appkit' import { ConstantsUtil } from '@reown/appkit-common' -import type { CaipNetwork } from '@reown/appkit-common' +import type { CaipNetwork, ChainNamespace } from '@reown/appkit-common' type UniversalConnector = Connector & { onDisplayUri(uri: string): void @@ -201,7 +201,7 @@ export function walletConnect( return [] } - const accountsList = provider?.session?.namespaces['eip155']?.accounts + const accountsList = provider?.session?.namespaces[ConstantsUtil.CHAIN.EVM]?.accounts const accounts = accountsList?.map(account => account.split(':')[2]) ?? [] @@ -213,10 +213,13 @@ export function walletConnect( provider_?.events.setMaxListeners(Number.POSITIVE_INFINITY) } + const activeNamespace = StorageUtil.getActiveNamespace() const currentChainId = appKit.getCaipNetwork()?.id - if (chainId && currentChainId !== chainId) { - const storedCaipNetwork = StorageUtil.getStoredActiveCaipNetwork() + if (chainId && currentChainId !== chainId && activeNamespace) { + const storedCaipNetworkId = StorageUtil.getStoredActiveCaipNetworkId() + const appKitCaipNetworks = appKit?.getCaipNetworks(activeNamespace as ChainNamespace) + const storedCaipNetwork = appKitCaipNetworks?.find(n => n.id === storedCaipNetworkId) if (storedCaipNetwork && storedCaipNetwork.chainNamespace === ConstantsUtil.CHAIN.EVM) { await this.switchChain?.({ chainId: Number(storedCaipNetwork.id) }) @@ -234,7 +237,7 @@ export function walletConnect( } const provider = await this.getProvider() - const chain = provider.session?.namespaces['eip155']?.chains?.[0] + const chain = provider.session?.namespaces[ConstantsUtil.CHAIN.EVM]?.chains?.[0] const network = caipNetworks.find(c => c.id === chain) @@ -388,7 +391,7 @@ export function walletConnect( return [] } - const accounts = provider_?.session?.namespaces['eip155']?.accounts + const accounts = provider_?.session?.namespaces[ConstantsUtil.CHAIN.EVM]?.accounts // eslint-disable-next-line radix const chainIds = accounts?.map(account => Number.parseInt(account.split(':')[1] ?? '')) ?? [] diff --git a/packages/adapters/wagmi/src/tests/UniversalConnector.test.ts b/packages/adapters/wagmi/src/tests/UniversalConnector.test.ts new file mode 100644 index 0000000000..718cf1fceb --- /dev/null +++ b/packages/adapters/wagmi/src/tests/UniversalConnector.test.ts @@ -0,0 +1,170 @@ +import { describe, expect, it, vi, beforeEach, afterEach } from 'vitest' +import { walletConnect } from '../connectors/UniversalConnector' +import { mainnet } from '@reown/appkit/networks' +import { getAddress } from 'viem' +import { + mockAppKit, + mockProvider, + mockSession, + mockAddress, + mockCaipNetworks, + mockCaipAddress +} from './mocks/AppKit' + +vi.mock('@reown/appkit-core', async importOriginal => { + const actual = await importOriginal() + return { + ...actual, + StorageUtil: { + getActiveNamespace: vi.fn(), + getStoredActiveCaipNetworkId: vi.fn() + } + } +}) + +const mockStorage = { + getItem: vi.fn(), + setItem: vi.fn() +} + +const mockEmitter = { + emit: vi.fn(), + on: vi.fn(), + removeListener: vi.fn() +} + +describe('UniversalConnector', () => { + let connectorInstance: any + + beforeEach(() => { + const createConnector = walletConnect( + { + isNewChainsStale: false + } as any, + mockAppKit, + mockCaipNetworks as any + ) + + connectorInstance = createConnector({ + chains: mockCaipNetworks, + options: {}, + // @ts-expect-error - mocking Wagmi's storage + storage: mockStorage, + // @ts-expect-error - mocking Wagmi's emitter + emitter: mockEmitter + }) + }) + + afterEach(() => { + vi.clearAllMocks() + }) + + describe('connect', () => { + it('should connect successfully', async () => { + const expectedChainId = mainnet.id + + mockProvider.enable.mockResolvedValue([mockAddress]) + + const result = await connectorInstance.connect() + + expect(result).toEqual({ + accounts: [getAddress(mockAddress)], + chainId: expectedChainId + }) + expect(mockProvider.on).toHaveBeenCalled() + expect(mockProvider.session.namespaces.eip155.accounts).toEqual([mockCaipAddress]) + }) + + it('should handle user rejection', async () => { + mockProvider.enable.mockRejectedValue(new Error('user rejected')) + + await expect(connectorInstance.connect()).rejects.toThrow('User rejected the request.') + }) + }) + + describe('getAccounts', () => { + it('should return accounts from provider session', async () => { + mockProvider.enable.mockResolvedValue([mockAddress]) + await connectorInstance.connect() + const accounts = await connectorInstance.getAccounts() + + expect(accounts).toEqual([mockAddress]) + }) + + it('should return empty array when no session exists', async () => { + // @ts-expect-error - override mockProvider only for session to test getAccounts + mockProvider.session = undefined + const accounts = await connectorInstance.getAccounts() + + expect(accounts).toEqual([]) + }) + }) + + describe('disconnect', () => { + it('should disconnect successfully', async () => { + mockProvider.session = mockSession + + await connectorInstance.connect() + await connectorInstance.disconnect() + + expect(mockProvider.disconnect).toHaveBeenCalled() + expect(mockProvider.removeListener).toHaveBeenCalled() + }) + }) + + describe('switchChain', () => { + it('should switch chain successfully', async () => { + mockProvider.request.mockResolvedValue(null) + + const result = await connectorInstance.switchChain({ chainId: 1 }) + + expect(result).toEqual( + expect.objectContaining({ + id: 1, + name: 'Ethereum' + }) + ) + expect(mockProvider.request).toHaveBeenCalledWith({ + method: 'wallet_switchEthereumChain', + params: [{ chainId: '0x1' }] + }) + }) + + it('should handle adding a new chain', async () => { + // First request fails, triggering add chain flow + mockProvider.request.mockRejectedValueOnce(new Error('chain not found')) + mockProvider.request.mockResolvedValueOnce(null) + + const result = await connectorInstance.switchChain({ chainId: 1 }) + + expect(result).toEqual( + expect.objectContaining({ + id: 1, + name: 'Ethereum' + }) + ) + expect(mockProvider.request).toHaveBeenCalledWith({ + method: 'wallet_addEthereumChain', + params: [ + expect.objectContaining({ + chainId: '0x1', + chainName: 'Ethereum' + }) + ] + }) + }) + }) + + describe.skip('isAuthorized', () => { + it('should return true when authorized', async () => { + const result = await connectorInstance.isAuthorized() + expect(result).toBe(true) + }) + + it('should return false when no accounts exist', async () => { + mockProvider.session.namespaces.eip155.accounts = [] + const result = await connectorInstance.isAuthorized() + expect(result).toBe(false) + }) + }) +}) diff --git a/packages/adapters/wagmi/src/tests/mocks/AppKit.ts b/packages/adapters/wagmi/src/tests/mocks/AppKit.ts new file mode 100644 index 0000000000..803976507b --- /dev/null +++ b/packages/adapters/wagmi/src/tests/mocks/AppKit.ts @@ -0,0 +1,119 @@ +import type { AppKit } from '@reown/appkit' +import { mainnet, type Chain } from '@reown/appkit/networks' +import { vi } from 'vitest' + +export const mockCaipNetworks = [mainnet] as [Chain, ...Chain[]] +export const mockAddress = '0xf5B035287c1465F29C7e08FbB5c3b8a4975Bf831' +export const mockCaipNetworkId = 'eip155:1' +export const mockCaipAddress = `${mockCaipNetworkId}:${mockAddress}` +export const mockAccounts = [mockCaipAddress] + +export const mockSession = { + namespaces: { + eip155: { + accounts: mockAccounts, + chains: [mockCaipNetworkId] + } + } +} + +export const mockProvider = { + on: vi.fn(), + removeListener: vi.fn(), + enable: vi.fn().mockResolvedValue([mockAddress]), + request: vi.fn(), + disconnect: vi.fn(), + events: { + setMaxListeners: vi.fn() + }, + session: mockSession +} + +export const mockAppKit = { + setIsConnected: vi.fn(), + getIsConnectedState: vi.fn().mockReturnValue(true), + setCaipAddress: vi.fn(), + getCaipAddress: vi.fn().mockReturnValue('eip155:1:0xE62a3eD41B21447b67a63880607CD2E746A0E35d'), + setRequestedCaipNetworks: vi.fn(), + setConnectors: vi.fn(), + getConnectors: vi.fn().mockReturnValue([]), + setConnectedWalletInfo: vi.fn(), + resetWcConnection: vi.fn(), + resetNetwork: vi.fn(), + resetAccount: vi.fn(), + setPreferredAccountType: vi.fn(), + getPreferredAccountType: vi.fn().mockReturnValue('eoa'), + setEIP6963Enabled: vi.fn(), + getCaipNetwork: vi.fn().mockReturnValue(mainnet), + getCaipNetworks: vi.fn().mockReturnValue(mockCaipNetworks), + subscribeState: vi.fn().mockImplementation(callback => vi.fn(() => callback({}))), + setApprovedCaipNetworksData: vi.fn(), + getActiveChainNamespace: vi.fn().mockReturnValue('eip155'), + getAddress: vi.fn().mockReturnValue('0xE62a3eD41B21447b67a63880607CD2E746A0E35d'), + addConnector: vi.fn(), + setCaipNetwork: vi.fn(), + setLoading: vi.fn(), + setSmartAccountEnabledNetworks: vi.fn(), + setAllAccounts: vi.fn(), + setStatus: vi.fn(), + setSmartAccountDeployed: vi.fn(), + open: vi.fn(), + isOpen: vi.fn().mockReturnValue(false), + isTransactionStackEmpty: vi.fn().mockReturnValue(true), + isTransactionShouldReplaceView: vi.fn().mockReturnValue(false), + replace: vi.fn(), + redirect: vi.fn(), + showErrorMessage: vi.fn(), + close: vi.fn(), + popTransactionStack: vi.fn(), + setProfileName: vi.fn(), + setProfileImage: vi.fn(), + setAddressExplorerUrl: vi.fn(), + setBalance: vi.fn(), + getReownName: vi.fn().mockResolvedValue([]), + fetchIdentity: vi.fn().mockResolvedValue(null), + setClientId: vi.fn(), + getAccounts: vi.fn(), + signMessage: vi.fn(), + sendTransaction: vi.fn(), + writeContract: vi.fn(), + getEnsAddress: vi.fn(), + estimateGas: vi.fn(), + parseUnits: vi.fn(), + formatUnits: vi.fn(), + syncConnectors: vi.fn(), + syncConnection: vi.fn(), + connectWalletConnect: vi.fn(), + connect: vi.fn(), + reconnect: vi.fn(), + getBalance: vi.fn(), + getProfile: vi.fn(), + getWalletConnectProvider: vi.fn(), + disconnect: vi.fn(), + switchNetwork: vi.fn(), + getCapabilities: vi.fn(), + grantPermissions: vi.fn(), + revokePermissions: vi.fn(), + getUniversalProvider: vi.fn().mockResolvedValue(mockProvider), + getProvider: vi.fn(), + universalAdapter: { + connectionControllerClient: { + connectWalletConnect: vi.fn(), + disconnect: vi.fn() + }, + networkControllerClient: { + switchCaipNetwork: vi.fn() + } + }, + getConnectorImage: vi.fn(), + handleUnsafeRPCRequest: vi.fn().mockImplementation(() => { + if (mockAppKit.isOpen()) { + if (mockAppKit.isTransactionStackEmpty()) { + return + } + mockAppKit.redirect('ApproveTransaction') + } else { + mockAppKit.open({ view: 'ApproveTransaction' }) + } + }) +} as unknown as AppKit diff --git a/packages/appkit/src/client.ts b/packages/appkit/src/client.ts index d98efd4255..ce9f210a97 100644 --- a/packages/appkit/src/client.ts +++ b/packages/appkit/src/client.ts @@ -53,10 +53,9 @@ import { ConstantsUtil, type CaipNetwork, type ChainNamespace, - SafeLocalStorage, - SafeLocalStorageKeys, type CaipAddress, - type CaipNetworkId + type CaipNetworkId, + NetworkUtil } from '@reown/appkit-common' import type { AppKitOptions } from './utils/TypesUtil.js' import { @@ -183,7 +182,6 @@ export class AppKit { public constructor( options: AppKitOptions & { adapters?: ChainAdapter[] - } & { sdkVersion: SdkVersion } ) { @@ -198,7 +196,6 @@ export class AppKit { private async initialize( options: AppKitOptions & { adapters?: ChainAdapter[] - } & { sdkVersion: SdkVersion } ) { @@ -208,7 +205,7 @@ export class AppKit { this.createAuthProvider() await this.createUniversalProvider() this.createClients() - ChainController.initialize(options.adapters ?? []) + ChainController.initialize(options.adapters ?? [], this.caipNetworks) this.chainAdapters = await this.createAdapters( options.adapters as unknown as AdapterBlueprint[] ) @@ -887,8 +884,8 @@ export class AppKit { this.setStatus('disconnected', ChainController.state.activeChain as ChainNamespace) - SafeLocalStorage.removeItem(SafeLocalStorageKeys.CONNECTED_CONNECTOR) - SafeLocalStorage.removeItem(SafeLocalStorageKeys.ACTIVE_CAIP_NETWORK_ID) + StorageUtil.deleteConnectedConnector() + StorageUtil.deleteActiveCaipNetworkId() ChainController.state.chains.forEach(chain => { this.resetAccount(chain.namespace as ChainNamespace) @@ -1164,7 +1161,7 @@ export class AppKit { } }) provider.onNotConnected(() => { - const connectedConnector = SafeLocalStorage.getItem(SafeLocalStorageKeys.CONNECTED_CONNECTOR) + const connectedConnector = StorageUtil.getConnectedConnector() const isConnectedWithAuth = connectedConnector === UtilConstantsUtil.AUTH_CONNECTOR_ID if (!isConnected && isConnectedWithAuth) { this.setCaipAddress(undefined, ChainController.state.activeChain as ChainNamespace) @@ -1370,7 +1367,7 @@ export class AppKit { private async syncWalletConnectAccount() { const adapter = this.getAdapter(ChainController.state.activeChain as ChainNamespace) - StorageUtil.setConnectedNamespace(ChainController.state.activeChain as ChainNamespace) + this.chainNamespaces.forEach(async chainNamespace => { const caipAddress = this.universalProvider?.session?.namespaces?.[chainNamespace] ?.accounts[0] as CaipAddress @@ -1484,7 +1481,6 @@ export class AppKit { ProviderUtil.setProvider(chainNamespace, provider) StorageUtil.setConnectedConnector(id as ConnectorType) - StorageUtil.setConnectedNamespace(ChainController.state.activeChain as ChainNamespace) } private async syncAccount({ @@ -1494,23 +1490,24 @@ export class AppKit { }: Pick & { chainNamespace: ChainNamespace }) { + const { namespace: activeNamespace, chainId: activeChainId } = + StorageUtil.getActiveNetworkProps() + const chainIdToUse = chainId || activeChainId + // Only update state when needed if (address.toLowerCase() !== AccountController.state.address?.toLowerCase()) { this.setCaipAddress(`${chainNamespace}:${chainId}:${address}`, chainNamespace) - await this.syncIdentity({ address, chainId: Number(chainId), chainNamespace }) + await this.syncIdentity({ address, chainId, chainNamespace }) } this.setStatus('connected', chainNamespace) - if (chainNamespace === ChainController.state.activeChain) { - const caipNetwork = this.caipNetworks?.find( - n => n.id === chainId && n.chainNamespace === chainNamespace - ) + if (chainIdToUse && chainNamespace === activeNamespace) { + const caipNetwork = this.caipNetworks?.find(n => n.id.toString() === chainIdToUse.toString()) const fallBackCaipNetwork = this.caipNetworks?.find(n => n.chainNamespace === chainNamespace) - this.setCaipNetwork(caipNetwork || fallBackCaipNetwork) this.syncConnectedWalletInfo(chainNamespace) - await this.syncBalance({ address, chainId, chainNamespace }) + await this.syncBalance({ address, chainId: chainIdToUse, chainNamespace }) } } @@ -1520,22 +1517,29 @@ export class AppKit { chainNamespace: ChainNamespace }) { const adapter = this.getAdapter(params.chainNamespace) - const caipNetwork = this.caipNetworks?.find( - c => c.chainNamespace === params.chainNamespace && c.id === params.chainId - ) + const caipNetwork = NetworkUtil.getNetworksByNamespace( + this.caipNetworks, + params.chainNamespace + ).find(n => n.id.toString() === params.chainId.toString()) + + if (!caipNetwork) { + return + } + const balance = await adapter?.getBalance({ address: params.address, chainId: params.chainId, - caipNetwork: caipNetwork || this.getCaipNetwork(), + caipNetwork, tokens: this.options.tokens }) + if (balance) { this.setBalance(balance.balance, balance.symbol, params.chainNamespace) } } private syncConnectedWalletInfo(chainNamespace: ChainNamespace) { - const currentActiveWallet = SafeLocalStorage.getItem(SafeLocalStorageKeys.CONNECTED_CONNECTOR) + const currentActiveWallet = StorageUtil.getConnectedConnector() const providerType = ProviderUtil.state.providerIds[chainNamespace] if ( @@ -1652,41 +1656,36 @@ export class AppKit { } private async syncExistingConnection() { - const connectedConnector = SafeLocalStorage.getItem( - SafeLocalStorageKeys.CONNECTED_CONNECTOR - ) as ConnectorType - const connectedNamespace = SafeLocalStorage.getItem(SafeLocalStorageKeys.CONNECTED_NAMESPACE) + const connectedConnector = StorageUtil.getConnectedConnector() as ConnectorType + const activeNamespace = StorageUtil.getActiveNamespace() - if ( - connectedConnector === UtilConstantsUtil.CONNECTOR_TYPE_WALLET_CONNECT && - connectedNamespace - ) { + if (connectedConnector === UtilConstantsUtil.CONNECTOR_TYPE_WALLET_CONNECT && activeNamespace) { this.syncWalletConnectAccount() } else if ( connectedConnector && connectedConnector !== UtilConstantsUtil.CONNECTOR_TYPE_W3M_AUTH && - connectedNamespace + activeNamespace ) { - this.setStatus('connecting', connectedNamespace as ChainNamespace) - const adapter = this.getAdapter(connectedNamespace as ChainNamespace) + this.setStatus('connecting', activeNamespace as ChainNamespace) + const adapter = this.getAdapter(activeNamespace as ChainNamespace) const res = await adapter?.syncConnection({ id: connectedConnector, chainId: this.getCaipNetwork()?.id, - namespace: connectedNamespace as ChainNamespace, + namespace: activeNamespace as ChainNamespace, rpcUrl: this.getCaipNetwork()?.rpcUrls?.default?.http?.[0] as string }) if (res) { const accounts = await adapter?.getAccounts({ - namespace: connectedNamespace as ChainNamespace, + namespace: activeNamespace as ChainNamespace, id: connectedConnector }) - this.syncProvider({ ...res, chainNamespace: connectedNamespace as ChainNamespace }) - await this.syncAccount({ ...res, chainNamespace: connectedNamespace as ChainNamespace }) - this.setAllAccounts(accounts?.accounts || [], connectedNamespace as ChainNamespace) - this.setStatus('connected', connectedNamespace as ChainNamespace) + this.syncProvider({ ...res, chainNamespace: activeNamespace as ChainNamespace }) + await this.syncAccount({ ...res, chainNamespace: activeNamespace as ChainNamespace }) + this.setAllAccounts(accounts?.accounts || [], activeNamespace as ChainNamespace) + this.setStatus('connected', activeNamespace as ChainNamespace) } else { - this.setStatus('disconnected', connectedNamespace as ChainNamespace) + this.setStatus('disconnected', activeNamespace as ChainNamespace) } if (!this.caipNetworks?.some(network => network.id === res?.chainId)) { @@ -1825,7 +1824,7 @@ export class AppKit { } private setDefaultNetwork() { - const previousNetwork = SafeLocalStorage.getItem(SafeLocalStorageKeys.ACTIVE_CAIP_NETWORK_ID) + const previousNetwork = StorageUtil.getActiveCaipNetworkId() const caipNetwork = previousNetwork && this.caipNetworks?.length ? this.caipNetworks.find(n => n.caipNetworkId === previousNetwork) diff --git a/packages/appkit/src/tests/appkit.test.ts b/packages/appkit/src/tests/appkit.test.ts index c13c0e59e5..fd207e9cc1 100644 --- a/packages/appkit/src/tests/appkit.test.ts +++ b/packages/appkit/src/tests/appkit.test.ts @@ -612,7 +612,6 @@ describe('Base', () => { vi.spyOn(appKit as any, 'getAdapter').mockReturnValue(mockAdapter) vi.spyOn(StorageUtil, 'setConnectedConnector').mockImplementation(vi.fn()) - vi.spyOn(StorageUtil, 'setConnectedNamespace').mockImplementation(vi.fn()) vi.spyOn(appKit as any, 'setUnsupportedNetwork').mockImplementation(vi.fn()) @@ -620,8 +619,8 @@ describe('Base', () => { if (key === SafeLocalStorageKeys.CONNECTED_CONNECTOR) { return 'test-wallet' } - if (key === SafeLocalStorageKeys.CONNECTED_NAMESPACE) { - return 'eip155' + if (key === SafeLocalStorageKeys.ACTIVE_CAIP_NETWORK_ID) { + return 'eip155:1' } return undefined }) @@ -664,8 +663,8 @@ describe('Base', () => { if (key === SafeLocalStorageKeys.CONNECTED_CONNECTOR) { return 'test-wallet' } - if (key === SafeLocalStorageKeys.CONNECTED_NAMESPACE) { - return 'eip155' + if (key === SafeLocalStorageKeys.ACTIVE_CAIP_NETWORK_ID) { + return 'eip155:1' } return undefined }) @@ -704,8 +703,8 @@ describe('Base', () => { if (key === SafeLocalStorageKeys.CONNECTED_CONNECTOR) { return 'AUTH' } - if (key === SafeLocalStorageKeys.CONNECTED_NAMESPACE) { - return 'eip155' + if (key === SafeLocalStorageKeys.ACTIVE_CAIP_NETWORK_ID) { + return 'eip155:1' } return undefined }) diff --git a/packages/common/src/utils/NetworkUtil.ts b/packages/common/src/utils/NetworkUtil.ts index cc39674b60..1f5aaaf2ce 100644 --- a/packages/common/src/utils/NetworkUtil.ts +++ b/packages/common/src/utils/NetworkUtil.ts @@ -1,4 +1,4 @@ -import type { CaipNetworkId } from './TypeUtil.js' +import type { CaipNetwork, CaipNetworkId, ChainNamespace } from './TypeUtil.js' export const NetworkUtil = { caipNetworkIdToNumber(caipnetworkId?: CaipNetworkId) { @@ -9,5 +9,13 @@ export const NetworkUtil = { return typeof chainId === 'string' ? this.caipNetworkIdToNumber(chainId as CaipNetworkId) : chainId + }, + + getNetworksByNamespace(networks: CaipNetwork[] | undefined, namespace: ChainNamespace) { + return networks?.filter(network => network.chainNamespace === namespace) || [] + }, + + getFirstNetworkByNamespace(networks: CaipNetwork[] | undefined, namespace: ChainNamespace) { + return this.getNetworksByNamespace(networks, namespace)[0] } } diff --git a/packages/common/src/utils/SafeLocalStorage.ts b/packages/common/src/utils/SafeLocalStorage.ts index ff42cd6488..16ecff2df6 100644 --- a/packages/common/src/utils/SafeLocalStorage.ts +++ b/packages/common/src/utils/SafeLocalStorage.ts @@ -8,7 +8,7 @@ export type SafeLocalStorageItems = { '@appkit/connected_social': string '@appkit/connected_social_username': string '@appkit/recent_wallets': string - '@appkit/connected_namespace': string + '@appkit/active_namespace': string '@appkit/connection_status': string /* * DO NOT CHANGE: @walletconnect/universal-provider requires us to set this specific key @@ -28,7 +28,7 @@ export const SafeLocalStorageKeys = { CONNECTED_SOCIAL_USERNAME: '@appkit/connected_social_username', RECENT_WALLETS: '@appkit/recent_wallets', DEEPLINK_CHOICE: 'WALLETCONNECT_DEEPLINK_CHOICE', - CONNECTED_NAMESPACE: '@appkit/connected_namespace', + ACTIVE_NAMESPACE: '@appkit/active_namespace', CONNECTION_STATUS: '@appkit/connection_status' } as const diff --git a/packages/common/tests/NetworkUtil.test.ts b/packages/common/tests/NetworkUtil.test.ts index 60ca01d96b..90640d892f 100644 --- a/packages/common/tests/NetworkUtil.test.ts +++ b/packages/common/tests/NetworkUtil.test.ts @@ -1,7 +1,59 @@ import { describe, test, expect } from 'vitest' -import { NetworkUtil } from '../src/utils/NetworkUtil' +import { NetworkUtil } from '../src/utils/NetworkUtil.js' +import { type CaipNetwork } from '../src/utils/TypeUtil.js' describe('NetworkUtil', () => { + const mockNetworks: CaipNetwork[] = [ + { + id: 'eip155:1', + name: 'Ethereum', + chainNamespace: 'eip155' + } as CaipNetwork, + { + id: 'eip155:137', + name: 'Polygon', + chainNamespace: 'eip155' + } as CaipNetwork, + { + id: 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp', + name: 'Solana', + chainNamespace: 'solana' + } as CaipNetwork + ] + + describe('getNetworksByNamespace', () => { + test('should return networks filtered by namespace', () => { + const eip155Networks = NetworkUtil.getNetworksByNamespace(mockNetworks, 'eip155') + expect(eip155Networks).toHaveLength(2) + expect(eip155Networks?.[0]?.name).toBe('Ethereum') + expect(eip155Networks?.[1]?.name).toBe('Polygon') + + const solanaNetworks = NetworkUtil.getNetworksByNamespace(mockNetworks, 'solana') + expect(solanaNetworks).toHaveLength(1) + expect(solanaNetworks?.[0]?.name).toBe('Solana') + }) + + test('should return empty array for non-existent namespace', () => { + const networks = NetworkUtil.getNetworksByNamespace(mockNetworks, 'bip122') + expect(networks).toHaveLength(0) + }) + }) + + describe('getFirstNetworkByNamespace', () => { + test('should return first network for namespace', () => { + const firstEip155Network = NetworkUtil.getFirstNetworkByNamespace(mockNetworks, 'eip155') + expect(firstEip155Network?.name).toBe('Ethereum') + + const firstSolanaNetwork = NetworkUtil.getFirstNetworkByNamespace(mockNetworks, 'solana') + expect(firstSolanaNetwork?.name).toBe('Solana') + }) + + test('should return undefined for non-existent namespace', () => { + const network = NetworkUtil.getFirstNetworkByNamespace(mockNetworks, 'bip122') + expect(network).toBeUndefined() + }) + }) + describe('caipNetworkIdToNumber', () => { test('converts valid CAIP network ID to number', () => { expect(NetworkUtil.caipNetworkIdToNumber('eip155:1')).toBe(1) diff --git a/packages/core/src/controllers/ChainController.ts b/packages/core/src/controllers/ChainController.ts index 88620dfc43..c38e44f279 100644 --- a/packages/core/src/controllers/ChainController.ts +++ b/packages/core/src/controllers/ChainController.ts @@ -11,8 +11,6 @@ import { AccountController, type AccountControllerState } from './AccountControl import { PublicStateController } from './PublicStateController.js' import { NetworkUtil, - SafeLocalStorage, - SafeLocalStorageKeys, type CaipAddress, type CaipNetwork, type CaipNetworkId, @@ -23,6 +21,7 @@ import { ConstantsUtil } from '../utils/ConstantsUtil.js' import { ModalController } from './ModalController.js' import { EventsController } from './EventsController.js' import { RouterController } from './RouterController.js' +import { StorageUtil } from '../utils/StorageUtil.js' // -- Constants ----------------------------------------- // const accountState: AccountControllerState = { @@ -101,14 +100,26 @@ export const ChainController = { }) }, - initialize(adapters: ChainAdapter[]) { - const adapterToActivate = adapters?.[0] + initialize(adapters: ChainAdapter[], caipNetworks: CaipNetwork[] | undefined) { + const { chainId: activeChainId, namespace: activeNamespace } = + StorageUtil.getActiveNetworkProps() + const activeCaipNetwork = caipNetworks?.find( + network => network.id.toString() === activeChainId?.toString() + ) + const defaultAdapter = adapters.find(adapter => adapter?.namespace === activeNamespace) + const adapterToActivate = defaultAdapter || adapters?.[0] + if (adapters?.length === 0 || !adapterToActivate) { state.noAdapters = true } + if (!state.noAdapters) { state.activeChain = adapterToActivate?.namespace - PublicStateController.set({ activeChain: adapterToActivate?.namespace }) + state.activeCaipNetwork = activeCaipNetwork + + if (state.activeChain) { + PublicStateController.set({ activeChain: adapterToActivate?.namespace }) + } adapters.forEach((adapter: ChainAdapter) => { state.chains.set(adapter.namespace as ChainNamespace, { namespace: adapter.namespace, @@ -184,13 +195,10 @@ export const ChainController = { const newAdapter = chain ? state.chains.get(chain) : undefined const caipNetwork = newAdapter?.networkState?.caipNetwork - if (caipNetwork?.id) { + if (caipNetwork?.id && chain) { state.activeCaipAddress = newAdapter?.accountState?.caipAddress state.activeCaipNetwork = caipNetwork - SafeLocalStorage.setItem( - SafeLocalStorageKeys.ACTIVE_CAIP_NETWORK_ID, - caipNetwork?.caipNetworkId - ) + StorageUtil.setActiveCaipNetworkId(caipNetwork?.caipNetworkId) PublicStateController.set({ activeChain: chain, selectedNetworkId: caipNetwork?.caipNetworkId @@ -221,7 +229,7 @@ export const ChainController = { activeChain: state.activeChain, selectedNetworkId: state.activeCaipNetwork?.caipNetworkId }) - SafeLocalStorage.setItem(SafeLocalStorageKeys.ACTIVE_CAIP_NETWORK_ID, caipNetwork.caipNetworkId) + StorageUtil.setActiveCaipNetworkId(caipNetwork.caipNetworkId) const isSupported = this.checkIfSupportedNetwork(caipNetwork.chainNamespace) diff --git a/packages/core/src/utils/StorageUtil.ts b/packages/core/src/utils/StorageUtil.ts index 0daaa61d58..9ac41ba2c7 100644 --- a/packages/core/src/utils/StorageUtil.ts +++ b/packages/core/src/utils/StorageUtil.ts @@ -1,10 +1,28 @@ /* eslint-disable no-console */ -import { SafeLocalStorage, SafeLocalStorageKeys, type ChainNamespace } from '@reown/appkit-common' +import { + SafeLocalStorage, + SafeLocalStorageKeys, + type CaipNetworkId, + type ChainNamespace +} from '@reown/appkit-common' import type { WcWallet, ConnectorType, SocialProvider, ConnectionStatus } from './TypeUtil.js' -import { ChainController } from '../controllers/ChainController.js' // -- Utility ----------------------------------------------------------------- export const StorageUtil = { + getActiveNetworkProps() { + const activeNamespace = StorageUtil.getActiveNamespace() + const activeCaipNetworkId = StorageUtil.getActiveCaipNetworkId() + const caipNetworkIdFromStorage = activeCaipNetworkId + ? activeCaipNetworkId.split(':')[1] + : undefined + + return { + namespace: activeNamespace, + caipNetworkId: activeCaipNetworkId, + chainId: caipNetworkIdFromStorage + } + }, + setWalletConnectDeepLink({ name, href }: { href: string; name: string }) { try { SafeLocalStorage.setItem(SafeLocalStorageKeys.DEEPLINK_CHOICE, JSON.stringify({ href, name })) @@ -34,6 +52,49 @@ export const StorageUtil = { } }, + setActiveNamespace(namespace: ChainNamespace) { + try { + SafeLocalStorage.setItem(SafeLocalStorageKeys.ACTIVE_NAMESPACE, namespace) + } catch { + console.info('Unable to set active namespace') + } + }, + + setActiveCaipNetworkId(caipNetworkId: CaipNetworkId) { + try { + SafeLocalStorage.setItem(SafeLocalStorageKeys.ACTIVE_CAIP_NETWORK_ID, caipNetworkId) + StorageUtil.setActiveNamespace(caipNetworkId.split(':')[0] as ChainNamespace) + } catch { + console.info('Unable to set active caip network id') + } + }, + + getActiveCaipNetworkId() { + try { + return SafeLocalStorage.getItem(SafeLocalStorageKeys.ACTIVE_CAIP_NETWORK_ID) + } catch { + console.info('Unable to get active caip network id') + + return undefined + } + }, + + deleteActiveCaipNetworkId() { + try { + SafeLocalStorage.removeItem(SafeLocalStorageKeys.ACTIVE_CAIP_NETWORK_ID) + } catch { + console.info('Unable to delete active caip network id') + } + }, + + deleteConnectedConnector() { + try { + SafeLocalStorage.removeItem(SafeLocalStorageKeys.CONNECTED_CONNECTOR) + } catch { + console.info('Unable to delete connected connector') + } + }, + setAppKitRecent(wallet: WcWallet) { try { const recentWallets = StorageUtil.getRecentWallets() @@ -70,19 +131,23 @@ export const StorageUtil = { } }, - setConnectedNamespace(namespace: ChainNamespace) { + getActiveNamespace() { try { - SafeLocalStorage.setItem(SafeLocalStorageKeys.CONNECTED_NAMESPACE, namespace) + const activeNamespace = SafeLocalStorage.getItem(SafeLocalStorageKeys.ACTIVE_NAMESPACE) + + return activeNamespace as ChainNamespace | undefined } catch { - console.info('Unable to set Connected Namespace') + console.info('Unable to get active namespace') } + + return undefined }, getConnectedConnector() { try { return SafeLocalStorage.getItem(SafeLocalStorageKeys.CONNECTED_CONNECTOR) as ConnectorType } catch { - console.info('Unable to get Connected Connector') + console.info('Unable to get connected connector') } return undefined @@ -92,7 +157,7 @@ export const StorageUtil = { try { SafeLocalStorage.setItem(SafeLocalStorageKeys.CONNECTED_SOCIAL, socialProvider) } catch { - console.info('Unable to set Connected Social Provider') + console.info('Unable to set connected social provider') } }, @@ -100,7 +165,7 @@ export const StorageUtil = { try { return SafeLocalStorage.getItem(SafeLocalStorageKeys.CONNECTED_SOCIAL) } catch { - console.info('Unable to get Connected Social Provider') + console.info('Unable to get connected social provider') } return undefined @@ -110,29 +175,26 @@ export const StorageUtil = { try { return SafeLocalStorage.getItem(SafeLocalStorageKeys.CONNECTED_SOCIAL_USERNAME) } catch { - console.info('Unable to get Connected Social Username') + console.info('Unable to get connected social username') } return undefined }, - getStoredActiveCaipNetwork() { + getStoredActiveCaipNetworkId() { const storedCaipNetworkId = SafeLocalStorage.getItem( SafeLocalStorageKeys.ACTIVE_CAIP_NETWORK_ID ) - const allRequestedCaipNetworks = ChainController.getAllRequestedCaipNetworks() - const storedCaipNetwork = allRequestedCaipNetworks?.find( - c => c.caipNetworkId === storedCaipNetworkId - ) + const networkId = storedCaipNetworkId?.split(':')?.[1] - return storedCaipNetwork + return networkId }, setConnectionStatus(status: ConnectionStatus) { try { SafeLocalStorage.setItem(SafeLocalStorageKeys.CONNECTION_STATUS, status) } catch { - console.info('Unable to set Connection Status') + console.info('Unable to set connection status') } }, diff --git a/packages/core/tests/controllers/AccountController.test.ts b/packages/core/tests/controllers/AccountController.test.ts index 4b1b5809b6..2a43efe42d 100644 --- a/packages/core/tests/controllers/AccountController.test.ts +++ b/packages/core/tests/controllers/AccountController.test.ts @@ -13,12 +13,15 @@ const chain = ConstantsUtil.CHAIN.EVM // -- Tests -------------------------------------------------------------------- beforeAll(() => { - ChainController.initialize([ - { - namespace: ConstantsUtil.CHAIN.EVM, - caipNetworks: [] - } - ]) + ChainController.initialize( + [ + { + namespace: ConstantsUtil.CHAIN.EVM, + caipNetworks: [] + } + ], + [] + ) }) describe('AccountController', () => { diff --git a/packages/core/tests/controllers/ApiController.test.ts b/packages/core/tests/controllers/ApiController.test.ts index 91f3ba1650..cf4c656f7e 100644 --- a/packages/core/tests/controllers/ApiController.test.ts +++ b/packages/core/tests/controllers/ApiController.test.ts @@ -14,12 +14,15 @@ const chain = ConstantsUtil.CHAIN.EVM // -- Tests -------------------------------------------------------------------- beforeAll(() => { - ChainController.initialize([ - { - namespace: ConstantsUtil.CHAIN.EVM, - caipNetworks: [] - } - ]) + ChainController.initialize( + [ + { + namespace: ConstantsUtil.CHAIN.EVM, + caipNetworks: [] + } + ], + [] + ) }) describe('ApiController', () => { diff --git a/packages/core/tests/controllers/ChainController.test.ts b/packages/core/tests/controllers/ChainController.test.ts index 50e9c2f6f5..82ffe8afa3 100644 --- a/packages/core/tests/controllers/ChainController.test.ts +++ b/packages/core/tests/controllers/ChainController.test.ts @@ -1,6 +1,7 @@ import { beforeAll, describe, expect, it, vi } from 'vitest' import { ConstantsUtil, + SafeLocalStorageKeys, type CaipNetwork, type CaipNetworkId, type ChainNamespace @@ -9,6 +10,7 @@ import { ChainController } from '../../src/controllers/ChainController.js' import { type ConnectionControllerClient } from '../../src/controllers/ConnectionController.js' import type { NetworkControllerClient } from '../../exports/index.js' import { RouterController } from '../../src/controllers/RouterController.js' +import { SafeLocalStorage } from '@reown/appkit-common' // -- Setup -------------------------------------------------------------------- const chainNamespace = 'eip155' as ChainNamespace @@ -69,7 +71,7 @@ const requestedCaipNetworks = [ } ] as CaipNetwork[] -const caipNetwork = { +const mainnetCaipNetwork = { id: 1, name: 'Ethereum', chainNamespace: ConstantsUtil.CHAIN.EVM, @@ -115,11 +117,18 @@ const evmAdapter = { namespace: ConstantsUtil.CHAIN.EVM, connectionControllerClient, networkControllerClient, - caipNetworks: [] + caipNetworks: [mainnetCaipNetwork] +} + +const solanaAdapter = { + namespace: ConstantsUtil.CHAIN.SOLANA, + connectionControllerClient, + networkControllerClient, + caipNetworks: [solanaCaipNetwork] as unknown as CaipNetwork[] } beforeAll(() => { - ChainController.initialize([evmAdapter]) + ChainController.initialize([evmAdapter], requestedCaipNetworks) }) // -- Tests -------------------------------------------------------------------- @@ -161,7 +170,7 @@ describe('ChainController', () => { } // Need to re-initialize to set the spy properly - ChainController.initialize([evmAdapter]) + ChainController.initialize([evmAdapter], requestedCaipNetworks) await ChainController.setApprovedCaipNetworksData(namespace) expect(ChainController.getApprovedCaipNetworkIds(namespace)).toEqual(approvedCaipNetworkIds) @@ -178,11 +187,11 @@ describe('ChainController', () => { rpcUrls: { default: { http: ['https://rpc.infura.com/v1/'] } }, blockExplorers: { default: { name: 'Etherscan', url: 'https://etherscan.io' } } }) - expect(ChainController.state.activeCaipNetwork).toEqual(caipNetwork) + expect(ChainController.state.activeCaipNetwork).toEqual(mainnetCaipNetwork) }) it('should check correctly if smart accounts are enabled on the network', () => { - ChainController.setActiveCaipNetwork(caipNetwork) + ChainController.setActiveCaipNetwork(mainnetCaipNetwork) ChainController.setSmartAccountEnabledNetworks([1], chainNamespace) expect(ChainController.checkIfSmartAccountEnabled()).toEqual(true) ChainController.setSmartAccountEnabledNetworks([], chainNamespace) @@ -201,7 +210,7 @@ describe('ChainController', () => { }) it('should check if network supports names feature', () => { - ChainController.setActiveCaipNetwork(caipNetwork) + ChainController.setActiveCaipNetwork(mainnetCaipNetwork) expect(ChainController.checkIfNamesSupported()).toEqual(true) ChainController.setActiveCaipNetwork(solanaCaipNetwork) expect(ChainController.checkIfNamesSupported()).toEqual(false) @@ -215,7 +224,7 @@ describe('ChainController', () => { 'eip155:1:0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee' ) - mock.mockReturnValue(caipNetwork) + mock.mockReturnValue(mainnetCaipNetwork) expect(ChainController.getActiveNetworkTokenAddress()).toEqual( 'eip155:1:0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee' ) @@ -299,10 +308,42 @@ describe('ChainController', () => { } } as unknown as CaipNetwork ChainController.state.chains.set(ConstantsUtil.CHAIN.EVM, limitedEvmAdapter) - await ChainController.switchActiveNetwork(caipNetwork) + await ChainController.switchActiveNetwork(mainnetCaipNetwork) expect(routerGoBackSpy).toHaveBeenCalled() routerGoBackSpy.mockRestore() }) + + it('should initialize with active network from local storage', () => { + const getItemSpy = vi.spyOn(SafeLocalStorage, 'getItem').mockReturnValue('eip155') + + ChainController.initialize([evmAdapter], requestedCaipNetworks) + + expect(getItemSpy).toHaveBeenCalledWith(SafeLocalStorageKeys.ACTIVE_NAMESPACE) + expect(ChainController.state.activeChain).toEqual(ConstantsUtil.CHAIN.EVM) + + getItemSpy.mockRestore() + }) + + it('should initialize with first adapter when stored network not found', () => { + const getItemSpy = vi.spyOn(SafeLocalStorage, 'getItem').mockReturnValue('solana') + + ChainController.initialize([solanaAdapter, evmAdapter], requestedCaipNetworks) + + expect(getItemSpy).toHaveBeenCalledWith(SafeLocalStorageKeys.ACTIVE_NAMESPACE) + expect(ChainController.state.activeChain).toEqual(ConstantsUtil.CHAIN.SOLANA) + + getItemSpy.mockRestore() + }) + + it('should set noAdapters flag when no adapters provided', () => { + ChainController.initialize([], requestedCaipNetworks) + expect(ChainController.state.noAdapters).toBe(true) + }) + + it('should set noAdapters flag when no adapter provided', () => { + ChainController.initialize([], requestedCaipNetworks) + expect(ChainController.state.noAdapters).toBe(true) + }) }) diff --git a/packages/core/tests/controllers/ConnectionController.test.ts b/packages/core/tests/controllers/ConnectionController.test.ts index 8e57289ad2..e9da837d3b 100644 --- a/packages/core/tests/controllers/ConnectionController.test.ts +++ b/packages/core/tests/controllers/ConnectionController.test.ts @@ -68,19 +68,22 @@ const adapters = [evmAdapter] as ChainAdapter[] // -- Tests -------------------------------------------------------------------- beforeAll(() => { - ChainController.initialize(adapters) + ChainController.initialize(adapters, []) ConnectionController.setClient(evmAdapter.connectionControllerClient) }) describe('ConnectionController', () => { it('should have valid default state', () => { - ChainController.initialize([ - { - namespace: CommonConstantsUtil.CHAIN.EVM, - connectionControllerClient: client, - caipNetworks: [] - } - ]) + ChainController.initialize( + [ + { + namespace: CommonConstantsUtil.CHAIN.EVM, + connectionControllerClient: client, + caipNetworks: [] + } + ], + [] + ) expect(ConnectionController.state).toEqual({ wcError: false, @@ -131,13 +134,16 @@ describe('ConnectionController', () => { }) it('should not throw when optional methods are undefined', async () => { - ChainController.initialize([ - { - namespace: CommonConstantsUtil.CHAIN.EVM, - connectionControllerClient: partialClient, - caipNetworks: [] - } - ]) + ChainController.initialize( + [ + { + namespace: CommonConstantsUtil.CHAIN.EVM, + connectionControllerClient: partialClient, + caipNetworks: [] + } + ], + [] + ) await ConnectionController.connectExternal({ id: externalId, type }, chain) ConnectionController.checkInstalled([externalId]) expect(clientCheckInstalledSpy).toHaveBeenCalledWith([externalId]) diff --git a/packages/core/tests/controllers/EnsController.test.ts b/packages/core/tests/controllers/EnsController.test.ts index 9c296cf7e6..966668dd5b 100644 --- a/packages/core/tests/controllers/EnsController.test.ts +++ b/packages/core/tests/controllers/EnsController.test.ts @@ -70,12 +70,15 @@ vi.mock('../../src/controllers/BlockchainApiController.js', async importOriginal // -- Tests -------------------------------------------------------------------- beforeAll(() => { - ChainController.initialize([ - { - namespace: ConstantsUtil.CHAIN.EVM, - caipNetworks: [] - } - ]) + ChainController.initialize( + [ + { + namespace: ConstantsUtil.CHAIN.EVM, + caipNetworks: [] + } + ], + [] + ) }) describe('EnsController', () => { diff --git a/packages/core/tests/controllers/SwapController.test.ts b/packages/core/tests/controllers/SwapController.test.ts index 6eb01a3a1f..172ba7dc0a 100644 --- a/packages/core/tests/controllers/SwapController.test.ts +++ b/packages/core/tests/controllers/SwapController.test.ts @@ -54,13 +54,16 @@ const toTokenAddress = 'eip155:137:0x2c89bbc92bd86f8075d1decc58c7f4e0107f286b' // - Setup --------------------------------------------------------------------- beforeAll(async () => { // -- Set Account and - ChainController.initialize([ - { - namespace: ConstantsUtil.CHAIN.EVM, - networkControllerClient: client, - caipNetworks: [caipNetwork] - } - ]) + ChainController.initialize( + [ + { + namespace: ConstantsUtil.CHAIN.EVM, + networkControllerClient: client, + caipNetworks: [caipNetwork] + } + ], + [] + ) ChainController.setActiveCaipNetwork(caipNetwork) AccountController.setCaipAddress(caipAddress, chain) diff --git a/packages/scaffold-ui-new/vitest.config.ts b/packages/scaffold-ui-new/vitest.config.ts deleted file mode 100644 index 73c4c1171f..0000000000 --- a/packages/scaffold-ui-new/vitest.config.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { defineProject } from 'vitest/config' - -export default defineProject({}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5dadd8053c..d0f8b2c11b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -93,7 +93,7 @@ importers: version: 3.2.2(react@18.3.1) '@hookform/resolvers': specifier: 3.9.0 - version: 3.9.0(react-hook-form@7.53.1(react@18.3.1)) + version: 3.9.0(react-hook-form@7.54.0(react@18.3.1)) '@radix-ui/react-checkbox': specifier: 1.1.2 version: 1.1.2(@types/react-dom@18.2.7)(@types/react@18.2.62)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -180,7 +180,7 @@ importers: version: 2.2.1 tailwindcss-animate: specifier: 1.0.7 - version: 1.0.7(tailwindcss@3.4.1(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/node@20.11.5)(typescript@5.3.3))) + version: 1.0.7(tailwindcss@3.4.1(ts-node@10.9.2(@types/node@20.11.5)(typescript@5.3.3))) viem: specifier: 2.21.26 version: 2.21.26(bufferutil@4.0.8)(typescript@5.3.3)(utf-8-validate@5.0.10)(zod@3.23.8) @@ -208,7 +208,7 @@ importers: version: 8.4.49 tailwindcss: specifier: 3.4.1 - version: 3.4.1(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/node@20.11.5)(typescript@5.3.3)) + version: 3.4.1(ts-node@10.9.2(@types/node@20.11.5)(typescript@5.3.3)) typescript: specifier: '5' version: 5.3.3 @@ -253,46 +253,6 @@ importers: specifier: 2.4.4 version: 2.4.4 - apps/gallery-new: - dependencies: - '@reown/appkit-common': - specifier: workspace:* - version: link:../../packages/common - '@reown/appkit-ui-new': - specifier: workspace:* - version: link:../../packages/ui-new - lit: - specifier: 3.1.0 - version: 3.1.0 - react: - specifier: 18.3.1 - version: 18.3.1 - storybook: - specifier: 7.6.7 - version: 7.6.7(bufferutil@4.0.8)(utf-8-validate@5.0.10) - devDependencies: - '@storybook/addon-essentials': - specifier: 7.6.7 - version: 7.6.7(@types/react-dom@18.3.1)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/addon-links': - specifier: 7.6.7 - version: 7.6.7(react@18.3.1) - '@storybook/blocks': - specifier: 7.6.7 - version: 7.6.7(@types/react-dom@18.3.1)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/theming': - specifier: 7.6.7 - version: 7.6.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/web-components': - specifier: 7.6.7 - version: 7.6.7(lit@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/web-components-vite': - specifier: 7.6.7 - version: 7.6.7(bufferutil@4.0.8)(lit@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.3.3)(utf-8-validate@5.0.10)(vite@5.4.10(@types/node@20.11.5)(lightningcss@1.28.2)(terser@5.36.0)) - file-system-cache: - specifier: 2.4.4 - version: 2.4.4 - apps/laboratory: dependencies: '@bitcoinerlab/secp256k1': @@ -433,152 +393,7 @@ importers: version: 1.44.0 '@synthetixio/synpress': specifier: 4.0.0-alpha.7 - version: 4.0.0-alpha.7(@playwright/test@1.44.0)(@swc/core@1.9.3(@swc/helpers@0.5.15))(bufferutil@4.0.8)(playwright-core@1.44.0)(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/node@20.11.5)(typescript@5.3.3))(typescript@5.3.3)(utf-8-validate@5.0.10)(zod@3.23.8) - '@types/node': - specifier: 20.11.5 - version: 20.11.5 - '@types/react': - specifier: 18.2.62 - version: 18.2.62 - '@types/react-dom': - specifier: 18.2.7 - version: 18.2.7 - dotenv: - specifier: 16.3.1 - version: 16.3.1 - - apps/laboratory-new: - dependencies: - '@chakra-ui/icons': - specifier: 2.1.1 - version: 2.1.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.3(@types/react@18.2.62)(react@18.3.1))(@emotion/styled@11.11.0(@emotion/react@11.11.3(@types/react@18.2.62)(react@18.3.1))(@types/react@18.2.62)(react@18.3.1))(react@18.3.1))(react@18.3.1) - '@chakra-ui/react': - specifier: 2.8.2 - version: 2.8.2(@emotion/react@11.11.3(@types/react@18.2.62)(react@18.3.1))(@emotion/styled@11.11.0(@emotion/react@11.11.3(@types/react@18.2.62)(react@18.3.1))(@types/react@18.2.62)(react@18.3.1))(@types/react@18.2.62)(framer-motion@10.17.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@emotion/react': - specifier: 11.11.3 - version: 11.11.3(@types/react@18.2.62)(react@18.3.1) - '@emotion/styled': - specifier: 11.11.0 - version: 11.11.0(@emotion/react@11.11.3(@types/react@18.2.62)(react@18.3.1))(@types/react@18.2.62)(react@18.3.1) - '@reown/appkit-adapter-bitcoin': - specifier: workspace:* - version: link:../../packages/adapters/bitcoin - '@reown/appkit-adapter-ethers': - specifier: workspace:* - version: link:../../packages/adapters/ethers - '@reown/appkit-adapter-ethers5': - specifier: workspace:* - version: link:../../packages/adapters/ethers5 - '@reown/appkit-adapter-solana': - specifier: workspace:* - version: link:../../packages/adapters/solana - '@reown/appkit-adapter-wagmi': - specifier: workspace:* - version: link:../../packages/adapters/wagmi - '@reown/appkit-experimental': - specifier: workspace:* - version: link:../../packages/experimental - '@reown/appkit-new': - specifier: workspace:* - version: link:../../packages/appkit-new - '@reown/appkit-siwe': - specifier: workspace:* - version: link:../../packages/siwe - '@reown/appkit-siwx': - specifier: workspace:* - version: link:../../packages/siwx - '@reown/appkit-wallet': - specifier: workspace:* - version: link:../../packages/wallet - '@sentry/browser': - specifier: 7.119.1 - version: 7.119.1 - '@sentry/react': - specifier: 7.92.0 - version: 7.92.0(react@18.3.1) - '@solana/wallet-adapter-wallets': - specifier: 0.19.32 - version: 0.19.32(@babel/core@7.26.0)(@babel/runtime@7.26.0)(@sentry/types@7.119.1)(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bs58@6.0.0)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(tslib@2.8.1)(utf-8-validate@5.0.10) - '@solana/web3.js': - specifier: 1.95.8 - version: 1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@tanstack/react-query': - specifier: 5.24.8 - version: 5.24.8(react@18.3.1) - '@wagmi/connectors': - specifier: 5.1.15 - version: 5.1.15(@types/react@18.2.62)(@wagmi/core@2.13.8(@tanstack/query-core@5.59.16)(@types/react@18.2.62)(react@18.3.1)(typescript@5.3.3)(viem@2.21.26(bufferutil@4.0.8)(typescript@5.3.3)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.28.0)(typescript@5.3.3)(utf-8-validate@5.0.10)(viem@2.21.26(bufferutil@4.0.8)(typescript@5.3.3)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) - '@wagmi/core': - specifier: 2.13.8 - version: 2.13.8(@tanstack/query-core@5.59.16)(@types/react@18.2.62)(react@18.3.1)(typescript@5.3.3)(viem@2.21.26(bufferutil@4.0.8)(typescript@5.3.3)(utf-8-validate@5.0.10)(zod@3.23.8)) - '@walletconnect/universal-provider': - specifier: 2.17.0 - version: 2.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@walletconnect/utils': - specifier: 2.17.0 - version: 2.17.0 - axios: - specifier: 1.7.2 - version: 1.7.2 - bs58: - specifier: 6.0.0 - version: 6.0.0 - date-fns: - specifier: 4.1.0 - version: 4.1.0 - ethers: - specifier: 6.13.2 - version: 6.13.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - ethers5: - specifier: npm:ethers@5.7.2 - version: ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - framer-motion: - specifier: 10.17.9 - version: 10.17.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - next: - specifier: 14.2.3 - version: 14.2.3(@babel/core@7.26.0)(@playwright/test@1.44.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - next-auth: - specifier: 4.24.5 - version: 4.24.5(next@14.2.3(@babel/core@7.26.0)(@playwright/test@1.44.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: - specifier: 18.3.1 - version: 18.3.1 - react-dom: - specifier: 18.3.1 - version: 18.3.1(react@18.3.1) - react-icons: - specifier: 4.12.0 - version: 4.12.0(react@18.3.1) - rpc-websockets: - specifier: 7.11.0 - version: 7.11.0 - valtio: - specifier: 1.11.2 - version: 1.11.2(@types/react@18.2.62)(react@18.3.1) - viem: - specifier: 2.21.26 - version: 2.21.26(bufferutil@4.0.8)(typescript@5.3.3)(utf-8-validate@5.0.10)(zod@3.23.8) - wagmi: - specifier: 2.12.17 - version: 2.12.17(@tanstack/query-core@5.59.16)(@tanstack/react-query@5.24.8(react@18.3.1))(@types/react@18.2.62)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.28.0)(typescript@5.3.3)(utf-8-validate@5.0.10)(viem@2.21.26(bufferutil@4.0.8)(typescript@5.3.3)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) - webauthn-p256: - specifier: 0.0.2 - version: 0.0.2 - devDependencies: - '@aws-sdk/client-cloudwatch': - specifier: 3.509.0 - version: 3.509.0 - '@mailsac/api': - specifier: 1.0.5 - version: 1.0.5 - '@playwright/test': - specifier: 1.44.0 - version: 1.44.0 - '@synthetixio/synpress': - specifier: 4.0.0-alpha.7 - version: 4.0.0-alpha.7(@playwright/test@1.44.0)(@swc/core@1.9.3(@swc/helpers@0.5.15))(bufferutil@4.0.8)(playwright-core@1.44.0)(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/node@20.11.5)(typescript@5.3.3))(typescript@5.3.3)(utf-8-validate@5.0.10)(zod@3.23.8) + version: 4.0.0-alpha.7(@playwright/test@1.44.0)(@swc/core@1.9.3)(bufferutil@4.0.8)(playwright-core@1.44.0)(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.9.3)(@types/node@20.11.5)(typescript@5.3.3))(typescript@5.3.3)(utf-8-validate@5.0.10)(zod@3.23.8) '@types/node': specifier: 20.11.5 version: 20.11.5 @@ -972,7 +787,7 @@ importers: version: 0.1.14(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@solana/wallet-adapter-wallets': specifier: 0.19.32 - version: 0.19.32(@babel/core@7.26.0)(@babel/runtime@7.26.0)(@sentry/types@7.119.1)(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bs58@6.0.0)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(tslib@2.8.1)(utf-8-validate@5.0.10) + version: 0.19.32(@babel/core@7.26.0)(@babel/runtime@7.26.0)(@sentry/types@7.119.1)(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.76.3(@babel/core@7.26.0)(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(tslib@2.8.1)(utf-8-validate@5.0.10) '@tanstack/react-query': specifier: 5.24.8 version: 5.24.8(react@18.3.1) @@ -1105,7 +920,7 @@ importers: version: 0.1.14(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@solana/wallet-adapter-wallets': specifier: 0.19.32 - version: 0.19.32(@babel/core@7.26.0)(@babel/runtime@7.26.0)(@sentry/types@7.119.1)(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.1)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(tslib@2.8.1)(utf-8-validate@5.0.10) + version: 0.19.32(@babel/core@7.26.0)(@babel/runtime@7.26.0)(@sentry/types@7.119.1)(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10) vue: specifier: 3.4.3 version: 3.4.3(typescript@5.3.3) @@ -1613,76 +1428,6 @@ importers: specifier: 3.x version: 3.4.3(typescript@5.3.3) - packages/appkit-new: - dependencies: - '@reown/appkit-common': - specifier: workspace:* - version: link:../common - '@reown/appkit-core': - specifier: workspace:* - version: link:../core - '@reown/appkit-polyfills': - specifier: workspace:* - version: link:../polyfills - '@reown/appkit-scaffold-ui-new': - specifier: workspace:* - version: link:../scaffold-ui-new - '@reown/appkit-ui-new': - specifier: workspace:* - version: link:../ui-new - '@reown/appkit-utils': - specifier: workspace:* - version: link:../appkit-utils - '@reown/appkit-wallet': - specifier: workspace:* - version: link:../wallet - '@walletconnect/types': - specifier: 2.17.0 - version: 2.17.0 - '@walletconnect/universal-provider': - specifier: 2.17.0 - version: 2.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@walletconnect/utils': - specifier: 2.17.0 - version: 2.17.0 - bs58: - specifier: 6.0.0 - version: 6.0.0 - valtio: - specifier: 1.11.2 - version: 1.11.2(@types/react@18.3.1)(react@18.3.1) - viem: - specifier: 2.x - version: 2.21.34(bufferutil@4.0.8)(typescript@5.3.3)(utf-8-validate@5.0.10)(zod@3.23.8) - devDependencies: - '@reown/appkit-siwe': - specifier: workspace:* - version: link:../siwe - '@types/react': - specifier: 18.3.1 - version: 18.3.1 - '@types/react-dom': - specifier: 18.3.1 - version: 18.3.1 - '@vitest/coverage-v8': - specifier: 2.1.3 - version: 2.1.3(vitest@2.1.3(@types/node@20.11.5)(@vitest/ui@2.1.8(vitest@2.1.3))(happy-dom@15.11.7)(jsdom@24.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(lightningcss@1.28.2)(terser@5.36.0)) - '@vue/runtime-core': - specifier: 3.4.3 - version: 3.4.3 - react: - specifier: 18.3.1 - version: 18.3.1 - react-dom: - specifier: 18.3.1 - version: 18.3.1(react@18.3.1) - vitest: - specifier: 2.1.3 - version: 2.1.3(@types/node@20.11.5)(@vitest/ui@2.1.8(vitest@2.1.3))(happy-dom@15.11.7)(jsdom@24.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(lightningcss@1.28.2)(terser@5.36.0) - vue: - specifier: 3.x - version: 3.4.3(typescript@5.3.3) - packages/appkit-utils: dependencies: '@reown/appkit-common': @@ -1804,7 +1549,7 @@ importers: version: 3.2.25 ts-node: specifier: 10.9.2 - version: 10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/node@20.11.5)(typescript@5.3.3) + version: 10.9.2(@swc/core@1.9.3)(@types/node@20.11.5)(typescript@5.3.3) packages/common: dependencies: @@ -1925,31 +1670,6 @@ importers: specifier: 2.1.3 version: 2.1.3(@types/node@20.11.5)(@vitest/ui@2.1.8(vitest@2.1.3))(happy-dom@15.11.7)(jsdom@24.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(lightningcss@1.28.2)(terser@5.36.0) - packages/scaffold-ui-new: - dependencies: - '@reown/appkit-common': - specifier: workspace:* - version: link:../common - '@reown/appkit-core': - specifier: workspace:* - version: link:../core - '@reown/appkit-ui': - specifier: workspace:* - version: link:../ui - '@reown/appkit-utils': - specifier: workspace:* - version: link:../appkit-utils - '@reown/appkit-wallet': - specifier: workspace:* - version: link:../wallet - lit: - specifier: 3.1.0 - version: 3.1.0 - devDependencies: - '@vitest/coverage-v8': - specifier: 2.1.3 - version: 2.1.3(vitest@2.1.3(@types/node@20.11.5)(@vitest/ui@2.1.8(vitest@2.1.3))(happy-dom@15.11.7)(jsdom@24.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(lightningcss@1.28.2)(terser@5.36.0)) - packages/siwe: dependencies: '@reown/appkit-common': @@ -1997,52 +1717,18 @@ importers: viem: specifier: 2.21.34 version: 2.21.34(bufferutil@4.0.8)(typescript@5.3.3)(utf-8-validate@5.0.10)(zod@3.23.8) - devDependencies: - '@vitest/coverage-v8': - specifier: 2.1.3 - version: 2.1.3(vitest@2.1.3(@types/node@20.11.5)(@vitest/ui@2.1.8(vitest@2.1.3))(happy-dom@15.11.7)(jsdom@24.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(lightningcss@1.28.2)(terser@5.36.0)) - happy-dom: - specifier: 15.11.7 - version: 15.11.7 - vitest: - specifier: 2.1.3 - version: 2.1.3(@types/node@20.11.5)(@vitest/ui@2.1.8(vitest@2.1.3))(happy-dom@15.11.7)(jsdom@24.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(lightningcss@1.28.2)(terser@5.36.0) - - packages/ui: - dependencies: - lit: - specifier: 3.1.0 - version: 3.1.0 - qrcode: - specifier: 1.5.3 - version: 1.5.3 - devDependencies: - '@reown/appkit-common': - specifier: workspace:* - version: link:../common - '@reown/appkit-core': - specifier: workspace:* - version: link:../core - '@reown/appkit-wallet': - specifier: workspace:* - version: link:../wallet - '@types/qrcode': - specifier: 1.5.5 - version: 1.5.5 + devDependencies: '@vitest/coverage-v8': specifier: 2.1.3 version: 2.1.3(vitest@2.1.3(@types/node@20.11.5)(@vitest/ui@2.1.8(vitest@2.1.3))(happy-dom@15.11.7)(jsdom@24.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(lightningcss@1.28.2)(terser@5.36.0)) - eslint-plugin-lit: - specifier: 1.11.0 - version: 1.11.0(eslint@8.57.0) - eslint-plugin-wc: - specifier: 2.0.4 - version: 2.0.4(eslint@8.57.0) + happy-dom: + specifier: 15.11.7 + version: 15.11.7 vitest: specifier: 2.1.3 version: 2.1.3(@types/node@20.11.5)(@vitest/ui@2.1.8(vitest@2.1.3))(happy-dom@15.11.7)(jsdom@24.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(lightningcss@1.28.2)(terser@5.36.0) - packages/ui-new: + packages/ui: dependencies: lit: specifier: 3.1.0 @@ -8051,9 +7737,6 @@ packages: '@types/node@18.15.13': resolution: {integrity: sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==} - '@types/node@18.19.67': - resolution: {integrity: sha512-wI8uHusga+0ZugNp0Ol/3BqQfEcCCNfojtO6Oou9iVNGPTL6QNSdnUdqq85fRgIorLhLMuPIKpsN98QE9Nh+KQ==} - '@types/node@20.11.5': resolution: {integrity: sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w==} @@ -10384,8 +10067,8 @@ packages: exponential-backoff@3.1.1: resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} - express@4.21.1: - resolution: {integrity: sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==} + express@4.21.2: + resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} engines: {node: '>= 0.10.0'} extend-shallow@2.0.1: @@ -11966,8 +11649,8 @@ packages: map-or-similar@1.5.0: resolution: {integrity: sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==} - markdown-to-jsx@7.7.0: - resolution: {integrity: sha512-130nIMbJY+woOQJ11xTqEtYko60t6EpNkZuqjKMferL3udtob3nRfzXOdsiA26NPemiR7w/hR8M3/B9yiYPGZg==} + markdown-to-jsx@7.7.1: + resolution: {integrity: sha512-BjLkHb+fWCAH9gp7ndbgPrY+zeZlGFtCiQNTWk+PD+GKfLg9YsUPNonSsYXGw6nQ7eZqeR+i71X59PpWXlxc/w==} engines: {node: '>= 10'} peerDependencies: react: '>= 0.14.0' @@ -12084,10 +11767,6 @@ packages: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} - mime-db@1.53.0: - resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} - engines: {node: '>= 0.6'} - mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} @@ -12675,8 +12354,8 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - path-to-regexp@0.1.10: - resolution: {integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==} + path-to-regexp@0.1.12: + resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} path-to-regexp@6.3.0: resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} @@ -13093,8 +12772,8 @@ packages: '@types/react': optional: true - react-hook-form@7.53.1: - resolution: {integrity: sha512-6aiQeBda4zjcuaugWvim9WsGqisoUk+etmFEsSUMm451/Ic8L/UAb7sRtMj3V+Hdzm6mMjU1VhiSzYUZeBm0Vg==} + react-hook-form@7.54.0: + resolution: {integrity: sha512-PS05+UQy/IdSbJNojBypxAo9wllhHgGmyr8/dyGQcPoiMf3e7Dfb9PWYVRco55bLbxH9S+1yDDJeTdlYCSxO3A==} engines: {node: '>=18.0.0'} peerDependencies: react: ^16.8.0 || ^17 || ^18 || ^19 @@ -18470,9 +18149,9 @@ snapshots: '@hapi/bourne@3.0.0': {} - '@hookform/resolvers@3.9.0(react-hook-form@7.53.1(react@18.3.1))': + '@hookform/resolvers@3.9.0(react-hook-form@7.54.0(react@18.3.1))': dependencies: - react-hook-form: 7.53.1(react@18.3.1) + react-hook-form: 7.54.0(react@18.3.1) '@humanwhocodes/config-array@0.11.14': dependencies: @@ -20974,6 +20653,16 @@ snapshots: optionalDependencies: '@types/react': 18.2.62 + '@react-native/virtualized-lists@0.76.3(@types/react@18.2.62)(react-native@0.76.3(@babel/core@7.26.0)(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)': + dependencies: + invariant: 2.2.4 + nullthrows: 1.1.1 + react: 18.3.1 + react-native: 0.76.3(@babel/core@7.26.0)(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10) + optionalDependencies: + '@types/react': 18.2.62 + optional: true + '@react-native/virtualized-lists@0.76.3(@types/react@18.3.1)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.1)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)': dependencies: invariant: 2.2.4 @@ -20983,6 +20672,13 @@ snapshots: optionalDependencies: '@types/react': 18.3.1 + '@react-native/virtualized-lists@0.76.3(react-native@0.76.3(@babel/core@7.26.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + dependencies: + invariant: 2.2.4 + nullthrows: 1.1.1 + react-native: 0.76.3(@babel/core@7.26.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10) + optional: true + '@rollup/plugin-inject@5.0.5(rollup@4.28.0)': dependencies: '@rollup/pluginutils': 5.1.3(rollup@4.28.0) @@ -21752,11 +21448,28 @@ snapshots: - tslib - utf-8-validate - '@solana/wallet-adapter-trezor@0.1.2(@babel/core@7.26.0)(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.1)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10)': + '@solana/wallet-adapter-trezor@0.1.2(@babel/core@7.26.0)(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10)': + dependencies: + '@solana/wallet-adapter-base': 0.9.23(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@solana/web3.js': 1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@trezor/connect-web': 9.4.5(@babel/core@7.26.0)(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10) + buffer: 6.0.3 + transitivePeerDependencies: + - '@babel/core' + - bufferutil + - encoding + - expo-constants + - expo-localization + - react-native + - supports-color + - tslib + - utf-8-validate + + '@solana/wallet-adapter-trezor@0.1.2(@babel/core@7.26.0)(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10)': dependencies: '@solana/wallet-adapter-base': 0.9.23(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@solana/web3.js': 1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@trezor/connect-web': 9.4.5(@babel/core@7.26.0)(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.1)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10) + '@trezor/connect-web': 9.4.5(@babel/core@7.26.0)(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10) buffer: 6.0.3 transitivePeerDependencies: - '@babel/core' @@ -21872,7 +21585,7 @@ snapshots: - tslib - utf-8-validate - '@solana/wallet-adapter-wallets@0.19.32(@babel/core@7.26.0)(@babel/runtime@7.26.0)(@sentry/types@7.119.1)(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bs58@6.0.0)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(tslib@2.8.1)(utf-8-validate@5.0.10)': + '@solana/wallet-adapter-wallets@0.19.32(@babel/core@7.26.0)(@babel/runtime@7.26.0)(@sentry/types@7.119.1)(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.76.3(@babel/core@7.26.0)(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(tslib@2.8.1)(utf-8-validate@5.0.10)': dependencies: '@solana/wallet-adapter-alpha': 0.1.10(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@solana/wallet-adapter-avana': 0.1.13(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)) @@ -21905,7 +21618,7 @@ snapshots: '@solana/wallet-adapter-tokenary': 0.1.12(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@solana/wallet-adapter-tokenpocket': 0.4.19(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@solana/wallet-adapter-torus': 0.11.28(@babel/runtime@7.26.0)(@sentry/types@7.119.1)(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@solana/wallet-adapter-trezor': 0.1.2(@babel/core@7.26.0)(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10) + '@solana/wallet-adapter-trezor': 0.1.2(@babel/core@7.26.0)(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10) '@solana/wallet-adapter-trust': 0.1.13(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@solana/wallet-adapter-unsafe-burner': 0.1.7(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@solana/wallet-adapter-walletconnect': 0.1.16(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(utf-8-validate@5.0.10) @@ -21940,7 +21653,7 @@ snapshots: - tslib - utf-8-validate - '@solana/wallet-adapter-wallets@0.19.32(@babel/core@7.26.0)(@babel/runtime@7.26.0)(@sentry/types@7.119.1)(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.1)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(tslib@2.8.1)(utf-8-validate@5.0.10)': + '@solana/wallet-adapter-wallets@0.19.32(@babel/core@7.26.0)(@babel/runtime@7.26.0)(@sentry/types@7.119.1)(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10)': dependencies: '@solana/wallet-adapter-alpha': 0.1.10(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@solana/wallet-adapter-avana': 0.1.13(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)) @@ -21973,7 +21686,7 @@ snapshots: '@solana/wallet-adapter-tokenary': 0.1.12(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@solana/wallet-adapter-tokenpocket': 0.4.19(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@solana/wallet-adapter-torus': 0.11.28(@babel/runtime@7.26.0)(@sentry/types@7.119.1)(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@solana/wallet-adapter-trezor': 0.1.2(@babel/core@7.26.0)(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.1)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10) + '@solana/wallet-adapter-trezor': 0.1.2(@babel/core@7.26.0)(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10) '@solana/wallet-adapter-trust': 0.1.13(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@solana/wallet-adapter-unsafe-burner': 0.1.7(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@solana/wallet-adapter-walletconnect': 0.1.16(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(utf-8-validate@5.0.10) @@ -22274,7 +21987,7 @@ snapshots: color-convert: 2.0.1 dequal: 2.0.3 lodash: 4.17.21 - markdown-to-jsx: 7.7.0(react@18.3.1) + markdown-to-jsx: 7.7.1(react@18.3.1) memoizerific: 1.11.3 polished: 4.3.1 react: 18.3.1 @@ -22303,7 +22016,7 @@ snapshots: ejs: 3.1.10 esbuild: 0.18.20 esbuild-plugin-alias: 0.2.1 - express: 4.21.1 + express: 4.21.2 find-cache-dir: 3.3.2 fs-extra: 11.2.0 process: 0.11.10 @@ -22325,7 +22038,7 @@ snapshots: '@types/find-cache-dir': 3.2.1 browser-assert: 1.2.1 es-module-lexer: 0.9.3 - express: 4.21.1 + express: 4.21.2 find-cache-dir: 3.3.2 fs-extra: 11.2.0 magic-string: 0.30.14 @@ -22369,7 +22082,7 @@ snapshots: detect-indent: 6.1.0 envinfo: 7.14.0 execa: 5.1.1 - express: 4.21.1 + express: 4.21.2 find-up: 5.0.0 fs-extra: 11.2.0 get-npm-tarball-url: 2.1.0 @@ -22447,7 +22160,7 @@ snapshots: '@storybook/node-logger': 7.6.7 '@storybook/types': 7.6.7 '@types/find-cache-dir': 3.2.1 - '@types/node': 18.19.67 + '@types/node': 18.15.13 '@types/node-fetch': 2.6.12 '@types/pretty-hrtime': 1.0.3 chalk: 4.1.2 @@ -22492,7 +22205,7 @@ snapshots: '@storybook/telemetry': 7.6.7 '@storybook/types': 7.6.7 '@types/detect-port': 1.3.5 - '@types/node': 18.19.67 + '@types/node': 18.15.13 '@types/pretty-hrtime': 1.0.3 '@types/semver': 7.5.8 better-opn: 3.0.2 @@ -22500,7 +22213,7 @@ snapshots: cli-table3: 0.6.5 compression: 1.7.5 detect-port: 1.6.1 - express: 4.21.1 + express: 4.21.2 fs-extra: 11.2.0 globby: 11.1.0 ip: 2.0.1 @@ -22765,7 +22478,7 @@ snapshots: - utf-8-validate - zod - '@synthetixio/synpress-cache@0.0.1-alpha.7(@swc/core@1.9.3(@swc/helpers@0.5.15))(playwright-core@1.44.0)(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/node@20.11.5)(typescript@5.3.3))(typescript@5.3.3)': + '@synthetixio/synpress-cache@0.0.1-alpha.7(@swc/core@1.9.3)(playwright-core@1.44.0)(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.9.3)(@types/node@20.11.5)(typescript@5.3.3))(typescript@5.3.3)': dependencies: axios: 1.6.7 chalk: 5.3.0 @@ -22776,7 +22489,7 @@ snapshots: gradient-string: 2.0.2 playwright-core: 1.44.0 progress: 2.0.3 - tsup: 8.0.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/node@20.11.5)(typescript@5.3.3))(typescript@5.3.3) + tsup: 8.0.2(@swc/core@1.9.3)(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.9.3)(@types/node@20.11.5)(typescript@5.3.3))(typescript@5.3.3) unzipper: 0.10.14 zod: 3.22.4 transitivePeerDependencies: @@ -22792,10 +22505,10 @@ snapshots: dependencies: '@playwright/test': 1.44.0 - '@synthetixio/synpress-metamask@0.0.1-alpha.7(patch_hash=fj5b4lzbslgihe6pqcmuyxpfd4)(@playwright/test@1.44.0)(@swc/core@1.9.3(@swc/helpers@0.5.15))(bufferutil@4.0.8)(playwright-core@1.44.0)(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/node@20.11.5)(typescript@5.3.3))(typescript@5.3.3)(utf-8-validate@5.0.10)': + '@synthetixio/synpress-metamask@0.0.1-alpha.7(patch_hash=fj5b4lzbslgihe6pqcmuyxpfd4)(@playwright/test@1.44.0)(@swc/core@1.9.3)(bufferutil@4.0.8)(playwright-core@1.44.0)(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.9.3)(@types/node@20.11.5)(typescript@5.3.3))(typescript@5.3.3)(utf-8-validate@5.0.10)': dependencies: '@playwright/test': 1.44.0 - '@synthetixio/synpress-cache': 0.0.1-alpha.7(@swc/core@1.9.3(@swc/helpers@0.5.15))(playwright-core@1.44.0)(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/node@20.11.5)(typescript@5.3.3))(typescript@5.3.3) + '@synthetixio/synpress-cache': 0.0.1-alpha.7(@swc/core@1.9.3)(playwright-core@1.44.0)(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.9.3)(@types/node@20.11.5)(typescript@5.3.3))(typescript@5.3.3) '@synthetixio/synpress-core': 0.0.1-alpha.7(@playwright/test@1.44.0) '@viem/anvil': 0.0.7(bufferutil@4.0.8)(utf-8-validate@5.0.10) fs-extra: 11.2.0 @@ -22812,13 +22525,13 @@ snapshots: - typescript - utf-8-validate - '@synthetixio/synpress@4.0.0-alpha.7(@playwright/test@1.44.0)(@swc/core@1.9.3(@swc/helpers@0.5.15))(bufferutil@4.0.8)(playwright-core@1.44.0)(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/node@20.11.5)(typescript@5.3.3))(typescript@5.3.3)(utf-8-validate@5.0.10)(zod@3.23.8)': + '@synthetixio/synpress@4.0.0-alpha.7(@playwright/test@1.44.0)(@swc/core@1.9.3)(bufferutil@4.0.8)(playwright-core@1.44.0)(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.9.3)(@types/node@20.11.5)(typescript@5.3.3))(typescript@5.3.3)(utf-8-validate@5.0.10)(zod@3.23.8)': dependencies: '@playwright/test': 1.44.0 '@synthetixio/ethereum-wallet-mock': 0.0.1-alpha.7(@playwright/test@1.44.0)(bufferutil@4.0.8)(typescript@5.3.3)(utf-8-validate@5.0.10)(zod@3.23.8) - '@synthetixio/synpress-cache': 0.0.1-alpha.7(@swc/core@1.9.3(@swc/helpers@0.5.15))(playwright-core@1.44.0)(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/node@20.11.5)(typescript@5.3.3))(typescript@5.3.3) + '@synthetixio/synpress-cache': 0.0.1-alpha.7(@swc/core@1.9.3)(playwright-core@1.44.0)(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.9.3)(@types/node@20.11.5)(typescript@5.3.3))(typescript@5.3.3) '@synthetixio/synpress-core': 0.0.1-alpha.7(@playwright/test@1.44.0) - '@synthetixio/synpress-metamask': 0.0.1-alpha.7(patch_hash=fj5b4lzbslgihe6pqcmuyxpfd4)(@playwright/test@1.44.0)(@swc/core@1.9.3(@swc/helpers@0.5.15))(bufferutil@4.0.8)(playwright-core@1.44.0)(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/node@20.11.5)(typescript@5.3.3))(typescript@5.3.3)(utf-8-validate@5.0.10) + '@synthetixio/synpress-metamask': 0.0.1-alpha.7(patch_hash=fj5b4lzbslgihe6pqcmuyxpfd4)(@playwright/test@1.44.0)(@swc/core@1.9.3)(bufferutil@4.0.8)(playwright-core@1.44.0)(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.9.3)(@types/node@20.11.5)(typescript@5.3.3))(typescript@5.3.3)(utf-8-validate@5.0.10) transitivePeerDependencies: - '@microsoft/api-extractor' - '@swc/core' @@ -23079,9 +22792,19 @@ snapshots: - expo-localization - react-native - '@trezor/analytics@1.2.3(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.1)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)': + '@trezor/analytics@1.2.3(react-native@0.76.3(@babel/core@7.26.0)(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)': + dependencies: + '@trezor/env-utils': 1.2.1(react-native@0.76.3(@babel/core@7.26.0)(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1) + '@trezor/utils': 9.2.3(tslib@2.8.1) + tslib: 2.8.1 + transitivePeerDependencies: + - expo-constants + - expo-localization + - react-native + + '@trezor/analytics@1.2.3(react-native@0.76.3(@babel/core@7.26.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10))(tslib@2.8.1)': dependencies: - '@trezor/env-utils': 1.2.1(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.1)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1) + '@trezor/env-utils': 1.2.1(react-native@0.76.3(@babel/core@7.26.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10))(tslib@2.8.1) '@trezor/utils': 9.2.3(tslib@2.8.1) tslib: 2.8.1 transitivePeerDependencies: @@ -23115,11 +22838,26 @@ snapshots: - react-native - utf-8-validate - '@trezor/blockchain-link-utils@1.2.4(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.1)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10)': + '@trezor/blockchain-link-utils@1.2.4(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10)': + dependencies: + '@mobily/ts-belt': 3.13.1 + '@solana/web3.js': 1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@trezor/env-utils': 1.2.1(react-native@0.76.3(@babel/core@7.26.0)(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1) + '@trezor/utils': 9.2.4(tslib@2.8.1) + tslib: 2.8.1 + transitivePeerDependencies: + - bufferutil + - encoding + - expo-constants + - expo-localization + - react-native + - utf-8-validate + + '@trezor/blockchain-link-utils@1.2.4(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10)': dependencies: '@mobily/ts-belt': 3.13.1 '@solana/web3.js': 1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@trezor/env-utils': 1.2.1(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.1)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1) + '@trezor/env-utils': 1.2.1(react-native@0.76.3(@babel/core@7.26.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10))(tslib@2.8.1) '@trezor/utils': 9.2.4(tslib@2.8.1) tslib: 2.8.1 transitivePeerDependencies: @@ -23154,13 +22892,37 @@ snapshots: - supports-color - utf-8-validate - '@trezor/blockchain-link@2.3.4(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.1)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10)': + '@trezor/blockchain-link@2.3.4(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10)': + dependencies: + '@solana/buffer-layout': 4.0.1 + '@solana/web3.js': 1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@trezor/blockchain-link-types': 1.2.3(bufferutil@4.0.8)(tslib@2.8.1)(utf-8-validate@5.0.10) + '@trezor/blockchain-link-utils': 1.2.4(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10) + '@trezor/env-utils': 1.2.1(react-native@0.76.3(@babel/core@7.26.0)(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1) + '@trezor/utils': 9.2.4(tslib@2.8.1) + '@trezor/utxo-lib': 2.2.4(tslib@2.8.1) + '@types/web': 0.0.174 + events: 3.3.0 + ripple-lib: 1.10.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + socks-proxy-agent: 8.0.4 + tslib: 2.8.1 + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - encoding + - expo-constants + - expo-localization + - react-native + - supports-color + - utf-8-validate + + '@trezor/blockchain-link@2.3.4(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10)': dependencies: '@solana/buffer-layout': 4.0.1 '@solana/web3.js': 1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@trezor/blockchain-link-types': 1.2.3(bufferutil@4.0.8)(tslib@2.8.1)(utf-8-validate@5.0.10) - '@trezor/blockchain-link-utils': 1.2.4(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.1)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10) - '@trezor/env-utils': 1.2.1(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.1)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1) + '@trezor/blockchain-link-utils': 1.2.4(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10) + '@trezor/env-utils': 1.2.1(react-native@0.76.3(@babel/core@7.26.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10))(tslib@2.8.1) '@trezor/utils': 9.2.4(tslib@2.8.1) '@trezor/utxo-lib': 2.2.4(tslib@2.8.1) '@types/web': 0.0.174 @@ -23187,9 +22949,18 @@ snapshots: - expo-localization - react-native - '@trezor/connect-analytics@1.2.3(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.1)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)': + '@trezor/connect-analytics@1.2.3(react-native@0.76.3(@babel/core@7.26.0)(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)': + dependencies: + '@trezor/analytics': 1.2.3(react-native@0.76.3(@babel/core@7.26.0)(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1) + tslib: 2.8.1 + transitivePeerDependencies: + - expo-constants + - expo-localization + - react-native + + '@trezor/connect-analytics@1.2.3(react-native@0.76.3(@babel/core@7.26.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10))(tslib@2.8.1)': dependencies: - '@trezor/analytics': 1.2.3(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.1)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1) + '@trezor/analytics': 1.2.3(react-native@0.76.3(@babel/core@7.26.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10))(tslib@2.8.1) tslib: 2.8.1 transitivePeerDependencies: - expo-constants @@ -23206,9 +22977,19 @@ snapshots: - expo-localization - react-native - '@trezor/connect-common@0.2.5(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.1)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)': + '@trezor/connect-common@0.2.5(react-native@0.76.3(@babel/core@7.26.0)(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)': + dependencies: + '@trezor/env-utils': 1.2.1(react-native@0.76.3(@babel/core@7.26.0)(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1) + '@trezor/utils': 9.2.4(tslib@2.8.1) + tslib: 2.8.1 + transitivePeerDependencies: + - expo-constants + - expo-localization + - react-native + + '@trezor/connect-common@0.2.5(react-native@0.76.3(@babel/core@7.26.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10))(tslib@2.8.1)': dependencies: - '@trezor/env-utils': 1.2.1(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.1)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1) + '@trezor/env-utils': 1.2.1(react-native@0.76.3(@babel/core@7.26.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10))(tslib@2.8.1) '@trezor/utils': 9.2.4(tslib@2.8.1) tslib: 2.8.1 transitivePeerDependencies: @@ -23232,10 +23013,26 @@ snapshots: - supports-color - utf-8-validate - '@trezor/connect-web@9.4.5(@babel/core@7.26.0)(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.1)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10)': + '@trezor/connect-web@9.4.5(@babel/core@7.26.0)(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10)': + dependencies: + '@trezor/connect': 9.4.5(@babel/core@7.26.0)(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10) + '@trezor/connect-common': 0.2.5(react-native@0.76.3(@babel/core@7.26.0)(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1) + '@trezor/utils': 9.2.4(tslib@2.8.1) + tslib: 2.8.1 + transitivePeerDependencies: + - '@babel/core' + - bufferutil + - encoding + - expo-constants + - expo-localization + - react-native + - supports-color + - utf-8-validate + + '@trezor/connect-web@9.4.5(@babel/core@7.26.0)(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10)': dependencies: - '@trezor/connect': 9.4.5(@babel/core@7.26.0)(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.1)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10) - '@trezor/connect-common': 0.2.5(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.1)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1) + '@trezor/connect': 9.4.5(@babel/core@7.26.0)(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10) + '@trezor/connect-common': 0.2.5(react-native@0.76.3(@babel/core@7.26.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10))(tslib@2.8.1) '@trezor/utils': 9.2.4(tslib@2.8.1) tslib: 2.8.1 transitivePeerDependencies: @@ -23279,16 +23076,47 @@ snapshots: - supports-color - utf-8-validate - '@trezor/connect@9.4.5(@babel/core@7.26.0)(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.1)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10)': + '@trezor/connect@9.4.5(@babel/core@7.26.0)(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10)': + dependencies: + '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) + '@ethereumjs/common': 4.4.0 + '@ethereumjs/tx': 5.4.0 + '@fivebinaries/coin-selection': 2.2.1 + '@trezor/blockchain-link': 2.3.4(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10) + '@trezor/blockchain-link-types': 1.2.3(bufferutil@4.0.8)(tslib@2.8.1)(utf-8-validate@5.0.10) + '@trezor/connect-analytics': 1.2.3(react-native@0.76.3(@babel/core@7.26.0)(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1) + '@trezor/connect-common': 0.2.5(react-native@0.76.3(@babel/core@7.26.0)(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1) + '@trezor/protobuf': 1.2.5(tslib@2.8.1) + '@trezor/protocol': 1.2.2(tslib@2.8.1) + '@trezor/schema-utils': 1.2.3(tslib@2.8.1) + '@trezor/transport': 1.3.5(tslib@2.8.1) + '@trezor/utils': 9.2.4(tslib@2.8.1) + '@trezor/utxo-lib': 2.2.4(tslib@2.8.1) + blakejs: 1.2.1 + bs58: 6.0.0 + bs58check: 4.0.0 + cross-fetch: 4.0.0 + tslib: 2.8.1 + transitivePeerDependencies: + - '@babel/core' + - bufferutil + - encoding + - expo-constants + - expo-localization + - react-native + - supports-color + - utf-8-validate + + '@trezor/connect@9.4.5(@babel/core@7.26.0)(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10)': dependencies: '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) '@ethereumjs/common': 4.4.0 '@ethereumjs/tx': 5.4.0 '@fivebinaries/coin-selection': 2.2.1 - '@trezor/blockchain-link': 2.3.4(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.1)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10) + '@trezor/blockchain-link': 2.3.4(bufferutil@4.0.8)(react-native@0.76.3(@babel/core@7.26.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10) '@trezor/blockchain-link-types': 1.2.3(bufferutil@4.0.8)(tslib@2.8.1)(utf-8-validate@5.0.10) - '@trezor/connect-analytics': 1.2.3(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.1)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1) - '@trezor/connect-common': 0.2.5(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.1)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1) + '@trezor/connect-analytics': 1.2.3(react-native@0.76.3(@babel/core@7.26.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10))(tslib@2.8.1) + '@trezor/connect-common': 0.2.5(react-native@0.76.3(@babel/core@7.26.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10))(tslib@2.8.1) '@trezor/protobuf': 1.2.5(tslib@2.8.1) '@trezor/protocol': 1.2.2(tslib@2.8.1) '@trezor/schema-utils': 1.2.3(tslib@2.8.1) @@ -23317,12 +23145,19 @@ snapshots: optionalDependencies: react-native: 0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10) - '@trezor/env-utils@1.2.1(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.1)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)': + '@trezor/env-utils@1.2.1(react-native@0.76.3(@babel/core@7.26.0)(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)': dependencies: tslib: 2.8.1 ua-parser-js: 1.0.39 optionalDependencies: - react-native: 0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.1)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10) + react-native: 0.76.3(@babel/core@7.26.0)(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10) + + '@trezor/env-utils@1.2.1(react-native@0.76.3(@babel/core@7.26.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10))(tslib@2.8.1)': + dependencies: + tslib: 2.8.1 + ua-parser-js: 1.0.39 + optionalDependencies: + react-native: 0.76.3(@babel/core@7.26.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@trezor/protobuf@1.2.5(tslib@2.8.1)': dependencies: @@ -23605,10 +23440,6 @@ snapshots: '@types/node@18.15.13': {} - '@types/node@18.19.67': - dependencies: - undici-types: 5.26.5 - '@types/node@20.11.5': dependencies: undici-types: 5.26.5 @@ -25920,7 +25751,7 @@ snapshots: compressible@2.0.18: dependencies: - mime-db: 1.53.0 + mime-db: 1.52.0 compression@1.7.5: dependencies: @@ -26862,7 +26693,7 @@ snapshots: eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.18.1(eslint@8.56.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@6.18.1(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0))(eslint@8.56.0) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@6.18.1(eslint@8.56.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.18.1(eslint@8.56.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@6.18.1(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0))(eslint@8.56.0))(eslint@8.56.0) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@6.18.1(eslint@8.56.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.56.0) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.56.0) eslint-plugin-react: 7.37.2(eslint@8.56.0) eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.56.0) @@ -26897,7 +26728,7 @@ snapshots: is-bun-module: 1.3.0 is-glob: 4.0.3 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@6.18.1(eslint@8.56.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.18.1(eslint@8.56.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@6.18.1(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0))(eslint@8.56.0))(eslint@8.56.0) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@6.18.1(eslint@8.56.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.56.0) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node @@ -26915,7 +26746,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@6.18.1(eslint@8.56.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.18.1(eslint@8.56.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@6.18.1(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0))(eslint@8.56.0))(eslint@8.56.0): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@6.18.1(eslint@8.56.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.56.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -27290,7 +27121,7 @@ snapshots: exponential-backoff@3.1.1: {} - express@4.21.1: + express@4.21.2: dependencies: accepts: 1.3.8 array-flatten: 1.1.1 @@ -27311,7 +27142,7 @@ snapshots: methods: 1.1.2 on-finished: 2.4.1 parseurl: 1.3.3 - path-to-regexp: 0.1.10 + path-to-regexp: 0.1.12 proxy-addr: 2.0.7 qs: 6.13.0 range-parser: 1.2.1 @@ -29065,7 +28896,7 @@ snapshots: map-or-similar@1.5.0: {} - markdown-to-jsx@7.7.0(react@18.3.1): + markdown-to-jsx@7.7.1(react@18.3.1): dependencies: react: 18.3.1 @@ -29298,8 +29129,6 @@ snapshots: mime-db@1.52.0: {} - mime-db@1.53.0: {} - mime-types@2.1.35: dependencies: mime-db: 1.52.0 @@ -29905,7 +29734,7 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 - path-to-regexp@0.1.10: {} + path-to-regexp@0.1.12: {} path-to-regexp@6.3.0: {} @@ -30028,13 +29857,13 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.4.49 - postcss-load-config@4.0.2(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/node@20.11.5)(typescript@5.3.3)): + postcss-load-config@4.0.2(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.9.3)(@types/node@20.11.5)(typescript@5.3.3)): dependencies: lilconfig: 3.1.2 yaml: 2.6.1 optionalDependencies: postcss: 8.4.49 - ts-node: 10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/node@20.11.5)(typescript@5.3.3) + ts-node: 10.9.2(@swc/core@1.9.3)(@types/node@20.11.5)(typescript@5.3.3) postcss-nested@6.2.0(postcss@8.4.49): dependencies: @@ -30349,7 +30178,7 @@ snapshots: optionalDependencies: '@types/react': 18.2.62 - react-hook-form@7.53.1(react@18.3.1): + react-hook-form@7.54.0(react@18.3.1): dependencies: react: 18.3.1 @@ -30490,6 +30319,109 @@ snapshots: - supports-color - utf-8-validate + react-native@0.76.3(@babel/core@7.26.0)(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10): + dependencies: + '@jest/create-cache-key-function': 29.7.0 + '@react-native/assets-registry': 0.76.3 + '@react-native/codegen': 0.76.3(@babel/preset-env@7.26.0(@babel/core@7.26.0)) + '@react-native/community-cli-plugin': 0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@react-native/gradle-plugin': 0.76.3 + '@react-native/js-polyfills': 0.76.3 + '@react-native/normalize-colors': 0.76.3 + '@react-native/virtualized-lists': 0.76.3(@types/react@18.2.62)(react-native@0.76.3(@babel/core@7.26.0)(@types/react@18.2.62)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1) + abort-controller: 3.0.0 + anser: 1.4.10 + ansi-regex: 5.0.1 + babel-jest: 29.7.0(@babel/core@7.26.0) + babel-plugin-syntax-hermes-parser: 0.23.1 + base64-js: 1.5.1 + chalk: 4.1.2 + commander: 12.1.0 + event-target-shim: 5.0.1 + flow-enums-runtime: 0.0.6 + glob: 7.2.3 + invariant: 2.2.4 + jest-environment-node: 29.7.0 + jsc-android: 250231.0.0 + memoize-one: 5.2.1 + metro-runtime: 0.81.0 + metro-source-map: 0.81.0 + mkdirp: 0.5.6 + nullthrows: 1.1.1 + pretty-format: 29.7.0 + promise: 8.3.0 + react: 18.3.1 + react-devtools-core: 5.3.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + react-refresh: 0.14.2 + regenerator-runtime: 0.13.11 + scheduler: 0.24.0-canary-efb381bbf-20230505 + semver: 7.6.3 + stacktrace-parser: 0.1.10 + whatwg-fetch: 3.6.20 + ws: 6.2.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + yargs: 17.7.2 + optionalDependencies: + '@types/react': 18.2.62 + transitivePeerDependencies: + - '@babel/core' + - '@babel/preset-env' + - '@react-native-community/cli-server-api' + - bufferutil + - encoding + - supports-color + - utf-8-validate + optional: true + + react-native@0.76.3(@babel/core@7.26.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10): + dependencies: + '@jest/create-cache-key-function': 29.7.0 + '@react-native/assets-registry': 0.76.3 + '@react-native/codegen': 0.76.3(@babel/preset-env@7.26.0(@babel/core@7.26.0)) + '@react-native/community-cli-plugin': 0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@react-native/gradle-plugin': 0.76.3 + '@react-native/js-polyfills': 0.76.3 + '@react-native/normalize-colors': 0.76.3 + '@react-native/virtualized-lists': 0.76.3(react-native@0.76.3(@babel/core@7.26.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + abort-controller: 3.0.0 + anser: 1.4.10 + ansi-regex: 5.0.1 + babel-jest: 29.7.0(@babel/core@7.26.0) + babel-plugin-syntax-hermes-parser: 0.23.1 + base64-js: 1.5.1 + chalk: 4.1.2 + commander: 12.1.0 + event-target-shim: 5.0.1 + flow-enums-runtime: 0.0.6 + glob: 7.2.3 + invariant: 2.2.4 + jest-environment-node: 29.7.0 + jsc-android: 250231.0.0 + memoize-one: 5.2.1 + metro-runtime: 0.81.0 + metro-source-map: 0.81.0 + mkdirp: 0.5.6 + nullthrows: 1.1.1 + pretty-format: 29.7.0 + promise: 8.3.0 + react-devtools-core: 5.3.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + react-refresh: 0.14.2 + regenerator-runtime: 0.13.11 + scheduler: 0.24.0-canary-efb381bbf-20230505 + semver: 7.6.3 + stacktrace-parser: 0.1.10 + whatwg-fetch: 3.6.20 + ws: 6.2.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + yargs: 17.7.2 + transitivePeerDependencies: + - '@babel/core' + - '@babel/preset-env' + - '@react-native-community/cli-server-api' + - bufferutil + - encoding + - supports-color + - utf-8-validate + optional: true + react-qr-reader@2.2.1(react-dom@16.13.1(react@16.13.1))(react@16.13.1): dependencies: jsqr: 1.4.0 @@ -31409,11 +31341,11 @@ snapshots: dependencies: '@babel/runtime': 7.24.5 - tailwindcss-animate@1.0.7(tailwindcss@3.4.1(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/node@20.11.5)(typescript@5.3.3))): + tailwindcss-animate@1.0.7(tailwindcss@3.4.1(ts-node@10.9.2(@types/node@20.11.5)(typescript@5.3.3))): dependencies: - tailwindcss: 3.4.1(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/node@20.11.5)(typescript@5.3.3)) + tailwindcss: 3.4.1(ts-node@10.9.2(@types/node@20.11.5)(typescript@5.3.3)) - tailwindcss@3.4.1(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/node@20.11.5)(typescript@5.3.3)): + tailwindcss@3.4.1(ts-node@10.9.2(@types/node@20.11.5)(typescript@5.3.3)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -31432,7 +31364,7 @@ snapshots: postcss: 8.4.49 postcss-import: 15.1.0(postcss@8.4.49) postcss-js: 4.0.1(postcss@8.4.49) - postcss-load-config: 4.0.2(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/node@20.11.5)(typescript@5.3.3)) + postcss-load-config: 4.0.2(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.9.3)(@types/node@20.11.5)(typescript@5.3.3)) postcss-nested: 6.2.0(postcss@8.4.49) postcss-selector-parser: 6.1.2 resolve: 1.22.8 @@ -31636,7 +31568,7 @@ snapshots: ts-mixer@6.0.4: {} - ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/node@20.11.5)(typescript@5.3.3): + ts-node@10.9.2(@swc/core@1.9.3)(@types/node@20.11.5)(typescript@5.3.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 @@ -31673,7 +31605,7 @@ snapshots: tsscmp@1.0.6: {} - tsup@8.0.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/node@20.11.5)(typescript@5.3.3))(typescript@5.3.3): + tsup@8.0.2(@swc/core@1.9.3)(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.9.3)(@types/node@20.11.5)(typescript@5.3.3))(typescript@5.3.3): dependencies: bundle-require: 4.2.1(esbuild@0.19.12) cac: 6.7.14 @@ -31683,7 +31615,7 @@ snapshots: execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 - postcss-load-config: 4.0.2(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/node@20.11.5)(typescript@5.3.3)) + postcss-load-config: 4.0.2(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.9.3)(@types/node@20.11.5)(typescript@5.3.3)) resolve-from: 5.0.0 rollup: 4.28.0 source-map: 0.8.0-beta.0 @@ -32441,8 +32373,8 @@ snapshots: webauthn-p256@0.0.10: dependencies: - '@noble/curves': 1.7.0 - '@noble/hashes': 1.6.1 + '@noble/curves': 1.6.0 + '@noble/hashes': 1.5.0 webauthn-p256@0.0.2: dependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 4c5f8146f6..2f0a8c95d9 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,14 +1,14 @@ packages: - 'packages/adapters/*' - 'packages/appkit' - - 'packages/appkit-new' + # - 'packages/appkit-new' - 'packages/common' - 'packages/ui' - - 'packages/ui-new' + # - 'packages/ui-new' - 'packages/core' - 'packages/appkit-utils' - 'packages/scaffold-ui' - - 'packages/scaffold-ui-new' + # - 'packages/scaffold-ui-new' - 'packages/polyfills' - 'packages/wallet' - 'packages/siwe' @@ -18,5 +18,7 @@ packages: - 'packages/experimental' - 'packages/cli' - 'apps/*' + - '!apps/gallery-new' + - '!apps/laboratory-new' - 'examples/*' - 'services/*'