From 3b6a0f471dfc196323f77361c92ea0a9c92469ab Mon Sep 17 00:00:00 2001 From: Onno Visser <23527729+onnovisser@users.noreply.github.com> Date: Tue, 10 Dec 2024 10:52:18 +0100 Subject: [PATCH] add useCentrifugeQuery hook --- sdk-consumer/package.json | 11 +- sdk-consumer/src/App.tsx | 17 +- sdk-consumer/src/centrifuge.ts | 2 + .../Transactions/TransactionToasts.tsx | 66 +++ .../Transactions/TransactionsProvider.tsx | 83 ++++ sdk-consumer/src/components/account.tsx | 6 +- sdk-consumer/src/config/wagmiConfig.ts | 7 +- sdk-consumer/src/hooks/useAccount.ts | 13 + sdk-consumer/src/hooks/useAccountbalance.ts | 42 -- sdk-consumer/src/hooks/useCentrifugeQuery.ts | 128 +++++ sdk-consumer/src/hooks/usePool.ts | 22 + yarn.lock | 467 ++++++++++-------- 12 files changed, 588 insertions(+), 276 deletions(-) create mode 100644 sdk-consumer/src/centrifuge.ts create mode 100644 sdk-consumer/src/components/Transactions/TransactionToasts.tsx create mode 100644 sdk-consumer/src/components/Transactions/TransactionsProvider.tsx create mode 100644 sdk-consumer/src/hooks/useAccount.ts delete mode 100644 sdk-consumer/src/hooks/useAccountbalance.ts create mode 100644 sdk-consumer/src/hooks/useCentrifugeQuery.ts create mode 100644 sdk-consumer/src/hooks/usePool.ts diff --git a/sdk-consumer/package.json b/sdk-consumer/package.json index 9a5ae293d0..34e9e9f6ae 100644 --- a/sdk-consumer/package.json +++ b/sdk-consumer/package.json @@ -10,15 +10,16 @@ "preview": "vite preview" }, "dependencies": { - "@centrifuge/centrifuge-sdk": "portal:/Users/kattybarroso/desktop/centrifuge/centrifuge-sdk", + "@centrifuge/fabric": "workspace:*", + "@centrifuge/sdk": "0.0.0-alpha.0", "@talismn/wagmi-connector": "^0.3.1", "@tanstack/react-query": "^5.59.16", - "@wagmi/core": "^2.14.1", - "ethers": "^6.13.4", + "@wagmi/core": "^2.15.2", "react": "^18.3.1", "react-dom": "^18.3.1", - "viem": "2.x", - "wagmi": "latest" + "rxjs": "^7.8.1", + "viem": "^2.21.54", + "wagmi": "^2.13.3" }, "devDependencies": { "@eslint/js": "^9.13.0", diff --git a/sdk-consumer/src/App.tsx b/sdk-consumer/src/App.tsx index 20bdbc674b..bc693b7ae3 100644 --- a/sdk-consumer/src/App.tsx +++ b/sdk-consumer/src/App.tsx @@ -1,6 +1,7 @@ +import { FabricProvider, centrifugeTheme } from '@centrifuge/fabric' import { QueryClient, QueryClientProvider } from '@tanstack/react-query' - import { WagmiProvider, useAccount } from 'wagmi' +import { TransactionProvider } from './components/Transactions/TransactionsProvider' import { Account } from './components/account' import { WalletOptions } from './components/wallet-options' import { wagmiConfig } from './config/wagmiConfig' @@ -15,11 +16,15 @@ function ConnectWallet() { function App() { return ( - - - - - + + + + + + + + + ) } diff --git a/sdk-consumer/src/centrifuge.ts b/sdk-consumer/src/centrifuge.ts new file mode 100644 index 0000000000..24a0fd2f7e --- /dev/null +++ b/sdk-consumer/src/centrifuge.ts @@ -0,0 +1,2 @@ +import Centrifuge from '@centrifuge/sdk' +export const centrifuge = new Centrifuge({ environment: 'demo' }) diff --git a/sdk-consumer/src/components/Transactions/TransactionToasts.tsx b/sdk-consumer/src/components/Transactions/TransactionToasts.tsx new file mode 100644 index 0000000000..28226f9fb8 --- /dev/null +++ b/sdk-consumer/src/components/Transactions/TransactionToasts.tsx @@ -0,0 +1,66 @@ +import { Stack, Toast, ToastStatus } from '@centrifuge/fabric' +import { useTransactions } from './TransactionsProvider' + +const toastStatus: { [key: string]: ToastStatus } = { + creating: 'pending', + unconfirmed: 'pending', + pending: 'pending', + succeeded: 'ok', + failed: 'critical', +} + +const toastSublabel = { + creating: 'Creating transaction', + unconfirmed: 'Signing transaction', + pending: 'Transaction pending', + succeeded: 'Transaction successful', + failed: 'Transaction failed', +} + +const TOAST_DURATION = 10000 +const ERROR_TOAST_DURATION = 60000 + +export type TransactionToastsProps = { + positionProps?: { + top?: number | string + right?: number | string + bottom?: number | string + left?: number | string + width?: number | string + zIndex?: number | string + } +} + +export function TransactionToasts({ + positionProps = { + top: 64, + right: 1, + }, +}: TransactionToastsProps) { + const { transactions, updateTransaction } = useTransactions() + + const dismiss = (txId: string) => () => updateTransaction(txId, { dismissed: true }) + + return ( + + {transactions + .filter((tx) => !tx.dismissed && !['creating', 'unconfirmed'].includes(tx.status)) + .map((tx) => { + return ( + { + if (['ok', 'critical'].includes(newStatus)) { + setTimeout(dismiss(tx.id), newStatus === 'ok' ? TOAST_DURATION : ERROR_TOAST_DURATION) + } + }} + key={tx.id} + /> + ) + })} + + ) +} diff --git a/sdk-consumer/src/components/Transactions/TransactionsProvider.tsx b/sdk-consumer/src/components/Transactions/TransactionsProvider.tsx new file mode 100644 index 0000000000..214c5a6f91 --- /dev/null +++ b/sdk-consumer/src/components/Transactions/TransactionsProvider.tsx @@ -0,0 +1,83 @@ +import * as React from 'react' +import { TransactionToasts } from './TransactionToasts' + +export type TransactionStatus = 'creating' | 'unconfirmed' | 'pending' | 'succeeded' | 'failed' +export type Transaction = { + id: string + title: string + status: TransactionStatus + hash?: string + result?: any + failedReason?: string + error?: any + dismissed?: boolean +} + +type TransactionsContextType = { + transactions: Transaction[] + addTransaction: (tx: Transaction) => void + addOrUpdateTransaction: (tx: Transaction) => void + updateTransaction: (id: string, update: Partial | ((prev: Transaction) => Partial)) => void +} + +const TransactionsContext = React.createContext(null as any) + +type TransactionProviderProps = { + children: React.ReactNode +} + +export function TransactionProvider({ children }: TransactionProviderProps) { + const [transactions, setTransactions] = React.useState([]) + + const addTransaction = React.useCallback((tx: Transaction) => { + setTransactions((prev) => [...prev, tx]) + }, []) + + const updateTransaction = React.useCallback( + (id: string, update: Partial | ((prev: Transaction) => Partial)) => { + setTransactions((prev) => + prev.map((tx) => + tx.id === id ? { ...tx, dismissed: false, ...(typeof update === 'function' ? update(tx) : update) } : tx + ) + ) + }, + [] + ) + + const addOrUpdateTransaction = React.useCallback((tx: Transaction) => { + setTransactions((prev) => { + if (prev.find((t) => t.id === tx.id)) { + return prev.map((t) => (t.id === tx.id ? { ...t, dismissed: false, ...tx } : t)) + } + return [...prev, tx] + }) + }, []) + + const ctx: TransactionsContextType = React.useMemo( + () => ({ + transactions, + addTransaction, + updateTransaction, + addOrUpdateTransaction, + }), + [transactions, addTransaction, updateTransaction, addOrUpdateTransaction] + ) + + return ( + + {children} + + + ) +} + +export function useTransactions() { + const ctx = React.useContext(TransactionsContext) + if (!ctx) throw new Error('useTransactions must be used within Provider') + return ctx +} + +export function useTransaction(id?: string) { + const { transactions } = useTransactions() + return id ? transactions.find((tx) => tx.id === id) : null +} diff --git a/sdk-consumer/src/components/account.tsx b/sdk-consumer/src/components/account.tsx index 564693a8e1..7c12b7eb19 100644 --- a/sdk-consumer/src/components/account.tsx +++ b/sdk-consumer/src/components/account.tsx @@ -1,16 +1,16 @@ import { useAccount, useDisconnect, useEnsName } from 'wagmi' -import { useAccountBalance } from '../hooks/useAccountbalance' +import { useAccountBalance } from '../hooks/useAccount' export function Account() { const { address } = useAccount() const { disconnect } = useDisconnect() const { data: ensName } = useEnsName({ address }) - const balance = useAccountBalance() + const { data: balance } = useAccountBalance() return (
{address &&
{ensName ? `${ensName} (${address})` : address}
} -

Your balance is {balance !== null ? balance.toString() : 'Loading...'}

+

Your balance is {balance?.toFloat() ?? 'Loading...'}

) diff --git a/sdk-consumer/src/config/wagmiConfig.ts b/sdk-consumer/src/config/wagmiConfig.ts index 5209c4d57f..4e80e0321e 100644 --- a/sdk-consumer/src/config/wagmiConfig.ts +++ b/sdk-consumer/src/config/wagmiConfig.ts @@ -1,12 +1,11 @@ import { createConfig, http } from 'wagmi' -import { base, mainnet } from 'wagmi/chains' +import { sepolia } from 'wagmi/chains' import { injected } from 'wagmi/connectors' export const wagmiConfig = createConfig({ - chains: [mainnet, base], + chains: [sepolia], connectors: [injected()], transports: { - [mainnet.id]: http(), - [base.id]: http(), + [sepolia.id]: http(), }, }) diff --git a/sdk-consumer/src/hooks/useAccount.ts b/sdk-consumer/src/hooks/useAccount.ts new file mode 100644 index 0000000000..c9a88de891 --- /dev/null +++ b/sdk-consumer/src/hooks/useAccount.ts @@ -0,0 +1,13 @@ +import { useMemo } from 'react' +import { useAccount } from 'wagmi' +import { centrifuge } from '../centrifuge' +import { useCentrifugeQuery } from './useCentrifugeQuery' + +const tUSD = '0x8503b4452Bf6238cC76CdbEE223b46d7196b1c93' + +export function useAccountBalance() { + const { address } = useAccount() + const balance$ = useMemo(() => (address ? centrifuge.balance(tUSD, address) : undefined), [address]) + console.log('balance$', balance$) + return useCentrifugeQuery(balance$) +} diff --git a/sdk-consumer/src/hooks/useAccountbalance.ts b/sdk-consumer/src/hooks/useAccountbalance.ts deleted file mode 100644 index 0bc7789fb1..0000000000 --- a/sdk-consumer/src/hooks/useAccountbalance.ts +++ /dev/null @@ -1,42 +0,0 @@ -import Centrifuge from '@centrifuge/centrifuge-sdk' -import { useEffect, useState } from 'react' -import { useAccount } from 'wagmi' - -type Balance = bigint | null - -export function useAccountBalance(): Balance { - const { address, chain } = useAccount() - const [balance, setBalance] = useState(null) - - // const addressNumber = '0x423420Ae467df6e90291fd0252c0A8a637C1e03f' - const chainId = 11155111 - - useEffect(() => { - if (!address) return - - const fetchBalance = async () => { - const centrifuge = new Centrifuge({ environment: 'demo' }) - - try { - const accountQuery = centrifuge.account(address, chainId) - accountQuery.subscribe({ - next: (account) => { - account.balances().subscribe({ - next: (balanceValue) => { - setBalance(BigInt(balanceValue)) - }, - error: (error) => console.error('Error fetching balance:', error), - }) - }, - error: (error) => console.error('Error retrieving account:', error), - }) - } catch (error) { - console.error('General Error:', error) - } - } - - fetchBalance() - }, [address, chain]) - - return balance -} diff --git a/sdk-consumer/src/hooks/useCentrifugeQuery.ts b/sdk-consumer/src/hooks/useCentrifugeQuery.ts new file mode 100644 index 0000000000..509d673a88 --- /dev/null +++ b/sdk-consumer/src/hooks/useCentrifugeQuery.ts @@ -0,0 +1,128 @@ +import { useEffect, useInsertionEffect, useLayoutEffect, useMemo, useState, useSyncExternalStore } from 'react' +import { catchError, finalize, of, share, timer, type Observable, type ObservedValueOf } from 'rxjs' +import { map, tap } from 'rxjs/operators' + +export type CentrifugeQueryOptions = {} + +// type QueryReturn = { data: T | undefined; error?: unknown; isLoading: boolean } + +export function useCentrifugeQuery(observable?: Observable, _options?: CentrifugeQueryOptions) { + const record = useObservable(observable) + + return { + data: record.data, + error: record.error, + isLoading: record.status === 'loading', + } +} + +export function useCentrifugeQueryWithRefresh(observable?: Observable) { + const record = useObservable(observable) + const [visibleData, setVisibleData] = useState(record.data) + + return { + data: visibleData, + error: record.error, + isLoading: record.status === 'loading', + hasFreshData: record.data !== visibleData, + refresh: () => { + setVisibleData(record.data) + }, + } +} + +type CacheRecord = { + observable: Observable + snapshot: { + data?: T + error?: unknown + status: 'loading' | 'error' | 'success' + } + // Allows observables to emit `undefined` and still be successful + didEmitData: boolean +} + +const cache = new WeakMap, CacheRecord>() + +function useObservable>( + observable?: ObservableType +): CacheRecord>['snapshot'] { + const store = useMemo(() => { + if (!observable) return + if (!cache.has(observable)) { + const entry = { + snapshot: { + status: 'loading', + }, + didEmitData: false, + } as CacheRecord> + entry.observable = observable.pipe( + map((value) => ({ data: value, error: undefined, hasData: true })), + catchError((error) => of({ data: entry.snapshot.data, error, hasData: entry.didEmitData })), + tap((result) => { + entry.didEmitData = result.hasData + entry.snapshot = { + ...result, + status: entry.didEmitData ? 'success' : 'error', + } + }), + // Ensure that the cache entry is deleted when the observable completes. + finalize(() => cache.delete(observable)), + // Share the observable to prevent unsubscribing and resubscribing between the immediate subscription and the useSyncExternalStore subscription. + share({ + resetOnRefCountZero: () => + timer(0).pipe( + tap(() => { + console.log('resetOnRefCountZero') + }) + ), + }) + ) + + // Eagerly subscribe to sync set `entry.snapshot`. + const subscription = entry.observable.subscribe() + subscription.unsubscribe() + + cache.set(observable, entry) + } + const instance = cache.get(observable)! + + return { + subscribe: (onStoreChange: () => void) => { + console.log('subscribe') + const subscription = instance.observable.subscribe(() => onStoreChange()) + return () => { + subscription.unsubscribe() + } + }, + getSnapshot: () => { + console.log('get snapshot') + return instance.snapshot + }, + } + }, [observable]) + + const res = useSyncExternalStore(store?.subscribe || noopStore.subscribe, store?.getSnapshot || noopStore.getSnapshot) + console.log('after sync store') + + useInsertionEffect(() => { + console.log('insertion effect') + }) + + useLayoutEffect(() => { + console.log('layout effect') + }) + + useEffect(() => { + console.log('effect') + }) + return res +} + +const noopSnapshot = { + status: 'loading' as const, +} +const noopStore = { + subscribe: () => () => {}, + getSnapshot: () => noopSnapshot, +} diff --git a/sdk-consumer/src/hooks/usePool.ts b/sdk-consumer/src/hooks/usePool.ts new file mode 100644 index 0000000000..91656f70bf --- /dev/null +++ b/sdk-consumer/src/hooks/usePool.ts @@ -0,0 +1,22 @@ +import { Pool } from '@centrifuge/sdk' +import { useMemo, useState } from 'react' +import { switchMap } from 'rxjs' +import { centrifuge } from '../centrifuge' +import { useCentrifugeQuery } from './useCentrifugeQuery' + +const poolId = '2779829532' +const trancheId = '0xac6bffc5fd68f7772ceddec7b0a316ca' + +function usePools() { + const [pools] = useState(() => [new Pool(centrifuge, poolId)]) + return pools +} + +export function useVaults(poolId: string, trancheId: string, chainId: number) { + const pool = usePools().find((p) => p.id === poolId) + const vaults$ = useMemo( + () => pool?.network(chainId).pipe(switchMap((network) => network.vaults(trancheId))), + [pool, trancheId] + ) + return useCentrifugeQuery(vaults$) +} diff --git a/yarn.lock b/yarn.lock index 6f78a12057..367393dc05 100644 --- a/yarn.lock +++ b/yarn.lock @@ -26,7 +26,7 @@ __metadata: languageName: node linkType: hard -"@adraffy/ens-normalize@npm:1.11.0": +"@adraffy/ens-normalize@npm:1.11.0, @adraffy/ens-normalize@npm:^1.10.1": version: 1.11.0 resolution: "@adraffy/ens-normalize@npm:1.11.0" checksum: b2911269e3e0ec6396a2e5433a99e0e1f9726befc6c167994448cd0e53dbdd0be22b4835b4f619558b568ed9aa7312426b8fa6557a13999463489daa88169ee5 @@ -1849,7 +1849,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.19.4": +"@babel/runtime@npm:^7.26.0": version: 7.26.0 resolution: "@babel/runtime@npm:7.26.0" dependencies: @@ -2070,17 +2070,6 @@ __metadata: languageName: unknown linkType: soft -"@centrifuge/centrifuge-sdk@portal:/Users/kattybarroso/desktop/centrifuge/centrifuge-sdk::locator=sdk-consumer%40workspace%3Asdk-consumer": - version: 0.0.0-use.local - resolution: "@centrifuge/centrifuge-sdk@portal:/Users/kattybarroso/desktop/centrifuge/centrifuge-sdk::locator=sdk-consumer%40workspace%3Asdk-consumer" - dependencies: - eth-permit: ^0.2.3 - rxjs: ^7.8.1 - peerDependencies: - viem: ^2 - languageName: node - linkType: soft - "@centrifuge/fabric@workspace:*, @centrifuge/fabric@workspace:fabric": version: 0.0.0-use.local resolution: "@centrifuge/fabric@workspace:fabric" @@ -2169,6 +2158,20 @@ __metadata: languageName: unknown linkType: soft +"@centrifuge/sdk@npm:0.0.0-alpha.0": + version: 0.0.0-alpha.0 + resolution: "@centrifuge/sdk@npm:0.0.0-alpha.0" + dependencies: + decimal.js-light: ^2.5.1 + eth-permit: ^0.2.3 + isomorphic-ws: ^5.0.0 + rxjs: ^7.8.1 + peerDependencies: + viem: ^2 + checksum: 7e440cf1ab6d77427b50429671a4ae1878f86e33c76e2eff2c32535ca494d2051f14d259c86eaf6a7dbe68c3cf6308f01e2a24eea9546b8acf2fdca5ded909e2 + languageName: node + linkType: hard + "@centrifuge/simulation-tests@workspace:simulation-tests": version: 0.0.0-use.local resolution: "@centrifuge/simulation-tests@workspace:simulation-tests" @@ -2184,15 +2187,15 @@ __metadata: languageName: unknown linkType: soft -"@coinbase/wallet-sdk@npm:4.1.0": - version: 4.1.0 - resolution: "@coinbase/wallet-sdk@npm:4.1.0" +"@coinbase/wallet-sdk@npm:4.2.3": + version: 4.2.3 + resolution: "@coinbase/wallet-sdk@npm:4.2.3" dependencies: "@noble/hashes": ^1.4.0 clsx: ^1.2.1 eventemitter3: ^5.0.1 - preact: ^10.16.0 - checksum: 13ccdbf48bc43db5b9285ca4e6d13a81e1d0c7d13735b1695f9c33c4e3bb0b03683adfffc084344aed475832c3613d68e025f029fc8f2b6abe386596aeee39c9 + preact: ^10.24.2 + checksum: f1cb3c5975bf7eed46aa56077943becea16e92ac7dda46e78fb2939b3f3864815a7f218842410abb40b2b3182d09c9636ea699714c3d564009438c3611f45abc languageName: node linkType: hard @@ -2365,12 +2368,12 @@ __metadata: languageName: node linkType: hard -"@ecies/ciphers@npm:^0.2.0": - version: 0.2.0 - resolution: "@ecies/ciphers@npm:0.2.0" +"@ecies/ciphers@npm:^0.2.1": + version: 0.2.2 + resolution: "@ecies/ciphers@npm:0.2.2" peerDependencies: "@noble/ciphers": ^1.0.0 - checksum: 007313594d46bd94655ace5a59e6663ef8f9e9b475694ab698ec4a9b312947ba1b9c2798af7f63fac913c59d6028b0a8aa204fe613010c5c319b4a32c877e5b4 + checksum: 10a623261aa212184850fcd41788ae1f616365b5084df03ac0d7108223519e24a5f7d92caac1ee9e0f2e3b6cfae3037a42e466b25de20cf85e91098f60ba1187 languageName: node linkType: hard @@ -4274,9 +4277,9 @@ __metadata: languageName: node linkType: hard -"@metamask/sdk-communication-layer@npm:0.30.0": - version: 0.30.0 - resolution: "@metamask/sdk-communication-layer@npm:0.30.0" +"@metamask/sdk-communication-layer@npm:0.31.0": + version: 0.31.0 + resolution: "@metamask/sdk-communication-layer@npm:0.31.0" dependencies: bufferutil: ^4.0.8 date-fns: ^2.29.3 @@ -4285,68 +4288,47 @@ __metadata: uuid: ^8.3.2 peerDependencies: cross-fetch: ^4.0.0 - eciesjs: ^0.3.16 - eventemitter2: ^6.4.7 + eciesjs: "*" + eventemitter2: ^6.4.9 readable-stream: ^3.6.2 socket.io-client: ^4.5.1 - checksum: 163385834b5f0719fd4fd6c89b62426261e190df001fab39226c0eae72e6597b02f0214ebf3f3530317c974a867afe0b29c5243775dc4cde65f0c382e5f6a314 + checksum: 3f9283d828d736f331154bfa0e1368b7c7c18e00eff66ccd20e97fb86618433cef3c60ed4168e2565bda825303562eb00bb9ca101d1abdcdc3f3848f807e614e languageName: node linkType: hard -"@metamask/sdk-install-modal-web@npm:0.30.0": - version: 0.30.0 - resolution: "@metamask/sdk-install-modal-web@npm:0.30.0" +"@metamask/sdk-install-modal-web@npm:0.31.1": + version: 0.31.1 + resolution: "@metamask/sdk-install-modal-web@npm:0.31.1" dependencies: - qr-code-styling: ^1.6.0-rc.1 - peerDependencies: - i18next: 23.11.5 - react: ^18.2.0 - react-dom: ^18.2.0 - react-native: "*" - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - react-native: - optional: true - checksum: 025c5d975b1a76cfcca50014b8860a3ecaa3a951645390b4bf7b488aedd910d35b569aab3f711dcf4c98f20e38d43d432ddcfe891f21e39ad6435b8daf9c45c6 + "@paulmillr/qr": ^0.2.1 + checksum: 9b9967ccbe4c0e07c39f0d7da18841902d726cd888b1745bc95d90d4e16aac3ccd2fb23f32edc1425874172ff8aa2f466eea30d9c0f7120fd14f2dbf7c12d6fc languageName: node linkType: hard -"@metamask/sdk@npm:0.30.1": - version: 0.30.1 - resolution: "@metamask/sdk@npm:0.30.1" +"@metamask/sdk@npm:0.31.1": + version: 0.31.1 + resolution: "@metamask/sdk@npm:0.31.1" dependencies: + "@babel/runtime": ^7.26.0 "@metamask/onboarding": ^1.0.1 "@metamask/providers": 16.1.0 - "@metamask/sdk-communication-layer": 0.30.0 - "@metamask/sdk-install-modal-web": 0.30.0 + "@metamask/sdk-communication-layer": 0.31.0 + "@metamask/sdk-install-modal-web": 0.31.1 + "@paulmillr/qr": ^0.2.1 bowser: ^2.9.0 cross-fetch: ^4.0.0 debug: ^4.3.4 - eciesjs: ^0.4.8 + eciesjs: ^0.4.11 eth-rpc-errors: ^4.0.3 - eventemitter2: ^6.4.7 - i18next: 23.11.5 - i18next-browser-languagedetector: 7.1.0 + eventemitter2: ^6.4.9 obj-multiplex: ^1.0.0 pump: ^3.0.0 - qrcode-terminal-nooctal: ^0.12.1 - react-native-webview: ^11.26.0 readable-stream: ^3.6.2 socket.io-client: ^4.5.1 + tslib: ^2.6.0 util: ^0.12.4 uuid: ^8.3.2 - peerDependencies: - react: ^18.2.0 - react-dom: ^18.2.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - checksum: c698e84b56cca3b6c39d97c12872e49eaeb9abc3950e17557838efad25e1c1102f6eec8db6ac11fae5874b430fdd6967ba7c409b3c9534eec76882d896ca2620 + checksum: f9cba369835d789e8415efca2d806b045e08bfc3f6ea5478ca3a5ec1df9a4f5180eae6e6afbd96125945e22be8d925da04b991c1b1dbdc62c21b4b5ab0658983 languageName: node linkType: hard @@ -4534,6 +4516,15 @@ __metadata: languageName: node linkType: hard +"@noble/curves@npm:1.7.0, @noble/curves@npm:~1.7.0": + version: 1.7.0 + resolution: "@noble/curves@npm:1.7.0" + dependencies: + "@noble/hashes": 1.6.0 + checksum: e220b704f1e516f326fff985e794e840a267f5542e1388737142b08177672ebc41b460b5a5bf636d7622c68e8ae719bc042ccd8aed16dc14311450a94b5f2a05 + languageName: node + linkType: hard + "@noble/curves@npm:^1.3.0": version: 1.4.0 resolution: "@noble/curves@npm:1.4.0" @@ -4592,6 +4583,20 @@ __metadata: languageName: node linkType: hard +"@noble/hashes@npm:1.6.0": + version: 1.6.0 + resolution: "@noble/hashes@npm:1.6.0" + checksum: 07729b80108d2a9b862eb4e070d4f78ca7ee86b9a9c13a4f7c338ba47a15d4386dd283235da71f21ad515fa9f0b9429fc3da39d2f2b4a50e2442212d14cfd4a9 + languageName: node + linkType: hard + +"@noble/hashes@npm:1.6.1, @noble/hashes@npm:~1.6.0": + version: 1.6.1 + resolution: "@noble/hashes@npm:1.6.1" + checksum: 57c62f65ee217c0293b4321b547792aa6d79812bfe70a7d62dc83e0f936cc677b14ed981b4e88cf8fdad37cd6d3a0cbd3bd0908b0728adc9daf066e678be8901 + languageName: node + linkType: hard + "@noble/secp256k1@npm:1.6.0": version: 1.6.0 resolution: "@noble/secp256k1@npm:1.6.0" @@ -4800,6 +4805,13 @@ __metadata: languageName: node linkType: hard +"@paulmillr/qr@npm:^0.2.1": + version: 0.2.1 + resolution: "@paulmillr/qr@npm:0.2.1" + checksum: 8a7b882f74f472759b0e5911c9c902a29c5232609373af4c5775625d9aad4ebda635d84c25be27e694144ba73d8e4204e72c3b9b59e9a375ec1d19f034a2d2ad + languageName: node + linkType: hard + "@pdf-lib/standard-fonts@npm:^1.0.0": version: 1.0.0 resolution: "@pdf-lib/standard-fonts@npm:1.0.0" @@ -7671,13 +7683,13 @@ __metadata: languageName: node linkType: hard -"@safe-global/safe-apps-provider@npm:0.18.3, @safe-global/safe-apps-provider@npm:^0.18.1": - version: 0.18.3 - resolution: "@safe-global/safe-apps-provider@npm:0.18.3" +"@safe-global/safe-apps-provider@npm:0.18.4": + version: 0.18.4 + resolution: "@safe-global/safe-apps-provider@npm:0.18.4" dependencies: "@safe-global/safe-apps-sdk": ^9.1.0 events: ^3.3.0 - checksum: e208df42fe49474d54847d8edd44efb601b5aafaf9e25537500db7fefb1172201a62f577c749f424b34932439dd7ebe461d33b23075cf6b80fb35ef841017a30 + checksum: 8e4254c2d5d6852133d70f2fe63417796b349e2af875f45464a2d99e2423657af4465575779419d6f7c9db2155bbec42e0f617727666790fdd1c9f170b5b1794 languageName: node linkType: hard @@ -7691,6 +7703,16 @@ __metadata: languageName: node linkType: hard +"@safe-global/safe-apps-provider@npm:^0.18.1": + version: 0.18.3 + resolution: "@safe-global/safe-apps-provider@npm:0.18.3" + dependencies: + "@safe-global/safe-apps-sdk": ^9.1.0 + events: ^3.3.0 + checksum: e208df42fe49474d54847d8edd44efb601b5aafaf9e25537500db7fefb1172201a62f577c749f424b34932439dd7ebe461d33b23075cf6b80fb35ef841017a30 + languageName: node + linkType: hard + "@safe-global/safe-apps-sdk@npm:8.0.0": version: 8.0.0 resolution: "@safe-global/safe-apps-sdk@npm:8.0.0" @@ -7749,6 +7771,13 @@ __metadata: languageName: node linkType: hard +"@scure/base@npm:~1.2.1": + version: 1.2.1 + resolution: "@scure/base@npm:1.2.1" + checksum: 061e04e4f6ed7bada6cdad4c799e6a82f30dda3f4008895bdb2e556f333f9b41f44dc067d25c064357ed6c012ea9c8be1e7927caf8a083af865b8de27b52370c + languageName: node + linkType: hard + "@scure/bip32@npm:1.3.0": version: 1.3.0 resolution: "@scure/bip32@npm:1.3.0" @@ -7793,6 +7822,17 @@ __metadata: languageName: node linkType: hard +"@scure/bip32@npm:1.6.0, @scure/bip32@npm:^1.5.0": + version: 1.6.0 + resolution: "@scure/bip32@npm:1.6.0" + dependencies: + "@noble/curves": ~1.7.0 + "@noble/hashes": ~1.6.0 + "@scure/base": ~1.2.1 + checksum: 1347477e28678a9bc4e2ec5e8e0f679263f2e3cb19c0e65849f76810c4c608461d4b283521c897249fa7dacc8c76e1b50e2a866b22467c8e93662a9c545cd42b + languageName: node + linkType: hard + "@scure/bip39@npm:1.2.0": version: 1.2.0 resolution: "@scure/bip39@npm:1.2.0" @@ -7833,6 +7873,16 @@ __metadata: languageName: node linkType: hard +"@scure/bip39@npm:1.5.0, @scure/bip39@npm:^1.4.0": + version: 1.5.0 + resolution: "@scure/bip39@npm:1.5.0" + dependencies: + "@noble/hashes": ~1.6.0 + "@scure/base": ~1.2.1 + checksum: 03d1888f5d0d514eebc5c3adc1e071d225963d434fcf789abea5ef2c8b4b99f3ad9ebee8a597c0c13d5415e6b2b380f55f61560c1643cd871961ab91cbcf5122 + languageName: node + linkType: hard + "@sendgrid/client@npm:^7.7.0": version: 7.7.0 resolution: "@sendgrid/client@npm:7.7.0" @@ -10099,15 +10149,6 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:22.7.5": - version: 22.7.5 - resolution: "@types/node@npm:22.7.5" - dependencies: - undici-types: ~6.19.2 - checksum: 1a8bbb504efaffcef7b8491074a428e5c0b5425b0c0ffb13e7262cb8462c275e8cc5eaf90a38d8fbf52a1eeda7c01ab3b940673c43fc2414140779c973e40ec6 - languageName: node - linkType: hard - "@types/node@npm:^16.11.12, @types/node@npm:^16.18.39": version: 16.18.89 resolution: "@types/node@npm:16.18.89" @@ -11175,30 +11216,30 @@ __metadata: languageName: node linkType: hard -"@wagmi/connectors@npm:5.3.3": - version: 5.3.3 - resolution: "@wagmi/connectors@npm:5.3.3" +"@wagmi/connectors@npm:5.5.3": + version: 5.5.3 + resolution: "@wagmi/connectors@npm:5.5.3" dependencies: - "@coinbase/wallet-sdk": 4.1.0 - "@metamask/sdk": 0.30.1 - "@safe-global/safe-apps-provider": 0.18.3 + "@coinbase/wallet-sdk": 4.2.3 + "@metamask/sdk": 0.31.1 + "@safe-global/safe-apps-provider": 0.18.4 "@safe-global/safe-apps-sdk": 9.1.0 "@walletconnect/ethereum-provider": 2.17.0 cbw-sdk: "npm:@coinbase/wallet-sdk@3.9.3" peerDependencies: - "@wagmi/core": 2.14.1 + "@wagmi/core": 2.15.2 typescript: ">=5.0.4" viem: 2.x peerDependenciesMeta: typescript: optional: true - checksum: 087ae85fb4a681cb9dcd684dc3d627aed1297607504ea73998c47b0c7bada6764f77b8cdb1aab30c837361efb0f7d25ae11f59582cf0b480056b5bd167929e83 + checksum: 021f927acdbe40df9f6b625006d05333c97aee916e615b3671baaeb3b6c8ef53bf411cef802b244334a8d9e0f80dfafc56a00257324f8ff33acb1b43ad5757d5 languageName: node linkType: hard -"@wagmi/core@npm:2.14.1, @wagmi/core@npm:^2.14.1": - version: 2.14.1 - resolution: "@wagmi/core@npm:2.14.1" +"@wagmi/core@npm:2.15.2, @wagmi/core@npm:^2.15.2": + version: 2.15.2 + resolution: "@wagmi/core@npm:2.15.2" dependencies: eventemitter3: 5.0.1 mipd: 0.0.7 @@ -11212,7 +11253,7 @@ __metadata: optional: true typescript: optional: true - checksum: c77ca6cbb3904b52d1e93d08fee790cb872d5846d39de09c789a9f8aef40fec8399d5e44dd6394c2743fd3d73220c819ffdc957d09ec8948eb599f73c62a85bd + checksum: 42a8fc938bb3f8f878c827b7c7f3fc08b808155a6f38e5a969bdd16b1437efc217465b33ccbcb9dc1138211cdbb79d17a2f14a80a3183bf6e74f0b53b43afd8b languageName: node linkType: hard @@ -12282,6 +12323,21 @@ __metadata: languageName: node linkType: hard +"abitype@npm:1.0.7, abitype@npm:^1.0.6": + version: 1.0.7 + resolution: "abitype@npm:1.0.7" + peerDependencies: + typescript: ">=5.0.4" + zod: ^3 >=3.22.0 + peerDependenciesMeta: + typescript: + optional: true + zod: + optional: true + checksum: c3b3ee19becbbce1d5c55a40a13dee6c09c0d710eee9c601433eb496c5ee2cd39e97dd0d043fa1ff7e68b1239ef83fe56951b2009d467e989fe941785cd7f8b8 + languageName: node + linkType: hard + "abort-controller@npm:^3.0.0": version: 3.0.0 resolution: "abort-controller@npm:3.0.0" @@ -16314,15 +16370,15 @@ __metadata: languageName: node linkType: hard -"eciesjs@npm:^0.4.8": - version: 0.4.10 - resolution: "eciesjs@npm:0.4.10" +"eciesjs@npm:^0.4.11": + version: 0.4.12 + resolution: "eciesjs@npm:0.4.12" dependencies: - "@ecies/ciphers": ^0.2.0 + "@ecies/ciphers": ^0.2.1 "@noble/ciphers": ^1.0.0 "@noble/curves": ^1.6.0 "@noble/hashes": ^1.5.0 - checksum: 4fd6588be41118f0b91b74d6de22d03430c148e38a1bcc711b5283a762d21b5163e7ed1b3308337f8e15a6410774b9c6fe41f0f4736b60e513987bfabd09693c + checksum: ef98528b8af23b013dd432b43cc1a378d58621f887a7db234ebc997006e16ab9ffa0ea973bf2195aa63dbfa996afa9e3a8f8410b6e3d5c3808365a3d02b1141a languageName: node linkType: hard @@ -17361,13 +17417,6 @@ __metadata: languageName: node linkType: hard -"escape-string-regexp@npm:2.0.0, escape-string-regexp@npm:^2.0.0": - version: 2.0.0 - resolution: "escape-string-regexp@npm:2.0.0" - checksum: 9f8a2d5743677c16e85c810e3024d54f0c8dea6424fad3c79ef6666e81dd0846f7437f5e729dfcdac8981bc9e5294c39b4580814d114076b8d36318f46ae4395 - languageName: node - linkType: hard - "escape-string-regexp@npm:^1.0.2, escape-string-regexp@npm:^1.0.5": version: 1.0.5 resolution: "escape-string-regexp@npm:1.0.5" @@ -17375,6 +17424,13 @@ __metadata: languageName: node linkType: hard +"escape-string-regexp@npm:^2.0.0": + version: 2.0.0 + resolution: "escape-string-regexp@npm:2.0.0" + checksum: 9f8a2d5743677c16e85c810e3024d54f0c8dea6424fad3c79ef6666e81dd0846f7437f5e729dfcdac8981bc9e5294c39b4580814d114076b8d36318f46ae4395 + languageName: node + linkType: hard + "escape-string-regexp@npm:^4.0.0": version: 4.0.0 resolution: "escape-string-regexp@npm:4.0.0" @@ -18117,21 +18173,6 @@ __metadata: languageName: node linkType: hard -"ethers@npm:^6.13.4": - version: 6.13.4 - resolution: "ethers@npm:6.13.4" - dependencies: - "@adraffy/ens-normalize": 1.10.1 - "@noble/curves": 1.2.0 - "@noble/hashes": 1.3.2 - "@types/node": 22.7.5 - aes-js: 4.0.0-beta.5 - tslib: 2.7.0 - ws: 8.17.1 - checksum: a64ad0f05ed7f79bf3092cd54ac11c3ed4a0a3fe8ee00a81053b5b4a34d84728c12fa5aa9bf3e2cc5efabbf1a0a37f62cd3a1852cf780a1ab619421fa03c2713 - languageName: node - linkType: hard - "ethers@npm:^6.7.1": version: 6.11.1 resolution: "ethers@npm:6.11.1" @@ -18192,7 +18233,7 @@ __metadata: languageName: node linkType: hard -"eventemitter2@npm:^6.4.7": +"eventemitter2@npm:^6.4.9": version: 6.4.9 resolution: "eventemitter2@npm:6.4.9" checksum: be59577c1e1c35509c7ba0e2624335c35bbcfd9485b8a977384c6cc6759341ea1a98d3cb9dbaa5cea4fff9b687e504504e3f9c2cc1674cf3bd8a43a7c74ea3eb @@ -20333,24 +20374,6 @@ __metadata: languageName: node linkType: hard -"i18next-browser-languagedetector@npm:7.1.0": - version: 7.1.0 - resolution: "i18next-browser-languagedetector@npm:7.1.0" - dependencies: - "@babel/runtime": ^7.19.4 - checksum: 36981b9a9995ed66387f3735cceffe107ed3cdb6ca278d45fa243fabc65669c0eca095ed4a55a93dac046ca1eb23fd986ec0079723be7ebb8505e6ba25f379bb - languageName: node - linkType: hard - -"i18next@npm:23.11.5": - version: 23.11.5 - resolution: "i18next@npm:23.11.5" - dependencies: - "@babel/runtime": ^7.23.2 - checksum: e9ec83703af59205af81f10929fd420314c0c976d1f4c42a191dc4d13f1284d13517105325286772571292953839c7183baa92e9bb43f41efe87dbc50c9aed1c - languageName: node - linkType: hard - "iconv-lite@npm:0.4.24": version: 0.4.24 resolution: "iconv-lite@npm:0.4.24" @@ -20525,7 +20548,7 @@ __metadata: languageName: node linkType: hard -"invariant@npm:2.2.4, invariant@npm:^2.2.4": +"invariant@npm:^2.2.4": version: 2.2.4 resolution: "invariant@npm:2.2.4" dependencies: @@ -24466,6 +24489,26 @@ __metadata: languageName: node linkType: hard +"ox@npm:0.1.2": + version: 0.1.2 + resolution: "ox@npm:0.1.2" + dependencies: + "@adraffy/ens-normalize": ^1.10.1 + "@noble/curves": ^1.6.0 + "@noble/hashes": ^1.5.0 + "@scure/bip32": ^1.5.0 + "@scure/bip39": ^1.4.0 + abitype: ^1.0.6 + eventemitter3: 5.0.1 + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 3f01119adbec8258b064298c66cb9830fc32c023e7fdc6e0634610505e74e8aab051c7fa49dad0fdd751a1c4af66c8eb2a825d993c6e79611e761a537276afd6 + languageName: node + linkType: hard + "p-cancelable@npm:^0.4.0": version: 0.4.1 resolution: "p-cancelable@npm:0.4.1" @@ -25224,6 +25267,13 @@ __metadata: languageName: node linkType: hard +"preact@npm:^10.24.2": + version: 10.25.1 + resolution: "preact@npm:10.25.1" + checksum: 7b31f82acfc5eaccc70c19b55ff2bc8edb3d636dfb84e254c9258871c69e1652876efe4bb3a5f21bf521386b001bc6c8831e535d41eecbe0f31c13a0e2a062a3 + languageName: node + linkType: hard + "prelude-ls@npm:^1.2.1": version: 1.2.1 resolution: "prelude-ls@npm:1.2.1" @@ -25648,31 +25698,6 @@ __metadata: languageName: node linkType: hard -"qr-code-styling@npm:^1.6.0-rc.1": - version: 1.8.4 - resolution: "qr-code-styling@npm:1.8.4" - dependencies: - qrcode-generator: ^1.4.4 - checksum: 755c5dfd242d1e3ac01de39453664eb554030226ca74d9ea68a421ac1c12f204a60aef4714b473c6a1a85ef1222c3deb77bdc4bed9554c5af700133e08f25602 - languageName: node - linkType: hard - -"qrcode-generator@npm:^1.4.4": - version: 1.4.4 - resolution: "qrcode-generator@npm:1.4.4" - checksum: 860cfdd2a7a608d34e92cab99774cc08182e1911432f30ed36d16f8a5cdabd7fdf40239caed91fa2691cfe66c8d95c1340a2fc9cc439eed07a9f2eb328c6f527 - languageName: node - linkType: hard - -"qrcode-terminal-nooctal@npm:^0.12.1": - version: 0.12.1 - resolution: "qrcode-terminal-nooctal@npm:0.12.1" - bin: - qrcode-terminal: bin/qrcode-terminal.js - checksum: 1071c4be2bfa07b3956ad0a63c87452ced0b5180a9dc19f224fc3dd69bb24ad687a7af365acdde0f876ddf89dc1a4beadba88d89c7c5c5cbf2ef3efaef64736e - languageName: node - linkType: hard - "qrcode@npm:1.5.3": version: 1.5.3 resolution: "qrcode@npm:1.5.3" @@ -26021,19 +26046,6 @@ __metadata: languageName: node linkType: hard -"react-native-webview@npm:^11.26.0": - version: 11.26.1 - resolution: "react-native-webview@npm:11.26.1" - dependencies: - escape-string-regexp: 2.0.0 - invariant: 2.2.4 - peerDependencies: - react: "*" - react-native: "*" - checksum: d2f95a89e944a2f1e8cf402e4e274f3568edae42e7ef190915e9fba8004a01d699c962459bdc9688c159060538e90aea3017cab24e6f4112021cbbc10ef57104 - languageName: node - linkType: hard - "react-pdf@npm:^6.2.2": version: 6.2.2 resolution: "react-pdf@npm:6.2.2" @@ -27094,7 +27106,8 @@ __metadata: version: 0.0.0-use.local resolution: "sdk-consumer@workspace:sdk-consumer" dependencies: - "@centrifuge/centrifuge-sdk": "portal:/Users/kattybarroso/desktop/centrifuge/centrifuge-sdk" + "@centrifuge/fabric": "workspace:*" + "@centrifuge/sdk": 0.0.0-alpha.0 "@eslint/js": ^9.13.0 "@talismn/wagmi-connector": ^0.3.1 "@tanstack/react-query": ^5.59.16 @@ -27102,19 +27115,19 @@ __metadata: "@types/react": ^18.3.11 "@types/react-dom": ^18.3.1 "@vitejs/plugin-react": ^4.3.3 - "@wagmi/core": ^2.14.1 + "@wagmi/core": ^2.15.2 eslint: ^9.13.0 eslint-plugin-react-hooks: ^5.0.0 eslint-plugin-react-refresh: ^0.4.13 - ethers: ^6.13.4 globals: ^15.11.0 react: ^18.3.1 react-dom: ^18.3.1 + rxjs: ^7.8.1 typescript: ~5.6.2 typescript-eslint: ^8.10.0 - viem: 2.x + viem: ^2.21.54 vite: ^5.4.9 - wagmi: latest + wagmi: ^2.13.3 languageName: unknown linkType: soft @@ -28995,13 +29008,6 @@ __metadata: languageName: node linkType: hard -"tslib@npm:2.7.0": - version: 2.7.0 - resolution: "tslib@npm:2.7.0" - checksum: 1606d5c89f88d466889def78653f3aab0f88692e80bb2066d090ca6112ae250ec1cfa9dbfaab0d17b60da15a4186e8ec4d893801c67896b277c17374e36e1d28 - languageName: node - linkType: hard - "tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.4.1, tslib@npm:^2.5.0, tslib@npm:^2.6.2": version: 2.6.2 resolution: "tslib@npm:2.6.2" @@ -29009,6 +29015,13 @@ __metadata: languageName: node linkType: hard +"tslib@npm:^2.6.0": + version: 2.8.1 + resolution: "tslib@npm:2.8.1" + checksum: e4aba30e632b8c8902b47587fd13345e2827fa639e7c3121074d5ee0880723282411a8838f830b55100cbe4517672f84a2472667d355b81e8af165a55dc6203a + languageName: node + linkType: hard + "tsutils@npm:^3.21.0": version: 3.21.0 resolution: "tsutils@npm:3.21.0" @@ -29334,7 +29347,7 @@ __metadata: languageName: node linkType: hard -"undici-types@npm:~6.19.2, undici-types@npm:~6.19.8": +"undici-types@npm:~6.19.8": version: 6.19.8 resolution: "undici-types@npm:6.19.8" checksum: de51f1b447d22571cf155dfe14ff6d12c5bdaec237c765085b439c38ca8518fc360e88c70f99469162bf2e14188a7b0bcb06e1ed2dc031042b984b0bb9544017 @@ -29931,28 +29944,6 @@ __metadata: languageName: node linkType: hard -"viem@npm:2.x, viem@npm:^2.1.1": - version: 2.21.36 - resolution: "viem@npm:2.21.36" - dependencies: - "@adraffy/ens-normalize": 1.11.0 - "@noble/curves": 1.6.0 - "@noble/hashes": 1.5.0 - "@scure/bip32": 1.5.0 - "@scure/bip39": 1.4.0 - abitype: 1.0.6 - isows: 1.0.6 - webauthn-p256: 0.0.10 - ws: 8.18.0 - peerDependencies: - typescript: ">=5.0.4" - peerDependenciesMeta: - typescript: - optional: true - checksum: 662c0ea4a22d8ca730b44086a9349db45eb84b6856879bc6bf81bb62c56b7b2bb0b166f5bc56d1d553346cfd616f15d692700938cc24cfe9d3992d74265706aa - languageName: node - linkType: hard - "viem@npm:^0.3.31": version: 0.3.50 resolution: "viem@npm:0.3.50" @@ -29991,6 +29982,50 @@ __metadata: languageName: node linkType: hard +"viem@npm:^2.1.1": + version: 2.21.36 + resolution: "viem@npm:2.21.36" + dependencies: + "@adraffy/ens-normalize": 1.11.0 + "@noble/curves": 1.6.0 + "@noble/hashes": 1.5.0 + "@scure/bip32": 1.5.0 + "@scure/bip39": 1.4.0 + abitype: 1.0.6 + isows: 1.0.6 + webauthn-p256: 0.0.10 + ws: 8.18.0 + peerDependencies: + typescript: ">=5.0.4" + peerDependenciesMeta: + typescript: + optional: true + checksum: 662c0ea4a22d8ca730b44086a9349db45eb84b6856879bc6bf81bb62c56b7b2bb0b166f5bc56d1d553346cfd616f15d692700938cc24cfe9d3992d74265706aa + languageName: node + linkType: hard + +"viem@npm:^2.21.54": + version: 2.21.54 + resolution: "viem@npm:2.21.54" + dependencies: + "@noble/curves": 1.7.0 + "@noble/hashes": 1.6.1 + "@scure/bip32": 1.6.0 + "@scure/bip39": 1.5.0 + abitype: 1.0.7 + isows: 1.0.6 + ox: 0.1.2 + webauthn-p256: 0.0.10 + ws: 8.18.0 + peerDependencies: + typescript: ">=5.0.4" + peerDependenciesMeta: + typescript: + optional: true + checksum: 594aacd4c8f9b0fd8c99a7fe2a936c9b6ea0851d05b206b24d4903e0cbbf811c5795dd79ba5a9fdb21e40c996440cb114321b65142f00cf06a20f89a0b51d894 + languageName: node + linkType: hard + "vite-node@npm:1.4.0": version: 1.4.0 resolution: "vite-node@npm:1.4.0" @@ -30176,12 +30211,12 @@ __metadata: languageName: node linkType: hard -"wagmi@npm:latest": - version: 2.12.25 - resolution: "wagmi@npm:2.12.25" +"wagmi@npm:^2.13.3": + version: 2.13.3 + resolution: "wagmi@npm:2.13.3" dependencies: - "@wagmi/connectors": 5.3.3 - "@wagmi/core": 2.14.1 + "@wagmi/connectors": 5.5.3 + "@wagmi/core": 2.15.2 use-sync-external-store: 1.2.0 peerDependencies: "@tanstack/react-query": ">=5.0.0" @@ -30191,7 +30226,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: e61e53513cea6dbb709a49cf6601393f859197166dc683a7b1bfdbf84fde1b649c3a1dc034e137c9ca84aa3ebc58bd67f9a0a8a06219bbc628e867e3c0a71990 + checksum: bdd99a67f91860cbd23aff5ac4579306320898aa23411fd72a260fd82143afa6dbe932266f25869f2f9181bfe1c42e257371de727ad27ada13245068a03cf1a9 languageName: node linkType: hard