diff --git a/advanced/wallets/reown-web-wallet/.env.local.example b/advanced/wallets/reown-web-wallet/.env.local.example new file mode 100644 index 000000000..04e54bae6 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/.env.local.example @@ -0,0 +1,4 @@ +NEXT_PUBLIC_PROJECT_ID= +NEXT_PUBLIC_RELAY_URL=wss://relay.walletconnect.com +NEXT_PUBLIC_PIMLICO_KEY= +NEXT_PUBLIC_ZERODEV_PROJECT_ID= diff --git a/advanced/wallets/reown-web-wallet/.eslintrc.json b/advanced/wallets/reown-web-wallet/.eslintrc.json new file mode 100644 index 000000000..4c9478785 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/.eslintrc.json @@ -0,0 +1,12 @@ +{ + "extends": ["next/core-web-vitals","prettier"], + "ignorePatterns": ["next.config.js"], + "overrides": [ + { + "extends": ["plugin:package-json/recommended"], + "files": ["package.json"], + "parser": "jsonc-eslint-parser", + "plugins": ["package-json"] + } + ] +} diff --git a/advanced/wallets/reown-web-wallet/.gitignore b/advanced/wallets/reown-web-wallet/.gitignore new file mode 100644 index 000000000..58af6817b --- /dev/null +++ b/advanced/wallets/reown-web-wallet/.gitignore @@ -0,0 +1,36 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +.DS_Store + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env.local +.env.development.local +.env.test.local +.env.production.local + +# vercel +.vercel diff --git a/advanced/wallets/reown-web-wallet/.prettierignore b/advanced/wallets/reown-web-wallet/.prettierignore new file mode 100644 index 000000000..6782a6b15 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/.prettierignore @@ -0,0 +1,5 @@ +.changeset +coverage +.idea +.next +node_modules \ No newline at end of file diff --git a/advanced/wallets/reown-web-wallet/.prettierrc.json b/advanced/wallets/reown-web-wallet/.prettierrc.json new file mode 100644 index 000000000..e2abdba94 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/.prettierrc.json @@ -0,0 +1,9 @@ +{ + "arrowParens": "avoid", + "parser": "typescript", + "printWidth": 100, + "singleQuote": true, + "tabWidth": 2, + "trailingComma": "none", + "semi": false +} diff --git a/advanced/wallets/reown-web-wallet/README.md b/advanced/wallets/reown-web-wallet/README.md new file mode 100644 index 000000000..bcfa31bca --- /dev/null +++ b/advanced/wallets/reown-web-wallet/README.md @@ -0,0 +1,139 @@ +# Wallet Example (React, Typescript, Ethers, NextJS, Cosmos) + +This example aims to demonstrate basic and advanced use cases enabled by WalletConnect's Sign SDK. + +**The wallet implements Sign v1 and v2 side-by-side**, to serve as a reference for wallet developers +aiming to support both major versions for backwards compatibility. **All files containing code for the legacy +v1 implementation are prefixed with `Legacy...`.** + +Please only use this for reference and development purposes, otherwise you are at risk of losing your funds. + +# Useful links + +🔗 Live wallet app - https://react-wallet.walletconnect.com
+🔗 Live dapp - https://react-app.walletconnect.com
+📚 WalletConnect docs - https://docs.walletconnect.com/2.0 + +## Getting started + +Example is built atop of [NextJS](https://nextjs.org/) in order to abstract complexity of setting up bundlers, routing etc. So there are few steps you need to follow in order to set everything up + +1. Go to [WalletConnect Cloud](https://cloud.walletconnect.com/sign-in) and obtain a project id + +2. Add your project details in [WalletConnectUtil.ts](https://github.com/WalletConnect/web-examples/blob/main/wallets/react-wallet-v2/src/utils/WalletConnectUtil.ts) file + +3. Install dependencies `yarn install` or `npm install` + +4. Setup your environment variables + +```bash +cp .env.local.example .env.local +``` + +Your `.env.local` now contains the following environment variables: + +- `NEXT_PUBLIC_PROJECT_ID` (placeholder) - You can generate your own ProjectId at https://cloud.walletconnect.com +- `NEXT_PUBLIC_RELAY_URL` (already set) + +5. Run `yarn dev` or `npm run dev` to start local development + +## Navigating through example + +1. Initial setup and initializations happen in [_app.ts](https://github.com/WalletConnect/web-examples/blob/main/wallets/react-wallet-v2/src/pages/_app.tsx) file +2. WalletConnect client, ethers and cosmos wallets are initialized in [useInitialization.ts ](https://github.com/WalletConnect/web-examples/blob/main/wallets/react-wallet-v2/src/hooks/useInitialization.ts) hook +3. Subscription and handling of WalletConnect events happens in [useWalletConnectEventsManager.ts](https://github.com/WalletConnect/web-examples/blob/main/wallets/react-wallet-v2/src/hooks/useWalletConnectEventsManager.ts) hook, that opens related [Modal views](https://github.com/WalletConnect/web-examples/tree/main/wallets/react-wallet-v2/src/views) and passes them all necessary data +4. [Modal views](https://github.com/WalletConnect/web-examples/tree/main/wallets/react-wallet-v2/src/views) are responsible for data display and handling approval or rejection actions +5. Upon approval or rejection, modals pass the request data to [RequestHandlerUtil.ts](https://github.com/WalletConnect/web-examples/blob/main/wallets/react-wallet-v2/src/utils/RequestHandlerUtil.ts) that performs all necessary work based on the request method and returns formated json rpc result data that can be then used for WalletConnect client responses + +## Preview of wallet and dapp examples in action + +https://user-images.githubusercontent.com/3154053/156764521-3492c232-7a93-47ba-88bd-2cee3f8366d4.mp4 + +## DOM Tags +This section is a key of the DOM elements used for internal E2E testing +Accessible with `data-testid` + +### Navbar +| Key | Description | +| ----------- | ----------- | +| `accounts` | Accounts page | +| `sessions` | Sessions page | +| `wc-connect` | WC Connect page | +| `pairings` | Pairings page | +| `settings` | Settings Page | + +### WC Connect Page +url: `/walletconnect` +| Key | Description | +| ----------- | ----------- | +| `uri-input` | Uri textbox | +| `uri-connect-button` | Uri connect button | +| `qrcode-button` | Use qrcode button | + +### Sessions Page +url: `/session` +| Key | Description | +| ----------- | ----------- | +| `session-card` | Session cards can be accessed by topic | +| `session-icon` | Icon used on session card | +| `session-text` | Text listed on session card | +| `session-link` | Link listed on session card | + +### Session Details Page +url: `/session?topic=` +| Key | Description | +| ----------- | ----------- | +| `session-card-${chain}` | Session chain info card | +| `session-delete-button` | Session delete button | +| `session-ping-button` | Session ping button | +| `session-emit-button` | Session emit button | +| `session-update-button` | Session update button | + +### Pairing Page +url: `/pairings` +| Key | Description | +| ----------- | ----------- | +| `pairing-${topic}` | Pairing cards can be accessed by topic | +| `pairing-text-${topic}` | Pairing card text in label | +| `pairing-url-${topic}` | Pairing card link in label| +| `pairing-delete-${topic}` | Delete pairing by topic | + + +### Accounts Page +url: `/` +| Key | Description | +| ----------- | ----------- | +| `account-picker` | Account drop down selector| +| `chain-card-${chain id}` | Chain card by chain id | +| `chain-switch-button-${chain id}` | Chain switch button | +| `chain-switch-button-${chain id}` | Chain copy button | + +### Settings Page +url: `/settings` +| Key | Description | +| ----------- | ----------- | +| `settings-toggle-testnets` | Toggle testnet support on/off | +| `settings-region-select` | Select relayer region | + +### Session Proposal View +| Key | Description | +| ----------- | ----------- | +| `session-approve-button` | Session approve button | +| `session-reject-button` | Session reject button | +| `session-info-card-text` | Session text info in header | +| `session-info-card-url` | Session info url in header | +| `session-info-card-verify` | Session info verify api in header | +| `session-proposal-card-req-{chain}` | Session card for each required chain | +| `session-proposal-card-opt-{chain}` | Session card for each optional chain | +| `account-select-card-${req/opt}-${index}` | Account selection checkbox by account index| +| `account-select-text-${req/opt}-${index}` | Account selection text by account index | + + +### Sign Request View +| Key | Description | +| ----------- | ----------- | +| `request-details-chain` | List of chains in the request | +| `request-details-relay-protocol` | Protocol used for request | +| `request-methods` | Methods requested | +| `request-button-reject` | Reject button | +| `request-button-approve` | Approve button | \ No newline at end of file diff --git a/advanced/wallets/reown-web-wallet/next-env.d.ts b/advanced/wallets/reown-web-wallet/next-env.d.ts new file mode 100644 index 000000000..4f11a03dc --- /dev/null +++ b/advanced/wallets/reown-web-wallet/next-env.d.ts @@ -0,0 +1,5 @@ +/// +/// + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/advanced/wallets/reown-web-wallet/next.config.js b/advanced/wallets/reown-web-wallet/next.config.js new file mode 100644 index 000000000..4fbcb2cd5 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/next.config.js @@ -0,0 +1,11 @@ +module.exports = { + reactStrictMode: true, + webpack(config) { + config.resolve.fallback = { + ...config.resolve.fallback, + fs: false + } + + return config + } +} diff --git a/advanced/wallets/reown-web-wallet/package.json b/advanced/wallets/reown-web-wallet/package.json new file mode 100644 index 000000000..81bbd0514 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/package.json @@ -0,0 +1,73 @@ +{ + "name": "react-wallet-v2", + "private": true, + "scripts": { + "dev": "next dev -p 3001", + "build": "next build", + "start": "next start", + "lint": "next lint", + "prettier": "prettier --check '**/*.{js,ts,jsx,tsx}'", + "prettier:write": "prettier --write '**/*.{js,ts,jsx,tsx}'" + }, + "dependencies": { + "@cosmjs/amino": "0.32.3", + "@cosmjs/encoding": "0.32.3", + "@cosmjs/proto-signing": "0.32.3", + "@emotion/react": "^11.11.1", + "@emotion/styled": "^11.11.0", + "@json-rpc-tools/utils": "1.7.6", + "@kadena/cryptography-utils": "^0.4.0", + "@kadena/types": "^0.6.0", + "@material-ui/core": "^4.12.4", + "@material-ui/icons": "^4.11.3", + "@mui/icons-material": "^5.14.9", + "@mui/material": "^5.14.10", + "@multiversx/sdk-core": "12.18.0", + "@multiversx/sdk-wallet": "4.2.0", + "@near-wallet-selector/wallet-utils": "^8.0.0", + "@nextui-org/react": "1.0.8-beta.5", + "@polkadot/keyring": "^10.1.2", + "@polkadot/types": "^9.3.3", + "@reown/appkit": "1.5.3", + "@reown/appkit-adapter-ethers": "1.4.1", + "@reown/appkit-wallet": "^1.5.2", + "@reown/walletkit": "^1.1.1", + "@solana/web3.js": "1.89.2", + "@taquito/signer": "^15.1.0", + "@taquito/taquito": "^15.1.0", + "@types/semver": "^7.5.8", + "@walletconnect/core": "^2.17.2", + "@walletconnect/utils": "^2.17.2", + "@zerodev/ecdsa-validator": "5.2.3", + "@zerodev/presets": "5.2.2", + "@zerodev/sdk": "5.2.11", + "@zerodev/session-key": "5.2.2", + "@zerodev/weighted-ecdsa-validator": "5.2.4", + "borsh": "^1.0.0", + "bs58": "5.0.0", + "ethers": "^6.13.0", + "framer-motion": "6.5.1", + "next": "13", + "permissionless": "0.1.21", + "react": "^18.3.1", + "react-code-blocks": "0.1.5", + "react-dom": "^18.3.1", + "react-hot-toast": "^2.4.1", + "react-qr-reader-es6": "2.2.1-2", + "valtio": "1.11.2", + "viem": "2.9.29" + }, + "devDependencies": { + "@types/node": "17.0.35", + "@types/react": "17.0.2", + "@walletconnect/types": "^2.17.2", + "eslint": "8.15.0", + "eslint-config-next": "13", + "eslint-config-prettier": "8.5.0", + "eslint-plugin-package-json": "^0.13.1", + "jsonc-eslint-parser": "^2.4.0", + "prettier": "2.6.2", + "typescript": "5.2.2" + }, + "packageManager": "pnpm@7.21.0+sha1.9015edbc6e5303a26d5bcccf5fb766ce812e2898" +} diff --git a/advanced/wallets/reown-web-wallet/pnpm-lock.yaml b/advanced/wallets/reown-web-wallet/pnpm-lock.yaml new file mode 100644 index 000000000..2887d5353 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/pnpm-lock.yaml @@ -0,0 +1,9559 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@cosmjs/amino': + specifier: 0.32.3 + version: 0.32.3 + '@cosmjs/encoding': + specifier: 0.32.3 + version: 0.32.3 + '@cosmjs/proto-signing': + specifier: 0.32.3 + version: 0.32.3 + '@emotion/react': + specifier: ^11.11.1 + version: 11.13.3(@types/react@17.0.2)(react@18.3.1) + '@emotion/styled': + specifier: ^11.11.0 + version: 11.13.0(@emotion/react@11.13.3(@types/react@17.0.2)(react@18.3.1))(@types/react@17.0.2)(react@18.3.1) + '@json-rpc-tools/utils': + specifier: 1.7.6 + version: 1.7.6 + '@kadena/cryptography-utils': + specifier: ^0.4.0 + version: 0.4.4 + '@kadena/types': + specifier: ^0.6.0 + version: 0.6.2 + '@material-ui/core': + specifier: ^4.12.4 + version: 4.12.4(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@material-ui/icons': + specifier: ^4.11.3 + version: 4.11.3(@material-ui/core@4.12.4(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mui/icons-material': + specifier: ^5.14.9 + version: 5.16.7(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@17.0.2)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@17.0.2)(react@18.3.1))(@types/react@17.0.2)(react@18.3.1))(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@17.0.2)(react@18.3.1) + '@mui/material': + specifier: ^5.14.10 + version: 5.16.7(@emotion/react@11.13.3(@types/react@17.0.2)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@17.0.2)(react@18.3.1))(@types/react@17.0.2)(react@18.3.1))(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@multiversx/sdk-core': + specifier: 12.18.0 + version: 12.18.0 + '@multiversx/sdk-wallet': + specifier: 4.2.0 + version: 4.2.0 + '@near-wallet-selector/wallet-utils': + specifier: ^8.0.0 + version: 8.9.14(near-api-js@4.0.3) + '@nextui-org/react': + specifier: 1.0.8-beta.5 + version: 1.0.8-beta.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@polkadot/keyring': + specifier: ^10.1.2 + version: 10.4.2(@polkadot/util-crypto@10.4.2(@polkadot/util@10.4.2))(@polkadot/util@10.4.2) + '@polkadot/types': + specifier: ^9.3.3 + version: 9.14.2 + '@reown/appkit': + specifier: 1.5.3 + version: 1.5.3(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + '@reown/appkit-adapter-ethers': + specifier: 1.4.1 + version: 1.4.1(@coinbase/wallet-sdk@4.0.0)(@ethersproject/sha2@5.7.0)(@types/react@17.0.2)(bufferutil@4.0.8)(ethers@6.13.4(bufferutil@4.0.8)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + '@reown/appkit-wallet': + specifier: ^1.5.2 + version: 1.5.2(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10) + '@reown/walletkit': + specifier: ^1.1.1 + version: 1.1.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@solana/web3.js': + specifier: 1.89.2 + version: 1.89.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@taquito/signer': + specifier: ^15.1.0 + version: 15.1.0 + '@taquito/taquito': + specifier: ^15.1.0 + version: 15.1.0 + '@types/semver': + specifier: ^7.5.8 + version: 7.5.8 + '@walletconnect/core': + specifier: ^2.17.2 + version: 2.17.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@walletconnect/utils': + specifier: ^2.17.2 + version: 2.17.2 + '@zerodev/ecdsa-validator': + specifier: 5.2.3 + version: 5.2.3(@zerodev/sdk@5.2.11(permissionless@0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(permissionless@0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)) + '@zerodev/presets': + specifier: 5.2.2 + version: 5.2.2(@zerodev/ecdsa-validator@5.2.3(@zerodev/sdk@5.2.11(permissionless@0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(permissionless@0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(@zerodev/sdk@5.2.11(permissionless@0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(permissionless@0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(typescript@5.2.2)(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)) + '@zerodev/sdk': + specifier: 5.2.11 + version: 5.2.11(permissionless@0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)) + '@zerodev/session-key': + specifier: 5.2.2 + version: 5.2.2(@zerodev/sdk@5.2.11(permissionless@0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(permissionless@0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)) + '@zerodev/weighted-ecdsa-validator': + specifier: 5.2.4 + version: 5.2.4(@zerodev/sdk@5.2.11(permissionless@0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(permissionless@0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)) + borsh: + specifier: ^1.0.0 + version: 1.0.0 + bs58: + specifier: 5.0.0 + version: 5.0.0 + ethers: + specifier: ^6.13.0 + version: 6.13.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) + framer-motion: + specifier: 6.5.1 + version: 6.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: + specifier: '13' + version: 13.5.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + permissionless: + specifier: 0.1.21 + version: 0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)) + react: + specifier: ^18.3.1 + version: 18.3.1 + react-code-blocks: + specifier: 0.1.5 + version: 0.1.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-dom: + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) + react-hot-toast: + specifier: ^2.4.1 + version: 2.4.1(csstype@3.1.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-qr-reader-es6: + specifier: 2.2.1-2 + version: 2.2.1-2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + valtio: + specifier: 1.11.2 + version: 1.11.2(@types/react@17.0.2)(react@18.3.1) + viem: + specifier: 2.9.29 + version: 2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + devDependencies: + '@types/node': + specifier: 17.0.35 + version: 17.0.35 + '@types/react': + specifier: 17.0.2 + version: 17.0.2 + '@walletconnect/types': + specifier: ^2.17.2 + version: 2.17.2 + eslint: + specifier: 8.15.0 + version: 8.15.0 + eslint-config-next: + specifier: '13' + version: 13.5.7(eslint@8.15.0)(typescript@5.2.2) + eslint-config-prettier: + specifier: 8.5.0 + version: 8.5.0(eslint@8.15.0) + eslint-plugin-package-json: + specifier: ^0.13.1 + version: 0.13.1(eslint@8.15.0)(jsonc-eslint-parser@2.4.0) + jsonc-eslint-parser: + specifier: ^2.4.0 + version: 2.4.0 + prettier: + specifier: 2.6.2 + version: 2.6.2 + typescript: + specifier: 5.2.2 + version: 5.2.2 + +packages: + + '@adraffy/ens-normalize@1.10.0': + resolution: {integrity: sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q==} + + '@adraffy/ens-normalize@1.10.1': + resolution: {integrity: sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==} + + '@babel/code-frame@7.26.2': + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.26.2': + resolution: {integrity: sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.25.9': + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.26.2': + resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/runtime@7.26.0': + resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} + engines: {node: '>=6.9.0'} + + '@babel/runtime@7.9.6': + resolution: {integrity: sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==} + + '@babel/template@7.25.9': + resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.25.9': + resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.26.0': + resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} + engines: {node: '>=6.9.0'} + + '@coinbase/wallet-sdk@4.0.0': + resolution: {integrity: sha512-7q8k39a2Iuz30dAEeh86AaSAbLgVPW3gfLa1UYh2IqP7gS+X9witoMEMM8o016K6vxP5N++PrM+Lgu/O1KByBA==} + + '@cosmjs/amino@0.32.3': + resolution: {integrity: sha512-G4zXl+dJbqrz1sSJ56H/25l5NJEk/pAPIr8piAHgbXYw88OdAOlpA26PQvk2IbSN/rRgVbvlLTNgX2tzz1dyUA==} + + '@cosmjs/crypto@0.32.4': + resolution: {integrity: sha512-zicjGU051LF1V9v7bp8p7ovq+VyC91xlaHdsFOTo2oVry3KQikp8L/81RkXmUIT8FxMwdx1T7DmFwVQikcSDIw==} + + '@cosmjs/encoding@0.32.3': + resolution: {integrity: sha512-p4KF7hhv8jBQX3MkB3Defuhz/W0l3PwWVYU2vkVuBJ13bJcXyhU9nJjiMkaIv+XP+W2QgRceqNNgFUC5chNR7w==} + + '@cosmjs/encoding@0.32.4': + resolution: {integrity: sha512-tjvaEy6ZGxJchiizzTn7HVRiyTg1i4CObRRaTRPknm5EalE13SV+TCHq38gIDfyUeden4fCuaBVEdBR5+ti7Hw==} + + '@cosmjs/math@0.32.4': + resolution: {integrity: sha512-++dqq2TJkoB8zsPVYCvrt88oJWsy1vMOuSOKcdlnXuOA/ASheTJuYy4+oZlTQ3Fr8eALDLGGPhJI02W2HyAQaw==} + + '@cosmjs/proto-signing@0.32.3': + resolution: {integrity: sha512-kSZ0ZUY0DwcRT0NcIn2HkadH4NKlwjfZgbLj1ABwh/4l0RgeT84QCscZCu63tJYq3K6auwqTiZSZERwlO4/nbg==} + + '@cosmjs/utils@0.32.4': + resolution: {integrity: sha512-D1Yc+Zy8oL/hkUkFUL/bwxvuDBzRGpc4cF7/SkdhxX4iHpSLgdOuTt1mhCh9+kl6NQREy9t7SYZ6xeW5gFe60w==} + + '@emotion/babel-plugin@11.12.0': + resolution: {integrity: sha512-y2WQb+oP8Jqvvclh8Q55gLUyb7UFvgv7eJfsj7td5TToBrIUtPay2kMrZi4xjq9qw2vD0ZR5fSho0yqoFgX7Rw==} + + '@emotion/cache@11.13.1': + resolution: {integrity: sha512-iqouYkuEblRcXmylXIwwOodiEK5Ifl7JcX7o6V4jI3iW4mLXX3dmt5xwBtIkJiQEXFAI+pC8X0i67yiPkH9Ucw==} + + '@emotion/hash@0.8.0': + resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} + + '@emotion/hash@0.9.2': + resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} + + '@emotion/is-prop-valid@0.8.8': + resolution: {integrity: sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==} + + '@emotion/is-prop-valid@1.2.2': + resolution: {integrity: sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==} + + '@emotion/is-prop-valid@1.3.1': + resolution: {integrity: sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==} + + '@emotion/memoize@0.7.4': + resolution: {integrity: sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==} + + '@emotion/memoize@0.8.1': + resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} + + '@emotion/memoize@0.9.0': + resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} + + '@emotion/react@11.13.3': + resolution: {integrity: sha512-lIsdU6JNrmYfJ5EbUCf4xW1ovy5wKQ2CkPRM4xogziOxH1nXxBSjpC9YqbFAP7circxMfYp+6x676BqWcEiixg==} + peerDependencies: + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + + '@emotion/serialize@1.3.2': + resolution: {integrity: sha512-grVnMvVPK9yUVE6rkKfAJlYZgo0cu3l9iMC77V7DW6E1DUIrU68pSEXRmFZFOFB1QFo57TncmOcvcbMDWsL4yA==} + + '@emotion/sheet@1.4.0': + resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==} + + '@emotion/styled@11.13.0': + resolution: {integrity: sha512-tkzkY7nQhW/zC4hztlwucpT8QEZ6eUzpXDRhww/Eej4tFfO0FxQYWRyg/c5CCXa4d/f174kqeXYjuQRnhzf6dA==} + peerDependencies: + '@emotion/react': ^11.0.0-rc.0 + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + + '@emotion/unitless@0.10.0': + resolution: {integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==} + + '@emotion/unitless@0.8.1': + resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} + + '@emotion/use-insertion-effect-with-fallbacks@1.1.0': + resolution: {integrity: sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==} + peerDependencies: + react: '>=16.8.0' + + '@emotion/utils@1.4.1': + resolution: {integrity: sha512-BymCXzCG3r72VKJxaYVwOXATqXIZ85cuvg0YOUDxMGNrKc1DJRZk8MgV5wyXRyEayIMd4FuXJIUgTBXvDNW5cA==} + + '@emotion/weak-memoize@0.4.0': + resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} + + '@eslint/eslintrc@1.4.1': + resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@ethereumjs/rlp@4.0.1': + resolution: {integrity: sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==} + engines: {node: '>=14'} + hasBin: true + + '@ethereumjs/util@8.1.0': + resolution: {integrity: sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==} + engines: {node: '>=14'} + + '@ethersproject/abstract-provider@5.7.0': + resolution: {integrity: sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==} + + '@ethersproject/abstract-signer@5.7.0': + resolution: {integrity: sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==} + + '@ethersproject/address@5.7.0': + resolution: {integrity: sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==} + + '@ethersproject/base64@5.7.0': + resolution: {integrity: sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==} + + '@ethersproject/bignumber@5.7.0': + resolution: {integrity: sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==} + + '@ethersproject/bytes@5.7.0': + resolution: {integrity: sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==} + + '@ethersproject/constants@5.7.0': + resolution: {integrity: sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==} + + '@ethersproject/hash@5.7.0': + resolution: {integrity: sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==} + + '@ethersproject/keccak256@5.7.0': + resolution: {integrity: sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==} + + '@ethersproject/logger@5.7.0': + resolution: {integrity: sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==} + + '@ethersproject/networks@5.7.1': + resolution: {integrity: sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==} + + '@ethersproject/properties@5.7.0': + resolution: {integrity: sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==} + + '@ethersproject/rlp@5.7.0': + resolution: {integrity: sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==} + + '@ethersproject/sha2@5.7.0': + resolution: {integrity: sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==} + + '@ethersproject/signing-key@5.7.0': + resolution: {integrity: sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==} + + '@ethersproject/strings@5.7.0': + resolution: {integrity: sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==} + + '@ethersproject/transactions@5.7.0': + resolution: {integrity: sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==} + + '@ethersproject/web@5.7.1': + resolution: {integrity: sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==} + + '@formatjs/ecma402-abstract@2.2.4': + resolution: {integrity: sha512-lFyiQDVvSbQOpU+WFd//ILolGj4UgA/qXrKeZxdV14uKiAUiPAtX6XAn7WBCRi7Mx6I7EybM9E5yYn4BIpZWYg==} + + '@formatjs/fast-memoize@2.2.3': + resolution: {integrity: sha512-3jeJ+HyOfu8osl3GNSL4vVHUuWFXR03Iz9jjgI7RwjG6ysu/Ymdr0JRCPHfF5yGbTE6JCrd63EpvX1/WybYRbA==} + + '@formatjs/icu-messageformat-parser@2.9.4': + resolution: {integrity: sha512-Tbvp5a9IWuxUcpWNIW6GlMQYEc4rwNHR259uUFoKWNN1jM9obf9Ul0e+7r7MvFOBNcN+13K7NuKCKqQiAn1QEg==} + + '@formatjs/icu-skeleton-parser@1.8.8': + resolution: {integrity: sha512-vHwK3piXwamFcx5YQdCdJxUQ1WdTl6ANclt5xba5zLGDv5Bsur7qz8AD7BevaKxITwpgDeU0u8My3AIibW9ywA==} + + '@formatjs/intl-localematcher@0.5.8': + resolution: {integrity: sha512-I+WDNWWJFZie+jkfkiK5Mp4hEDyRSEvmyfYadflOno/mmKJKcB17fEpEH0oJu/OWhhCJ8kJBDz2YMd/6cDl7Mg==} + + '@humanwhocodes/config-array@0.9.5': + resolution: {integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==} + engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead + + '@humanwhocodes/object-schema@1.2.1': + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + deprecated: Use @eslint/object-schema instead + + '@internationalized/date@3.0.0-alpha.3': + resolution: {integrity: sha512-lfUzsXEXNLSR5zmBlwBlNcawrJ8V+u9+JCyoTX76KAEuiHlKtk5wE7S0fMf1WllFHWdrENqy7LbN00FC3HhADQ==} + + '@internationalized/date@3.5.6': + resolution: {integrity: sha512-jLxQjefH9VI5P9UQuqB6qNKnvFt1Ky1TPIzHGsIlCi7sZZoMR8SdYbBGRvM0y+Jtb+ez4ieBzmiAUcpmPYpyOw==} + + '@internationalized/message@3.1.5': + resolution: {integrity: sha512-hjEpLKFlYA3m5apldLqzHqw531qqfOEq0HlTWdfyZmcloWiUbWsYXD6YTiUmQmOtarthzhdjCAwMVrB8a4E7uA==} + + '@internationalized/number@3.5.4': + resolution: {integrity: sha512-h9huwWjNqYyE2FXZZewWqmCdkw1HeFds5q4Siuoms3hUQC5iPJK3aBmkFZoDSLN4UD0Bl8G22L/NdHpeOr+/7A==} + + '@internationalized/string@3.2.4': + resolution: {integrity: sha512-BcyadXPn89Ae190QGZGDUZPqxLj/xsP4U1Br1oSy8yfIjmpJ8cJtGYleaodqW/EmzFjwELtwDojLkf3FhV6SjA==} + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@json-rpc-tools/types@1.7.6': + resolution: {integrity: sha512-nDSqmyRNEqEK9TZHtM15uNnDljczhCUdBmRhpNZ95bIPKEDQ+nTDmGMFd2lLin3upc5h2VVVd9tkTDdbXUhDIQ==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + + '@json-rpc-tools/utils@1.7.6': + resolution: {integrity: sha512-HjA8x/U/Q78HRRe19yh8HVKoZ+Iaoo3YZjakJYxR+rw52NHo6jM+VE9b8+7ygkCFXl/EHID5wh/MkXaE/jGyYw==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + + '@kadena/cryptography-utils@0.4.4': + resolution: {integrity: sha512-8xUcGlmBuuR9PSW88eqJuW49EmcQeiplDlsvN1N++1Bw6KV4lXlBKlJn5TM8lxctGNpewtzlIUimQFIlMqm9aw==} + + '@kadena/types@0.6.2': + resolution: {integrity: sha512-VmHLikwclzi3vtS8Bxi/zUUgdBixNd/Zz+hq3mTUqWuLiIzGBwvJrZ5Q2zzol11voPk2+fBCoCaxnh2EtYYxGw==} + + '@lit-labs/ssr-dom-shim@1.2.1': + resolution: {integrity: sha512-wx4aBmgeGvFmOKucFKY+8VFJSYZxs9poN3SDNQFF6lT6NrQUnHiPB2PWz2sc4ieEcAaYYzN+1uWahEeTq2aRIQ==} + + '@lit/reactive-element@2.0.4': + resolution: {integrity: sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==} + + '@material-ui/core@4.12.4': + resolution: {integrity: sha512-tr7xekNlM9LjA6pagJmL8QCgZXaubWUwkJnoYcMKd4gw/t4XiyvnTkjdGrUVicyB2BsdaAv1tvow45bPM4sSwQ==} + engines: {node: '>=8.0.0'} + deprecated: Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5. + peerDependencies: + '@types/react': ^16.8.6 || ^17.0.0 + react: ^16.8.0 || ^17.0.0 + react-dom: ^16.8.0 || ^17.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@material-ui/icons@4.11.3': + resolution: {integrity: sha512-IKHlyx6LDh8n19vzwH5RtHIOHl9Tu90aAAxcbWME6kp4dmvODM3UvOHJeMIDzUbd4muuJKHmlNoBN+mDY4XkBA==} + engines: {node: '>=8.0.0'} + peerDependencies: + '@material-ui/core': ^4.0.0 + '@types/react': ^16.8.6 || ^17.0.0 + react: ^16.8.0 || ^17.0.0 + react-dom: ^16.8.0 || ^17.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@material-ui/styles@4.11.5': + resolution: {integrity: sha512-o/41ot5JJiUsIETME9wVLAJrmIWL3j0R0Bj2kCOLbSfqEkKf0fmaPt+5vtblUh5eXr2S+J/8J3DaCb10+CzPGA==} + engines: {node: '>=8.0.0'} + deprecated: Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5. + peerDependencies: + '@types/react': ^16.8.6 || ^17.0.0 + react: ^16.8.0 || ^17.0.0 + react-dom: ^16.8.0 || ^17.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@material-ui/system@4.12.2': + resolution: {integrity: sha512-6CSKu2MtmiJgcCGf6nBQpM8fLkuB9F55EKfbdTC80NND5wpTmKzwdhLYLH3zL4cLlK0gVaaltW7/wMuyTnN0Lw==} + engines: {node: '>=8.0.0'} + peerDependencies: + '@types/react': ^16.8.6 || ^17.0.0 + react: ^16.8.0 || ^17.0.0 + react-dom: ^16.8.0 || ^17.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@material-ui/types@5.1.0': + resolution: {integrity: sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A==} + peerDependencies: + '@types/react': '*' + peerDependenciesMeta: + '@types/react': + optional: true + + '@material-ui/utils@4.11.3': + resolution: {integrity: sha512-ZuQPV4rBK/V1j2dIkSSEcH5uT6AaHuKWFfotADHsC0wVL1NLd2WkFCm4ZZbX33iO4ydl6V0GPngKm8HZQ2oujg==} + engines: {node: '>=8.0.0'} + peerDependencies: + react: ^16.8.0 || ^17.0.0 + react-dom: ^16.8.0 || ^17.0.0 + + '@motionone/animation@10.18.0': + resolution: {integrity: sha512-9z2p5GFGCm0gBsZbi8rVMOAJCtw1WqBTIPw3ozk06gDvZInBPIsQcHgYogEJ4yuHJ+akuW8g1SEIOpTOvYs8hw==} + + '@motionone/dom@10.12.0': + resolution: {integrity: sha512-UdPTtLMAktHiqV0atOczNYyDd/d8Cf5fFsd1tua03PqTwwCe/6lwhLSQ8a7TbnQ5SN0gm44N1slBfj+ORIhrqw==} + + '@motionone/easing@10.18.0': + resolution: {integrity: sha512-VcjByo7XpdLS4o9T8t99JtgxkdMcNWD3yHU/n6CLEz3bkmKDRZyYQ/wmSf6daum8ZXqfUAgFeCZSpJZIMxaCzg==} + + '@motionone/generators@10.18.0': + resolution: {integrity: sha512-+qfkC2DtkDj4tHPu+AFKVfR/C30O1vYdvsGYaR13W/1cczPrrcjdvYCj0VLFuRMN+lP1xvpNZHCRNM4fBzn1jg==} + + '@motionone/types@10.17.1': + resolution: {integrity: sha512-KaC4kgiODDz8hswCrS0btrVrzyU2CSQKO7Ps90ibBVSQmjkrt2teqta6/sOG59v7+dPnKMAg13jyqtMKV2yJ7A==} + + '@motionone/utils@10.18.0': + resolution: {integrity: sha512-3XVF7sgyTSI2KWvTf6uLlBJ5iAgRgmvp3bpuOiQJvInd4nZ19ET8lX5unn30SlmRH7hXbBbH+Gxd0m0klJ3Xtw==} + + '@mui/core-downloads-tracker@5.16.7': + resolution: {integrity: sha512-RtsCt4Geed2/v74sbihWzzRs+HsIQCfclHeORh5Ynu2fS4icIKozcSubwuG7vtzq2uW3fOR1zITSP84TNt2GoQ==} + + '@mui/icons-material@5.16.7': + resolution: {integrity: sha512-UrGwDJCXEszbDI7yV047BYU5A28eGJ79keTCP4cc74WyncuVrnurlmIRxaHL8YK+LI1Kzq+/JM52IAkNnv4u+Q==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@mui/material': ^5.0.0 + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@mui/material@5.16.7': + resolution: {integrity: sha512-cwwVQxBhK60OIOqZOVLFt55t01zmarKJiJUWbk0+8s/Ix5IaUzAShqlJchxsIQ4mSrWqgcKCCXKtIlG5H+/Jmg==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@types/react': + optional: true + + '@mui/private-theming@5.16.6': + resolution: {integrity: sha512-rAk+Rh8Clg7Cd7shZhyt2HGTTE5wYKNSJ5sspf28Fqm/PZ69Er9o6KX25g03/FG2dfpg5GCwZh/xOojiTfm3hw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@mui/styled-engine@5.16.6': + resolution: {integrity: sha512-zaThmS67ZmtHSWToTiHslbI8jwrmITcN93LQaR2lKArbvS7Z3iLkwRoiikNWutx9MBs8Q6okKvbZq1RQYB3v7g==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.4.1 + '@emotion/styled': ^11.3.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + + '@mui/system@5.16.7': + resolution: {integrity: sha512-Jncvs/r/d/itkxh7O7opOunTqbbSSzMTHzZkNLM+FjAOg+cYAZHrPDlYe1ZGKUYORwwb2XexlWnpZp0kZ4AHuA==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@types/react': + optional: true + + '@mui/types@7.2.19': + resolution: {integrity: sha512-6XpZEM/Q3epK9RN8ENoXuygnqUQxE+siN/6rGRi2iwJPgBUR25mphYQ9ZI87plGh58YoZ5pp40bFvKYOCDJ3tA==} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@mui/utils@5.16.6': + resolution: {integrity: sha512-tWiQqlhxAt3KENNiSRL+DIn9H5xNVK6Jjf70x3PnfQPz1MPBdh7yyIcAyVBT9xiw7hP3SomRhPR7hzBMBCjqEA==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@multiversx/sdk-bls-wasm@0.3.5': + resolution: {integrity: sha512-c0tIdQUnbBLSt6NYU+OpeGPYdL0+GV547HeHT8Xc0BKQ7Cj0v82QUoA2QRtWrR1G4MNZmLsIacZSsf6DrIS2Bw==} + engines: {node: '>=8.9.0'} + + '@multiversx/sdk-core@12.18.0': + resolution: {integrity: sha512-F+xGslPMkkZ0S/Q8UJZsMYl0mgHIuK/GdVsNFPiMKxQsKkxA2LTjNdPxVxjwgvRmN7WfdsTtQvmlsA5O1NYhBg==} + + '@multiversx/sdk-transaction-decoder@1.0.2': + resolution: {integrity: sha512-j43QsKquu8N51WLmVlJ7dV2P3A1448R7/ktvl8r3i6wRMpfdtzDPNofTdHmMRT7DdQdvs4+RNgz8hVKL11Etsw==} + + '@multiversx/sdk-wallet@4.2.0': + resolution: {integrity: sha512-EjSb9AnqMcpmDjZ7ebkUpOzpTfxj1plTuVXwZ6AaqJsdpxMfrE2izbPy18+bg5xFlr8V27wYZcW8zOhkBR50BA==} + + '@near-js/accounts@1.2.1': + resolution: {integrity: sha512-j6+9n/p0vVLAahmN3YRFve+j0ammOALC9ZUfFhdE3kqtJESbSWMviC5qF/s2m0JQjpJGDtEv/dTADosIJoanWw==} + + '@near-js/crypto@1.2.4': + resolution: {integrity: sha512-hcSj0ygvTcXlW9ftwEd9dbvQUWBCHNWNDLou9NLfmZERW9dr0gH8kUJPZUWfpJFlUPicb+jTiMpNwDTvP7VW4A==} + + '@near-js/keystores-browser@0.0.12': + resolution: {integrity: sha512-ptoVfJhMsktYcvY02wD2a8kDDH/E4d+kBfhwKF0H/Qt/w4JVJqEVgCLDBYUespuISTSqLSznNBjTSse+E7pJDQ==} + + '@near-js/keystores-node@0.0.12': + resolution: {integrity: sha512-LUz1HPXBYoZUaLyS/bEj4yZ4pqD9Hb7XURikh22VYL8mbLcR5VmWYwS7Tmi9aO1vW8M9bPnQs5SROAyA79qQgQ==} + + '@near-js/keystores@0.0.12': + resolution: {integrity: sha512-7dqq7XLUSlo26QbaGrS6bmqVL4IfhxJgfIhgKUDfv8FuswrpErBVCAUY6wIbW+mLw0NBoddzPrb5LuLIMfud5Q==} + + '@near-js/providers@0.2.2': + resolution: {integrity: sha512-1V3NhqxfkBvdvq8zhKqbKxsySpIr6PpmlDzkHjDr8uSu6MMvqBgy+1dBvWflEFlN7OlDGx35mVsq/4Xy0wu+KA==} + + '@near-js/signers@0.1.4': + resolution: {integrity: sha512-YgH5X5fDOT/GsEAcyNM3heQWjIIL1MW3P8NtqilMa69HnsvtES9RCwjAXP8d8DZq/dBlI9od+pQ5XhxSFuXKCg==} + + '@near-js/transactions@1.2.2': + resolution: {integrity: sha512-WZ/Mk0hFvBIYcD6VBwYw4S2mmiKBKz6PT0YEwNzMzbgPZSs2wRVk4r9Tf+ueCJCPUXo5XINkjThCcRqMHQvPtg==} + + '@near-js/types@0.2.1': + resolution: {integrity: sha512-YygQEGMdFe6d2e/6dtNZer9paH396XeAdIKEhY/RPXDUnjDdfiDQ5DK4mM130sEeID2bAH9X1LQ+7vXGRjvyWw==} + + '@near-js/utils@0.2.2': + resolution: {integrity: sha512-ZAJo/cN6AHY7/gckf8DLHwjAn0z4UwG6rhLxs+QDyNYMMSx9SBg2pOQtBBv7ORWJaPhWD2q7wFhUz4SdTZi43A==} + + '@near-js/wallet-account@1.2.2': + resolution: {integrity: sha512-LaWzqaz2tP1hcToDlmiQnFMGZ1W9dM9i4nFSILe5PLIFLBQmYXdLWc80skGDiTUeihVu6wwtQr6Z2CcG231rWw==} + + '@near-wallet-selector/core@8.9.14': + resolution: {integrity: sha512-fC+igD832P0wUZ9MSfFWgYVIvZcOn1Fka7SJ3VN7w8Xufw+MgZ06zoGDj29QB0qy+Aui1fZGJgwJGTBOe5KIMg==} + peerDependencies: + '@near-js/providers': latest + near-api-js: 4.0.3 + + '@near-wallet-selector/wallet-utils@8.9.14': + resolution: {integrity: sha512-TQzapN6i77u7sbt211HgEsdyxIBPRGfrCJg7x3Mc144nGv/ns8boptuHkdHn9n/OEpPZR5S9Mqi5eAkDT+Pd/Q==} + peerDependencies: + near-api-js: 4.0.3 + + '@next/env@13.5.7': + resolution: {integrity: sha512-uVuRqoj28Ys/AI/5gVEgRAISd0KWI0HRjOO1CTpNgmX3ZsHb5mdn14Y59yk0IxizXdo7ZjsI2S7qbWnO+GNBcA==} + + '@next/eslint-plugin-next@13.5.7': + resolution: {integrity: sha512-c4vuEOOXeib4js5gDq+zFqAAdRGXX6T0d+zFETiQkRwy7vyj5lBov1dW0Z09nDst2lvxo7VEcKrQMUBH5Vgx7Q==} + + '@next/swc-darwin-arm64@13.5.7': + resolution: {integrity: sha512-7SxmxMex45FvKtRoP18eftrDCMyL6WQVYJSEE/s7A1AW/fCkznxjEShKet2iVVzf89gWp8HbXGaL4hCaseux6g==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@next/swc-darwin-x64@13.5.7': + resolution: {integrity: sha512-6iENvgyIkGFLFszBL4b1VfEogKC3TDPEB6/P/lgxmgXVXIV09Q4or1MVn+U/tYyYmm7oHMZ3oxGpHAyJ80nA6g==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@next/swc-linux-arm64-gnu@13.5.7': + resolution: {integrity: sha512-P42jDX56wu9zEdVI+Xv4zyTeXB3DpqgE1Gb4bWrc0s2RIiDYr6uKBprnOs1hCGIwfVyByxyTw5Va66QCdFFNUg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-arm64-musl@13.5.7': + resolution: {integrity: sha512-A06vkj+8X+tLRzSja5REm/nqVOCzR+x5Wkw325Q/BQRyRXWGCoNbQ6A+BR5M86TodigrRfI3lUZEKZKe3QJ9Bg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-x64-gnu@13.5.7': + resolution: {integrity: sha512-UdHm7AlxIbdRdMsK32cH0EOX4OmzAZ4Xm+UVlS0YdvwLkI3pb7AoBEoVMG5H0Wj6Wpz6GNkrFguHTRLymTy6kw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-linux-x64-musl@13.5.7': + resolution: {integrity: sha512-c50Y8xBKU16ZGj038H6C13iedRglxvdQHD/1BOtes56gwUrIRDX2Nkzn3mYtpz3Wzax0gfAF9C0Nqljt93IxvA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-win32-arm64-msvc@13.5.7': + resolution: {integrity: sha512-NcUx8cmkA+JEp34WNYcKW6kW2c0JBhzJXIbw+9vKkt9m/zVJ+KfizlqmoKf04uZBtzFN6aqE2Fyv2MOd021WIA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@next/swc-win32-ia32-msvc@13.5.7': + resolution: {integrity: sha512-wXp+/3NVcuyJDED6gJiLXs5dqHaWO7moAB6aBtjlKZvsxBDxpcyjsfRbtHPeYtaT20zCkmPs69H0K25lrVZmlA==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@next/swc-win32-x64-msvc@13.5.7': + resolution: {integrity: sha512-PLyD3Dl6jTTkLG8AoqhPGd5pXtSs8wbqIhWPQt3yEMfnYld/dGYuF2YPs3YHaVFrijCIF9pXY3+QOyvP23Zn7g==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@nextui-org/react@1.0.8-beta.5': + resolution: {integrity: sha512-rLM3PPuo0bNSp+WpawDUGRsa4FQTPuYwLEa6v9jSYzJMbSPr265LCOopn+h9o95CAFBJ48C1laSnnJ4SEEE0DQ==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@noble/curves@1.2.0': + resolution: {integrity: sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==} + + '@noble/curves@1.4.2': + resolution: {integrity: sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==} + + '@noble/curves@1.6.0': + resolution: {integrity: sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ==} + engines: {node: ^14.21.3 || >=16} + + '@noble/ed25519@1.7.3': + resolution: {integrity: sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ==} + + '@noble/hashes@1.2.0': + resolution: {integrity: sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==} + + '@noble/hashes@1.3.0': + resolution: {integrity: sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==} + + '@noble/hashes@1.3.2': + resolution: {integrity: sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==} + engines: {node: '>= 16'} + + '@noble/hashes@1.3.3': + resolution: {integrity: sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==} + engines: {node: '>= 16'} + + '@noble/hashes@1.4.0': + resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} + engines: {node: '>= 16'} + + '@noble/hashes@1.5.0': + resolution: {integrity: sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==} + engines: {node: ^14.21.3 || >=16} + + '@noble/secp256k1@1.7.1': + resolution: {integrity: sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@nolyfill/is-core-module@1.0.39': + resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} + engines: {node: '>=12.4.0'} + + '@parcel/watcher-android-arm64@2.5.0': + resolution: {integrity: sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + + '@parcel/watcher-darwin-arm64@2.5.0': + resolution: {integrity: sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + + '@parcel/watcher-darwin-x64@2.5.0': + resolution: {integrity: sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + + '@parcel/watcher-freebsd-x64@2.5.0': + resolution: {integrity: sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + + '@parcel/watcher-linux-arm-glibc@2.5.0': + resolution: {integrity: sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm-musl@2.5.0': + resolution: {integrity: sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm64-glibc@2.5.0': + resolution: {integrity: sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-arm64-musl@2.5.0': + resolution: {integrity: sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-x64-glibc@2.5.0': + resolution: {integrity: sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-linux-x64-musl@2.5.0': + resolution: {integrity: sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-wasm@2.5.0': + resolution: {integrity: sha512-Z4ouuR8Pfggk1EYYbTaIoxc+Yv4o7cGQnH0Xy8+pQ+HbiW+ZnwhcD2LPf/prfq1nIWpAxjOkQ8uSMFWMtBLiVQ==} + engines: {node: '>= 10.0.0'} + bundledDependencies: + - napi-wasm + + '@parcel/watcher-win32-arm64@2.5.0': + resolution: {integrity: sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + + '@parcel/watcher-win32-ia32@2.5.0': + resolution: {integrity: sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==} + engines: {node: '>= 10.0.0'} + cpu: [ia32] + os: [win32] + + '@parcel/watcher-win32-x64@2.5.0': + resolution: {integrity: sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + + '@parcel/watcher@2.5.0': + resolution: {integrity: sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==} + engines: {node: '>= 10.0.0'} + + '@pedrouid/environment@1.0.1': + resolution: {integrity: sha512-HaW78NszGzRZd9SeoI3JD11JqY+lubnaOx7Pewj5pfjqWXOEATpeKIFb9Z4t2WBUK2iryiXX3lzWwmYWgUL0Ug==} + + '@polkadot/keyring@10.4.2': + resolution: {integrity: sha512-7iHhJuXaHrRTG6cJDbZE9G+c1ts1dujp0qbO4RfAPmT7YUvphHvAtCKueN9UKPz5+TYDL+rP/jDEaSKU8jl/qQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@polkadot/util': 10.4.2 + '@polkadot/util-crypto': 10.4.2 + + '@polkadot/networks@10.4.2': + resolution: {integrity: sha512-FAh/znrEvWBiA/LbcT5GXHsCFUl//y9KqxLghSr/CreAmAergiJNT0MVUezC7Y36nkATgmsr4ylFwIxhVtuuCw==} + engines: {node: '>=14.0.0'} + + '@polkadot/types-augment@9.14.2': + resolution: {integrity: sha512-WO9d7RJufUeY3iFgt2Wz762kOu1tjEiGBR5TT4AHtpEchVHUeosVTrN9eycC+BhleqYu52CocKz6u3qCT/jKLg==} + engines: {node: '>=14.0.0'} + + '@polkadot/types-codec@9.14.2': + resolution: {integrity: sha512-AJ4XF7W1no4PENLBRU955V6gDxJw0h++EN3YoDgThozZ0sj3OxyFupKgNBZcZb2V23H8JxQozzIad8k+nJbO1w==} + engines: {node: '>=14.0.0'} + + '@polkadot/types-create@9.14.2': + resolution: {integrity: sha512-nSnKpBierlmGBQT8r6/SHf6uamBIzk4WmdMsAsR4uJKJF1PtbIqx2W5PY91xWSiMSNMzjkbCppHkwaDAMwLGaw==} + engines: {node: '>=14.0.0'} + + '@polkadot/types@9.14.2': + resolution: {integrity: sha512-hGLddTiJbvowhhUZJ3k+olmmBc1KAjWIQxujIUIYASih8FQ3/YJDKxaofGOzh0VygOKW3jxQBN2VZPofyDP9KQ==} + engines: {node: '>=14.0.0'} + + '@polkadot/util-crypto@10.4.2': + resolution: {integrity: sha512-RxZvF7C4+EF3fzQv8hZOLrYCBq5+wA+2LWv98nECkroChY3C2ZZvyWDqn8+aonNULt4dCVTWDZM0QIY6y4LUAQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@polkadot/util': 10.4.2 + + '@polkadot/util@10.4.2': + resolution: {integrity: sha512-0r5MGICYiaCdWnx+7Axlpvzisy/bi1wZGXgCSw5+ZTyPTOqvsYRqM2X879yxvMsGfibxzWqNzaiVjToz1jvUaA==} + engines: {node: '>=14.0.0'} + + '@polkadot/wasm-bridge@6.4.1': + resolution: {integrity: sha512-QZDvz6dsUlbYsaMV5biZgZWkYH9BC5AfhT0f0/knv8+LrbAoQdP3Asbvddw8vyU9sbpuCHXrd4bDLBwUCRfrBQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@polkadot/util': '*' + '@polkadot/x-randomvalues': '*' + + '@polkadot/wasm-crypto-asmjs@6.4.1': + resolution: {integrity: sha512-UxZTwuBZlnODGIQdCsE2Sn/jU0O2xrNQ/TkhRFELfkZXEXTNu4lw6NpaKq7Iey4L+wKd8h4lT3VPVkMcPBLOvA==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@polkadot/util': '*' + + '@polkadot/wasm-crypto-init@6.4.1': + resolution: {integrity: sha512-1ALagSi/nfkyFaH6JDYfy/QbicVbSn99K8PV9rctDUfxc7P06R7CoqbjGQ4OMPX6w1WYVPU7B4jPHGLYBlVuMw==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@polkadot/util': '*' + '@polkadot/x-randomvalues': '*' + + '@polkadot/wasm-crypto-wasm@6.4.1': + resolution: {integrity: sha512-3VV9ZGzh0ZY3SmkkSw+0TRXxIpiO0nB8lFwlRgcwaCihwrvLfRnH9GI8WE12mKsHVjWTEVR3ogzILJxccAUjDA==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@polkadot/util': '*' + + '@polkadot/wasm-crypto@6.4.1': + resolution: {integrity: sha512-FH+dcDPdhSLJvwL0pMLtn/LIPd62QDPODZRCmDyw+pFjLOMaRBc7raomWUOqyRWJTnqVf/iscc2rLVLNMyt7ag==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@polkadot/util': '*' + '@polkadot/x-randomvalues': '*' + + '@polkadot/wasm-util@6.4.1': + resolution: {integrity: sha512-Uwo+WpEsDmFExWC5kTNvsVhvqXMZEKf4gUHXFn4c6Xz4lmieRT5g+1bO1KJ21pl4msuIgdV3Bksfs/oiqMFqlw==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@polkadot/util': '*' + + '@polkadot/x-bigint@10.4.2': + resolution: {integrity: sha512-awRiox+/XSReLzimAU94fPldowiwnnMUkQJe8AebYhNocAj6SJU00GNoj6j6tAho6yleOwrTJXZaWFBaQVJQNg==} + engines: {node: '>=14.0.0'} + + '@polkadot/x-global@10.4.2': + resolution: {integrity: sha512-g6GXHD/ykZvHap3M6wh19dO70Zm43l4jEhlxf5LtTo5/0/UporFCXr2YJYZqfbn9JbQwl1AU+NroYio+vtJdiA==} + engines: {node: '>=14.0.0'} + + '@polkadot/x-randomvalues@10.4.2': + resolution: {integrity: sha512-mf1Wbpe7pRZHO0V3V89isPLqZOy5XGX2bCqsfUWHgb1NvV1MMx5TjVjdaYyNlGTiOkAmJKlOHshcfPU2sYWpNg==} + engines: {node: '>=14.0.0'} + + '@polkadot/x-textdecoder@10.4.2': + resolution: {integrity: sha512-d3ADduOKUTU+cliz839+KCFmi23pxTlabH7qh7Vs1GZQvXOELWdqFOqakdiAjtMn68n1KVF4O14Y+OUm7gp/zA==} + engines: {node: '>=14.0.0'} + + '@polkadot/x-textencoder@10.4.2': + resolution: {integrity: sha512-mxcQuA1exnyv74Kasl5vxBq01QwckG088lYjc3KwmND6+pPrW2OWagbxFX5VFoDLDAE+UJtnUHsjdWyOTDhpQA==} + engines: {node: '>=14.0.0'} + + '@popperjs/core@2.11.8': + resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} + + '@protobufjs/aspromise@1.1.2': + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + + '@protobufjs/base64@1.1.2': + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + + '@protobufjs/codegen@2.0.4': + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + + '@protobufjs/eventemitter@1.1.0': + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + + '@protobufjs/fetch@1.1.0': + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + + '@protobufjs/float@1.0.2': + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + + '@protobufjs/inquire@1.1.0': + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + + '@protobufjs/path@1.1.2': + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + + '@protobufjs/pool@1.1.0': + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + + '@protobufjs/utf8@1.1.0': + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + + '@react-aria/button@3.4.3': + resolution: {integrity: sha512-OMUuMu9UrBPv89DtAytRKDjD1YYkBY+Q2BCDs0OkRC1wjuWagCXji/f7ro7p6BSccIDRBdE6Lsi9OZmSJeTcqw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 + + '@react-aria/checkbox@3.3.0': + resolution: {integrity: sha512-0PVUYoflY4iVnFkn/fFKUDZSluNCZ8wO4M2bXhklbc7LneOw6uZbx9DkRrbk1bqLFLlJzoTAXmy1eXtNASZ9Gg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 + + '@react-aria/focus@3.18.4': + resolution: {integrity: sha512-91J35077w9UNaMK1cpMUEFRkNNz0uZjnSwiyBCFuRdaVuivO53wNC9XtWSDNDdcO5cGy87vfJRVAiyoCn/mjqA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + + '@react-aria/focus@3.5.1': + resolution: {integrity: sha512-8TTlxekumLxFZo0GELVUDCv6olQTMlGtobeGNaf0MVoonGz5oukjjPa3DB+PZRxMduTotRlniqpejnZi4fzMDw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 + + '@react-aria/grid@3.10.5': + resolution: {integrity: sha512-9sLa+rpLgRZk7VX+tvdSudn1tdVgolVzhDLGWd95yS4UtPVMihTMGBrRoByY57Wxvh1V+7Ptw8kc6tsRSotYKg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + + '@react-aria/i18n@3.12.3': + resolution: {integrity: sha512-0Tp/4JwnCVNKDfuknPF+/xf3/woOc8gUjTU2nCjO3mCVb4FU7KFtjxQ2rrx+6hpIVG6g+N9qfMjRa/ggVH0CJg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + + '@react-aria/i18n@3.3.6': + resolution: {integrity: sha512-GOogCx5UR3RpkJSceQwwenLctaK7tbDP0DKzmaWQv1ZNUg9nr35w65VMq46WIGz2dIQhqydTagZP1Exci1KhkQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 + + '@react-aria/interactions@3.22.4': + resolution: {integrity: sha512-E0vsgtpItmknq/MJELqYJwib+YN18Qag8nroqwjk1qOnBa9ROIkUhWJerLi1qs5diXq9LHKehZDXRlwPvdEFww==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + + '@react-aria/interactions@3.8.0': + resolution: {integrity: sha512-2NPyk9JM/Obd49+xm9pnSq8dGbe9t1YtQDZprOs/2hyyP6kZEfvQX1NruXcC+SuAMUPwI4R2eiCgLuMfkeUYrA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 + + '@react-aria/label@3.2.2': + resolution: {integrity: sha512-boOXJJGp2+Rqmvqwj/ElfVGsK37/rLUcTZ9fzvN261TAj5mk8QITQ0ii9t6ueNJuuTVDucvOO6NtDhgWRYc4+A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 + + '@react-aria/live-announcer@3.4.0': + resolution: {integrity: sha512-VBxEdMq2SbtRbNTQNcDR2G6E3lEl5cJSBiHTTO8Ln1AL76LiazrylIXGgoktqzCfRQmyq0v8CHk1cNKDU9mvJg==} + + '@react-aria/selection@3.20.1': + resolution: {integrity: sha512-My0w8UC/7PAkz/1yZUjr2VRuzDZz1RrbgTqP36j5hsJx8RczDTjI4TmKtQNKG0ggaP4w83G2Og5JPTq3w3LMAw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + + '@react-aria/ssr@3.1.2': + resolution: {integrity: sha512-amXY11ImpokvkTMeKRHjsSsG7v1yzzs6yeqArCyBIk60J3Yhgxwx9Cah+Uu/804ATFwqzN22AXIo7SdtIaMP+g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 + + '@react-aria/ssr@3.9.6': + resolution: {integrity: sha512-iLo82l82ilMiVGy342SELjshuWottlb5+VefO3jOQqQRNYnJBFpUSadswDPbRimSgJUZuFwIEYs6AabkP038fA==} + engines: {node: '>= 12'} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + + '@react-aria/table@3.2.1': + resolution: {integrity: sha512-wFWpgMGzF8fcsYfl6etbAv8V7minb1AnF/vnOZrmHwqec+/QpxMm8B4ZIUH8JqNR9bAo9Rt+HF+8xsbOjZHj2g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 + + '@react-aria/toggle@3.10.9': + resolution: {integrity: sha512-dtfnyIU2/kcH9rFAiB48diSmaXDv45K7UCuTkMQLjbQa3QHC1oYNbleVN/VdGyAMBsIWtfl8L4uuPrAQmDV/bg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + + '@react-aria/utils@3.11.1': + resolution: {integrity: sha512-sD/9EVinZIvuvzAjJMs2YYOz74DELolU0pDBHWuFAAOffJw9gBy8X/HxkmG91X4gwxRzy9jlJAFEEChoqtmHFA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 + + '@react-aria/utils@3.25.3': + resolution: {integrity: sha512-PR5H/2vaD8fSq0H/UB9inNbc8KDcVmW6fYAfSWkkn+OAdhTTMVKqXXrZuZBWyFfSD5Ze7VN6acr4hrOQm2bmrA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + + '@react-aria/visually-hidden@3.2.4': + resolution: {integrity: sha512-o1ToUW+/kQ8+PWOuEFxW77eT9ZhLjws+Ynik1ew4ocgJGQyPpFQ0P2riM9idopXOzLmuUyHeBMGPN1JnTwQ4ZQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 + + '@react-stately/checkbox@3.0.6': + resolution: {integrity: sha512-RrXJlEtp2q3g6Yex9QI8/tRJhIDmG1oKc5+VyVvdxp0NXtK0Zz+ycIlXuzcI5gwlBemv5ETxbIG4p5gdNXVeKA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 + + '@react-stately/collections@3.11.0': + resolution: {integrity: sha512-TiJeJjHMPSbbeAhmCXLJNSCk0fa5XnCvEuYw6HtQzDnYiq1AD7KAwkpjC5NfKkjqF3FLXs/v9RDm/P69q6rYzw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + + '@react-stately/data@3.4.5': + resolution: {integrity: sha512-IbAuoG6iuO52eKLhB7lvo3i7nAk76i8Q8eqkAkyx2w6Yi68cruUyQ2kmx/FoNyCSfKyGCGT8VOSSYBR3mxjpvw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 + + '@react-stately/grid@3.9.3': + resolution: {integrity: sha512-P5KgCNYwm/n8bbLx6527li89RQWoESikrsg2MMyUpUd6IJ321t2pGONGRRQzxE0SBMolPRDJKV0Do2OlsjYKhQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + + '@react-stately/selection@3.17.0': + resolution: {integrity: sha512-It3LRTaFOavybuDBvBH2mvCh73OL4awqvN4tZ0JzLzMtaYSBe9+YmFasYrzB0o7ca17B2q1tpUmsNWaAgIqbLA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + + '@react-stately/table@3.1.1': + resolution: {integrity: sha512-4sLTv88xd/sM4utcbCB/WS9LawblzLWThOuKKMxllkR/QrMQklH9FLiLVs20doSVN/CdNvER5IFkl0+NNFYMjg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 + + '@react-stately/toggle@3.2.4': + resolution: {integrity: sha512-WMyrs20vBPIkaP0PFjWQiZSaZoWQDNvtbCVAf6UH/0MTPMqJDR+r4dH8q9C+aOqM4UHiR3wQa2JjiwAxj5rSXQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 + + '@react-stately/toggle@3.7.8': + resolution: {integrity: sha512-ySOtkByvIY54yIu8IZ4lnvomQA0H+/mkZnd6T5fKN3tjvIzHmkUk3TAPmNInUxHX148tSW6mWwec0xvjYqEd6w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + + '@react-stately/utils@3.10.4': + resolution: {integrity: sha512-gBEQEIMRh5f60KCm7QKQ2WfvhB2gLUr9b72sqUdIZ2EG+xuPgaIlCBeSicvjmjBvYZwOjoOEnmIkcx2GHp/HWw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + + '@react-stately/virtualizer@3.1.7-alpha.0': + resolution: {integrity: sha512-0M7HUIJclA20wAdHslMlSrzsyI5TidZXBNVj8xz49CUAwIl+MHp4vCY+IsitnFvtvB0dSvax9XfD9Rnr23Tzlw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 + + '@react-types/button@3.10.0': + resolution: {integrity: sha512-rAyU+N9VaHLBdZop4zasn8IDwf9I5Q1EzHUKMtzIFf5aUlMUW+K460zI/l8UESWRSWAXK9/WPSXGxfcoCEjvAA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + + '@react-types/checkbox@3.2.6': + resolution: {integrity: sha512-bOQAnnDEpXL1P4oRBiwjnOskKQtawc+JcRZzQk/9k7NwKWfv5MHG/MFDJsW057GPm9Ks0onNATohtw6LFvzAQA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 + + '@react-types/checkbox@3.8.4': + resolution: {integrity: sha512-fvZrlQmlFNsYHZpl7GVmyYQlKdUtO5MczMSf8z3TlSiCb5Kl3ha9PsZgLhJqGuVnzB2ArIBz0eZrYa3k0PhcpA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + + '@react-types/grid@3.0.1': + resolution: {integrity: sha512-D5pEItMhT3Khz9xDdkC5hi6gAKVjjuSSCD8VxzDxd885Kk1xWJZjsYPCDKNFaifmt7LZEXo4JiAMg2M2WRqiQA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 + + '@react-types/grid@3.2.9': + resolution: {integrity: sha512-eMw0d2UIZ4QTzGgD1wGGPw0cv67KjAOCp4TcwWjgDV7Wa5SVV/UvOmpnIVDyfhkG/4KRI5OR9h+isy76B726qA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + + '@react-types/label@3.9.6': + resolution: {integrity: sha512-18HWl4pvsmQBfQiaB8azEOJQk3CZbRfMbX2CXYQhsLox+lCckyxk8u/vB6ZS17SRhm1l3eVS3XD6x8vmQJaU6Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + + '@react-types/shared@3.11.0': + resolution: {integrity: sha512-BLKHwS94m+/731RZ4tgsr0uT7oJCioCNIfzFmZBZuZtASqpXJVsRhn2omweMD0e3uH2atxuwIZbf0WUW3Y6CRw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 + + '@react-types/shared@3.25.0': + resolution: {integrity: sha512-OZSyhzU6vTdW3eV/mz5i6hQwQUhkRs7xwY2d1aqPvTdMe0+2cY7Fwp45PAiwYLEj73i9ro2FxF9qC4DvHGSCgQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + + '@react-types/table@3.10.2': + resolution: {integrity: sha512-YzA4hcsYfnFFpA2UyGb1KKhLpWgaj5daApqjp126tCIosl8k1KxZmhKD50cwH0Jm19lALJseqo5VdlcJtcr4qg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + + '@reown/appkit-adapter-ethers@1.4.1': + resolution: {integrity: sha512-VPPUSRtT1csUZv8krXWUy4MVHqzDkz7L2qSr04z60dC8HhQCRvu3rREYpGwUxVoW64Jmlbtyzp7ERdSUJKJcJQ==} + peerDependencies: + '@coinbase/wallet-sdk': 4.0.3 + '@ethersproject/sha2': 5.7.0 + ethers: '>=6' + + '@reown/appkit-common@1.4.1': + resolution: {integrity: sha512-fOplxylPoMtGHrcTQUDcRVRZ1zRA42hOlDLWYeXb31jEeIN6LzdWYtAiuGozE4VZ4g2fLYkpskbfE84bbSXRlA==} + + '@reown/appkit-common@1.5.2': + resolution: {integrity: sha512-dBFKIOxIdbU3R8KD/uwYKcsf5UbC1qoserzwdLDFn7GyOpBYKm0ZAY+3E4mt4HBS87R2Atn9tXYVL4wWPWbKMw==} + + '@reown/appkit-common@1.5.3': + resolution: {integrity: sha512-b/NnXbPUJb11A42CNV5nCKsPv+QCgrB112aAJ+PuH7HTSAOiSNQND8w8VPW2UpjUPP/6ivLhUrHOapYUlA3BtQ==} + + '@reown/appkit-core@1.4.1': + resolution: {integrity: sha512-CIxor0p+M3jjGxxxatkt5NYrp0WUhbn3EBY4FqUgzmIFpMe6mlAMtStufOQJJZn5jaXukdbwMjfYUC1TbkMMLw==} + + '@reown/appkit-core@1.5.3': + resolution: {integrity: sha512-4vFS/pwJDE42bXmGRbsPVbZZSlBC+mHC2G5rFcYymRDcjc1xNeLCUEq84xLC+Xt8YNt/Yi2ghslwWztL2lDF5w==} + + '@reown/appkit-polyfills@1.4.1': + resolution: {integrity: sha512-SlQtHPqfUySd9q1D7EMWZdmdcBi3Oa8QLl4+JemtjSDFQd/t6TYgtI8tYmK4glY1J9n4oiFiynQv2bEvxfLhiw==} + + '@reown/appkit-polyfills@1.5.2': + resolution: {integrity: sha512-dXrzpg08+l1Kc7aDFadm8n/CRhabPLNWBJUYBM8+jXyG60k8FBdLqdyexyvwdHPwZdoflDuOCaQKPhPD5U17vw==} + + '@reown/appkit-polyfills@1.5.3': + resolution: {integrity: sha512-SlRWZGPQJUtr68EtlNC5EXVzEsI7TM1PvwW36ZSE+9InRp2bxeySWdVntZrAQPvXIE7sZtRuJtIpC1fQ1hJnyw==} + + '@reown/appkit-scaffold-ui@1.4.1': + resolution: {integrity: sha512-Yb17DmjlQCK0p3k3SDdpfR7leepX/lrhI0gEy7GQwBWjj2yCWNG4hufMvhOo/Zb+dkFLHYNOxHL77AmIA7gMHQ==} + + '@reown/appkit-scaffold-ui@1.5.3': + resolution: {integrity: sha512-6Y1jmyD8yRbgcdWrFvvFfDC9Q+20LyCNR4sizr4AT85fWhsHkRG6ywrVCu1fP5RtIEgabjDtsNNipCd13Q2e3w==} + + '@reown/appkit-siwe@1.4.1': + resolution: {integrity: sha512-WxT/Kn3WTACwwv4FrIirBKvrd9bDPwjAdclZSjSzEE94PwgkqKZbSwtcnOPXD4jShXeTqDu0VGkhVT1tVUCvtg==} + + '@reown/appkit-siwe@1.5.3': + resolution: {integrity: sha512-0yhNp60yyYp7n7LzQyZhkxetsRGtjXTXlmsxJMCw4vHrG3IXYO1QhPTGaZbOI0ps3CAj2+jLV+Y1Aso7XJ7M9A==} + + '@reown/appkit-ui@1.4.1': + resolution: {integrity: sha512-6yf/OgjJeSG95RSYlxf3+cRyCkynAJSzQnjkyFejULk3twHVUMofPk1uY9U3BKU2faCn3kh4uomx2D2KT24YBg==} + + '@reown/appkit-ui@1.5.3': + resolution: {integrity: sha512-5ho20npfusl945wY2tCq8nntkZLj5BNC/C6tSATPgatA8kmJD35SKcNWlL4EAAiQDOfxEmifoErtEcUd27h/gg==} + + '@reown/appkit-utils@1.4.1': + resolution: {integrity: sha512-/1CjiOI6K8erBqi+Tq/9ZgjSXmXsVArK9IRh13NDcb+CM/DAS29Re7I/sFacGWZvxER0e8n5XJMNyvUmsI+j8Q==} + peerDependencies: + valtio: 1.11.2 + + '@reown/appkit-utils@1.5.3': + resolution: {integrity: sha512-K0pF8sdt10BFDvkjvgLoXc7VOL5AmOzd9BqJw4IS60R9oDEDkfr/Wa/Bi+9LsLlYfwKh2H+TyvyIqHvhMjFviA==} + peerDependencies: + valtio: 1.11.2 + + '@reown/appkit-wallet@1.4.1': + resolution: {integrity: sha512-YbEYM9o6jINC0ZF7BUpfdc8XT91ssWZqH/2kAWe15pleLS9UXmWJjh0NZCGFC08tnnm3cmfsQCkJZMH3Jp+CJQ==} + + '@reown/appkit-wallet@1.5.2': + resolution: {integrity: sha512-OQs+nmfyT2/eyxhatp6GSjIuPDeab9cAgMKjf/1j1nOg/UykBNTmoHWpXWtYE5ZjgeUp8ApyAeASQWKwMOgIaw==} + + '@reown/appkit-wallet@1.5.3': + resolution: {integrity: sha512-9lFcPNNebzICxGVsy8IAJqF5yNHWBZCvWBdcgMheK47/W/Mi6LwM7zTSZSonnpRYZ7gYJOqfaTdCd2KfOMI6JQ==} + + '@reown/appkit@1.4.1': + resolution: {integrity: sha512-mrtanQ0kGlzeXSKrbna61/k2U0JYzcfMRFnQr9+SoJ0zpjDvSU8KFtvLEGQLiTU97lgRkT3JuXwKU2599P6B3w==} + + '@reown/appkit@1.5.3': + resolution: {integrity: sha512-Wh+JetSr0/AHow2lqp/3+v61rnCzaXWDBKXgBWCUxGhHrw+vpDeyEsLLLTAbBd3w0xsKRaO2gjW5k+Z53p1NRw==} + + '@reown/walletkit@1.1.1': + resolution: {integrity: sha512-GTPksxBO6VAsqiQ0oH2jt8C845Y7redpI4OxRy31vf7KKDPPGfldbsTYZ+FP9xSda00dCJJKuXhzewZT/xHuDg==} + + '@rtsao/scc@1.1.0': + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + + '@rushstack/eslint-patch@1.10.4': + resolution: {integrity: sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==} + + '@scure/base@1.1.1': + resolution: {integrity: sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==} + + '@scure/base@1.1.9': + resolution: {integrity: sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==} + + '@scure/bip32@1.3.2': + resolution: {integrity: sha512-N1ZhksgwD3OBlwTv3R6KFEcPojl/W4ElJOeCZdi+vuI5QmTFwLq3OFf2zd2ROpKvxFdgZ6hUpb0dx9bVNEwYCA==} + + '@scure/bip32@1.4.0': + resolution: {integrity: sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==} + + '@scure/bip39@1.2.1': + resolution: {integrity: sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==} + + '@scure/bip39@1.3.0': + resolution: {integrity: sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==} + + '@solana/buffer-layout@4.0.1': + resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==} + engines: {node: '>=5.10'} + + '@solana/web3.js@1.89.2': + resolution: {integrity: sha512-jmrF8et3Umic4kaJeX5ROrC0PBEQ572zrG2FHARcPy9inHQXInLIOovokQo7FjPfYDgPcFpCW+f7GPhsKkYqMg==} + + '@stablelib/aead@1.0.1': + resolution: {integrity: sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==} + + '@stablelib/binary@1.0.1': + resolution: {integrity: sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==} + + '@stablelib/blake2b@1.0.1': + resolution: {integrity: sha512-B3KyKoBAjkIFeH7romcF96i+pVFYk7K2SBQ1pZvaxV+epSBXJ+n0C66esUhyz6FF+5FbdQVm77C5fzGFcEZpKA==} + + '@stablelib/bytes@1.0.1': + resolution: {integrity: sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==} + + '@stablelib/chacha20poly1305@1.0.1': + resolution: {integrity: sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==} + + '@stablelib/chacha@1.0.1': + resolution: {integrity: sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==} + + '@stablelib/constant-time@1.0.1': + resolution: {integrity: sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==} + + '@stablelib/ed25519@1.0.3': + resolution: {integrity: sha512-puIMWaX9QlRsbhxfDc5i+mNPMY+0TmQEskunY1rZEBPi1acBCVQAhnsk/1Hk50DGPtVsZtAWQg4NHGlVaO9Hqg==} + + '@stablelib/hash@1.0.1': + resolution: {integrity: sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==} + + '@stablelib/hkdf@1.0.1': + resolution: {integrity: sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g==} + + '@stablelib/hmac@1.0.1': + resolution: {integrity: sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA==} + + '@stablelib/int@1.0.1': + resolution: {integrity: sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==} + + '@stablelib/keyagreement@1.0.1': + resolution: {integrity: sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==} + + '@stablelib/nacl@1.0.4': + resolution: {integrity: sha512-PJ2U/MrkXSKUM8C4qFs87WeCNxri7KQwR8Cdwm9q2sweGuAtTvOJGuW0F3N+zn+ySLPJA98SYWSSpogMJ1gCmw==} + + '@stablelib/pbkdf2@1.0.1': + resolution: {integrity: sha512-d5jwK6jW1DkMyzqY8D1Io+fRXcsUVr95lk5LKX9ghaUdAITTc1ZL0bff+R0IrwSixbHluxhnivG7vDw59AZ/Nw==} + + '@stablelib/poly1305@1.0.1': + resolution: {integrity: sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==} + + '@stablelib/random@1.0.2': + resolution: {integrity: sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==} + + '@stablelib/salsa20@1.0.2': + resolution: {integrity: sha512-nfjKzw0KTKrrKBasEP+j7UP4I8Xudom8lVZIBCp0kQNARXq72IlSic0oabg2FC1NU68L4RdHrNJDd8bFwrphYA==} + + '@stablelib/sha256@1.0.1': + resolution: {integrity: sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ==} + + '@stablelib/sha512@1.0.1': + resolution: {integrity: sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==} + + '@stablelib/wipe@1.0.1': + resolution: {integrity: sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==} + + '@stablelib/x25519@1.0.3': + resolution: {integrity: sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw==} + + '@stablelib/xsalsa20@1.0.2': + resolution: {integrity: sha512-7XdBGbcNgBShmuhDXv1G1WPVCkjZdkb1oPMzSidO7Fve0MHntH6TjFkj5bfLI+aRE+61weO076vYpP/jmaAYog==} + + '@stitches/react@1.2.7': + resolution: {integrity: sha512-6AxpUag7OW55ANzRnuy7R15FEyQeZ66fytVo3BBilFIU0mfo3t49CAMcEAL/A1SbhSj/FCdWkn/XrbjGBTJTzg==} + peerDependencies: + react: '>= 16.3.0' + + '@substrate/ss58-registry@1.51.0': + resolution: {integrity: sha512-TWDurLiPxndFgKjVavCniytBIw+t4ViOi7TYp9h/D0NMmkEc9klFTo+827eyEJ0lELpqO207Ey7uGxUa+BS1jQ==} + + '@swc/helpers@0.5.15': + resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + + '@swc/helpers@0.5.2': + resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} + + '@taquito/axios-fetch-adapter@https://codeload.github.com/ecadlabs/axios-fetch-adapter/tar.gz/167684f522e90343b9f3439d9a43ac571e2396f6': + resolution: {tarball: https://codeload.github.com/ecadlabs/axios-fetch-adapter/tar.gz/167684f522e90343b9f3439d9a43ac571e2396f6} + version: 0.3.1 + peerDependencies: + axios: '>=0.26.0' + + '@taquito/http-utils@15.1.0': + resolution: {integrity: sha512-Uug5hN0XvMlFFN+rxSMW+Y9Z8pw5uqHRDZC83eLOBSijbpMo+ScG/2nKkC8MUUrqLaLeHru1HD4kT5DHc1fI+A==} + engines: {node: '>=6.0.0'} + + '@taquito/local-forging@15.1.0': + resolution: {integrity: sha512-ib/2RqtxQQC9SjyTB9T5OSc5yUx9GUSdMOA4dmtiiFcN2+AG+aw7ixn6Hjt9Td8ZIOPt9H6HkyTypKrX7+cENw==} + engines: {node: '>=6.0.0'} + + '@taquito/michel-codec@15.1.0': + resolution: {integrity: sha512-wKucIhs7vhaq5H+YSF2f6Qu9+g+QiEL6MPc5ROpxBrXJTeKSwBOEIpfqcKfkfMuecJyHZJW3glNfkpAVTCgkxg==} + engines: {node: '>=6.0.0'} + + '@taquito/michelson-encoder@15.1.0': + resolution: {integrity: sha512-uQMEu3g+8WcYb5ZV6+XGvoWJhKoNxU0F2RqodLJB7UxQ1rI/OMa+VlxSLMt4niIxpKXqnO9j4tD7Y4mPC3ufaA==} + engines: {node: '>=6.0.0'} + + '@taquito/rpc@15.1.0': + resolution: {integrity: sha512-OeQA8QwT+s6IUmLaF5yeWruPYzWi/DVCA3kl+AaQ8IFfCMzmAW/MszbbNkJSzHpY2p4jPBwdRNxg3qeJdL482A==} + engines: {node: '>=6.0.0'} + + '@taquito/signer@15.1.0': + resolution: {integrity: sha512-VP7hS8cYQ6cMerVkbD5X3AqpoIXvh72xNuv3++R4reEjdl+E3VWs1CZZGnJj6yzlFV21SrdGKSILx8Rl3Ql4DA==} + engines: {node: '>=6.0.0'} + + '@taquito/taquito@15.1.0': + resolution: {integrity: sha512-2AXWeNoXsmMOSkJVXtXjOlJkS+hKXITaSybMA6nJuS1YWY4e7iAr678Y6UgVEHRJxeGohX4R4Ww12Ymr3Sfedg==} + engines: {node: '>=6.0.0'} + + '@taquito/utils@15.1.0': + resolution: {integrity: sha512-lqVThoFMmOKPg9jyREr4A63cpeckf5esCwOyOAW3sm+yCxD9s5khnBPtH8s52cRVnChFdwk/eqmADka9gat5hw==} + engines: {node: '>=6.0.0'} + + '@types/bn.js@5.1.6': + resolution: {integrity: sha512-Xh8vSwUeMKeYYrj3cX4lGQgFSF/N03r+tv4AiLl1SucqV+uTQpxRcnM8AkXKHwYP9ZPXOYXRr2KPXpVlIvqh9w==} + + '@types/bs58check@2.1.2': + resolution: {integrity: sha512-xpXaQlOIY1KoXlA/ytHGHpEIU87PJt+g9SH7nC6HdCgaBwT2IEZIwBMHbjuX6BpnfbiUMlmwqurdLDwXpcdmSA==} + + '@types/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + + '@types/glob@7.2.0': + resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} + + '@types/hast@2.3.10': + resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/json5@0.0.29': + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + + '@types/minimatch@5.1.2': + resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} + + '@types/node@11.11.6': + resolution: {integrity: sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==} + + '@types/node@12.20.55': + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + + '@types/node@17.0.35': + resolution: {integrity: sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg==} + + '@types/node@22.7.5': + resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==} + + '@types/parse-json@4.0.2': + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + + '@types/prop-types@15.7.13': + resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==} + + '@types/react-transition-group@4.4.11': + resolution: {integrity: sha512-RM05tAniPZ5DZPzzNFP+DmrcOdD0efDUxMy3145oljWSl3x9ZV5vhme98gTxFrj2lhXvmGNnUiuDyJgY9IKkNA==} + + '@types/react@17.0.2': + resolution: {integrity: sha512-Xt40xQsrkdvjn1EyWe1Bc0dJLcil/9x2vAuW7ya+PuQip4UYUaXyhzWmAbwRsdMgwOFHpfp7/FFZebDU6Y8VHA==} + + '@types/semver@7.5.8': + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + + '@types/stylis@4.2.5': + resolution: {integrity: sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==} + + '@types/trusted-types@2.0.7': + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + + '@types/unist@2.0.11': + resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + + '@types/ws@7.4.7': + resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} + + '@typescript-eslint/parser@6.21.0': + resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/scope-manager@6.21.0': + resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/types@6.21.0': + resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/typescript-estree@6.21.0': + resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/visitor-keys@6.21.0': + resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@walletconnect/core@2.17.0': + resolution: {integrity: sha512-On+uSaCfWdsMIQsECwWHZBmUXfrnqmv6B8SXRRuTJgd8tUpEvBkLQH4X7XkSm3zW6ozEkQTCagZ2ox2YPn3kbw==} + engines: {node: '>=18'} + + '@walletconnect/core@2.17.1': + resolution: {integrity: sha512-SMgJR5hEyEE/tENIuvlEb4aB9tmMXPzQ38Y61VgYBmwAFEhOHtpt8EDfnfRWqEhMyXuBXG4K70Yh8c67Yry+Xw==} + engines: {node: '>=18'} + + '@walletconnect/core@2.17.2': + resolution: {integrity: sha512-O9VUsFg78CbvIaxfQuZMsHcJ4a2Z16DRz/O4S+uOAcGKhH/i/ln8hp864Tb+xRvifWSzaZ6CeAVxk657F+pscA==} + engines: {node: '>=18'} + + '@walletconnect/environment@1.0.1': + resolution: {integrity: sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg==} + + '@walletconnect/events@1.0.1': + resolution: {integrity: sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ==} + + '@walletconnect/heartbeat@1.2.2': + resolution: {integrity: sha512-uASiRmC5MwhuRuf05vq4AT48Pq8RMi876zV8rr8cV969uTOzWdB/k+Lj5yI2PBtB1bGQisGen7MM1GcZlQTBXw==} + + '@walletconnect/jsonrpc-http-connection@1.0.8': + resolution: {integrity: sha512-+B7cRuaxijLeFDJUq5hAzNyef3e3tBDIxyaCNmFtjwnod5AGis3RToNqzFU33vpVcxFhofkpE7Cx+5MYejbMGw==} + + '@walletconnect/jsonrpc-provider@1.0.14': + resolution: {integrity: sha512-rtsNY1XqHvWj0EtITNeuf8PHMvlCLiS3EjQL+WOkxEOA4KPxsohFnBDeyPYiNm4ZvkQdLnece36opYidmtbmow==} + + '@walletconnect/jsonrpc-types@1.0.4': + resolution: {integrity: sha512-P6679fG/M+wuWg9TY8mh6xFSdYnFyFjwFelxyISxMDrlbXokorEVXYOxiqEbrU3x1BmBoCAJJ+vtEaEoMlpCBQ==} + + '@walletconnect/jsonrpc-utils@1.0.8': + resolution: {integrity: sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw==} + + '@walletconnect/jsonrpc-ws-connection@1.0.14': + resolution: {integrity: sha512-Jsl6fC55AYcbkNVkwNM6Jo+ufsuCQRqViOQ8ZBPH9pRREHH9welbBiszuTLqEJiQcO/6XfFDl6bzCJIkrEi8XA==} + + '@walletconnect/keyvaluestorage@1.1.1': + resolution: {integrity: sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==} + peerDependencies: + '@react-native-async-storage/async-storage': 1.x + peerDependenciesMeta: + '@react-native-async-storage/async-storage': + optional: true + + '@walletconnect/logger@2.1.2': + resolution: {integrity: sha512-aAb28I3S6pYXZHQm5ESB+V6rDqIYfsnHaQyzFbwUUBFY4H0OXx/YtTl8lvhUNhMMfb9UxbwEBS253TlXUYJWSw==} + + '@walletconnect/relay-api@1.0.11': + resolution: {integrity: sha512-tLPErkze/HmC9aCmdZOhtVmYZq1wKfWTJtygQHoWtgg722Jd4homo54Cs4ak2RUFUZIGO2RsOpIcWipaua5D5Q==} + + '@walletconnect/relay-auth@1.0.4': + resolution: {integrity: sha512-kKJcS6+WxYq5kshpPaxGHdwf5y98ZwbfuS4EE/NkQzqrDFm5Cj+dP8LofzWvjrrLkZq7Afy7WrQMXdLy8Sx7HQ==} + + '@walletconnect/safe-json@1.0.2': + resolution: {integrity: sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==} + + '@walletconnect/sign-client@2.17.0': + resolution: {integrity: sha512-sErYwvSSHQolNXni47L3Bm10ptJc1s1YoJvJd34s5E9h9+d3rj7PrhbiW9X82deN+Dm5oA8X9tC4xty1yIBrVg==} + + '@walletconnect/sign-client@2.17.1': + resolution: {integrity: sha512-6rLw6YNy0smslH9wrFTbNiYrGsL3DrOsS5FcuU4gIN6oh8pGYOFZ5FiSyTTroc5tngOk3/Sd7dlGY9S7O4nveg==} + + '@walletconnect/time@1.0.2': + resolution: {integrity: sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g==} + + '@walletconnect/types@2.17.0': + resolution: {integrity: sha512-i1pn9URpvt9bcjRDkabuAmpA9K7mzyKoLJlbsAujRVX7pfaG7wur7u9Jz0bk1HxvuABL5LHNncTnVKSXKQ5jZA==} + + '@walletconnect/types@2.17.1': + resolution: {integrity: sha512-aiUeBE3EZZTsZBv5Cju3D0PWAsZCMks1g3hzQs9oNtrbuLL6pKKU0/zpKwk4vGywszxPvC3U0tBCku9LLsH/0A==} + + '@walletconnect/types@2.17.2': + resolution: {integrity: sha512-j/+0WuO00lR8ntu7b1+MKe/r59hNwYLFzW0tTmozzhfAlDL+dYwWasDBNq4AH8NbVd7vlPCQWmncH7/6FVtOfQ==} + + '@walletconnect/universal-provider@2.17.0': + resolution: {integrity: sha512-d3V5Be7AqLrvzcdMZSBS8DmGDRdqnyLk1DWmRKAGgR6ieUWykhhUKlvfeoZtvJrIXrY7rUGYpH1X41UtFkW5Pw==} + + '@walletconnect/utils@2.17.0': + resolution: {integrity: sha512-1aeQvjwsXy4Yh9G6g2eGmXrEl+BzkNjHRdCrGdMYqFTFa8ROEJfTGsSH3pLsNDlOY94CoBUvJvM55q/PMoN/FQ==} + + '@walletconnect/utils@2.17.1': + resolution: {integrity: sha512-KL7pPwq7qUC+zcTmvxGqIyYanfHgBQ+PFd0TEblg88jM7EjuDLhjyyjtkhyE/2q7QgR7OanIK7pCpilhWvBsBQ==} + + '@walletconnect/utils@2.17.2': + resolution: {integrity: sha512-T7eLRiuw96fgwUy2A5NZB5Eu87ukX8RCVoO9lji34RFV4o2IGU9FhTEWyd4QQKI8OuQRjSknhbJs0tU0r0faPw==} + + '@walletconnect/window-getters@1.0.1': + resolution: {integrity: sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==} + + '@walletconnect/window-metadata@1.0.1': + resolution: {integrity: sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==} + + '@zerodev/ecdsa-validator@5.2.3': + resolution: {integrity: sha512-zeJjYhOW5EWK6XnctPt3iVnrqmrHfb81p/fJKaY4yQnL2ZYPrH37ZgtY1z5COETPCDTm65+jPfc1Zn/dziyAXQ==} + peerDependencies: + '@zerodev/sdk': ^5.2.1 + permissionless: ^0.1.18 + viem: ^2.9.17 + + '@zerodev/presets@5.2.2': + resolution: {integrity: sha512-2b2j5mGVE1GckUIqhOnSbEbFw4jEd7S/A1Yd2WisyS6fQBmrR5QfWIYKoBOIjXYhSFj0qbtNqtl1KFNDELRiMQ==} + peerDependencies: + '@zerodev/ecdsa-validator': ^5.2.1 + '@zerodev/sdk': ^5.2.1 + permissionless: ^0.1.18 + typescript: ^5.0.0 + viem: ^2.9.17 + + '@zerodev/sdk@5.2.11': + resolution: {integrity: sha512-42wl3vW+CPQTghOnAlVAwEiT7Aa+cb89EztY5NCX03jGHj64D38ZIRytZkIu4pleGGFHL7B29af6RYzGJPO0NQ==} + peerDependencies: + permissionless: ^0.1.18 + viem: ^2.9.17 + + '@zerodev/session-key@5.2.2': + resolution: {integrity: sha512-jHUjoRdzdP6DH8qIsSICLDMD+FgvBwZFQQ1ipgG33oK8696pFI4qjphMBQGA3kEqVzL0syKiO7eIUV8FlwD1mQ==} + peerDependencies: + '@zerodev/sdk': ^5.2.1 + permissionless: ^0.1.18 + viem: ^2.9.17 + + '@zerodev/weighted-ecdsa-validator@5.2.4': + resolution: {integrity: sha512-TqgZihOpKe/qtfRDwyVFtfQjK01F3W/b8CmWqcYKGqY8eLge8PouHx8bd1PpkbhqGea/3MHFUySl2z9DCgI62Q==} + peerDependencies: + '@zerodev/sdk': ^5.2.1 + permissionless: ^0.1.18 + viem: ^2.9.17 + + JSONStream@1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true + + abitype@1.0.0: + resolution: {integrity: sha512-NMeMah//6bJ56H5XRj8QCV4AwuW6hB6zqz2LnhhLdcWVQOsXki6/Pn3APeqxCma62nXIcmZWdu1DlHWS74umVQ==} + peerDependencies: + typescript: '>=5.0.4' + zod: ^3 >=3.22.0 + peerDependenciesMeta: + typescript: + optional: true + zod: + optional: true + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + engines: {node: '>=0.4.0'} + hasBin: true + + aes-js@4.0.0-beta.5: + resolution: {integrity: sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==} + + agentkeepalive@4.5.0: + resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} + engines: {node: '>= 8.0.0'} + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} + + array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} + + array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + engines: {node: '>= 0.4'} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} + + array.prototype.findlastindex@1.2.5: + resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} + engines: {node: '>= 0.4'} + + array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + + array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} + + array.prototype.tosorted@1.1.4: + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} + engines: {node: '>= 0.4'} + + arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} + + ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + + atomic-sleep@1.0.0: + resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} + engines: {node: '>=8.0.0'} + + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + axe-core@4.10.2: + resolution: {integrity: sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==} + engines: {node: '>=4'} + + axios@0.26.1: + resolution: {integrity: sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==} + + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + + babel-plugin-macros@3.1.0: + resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} + engines: {node: '>=10', npm: '>=6'} + + backslash@0.2.0: + resolution: {integrity: sha512-Avs+8FUZ1HF/VFP4YWwHQZSGzRPm37ukU1JQYQWijuHhtXdOuAzcZ8PcAzfIw898a8PyBzdn+RtnKA6MzW0X2A==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base-x@2.0.6: + resolution: {integrity: sha512-UAmjxz9KbK+YIi66xej+pZVo/vxUOh49ubEvZW5egCbxhur05pBb+hwuireQwKO4nDpsNm64/jEei17LEpsr5g==} + engines: {node: '>=4.5.0'} + deprecated: use 3.0.0 instead, safe-buffer has been merged and release for compatability + + base-x@3.0.10: + resolution: {integrity: sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==} + + base-x@4.0.0: + resolution: {integrity: sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==} + + base-x@5.0.0: + resolution: {integrity: sha512-sMW3VGSX1QWVFA6l8U62MLKz29rRfpTlYdCqLdpLo1/Yd4zZwSbnUaDfciIAowAqvq7YFnWq9hrhdg1KYgc1lQ==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + bech32@1.1.4: + resolution: {integrity: sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==} + + bech32@2.0.0: + resolution: {integrity: sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==} + + bigint-buffer@1.1.5: + resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==} + engines: {node: '>= 10.0.0'} + + bignumber.js@9.0.1: + resolution: {integrity: sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==} + + bignumber.js@9.1.2: + resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + + bip39@3.0.2: + resolution: {integrity: sha512-J4E1r2N0tUylTKt07ibXvhpT2c5pyAFgvuA5q1H9uDy6dEGpjV8jmymh3MTYJDLCNbIVClSB9FbND49I6N24MQ==} + + bip39@3.1.0: + resolution: {integrity: sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==} + + blake2b-wasm@1.1.7: + resolution: {integrity: sha512-oFIHvXhlz/DUgF0kq5B1CqxIDjIJwh9iDeUUGQUcvgiGz7Wdw03McEO7CfLBy7QKGdsydcMCgO9jFNBAFCtFcA==} + + blake2b@2.1.3: + resolution: {integrity: sha512-pkDss4xFVbMb4270aCyGD3qLv92314Et+FsKzilCLxDz5DuZ2/1g3w4nmBbu6nKApPspnjG7JcwTjGZnduB1yg==} + + blakejs@1.2.1: + resolution: {integrity: sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==} + + bn.js@4.11.6: + resolution: {integrity: sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==} + + bn.js@4.12.1: + resolution: {integrity: sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==} + + bn.js@5.2.1: + resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} + + borsh@0.7.0: + resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==} + + borsh@1.0.0: + resolution: {integrity: sha512-fSVWzzemnyfF89EPwlUNsrS5swF5CrtiN4e+h0/lLf4dz2he4L3ndM20PS9wj7ICSkXJe/TQUHdaPTq15b1mNQ==} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + brorand@1.1.0: + resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} + + bs58@4.0.0: + resolution: {integrity: sha512-/jcGuUuSebyxwLLfKrbKnCJttxRf9PM51EnHTwmFKBxl4z1SGkoAhrfd6uZKE0dcjQTfm6XzTP8DPr1tzE4KIw==} + + bs58@4.0.1: + resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==} + + bs58@5.0.0: + resolution: {integrity: sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==} + + bs58@6.0.0: + resolution: {integrity: sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==} + + bs58check@2.1.2: + resolution: {integrity: sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==} + + buffer-reverse@1.0.1: + resolution: {integrity: sha512-M87YIUBsZ6N924W57vDwT/aOu8hw7ZgdByz6ijksLjmHJELBASmYTTlNHRgjE+pTsT9oJXGaDSgqqwfdHotDUg==} + + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + + bufferutil@4.0.8: + resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==} + engines: {node: '>=6.14.2'} + + busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} + + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + camelize@1.0.1: + resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} + + caniuse-lite@1.0.30001680: + resolution: {integrity: sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + character-entities-legacy@1.1.4: + resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} + + character-entities@1.2.4: + resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} + + character-reference-invalid@1.1.4: + resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + cipher-base@1.0.5: + resolution: {integrity: sha512-xq7ICKB4TMHUx7Tz1L9O2SGKOhYMOTR32oir45Bq28/AQTpHogKgHcoYFSdRbMtddl+ozNXfXY9jWcgYKmde0w==} + engines: {node: '>= 0.10'} + + citty@0.1.6: + resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + + client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + + clipboardy@4.0.0: + resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} + engines: {node: '>=18'} + + cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + + clsx@1.2.1: + resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} + engines: {node: '>=6'} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + comma-separated-tokens@1.0.8: + resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + + consola@3.2.3: + resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} + engines: {node: ^14.18.0 || >=16.10.0} + + convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + + cookie-es@1.2.2: + resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} + + cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + + cosmjs-types@0.9.0: + resolution: {integrity: sha512-MN/yUe6mkJwHnCFfsNPeCfXVhyxHYW6c/xDUzrSbBycYzw++XvWDMJArXp2pLdgD6FQ8DW79vkPjeNKVrXaHeQ==} + + create-hash@1.2.0: + resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==} + + create-hmac@1.1.7: + resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==} + + cross-fetch@3.1.8: + resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==} + + cross-spawn@7.0.5: + resolution: {integrity: sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==} + engines: {node: '>= 8'} + + crossws@0.3.1: + resolution: {integrity: sha512-HsZgeVYaG+b5zA+9PbIPGq4+J/CJynJuearykPsXx4V/eMhyQ5EDVg3Ak2FBZtVXCiOLu/U7IiwDHTr9MA+IKw==} + + crypto-js@4.2.0: + resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} + + css-color-keywords@1.0.0: + resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==} + engines: {node: '>=4'} + + css-to-react-native@3.2.0: + resolution: {integrity: sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==} + + css-vendor@2.0.8: + resolution: {integrity: sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==} + + csstype@2.6.21: + resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + + data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + + dayjs@1.11.10: + resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + + decode-uri-component@0.2.2: + resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} + engines: {node: '>=0.10'} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + + delay@5.0.0: + resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==} + engines: {node: '>=10'} + + depd@1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + destr@2.0.3: + resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} + + detect-browser@5.3.0: + resolution: {integrity: sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==} + + detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + + detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + + detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + + dijkstrajs@1.0.3: + resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + dom-helpers@5.2.1: + resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} + + duplexify@4.1.3: + resolution: {integrity: sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==} + + ed25519-hd-key@1.1.2: + resolution: {integrity: sha512-/0y9y6N7vM6Kj5ASr9J9wcMVDTtygxSOvYX+PJiMD7VcxCx2G03V5bLRl8Dug9EgkLFsLhGqBtQWQRcElEeWTA==} + + ed2curve@0.3.0: + resolution: {integrity: sha512-8w2fmmq3hv9rCrcI7g9hms2pMunQr1JINfcjwR9tAyZqhtyaMN991lF/ZfHfr5tzZQ8c7y7aBgZbjfbd0fjFwQ==} + + elliptic@6.5.4: + resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==} + + elliptic@6.5.7: + resolution: {integrity: sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q==} + + elliptic@6.6.0: + resolution: {integrity: sha512-dpwoQcLc/2WLQvJvLRHKZ+f9FgOdjnq11rurqwekGQygGPsYSK29OMMD2WalatiqQ+XGFDglTNixpPfI+lpaAA==} + + elliptic@6.6.1: + resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + encode-utf8@1.0.3: + resolution: {integrity: sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==} + + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + + enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} + engines: {node: '>=10.13.0'} + + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + + es-abstract@1.23.5: + resolution: {integrity: sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==} + engines: {node: '>= 0.4'} + + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-iterator-helpers@1.2.0: + resolution: {integrity: sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==} + engines: {node: '>= 0.4'} + + es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} + + es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + + es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + + es6-promise@4.2.8: + resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} + + es6-promisify@5.0.0: + resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-config-next@13.5.7: + resolution: {integrity: sha512-pdeUuL9KZ8qFzzKqCbxk6FXwG9dNEnot/3+qSFJqxdSGgkFUH8cgZus/meyCi2S0cTAsDbBEE030E6zvL9pUYQ==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + + eslint-config-prettier@8.5.0: + resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + + eslint-import-resolver-typescript@3.6.3: + resolution: {integrity: sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + eslint-plugin-import-x: '*' + peerDependenciesMeta: + eslint-plugin-import: + optional: true + eslint-plugin-import-x: + optional: true + + eslint-module-utils@2.12.0: + resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + + eslint-plugin-import@2.31.0: + resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + + eslint-plugin-jsx-a11y@6.10.2: + resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 + + eslint-plugin-package-json@0.13.1: + resolution: {integrity: sha512-aZkSvyJZRW4JKFhdoBhuPgc8sM/UAQN993uh956Yb8dSFCAV0Vkwrw09cuPL5onZ6ygF5pCqSs57wZRqGIwDQQ==} + engines: {node: '>=18'} + peerDependencies: + eslint: '>=8.0.0' + jsonc-eslint-parser: ^2.0.0 + + eslint-plugin-react-hooks@5.0.0-canary-7118f5dd7-20230705: + resolution: {integrity: sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + + eslint-plugin-react@7.37.2: + resolution: {integrity: sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-utils@3.0.0: + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + + eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint@8.15.0: + resolution: {integrity: sha512-GG5USZ1jhCu8HJkzGgeK8/+RGnHaNYZGrGDzUtigK3BsGESW/rs2az23XqE0WVwDxy1VRvvjSSGu5nB0Bu+6SA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. + hasBin: true + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + ethereum-bloom-filters@1.2.0: + resolution: {integrity: sha512-28hyiE7HVsWubqhpVLVmZXFd4ITeHi+BUu05o9isf0GUpMtzBUi+8/gFrGaGYzvGAJQmJ3JKj77Mk9G98T84rA==} + + ethereum-cryptography@2.2.1: + resolution: {integrity: sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==} + + ethers@6.13.4: + resolution: {integrity: sha512-21YtnZVg4/zKkCQPjrDj38B1r4nQvTZLopUGMLQ1ePU2zV/joCfDC3t3iKQjWRzjjjbzR+mdAIoikeBRNkdllA==} + engines: {node: '>=14.0.0'} + + ethjs-unit@0.1.6: + resolution: {integrity: sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==} + engines: {node: '>=6.5.0', npm: '>=3'} + + eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + + eyes@0.1.8: + resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==} + engines: {node: '> 0.1.90'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fast-redact@3.5.0: + resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} + engines: {node: '>=6'} + + fast-stable-stringify@1.0.0: + resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==} + + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + + fault@1.0.4: + resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==} + + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + + file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + filter-obj@1.1.0: + resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==} + engines: {node: '>=0.10.0'} + + find-root@1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + + flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + + format@0.2.2: + resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} + engines: {node: '>=0.4.x'} + + framer-motion@6.5.1: + resolution: {integrity: sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw==} + peerDependencies: + react: '>=16.8 || ^17.0.0 || ^18.0.0' + react-dom: '>=16.8 || ^17.0.0 || ^18.0.0' + + framesync@6.0.1: + resolution: {integrity: sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA==} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + + functional-red-black-tree@1.0.1: + resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + generate-function@2.3.1: + resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==} + + generate-object-property@1.2.0: + resolution: {integrity: sha512-TuOwZWgJ2VAMEGJvAyPWvpqxSANF0LDpmyHauMjFYzaACvn+QTT/AZomvPCzVBV7yDN3OmwHQ5OvHaeLKre3JQ==} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + + get-port-please@3.1.2: + resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==} + + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + + get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} + + get-tsconfig@4.8.1: + resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} + + git-hooks-list@1.0.3: + resolution: {integrity: sha512-Y7wLWcrLUXwk2noSka166byGCvhMtDRpgHdzCno1UQv/n/Hegp++a2xBWJL1lJarnKD3SWaljD+0z1ztqxuKyQ==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + + glob@7.1.7: + resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} + deprecated: Glob versions prior to v9 are no longer supported + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + + globby@10.0.0: + resolution: {integrity: sha512-3LifW9M4joGZasyYPz2A1U74zbC/45fvpXUvO/9KbSa+VV0aGZarWkfdgKyR9sExNP0t0x0ss/UMJpNpcaTspw==} + engines: {node: '>=8'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + goober@2.1.16: + resolution: {integrity: sha512-erjk19y1U33+XAMe1VTvIONHYoSqE4iS7BYUZfHaqeohLmnC0FdxEh7rQU+6MZ4OajItzjZFSRtVANrQwNq6/g==} + peerDependencies: + csstype: ^3.0.10 + + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + h3@1.13.0: + resolution: {integrity: sha512-vFEAu/yf8UMUcB4s43OaDaigcqpQd14yanmOsn+NcRX3/guSKncyE2rOYhq8RIchgJrPSs/QiIddnTTR1ddiAg==} + + has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hash-base@3.1.0: + resolution: {integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==} + engines: {node: '>=4'} + + hash.js@1.1.7: + resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hast-util-parse-selector@2.2.5: + resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==} + + hastscript@6.0.0: + resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==} + + hey-listen@1.0.8: + resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==} + + highlight.js@10.7.3: + resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} + + highlightjs-vue@1.0.0: + resolution: {integrity: sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA==} + + hmac-drbg@1.0.1: + resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} + + hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + + http-errors@1.7.2: + resolution: {integrity: sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==} + engines: {node: '>= 0.6'} + + http-shutdown@1.2.2: + resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + + humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + + hyphenate-style-name@1.1.0: + resolution: {integrity: sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==} + + idb-keyval@6.2.1: + resolution: {integrity: sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} + + intl-messageformat@10.7.7: + resolution: {integrity: sha512-F134jIoeYMro/3I0h08D0Yt4N9o9pjddU/4IIxMMURqbAtI2wu70X8hvG1V48W49zXHXv3RKSF/po+0fDfsGjA==} + + iron-webcrypto@1.2.1: + resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} + + is-alphabetical@1.0.4: + resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} + + is-alphanumerical@1.0.4: + resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} + + is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + + is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + + is-bun-module@1.2.1: + resolution: {integrity: sha512-AmidtEM6D6NmUiLOvvU7+IePxjEjOzra2h0pSrsfSAcXwl/83zLLXDByafUJy9k/rKK0pvXMLdwKwGHlX2Ke6Q==} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + engines: {node: '>= 0.4'} + + is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} + + is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + + is-decimal@1.0.4: + resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} + + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-hex-prefixed@1.0.0: + resolution: {integrity: sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==} + engines: {node: '>=6.5.0', npm: '>=3'} + + is-hexadecimal@1.0.4: + resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} + + is-in-browser@1.1.3: + resolution: {integrity: sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g==} + + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + + is-my-ip-valid@1.0.1: + resolution: {integrity: sha512-jxc8cBcOWbNK2i2aTkCZP6i7wkHF1bqKFrwEHuN5Jtg5BSaZHUZQ/JTOJwoV41YvHnOaRyWWh72T/KvfNz9DJg==} + + is-my-json-valid@2.20.6: + resolution: {integrity: sha512-1JQwulVNjx8UqkPE/bqDaxtH4PXCe/2VRh/y3p99heOV87HG4Id5/VfDswd+YiAfHcRTfDlWgISycnHuhZq1aw==} + + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + + is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + + is-property@1.0.2: + resolution: {integrity: sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==} + + is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + + is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} + + is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + + is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + + is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} + + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + + is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + + is-weakset@2.0.3: + resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} + engines: {node: '>= 0.4'} + + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + + is64bit@2.0.0: + resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==} + engines: {node: '>=18'} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isomorphic-ws@4.0.1: + resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==} + peerDependencies: + ws: '*' + + isows@1.0.3: + resolution: {integrity: sha512-2cKei4vlmg2cxEjm3wVSqn8pcoRF/LX/wpifuuNquFO4SQmPwarClT+SUCA2lt+l581tTeZIPIZuIDo2jWN1fg==} + peerDependencies: + ws: '*' + + iterator.prototype@1.1.3: + resolution: {integrity: sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==} + engines: {node: '>= 0.4'} + + jayson@4.1.2: + resolution: {integrity: sha512-5nzMWDHy6f+koZOuYsArh2AXs73NfWYVlFyJJuCedr93GpY+Ku8qq10ropSXVfHK+H0T6paA88ww+/dV+1fBNA==} + engines: {node: '>=8'} + hasBin: true + + jiti@2.4.0: + resolution: {integrity: sha512-H5UpaUI+aHOqZXlYOaFP/8AzKsg+guWu+Pr3Y8i7+Y3zr1aXAvCvTAQ1RxSc6oVD8R8c7brgNtTVP91E7upH/g==} + hasBin: true + + js-sha256@0.9.0: + resolution: {integrity: sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==} + + js-sha3@0.8.0: + resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-duplicate-key-handle@1.0.0: + resolution: {integrity: sha512-OLIxL+UpfwUsqcLX3i6Z51ChTou/Vje+6bSeGUSubj96dF/SfjObDprLy++ZXYH07KITuEzsXS7PX7e/BGf4jw==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + + json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + + jsonc-eslint-parser@2.4.0: + resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + + jsonpointer@5.0.1: + resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} + engines: {node: '>=0.10.0'} + + jsqr-es6@1.4.0-1: + resolution: {integrity: sha512-LPWZJLI+3LLOy9k3/s/MeXlkfNOs3bYBX5O+fp4N0XuxbgO8H7Uc/nYZeNwo13nSZXRW9xWFKmZdy9591+PyAg==} + + jss-plugin-camel-case@10.10.0: + resolution: {integrity: sha512-z+HETfj5IYgFxh1wJnUAU8jByI48ED+v0fuTuhKrPR+pRBYS2EDwbusU8aFOpCdYhtRc9zhN+PJ7iNE8pAWyPw==} + + jss-plugin-default-unit@10.10.0: + resolution: {integrity: sha512-SvpajxIECi4JDUbGLefvNckmI+c2VWmP43qnEy/0eiwzRUsafg5DVSIWSzZe4d2vFX1u9nRDP46WCFV/PXVBGQ==} + + jss-plugin-global@10.10.0: + resolution: {integrity: sha512-icXEYbMufiNuWfuazLeN+BNJO16Ge88OcXU5ZDC2vLqElmMybA31Wi7lZ3lf+vgufRocvPj8443irhYRgWxP+A==} + + jss-plugin-nested@10.10.0: + resolution: {integrity: sha512-9R4JHxxGgiZhurDo3q7LdIiDEgtA1bTGzAbhSPyIOWb7ZubrjQe8acwhEQ6OEKydzpl8XHMtTnEwHXCARLYqYA==} + + jss-plugin-props-sort@10.10.0: + resolution: {integrity: sha512-5VNJvQJbnq/vRfje6uZLe/FyaOpzP/IH1LP+0fr88QamVrGJa0hpRRyAa0ea4U/3LcorJfBFVyC4yN2QC73lJg==} + + jss-plugin-rule-value-function@10.10.0: + resolution: {integrity: sha512-uEFJFgaCtkXeIPgki8ICw3Y7VMkL9GEan6SqmT9tqpwM+/t+hxfMUdU4wQ0MtOiMNWhwnckBV0IebrKcZM9C0g==} + + jss-plugin-vendor-prefixer@10.10.0: + resolution: {integrity: sha512-UY/41WumgjW8r1qMCO8l1ARg7NHnfRVWRhZ2E2m0DMYsr2DD91qIXLyNhiX83hHswR7Wm4D+oDYNC1zWCJWtqg==} + + jss@10.10.0: + resolution: {integrity: sha512-cqsOTS7jqPsPMjtKYDUpdFC0AbhYFLTcuGRqymgmdJIeQ8cH7+AgX7YSgQy79wXloZq2VvATYxUOUQEvS1V/Zw==} + + jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + + keccak@3.0.1: + resolution: {integrity: sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA==} + engines: {node: '>=10.0.0'} + + keccak@3.0.2: + resolution: {integrity: sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==} + engines: {node: '>=10.0.0'} + + keccak@3.0.4: + resolution: {integrity: sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==} + engines: {node: '>=10.0.0'} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + keyvaluestorage-interface@1.0.0: + resolution: {integrity: sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==} + + language-subtag-registry@0.3.23: + resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} + + language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + libsodium-sumo@0.7.15: + resolution: {integrity: sha512-5tPmqPmq8T8Nikpm1Nqj0hBHvsLFCXvdhBFV7SGOitQPZAA6jso8XoL0r4L7vmfKXr486fiQInvErHtEvizFMw==} + + libsodium-wrappers-sumo@0.7.15: + resolution: {integrity: sha512-aSWY8wKDZh5TC7rMvEdTHoyppVq/1dTSAeAR7H6pzd6QRT3vQWcT5pGwCotLcpPEOLXX6VvqihSPkpEhYAjANA==} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + listhen@1.9.0: + resolution: {integrity: sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==} + hasBin: true + + lit-element@4.1.1: + resolution: {integrity: sha512-HO9Tkkh34QkTeUmEdNYhMT8hzLid7YlMlATSi1q4q17HE5d9mrrEHJ/o8O2D0cMi182zK1F3v7x0PWFjrhXFew==} + + lit-html@3.2.1: + resolution: {integrity: sha512-qI/3lziaPMSKsrwlxH/xMgikhQ0EGOX2ICU73Bi/YHFvz2j/yMCIrw4+puF2IpQ4+upd3EWbvnHM9+PnJn48YA==} + + lit@3.1.0: + resolution: {integrity: sha512-rzo/hmUqX8zmOdamDAeydfjsGXbbdtAFqMhmocnh2j9aDYqbu0fjXygjCa0T99Od9VQ/2itwaGrjZz/ZELVl7w==} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + long@5.2.3: + resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + lowlight@1.20.0: + resolution: {integrity: sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lru_map@0.4.1: + resolution: {integrity: sha512-I+lBvqMMFfqaV8CJCISjI3wbjmwVu/VyOoU7+qtu9d7ioW5klMgsTTiUOUp+DJvfTTzKXoPbyC6YfgkNcyPSOg==} + + md5.js@1.3.5: + resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + merkletreejs@0.3.11: + resolution: {integrity: sha512-LJKTl4iVNTndhL+3Uz/tfkjD0klIWsHlUzgtuNnNrsf7bAlXR30m+xYB7lHr5Z/l6e/yAIsr26Dabx6Buo4VGQ==} + engines: {node: '>= 7.6.0'} + + micro-ftch@0.3.1: + resolution: {integrity: sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime@3.0.0: + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} + hasBin: true + + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + + minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + + minimalistic-crypto-utils@1.0.1: + resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@0.0.10: + resolution: {integrity: sha512-iotkTvxc+TwOm5Ieim8VnSNvCDjCK9S8G3scJ50ZthspSxa7jx50jkhYduuAtAjvfDUwSgOwf8+If99AlOEhyw==} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + mlly@1.7.3: + resolution: {integrity: sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + multiformats@9.9.0: + resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==} + + mustache@4.0.0: + resolution: {integrity: sha512-FJgjyX/IVkbXBXYUwH+OYwQKqWpFPLaLVESd70yHjSDunwzV2hZOoTBvPf4KLoxesUzzyfTH6F784Uqd7Wm5yA==} + engines: {npm: '>=1.4.0'} + hasBin: true + + nanoassert@1.1.0: + resolution: {integrity: sha512-C40jQ3NzfkP53NsO8kEOFd79p4b9kDXQMwgiY1z8ZwrDZgUyom0AHwGegF4Dm99L+YoYhuaB0ceerUcXmqr1rQ==} + + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + near-abi@0.1.1: + resolution: {integrity: sha512-RVDI8O+KVxRpC3KycJ1bpfVj9Zv+xvq9PlW1yIFl46GhrnLw83/72HqHGjGDjQ8DtltkcpSjY9X3YIGZ+1QyzQ==} + + near-api-js@4.0.3: + resolution: {integrity: sha512-NNxIUOGjTafDp65WKRmRqjOTdn4gukse5zFzo2YS/1YJMac++WR05mEsiAB2Aj54rDb/PL8TObQZgHtSs/Pjvg==} + + next@13.5.7: + resolution: {integrity: sha512-W7KIRTE+hPcgGdq89P3mQLDX3m7pJ6nxSyC+YxYaUExE+cS4UledB+Ntk98tKoyhsv6fjb2TRAnD7VDvoqmeFg==} + engines: {node: '>=16.14.0'} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + react: ^18.2.0 + react-dom: ^18.2.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + sass: + optional: true + + node-addon-api@2.0.2: + resolution: {integrity: sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==} + + node-addon-api@7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + + node-fetch-native@1.6.4: + resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} + + node-fetch@2.6.7: + resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + + node-gyp-build@4.8.3: + resolution: {integrity: sha512-EMS95CMJzdoSKoIiXo8pxKoL8DYxwIZXYlLmgPb8KUv794abpnLK6ynsCAWNliOjREKruYKdzbh76HHYUHX7nw==} + hasBin: true + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + number-to-bn@1.7.0: + resolution: {integrity: sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==} + engines: {node: '>=6.5.0', npm: '>=3'} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-inspect@1.13.3: + resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} + + object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} + engines: {node: '>= 0.4'} + + object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} + + object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} + + object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} + engines: {node: '>= 0.4'} + + ofetch@1.4.1: + resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} + + ohash@1.1.4: + resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==} + + on-exit-leak-free@0.2.0: + resolution: {integrity: sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + + optimist@0.6.1: + resolution: {integrity: sha512-snN4O4TkigujZphWLN0E//nQmm7790RYaE53DdL7ZYwee2D8DDo9/EyYiKUfN3rneWUjhJnueija3G9I2i0h3g==} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + package-json-validator@0.6.8: + resolution: {integrity: sha512-fW+v2yRdvb0bfi+wE/rKxbTy2J8dTt4USDL+626+acJJf1ZKMkxb9qptKNjXEDJtNdE0pHl2SzBllWBDpSUFig==} + engines: {node: '>=18'} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-entities@2.0.0: + resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + + pbkdf2@3.1.2: + resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==} + engines: {node: '>=0.12'} + + permissionless@0.1.21: + resolution: {integrity: sha512-/7zI4082w8pUYU/Xi4GOcWc4vhgjkW15/q7srA+b3TCn6/Uhnr1CjQl8ABJWEF1SYlVE+/x8e8RntBZ9VRDYpw==} + peerDependencies: + viem: ^2.9.17 + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + pino-abstract-transport@0.5.0: + resolution: {integrity: sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==} + + pino-std-serializers@4.0.0: + resolution: {integrity: sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==} + + pino@7.11.0: + resolution: {integrity: sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==} + hasBin: true + + pkg-types@1.2.1: + resolution: {integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==} + + pngjs@5.0.0: + resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} + engines: {node: '>=10.13.0'} + + popmotion@11.0.3: + resolution: {integrity: sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==} + + popper.js@1.16.1-lts: + resolution: {integrity: sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA==} + + possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + engines: {node: ^10 || ^12 || >=14} + + postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + engines: {node: ^10 || ^12 || >=14} + + preact@10.24.3: + resolution: {integrity: sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA==} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier@2.6.2: + resolution: {integrity: sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==} + engines: {node: '>=10.13.0'} + hasBin: true + + prismjs@1.27.0: + resolution: {integrity: sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==} + engines: {node: '>=6'} + + prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} + + process-warning@1.0.0: + resolution: {integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==} + + prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + + property-information@5.6.0: + resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==} + + protobufjs@7.2.4: + resolution: {integrity: sha512-AT+RJgD2sH8phPmCf7OUZR8xGdcJRga4+1cOaXJ64hvcSkVhNcRHOwIxUatPH15+nj59WAGTDv3LSGZPEQbJaQ==} + engines: {node: '>=12.0.0'} + + proxy-compare@2.5.1: + resolution: {integrity: sha512-oyfc0Tx87Cpwva5ZXezSp5V9vht1c7dZBhvuV/y3ctkgMVUmiAGDVeeB0dKhGSyT0v1ZTEQYpe/RXlBVBNuCLA==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + qrcode@1.5.3: + resolution: {integrity: sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==} + engines: {node: '>=10.13.0'} + hasBin: true + + query-string@7.1.3: + resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} + engines: {node: '>=6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + quick-format-unescaped@4.0.4: + resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} + + radix3@1.1.2: + resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + react-code-blocks@0.1.5: + resolution: {integrity: sha512-p57YPvry1OY0fS/oDVfK7BBgy89jHJguyyzNbjZvMUR2/90oB0iv3D6aS/PBjuQp7JyjlRoaZ/2WRxvOyyAAEw==} + engines: {node: '>=16'} + peerDependencies: + react: '>=16' + + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: ^18.3.1 + + react-hot-toast@2.4.1: + resolution: {integrity: sha512-j8z+cQbWIM5LY37pR6uZR6D4LfseplqnuAO4co4u8917hBUvXlEqyP1ZzqVLcqoyUesZZv/ImreoCeHVDpE5pQ==} + engines: {node: '>=10'} + peerDependencies: + react: '>=16' + react-dom: '>=16' + + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + react-is@17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + + react-qr-reader-es6@2.2.1-2: + resolution: {integrity: sha512-pDNH8FoR3fOBBCgh4ImKHlX+pv/D3P8JmE+vjjcw3+YTEUgBqUAZbIkD/WUE3HzhVhN2zx7ZLBhO9vJngnjJxw==} + peerDependencies: + react: '>=16' + react-dom: '>=16' + + react-syntax-highlighter@15.6.1: + resolution: {integrity: sha512-OqJ2/vL7lEeV5zTJyG7kmARppUjiB9h9udl4qHQjjgEos66z00Ia0OckwYfRxCSFrW8RJIBnsBwQsHZbVPspqg==} + peerDependencies: + react: '>= 0.14.0' + + react-transition-group@4.4.5: + resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} + peerDependencies: + react: '>=16.6.0' + react-dom: '>=16.6.0' + + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + readonly-date@1.0.0: + resolution: {integrity: sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ==} + + real-require@0.1.0: + resolution: {integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==} + engines: {node: '>= 12.13.0'} + + reflect.getprototypeof@1.0.6: + resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} + engines: {node: '>= 0.4'} + + refractor@3.6.0: + resolution: {integrity: sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==} + + regenerator-runtime@0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + regexp.prototype.flags@1.5.3: + resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} + engines: {node: '>= 0.4'} + + regexpp@3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + ripemd160@2.0.2: + resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} + + rpc-websockets@7.11.2: + resolution: {integrity: sha512-pL9r5N6AVHlMN/vT98+fcO+5+/UcPLf/4tq+WUaid/PPUGS/ttJ3y8e9IqmaWKtShNAysMSjkczuEA49NuV7UQ==} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + rxjs@6.6.7: + resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} + engines: {npm: '>=2.0.0'} + + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + + safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} + + safe-stable-stringify@2.5.0: + resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} + engines: {node: '>=10'} + + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + + scryptsy@2.1.0: + resolution: {integrity: sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w==} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + + setprototypeof@1.1.1: + resolution: {integrity: sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==} + + sha.js@2.4.11: + resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} + hasBin: true + + shallowequal@1.1.0: + resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + sonic-boom@2.8.0: + resolution: {integrity: sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==} + + sort-object-keys@1.1.3: + resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} + + sort-package-json@1.57.0: + resolution: {integrity: sha512-FYsjYn2dHTRb41wqnv+uEqCUvBpK3jZcTp9rbz2qDTmel7Pmdtf+i2rLaaPMRZeSVM60V3Se31GyWFpmKs4Q5Q==} + hasBin: true + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + + space-separated-tokens@1.1.5: + resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} + + split-on-first@1.1.0: + resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} + engines: {node: '>=6'} + + split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + + statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + + std-env@3.8.0: + resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==} + + stream-shift@1.0.3: + resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} + + streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + + strict-uri-encode@2.0.0: + resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} + engines: {node: '>=4'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string.prototype.includes@2.0.1: + resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} + engines: {node: '>= 0.4'} + + string.prototype.matchall@4.0.11: + resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} + engines: {node: '>= 0.4'} + + string.prototype.repeat@1.0.0: + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} + + string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + + strip-hex-prefix@1.0.0: + resolution: {integrity: sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==} + engines: {node: '>=6.5.0', npm: '>=3'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + style-value-types@5.0.0: + resolution: {integrity: sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA==} + + styled-components@6.1.13: + resolution: {integrity: sha512-M0+N2xSnAtwcVAQeFEsGWFFxXDftHUD7XrKla06QbpUMmbmtFBMMTcKWvFXtWxuD5qQkB8iU5gk6QASlx2ZRMw==} + engines: {node: '>= 16'} + peerDependencies: + react: '>= 16.8.0' + react-dom: '>= 16.8.0' + + styled-jsx@5.1.1: + resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true + + stylis@4.2.0: + resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} + + stylis@4.3.2: + resolution: {integrity: sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==} + + superstruct@0.14.2: + resolution: {integrity: sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + system-architecture@0.1.0: + resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} + engines: {node: '>=18'} + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + text-encoding-utf-8@1.0.2: + resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + thread-stream@0.15.2: + resolution: {integrity: sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==} + + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + + tiny-warning@1.0.3: + resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toidentifier@1.0.0: + resolution: {integrity: sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==} + engines: {node: '>=0.6'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + treeify@1.1.0: + resolution: {integrity: sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==} + engines: {node: '>=0.6'} + + ts-api-utils@1.4.0: + resolution: {integrity: sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + + tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + + tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + + tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + + tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tweetnacl@1.0.3: + resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} + + typedarray-to-buffer@4.0.0: + resolution: {integrity: sha512-6dOYeZfS3O9RtRD1caom0sMxgK59b27+IwoNy8RDPsmslSGOyU+mpTamlaIW7aNKi90ZQZ9DFaZL3YRoiSCULQ==} + + typescript@5.2.2: + resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} + engines: {node: '>=14.17'} + hasBin: true + + ufo@1.5.4: + resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + + uint8arrays@3.1.0: + resolution: {integrity: sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog==} + + unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + + uncrypto@0.1.3: + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + + unenv@1.10.0: + resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} + + unstorage@1.13.1: + resolution: {integrity: sha512-ELexQHUrG05QVIM/iUeQNdl9FXDZhqLJ4yP59fnmn2jGUh0TEulwOgov1ubOb3Gt2ZGK/VMchJwPDNVEGWQpRg==} + peerDependencies: + '@azure/app-configuration': ^1.7.0 + '@azure/cosmos': ^4.1.1 + '@azure/data-tables': ^13.2.2 + '@azure/identity': ^4.5.0 + '@azure/keyvault-secrets': ^4.9.0 + '@azure/storage-blob': ^12.25.0 + '@capacitor/preferences': ^6.0.2 + '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 + '@planetscale/database': ^1.19.0 + '@upstash/redis': ^1.34.3 + '@vercel/kv': ^1.0.1 + idb-keyval: ^6.2.1 + ioredis: ^5.4.1 + peerDependenciesMeta: + '@azure/app-configuration': + optional: true + '@azure/cosmos': + optional: true + '@azure/data-tables': + optional: true + '@azure/identity': + optional: true + '@azure/keyvault-secrets': + optional: true + '@azure/storage-blob': + optional: true + '@capacitor/preferences': + optional: true + '@netlify/blobs': + optional: true + '@planetscale/database': + optional: true + '@upstash/redis': + optional: true + '@vercel/kv': + optional: true + idb-keyval: + optional: true + ioredis: + optional: true + + untun@0.1.3: + resolution: {integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==} + hasBin: true + + uqr@0.1.2: + resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + use-sync-external-store@1.2.0: + resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + + utf-8-validate@5.0.10: + resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} + engines: {node: '>=6.14.2'} + + utf8@3.0.0: + resolution: {integrity: sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + + v8-compile-cache@2.4.0: + resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} + + validate-npm-package-name@5.0.1: + resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + valtio@1.11.2: + resolution: {integrity: sha512-1XfIxnUXzyswPAPXo1P3Pdx2mq/pIqZICkWN60Hby0d9Iqb+MEIpqgYVlbflvHdrp2YR/q3jyKWRPJJ100yxaw==} + engines: {node: '>=12.20.0'} + peerDependencies: + '@types/react': '>=16.8' + react: '>=16.8' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + + viem@2.9.29: + resolution: {integrity: sha512-LWvDSyB2tftKuSMAyZTXk3pDYj3c0aaOdr2JbDZEsPJw5zVbqg3FpoPHnUkHai8KcZI8aPWRKV31TYV1cBse9A==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true + + watchpack@2.4.0: + resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} + engines: {node: '>=10.13.0'} + + web3-utils@1.10.4: + resolution: {integrity: sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A==} + engines: {node: '>=8.0.0'} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + + which-builtin-type@1.1.4: + resolution: {integrity: sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==} + engines: {node: '>= 0.4'} + + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} + + which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + + which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wordwrap@0.0.3: + resolution: {integrity: sha512-1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw==} + engines: {node: '>=0.4.0'} + + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + ws@7.5.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.13.0: + resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + + yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + + yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + + yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + + zod@3.22.4: + resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} + +snapshots: + + '@adraffy/ens-normalize@1.10.0': {} + + '@adraffy/ens-normalize@1.10.1': {} + + '@babel/code-frame@7.26.2': + dependencies: + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/generator@7.26.2': + dependencies: + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.0.2 + + '@babel/helper-module-imports@7.25.9': + dependencies: + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.25.9': {} + + '@babel/helper-validator-identifier@7.25.9': {} + + '@babel/parser@7.26.2': + dependencies: + '@babel/types': 7.26.0 + + '@babel/runtime@7.26.0': + dependencies: + regenerator-runtime: 0.14.1 + + '@babel/runtime@7.9.6': + dependencies: + regenerator-runtime: 0.13.11 + + '@babel/template@7.25.9': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 + + '@babel/traverse@7.25.9': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.2 + '@babel/parser': 7.26.2 + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 + debug: 4.3.7 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.26.0': + dependencies: + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + + '@coinbase/wallet-sdk@4.0.0': + dependencies: + buffer: 6.0.3 + clsx: 1.2.1 + eventemitter3: 5.0.1 + keccak: 3.0.4 + preact: 10.24.3 + sha.js: 2.4.11 + + '@cosmjs/amino@0.32.3': + dependencies: + '@cosmjs/crypto': 0.32.4 + '@cosmjs/encoding': 0.32.3 + '@cosmjs/math': 0.32.4 + '@cosmjs/utils': 0.32.4 + + '@cosmjs/crypto@0.32.4': + dependencies: + '@cosmjs/encoding': 0.32.4 + '@cosmjs/math': 0.32.4 + '@cosmjs/utils': 0.32.4 + '@noble/hashes': 1.5.0 + bn.js: 5.2.1 + elliptic: 6.6.1 + libsodium-wrappers-sumo: 0.7.15 + + '@cosmjs/encoding@0.32.3': + dependencies: + base64-js: 1.5.1 + bech32: 1.1.4 + readonly-date: 1.0.0 + + '@cosmjs/encoding@0.32.4': + dependencies: + base64-js: 1.5.1 + bech32: 1.1.4 + readonly-date: 1.0.0 + + '@cosmjs/math@0.32.4': + dependencies: + bn.js: 5.2.1 + + '@cosmjs/proto-signing@0.32.3': + dependencies: + '@cosmjs/amino': 0.32.3 + '@cosmjs/crypto': 0.32.4 + '@cosmjs/encoding': 0.32.3 + '@cosmjs/math': 0.32.4 + '@cosmjs/utils': 0.32.4 + cosmjs-types: 0.9.0 + + '@cosmjs/utils@0.32.4': {} + + '@emotion/babel-plugin@11.12.0': + dependencies: + '@babel/helper-module-imports': 7.25.9 + '@babel/runtime': 7.26.0 + '@emotion/hash': 0.9.2 + '@emotion/memoize': 0.9.0 + '@emotion/serialize': 1.3.2 + babel-plugin-macros: 3.1.0 + convert-source-map: 1.9.0 + escape-string-regexp: 4.0.0 + find-root: 1.1.0 + source-map: 0.5.7 + stylis: 4.2.0 + transitivePeerDependencies: + - supports-color + + '@emotion/cache@11.13.1': + dependencies: + '@emotion/memoize': 0.9.0 + '@emotion/sheet': 1.4.0 + '@emotion/utils': 1.4.1 + '@emotion/weak-memoize': 0.4.0 + stylis: 4.2.0 + + '@emotion/hash@0.8.0': {} + + '@emotion/hash@0.9.2': {} + + '@emotion/is-prop-valid@0.8.8': + dependencies: + '@emotion/memoize': 0.7.4 + optional: true + + '@emotion/is-prop-valid@1.2.2': + dependencies: + '@emotion/memoize': 0.8.1 + + '@emotion/is-prop-valid@1.3.1': + dependencies: + '@emotion/memoize': 0.9.0 + + '@emotion/memoize@0.7.4': + optional: true + + '@emotion/memoize@0.8.1': {} + + '@emotion/memoize@0.9.0': {} + + '@emotion/react@11.13.3(@types/react@17.0.2)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.0 + '@emotion/babel-plugin': 11.12.0 + '@emotion/cache': 11.13.1 + '@emotion/serialize': 1.3.2 + '@emotion/use-insertion-effect-with-fallbacks': 1.1.0(react@18.3.1) + '@emotion/utils': 1.4.1 + '@emotion/weak-memoize': 0.4.0 + hoist-non-react-statics: 3.3.2 + react: 18.3.1 + optionalDependencies: + '@types/react': 17.0.2 + transitivePeerDependencies: + - supports-color + + '@emotion/serialize@1.3.2': + dependencies: + '@emotion/hash': 0.9.2 + '@emotion/memoize': 0.9.0 + '@emotion/unitless': 0.10.0 + '@emotion/utils': 1.4.1 + csstype: 3.1.3 + + '@emotion/sheet@1.4.0': {} + + '@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@17.0.2)(react@18.3.1))(@types/react@17.0.2)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.0 + '@emotion/babel-plugin': 11.12.0 + '@emotion/is-prop-valid': 1.3.1 + '@emotion/react': 11.13.3(@types/react@17.0.2)(react@18.3.1) + '@emotion/serialize': 1.3.2 + '@emotion/use-insertion-effect-with-fallbacks': 1.1.0(react@18.3.1) + '@emotion/utils': 1.4.1 + react: 18.3.1 + optionalDependencies: + '@types/react': 17.0.2 + transitivePeerDependencies: + - supports-color + + '@emotion/unitless@0.10.0': {} + + '@emotion/unitless@0.8.1': {} + + '@emotion/use-insertion-effect-with-fallbacks@1.1.0(react@18.3.1)': + dependencies: + react: 18.3.1 + + '@emotion/utils@1.4.1': {} + + '@emotion/weak-memoize@0.4.0': {} + + '@eslint/eslintrc@1.4.1': + dependencies: + ajv: 6.12.6 + debug: 4.3.7 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.2 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@ethereumjs/rlp@4.0.1': {} + + '@ethereumjs/util@8.1.0': + dependencies: + '@ethereumjs/rlp': 4.0.1 + ethereum-cryptography: 2.2.1 + micro-ftch: 0.3.1 + + '@ethersproject/abstract-provider@5.7.0': + dependencies: + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/networks': 5.7.1 + '@ethersproject/properties': 5.7.0 + '@ethersproject/transactions': 5.7.0 + '@ethersproject/web': 5.7.1 + + '@ethersproject/abstract-signer@5.7.0': + dependencies: + '@ethersproject/abstract-provider': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + + '@ethersproject/address@5.7.0': + dependencies: + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/rlp': 5.7.0 + + '@ethersproject/base64@5.7.0': + dependencies: + '@ethersproject/bytes': 5.7.0 + + '@ethersproject/bignumber@5.7.0': + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + bn.js: 5.2.1 + + '@ethersproject/bytes@5.7.0': + dependencies: + '@ethersproject/logger': 5.7.0 + + '@ethersproject/constants@5.7.0': + dependencies: + '@ethersproject/bignumber': 5.7.0 + + '@ethersproject/hash@5.7.0': + dependencies: + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/base64': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/strings': 5.7.0 + + '@ethersproject/keccak256@5.7.0': + dependencies: + '@ethersproject/bytes': 5.7.0 + js-sha3: 0.8.0 + + '@ethersproject/logger@5.7.0': {} + + '@ethersproject/networks@5.7.1': + dependencies: + '@ethersproject/logger': 5.7.0 + + '@ethersproject/properties@5.7.0': + dependencies: + '@ethersproject/logger': 5.7.0 + + '@ethersproject/rlp@5.7.0': + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + + '@ethersproject/sha2@5.7.0': + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + hash.js: 1.1.7 + + '@ethersproject/signing-key@5.7.0': + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + bn.js: 5.2.1 + elliptic: 6.5.4 + hash.js: 1.1.7 + + '@ethersproject/strings@5.7.0': + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/logger': 5.7.0 + + '@ethersproject/transactions@5.7.0': + dependencies: + '@ethersproject/address': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/rlp': 5.7.0 + '@ethersproject/signing-key': 5.7.0 + + '@ethersproject/web@5.7.1': + dependencies: + '@ethersproject/base64': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/strings': 5.7.0 + + '@formatjs/ecma402-abstract@2.2.4': + dependencies: + '@formatjs/fast-memoize': 2.2.3 + '@formatjs/intl-localematcher': 0.5.8 + tslib: 2.8.1 + + '@formatjs/fast-memoize@2.2.3': + dependencies: + tslib: 2.8.1 + + '@formatjs/icu-messageformat-parser@2.9.4': + dependencies: + '@formatjs/ecma402-abstract': 2.2.4 + '@formatjs/icu-skeleton-parser': 1.8.8 + tslib: 2.8.1 + + '@formatjs/icu-skeleton-parser@1.8.8': + dependencies: + '@formatjs/ecma402-abstract': 2.2.4 + tslib: 2.8.1 + + '@formatjs/intl-localematcher@0.5.8': + dependencies: + tslib: 2.8.1 + + '@humanwhocodes/config-array@0.9.5': + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.7 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@humanwhocodes/object-schema@1.2.1': {} + + '@internationalized/date@3.0.0-alpha.3': + dependencies: + '@babel/runtime': 7.9.6 + + '@internationalized/date@3.5.6': + dependencies: + '@swc/helpers': 0.5.15 + + '@internationalized/message@3.1.5': + dependencies: + '@swc/helpers': 0.5.15 + intl-messageformat: 10.7.7 + + '@internationalized/number@3.5.4': + dependencies: + '@swc/helpers': 0.5.15 + + '@internationalized/string@3.2.4': + dependencies: + '@swc/helpers': 0.5.15 + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@json-rpc-tools/types@1.7.6': + dependencies: + keyvaluestorage-interface: 1.0.0 + + '@json-rpc-tools/utils@1.7.6': + dependencies: + '@json-rpc-tools/types': 1.7.6 + '@pedrouid/environment': 1.0.1 + + '@kadena/cryptography-utils@0.4.4': + dependencies: + blakejs: 1.2.1 + buffer: 6.0.3 + tweetnacl: 1.0.3 + + '@kadena/types@0.6.2': {} + + '@lit-labs/ssr-dom-shim@1.2.1': {} + + '@lit/reactive-element@2.0.4': + dependencies: + '@lit-labs/ssr-dom-shim': 1.2.1 + + '@material-ui/core@4.12.4(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.0 + '@material-ui/styles': 4.11.5(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@material-ui/system': 4.12.2(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@material-ui/types': 5.1.0(@types/react@17.0.2) + '@material-ui/utils': 4.11.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@types/react-transition-group': 4.4.11 + clsx: 1.2.1 + hoist-non-react-statics: 3.3.2 + popper.js: 1.16.1-lts + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-is: 17.0.2 + react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + optionalDependencies: + '@types/react': 17.0.2 + + '@material-ui/icons@4.11.3(@material-ui/core@4.12.4(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.0 + '@material-ui/core': 4.12.4(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 17.0.2 + + '@material-ui/styles@4.11.5(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.0 + '@emotion/hash': 0.8.0 + '@material-ui/types': 5.1.0(@types/react@17.0.2) + '@material-ui/utils': 4.11.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + clsx: 1.2.1 + csstype: 2.6.21 + hoist-non-react-statics: 3.3.2 + jss: 10.10.0 + jss-plugin-camel-case: 10.10.0 + jss-plugin-default-unit: 10.10.0 + jss-plugin-global: 10.10.0 + jss-plugin-nested: 10.10.0 + jss-plugin-props-sort: 10.10.0 + jss-plugin-rule-value-function: 10.10.0 + jss-plugin-vendor-prefixer: 10.10.0 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 17.0.2 + + '@material-ui/system@4.12.2(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.0 + '@material-ui/utils': 4.11.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + csstype: 2.6.21 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 17.0.2 + + '@material-ui/types@5.1.0(@types/react@17.0.2)': + optionalDependencies: + '@types/react': 17.0.2 + + '@material-ui/utils@4.11.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.0 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-is: 17.0.2 + + '@motionone/animation@10.18.0': + dependencies: + '@motionone/easing': 10.18.0 + '@motionone/types': 10.17.1 + '@motionone/utils': 10.18.0 + tslib: 2.8.1 + + '@motionone/dom@10.12.0': + dependencies: + '@motionone/animation': 10.18.0 + '@motionone/generators': 10.18.0 + '@motionone/types': 10.17.1 + '@motionone/utils': 10.18.0 + hey-listen: 1.0.8 + tslib: 2.8.1 + + '@motionone/easing@10.18.0': + dependencies: + '@motionone/utils': 10.18.0 + tslib: 2.8.1 + + '@motionone/generators@10.18.0': + dependencies: + '@motionone/types': 10.17.1 + '@motionone/utils': 10.18.0 + tslib: 2.8.1 + + '@motionone/types@10.17.1': {} + + '@motionone/utils@10.18.0': + dependencies: + '@motionone/types': 10.17.1 + hey-listen: 1.0.8 + tslib: 2.8.1 + + '@mui/core-downloads-tracker@5.16.7': {} + + '@mui/icons-material@5.16.7(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@17.0.2)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@17.0.2)(react@18.3.1))(@types/react@17.0.2)(react@18.3.1))(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@17.0.2)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.0 + '@mui/material': 5.16.7(@emotion/react@11.13.3(@types/react@17.0.2)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@17.0.2)(react@18.3.1))(@types/react@17.0.2)(react@18.3.1))(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 17.0.2 + + '@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@17.0.2)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@17.0.2)(react@18.3.1))(@types/react@17.0.2)(react@18.3.1))(@types/react@17.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.0 + '@mui/core-downloads-tracker': 5.16.7 + '@mui/system': 5.16.7(@emotion/react@11.13.3(@types/react@17.0.2)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@17.0.2)(react@18.3.1))(@types/react@17.0.2)(react@18.3.1))(@types/react@17.0.2)(react@18.3.1) + '@mui/types': 7.2.19(@types/react@17.0.2) + '@mui/utils': 5.16.6(@types/react@17.0.2)(react@18.3.1) + '@popperjs/core': 2.11.8 + '@types/react-transition-group': 4.4.11 + clsx: 2.1.1 + csstype: 3.1.3 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-is: 18.3.1 + react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + optionalDependencies: + '@emotion/react': 11.13.3(@types/react@17.0.2)(react@18.3.1) + '@emotion/styled': 11.13.0(@emotion/react@11.13.3(@types/react@17.0.2)(react@18.3.1))(@types/react@17.0.2)(react@18.3.1) + '@types/react': 17.0.2 + + '@mui/private-theming@5.16.6(@types/react@17.0.2)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.0 + '@mui/utils': 5.16.6(@types/react@17.0.2)(react@18.3.1) + prop-types: 15.8.1 + react: 18.3.1 + optionalDependencies: + '@types/react': 17.0.2 + + '@mui/styled-engine@5.16.6(@emotion/react@11.13.3(@types/react@17.0.2)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@17.0.2)(react@18.3.1))(@types/react@17.0.2)(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.0 + '@emotion/cache': 11.13.1 + csstype: 3.1.3 + prop-types: 15.8.1 + react: 18.3.1 + optionalDependencies: + '@emotion/react': 11.13.3(@types/react@17.0.2)(react@18.3.1) + '@emotion/styled': 11.13.0(@emotion/react@11.13.3(@types/react@17.0.2)(react@18.3.1))(@types/react@17.0.2)(react@18.3.1) + + '@mui/system@5.16.7(@emotion/react@11.13.3(@types/react@17.0.2)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@17.0.2)(react@18.3.1))(@types/react@17.0.2)(react@18.3.1))(@types/react@17.0.2)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.0 + '@mui/private-theming': 5.16.6(@types/react@17.0.2)(react@18.3.1) + '@mui/styled-engine': 5.16.6(@emotion/react@11.13.3(@types/react@17.0.2)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@17.0.2)(react@18.3.1))(@types/react@17.0.2)(react@18.3.1))(react@18.3.1) + '@mui/types': 7.2.19(@types/react@17.0.2) + '@mui/utils': 5.16.6(@types/react@17.0.2)(react@18.3.1) + clsx: 2.1.1 + csstype: 3.1.3 + prop-types: 15.8.1 + react: 18.3.1 + optionalDependencies: + '@emotion/react': 11.13.3(@types/react@17.0.2)(react@18.3.1) + '@emotion/styled': 11.13.0(@emotion/react@11.13.3(@types/react@17.0.2)(react@18.3.1))(@types/react@17.0.2)(react@18.3.1) + '@types/react': 17.0.2 + + '@mui/types@7.2.19(@types/react@17.0.2)': + optionalDependencies: + '@types/react': 17.0.2 + + '@mui/utils@5.16.6(@types/react@17.0.2)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.0 + '@mui/types': 7.2.19(@types/react@17.0.2) + '@types/prop-types': 15.7.13 + clsx: 2.1.1 + prop-types: 15.8.1 + react: 18.3.1 + react-is: 18.3.1 + optionalDependencies: + '@types/react': 17.0.2 + + '@multiversx/sdk-bls-wasm@0.3.5': {} + + '@multiversx/sdk-core@12.18.0': + dependencies: + '@multiversx/sdk-transaction-decoder': 1.0.2 + bech32: 1.1.4 + bignumber.js: 9.0.1 + blake2b: 2.1.3 + buffer: 6.0.3 + json-duplicate-key-handle: 1.0.0 + keccak: 3.0.2 + protobufjs: 7.2.4 + + '@multiversx/sdk-transaction-decoder@1.0.2': + dependencies: + bech32: 2.0.0 + + '@multiversx/sdk-wallet@4.2.0': + dependencies: + '@multiversx/sdk-bls-wasm': 0.3.5 + '@noble/ed25519': 1.7.3 + '@noble/hashes': 1.3.0 + bech32: 1.1.4 + bip39: 3.0.2 + blake2b: 2.1.3 + ed25519-hd-key: 1.1.2 + ed2curve: 0.3.0 + keccak: 3.0.1 + scryptsy: 2.1.0 + tweetnacl: 1.0.3 + uuid: 8.3.2 + + '@near-js/accounts@1.2.1': + dependencies: + '@near-js/crypto': 1.2.4 + '@near-js/providers': 0.2.2 + '@near-js/signers': 0.1.4 + '@near-js/transactions': 1.2.2 + '@near-js/types': 0.2.1 + '@near-js/utils': 0.2.2 + borsh: 1.0.0 + depd: 2.0.0 + is-my-json-valid: 2.20.6 + lru_map: 0.4.1 + near-abi: 0.1.1 + transitivePeerDependencies: + - encoding + + '@near-js/crypto@1.2.4': + dependencies: + '@near-js/types': 0.2.1 + '@near-js/utils': 0.2.2 + '@noble/curves': 1.2.0 + borsh: 1.0.0 + randombytes: 2.1.0 + + '@near-js/keystores-browser@0.0.12': + dependencies: + '@near-js/crypto': 1.2.4 + '@near-js/keystores': 0.0.12 + + '@near-js/keystores-node@0.0.12': + dependencies: + '@near-js/crypto': 1.2.4 + '@near-js/keystores': 0.0.12 + + '@near-js/keystores@0.0.12': + dependencies: + '@near-js/crypto': 1.2.4 + '@near-js/types': 0.2.1 + + '@near-js/providers@0.2.2': + dependencies: + '@near-js/transactions': 1.2.2 + '@near-js/types': 0.2.1 + '@near-js/utils': 0.2.2 + borsh: 1.0.0 + http-errors: 1.7.2 + optionalDependencies: + node-fetch: 2.6.7 + transitivePeerDependencies: + - encoding + + '@near-js/signers@0.1.4': + dependencies: + '@near-js/crypto': 1.2.4 + '@near-js/keystores': 0.0.12 + '@noble/hashes': 1.3.3 + + '@near-js/transactions@1.2.2': + dependencies: + '@near-js/crypto': 1.2.4 + '@near-js/signers': 0.1.4 + '@near-js/types': 0.2.1 + '@near-js/utils': 0.2.2 + '@noble/hashes': 1.3.3 + borsh: 1.0.0 + + '@near-js/types@0.2.1': {} + + '@near-js/utils@0.2.2': + dependencies: + '@near-js/types': 0.2.1 + bs58: 4.0.0 + depd: 2.0.0 + mustache: 4.0.0 + + '@near-js/wallet-account@1.2.2': + dependencies: + '@near-js/accounts': 1.2.1 + '@near-js/crypto': 1.2.4 + '@near-js/keystores': 0.0.12 + '@near-js/providers': 0.2.2 + '@near-js/signers': 0.1.4 + '@near-js/transactions': 1.2.2 + '@near-js/types': 0.2.1 + '@near-js/utils': 0.2.2 + borsh: 1.0.0 + transitivePeerDependencies: + - encoding + + '@near-wallet-selector/core@8.9.14(near-api-js@4.0.3)': + dependencies: + borsh: 0.7.0 + events: 3.3.0 + js-sha256: 0.9.0 + near-api-js: 4.0.3 + rxjs: 7.8.1 + + '@near-wallet-selector/wallet-utils@8.9.14(near-api-js@4.0.3)': + dependencies: + '@near-wallet-selector/core': 8.9.14(near-api-js@4.0.3) + near-api-js: 4.0.3 + transitivePeerDependencies: + - '@near-js/providers' + + '@next/env@13.5.7': {} + + '@next/eslint-plugin-next@13.5.7': + dependencies: + glob: 7.1.7 + + '@next/swc-darwin-arm64@13.5.7': + optional: true + + '@next/swc-darwin-x64@13.5.7': + optional: true + + '@next/swc-linux-arm64-gnu@13.5.7': + optional: true + + '@next/swc-linux-arm64-musl@13.5.7': + optional: true + + '@next/swc-linux-x64-gnu@13.5.7': + optional: true + + '@next/swc-linux-x64-musl@13.5.7': + optional: true + + '@next/swc-win32-arm64-msvc@13.5.7': + optional: true + + '@next/swc-win32-ia32-msvc@13.5.7': + optional: true + + '@next/swc-win32-x64-msvc@13.5.7': + optional: true + + '@nextui-org/react@1.0.8-beta.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.9.6 + '@react-aria/button': 3.4.3(react@18.3.1) + '@react-aria/checkbox': 3.3.0(react@18.3.1) + '@react-aria/focus': 3.5.1(react@18.3.1) + '@react-aria/i18n': 3.3.6(react@18.3.1) + '@react-aria/interactions': 3.8.0(react@18.3.1) + '@react-aria/label': 3.2.2(react@18.3.1) + '@react-aria/ssr': 3.1.2(react@18.3.1) + '@react-aria/table': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.11.1(react@18.3.1) + '@react-aria/visually-hidden': 3.2.4(react@18.3.1) + '@react-stately/checkbox': 3.0.6(react@18.3.1) + '@react-stately/data': 3.4.5(react@18.3.1) + '@react-stately/table': 3.1.1(react@18.3.1) + '@react-stately/toggle': 3.2.4(react@18.3.1) + '@react-types/button': 3.10.0(react@18.3.1) + '@react-types/checkbox': 3.2.6(react@18.3.1) + '@react-types/grid': 3.0.1(react@18.3.1) + '@react-types/shared': 3.11.0(react@18.3.1) + '@stitches/react': 1.2.7(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@noble/curves@1.2.0': + dependencies: + '@noble/hashes': 1.3.2 + + '@noble/curves@1.4.2': + dependencies: + '@noble/hashes': 1.4.0 + + '@noble/curves@1.6.0': + dependencies: + '@noble/hashes': 1.5.0 + + '@noble/ed25519@1.7.3': {} + + '@noble/hashes@1.2.0': {} + + '@noble/hashes@1.3.0': {} + + '@noble/hashes@1.3.2': {} + + '@noble/hashes@1.3.3': {} + + '@noble/hashes@1.4.0': {} + + '@noble/hashes@1.5.0': {} + + '@noble/secp256k1@1.7.1': {} + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + '@nolyfill/is-core-module@1.0.39': {} + + '@parcel/watcher-android-arm64@2.5.0': + optional: true + + '@parcel/watcher-darwin-arm64@2.5.0': + optional: true + + '@parcel/watcher-darwin-x64@2.5.0': + optional: true + + '@parcel/watcher-freebsd-x64@2.5.0': + optional: true + + '@parcel/watcher-linux-arm-glibc@2.5.0': + optional: true + + '@parcel/watcher-linux-arm-musl@2.5.0': + optional: true + + '@parcel/watcher-linux-arm64-glibc@2.5.0': + optional: true + + '@parcel/watcher-linux-arm64-musl@2.5.0': + optional: true + + '@parcel/watcher-linux-x64-glibc@2.5.0': + optional: true + + '@parcel/watcher-linux-x64-musl@2.5.0': + optional: true + + '@parcel/watcher-wasm@2.5.0': + dependencies: + is-glob: 4.0.3 + micromatch: 4.0.8 + + '@parcel/watcher-win32-arm64@2.5.0': + optional: true + + '@parcel/watcher-win32-ia32@2.5.0': + optional: true + + '@parcel/watcher-win32-x64@2.5.0': + optional: true + + '@parcel/watcher@2.5.0': + dependencies: + detect-libc: 1.0.3 + is-glob: 4.0.3 + micromatch: 4.0.8 + node-addon-api: 7.1.1 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.5.0 + '@parcel/watcher-darwin-arm64': 2.5.0 + '@parcel/watcher-darwin-x64': 2.5.0 + '@parcel/watcher-freebsd-x64': 2.5.0 + '@parcel/watcher-linux-arm-glibc': 2.5.0 + '@parcel/watcher-linux-arm-musl': 2.5.0 + '@parcel/watcher-linux-arm64-glibc': 2.5.0 + '@parcel/watcher-linux-arm64-musl': 2.5.0 + '@parcel/watcher-linux-x64-glibc': 2.5.0 + '@parcel/watcher-linux-x64-musl': 2.5.0 + '@parcel/watcher-win32-arm64': 2.5.0 + '@parcel/watcher-win32-ia32': 2.5.0 + '@parcel/watcher-win32-x64': 2.5.0 + + '@pedrouid/environment@1.0.1': {} + + '@polkadot/keyring@10.4.2(@polkadot/util-crypto@10.4.2(@polkadot/util@10.4.2))(@polkadot/util@10.4.2)': + dependencies: + '@babel/runtime': 7.26.0 + '@polkadot/util': 10.4.2 + '@polkadot/util-crypto': 10.4.2(@polkadot/util@10.4.2) + + '@polkadot/networks@10.4.2': + dependencies: + '@babel/runtime': 7.26.0 + '@polkadot/util': 10.4.2 + '@substrate/ss58-registry': 1.51.0 + + '@polkadot/types-augment@9.14.2': + dependencies: + '@babel/runtime': 7.26.0 + '@polkadot/types': 9.14.2 + '@polkadot/types-codec': 9.14.2 + '@polkadot/util': 10.4.2 + + '@polkadot/types-codec@9.14.2': + dependencies: + '@babel/runtime': 7.26.0 + '@polkadot/util': 10.4.2 + '@polkadot/x-bigint': 10.4.2 + + '@polkadot/types-create@9.14.2': + dependencies: + '@babel/runtime': 7.26.0 + '@polkadot/types-codec': 9.14.2 + '@polkadot/util': 10.4.2 + + '@polkadot/types@9.14.2': + dependencies: + '@babel/runtime': 7.26.0 + '@polkadot/keyring': 10.4.2(@polkadot/util-crypto@10.4.2(@polkadot/util@10.4.2))(@polkadot/util@10.4.2) + '@polkadot/types-augment': 9.14.2 + '@polkadot/types-codec': 9.14.2 + '@polkadot/types-create': 9.14.2 + '@polkadot/util': 10.4.2 + '@polkadot/util-crypto': 10.4.2(@polkadot/util@10.4.2) + rxjs: 7.8.1 + + '@polkadot/util-crypto@10.4.2(@polkadot/util@10.4.2)': + dependencies: + '@babel/runtime': 7.26.0 + '@noble/hashes': 1.2.0 + '@noble/secp256k1': 1.7.1 + '@polkadot/networks': 10.4.2 + '@polkadot/util': 10.4.2 + '@polkadot/wasm-crypto': 6.4.1(@polkadot/util@10.4.2)(@polkadot/x-randomvalues@10.4.2) + '@polkadot/x-bigint': 10.4.2 + '@polkadot/x-randomvalues': 10.4.2 + '@scure/base': 1.1.1 + ed2curve: 0.3.0 + tweetnacl: 1.0.3 + + '@polkadot/util@10.4.2': + dependencies: + '@babel/runtime': 7.26.0 + '@polkadot/x-bigint': 10.4.2 + '@polkadot/x-global': 10.4.2 + '@polkadot/x-textdecoder': 10.4.2 + '@polkadot/x-textencoder': 10.4.2 + '@types/bn.js': 5.1.6 + bn.js: 5.2.1 + + '@polkadot/wasm-bridge@6.4.1(@polkadot/util@10.4.2)(@polkadot/x-randomvalues@10.4.2)': + dependencies: + '@babel/runtime': 7.26.0 + '@polkadot/util': 10.4.2 + '@polkadot/x-randomvalues': 10.4.2 + + '@polkadot/wasm-crypto-asmjs@6.4.1(@polkadot/util@10.4.2)': + dependencies: + '@babel/runtime': 7.26.0 + '@polkadot/util': 10.4.2 + + '@polkadot/wasm-crypto-init@6.4.1(@polkadot/util@10.4.2)(@polkadot/x-randomvalues@10.4.2)': + dependencies: + '@babel/runtime': 7.26.0 + '@polkadot/util': 10.4.2 + '@polkadot/wasm-bridge': 6.4.1(@polkadot/util@10.4.2)(@polkadot/x-randomvalues@10.4.2) + '@polkadot/wasm-crypto-asmjs': 6.4.1(@polkadot/util@10.4.2) + '@polkadot/wasm-crypto-wasm': 6.4.1(@polkadot/util@10.4.2) + '@polkadot/x-randomvalues': 10.4.2 + + '@polkadot/wasm-crypto-wasm@6.4.1(@polkadot/util@10.4.2)': + dependencies: + '@babel/runtime': 7.26.0 + '@polkadot/util': 10.4.2 + '@polkadot/wasm-util': 6.4.1(@polkadot/util@10.4.2) + + '@polkadot/wasm-crypto@6.4.1(@polkadot/util@10.4.2)(@polkadot/x-randomvalues@10.4.2)': + dependencies: + '@babel/runtime': 7.26.0 + '@polkadot/util': 10.4.2 + '@polkadot/wasm-bridge': 6.4.1(@polkadot/util@10.4.2)(@polkadot/x-randomvalues@10.4.2) + '@polkadot/wasm-crypto-asmjs': 6.4.1(@polkadot/util@10.4.2) + '@polkadot/wasm-crypto-init': 6.4.1(@polkadot/util@10.4.2)(@polkadot/x-randomvalues@10.4.2) + '@polkadot/wasm-crypto-wasm': 6.4.1(@polkadot/util@10.4.2) + '@polkadot/wasm-util': 6.4.1(@polkadot/util@10.4.2) + '@polkadot/x-randomvalues': 10.4.2 + + '@polkadot/wasm-util@6.4.1(@polkadot/util@10.4.2)': + dependencies: + '@babel/runtime': 7.26.0 + '@polkadot/util': 10.4.2 + + '@polkadot/x-bigint@10.4.2': + dependencies: + '@babel/runtime': 7.26.0 + '@polkadot/x-global': 10.4.2 + + '@polkadot/x-global@10.4.2': + dependencies: + '@babel/runtime': 7.26.0 + + '@polkadot/x-randomvalues@10.4.2': + dependencies: + '@babel/runtime': 7.26.0 + '@polkadot/x-global': 10.4.2 + + '@polkadot/x-textdecoder@10.4.2': + dependencies: + '@babel/runtime': 7.26.0 + '@polkadot/x-global': 10.4.2 + + '@polkadot/x-textencoder@10.4.2': + dependencies: + '@babel/runtime': 7.26.0 + '@polkadot/x-global': 10.4.2 + + '@popperjs/core@2.11.8': {} + + '@protobufjs/aspromise@1.1.2': {} + + '@protobufjs/base64@1.1.2': {} + + '@protobufjs/codegen@2.0.4': {} + + '@protobufjs/eventemitter@1.1.0': {} + + '@protobufjs/fetch@1.1.0': + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + + '@protobufjs/float@1.0.2': {} + + '@protobufjs/inquire@1.1.0': {} + + '@protobufjs/path@1.1.2': {} + + '@protobufjs/pool@1.1.0': {} + + '@protobufjs/utf8@1.1.0': {} + + '@react-aria/button@3.4.3(react@18.3.1)': + dependencies: + '@babel/runtime': 7.9.6 + '@react-aria/focus': 3.18.4(react@18.3.1) + '@react-aria/interactions': 3.22.4(react@18.3.1) + '@react-aria/utils': 3.25.3(react@18.3.1) + '@react-stately/toggle': 3.7.8(react@18.3.1) + '@react-types/button': 3.10.0(react@18.3.1) + react: 18.3.1 + + '@react-aria/checkbox@3.3.0(react@18.3.1)': + dependencies: + '@babel/runtime': 7.9.6 + '@react-aria/label': 3.2.2(react@18.3.1) + '@react-aria/toggle': 3.10.9(react@18.3.1) + '@react-aria/utils': 3.11.1(react@18.3.1) + '@react-stately/checkbox': 3.0.6(react@18.3.1) + '@react-stately/toggle': 3.2.4(react@18.3.1) + '@react-types/checkbox': 3.2.6(react@18.3.1) + react: 18.3.1 + + '@react-aria/focus@3.18.4(react@18.3.1)': + dependencies: + '@react-aria/interactions': 3.22.4(react@18.3.1) + '@react-aria/utils': 3.25.3(react@18.3.1) + '@react-types/shared': 3.25.0(react@18.3.1) + '@swc/helpers': 0.5.15 + clsx: 2.1.1 + react: 18.3.1 + + '@react-aria/focus@3.5.1(react@18.3.1)': + dependencies: + '@babel/runtime': 7.9.6 + '@react-aria/interactions': 3.8.0(react@18.3.1) + '@react-aria/utils': 3.11.1(react@18.3.1) + '@react-types/shared': 3.11.0(react@18.3.1) + clsx: 1.2.1 + react: 18.3.1 + + '@react-aria/grid@3.10.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/focus': 3.18.4(react@18.3.1) + '@react-aria/i18n': 3.12.3(react@18.3.1) + '@react-aria/interactions': 3.22.4(react@18.3.1) + '@react-aria/live-announcer': 3.4.0 + '@react-aria/selection': 3.20.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.25.3(react@18.3.1) + '@react-stately/collections': 3.11.0(react@18.3.1) + '@react-stately/grid': 3.9.3(react@18.3.1) + '@react-stately/selection': 3.17.0(react@18.3.1) + '@react-types/checkbox': 3.8.4(react@18.3.1) + '@react-types/grid': 3.2.9(react@18.3.1) + '@react-types/shared': 3.25.0(react@18.3.1) + '@swc/helpers': 0.5.15 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@react-aria/i18n@3.12.3(react@18.3.1)': + dependencies: + '@internationalized/date': 3.5.6 + '@internationalized/message': 3.1.5 + '@internationalized/number': 3.5.4 + '@internationalized/string': 3.2.4 + '@react-aria/ssr': 3.9.6(react@18.3.1) + '@react-aria/utils': 3.25.3(react@18.3.1) + '@react-types/shared': 3.25.0(react@18.3.1) + '@swc/helpers': 0.5.15 + react: 18.3.1 + + '@react-aria/i18n@3.3.6(react@18.3.1)': + dependencies: + '@babel/runtime': 7.9.6 + '@internationalized/date': 3.0.0-alpha.3 + '@internationalized/message': 3.1.5 + '@internationalized/number': 3.5.4 + '@react-aria/ssr': 3.1.2(react@18.3.1) + '@react-aria/utils': 3.25.3(react@18.3.1) + '@react-types/shared': 3.25.0(react@18.3.1) + react: 18.3.1 + + '@react-aria/interactions@3.22.4(react@18.3.1)': + dependencies: + '@react-aria/ssr': 3.9.6(react@18.3.1) + '@react-aria/utils': 3.25.3(react@18.3.1) + '@react-types/shared': 3.25.0(react@18.3.1) + '@swc/helpers': 0.5.15 + react: 18.3.1 + + '@react-aria/interactions@3.8.0(react@18.3.1)': + dependencies: + '@babel/runtime': 7.9.6 + '@react-aria/utils': 3.11.1(react@18.3.1) + '@react-types/shared': 3.11.0(react@18.3.1) + react: 18.3.1 + + '@react-aria/label@3.2.2(react@18.3.1)': + dependencies: + '@babel/runtime': 7.9.6 + '@react-aria/utils': 3.11.1(react@18.3.1) + '@react-types/label': 3.9.6(react@18.3.1) + '@react-types/shared': 3.11.0(react@18.3.1) + react: 18.3.1 + + '@react-aria/live-announcer@3.4.0': + dependencies: + '@swc/helpers': 0.5.15 + + '@react-aria/selection@3.20.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/focus': 3.18.4(react@18.3.1) + '@react-aria/i18n': 3.12.3(react@18.3.1) + '@react-aria/interactions': 3.22.4(react@18.3.1) + '@react-aria/utils': 3.25.3(react@18.3.1) + '@react-stately/selection': 3.17.0(react@18.3.1) + '@react-types/shared': 3.25.0(react@18.3.1) + '@swc/helpers': 0.5.15 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@react-aria/ssr@3.1.2(react@18.3.1)': + dependencies: + '@babel/runtime': 7.9.6 + react: 18.3.1 + + '@react-aria/ssr@3.9.6(react@18.3.1)': + dependencies: + '@swc/helpers': 0.5.15 + react: 18.3.1 + + '@react-aria/table@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.9.6 + '@react-aria/focus': 3.5.1(react@18.3.1) + '@react-aria/grid': 3.10.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/i18n': 3.3.6(react@18.3.1) + '@react-aria/interactions': 3.8.0(react@18.3.1) + '@react-aria/live-announcer': 3.4.0 + '@react-aria/selection': 3.20.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.11.1(react@18.3.1) + '@react-stately/table': 3.1.1(react@18.3.1) + '@react-stately/virtualizer': 3.1.7-alpha.0(react@18.3.1) + '@react-types/checkbox': 3.2.6(react@18.3.1) + '@react-types/grid': 3.0.1(react@18.3.1) + '@react-types/shared': 3.11.0(react@18.3.1) + '@react-types/table': 3.10.2(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@react-aria/toggle@3.10.9(react@18.3.1)': + dependencies: + '@react-aria/focus': 3.18.4(react@18.3.1) + '@react-aria/interactions': 3.22.4(react@18.3.1) + '@react-aria/utils': 3.25.3(react@18.3.1) + '@react-stately/toggle': 3.7.8(react@18.3.1) + '@react-types/checkbox': 3.8.4(react@18.3.1) + '@react-types/shared': 3.25.0(react@18.3.1) + '@swc/helpers': 0.5.15 + react: 18.3.1 + + '@react-aria/utils@3.11.1(react@18.3.1)': + dependencies: + '@babel/runtime': 7.9.6 + '@react-aria/ssr': 3.1.2(react@18.3.1) + '@react-stately/utils': 3.10.4(react@18.3.1) + '@react-types/shared': 3.11.0(react@18.3.1) + clsx: 1.2.1 + react: 18.3.1 + + '@react-aria/utils@3.25.3(react@18.3.1)': + dependencies: + '@react-aria/ssr': 3.9.6(react@18.3.1) + '@react-stately/utils': 3.10.4(react@18.3.1) + '@react-types/shared': 3.25.0(react@18.3.1) + '@swc/helpers': 0.5.15 + clsx: 2.1.1 + react: 18.3.1 + + '@react-aria/visually-hidden@3.2.4(react@18.3.1)': + dependencies: + '@babel/runtime': 7.9.6 + '@react-aria/interactions': 3.8.0(react@18.3.1) + '@react-aria/utils': 3.11.1(react@18.3.1) + clsx: 1.2.1 + react: 18.3.1 + + '@react-stately/checkbox@3.0.6(react@18.3.1)': + dependencies: + '@babel/runtime': 7.9.6 + '@react-stately/toggle': 3.7.8(react@18.3.1) + '@react-stately/utils': 3.10.4(react@18.3.1) + '@react-types/checkbox': 3.2.6(react@18.3.1) + react: 18.3.1 + + '@react-stately/collections@3.11.0(react@18.3.1)': + dependencies: + '@react-types/shared': 3.25.0(react@18.3.1) + '@swc/helpers': 0.5.15 + react: 18.3.1 + + '@react-stately/data@3.4.5(react@18.3.1)': + dependencies: + '@babel/runtime': 7.9.6 + '@react-types/shared': 3.25.0(react@18.3.1) + react: 18.3.1 + + '@react-stately/grid@3.9.3(react@18.3.1)': + dependencies: + '@react-stately/collections': 3.11.0(react@18.3.1) + '@react-stately/selection': 3.17.0(react@18.3.1) + '@react-types/grid': 3.2.9(react@18.3.1) + '@react-types/shared': 3.25.0(react@18.3.1) + '@swc/helpers': 0.5.15 + react: 18.3.1 + + '@react-stately/selection@3.17.0(react@18.3.1)': + dependencies: + '@react-stately/collections': 3.11.0(react@18.3.1) + '@react-stately/utils': 3.10.4(react@18.3.1) + '@react-types/shared': 3.25.0(react@18.3.1) + '@swc/helpers': 0.5.15 + react: 18.3.1 + + '@react-stately/table@3.1.1(react@18.3.1)': + dependencies: + '@babel/runtime': 7.9.6 + '@react-stately/collections': 3.11.0(react@18.3.1) + '@react-stately/grid': 3.9.3(react@18.3.1) + '@react-stately/selection': 3.17.0(react@18.3.1) + '@react-types/grid': 3.0.1(react@18.3.1) + '@react-types/shared': 3.11.0(react@18.3.1) + '@react-types/table': 3.10.2(react@18.3.1) + react: 18.3.1 + + '@react-stately/toggle@3.2.4(react@18.3.1)': + dependencies: + '@babel/runtime': 7.9.6 + '@react-stately/utils': 3.10.4(react@18.3.1) + '@react-types/checkbox': 3.2.6(react@18.3.1) + '@react-types/shared': 3.11.0(react@18.3.1) + react: 18.3.1 + + '@react-stately/toggle@3.7.8(react@18.3.1)': + dependencies: + '@react-stately/utils': 3.10.4(react@18.3.1) + '@react-types/checkbox': 3.8.4(react@18.3.1) + '@swc/helpers': 0.5.15 + react: 18.3.1 + + '@react-stately/utils@3.10.4(react@18.3.1)': + dependencies: + '@swc/helpers': 0.5.15 + react: 18.3.1 + + '@react-stately/virtualizer@3.1.7-alpha.0(react@18.3.1)': + dependencies: + '@babel/runtime': 7.9.6 + '@react-aria/utils': 3.11.1(react@18.3.1) + '@react-types/shared': 3.11.0(react@18.3.1) + react: 18.3.1 + + '@react-types/button@3.10.0(react@18.3.1)': + dependencies: + '@react-types/shared': 3.25.0(react@18.3.1) + react: 18.3.1 + + '@react-types/checkbox@3.2.6(react@18.3.1)': + dependencies: + '@react-types/shared': 3.25.0(react@18.3.1) + react: 18.3.1 + + '@react-types/checkbox@3.8.4(react@18.3.1)': + dependencies: + '@react-types/shared': 3.25.0(react@18.3.1) + react: 18.3.1 + + '@react-types/grid@3.0.1(react@18.3.1)': + dependencies: + '@react-types/shared': 3.11.0(react@18.3.1) + react: 18.3.1 + + '@react-types/grid@3.2.9(react@18.3.1)': + dependencies: + '@react-types/shared': 3.25.0(react@18.3.1) + react: 18.3.1 + + '@react-types/label@3.9.6(react@18.3.1)': + dependencies: + '@react-types/shared': 3.25.0(react@18.3.1) + react: 18.3.1 + + '@react-types/shared@3.11.0(react@18.3.1)': + dependencies: + react: 18.3.1 + + '@react-types/shared@3.25.0(react@18.3.1)': + dependencies: + react: 18.3.1 + + '@react-types/table@3.10.2(react@18.3.1)': + dependencies: + '@react-types/grid': 3.2.9(react@18.3.1) + '@react-types/shared': 3.25.0(react@18.3.1) + react: 18.3.1 + + '@reown/appkit-adapter-ethers@1.4.1(@coinbase/wallet-sdk@4.0.0)(@ethersproject/sha2@5.7.0)(@types/react@17.0.2)(bufferutil@4.0.8)(ethers@6.13.4(bufferutil@4.0.8)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)': + dependencies: + '@coinbase/wallet-sdk': 4.0.0 + '@ethersproject/sha2': 5.7.0 + '@reown/appkit': 1.4.1(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + '@reown/appkit-common': 1.4.1(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + '@reown/appkit-core': 1.4.1(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + '@reown/appkit-polyfills': 1.4.1 + '@reown/appkit-scaffold-ui': 1.4.1(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(valtio@1.11.2(@types/react@17.0.2)(react@18.3.1))(zod@3.22.4) + '@reown/appkit-siwe': 1.4.1(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + '@reown/appkit-ui': 1.4.1 + '@reown/appkit-utils': 1.4.1(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(valtio@1.11.2(@types/react@17.0.2)(react@18.3.1))(zod@3.22.4) + '@reown/appkit-wallet': 1.4.1(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10) + '@walletconnect/universal-provider': 2.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@walletconnect/utils': 2.17.0 + ethers: 6.13.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) + valtio: 1.11.2(@types/react@17.0.2)(react@18.3.1) + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@types/react' + - '@upstash/redis' + - '@vercel/kv' + - bufferutil + - encoding + - ioredis + - react + - typescript + - utf-8-validate + - zod + + '@reown/appkit-common@1.4.1(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)': + dependencies: + bignumber.js: 9.1.2 + dayjs: 1.11.10 + viem: 2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + transitivePeerDependencies: + - bufferutil + - typescript + - utf-8-validate + - zod + + '@reown/appkit-common@1.5.2(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)': + dependencies: + bignumber.js: 9.1.2 + dayjs: 1.11.10 + viem: 2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + transitivePeerDependencies: + - bufferutil + - typescript + - utf-8-validate + - zod + + '@reown/appkit-common@1.5.3(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)': + dependencies: + bignumber.js: 9.1.2 + dayjs: 1.11.10 + viem: 2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + transitivePeerDependencies: + - bufferutil + - typescript + - utf-8-validate + - zod + + '@reown/appkit-core@1.4.1(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)': + dependencies: + '@reown/appkit-common': 1.4.1(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + '@reown/appkit-wallet': 1.4.1(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10) + '@walletconnect/universal-provider': 2.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + valtio: 1.11.2(@types/react@17.0.2)(react@18.3.1) + viem: 2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@types/react' + - '@upstash/redis' + - '@vercel/kv' + - bufferutil + - encoding + - ioredis + - react + - typescript + - utf-8-validate + - zod + + '@reown/appkit-core@1.5.3(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)': + dependencies: + '@reown/appkit-common': 1.5.3(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + '@reown/appkit-wallet': 1.5.3(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10) + '@walletconnect/universal-provider': 2.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + valtio: 1.11.2(@types/react@17.0.2)(react@18.3.1) + viem: 2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@types/react' + - '@upstash/redis' + - '@vercel/kv' + - bufferutil + - encoding + - ioredis + - react + - typescript + - utf-8-validate + - zod + + '@reown/appkit-polyfills@1.4.1': + dependencies: + buffer: 6.0.3 + + '@reown/appkit-polyfills@1.5.2': + dependencies: + buffer: 6.0.3 + + '@reown/appkit-polyfills@1.5.3': + dependencies: + buffer: 6.0.3 + + '@reown/appkit-scaffold-ui@1.4.1(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(valtio@1.11.2(@types/react@17.0.2)(react@18.3.1))(zod@3.22.4)': + dependencies: + '@reown/appkit-common': 1.4.1(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + '@reown/appkit-core': 1.4.1(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + '@reown/appkit-siwe': 1.4.1(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + '@reown/appkit-ui': 1.4.1 + '@reown/appkit-utils': 1.4.1(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(valtio@1.11.2(@types/react@17.0.2)(react@18.3.1))(zod@3.22.4) + '@reown/appkit-wallet': 1.4.1(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10) + lit: 3.1.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@types/react' + - '@upstash/redis' + - '@vercel/kv' + - bufferutil + - encoding + - ioredis + - react + - typescript + - utf-8-validate + - valtio + - zod + + '@reown/appkit-scaffold-ui@1.5.3(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(valtio@1.11.2(@types/react@17.0.2)(react@18.3.1))(zod@3.22.4)': + dependencies: + '@reown/appkit-common': 1.5.3(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + '@reown/appkit-core': 1.5.3(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + '@reown/appkit-ui': 1.5.3 + '@reown/appkit-utils': 1.5.3(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(valtio@1.11.2(@types/react@17.0.2)(react@18.3.1))(zod@3.22.4) + '@reown/appkit-wallet': 1.5.3(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10) + lit: 3.1.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@types/react' + - '@upstash/redis' + - '@vercel/kv' + - bufferutil + - encoding + - ioredis + - react + - typescript + - utf-8-validate + - valtio + - zod + + '@reown/appkit-siwe@1.4.1(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)': + dependencies: + '@reown/appkit-common': 1.4.1(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + '@reown/appkit-core': 1.4.1(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + '@reown/appkit-ui': 1.4.1 + '@reown/appkit-utils': 1.4.1(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(valtio@1.11.2(@types/react@17.0.2)(react@18.3.1))(zod@3.22.4) + '@reown/appkit-wallet': 1.4.1(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10) + '@walletconnect/utils': 2.17.0 + lit: 3.1.0 + valtio: 1.11.2(@types/react@17.0.2)(react@18.3.1) + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@types/react' + - '@upstash/redis' + - '@vercel/kv' + - bufferutil + - encoding + - ioredis + - react + - typescript + - utf-8-validate + - zod + + '@reown/appkit-siwe@1.5.3(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)': + dependencies: + '@reown/appkit-common': 1.5.3(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + '@reown/appkit-core': 1.5.3(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + '@reown/appkit-ui': 1.5.3 + '@reown/appkit-utils': 1.5.3(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(valtio@1.11.2(@types/react@17.0.2)(react@18.3.1))(zod@3.22.4) + '@reown/appkit-wallet': 1.5.3(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10) + '@walletconnect/utils': 2.17.0 + lit: 3.1.0 + valtio: 1.11.2(@types/react@17.0.2)(react@18.3.1) + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@types/react' + - '@upstash/redis' + - '@vercel/kv' + - bufferutil + - encoding + - ioredis + - react + - typescript + - utf-8-validate + - zod + + '@reown/appkit-ui@1.4.1': + dependencies: + lit: 3.1.0 + qrcode: 1.5.3 + + '@reown/appkit-ui@1.5.3': + dependencies: + lit: 3.1.0 + qrcode: 1.5.3 + + '@reown/appkit-utils@1.4.1(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(valtio@1.11.2(@types/react@17.0.2)(react@18.3.1))(zod@3.22.4)': + dependencies: + '@reown/appkit-common': 1.4.1(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + '@reown/appkit-core': 1.4.1(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + '@reown/appkit-polyfills': 1.4.1 + '@reown/appkit-wallet': 1.4.1(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10) + '@walletconnect/logger': 2.1.2 + '@walletconnect/universal-provider': 2.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + valtio: 1.11.2(@types/react@17.0.2)(react@18.3.1) + viem: 2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@types/react' + - '@upstash/redis' + - '@vercel/kv' + - bufferutil + - encoding + - ioredis + - react + - typescript + - utf-8-validate + - zod + + '@reown/appkit-utils@1.5.3(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(valtio@1.11.2(@types/react@17.0.2)(react@18.3.1))(zod@3.22.4)': + dependencies: + '@reown/appkit-common': 1.5.3(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + '@reown/appkit-core': 1.5.3(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + '@reown/appkit-polyfills': 1.5.3 + '@reown/appkit-wallet': 1.5.3(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10) + '@walletconnect/logger': 2.1.2 + '@walletconnect/universal-provider': 2.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + valtio: 1.11.2(@types/react@17.0.2)(react@18.3.1) + viem: 2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@types/react' + - '@upstash/redis' + - '@vercel/kv' + - bufferutil + - encoding + - ioredis + - react + - typescript + - utf-8-validate + - zod + + '@reown/appkit-wallet@1.4.1(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)': + dependencies: + '@reown/appkit-common': 1.4.1(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + '@reown/appkit-polyfills': 1.4.1 + '@walletconnect/logger': 2.1.2 + zod: 3.22.4 + transitivePeerDependencies: + - bufferutil + - typescript + - utf-8-validate + + '@reown/appkit-wallet@1.5.2(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)': + dependencies: + '@reown/appkit-common': 1.5.2(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + '@reown/appkit-polyfills': 1.5.2 + '@walletconnect/logger': 2.1.2 + zod: 3.22.4 + transitivePeerDependencies: + - bufferutil + - typescript + - utf-8-validate + + '@reown/appkit-wallet@1.5.3(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)': + dependencies: + '@reown/appkit-common': 1.5.3(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + '@reown/appkit-polyfills': 1.5.3 + '@walletconnect/logger': 2.1.2 + zod: 3.22.4 + transitivePeerDependencies: + - bufferutil + - typescript + - utf-8-validate + + '@reown/appkit@1.4.1(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)': + dependencies: + '@reown/appkit-common': 1.4.1(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + '@reown/appkit-core': 1.4.1(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + '@reown/appkit-polyfills': 1.4.1 + '@reown/appkit-scaffold-ui': 1.4.1(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(valtio@1.11.2(@types/react@17.0.2)(react@18.3.1))(zod@3.22.4) + '@reown/appkit-siwe': 1.4.1(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + '@reown/appkit-ui': 1.4.1 + '@reown/appkit-utils': 1.4.1(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(valtio@1.11.2(@types/react@17.0.2)(react@18.3.1))(zod@3.22.4) + '@reown/appkit-wallet': 1.4.1(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10) + '@walletconnect/types': 2.17.0 + '@walletconnect/universal-provider': 2.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@walletconnect/utils': 2.17.0 + bs58: 6.0.0 + valtio: 1.11.2(@types/react@17.0.2)(react@18.3.1) + viem: 2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@types/react' + - '@upstash/redis' + - '@vercel/kv' + - bufferutil + - encoding + - ioredis + - react + - typescript + - utf-8-validate + - zod + + '@reown/appkit@1.5.3(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)': + dependencies: + '@reown/appkit-common': 1.5.3(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + '@reown/appkit-core': 1.5.3(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + '@reown/appkit-polyfills': 1.5.3 + '@reown/appkit-scaffold-ui': 1.5.3(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(valtio@1.11.2(@types/react@17.0.2)(react@18.3.1))(zod@3.22.4) + '@reown/appkit-siwe': 1.5.3(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + '@reown/appkit-ui': 1.5.3 + '@reown/appkit-utils': 1.5.3(@types/react@17.0.2)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.2.2)(utf-8-validate@5.0.10)(valtio@1.11.2(@types/react@17.0.2)(react@18.3.1))(zod@3.22.4) + '@reown/appkit-wallet': 1.5.3(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10) + '@walletconnect/types': 2.17.0 + '@walletconnect/universal-provider': 2.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@walletconnect/utils': 2.17.0 + bs58: 6.0.0 + valtio: 1.11.2(@types/react@17.0.2)(react@18.3.1) + viem: 2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@types/react' + - '@upstash/redis' + - '@vercel/kv' + - bufferutil + - encoding + - ioredis + - react + - typescript + - utf-8-validate + - zod + + '@reown/walletkit@1.1.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@walletconnect/core': 2.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@walletconnect/jsonrpc-provider': 1.0.14 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/logger': 2.1.2 + '@walletconnect/sign-client': 2.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@walletconnect/types': 2.17.1 + '@walletconnect/utils': 2.17.1 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' + - bufferutil + - ioredis + - utf-8-validate + + '@rtsao/scc@1.1.0': {} + + '@rushstack/eslint-patch@1.10.4': {} + + '@scure/base@1.1.1': {} + + '@scure/base@1.1.9': {} + + '@scure/bip32@1.3.2': + dependencies: + '@noble/curves': 1.2.0 + '@noble/hashes': 1.3.2 + '@scure/base': 1.1.9 + + '@scure/bip32@1.4.0': + dependencies: + '@noble/curves': 1.4.2 + '@noble/hashes': 1.4.0 + '@scure/base': 1.1.9 + + '@scure/bip39@1.2.1': + dependencies: + '@noble/hashes': 1.3.2 + '@scure/base': 1.1.9 + + '@scure/bip39@1.3.0': + dependencies: + '@noble/hashes': 1.4.0 + '@scure/base': 1.1.9 + + '@solana/buffer-layout@4.0.1': + dependencies: + buffer: 6.0.3 + + '@solana/web3.js@1.89.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@babel/runtime': 7.26.0 + '@noble/curves': 1.6.0 + '@noble/hashes': 1.5.0 + '@solana/buffer-layout': 4.0.1 + agentkeepalive: 4.5.0 + bigint-buffer: 1.1.5 + bn.js: 5.2.1 + borsh: 0.7.0 + bs58: 4.0.1 + buffer: 6.0.3 + fast-stable-stringify: 1.0.0 + jayson: 4.1.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + node-fetch: 2.7.0 + rpc-websockets: 7.11.2 + superstruct: 0.14.2 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@stablelib/aead@1.0.1': {} + + '@stablelib/binary@1.0.1': + dependencies: + '@stablelib/int': 1.0.1 + + '@stablelib/blake2b@1.0.1': + dependencies: + '@stablelib/binary': 1.0.1 + '@stablelib/hash': 1.0.1 + '@stablelib/wipe': 1.0.1 + + '@stablelib/bytes@1.0.1': {} + + '@stablelib/chacha20poly1305@1.0.1': + dependencies: + '@stablelib/aead': 1.0.1 + '@stablelib/binary': 1.0.1 + '@stablelib/chacha': 1.0.1 + '@stablelib/constant-time': 1.0.1 + '@stablelib/poly1305': 1.0.1 + '@stablelib/wipe': 1.0.1 + + '@stablelib/chacha@1.0.1': + dependencies: + '@stablelib/binary': 1.0.1 + '@stablelib/wipe': 1.0.1 + + '@stablelib/constant-time@1.0.1': {} + + '@stablelib/ed25519@1.0.3': + dependencies: + '@stablelib/random': 1.0.2 + '@stablelib/sha512': 1.0.1 + '@stablelib/wipe': 1.0.1 + + '@stablelib/hash@1.0.1': {} + + '@stablelib/hkdf@1.0.1': + dependencies: + '@stablelib/hash': 1.0.1 + '@stablelib/hmac': 1.0.1 + '@stablelib/wipe': 1.0.1 + + '@stablelib/hmac@1.0.1': + dependencies: + '@stablelib/constant-time': 1.0.1 + '@stablelib/hash': 1.0.1 + '@stablelib/wipe': 1.0.1 + + '@stablelib/int@1.0.1': {} + + '@stablelib/keyagreement@1.0.1': + dependencies: + '@stablelib/bytes': 1.0.1 + + '@stablelib/nacl@1.0.4': + dependencies: + '@stablelib/poly1305': 1.0.1 + '@stablelib/random': 1.0.2 + '@stablelib/wipe': 1.0.1 + '@stablelib/x25519': 1.0.3 + '@stablelib/xsalsa20': 1.0.2 + + '@stablelib/pbkdf2@1.0.1': + dependencies: + '@stablelib/binary': 1.0.1 + '@stablelib/hash': 1.0.1 + '@stablelib/hmac': 1.0.1 + '@stablelib/wipe': 1.0.1 + + '@stablelib/poly1305@1.0.1': + dependencies: + '@stablelib/constant-time': 1.0.1 + '@stablelib/wipe': 1.0.1 + + '@stablelib/random@1.0.2': + dependencies: + '@stablelib/binary': 1.0.1 + '@stablelib/wipe': 1.0.1 + + '@stablelib/salsa20@1.0.2': + dependencies: + '@stablelib/binary': 1.0.1 + '@stablelib/constant-time': 1.0.1 + '@stablelib/wipe': 1.0.1 + + '@stablelib/sha256@1.0.1': + dependencies: + '@stablelib/binary': 1.0.1 + '@stablelib/hash': 1.0.1 + '@stablelib/wipe': 1.0.1 + + '@stablelib/sha512@1.0.1': + dependencies: + '@stablelib/binary': 1.0.1 + '@stablelib/hash': 1.0.1 + '@stablelib/wipe': 1.0.1 + + '@stablelib/wipe@1.0.1': {} + + '@stablelib/x25519@1.0.3': + dependencies: + '@stablelib/keyagreement': 1.0.1 + '@stablelib/random': 1.0.2 + '@stablelib/wipe': 1.0.1 + + '@stablelib/xsalsa20@1.0.2': + dependencies: + '@stablelib/binary': 1.0.1 + '@stablelib/salsa20': 1.0.2 + '@stablelib/wipe': 1.0.1 + + '@stitches/react@1.2.7(react@18.3.1)': + dependencies: + react: 18.3.1 + + '@substrate/ss58-registry@1.51.0': {} + + '@swc/helpers@0.5.15': + dependencies: + tslib: 2.8.1 + + '@swc/helpers@0.5.2': + dependencies: + tslib: 2.8.1 + + '@taquito/axios-fetch-adapter@https://codeload.github.com/ecadlabs/axios-fetch-adapter/tar.gz/167684f522e90343b9f3439d9a43ac571e2396f6(axios@0.26.1)': + dependencies: + axios: 0.26.1 + + '@taquito/http-utils@15.1.0': + dependencies: + '@vespaiach/axios-fetch-adapter': '@taquito/axios-fetch-adapter@https://codeload.github.com/ecadlabs/axios-fetch-adapter/tar.gz/167684f522e90343b9f3439d9a43ac571e2396f6(axios@0.26.1)' + axios: 0.26.1 + transitivePeerDependencies: + - debug + + '@taquito/local-forging@15.1.0': + dependencies: + '@taquito/utils': 15.1.0 + bignumber.js: 9.1.2 + + '@taquito/michel-codec@15.1.0': {} + + '@taquito/michelson-encoder@15.1.0': + dependencies: + '@taquito/rpc': 15.1.0 + '@taquito/utils': 15.1.0 + bignumber.js: 9.1.2 + fast-json-stable-stringify: 2.1.0 + transitivePeerDependencies: + - debug + + '@taquito/rpc@15.1.0': + dependencies: + '@taquito/http-utils': 15.1.0 + '@taquito/utils': 15.1.0 + bignumber.js: 9.1.2 + transitivePeerDependencies: + - debug + + '@taquito/signer@15.1.0': + dependencies: + '@stablelib/blake2b': 1.0.1 + '@stablelib/ed25519': 1.0.3 + '@stablelib/hmac': 1.0.1 + '@stablelib/nacl': 1.0.4 + '@stablelib/pbkdf2': 1.0.1 + '@stablelib/sha512': 1.0.1 + '@taquito/taquito': 15.1.0 + '@taquito/utils': 15.1.0 + '@types/bn.js': 5.1.6 + bip39: 3.1.0 + elliptic: 6.6.1 + pbkdf2: 3.1.2 + typedarray-to-buffer: 4.0.0 + transitivePeerDependencies: + - debug + + '@taquito/taquito@15.1.0': + dependencies: + '@taquito/http-utils': 15.1.0 + '@taquito/local-forging': 15.1.0 + '@taquito/michel-codec': 15.1.0 + '@taquito/michelson-encoder': 15.1.0 + '@taquito/rpc': 15.1.0 + '@taquito/utils': 15.1.0 + bignumber.js: 9.1.2 + rxjs: 6.6.7 + transitivePeerDependencies: + - debug + + '@taquito/utils@15.1.0': + dependencies: + '@stablelib/blake2b': 1.0.1 + '@stablelib/ed25519': 1.0.3 + '@types/bs58check': 2.1.2 + bignumber.js: 9.1.2 + blakejs: 1.2.1 + bs58check: 2.1.2 + buffer: 6.0.3 + elliptic: 6.6.1 + typedarray-to-buffer: 4.0.0 + + '@types/bn.js@5.1.6': + dependencies: + '@types/node': 17.0.35 + + '@types/bs58check@2.1.2': + dependencies: + '@types/node': 17.0.35 + + '@types/connect@3.4.38': + dependencies: + '@types/node': 17.0.35 + + '@types/glob@7.2.0': + dependencies: + '@types/minimatch': 5.1.2 + '@types/node': 17.0.35 + + '@types/hast@2.3.10': + dependencies: + '@types/unist': 2.0.11 + + '@types/json-schema@7.0.15': {} + + '@types/json5@0.0.29': {} + + '@types/minimatch@5.1.2': {} + + '@types/node@11.11.6': {} + + '@types/node@12.20.55': {} + + '@types/node@17.0.35': {} + + '@types/node@22.7.5': + dependencies: + undici-types: 6.19.8 + + '@types/parse-json@4.0.2': {} + + '@types/prop-types@15.7.13': {} + + '@types/react-transition-group@4.4.11': + dependencies: + '@types/react': 17.0.2 + + '@types/react@17.0.2': + dependencies: + '@types/prop-types': 15.7.13 + csstype: 3.1.3 + + '@types/semver@7.5.8': {} + + '@types/stylis@4.2.5': {} + + '@types/trusted-types@2.0.7': {} + + '@types/unist@2.0.11': {} + + '@types/ws@7.4.7': + dependencies: + '@types/node': 17.0.35 + + '@typescript-eslint/parser@6.21.0(eslint@8.15.0)(typescript@5.2.2)': + dependencies: + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.3.7 + eslint: 8.15.0 + optionalDependencies: + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@6.21.0': + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + + '@typescript-eslint/types@6.21.0': {} + + '@typescript-eslint/typescript-estree@6.21.0(typescript@5.2.2)': + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.3.7 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.6.3 + ts-api-utils: 1.4.0(typescript@5.2.2) + optionalDependencies: + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@6.21.0': + dependencies: + '@typescript-eslint/types': 6.21.0 + eslint-visitor-keys: 3.4.3 + + '@walletconnect/core@2.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@walletconnect/heartbeat': 1.2.2 + '@walletconnect/jsonrpc-provider': 1.0.14 + '@walletconnect/jsonrpc-types': 1.0.4 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/jsonrpc-ws-connection': 1.0.14(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@walletconnect/keyvaluestorage': 1.1.1 + '@walletconnect/logger': 2.1.2 + '@walletconnect/relay-api': 1.0.11 + '@walletconnect/relay-auth': 1.0.4 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.17.0 + '@walletconnect/utils': 2.17.0 + events: 3.3.0 + lodash.isequal: 4.5.0 + uint8arrays: 3.1.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' + - bufferutil + - ioredis + - utf-8-validate + + '@walletconnect/core@2.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@walletconnect/heartbeat': 1.2.2 + '@walletconnect/jsonrpc-provider': 1.0.14 + '@walletconnect/jsonrpc-types': 1.0.4 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/jsonrpc-ws-connection': 1.0.14(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@walletconnect/keyvaluestorage': 1.1.1 + '@walletconnect/logger': 2.1.2 + '@walletconnect/relay-api': 1.0.11 + '@walletconnect/relay-auth': 1.0.4 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.17.1 + '@walletconnect/utils': 2.17.1 + '@walletconnect/window-getters': 1.0.1 + events: 3.3.0 + lodash.isequal: 4.5.0 + uint8arrays: 3.1.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' + - bufferutil + - ioredis + - utf-8-validate + + '@walletconnect/core@2.17.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@walletconnect/heartbeat': 1.2.2 + '@walletconnect/jsonrpc-provider': 1.0.14 + '@walletconnect/jsonrpc-types': 1.0.4 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/jsonrpc-ws-connection': 1.0.14(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@walletconnect/keyvaluestorage': 1.1.1 + '@walletconnect/logger': 2.1.2 + '@walletconnect/relay-api': 1.0.11 + '@walletconnect/relay-auth': 1.0.4 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.17.2 + '@walletconnect/utils': 2.17.2 + '@walletconnect/window-getters': 1.0.1 + events: 3.3.0 + lodash.isequal: 4.5.0 + uint8arrays: 3.1.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' + - bufferutil + - ioredis + - utf-8-validate + + '@walletconnect/environment@1.0.1': + dependencies: + tslib: 1.14.1 + + '@walletconnect/events@1.0.1': + dependencies: + keyvaluestorage-interface: 1.0.0 + tslib: 1.14.1 + + '@walletconnect/heartbeat@1.2.2': + dependencies: + '@walletconnect/events': 1.0.1 + '@walletconnect/time': 1.0.2 + events: 3.3.0 + + '@walletconnect/jsonrpc-http-connection@1.0.8': + dependencies: + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/safe-json': 1.0.2 + cross-fetch: 3.1.8 + events: 3.3.0 + transitivePeerDependencies: + - encoding + + '@walletconnect/jsonrpc-provider@1.0.14': + dependencies: + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/safe-json': 1.0.2 + events: 3.3.0 + + '@walletconnect/jsonrpc-types@1.0.4': + dependencies: + events: 3.3.0 + keyvaluestorage-interface: 1.0.0 + + '@walletconnect/jsonrpc-utils@1.0.8': + dependencies: + '@walletconnect/environment': 1.0.1 + '@walletconnect/jsonrpc-types': 1.0.4 + tslib: 1.14.1 + + '@walletconnect/jsonrpc-ws-connection@1.0.14(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/safe-json': 1.0.2 + events: 3.3.0 + ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@walletconnect/keyvaluestorage@1.1.1': + dependencies: + '@walletconnect/safe-json': 1.0.2 + idb-keyval: 6.2.1 + unstorage: 1.13.1(idb-keyval@6.2.1) + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@upstash/redis' + - '@vercel/kv' + - ioredis + + '@walletconnect/logger@2.1.2': + dependencies: + '@walletconnect/safe-json': 1.0.2 + pino: 7.11.0 + + '@walletconnect/relay-api@1.0.11': + dependencies: + '@walletconnect/jsonrpc-types': 1.0.4 + + '@walletconnect/relay-auth@1.0.4': + dependencies: + '@stablelib/ed25519': 1.0.3 + '@stablelib/random': 1.0.2 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/time': 1.0.2 + tslib: 1.14.1 + uint8arrays: 3.1.0 + + '@walletconnect/safe-json@1.0.2': + dependencies: + tslib: 1.14.1 + + '@walletconnect/sign-client@2.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@walletconnect/core': 2.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@walletconnect/events': 1.0.1 + '@walletconnect/heartbeat': 1.2.2 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/logger': 2.1.2 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.17.0 + '@walletconnect/utils': 2.17.0 + events: 3.3.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' + - bufferutil + - ioredis + - utf-8-validate + + '@walletconnect/sign-client@2.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@walletconnect/core': 2.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@walletconnect/events': 1.0.1 + '@walletconnect/heartbeat': 1.2.2 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/logger': 2.1.2 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.17.1 + '@walletconnect/utils': 2.17.1 + events: 3.3.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' + - bufferutil + - ioredis + - utf-8-validate + + '@walletconnect/time@1.0.2': + dependencies: + tslib: 1.14.1 + + '@walletconnect/types@2.17.0': + dependencies: + '@walletconnect/events': 1.0.1 + '@walletconnect/heartbeat': 1.2.2 + '@walletconnect/jsonrpc-types': 1.0.4 + '@walletconnect/keyvaluestorage': 1.1.1 + '@walletconnect/logger': 2.1.2 + events: 3.3.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' + - ioredis + + '@walletconnect/types@2.17.1': + dependencies: + '@walletconnect/events': 1.0.1 + '@walletconnect/heartbeat': 1.2.2 + '@walletconnect/jsonrpc-types': 1.0.4 + '@walletconnect/keyvaluestorage': 1.1.1 + '@walletconnect/logger': 2.1.2 + events: 3.3.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' + - ioredis + + '@walletconnect/types@2.17.2': + dependencies: + '@walletconnect/events': 1.0.1 + '@walletconnect/heartbeat': 1.2.2 + '@walletconnect/jsonrpc-types': 1.0.4 + '@walletconnect/keyvaluestorage': 1.1.1 + '@walletconnect/logger': 2.1.2 + events: 3.3.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' + - ioredis + + '@walletconnect/universal-provider@2.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@walletconnect/jsonrpc-http-connection': 1.0.8 + '@walletconnect/jsonrpc-provider': 1.0.14 + '@walletconnect/jsonrpc-types': 1.0.4 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/logger': 2.1.2 + '@walletconnect/sign-client': 2.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@walletconnect/types': 2.17.0 + '@walletconnect/utils': 2.17.0 + events: 3.3.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' + - bufferutil + - encoding + - ioredis + - utf-8-validate + + '@walletconnect/utils@2.17.0': + dependencies: + '@stablelib/chacha20poly1305': 1.0.1 + '@stablelib/hkdf': 1.0.1 + '@stablelib/random': 1.0.2 + '@stablelib/sha256': 1.0.1 + '@stablelib/x25519': 1.0.3 + '@walletconnect/relay-api': 1.0.11 + '@walletconnect/relay-auth': 1.0.4 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.17.0 + '@walletconnect/window-getters': 1.0.1 + '@walletconnect/window-metadata': 1.0.1 + detect-browser: 5.3.0 + elliptic: 6.6.1 + query-string: 7.1.3 + uint8arrays: 3.1.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' + - ioredis + + '@walletconnect/utils@2.17.1': + dependencies: + '@ethersproject/hash': 5.7.0 + '@ethersproject/transactions': 5.7.0 + '@stablelib/chacha20poly1305': 1.0.1 + '@stablelib/hkdf': 1.0.1 + '@stablelib/random': 1.0.2 + '@stablelib/sha256': 1.0.1 + '@stablelib/x25519': 1.0.3 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/keyvaluestorage': 1.1.1 + '@walletconnect/relay-api': 1.0.11 + '@walletconnect/relay-auth': 1.0.4 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.17.1 + '@walletconnect/window-getters': 1.0.1 + '@walletconnect/window-metadata': 1.0.1 + detect-browser: 5.3.0 + elliptic: 6.5.7 + query-string: 7.1.3 + uint8arrays: 3.1.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' + - ioredis + + '@walletconnect/utils@2.17.2': + dependencies: + '@ethersproject/hash': 5.7.0 + '@ethersproject/transactions': 5.7.0 + '@stablelib/chacha20poly1305': 1.0.1 + '@stablelib/hkdf': 1.0.1 + '@stablelib/random': 1.0.2 + '@stablelib/sha256': 1.0.1 + '@stablelib/x25519': 1.0.3 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/keyvaluestorage': 1.1.1 + '@walletconnect/relay-api': 1.0.11 + '@walletconnect/relay-auth': 1.0.4 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.17.2 + '@walletconnect/window-getters': 1.0.1 + '@walletconnect/window-metadata': 1.0.1 + detect-browser: 5.3.0 + elliptic: 6.6.0 + query-string: 7.1.3 + uint8arrays: 3.1.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' + - ioredis + + '@walletconnect/window-getters@1.0.1': + dependencies: + tslib: 1.14.1 + + '@walletconnect/window-metadata@1.0.1': + dependencies: + '@walletconnect/window-getters': 1.0.1 + tslib: 1.14.1 + + '@zerodev/ecdsa-validator@5.2.3(@zerodev/sdk@5.2.11(permissionless@0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(permissionless@0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4))': + dependencies: + '@zerodev/sdk': 5.2.11(permissionless@0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)) + permissionless: 0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)) + viem: 2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + + '@zerodev/presets@5.2.2(@zerodev/ecdsa-validator@5.2.3(@zerodev/sdk@5.2.11(permissionless@0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(permissionless@0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(@zerodev/sdk@5.2.11(permissionless@0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(permissionless@0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(typescript@5.2.2)(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4))': + dependencies: + '@zerodev/ecdsa-validator': 5.2.3(@zerodev/sdk@5.2.11(permissionless@0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(permissionless@0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)) + '@zerodev/sdk': 5.2.11(permissionless@0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)) + permissionless: 0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)) + typescript: 5.2.2 + viem: 2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + + '@zerodev/sdk@5.2.11(permissionless@0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4))': + dependencies: + permissionless: 0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)) + semver: 7.6.3 + viem: 2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + + '@zerodev/session-key@5.2.2(@zerodev/sdk@5.2.11(permissionless@0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(permissionless@0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4))': + dependencies: + '@zerodev/sdk': 5.2.11(permissionless@0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)) + merkletreejs: 0.3.11 + permissionless: 0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)) + viem: 2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + + '@zerodev/weighted-ecdsa-validator@5.2.4(@zerodev/sdk@5.2.11(permissionless@0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(permissionless@0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4))': + dependencies: + '@zerodev/sdk': 5.2.11(permissionless@0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)))(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)) + permissionless: 0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)) + viem: 2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + + JSONStream@1.3.5: + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + + abitype@1.0.0(typescript@5.2.2)(zod@3.22.4): + optionalDependencies: + typescript: 5.2.2 + zod: 3.22.4 + + acorn-jsx@5.3.2(acorn@8.14.0): + dependencies: + acorn: 8.14.0 + + acorn@8.14.0: {} + + aes-js@4.0.0-beta.5: {} + + agentkeepalive@4.5.0: + dependencies: + humanize-ms: 1.2.1 + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ansi-regex@5.0.1: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + argparse@2.0.1: {} + + aria-query@5.3.2: {} + + array-buffer-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + is-array-buffer: 3.0.4 + + array-includes@3.1.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + is-string: 1.0.7 + + array-union@2.1.0: {} + + array.prototype.findlast@1.2.5: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + + array.prototype.findlastindex@1.2.5: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + + array.prototype.flat@1.3.2: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-shim-unscopables: 1.0.2 + + array.prototype.flatmap@1.3.2: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-shim-unscopables: 1.0.2 + + array.prototype.tosorted@1.1.4: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-errors: 1.3.0 + es-shim-unscopables: 1.0.2 + + arraybuffer.prototype.slice@1.0.3: + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + is-array-buffer: 3.0.4 + is-shared-array-buffer: 1.0.3 + + ast-types-flow@0.0.8: {} + + atomic-sleep@1.0.0: {} + + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.0.0 + + axe-core@4.10.2: {} + + axios@0.26.1: + dependencies: + follow-redirects: 1.15.9 + transitivePeerDependencies: + - debug + + axobject-query@4.1.0: {} + + babel-plugin-macros@3.1.0: + dependencies: + '@babel/runtime': 7.26.0 + cosmiconfig: 7.1.0 + resolve: 1.22.8 + + backslash@0.2.0: {} + + balanced-match@1.0.2: {} + + base-x@2.0.6: + dependencies: + safe-buffer: 5.2.1 + + base-x@3.0.10: + dependencies: + safe-buffer: 5.2.1 + + base-x@4.0.0: {} + + base-x@5.0.0: {} + + base64-js@1.5.1: {} + + bech32@1.1.4: {} + + bech32@2.0.0: {} + + bigint-buffer@1.1.5: + dependencies: + bindings: 1.5.0 + + bignumber.js@9.0.1: {} + + bignumber.js@9.1.2: {} + + binary-extensions@2.3.0: {} + + bindings@1.5.0: + dependencies: + file-uri-to-path: 1.0.0 + + bip39@3.0.2: + dependencies: + '@types/node': 11.11.6 + create-hash: 1.2.0 + pbkdf2: 3.1.2 + randombytes: 2.1.0 + + bip39@3.1.0: + dependencies: + '@noble/hashes': 1.5.0 + + blake2b-wasm@1.1.7: + dependencies: + nanoassert: 1.1.0 + + blake2b@2.1.3: + dependencies: + blake2b-wasm: 1.1.7 + nanoassert: 1.1.0 + + blakejs@1.2.1: {} + + bn.js@4.11.6: {} + + bn.js@4.12.1: {} + + bn.js@5.2.1: {} + + borsh@0.7.0: + dependencies: + bn.js: 5.2.1 + bs58: 4.0.1 + text-encoding-utf-8: 1.0.2 + + borsh@1.0.0: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + brorand@1.1.0: {} + + bs58@4.0.0: + dependencies: + base-x: 2.0.6 + + bs58@4.0.1: + dependencies: + base-x: 3.0.10 + + bs58@5.0.0: + dependencies: + base-x: 4.0.0 + + bs58@6.0.0: + dependencies: + base-x: 5.0.0 + + bs58check@2.1.2: + dependencies: + bs58: 4.0.1 + create-hash: 1.2.0 + safe-buffer: 5.2.1 + + buffer-reverse@1.0.1: {} + + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + bufferutil@4.0.8: + dependencies: + node-gyp-build: 4.8.3 + optional: true + + busboy@1.6.0: + dependencies: + streamsearch: 1.1.0 + + call-bind@1.0.7: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + + callsites@3.1.0: {} + + camelcase@5.3.1: {} + + camelize@1.0.1: {} + + caniuse-lite@1.0.30001680: {} + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + character-entities-legacy@1.1.4: {} + + character-entities@1.2.4: {} + + character-reference-invalid@1.1.4: {} + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + cipher-base@1.0.5: + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + + citty@0.1.6: + dependencies: + consola: 3.2.3 + + client-only@0.0.1: {} + + clipboardy@4.0.0: + dependencies: + execa: 8.0.1 + is-wsl: 3.1.0 + is64bit: 2.0.0 + + cliui@6.0.0: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + + clsx@1.2.1: {} + + clsx@2.1.1: {} + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + comma-separated-tokens@1.0.8: {} + + commander@2.20.3: {} + + concat-map@0.0.1: {} + + confbox@0.1.8: {} + + consola@3.2.3: {} + + convert-source-map@1.9.0: {} + + cookie-es@1.2.2: {} + + cosmiconfig@7.1.0: + dependencies: + '@types/parse-json': 4.0.2 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + + cosmjs-types@0.9.0: {} + + create-hash@1.2.0: + dependencies: + cipher-base: 1.0.5 + inherits: 2.0.4 + md5.js: 1.3.5 + ripemd160: 2.0.2 + sha.js: 2.4.11 + + create-hmac@1.1.7: + dependencies: + cipher-base: 1.0.5 + create-hash: 1.2.0 + inherits: 2.0.4 + ripemd160: 2.0.2 + safe-buffer: 5.2.1 + sha.js: 2.4.11 + + cross-fetch@3.1.8: + dependencies: + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + + cross-spawn@7.0.5: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + crossws@0.3.1: + dependencies: + uncrypto: 0.1.3 + + crypto-js@4.2.0: {} + + css-color-keywords@1.0.0: {} + + css-to-react-native@3.2.0: + dependencies: + camelize: 1.0.1 + css-color-keywords: 1.0.0 + postcss-value-parser: 4.2.0 + + css-vendor@2.0.8: + dependencies: + '@babel/runtime': 7.26.0 + is-in-browser: 1.1.3 + + csstype@2.6.21: {} + + csstype@3.1.3: {} + + damerau-levenshtein@1.0.8: {} + + data-view-buffer@1.0.1: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + data-view-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + data-view-byte-offset@1.0.0: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + dayjs@1.11.10: {} + + debug@3.2.7: + dependencies: + ms: 2.1.3 + + debug@4.3.7: + dependencies: + ms: 2.1.3 + + decamelize@1.2.0: {} + + decode-uri-component@0.2.2: {} + + deep-is@0.1.4: {} + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + defu@6.1.4: {} + + delay@5.0.0: {} + + depd@1.1.2: {} + + depd@2.0.0: {} + + destr@2.0.3: {} + + detect-browser@5.3.0: {} + + detect-indent@6.1.0: {} + + detect-libc@1.0.3: {} + + detect-newline@3.1.0: {} + + dijkstrajs@1.0.3: {} + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + doctrine@2.1.0: + dependencies: + esutils: 2.0.3 + + doctrine@3.0.0: + dependencies: + esutils: 2.0.3 + + dom-helpers@5.2.1: + dependencies: + '@babel/runtime': 7.26.0 + csstype: 3.1.3 + + duplexify@4.1.3: + dependencies: + end-of-stream: 1.4.4 + inherits: 2.0.4 + readable-stream: 3.6.2 + stream-shift: 1.0.3 + + ed25519-hd-key@1.1.2: + dependencies: + bip39: 3.0.2 + create-hmac: 1.1.7 + tweetnacl: 1.0.3 + + ed2curve@0.3.0: + dependencies: + tweetnacl: 1.0.3 + + elliptic@6.5.4: + dependencies: + bn.js: 4.12.1 + brorand: 1.1.0 + hash.js: 1.1.7 + hmac-drbg: 1.0.1 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + + elliptic@6.5.7: + dependencies: + bn.js: 4.12.1 + brorand: 1.1.0 + hash.js: 1.1.7 + hmac-drbg: 1.0.1 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + + elliptic@6.6.0: + dependencies: + bn.js: 4.12.1 + brorand: 1.1.0 + hash.js: 1.1.7 + hmac-drbg: 1.0.1 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + + elliptic@6.6.1: + dependencies: + bn.js: 4.12.1 + brorand: 1.1.0 + hash.js: 1.1.7 + hmac-drbg: 1.0.1 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + encode-utf8@1.0.3: {} + + end-of-stream@1.4.4: + dependencies: + once: 1.4.0 + + enhanced-resolve@5.17.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + + error-ex@1.3.2: + dependencies: + is-arrayish: 0.2.1 + + es-abstract@1.23.5: + dependencies: + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 + es-define-property: 1.0.0 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-set-tostringtag: 2.0.3 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.4 + get-symbol-description: 1.0.2 + globalthis: 1.0.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 + is-callable: 1.2.7 + is-data-view: 1.0.1 + is-negative-zero: 2.0.3 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + is-string: 1.0.7 + is-typed-array: 1.1.13 + is-weakref: 1.0.2 + object-inspect: 1.13.3 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.3 + safe-array-concat: 1.1.2 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.2 + typed-array-length: 1.0.6 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.15 + + es-define-property@1.0.0: + dependencies: + get-intrinsic: 1.2.4 + + es-errors@1.3.0: {} + + es-iterator-helpers@1.2.0: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-errors: 1.3.0 + es-set-tostringtag: 2.0.3 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + globalthis: 1.0.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + iterator.prototype: 1.1.3 + safe-array-concat: 1.1.2 + + es-object-atoms@1.0.0: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.0.3: + dependencies: + get-intrinsic: 1.2.4 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + es-shim-unscopables@1.0.2: + dependencies: + hasown: 2.0.2 + + es-to-primitive@1.2.1: + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + + es6-promise@4.2.8: {} + + es6-promisify@5.0.0: + dependencies: + es6-promise: 4.2.8 + + escape-string-regexp@4.0.0: {} + + eslint-config-next@13.5.7(eslint@8.15.0)(typescript@5.2.2): + dependencies: + '@next/eslint-plugin-next': 13.5.7 + '@rushstack/eslint-patch': 1.10.4 + '@typescript-eslint/parser': 6.21.0(eslint@8.15.0)(typescript@5.2.2) + eslint: 8.15.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.15.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(eslint@8.15.0))(eslint@8.15.0) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.15.0)(typescript@5.2.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.15.0) + eslint-plugin-jsx-a11y: 6.10.2(eslint@8.15.0) + eslint-plugin-react: 7.37.2(eslint@8.15.0) + eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.15.0) + optionalDependencies: + typescript: 5.2.2 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - eslint-plugin-import-x + - supports-color + + eslint-config-prettier@8.5.0(eslint@8.15.0): + dependencies: + eslint: 8.15.0 + + eslint-import-resolver-node@0.3.9: + dependencies: + debug: 3.2.7 + is-core-module: 2.15.1 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.15.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(eslint@8.15.0))(eslint@8.15.0): + dependencies: + '@nolyfill/is-core-module': 1.0.39 + debug: 4.3.7 + enhanced-resolve: 5.17.1 + eslint: 8.15.0 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.15.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.15.0) + fast-glob: 3.3.2 + get-tsconfig: 4.8.1 + is-bun-module: 1.2.1 + is-glob: 4.0.3 + optionalDependencies: + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.15.0)(typescript@5.2.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.15.0) + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack + - supports-color + + eslint-module-utils@2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.15.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.15.0): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 6.21.0(eslint@8.15.0)(typescript@5.2.2) + eslint: 8.15.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.15.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(eslint@8.15.0))(eslint@8.15.0) + transitivePeerDependencies: + - supports-color + + eslint-plugin-import@2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.15.0)(typescript@5.2.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.15.0): + dependencies: + '@rtsao/scc': 1.1.0 + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.5 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.15.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.15.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.15.0) + hasown: 2.0.2 + is-core-module: 2.15.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.0 + semver: 6.3.1 + string.prototype.trimend: 1.0.8 + tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 6.21.0(eslint@8.15.0)(typescript@5.2.2) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + eslint-plugin-jsx-a11y@6.10.2(eslint@8.15.0): + dependencies: + aria-query: 5.3.2 + array-includes: 3.1.8 + array.prototype.flatmap: 1.3.2 + ast-types-flow: 0.0.8 + axe-core: 4.10.2 + axobject-query: 4.1.0 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 8.15.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.9 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + safe-regex-test: 1.0.3 + string.prototype.includes: 2.0.1 + + eslint-plugin-package-json@0.13.1(eslint@8.15.0)(jsonc-eslint-parser@2.4.0): + dependencies: + detect-indent: 6.1.0 + detect-newline: 3.1.0 + eslint: 8.15.0 + jsonc-eslint-parser: 2.4.0 + package-json-validator: 0.6.8 + semver: 7.6.3 + sort-object-keys: 1.1.3 + sort-package-json: 1.57.0 + validate-npm-package-name: 5.0.1 + + eslint-plugin-react-hooks@5.0.0-canary-7118f5dd7-20230705(eslint@8.15.0): + dependencies: + eslint: 8.15.0 + + eslint-plugin-react@7.37.2(eslint@8.15.0): + dependencies: + array-includes: 3.1.8 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.2 + array.prototype.tosorted: 1.1.4 + doctrine: 2.1.0 + es-iterator-helpers: 1.2.0 + eslint: 8.15.0 + estraverse: 5.3.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.8 + object.fromentries: 2.0.8 + object.values: 1.2.0 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.11 + string.prototype.repeat: 1.0.0 + + eslint-scope@7.2.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-utils@3.0.0(eslint@8.15.0): + dependencies: + eslint: 8.15.0 + eslint-visitor-keys: 2.1.0 + + eslint-visitor-keys@2.1.0: {} + + eslint-visitor-keys@3.4.3: {} + + eslint@8.15.0: + dependencies: + '@eslint/eslintrc': 1.4.1 + '@humanwhocodes/config-array': 0.9.5 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.5 + debug: 4.3.7 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-utils: 3.0.0(eslint@8.15.0) + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + functional-red-black-tree: 1.0.1 + glob-parent: 6.0.2 + globals: 13.24.0 + ignore: 5.3.2 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + regexpp: 3.2.0 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 + text-table: 0.2.0 + v8-compile-cache: 2.4.0 + transitivePeerDependencies: + - supports-color + + espree@9.6.1: + dependencies: + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + eslint-visitor-keys: 3.4.3 + + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + esutils@2.0.3: {} + + ethereum-bloom-filters@1.2.0: + dependencies: + '@noble/hashes': 1.5.0 + + ethereum-cryptography@2.2.1: + dependencies: + '@noble/curves': 1.4.2 + '@noble/hashes': 1.4.0 + '@scure/bip32': 1.4.0 + '@scure/bip39': 1.3.0 + + ethers@6.13.4(bufferutil@4.0.8)(utf-8-validate@5.0.10): + 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(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + ethjs-unit@0.1.6: + dependencies: + bn.js: 4.11.6 + number-to-bn: 1.7.0 + + eventemitter3@4.0.7: {} + + eventemitter3@5.0.1: {} + + events@3.3.0: {} + + execa@8.0.1: + dependencies: + cross-spawn: 7.0.5 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + + eyes@0.1.8: {} + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fast-redact@3.5.0: {} + + fast-stable-stringify@1.0.0: {} + + fastq@1.17.1: + dependencies: + reusify: 1.0.4 + + fault@1.0.4: + dependencies: + format: 0.2.2 + + file-entry-cache@6.0.1: + dependencies: + flat-cache: 3.2.0 + + file-uri-to-path@1.0.0: {} + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + filter-obj@1.1.0: {} + + find-root@1.1.0: {} + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + flat-cache@3.2.0: + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + rimraf: 3.0.2 + + flatted@3.3.1: {} + + follow-redirects@1.15.9: {} + + for-each@0.3.3: + dependencies: + is-callable: 1.2.7 + + format@0.2.2: {} + + framer-motion@6.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@motionone/dom': 10.12.0 + framesync: 6.0.1 + hey-listen: 1.0.8 + popmotion: 11.0.3 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + style-value-types: 5.0.0 + tslib: 2.8.1 + optionalDependencies: + '@emotion/is-prop-valid': 0.8.8 + + framesync@6.0.1: + dependencies: + tslib: 2.8.1 + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + function.prototype.name@1.1.6: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 + functions-have-names: 1.2.3 + + functional-red-black-tree@1.0.1: {} + + functions-have-names@1.2.3: {} + + generate-function@2.3.1: + dependencies: + is-property: 1.0.2 + + generate-object-property@1.2.0: + dependencies: + is-property: 1.0.2 + + get-caller-file@2.0.5: {} + + get-intrinsic@1.2.4: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + + get-port-please@3.1.2: {} + + get-stream@8.0.1: {} + + get-symbol-description@1.0.2: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + + get-tsconfig@4.8.1: + dependencies: + resolve-pkg-maps: 1.0.0 + + git-hooks-list@1.0.3: {} + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob-to-regexp@0.4.1: {} + + glob@7.1.7: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + globals@11.12.0: {} + + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.0.1 + + globby@10.0.0: + dependencies: + '@types/glob': 7.2.0 + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + glob: 7.2.3 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + + goober@2.1.16(csstype@3.1.3): + dependencies: + csstype: 3.1.3 + + gopd@1.0.1: + dependencies: + get-intrinsic: 1.2.4 + + graceful-fs@4.2.11: {} + + h3@1.13.0: + dependencies: + cookie-es: 1.2.2 + crossws: 0.3.1 + defu: 6.1.4 + destr: 2.0.3 + iron-webcrypto: 1.2.1 + ohash: 1.1.4 + radix3: 1.1.2 + ufo: 1.5.4 + uncrypto: 0.1.3 + unenv: 1.10.0 + + has-bigints@1.0.2: {} + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.0 + + has-proto@1.0.3: {} + + has-symbols@1.0.3: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.0.3 + + hash-base@3.1.0: + dependencies: + inherits: 2.0.4 + readable-stream: 3.6.2 + safe-buffer: 5.2.1 + + hash.js@1.1.7: + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hast-util-parse-selector@2.2.5: {} + + hastscript@6.0.0: + dependencies: + '@types/hast': 2.3.10 + comma-separated-tokens: 1.0.8 + hast-util-parse-selector: 2.2.5 + property-information: 5.6.0 + space-separated-tokens: 1.1.5 + + hey-listen@1.0.8: {} + + highlight.js@10.7.3: {} + + highlightjs-vue@1.0.0: {} + + hmac-drbg@1.0.1: + dependencies: + hash.js: 1.1.7 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + + hoist-non-react-statics@3.3.2: + dependencies: + react-is: 16.13.1 + + http-errors@1.7.2: + dependencies: + depd: 1.1.2 + inherits: 2.0.3 + setprototypeof: 1.1.1 + statuses: 1.5.0 + toidentifier: 1.0.0 + + http-shutdown@1.2.2: {} + + human-signals@5.0.0: {} + + humanize-ms@1.2.1: + dependencies: + ms: 2.1.3 + + hyphenate-style-name@1.1.0: {} + + idb-keyval@6.2.1: {} + + ieee754@1.2.1: {} + + ignore@5.3.2: {} + + import-fresh@3.3.0: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + imurmurhash@0.1.4: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.3: {} + + inherits@2.0.4: {} + + internal-slot@1.0.7: + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.0.6 + + intl-messageformat@10.7.7: + dependencies: + '@formatjs/ecma402-abstract': 2.2.4 + '@formatjs/fast-memoize': 2.2.3 + '@formatjs/icu-messageformat-parser': 2.9.4 + tslib: 2.8.1 + + iron-webcrypto@1.2.1: {} + + is-alphabetical@1.0.4: {} + + is-alphanumerical@1.0.4: + dependencies: + is-alphabetical: 1.0.4 + is-decimal: 1.0.4 + + is-array-buffer@3.0.4: + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + + is-arrayish@0.2.1: {} + + is-async-function@2.0.0: + dependencies: + has-tostringtag: 1.0.2 + + is-bigint@1.0.4: + dependencies: + has-bigints: 1.0.2 + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-boolean-object@1.1.2: + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + + is-bun-module@1.2.1: + dependencies: + semver: 7.6.3 + + is-callable@1.2.7: {} + + is-core-module@2.15.1: + dependencies: + hasown: 2.0.2 + + is-data-view@1.0.1: + dependencies: + is-typed-array: 1.1.13 + + is-date-object@1.0.5: + dependencies: + has-tostringtag: 1.0.2 + + is-decimal@1.0.4: {} + + is-docker@3.0.0: {} + + is-extglob@2.1.1: {} + + is-finalizationregistry@1.0.2: + dependencies: + call-bind: 1.0.7 + + is-fullwidth-code-point@3.0.0: {} + + is-generator-function@1.0.10: + dependencies: + has-tostringtag: 1.0.2 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-hex-prefixed@1.0.0: {} + + is-hexadecimal@1.0.4: {} + + is-in-browser@1.1.3: {} + + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + + is-map@2.0.3: {} + + is-my-ip-valid@1.0.1: {} + + is-my-json-valid@2.20.6: + dependencies: + generate-function: 2.3.1 + generate-object-property: 1.2.0 + is-my-ip-valid: 1.0.1 + jsonpointer: 5.0.1 + xtend: 4.0.2 + + is-negative-zero@2.0.3: {} + + is-number-object@1.0.7: + dependencies: + has-tostringtag: 1.0.2 + + is-number@7.0.0: {} + + is-plain-obj@2.1.0: {} + + is-property@1.0.2: {} + + is-regex@1.1.4: + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + + is-set@2.0.3: {} + + is-shared-array-buffer@1.0.3: + dependencies: + call-bind: 1.0.7 + + is-stream@3.0.0: {} + + is-string@1.0.7: + dependencies: + has-tostringtag: 1.0.2 + + is-symbol@1.0.4: + dependencies: + has-symbols: 1.0.3 + + is-typed-array@1.1.13: + dependencies: + which-typed-array: 1.1.15 + + is-weakmap@2.0.2: {} + + is-weakref@1.0.2: + dependencies: + call-bind: 1.0.7 + + is-weakset@2.0.3: + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + + is-wsl@3.1.0: + dependencies: + is-inside-container: 1.0.0 + + is64bit@2.0.0: + dependencies: + system-architecture: 0.1.0 + + isarray@2.0.5: {} + + isexe@2.0.0: {} + + isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)): + dependencies: + ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) + + isows@1.0.3(ws@8.13.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)): + dependencies: + ws: 8.13.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + + iterator.prototype@1.1.3: + dependencies: + define-properties: 1.2.1 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + reflect.getprototypeof: 1.0.6 + set-function-name: 2.0.2 + + jayson@4.1.2(bufferutil@4.0.8)(utf-8-validate@5.0.10): + dependencies: + '@types/connect': 3.4.38 + '@types/node': 12.20.55 + '@types/ws': 7.4.7 + JSONStream: 1.3.5 + commander: 2.20.3 + delay: 5.0.0 + es6-promisify: 5.0.0 + eyes: 0.1.8 + isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + json-stringify-safe: 5.0.1 + uuid: 8.3.2 + ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + jiti@2.4.0: {} + + js-sha256@0.9.0: {} + + js-sha3@0.8.0: {} + + js-tokens@4.0.0: {} + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + jsesc@3.0.2: {} + + json-buffer@3.0.1: {} + + json-duplicate-key-handle@1.0.0: + dependencies: + backslash: 0.2.0 + + json-parse-even-better-errors@2.3.1: {} + + json-schema-traverse@0.4.1: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json-stringify-safe@5.0.1: {} + + json5@1.0.2: + dependencies: + minimist: 1.2.8 + + jsonc-eslint-parser@2.4.0: + dependencies: + acorn: 8.14.0 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + semver: 7.6.3 + + jsonparse@1.3.1: {} + + jsonpointer@5.0.1: {} + + jsqr-es6@1.4.0-1: {} + + jss-plugin-camel-case@10.10.0: + dependencies: + '@babel/runtime': 7.26.0 + hyphenate-style-name: 1.1.0 + jss: 10.10.0 + + jss-plugin-default-unit@10.10.0: + dependencies: + '@babel/runtime': 7.26.0 + jss: 10.10.0 + + jss-plugin-global@10.10.0: + dependencies: + '@babel/runtime': 7.26.0 + jss: 10.10.0 + + jss-plugin-nested@10.10.0: + dependencies: + '@babel/runtime': 7.26.0 + jss: 10.10.0 + tiny-warning: 1.0.3 + + jss-plugin-props-sort@10.10.0: + dependencies: + '@babel/runtime': 7.26.0 + jss: 10.10.0 + + jss-plugin-rule-value-function@10.10.0: + dependencies: + '@babel/runtime': 7.26.0 + jss: 10.10.0 + tiny-warning: 1.0.3 + + jss-plugin-vendor-prefixer@10.10.0: + dependencies: + '@babel/runtime': 7.26.0 + css-vendor: 2.0.8 + jss: 10.10.0 + + jss@10.10.0: + dependencies: + '@babel/runtime': 7.26.0 + csstype: 3.1.3 + is-in-browser: 1.1.3 + tiny-warning: 1.0.3 + + jsx-ast-utils@3.3.5: + dependencies: + array-includes: 3.1.8 + array.prototype.flat: 1.3.2 + object.assign: 4.1.5 + object.values: 1.2.0 + + keccak@3.0.1: + dependencies: + node-addon-api: 2.0.2 + node-gyp-build: 4.8.3 + + keccak@3.0.2: + dependencies: + node-addon-api: 2.0.2 + node-gyp-build: 4.8.3 + readable-stream: 3.6.2 + + keccak@3.0.4: + dependencies: + node-addon-api: 2.0.2 + node-gyp-build: 4.8.3 + readable-stream: 3.6.2 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + keyvaluestorage-interface@1.0.0: {} + + language-subtag-registry@0.3.23: {} + + language-tags@1.0.9: + dependencies: + language-subtag-registry: 0.3.23 + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + libsodium-sumo@0.7.15: {} + + libsodium-wrappers-sumo@0.7.15: + dependencies: + libsodium-sumo: 0.7.15 + + lines-and-columns@1.2.4: {} + + listhen@1.9.0: + dependencies: + '@parcel/watcher': 2.5.0 + '@parcel/watcher-wasm': 2.5.0 + citty: 0.1.6 + clipboardy: 4.0.0 + consola: 3.2.3 + crossws: 0.3.1 + defu: 6.1.4 + get-port-please: 3.1.2 + h3: 1.13.0 + http-shutdown: 1.2.2 + jiti: 2.4.0 + mlly: 1.7.3 + node-forge: 1.3.1 + pathe: 1.1.2 + std-env: 3.8.0 + ufo: 1.5.4 + untun: 0.1.3 + uqr: 0.1.2 + + lit-element@4.1.1: + dependencies: + '@lit-labs/ssr-dom-shim': 1.2.1 + '@lit/reactive-element': 2.0.4 + lit-html: 3.2.1 + + lit-html@3.2.1: + dependencies: + '@types/trusted-types': 2.0.7 + + lit@3.1.0: + dependencies: + '@lit/reactive-element': 2.0.4 + lit-element: 4.1.1 + lit-html: 3.2.1 + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + lodash.isequal@4.5.0: {} + + lodash.merge@4.6.2: {} + + long@5.2.3: {} + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + + lowlight@1.20.0: + dependencies: + fault: 1.0.4 + highlight.js: 10.7.3 + + lru-cache@10.4.3: {} + + lru_map@0.4.1: {} + + md5.js@1.3.5: + dependencies: + hash-base: 3.1.0 + inherits: 2.0.4 + safe-buffer: 5.2.1 + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + merkletreejs@0.3.11: + dependencies: + bignumber.js: 9.1.2 + buffer-reverse: 1.0.1 + crypto-js: 4.2.0 + treeify: 1.1.0 + web3-utils: 1.10.4 + + micro-ftch@0.3.1: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime@3.0.0: {} + + mimic-fn@4.0.0: {} + + minimalistic-assert@1.0.1: {} + + minimalistic-crypto-utils@1.0.1: {} + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@9.0.3: + dependencies: + brace-expansion: 2.0.1 + + minimist@0.0.10: {} + + minimist@1.2.8: {} + + mlly@1.7.3: + dependencies: + acorn: 8.14.0 + pathe: 1.1.2 + pkg-types: 1.2.1 + ufo: 1.5.4 + + ms@2.1.3: {} + + multiformats@9.9.0: {} + + mustache@4.0.0: {} + + nanoassert@1.1.0: {} + + nanoid@3.3.7: {} + + natural-compare@1.4.0: {} + + near-abi@0.1.1: + dependencies: + '@types/json-schema': 7.0.15 + + near-api-js@4.0.3: + dependencies: + '@near-js/accounts': 1.2.1 + '@near-js/crypto': 1.2.4 + '@near-js/keystores': 0.0.12 + '@near-js/keystores-browser': 0.0.12 + '@near-js/keystores-node': 0.0.12 + '@near-js/providers': 0.2.2 + '@near-js/signers': 0.1.4 + '@near-js/transactions': 1.2.2 + '@near-js/types': 0.2.1 + '@near-js/utils': 0.2.2 + '@near-js/wallet-account': 1.2.2 + '@noble/curves': 1.2.0 + borsh: 1.0.0 + depd: 2.0.0 + http-errors: 1.7.2 + near-abi: 0.1.1 + node-fetch: 2.6.7 + transitivePeerDependencies: + - encoding + + next@13.5.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@next/env': 13.5.7 + '@swc/helpers': 0.5.2 + busboy: 1.6.0 + caniuse-lite: 1.0.30001680 + postcss: 8.4.31 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + styled-jsx: 5.1.1(react@18.3.1) + watchpack: 2.4.0 + optionalDependencies: + '@next/swc-darwin-arm64': 13.5.7 + '@next/swc-darwin-x64': 13.5.7 + '@next/swc-linux-arm64-gnu': 13.5.7 + '@next/swc-linux-arm64-musl': 13.5.7 + '@next/swc-linux-x64-gnu': 13.5.7 + '@next/swc-linux-x64-musl': 13.5.7 + '@next/swc-win32-arm64-msvc': 13.5.7 + '@next/swc-win32-ia32-msvc': 13.5.7 + '@next/swc-win32-x64-msvc': 13.5.7 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + + node-addon-api@2.0.2: {} + + node-addon-api@7.1.1: {} + + node-fetch-native@1.6.4: {} + + node-fetch@2.6.7: + dependencies: + whatwg-url: 5.0.0 + + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + + node-forge@1.3.1: {} + + node-gyp-build@4.8.3: {} + + normalize-path@3.0.0: {} + + npm-run-path@5.3.0: + dependencies: + path-key: 4.0.0 + + number-to-bn@1.7.0: + dependencies: + bn.js: 4.11.6 + strip-hex-prefix: 1.0.0 + + object-assign@4.1.1: {} + + object-inspect@1.13.3: {} + + object-keys@1.1.1: {} + + object.assign@4.1.5: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + + object.entries@1.1.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + + object.fromentries@2.0.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-object-atoms: 1.0.0 + + object.groupby@1.0.3: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 + + object.values@1.2.0: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + + ofetch@1.4.1: + dependencies: + destr: 2.0.3 + node-fetch-native: 1.6.4 + ufo: 1.5.4 + + ohash@1.1.4: {} + + on-exit-leak-free@0.2.0: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@6.0.0: + dependencies: + mimic-fn: 4.0.0 + + optimist@0.6.1: + dependencies: + minimist: 0.0.10 + wordwrap: 0.0.3 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-try@2.2.0: {} + + package-json-validator@0.6.8: + dependencies: + optimist: 0.6.1 + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-entities@2.0.0: + dependencies: + character-entities: 1.2.4 + character-entities-legacy: 1.1.4 + character-reference-invalid: 1.1.4 + is-alphanumerical: 1.0.4 + is-decimal: 1.0.4 + is-hexadecimal: 1.0.4 + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.26.2 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-key@4.0.0: {} + + path-parse@1.0.7: {} + + path-type@4.0.0: {} + + pathe@1.1.2: {} + + pbkdf2@3.1.2: + dependencies: + create-hash: 1.2.0 + create-hmac: 1.1.7 + ripemd160: 2.0.2 + safe-buffer: 5.2.1 + sha.js: 2.4.11 + + permissionless@0.1.21(viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4)): + dependencies: + viem: 2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4) + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + pino-abstract-transport@0.5.0: + dependencies: + duplexify: 4.1.3 + split2: 4.2.0 + + pino-std-serializers@4.0.0: {} + + pino@7.11.0: + dependencies: + atomic-sleep: 1.0.0 + fast-redact: 3.5.0 + on-exit-leak-free: 0.2.0 + pino-abstract-transport: 0.5.0 + pino-std-serializers: 4.0.0 + process-warning: 1.0.0 + quick-format-unescaped: 4.0.4 + real-require: 0.1.0 + safe-stable-stringify: 2.5.0 + sonic-boom: 2.8.0 + thread-stream: 0.15.2 + + pkg-types@1.2.1: + dependencies: + confbox: 0.1.8 + mlly: 1.7.3 + pathe: 1.1.2 + + pngjs@5.0.0: {} + + popmotion@11.0.3: + dependencies: + framesync: 6.0.1 + hey-listen: 1.0.8 + style-value-types: 5.0.0 + tslib: 2.8.1 + + popper.js@1.16.1-lts: {} + + possible-typed-array-names@1.0.0: {} + + postcss-value-parser@4.2.0: {} + + postcss@8.4.31: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + postcss@8.4.38: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + preact@10.24.3: {} + + prelude-ls@1.2.1: {} + + prettier@2.6.2: {} + + prismjs@1.27.0: {} + + prismjs@1.29.0: {} + + process-warning@1.0.0: {} + + prop-types@15.8.1: + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + + property-information@5.6.0: + dependencies: + xtend: 4.0.2 + + protobufjs@7.2.4: + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/node': 17.0.35 + long: 5.2.3 + + proxy-compare@2.5.1: {} + + punycode@2.3.1: {} + + qrcode@1.5.3: + dependencies: + dijkstrajs: 1.0.3 + encode-utf8: 1.0.3 + pngjs: 5.0.0 + yargs: 15.4.1 + + query-string@7.1.3: + dependencies: + decode-uri-component: 0.2.2 + filter-obj: 1.1.0 + split-on-first: 1.1.0 + strict-uri-encode: 2.0.0 + + queue-microtask@1.2.3: {} + + quick-format-unescaped@4.0.4: {} + + radix3@1.1.2: {} + + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + + react-code-blocks@0.1.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.0 + react: 18.3.1 + react-syntax-highlighter: 15.6.1(react@18.3.1) + styled-components: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + tslib: 2.8.1 + transitivePeerDependencies: + - react-dom + + react-dom@18.3.1(react@18.3.1): + dependencies: + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 + + react-hot-toast@2.4.1(csstype@3.1.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + goober: 2.1.16(csstype@3.1.3) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + transitivePeerDependencies: + - csstype + + react-is@16.13.1: {} + + react-is@17.0.2: {} + + react-is@18.3.1: {} + + react-qr-reader-es6@2.2.1-2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + jsqr-es6: 1.4.0-1 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + react-syntax-highlighter@15.6.1(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.0 + highlight.js: 10.7.3 + highlightjs-vue: 1.0.0 + lowlight: 1.20.0 + prismjs: 1.29.0 + react: 18.3.1 + refractor: 3.6.0 + + react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.0 + dom-helpers: 5.2.1 + loose-envify: 1.4.0 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + react@18.3.1: + dependencies: + loose-envify: 1.4.0 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + readonly-date@1.0.0: {} + + real-require@0.1.0: {} + + reflect.getprototypeof@1.0.6: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + globalthis: 1.0.4 + which-builtin-type: 1.1.4 + + refractor@3.6.0: + dependencies: + hastscript: 6.0.0 + parse-entities: 2.0.0 + prismjs: 1.27.0 + + regenerator-runtime@0.13.11: {} + + regenerator-runtime@0.14.1: {} + + regexp.prototype.flags@1.5.3: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 + + regexpp@3.2.0: {} + + require-directory@2.1.1: {} + + require-main-filename@2.0.0: {} + + resolve-from@4.0.0: {} + + resolve-pkg-maps@1.0.0: {} + + resolve@1.22.8: + dependencies: + is-core-module: 2.15.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + resolve@2.0.0-next.5: + dependencies: + is-core-module: 2.15.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + reusify@1.0.4: {} + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + ripemd160@2.0.2: + dependencies: + hash-base: 3.1.0 + inherits: 2.0.4 + + rpc-websockets@7.11.2: + dependencies: + eventemitter3: 4.0.7 + uuid: 8.3.2 + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + optionalDependencies: + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + rxjs@6.6.7: + dependencies: + tslib: 1.14.1 + + rxjs@7.8.1: + dependencies: + tslib: 2.8.1 + + safe-array-concat@1.1.2: + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + isarray: 2.0.5 + + safe-buffer@5.2.1: {} + + safe-regex-test@1.0.3: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-regex: 1.1.4 + + safe-stable-stringify@2.5.0: {} + + scheduler@0.23.2: + dependencies: + loose-envify: 1.4.0 + + scryptsy@2.1.0: {} + + semver@6.3.1: {} + + semver@7.6.3: {} + + set-blocking@2.0.0: {} + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + + set-function-name@2.0.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + + setprototypeof@1.1.1: {} + + sha.js@2.4.11: + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + + shallowequal@1.1.0: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + side-channel@1.0.6: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.3 + + signal-exit@4.1.0: {} + + slash@3.0.0: {} + + sonic-boom@2.8.0: + dependencies: + atomic-sleep: 1.0.0 + + sort-object-keys@1.1.3: {} + + sort-package-json@1.57.0: + dependencies: + detect-indent: 6.1.0 + detect-newline: 3.1.0 + git-hooks-list: 1.0.3 + globby: 10.0.0 + is-plain-obj: 2.1.0 + sort-object-keys: 1.1.3 + + source-map-js@1.2.1: {} + + source-map@0.5.7: {} + + space-separated-tokens@1.1.5: {} + + split-on-first@1.1.0: {} + + split2@4.2.0: {} + + statuses@1.5.0: {} + + std-env@3.8.0: {} + + stream-shift@1.0.3: {} + + streamsearch@1.1.0: {} + + strict-uri-encode@2.0.0: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string.prototype.includes@2.0.1: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 + + string.prototype.matchall@4.0.11: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + regexp.prototype.flags: 1.5.3 + set-function-name: 2.0.2 + side-channel: 1.0.6 + + string.prototype.repeat@1.0.0: + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.5 + + string.prototype.trim@1.2.9: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-object-atoms: 1.0.0 + + string.prototype.trimend@1.0.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + + string.prototype.trimstart@1.0.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-bom@3.0.0: {} + + strip-final-newline@3.0.0: {} + + strip-hex-prefix@1.0.0: + dependencies: + is-hex-prefixed: 1.0.0 + + strip-json-comments@3.1.1: {} + + style-value-types@5.0.0: + dependencies: + hey-listen: 1.0.8 + tslib: 2.8.1 + + styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@emotion/is-prop-valid': 1.2.2 + '@emotion/unitless': 0.8.1 + '@types/stylis': 4.2.5 + css-to-react-native: 3.2.0 + csstype: 3.1.3 + postcss: 8.4.38 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + shallowequal: 1.1.0 + stylis: 4.3.2 + tslib: 2.6.2 + + styled-jsx@5.1.1(react@18.3.1): + dependencies: + client-only: 0.0.1 + react: 18.3.1 + + stylis@4.2.0: {} + + stylis@4.3.2: {} + + superstruct@0.14.2: {} + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + system-architecture@0.1.0: {} + + tapable@2.2.1: {} + + text-encoding-utf-8@1.0.2: {} + + text-table@0.2.0: {} + + thread-stream@0.15.2: + dependencies: + real-require: 0.1.0 + + through@2.3.8: {} + + tiny-warning@1.0.3: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toidentifier@1.0.0: {} + + tr46@0.0.3: {} + + treeify@1.1.0: {} + + ts-api-utils@1.4.0(typescript@5.2.2): + dependencies: + typescript: 5.2.2 + + tsconfig-paths@3.15.0: + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + + tslib@1.14.1: {} + + tslib@2.6.2: {} + + tslib@2.7.0: {} + + tslib@2.8.1: {} + + tweetnacl@1.0.3: {} + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-fest@0.20.2: {} + + typed-array-buffer@1.0.2: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-typed-array: 1.1.13 + + typed-array-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + + typed-array-byte-offset@1.0.2: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + + typed-array-length@1.0.6: + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + possible-typed-array-names: 1.0.0 + + typedarray-to-buffer@4.0.0: {} + + typescript@5.2.2: {} + + ufo@1.5.4: {} + + uint8arrays@3.1.0: + dependencies: + multiformats: 9.9.0 + + unbox-primitive@1.0.2: + dependencies: + call-bind: 1.0.7 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + + uncrypto@0.1.3: {} + + undici-types@6.19.8: {} + + unenv@1.10.0: + dependencies: + consola: 3.2.3 + defu: 6.1.4 + mime: 3.0.0 + node-fetch-native: 1.6.4 + pathe: 1.1.2 + + unstorage@1.13.1(idb-keyval@6.2.1): + dependencies: + anymatch: 3.1.3 + chokidar: 3.6.0 + citty: 0.1.6 + destr: 2.0.3 + h3: 1.13.0 + listhen: 1.9.0 + lru-cache: 10.4.3 + node-fetch-native: 1.6.4 + ofetch: 1.4.1 + ufo: 1.5.4 + optionalDependencies: + idb-keyval: 6.2.1 + + untun@0.1.3: + dependencies: + citty: 0.1.6 + consola: 3.2.3 + pathe: 1.1.2 + + uqr@0.1.2: {} + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + use-sync-external-store@1.2.0(react@18.3.1): + dependencies: + react: 18.3.1 + + utf-8-validate@5.0.10: + dependencies: + node-gyp-build: 4.8.3 + optional: true + + utf8@3.0.0: {} + + util-deprecate@1.0.2: {} + + uuid@8.3.2: {} + + v8-compile-cache@2.4.0: {} + + validate-npm-package-name@5.0.1: {} + + valtio@1.11.2(@types/react@17.0.2)(react@18.3.1): + dependencies: + proxy-compare: 2.5.1 + use-sync-external-store: 1.2.0(react@18.3.1) + optionalDependencies: + '@types/react': 17.0.2 + react: 18.3.1 + + viem@2.9.29(bufferutil@4.0.8)(typescript@5.2.2)(utf-8-validate@5.0.10)(zod@3.22.4): + dependencies: + '@adraffy/ens-normalize': 1.10.0 + '@noble/curves': 1.2.0 + '@noble/hashes': 1.3.2 + '@scure/bip32': 1.3.2 + '@scure/bip39': 1.2.1 + abitype: 1.0.0(typescript@5.2.2)(zod@3.22.4) + isows: 1.0.3(ws@8.13.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + ws: 8.13.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + optionalDependencies: + typescript: 5.2.2 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + - zod + + watchpack@2.4.0: + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + + web3-utils@1.10.4: + dependencies: + '@ethereumjs/util': 8.1.0 + bn.js: 5.2.1 + ethereum-bloom-filters: 1.2.0 + ethereum-cryptography: 2.2.1 + ethjs-unit: 0.1.6 + number-to-bn: 1.7.0 + randombytes: 2.1.0 + utf8: 3.0.0 + + webidl-conversions@3.0.1: {} + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + which-boxed-primitive@1.0.2: + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + + which-builtin-type@1.1.4: + dependencies: + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.2 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.0.2 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.2 + which-typed-array: 1.1.15 + + which-collection@1.0.2: + dependencies: + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.3 + + which-module@2.0.1: {} + + which-typed-array@1.1.15: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.2 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + word-wrap@1.2.5: {} + + wordwrap@0.0.3: {} + + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrappy@1.0.2: {} + + ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 + + ws@8.13.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 + + ws@8.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 + + ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 + + xtend@4.0.2: {} + + y18n@4.0.3: {} + + yaml@1.10.2: {} + + yargs-parser@18.1.3: + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + + yargs@15.4.1: + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 18.1.3 + + zod@3.22.4: {} diff --git a/advanced/wallets/reown-web-wallet/public/chain-logos/eip155-1.png b/advanced/wallets/reown-web-wallet/public/chain-logos/eip155-1.png new file mode 100644 index 000000000..db6015497 Binary files /dev/null and b/advanced/wallets/reown-web-wallet/public/chain-logos/eip155-1.png differ diff --git a/advanced/wallets/reown-web-wallet/public/chain-logos/eip155-10.png b/advanced/wallets/reown-web-wallet/public/chain-logos/eip155-10.png new file mode 100644 index 000000000..ff6ca5078 Binary files /dev/null and b/advanced/wallets/reown-web-wallet/public/chain-logos/eip155-10.png differ diff --git a/advanced/wallets/reown-web-wallet/public/chain-logos/eip155-137.png b/advanced/wallets/reown-web-wallet/public/chain-logos/eip155-137.png new file mode 100644 index 000000000..93f6e2051 Binary files /dev/null and b/advanced/wallets/reown-web-wallet/public/chain-logos/eip155-137.png differ diff --git a/advanced/wallets/reown-web-wallet/public/chain-logos/eip155-324.svg b/advanced/wallets/reown-web-wallet/public/chain-logos/eip155-324.svg new file mode 100644 index 000000000..db673359c --- /dev/null +++ b/advanced/wallets/reown-web-wallet/public/chain-logos/eip155-324.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/advanced/wallets/reown-web-wallet/public/chain-logos/eip155-43113.png b/advanced/wallets/reown-web-wallet/public/chain-logos/eip155-43113.png new file mode 100644 index 000000000..619576f3a Binary files /dev/null and b/advanced/wallets/reown-web-wallet/public/chain-logos/eip155-43113.png differ diff --git a/advanced/wallets/reown-web-wallet/public/favicon.ico b/advanced/wallets/reown-web-wallet/public/favicon.ico new file mode 100644 index 000000000..718d6fea4 Binary files /dev/null and b/advanced/wallets/reown-web-wallet/public/favicon.ico differ diff --git a/advanced/wallets/reown-web-wallet/public/icons/accounts-icon.svg b/advanced/wallets/reown-web-wallet/public/icons/accounts-icon.svg new file mode 100644 index 000000000..ed31bc63f --- /dev/null +++ b/advanced/wallets/reown-web-wallet/public/icons/accounts-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/advanced/wallets/reown-web-wallet/public/icons/arrow-down-icon.svg b/advanced/wallets/reown-web-wallet/public/icons/arrow-down-icon.svg new file mode 100644 index 000000000..2a07a58cf --- /dev/null +++ b/advanced/wallets/reown-web-wallet/public/icons/arrow-down-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/advanced/wallets/reown-web-wallet/public/icons/arrow-right-icon.svg b/advanced/wallets/reown-web-wallet/public/icons/arrow-right-icon.svg new file mode 100644 index 000000000..6a7cdda1c --- /dev/null +++ b/advanced/wallets/reown-web-wallet/public/icons/arrow-right-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/advanced/wallets/reown-web-wallet/public/icons/checkmark-icon.svg b/advanced/wallets/reown-web-wallet/public/icons/checkmark-icon.svg new file mode 100644 index 000000000..18d85bc51 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/public/icons/checkmark-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/advanced/wallets/reown-web-wallet/public/icons/copy-icon.svg b/advanced/wallets/reown-web-wallet/public/icons/copy-icon.svg new file mode 100644 index 000000000..efd65903b --- /dev/null +++ b/advanced/wallets/reown-web-wallet/public/icons/copy-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/advanced/wallets/reown-web-wallet/public/icons/delete-icon.svg b/advanced/wallets/reown-web-wallet/public/icons/delete-icon.svg new file mode 100644 index 000000000..9b23ee707 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/public/icons/delete-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/advanced/wallets/reown-web-wallet/public/icons/pairings-icon.svg b/advanced/wallets/reown-web-wallet/public/icons/pairings-icon.svg new file mode 100644 index 000000000..22e5e8a94 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/public/icons/pairings-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/advanced/wallets/reown-web-wallet/public/icons/qr-icon.svg b/advanced/wallets/reown-web-wallet/public/icons/qr-icon.svg new file mode 100644 index 000000000..826a99a4f --- /dev/null +++ b/advanced/wallets/reown-web-wallet/public/icons/qr-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/advanced/wallets/reown-web-wallet/public/icons/sessions-icon.svg b/advanced/wallets/reown-web-wallet/public/icons/sessions-icon.svg new file mode 100644 index 000000000..157f7dc50 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/public/icons/sessions-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/advanced/wallets/reown-web-wallet/public/icons/settings-icon.svg b/advanced/wallets/reown-web-wallet/public/icons/settings-icon.svg new file mode 100644 index 000000000..c92a29f98 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/public/icons/settings-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/advanced/wallets/reown-web-wallet/public/icons/verified-domain.svg b/advanced/wallets/reown-web-wallet/public/icons/verified-domain.svg new file mode 100644 index 000000000..d20494029 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/public/icons/verified-domain.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/advanced/wallets/reown-web-wallet/public/main.css b/advanced/wallets/reown-web-wallet/public/main.css new file mode 100644 index 000000000..7899b2cd2 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/public/main.css @@ -0,0 +1,86 @@ +* { + box-sizing: border-box; + -ms-overflow-style: none; + scrollbar-width: none; +} + +::-webkit-scrollbar { + display: none; +} + +.routeTransition { + display: flex; + flex: 1; + flex-direction: column; + overflow: hidden; +} + +.container { + width: 100%; + height: calc(100% - 220px); + display: flex; + flex: 1; + flex-direction: column; + justify-content: center; + align-items: center; +} + +.qrVideoMask { + width: 100%; + border-radius: 15px; + overflow: hidden !important; + position: relative; +} + +.qrPlaceholder { + border: 2px rgba(139, 139, 139, 0.4) dashed; + width: 100%; + border-radius: 15px; + padding: 50px; +} + +.qrIcon { + opacity: 0.3; +} + +.codeBlock code { + flex: 1; +} + +.codeBlock span { + background-color: transparent !important; + overflow: scroll; +} + +.navLink { + transition: ease-in-out .2s opacity; +} + +.navLink:hover { + opacity: 0.6; +} + +select { + background-color: rgba(139, 139, 139, 0.2); + background-image: url(/icons/arrow-down-icon.svg); + background-size: 15px 15px; + background-position: right 10px center; + background-repeat: no-repeat; + padding: 5px 30px 6px 10px; + border-radius: 10px; + cursor: pointer; + border: none; + appearance: none; + transition: .2s ease-in-out background-color; + font-family: var(--nextui-fonts-sans); + font-weight: var(--nextui-fontWeights-light); + border: 1px solid rgba(139, 139, 139, 0.25); +} + +select:hover { + background-color: rgba(139, 139, 139, 0.35); +} + +i { + margin-top: -5px !important; +} diff --git a/advanced/wallets/reown-web-wallet/public/vercel.svg b/advanced/wallets/reown-web-wallet/public/vercel.svg new file mode 100644 index 000000000..e389be1be --- /dev/null +++ b/advanced/wallets/reown-web-wallet/public/vercel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/advanced/wallets/reown-web-wallet/public/wallet-connect-logo.svg b/advanced/wallets/reown-web-wallet/public/wallet-connect-logo.svg new file mode 100644 index 000000000..94fe49282 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/public/wallet-connect-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/advanced/wallets/reown-web-wallet/src/components/AccountCard.tsx b/advanced/wallets/reown-web-wallet/src/components/AccountCard.tsx new file mode 100644 index 000000000..f8a664723 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/components/AccountCard.tsx @@ -0,0 +1,75 @@ +import ChainCard from '@/components/ChainCard' +import SettingsStore from '@/store/SettingsStore' +import { truncate } from '@/utils/HelperUtil' +import { updateSignClientChainId } from '@/utils/WalletConnectUtil' +import { Avatar, Button, Text, Tooltip } from '@nextui-org/react' +import Image from 'next/image' +import { useState } from 'react' +import { useSnapshot } from 'valtio' + +interface Props { + name: string + logo: string + rgb: string + address: string + chainId: string +} + +export default function AccountCard({ name, logo, rgb, address = '', chainId }: Props) { + const [copied, setCopied] = useState(false) + const { activeChainId, account } = useSnapshot(SettingsStore.state) + function onCopy() { + navigator?.clipboard?.writeText(address) + setCopied(true) + setTimeout(() => setCopied(false), 1500) + } + + async function onChainChanged(chainId: string, address: string) { + SettingsStore.setActiveChainId(chainId) + await updateSignClientChainId(chainId.toString(), address) + } + + return ( + + +
+ + {name} + + + {address ? truncate(address, 19) : ''} + +
+ + + + + +
+ ) +} diff --git a/advanced/wallets/reown-web-wallet/src/components/AccountSelectCard.tsx b/advanced/wallets/reown-web-wallet/src/components/AccountSelectCard.tsx new file mode 100644 index 000000000..c3655522d --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/components/AccountSelectCard.tsx @@ -0,0 +1,45 @@ +import { truncate } from '@/utils/HelperUtil' +import { Card, Checkbox, Row, Text } from '@nextui-org/react' + +/** + * Types + */ +interface IProps { + address: string + index: number + selected: boolean + onSelect: () => void + isRequired: boolean +} + +/** + * Component + */ +export default function AccountSelectCard({ + address, + selected, + index, + onSelect, + isRequired +}: IProps) { + return ( + + + + + + {`${truncate(address, 14)} - Account ${index + 1}`} + + + + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/components/ChainAddressMini.tsx b/advanced/wallets/reown-web-wallet/src/components/ChainAddressMini.tsx new file mode 100644 index 000000000..650332e10 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/components/ChainAddressMini.tsx @@ -0,0 +1,18 @@ +import { Row } from '@nextui-org/react' + +interface Props { + address?: string +} + +export default function ChainAddressMini({ address }: Props) { + if (!address || address === 'N/A') return <> + return ( + <> + + + {address.substring(0, 6)}...{address.substring(address.length - 6)} + + + + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/components/ChainCard.tsx b/advanced/wallets/reown-web-wallet/src/components/ChainCard.tsx new file mode 100644 index 000000000..aebaeba04 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/components/ChainCard.tsx @@ -0,0 +1,38 @@ +import { Card } from '@nextui-org/react' +import { ReactNode } from 'react' + +interface Props { + children: ReactNode | ReactNode[] + rgb: string + flexDirection: 'row' | 'col' + alignItems: 'center' | 'flex-start' + flexWrap?: 'wrap' | 'nowrap' +} + +export default function ChainCard({ rgb, children, flexDirection, alignItems, flexWrap }: Props) { + return ( + + + {children} + + + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/components/ChainDataMini.tsx b/advanced/wallets/reown-web-wallet/src/components/ChainDataMini.tsx new file mode 100644 index 000000000..cb1633ecf --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/components/ChainDataMini.tsx @@ -0,0 +1,23 @@ +import { getChainData } from '@/data/chainsUtil' +import { Row, Avatar } from '@nextui-org/react' +import { useMemo } from 'react' + +interface Props { + chainId?: string // namespace + ":" + reference +} + +// const StyledLogo = styled(Image, {}) + +export default function ChainDataMini({ chainId }: Props) { + const chainData = useMemo(() => getChainData(chainId), [chainId]) + + if (!chainData) return <> + return ( + <> + + + {chainData.name} + + + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/components/Layout.tsx b/advanced/wallets/reown-web-wallet/src/components/Layout.tsx new file mode 100644 index 000000000..11e4c5371 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/components/Layout.tsx @@ -0,0 +1,89 @@ +import Navigation from '@/components/Navigation' +import RouteTransition from '@/components/RouteTransition' +import { Card, Container, Loading } from '@nextui-org/react' +import { Fragment, ReactNode } from 'react' + +/** + * Types + */ +interface Props { + initialized: boolean + children: ReactNode | ReactNode[] +} + +/** + * Container + */ +export default function Layout({ children, initialized }: Props) { + return ( + + + {initialized ? ( + + + + {children} + + + + + + + + ) : ( + + )} + + + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/components/Modal.tsx b/advanced/wallets/reown-web-wallet/src/components/Modal.tsx new file mode 100644 index 000000000..5c37cddf8 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/components/Modal.tsx @@ -0,0 +1,60 @@ +import ModalStore from '@/store/ModalStore' +import SessionProposalModal from '@/views/SessionProposalModal' +import SessionSendTransactionModal from '@/views/SessionSendTransactionModal' +import SessionRequestModal from '@/views/SessionSignModal' + +import SessionSignTypedDataModal from '@/views/SessionSignTypedDataModal' +import SessionUnsuportedMethodModal from '@/views/SessionUnsuportedMethodModal' +import { Modal as NextModal } from '@nextui-org/react' +import { useSnapshot } from 'valtio' +import { useCallback, useMemo } from 'react' +import AuthRequestModal from '@/views/AuthRequestModal' +import LoadingModal from '@/views/LoadingModal' +import SessionAuthenticateModal from '@/views/SessionAuthenticateModal' +import AppKitConnectionModal from '@/views/AppKitConnectionModal' + +export default function Modal() { + const { open, view } = useSnapshot(ModalStore.state) + // handle the modal being closed by click outside + const onClose = useCallback(() => { + if (open) { + ModalStore.close() + } + }, [open]) + + const componentView = useMemo(() => { + switch (view) { + case 'SessionProposalModal': + return + case 'SessionSignModal': + return + case 'SessionSignTypedDataModal': + return + case 'SessionSendTransactionModal': + return + case 'SessionUnsuportedMethodModal': + return + case 'AuthRequestModal': + return + case 'LoadingModal': + return + case 'SessionAuthenticateModal': + return + case 'AppKitConnectionModal': + return + default: + return null + } + }, [view]) + + return ( + + {componentView} + + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/components/ModalFooter.tsx b/advanced/wallets/reown-web-wallet/src/components/ModalFooter.tsx new file mode 100644 index 000000000..96356b9d4 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/components/ModalFooter.tsx @@ -0,0 +1,83 @@ +import SettingsStore from '@/store/SettingsStore' +import { Button, Modal, Row, Loading } from '@nextui-org/react' +import { useMemo } from 'react' +import { useSnapshot } from 'valtio' +export interface LoaderProps { + color?: 'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'white' + active?: boolean +} +interface Props { + onApprove: () => void + onReject: () => void + infoBoxCondition?: boolean + infoBoxText?: string + approveLoader?: LoaderProps + rejectLoader?: LoaderProps + disableApprove?: boolean + disableReject?: boolean +} + +export default function ModalFooter({ + onApprove, + approveLoader, + onReject, + rejectLoader, + infoBoxCondition, + infoBoxText, + disableApprove, + disableReject +}: Props) { + const { currentRequestVerifyContext } = useSnapshot(SettingsStore.state) + const validation = currentRequestVerifyContext?.verified.validation + + const approveButtonColor: any = useMemo(() => { + switch (validation) { + case 'INVALID': + return 'error' + case 'UNKNOWN': + return 'warning' + default: + return 'success' + } + }, [validation]) + + return ( + + {infoBoxCondition && ( + + {infoBoxText || ''} + + )} + + + + + + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/components/Navigation.tsx b/advanced/wallets/reown-web-wallet/src/components/Navigation.tsx new file mode 100644 index 000000000..eda2d4079 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/components/Navigation.tsx @@ -0,0 +1,43 @@ +import { Avatar, Row } from '@nextui-org/react' +import Image from 'next/image' +import Link from 'next/link' + +export default function Navigation() { + return ( + + + + accounts icon + + + + sessions icon + + + + + + } + /> + + + + pairings icon + + + + settings icon + + + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/components/PageHeader.tsx b/advanced/wallets/reown-web-wallet/src/components/PageHeader.tsx new file mode 100644 index 000000000..e741a37fb --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/components/PageHeader.tsx @@ -0,0 +1,36 @@ +import { Col, Divider, Row, Text } from '@nextui-org/react' +import { Fragment, ReactNode } from 'react' + +/** + * Types + */ +interface Props { + children?: ReactNode | ReactNode[] + title: string +} + +/** + * Component + */ +export default function PageHeader({ title, children }: Props) { + return ( + + + + + {title} + + + {children ? {children} : null} + + + + + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/components/PairingCard.tsx b/advanced/wallets/reown-web-wallet/src/components/PairingCard.tsx new file mode 100644 index 000000000..6d9553787 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/components/PairingCard.tsx @@ -0,0 +1,62 @@ +import { truncate } from '@/utils/HelperUtil' +import { Avatar, Button, Card, Link, Text, Tooltip } from '@nextui-org/react' +import Image from 'next/image' + +/** + * Types + */ +interface IProps { + logo?: string + name?: string + url?: string + topic?: string + onDelete: () => Promise +} + +/** + * Component + */ +export default function PairingCard({ logo, name, url, topic, onDelete }: IProps) { + return ( + + + +
+ + {name} + + + {truncate(url?.split('https://')[1] ?? 'Unknown', 23)} + +
+ + + +
+
+ ) +} diff --git a/advanced/wallets/reown-web-wallet/src/components/PermissionDetailsCard.tsx b/advanced/wallets/reown-web-wallet/src/components/PermissionDetailsCard.tsx new file mode 100644 index 000000000..fa1528505 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/components/PermissionDetailsCard.tsx @@ -0,0 +1,26 @@ +import { Col, Row, Text } from '@nextui-org/react' + +type PermissionAction = { + description: string +} + +interface IProps { + scope: PermissionAction[] +} + +export default function PermissionDetailsCard({ scope }: IProps) { + return ( + + + Dapp is requesting following permissions + {scope.map((action, index) => { + return ( + + {action.description} + + ) + })} + + + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/components/ProjectInfoCard.tsx b/advanced/wallets/reown-web-wallet/src/components/ProjectInfoCard.tsx new file mode 100644 index 000000000..7265f24e5 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/components/ProjectInfoCard.tsx @@ -0,0 +1,111 @@ +import { useMemo } from 'react' +import { useSnapshot } from 'valtio' +import SettingsStore from '@/store/SettingsStore' +import ReportIcon from '@mui/icons-material/Report' +import ReportProblemIcon from '@mui/icons-material/ReportProblem' +import NewReleasesIcon from '@mui/icons-material/NewReleases' +import { Avatar, Col, Link, Row, Text, styled } from '@nextui-org/react' +import { SignClientTypes } from '@walletconnect/types' + +/** + * Types + */ +interface IProps { + metadata: SignClientTypes.Metadata + intention?: string +} + +const StyledLink = styled('span', { + color: '#697177' +} as any) + +const StyledVerifiedIcon = styled('img', { + verticalAlign: 'middle', + marginRight: '5px' +} as any) + +const StyledUnknownRow = styled(Row, { + color: '$warning' + // marginTop: '10px' +} as any) + +const StyledUnknownContainer = styled('div', { + padding: '7px' +} as any) + +const StyledInvalidRow = styled(Row, { + color: '$error' + // marginTop: '10px' +} as any) + +const StyledInvalidContainer = styled('div', { + padding: '7px' +} as any) + +/** + * Components + */ +export default function ProjectInfoCard({ metadata, intention }: IProps) { + const { currentRequestVerifyContext } = useSnapshot(SettingsStore.state) + const validation = currentRequestVerifyContext?.verified.validation + const { icons, name, url } = metadata + + return ( +
+ + + + + + + + + {name}
+ wants to {intention ? intention : 'connect'} +
+ +
+ + + {validation == 'VALID' ? ( + + ) : null} + + {url} + + + + {currentRequestVerifyContext?.verified.isScam ? ( + + + + + Potential threat + + + + ) : validation == 'UNKNOWN' ? ( + + + + + Cannot Verify + + + + ) : validation == 'INVALID' ? ( + + + + + Invalid Domain + + + + ) : null} +
+ ) +} diff --git a/advanced/wallets/reown-web-wallet/src/components/ProposalSelectSection.tsx b/advanced/wallets/reown-web-wallet/src/components/ProposalSelectSection.tsx new file mode 100644 index 000000000..fbf675f38 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/components/ProposalSelectSection.tsx @@ -0,0 +1,42 @@ +import AccountSelectCard from '@/components/AccountSelectCard' +import { Col, Row, Text } from '@nextui-org/react' + +/** + * Types + */ +interface IProps { + chain: string + addresses: string[] + selectedAddresses: string[] | undefined + onSelect: (chain: string, address: string) => void + isRequired: boolean +} + +/** + * Component + */ +export default function ProposalSelectSection({ + addresses, + selectedAddresses, + chain, + onSelect, + isRequired +}: IProps) { + return ( + + + {`Choose ${chain} accounts`} + {addresses.map((address, index) => ( + onSelect(chain, address)} + selected={selectedAddresses?.includes(address) ?? false} + isRequired={isRequired} + /> + ))} + + + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/components/QrReader.tsx b/advanced/wallets/reown-web-wallet/src/components/QrReader.tsx new file mode 100644 index 000000000..6ac3d2a8c --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/components/QrReader.tsx @@ -0,0 +1,78 @@ +import { Button, Loading } from '@nextui-org/react' +import dynamic from 'next/dynamic' +import Image from 'next/image' +import { Fragment, useState } from 'react' + +/** + * You can use normal import if you are not within next / ssr environment + * @info https://nextjs.org/docs/advanced-features/dynamic-import + */ +const ReactQrReader = dynamic(() => import('react-qr-reader-es6'), { ssr: false }) + +/** + * Types + */ +interface IProps { + onConnect: (uri: string) => Promise +} + +/** + * Component + */ +export default function QrReader({ onConnect }: IProps) { + const [show, setShow] = useState(false) + const [loading, setLoading] = useState(false) + + function onError() { + setShow(false) + } + + async function onScan(data: string | null) { + if (data) { + await onConnect(data) + setShow(false) + } + } + + function onShowScanner() { + setLoading(true) + setShow(true) + } + + return ( +
+ {show ? ( + + {loading && } +
+ setLoading(false)} + showViewFinder={false} + onError={onError} + onScan={onScan} + style={{ width: '100%' }} + /> +
+
+ ) : ( +
+ qr code icon + +
+ )} +
+ ) +} diff --git a/advanced/wallets/reown-web-wallet/src/components/RelayRegionPicker.tsx b/advanced/wallets/reown-web-wallet/src/components/RelayRegionPicker.tsx new file mode 100644 index 000000000..98eb08ac0 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/components/RelayRegionPicker.tsx @@ -0,0 +1,28 @@ +import { REGIONALIZED_RELAYER_ENDPOINTS } from '@/data/RelayerRegions' +import SettingsStore from '@/store/SettingsStore' +import { useSnapshot } from 'valtio' + +export default function AccountPicker() { + const { relayerRegionURL } = useSnapshot(SettingsStore.state) + + function onSelect(value: string) { + SettingsStore.setRelayerRegionURL(value) + } + + return ( + + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/components/RequestDataCard.tsx b/advanced/wallets/reown-web-wallet/src/components/RequestDataCard.tsx new file mode 100644 index 000000000..28cff8825 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/components/RequestDataCard.tsx @@ -0,0 +1,28 @@ +import { Col, Row, Text } from '@nextui-org/react' +import { CodeBlock, codepen } from 'react-code-blocks' + +/** + * Types + */ +interface IProps { + data: Record +} + +/** + * Component + */ +export default function RequestDataCard({ data }: IProps) { + return ( + + + Data + + + + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/components/RequestDetalilsCard.tsx b/advanced/wallets/reown-web-wallet/src/components/RequestDetalilsCard.tsx new file mode 100644 index 000000000..a2caac429 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/components/RequestDetalilsCard.tsx @@ -0,0 +1,46 @@ +import { EIP155_CHAINS, TEIP155Chain } from '@/data/EIP155Data' +import { Col, Divider, Row, Text } from '@nextui-org/react' +import { Fragment } from 'react' + +/** + * Types + */ +interface IProps { + chains: string[] + protocol: string +} + +/** + * Component + */ +export default function RequestDetailsCard({ chains, protocol }: IProps) { + return ( + + + + Blockchain(s) + + {chains + .map( + chain => + EIP155_CHAINS[chain as TEIP155Chain]?.name ?? + chain + ) + .join(', ')} + + + + + + + + + Relay Protocol + + {protocol} + + + + + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/components/RequestMethodCard.tsx b/advanced/wallets/reown-web-wallet/src/components/RequestMethodCard.tsx new file mode 100644 index 000000000..751c32636 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/components/RequestMethodCard.tsx @@ -0,0 +1,24 @@ +import { Col, Row, Text } from '@nextui-org/react' + +/** + * Types + */ +interface IProps { + methods: string[] +} + +/** + * Component + */ +export default function RequestMethodCard({ methods }: IProps) { + return ( + + + Methods + + {methods.map(method => method).join(', ')} + + + + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/components/RequestModalContainer.tsx b/advanced/wallets/reown-web-wallet/src/components/RequestModalContainer.tsx new file mode 100644 index 000000000..cd327a6f9 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/components/RequestModalContainer.tsx @@ -0,0 +1,28 @@ +import { Container, Modal, Text } from '@nextui-org/react' +import { Fragment, ReactNode } from 'react' + +/** + * Types + */ +interface IProps { + title?: string + children: ReactNode | ReactNode[] +} + +/** + * Component + */ +export default function RequestModalContainer({ children, title }: IProps) { + return ( + + {title ? ( + + {title} + + ) : null} + + {children} + + + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/components/RouteTransition.tsx b/advanced/wallets/reown-web-wallet/src/components/RouteTransition.tsx new file mode 100644 index 000000000..ae6fbc07f --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/components/RouteTransition.tsx @@ -0,0 +1,32 @@ +import { AnimatePresence, motion } from 'framer-motion' +import { useRouter } from 'next/router' +import { ReactNode } from 'react' + +/** + * Types + */ +interface IProps { + children: ReactNode | ReactNode[] +} + +/** + * Components + */ +export default function RouteTransition({ children }: IProps) { + const { pathname } = useRouter() + + return ( + + + {children} + + + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/components/SessionCard.tsx b/advanced/wallets/reown-web-wallet/src/components/SessionCard.tsx new file mode 100644 index 000000000..94db25f70 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/components/SessionCard.tsx @@ -0,0 +1,62 @@ +import { truncate } from '@/utils/HelperUtil' +import { Avatar, Card, Link, Text } from '@nextui-org/react' +import Image from 'next/image' +import NextLink from 'next/link' + +/** + * Types + */ +interface IProps { + topic?: string + logo?: string + name?: string + url?: string +} + +/** + * Component + */ +export default function SessionCard({ logo, name, url, topic }: IProps) { + return ( + + + + +
+ + {name} + + + {truncate(url?.split('https://')[1] ?? 'Unknown', 23)} + +
+ + session icon +
+
+
+ ) +} diff --git a/advanced/wallets/reown-web-wallet/src/components/SessionChainCard.tsx b/advanced/wallets/reown-web-wallet/src/components/SessionChainCard.tsx new file mode 100644 index 000000000..963609653 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/components/SessionChainCard.tsx @@ -0,0 +1,70 @@ +import ChainCard from '@/components/ChainCard' +import { EIP155_MAINNET_CHAINS, EIP155_TEST_CHAINS } from '@/data/EIP155Data' +import { formatChainName } from '@/utils/HelperUtil' +import { Col, Row, Text } from '@nextui-org/react' +import { SessionTypes } from '@walletconnect/types' +import { Fragment } from 'react' + +/** + * Utilities + */ +const CHAIN_METADATA = { + ...EIP155_MAINNET_CHAINS, + ...EIP155_TEST_CHAINS, +} + +/** + * Types + */ +interface IProps { + namespace: SessionTypes.Namespace +} + +/** + * Component + */ +export default function SessionChainCard({ namespace }: IProps) { + const chains: string[] = [] + + // WIP + + namespace.accounts.forEach(account => { + const [type, chain] = account.split(':') + const chainId = `${type}:${chain}` + if (!chains.includes(chainId)) { + chains.push(chainId) + } + }) + + return ( + + {chains.map(chainId => { + const rgb = CHAIN_METADATA[chainId]?.rgb + + return ( + + + {formatChainName(chainId)} + + + + Methods + + {namespace.methods.length ? namespace.methods.join(', ') : '-'} + + + + + + Events + + {namespace.events.length ? namespace.events.join(', ') : '-'} + + + + + ) + })} + + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/components/SessionProposalChainCard.tsx b/advanced/wallets/reown-web-wallet/src/components/SessionProposalChainCard.tsx new file mode 100644 index 000000000..6797b3a4c --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/components/SessionProposalChainCard.tsx @@ -0,0 +1,58 @@ +import ChainCard from '@/components/ChainCard' +import { EIP155_MAINNET_CHAINS, EIP155_TEST_CHAINS } from '@/data/EIP155Data' +import { formatChainName } from '@/utils/HelperUtil' +import { Col, Row, Text } from '@nextui-org/react' +import { ProposalTypes } from '@walletconnect/types' +import { Fragment } from 'react' + +/** + * Utilities + */ +const CHAIN_METADATA = { + ...EIP155_MAINNET_CHAINS, + ...EIP155_TEST_CHAINS, +} + +/** + * Types + */ +interface IProps { + requiredNamespace: ProposalTypes.RequiredNamespace +} + +/** + * Component + */ +export default function SessionProposalChainCard({ requiredNamespace }: IProps) { + return ( + + {requiredNamespace.chains?.map(chainId => { + const rgb = CHAIN_METADATA[chainId]?.rgb + + return ( + + + {formatChainName(chainId)} + + + + Methods + + {requiredNamespace.methods.length ? requiredNamespace.methods.join(', ') : '-'} + + + + + + Events + + {requiredNamespace.events.length ? requiredNamespace.events.join(', ') : '-'} + + + + + ) + })} + + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/components/VerifyInfobox.tsx b/advanced/wallets/reown-web-wallet/src/components/VerifyInfobox.tsx new file mode 100644 index 000000000..4d74ff738 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/components/VerifyInfobox.tsx @@ -0,0 +1,113 @@ +import { useMemo } from 'react' +import { useSnapshot } from 'valtio' +import { Image, StyledText } from '@nextui-org/react' +import SettingsStore from '@/store/SettingsStore' +import ReportIcon from '@mui/icons-material/Report' +import ReportProblemIcon from '@mui/icons-material/ReportProblem' +import NewReleasesIcon from '@mui/icons-material/NewReleases' +import { Avatar, Col, Link, Row, Text, styled } from '@nextui-org/react' +import { SignClientTypes } from '@walletconnect/types' + +/** + * Types + */ +interface IProps { + metadata: SignClientTypes.Metadata +} + +const StyledContainer = styled(Row, { + padding: '7px', + borderRadius: '30px', + marginTop: '10px', + marginBottom: '10px' +} as any) + +const StyledUnknownRow = styled(StyledContainer, { + color: '$warning', + border: '0.5px solid $warning' +} as any) + +const StyledUnknownContainer = styled('div', { + textAlign: 'initial' +} as any) + +const StyledInvalidRow = styled(StyledContainer, { + color: '$error', + border: '0.5px solid $error' +} as any) + +const StyledInvalidContainer = styled('div', { + textAlign: 'initial' +} as any) + +const StyledDescription = styled(Text, { + lineHeight: '20px', + fontSize: '15px' +} as any) +/** + * Components + */ +export default function VerifyInfobox({ metadata }: IProps) { + const { currentRequestVerifyContext } = useSnapshot(SettingsStore.state) + const validation = currentRequestVerifyContext?.verified.validation + return ( +
+ {currentRequestVerifyContext?.verified.isScam ? ( + + + + + + Known secury risk + + + + This website is flagged as unsafe by multiple security reports. Leave immediately + to protect your assets. + + + + + + ) : validation == 'UNKNOWN' ? ( + + + + + + + Unknown domain + + + + + This domain cannot be verified. Please check the request carefully before + approving. + + + + + + ) : validation == 'INVALID' ? ( + + + + + + + <>Domain mismatch + + + + + This website has a domain that does not match the sender of this request. + Approving may lead to loss of funds. + + + + + + ) : null} +
+ ) +} diff --git a/advanced/wallets/reown-web-wallet/src/data/EIP155Data.ts b/advanced/wallets/reown-web-wallet/src/data/EIP155Data.ts new file mode 100644 index 000000000..e3a959eaf --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/data/EIP155Data.ts @@ -0,0 +1,131 @@ +/** + * @desc Refference list of eip155 chains + * @url https://chainlist.org + */ + +/** + * Types + */ +export type TEIP155Chain = keyof typeof EIP155_CHAINS + +export type EIP155Chain = { + chainId: number + name: string + logo: string + rgb: string + rpc: string + namespace: string +} + +/** + * Chains + */ +export const EIP155_MAINNET_CHAINS: Record = { + 'eip155:1': { + chainId: 1, + name: 'Ethereum', + logo: '/chain-logos/eip155-1.png', + rgb: '99, 125, 234', + rpc: 'https://cloudflare-eth.com/', + namespace: 'eip155' + }, + 'eip155:43114': { + chainId: 43114, + name: 'Avalanche C-Chain', + logo: '/chain-logos/eip155-43113.png', + rgb: '232, 65, 66', + rpc: 'https://api.avax.network/ext/bc/C/rpc', + namespace: 'eip155' + }, + 'eip155:137': { + chainId: 137, + name: 'Polygon', + logo: '/chain-logos/eip155-137.png', + rgb: '130, 71, 229', + rpc: 'https://polygon-rpc.com/', + namespace: 'eip155' + }, + 'eip155:10': { + chainId: 10, + name: 'Optimism', + logo: '/chain-logos/eip155-10.png', + rgb: '235, 0, 25', + rpc: 'https://mainnet.optimism.io', + namespace: 'eip155' + }, + 'eip155:324': { + chainId: 324, + name: 'zkSync Era', + logo: '/chain-logos/eip155-324.svg', + rgb: '242, 242, 242', + rpc: 'https://mainnet.era.zksync.io/', + namespace: 'eip155' + } +} + +export const EIP155_TEST_CHAINS: Record = { + 'eip155:5': { + chainId: 5, + name: 'Ethereum Goerli', + logo: '/chain-logos/eip155-1.png', + rgb: '99, 125, 234', + rpc: 'https://goerli.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161', + namespace: 'eip155', + }, + 'eip155:11155111': { + chainId: 11155111, + name: 'Ethereum Sepolia', + logo: '/chain-logos/eip155-1.png', + rgb: '99, 125, 234', + rpc: 'https://gateway.tenderly.co/public/sepolia', + namespace: 'eip155', + }, + 'eip155:43113': { + chainId: 43113, + name: 'Avalanche Fuji', + logo: '/chain-logos/eip155-43113.png', + rgb: '232, 65, 66', + rpc: 'https://api.avax-test.network/ext/bc/C/rpc', + namespace: 'eip155' + }, + 'eip155:80001': { + chainId: 80001, + name: 'Polygon Mumbai', + logo: '/chain-logos/eip155-137.png', + rgb: '130, 71, 229', + rpc: 'https://matic-mumbai.chainstacklabs.com', + namespace: 'eip155', + }, + 'eip155:420': { + chainId: 420, + name: 'Optimism Goerli', + logo: '/chain-logos/eip155-10.png', + rgb: '235, 0, 25', + rpc: 'https://goerli.optimism.io', + namespace: 'eip155' + }, + 'eip155:280': { + chainId: 280, + name: 'zkSync Era Testnet', + logo: '/chain-logos/eip155-324.svg', + rgb: '242, 242, 242', + rpc: 'https://testnet.era.zksync.dev/', + namespace: 'eip155' + } +} + +export const EIP155_CHAINS = { ...EIP155_MAINNET_CHAINS, ...EIP155_TEST_CHAINS } + +/** + * Methods + */ +export const EIP155_SIGNING_METHODS = { + PERSONAL_SIGN: 'personal_sign', + ETH_SIGN: 'eth_sign', + ETH_SIGN_TRANSACTION: 'eth_signTransaction', + ETH_SIGN_TYPED_DATA: 'eth_signTypedData', + ETH_SIGN_TYPED_DATA_V3: 'eth_signTypedData_v3', + ETH_SIGN_TYPED_DATA_V4: 'eth_signTypedData_v4', + ETH_SEND_RAW_TRANSACTION: 'eth_sendRawTransaction', + ETH_SEND_TRANSACTION: 'eth_sendTransaction' +} diff --git a/advanced/wallets/reown-web-wallet/src/data/EIP5792Data.ts b/advanced/wallets/reown-web-wallet/src/data/EIP5792Data.ts new file mode 100644 index 000000000..26f5f7315 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/data/EIP5792Data.ts @@ -0,0 +1,71 @@ +/** + * EIP5792Methods + */ +export const EIP5792_METHODS = { + WALLET_GET_CAPABILITIES: 'wallet_getCapabilities', + WALLET_SEND_CALLS: 'wallet_sendCalls', + WALLET_SHOW_CALLS_STATUS: 'wallet_showCallsStatus', + WALLET_GET_CALLS_STATUS: 'wallet_getCallsStatus' +} + +// capability names as string literals +export type CapabilityName = 'atomicBatch' | 'paymasterService' | 'sessionKey' +// Capability type where each key is a capability name and value has `supported` field +export type Capabilities = { + [K in CapabilityName]?: { + supported: boolean + } +} +// GetCapabilitiesResult type using mapped types +export type GetCapabilitiesResult = Record + +export type GetCallsParams = string +export type ShowCallsParams = string + +export type SendCallsParams = { + version: string + chainId: `0x${string}` // Hex chain id + from: `0x${string}` + calls: { + to: `0x${string}` + data?: `0x${string}` | undefined + value?: `0x${string}` | undefined // Hex value + }[] + capabilities?: Record | undefined +} + +export type GetCallsResult = { + status: 'PENDING' | 'CONFIRMED' + receipts?: { + logs: { + address: `0x${string}` + data: `0x${string}` + topics: `0x${string}`[] + }[] + status: `0x${string}` // Hex 1 or 0 for success or failure, respectively + blockHash: `0x${string}` + blockNumber: `0x${string}` + gasUsed: `0x${string}` + transactionHash: `0x${string}` + }[] +} + +// supportedEIP5792Capabilities object +export const supportedEIP5792CapabilitiesForEOA: GetCapabilitiesResult = { + // Not supporting any capabilities for now on EOA account +} +// supportedEIP5792Capabilities object +export const supportedEIP5792CapabilitiesForSCA: GetCapabilitiesResult = { + //Ethereum Sepolia + '0xaa36a7': { + // paymasterService: { + // supported: true, + // }, + // sessionKey: { + // supported: true, + // }, + atomicBatch: { + supported: true + } + } +} diff --git a/advanced/wallets/reown-web-wallet/src/data/RelayerRegions.ts b/advanced/wallets/reown-web-wallet/src/data/RelayerRegions.ts new file mode 100644 index 000000000..2df3ec4b9 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/data/RelayerRegions.ts @@ -0,0 +1,31 @@ +/** + * Types + */ + +type RelayerType = { + value: string + label: string +} + +/** + * Relayer Regions + */ +export const REGIONALIZED_RELAYER_ENDPOINTS: RelayerType[] = [ + { + value: 'wss://relay.walletconnect.com', + label: 'Default' + }, + + { + value: 'wss://us-east-1.relay.walletconnect.com', + label: 'US' + }, + { + value: 'wss://eu-central-1.relay.walletconnect.com', + label: 'EU' + }, + { + value: 'wss://ap-southeast-1.relay.walletconnect.com', + label: 'Asia Pacific' + } +] diff --git a/advanced/wallets/reown-web-wallet/src/data/chainsUtil.ts b/advanced/wallets/reown-web-wallet/src/data/chainsUtil.ts new file mode 100644 index 000000000..16d71a268 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/data/chainsUtil.ts @@ -0,0 +1,13 @@ +import { EIP155_CHAINS } from './EIP155Data' + +export const ALL_CHAINS = { + ...EIP155_CHAINS, +} + +export function getChainData(chainId?: string) { + if (!chainId) return + const [namespace, reference] = chainId.toString().split(':') + return Object.values(ALL_CHAINS).find( + chain => String(chain.chainId) === reference && chain.namespace === namespace + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/hooks/useAppKitProviderEventsManager.ts b/advanced/wallets/reown-web-wallet/src/hooks/useAppKitProviderEventsManager.ts new file mode 100644 index 000000000..3fd578516 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/hooks/useAppKitProviderEventsManager.ts @@ -0,0 +1,94 @@ +import { W3mFrameProvider } from "@reown/appkit-wallet" +import { Provider, useAppKit, useAppKitAccount, useAppKitProvider, useAppKitState } from '@reown/appkit/react' + +import { useCallback, useEffect } from "react" +import { walletKit } from '@/utils/WalletConnectUtil' +import ModalStore from "@/store/ModalStore" +import { useRouter } from "next/router" + +export default function useAppKitProviderEventsManager() { + const router = useRouter() + const { open } = useAppKitState() + const { walletProvider } = useAppKitProvider('eip155') + const { address, isConnected, caipAddress, status } = useAppKitAccount() + const appkit= useAppKit() + + useEffect(() => { + if (open) { + console.log('closing modal because open is true') + ModalStore.close() + } + }, [open]) + + + const onConnect = useCallback(async () => { + console.log('onConnect') + + const uri = router.query.uri as string + + if (uri) { + console.log('pairing with uri', uri) + try { + await walletKit.pair({ uri }) + } catch (error) { + console.error('pairing error', error) + } + } + }, [walletKit]) + + const handleSetPreferredAccount = async (account: any) => { + console.log('onSetPreferredAccount', account.address) + + const {chainId} = await walletProvider.getChainId(); + + const caip10Address = `eip155:${chainId}:${account.address}` + + const sessions = Object.values(walletKit.getActiveSessions()) + console.log('sessions', sessions) + + sessions.forEach(async session => { + const currentAccounts = session.namespaces.eip155.accounts; + const updatedAccounts = [ + caip10Address, + ...currentAccounts.filter(acc => acc !== caip10Address) + ]; + + console.log('accounts', currentAccounts, updatedAccounts) + + await walletKit.updateSession({ + topic: session.topic, + namespaces: { + ...session.namespaces, + eip155: { + ...session.namespaces.eip155, + accounts: updatedAccounts + } + } + }) + }) + } + + + useEffect(() => { + if (status === 'reconnecting' || status === 'connecting' || status === undefined) { + ModalStore.open('AppKitConnectionModal', undefined) + return + } + + if (status === 'disconnected') { + appkit.open() + return + } + + if (walletProvider) { + ModalStore.close() + appkit.close() + + onConnect() + // walletProvider.onConnect(onConnect) + + walletProvider.onSetPreferredAccount(handleSetPreferredAccount) + } + + }, [isConnected, walletProvider, status]) +} \ No newline at end of file diff --git a/advanced/wallets/reown-web-wallet/src/hooks/useInitialization.ts b/advanced/wallets/reown-web-wallet/src/hooks/useInitialization.ts new file mode 100644 index 000000000..4fa773f71 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/hooks/useInitialization.ts @@ -0,0 +1,49 @@ +import SettingsStore from '@/store/SettingsStore' +import { createWalletKit, walletKit } from '@/utils/WalletConnectUtil' +import { useAppKit, useAppKitAccount } from '@reown/appkit/react' +import { useCallback, useEffect, useRef, useState } from 'react' +import { useSnapshot } from 'valtio' + +export default function useInitialization() { + const [initialized, setInitialized] = useState(false) + const prevRelayerURLValue = useRef('') + const { address } = useAppKitAccount() + const modal = useAppKit() + + const { relayerRegionURL } = useSnapshot(SettingsStore.state) + + const onInitialize = useCallback(async () => { + try { + await createWalletKit(relayerRegionURL) + setInitialized(true) + if (address) { + SettingsStore.setEIP155Address(address) + } + } catch (err: unknown) { + console.error('Initialization failed', err) + alert(err) + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [relayerRegionURL]) + + // restart transport if relayer region changes + const onRelayerRegionChange = useCallback(() => { + try { + walletKit?.core?.relayer.restartTransport(relayerRegionURL) + prevRelayerURLValue.current = relayerRegionURL + } catch (err: unknown) { + alert(err) + } + }, [relayerRegionURL]) + + useEffect(() => { + if (!initialized) { + onInitialize() + } + if (prevRelayerURLValue.current !== relayerRegionURL) { + onRelayerRegionChange() + } + }, [initialized, onInitialize, relayerRegionURL, onRelayerRegionChange]) + + return initialized +} diff --git a/advanced/wallets/reown-web-wallet/src/hooks/useWalletConnectEventsManager.ts b/advanced/wallets/reown-web-wallet/src/hooks/useWalletConnectEventsManager.ts new file mode 100644 index 000000000..4bde97196 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/hooks/useWalletConnectEventsManager.ts @@ -0,0 +1,120 @@ +import { WalletKitTypes } from '@reown/walletkit' +import { EIP155_SIGNING_METHODS } from '@/data/EIP155Data' +import ModalStore from '@/store/ModalStore' +import SettingsStore from '@/store/SettingsStore' +import { walletKit } from '@/utils/WalletConnectUtil' +import { SignClientTypes } from '@walletconnect/types' +import { useCallback, useEffect } from 'react' +import { Provider, useAppKitAccount, useAppKitProvider } from '@reown/appkit/react' +import { approveEIP155Request, rejectEIP155Request } from '@/utils/EIP155RequestHandlerUtil' +import { formatJsonRpcResult } from '@json-rpc-tools/utils' +import type { W3mFrameProvider, W3mFrameTypes } from '@reown/appkit-wallet'; + + +export default function useWalletConnectEventsManager(initialized: boolean) { + const { walletProvider } = useAppKitProvider('eip155') + + /****************************************************************************** + * 1. Open session proposal modal for confirmation / rejection + *****************************************************************************/ + const onSessionProposal = useCallback( + async (proposal: SignClientTypes.EventArguments['session_proposal']) => { + console.log('useWalletConnectEventsManager: session_proposal', proposal) + + // set the verify context so it can be displayed in the projectInfoCard + SettingsStore.setCurrentRequestVerifyContext(proposal.verifyContext) + console.log('Session Proposal - Opening modal', proposal) + ModalStore.open('SessionProposalModal', { proposal }) + }, + [walletKit] + ) + /****************************************************************************** + * 2. Open Auth modal for confirmation / rejection + *****************************************************************************/ + const onAuthRequest = useCallback((request: WalletKitTypes.SessionAuthenticate) => { + console.log('onAuthRequest', request) + ModalStore.open('AuthRequestModal', { request }) + }, []) + + /****************************************************************************** + * 3. Open request handling modal based on method that was used + *****************************************************************************/ + const onSessionRequest = useCallback( + async (requestEvent: SignClientTypes.EventArguments['session_request']) => { + console.log('onSessionRequest', requestEvent) + const { topic, params, verifyContext, id } = requestEvent + const { request, chainId: requestChainId } = params + const requestSession = walletKit.engine.signClient.session.get(topic) + + if (!walletProvider) { + console.log('AppKit wallet provider is not ready. Rejecting request.') + return; + } + + // set the verify context so it can be displayed in the projectInfoCard + SettingsStore.setCurrentRequestVerifyContext(verifyContext) + console.log('requestEvent', requestEvent, walletProvider) + + const { chainId: activeEthChainId } = await walletProvider.getChainId() + + const activeChainId = `eip155:${activeEthChainId}` + + if (requestChainId !== activeChainId) { + ModalStore.open('LoadingModal', {loadingMessage: 'Switching network...'}) + await walletProvider.switchNetwork(requestChainId) + ModalStore.close() + } + + try { + // request.params.chainId = requestChainId.split(':')[1] + console.log('resolving request', request) + const response = await walletProvider.request(request as any) + console.log('response', response) + await walletKit.respondSessionRequest({ + topic, + response: formatJsonRpcResult(id, response) + }) + } catch (e) { + console.error('error', e) + const response = rejectEIP155Request(requestEvent) + await walletKit.respondSessionRequest({ + topic, + response + }) + } + }, + [walletKit, walletProvider] + ) + + const onSessionAuthenticate = useCallback( + (authRequest: SignClientTypes.EventArguments['session_authenticate']) => { + ModalStore.open('SessionAuthenticateModal', { authRequest }) + }, + [] + ) + + /****************************************************************************** + * Set up WalletConnect event listeners + *****************************************************************************/ + useEffect(() => { + if (initialized && walletKit) { + + //window['walletKit'] = walletKit + console.log('setting up walletconnect event listeners') + //sign + walletKit.on('session_proposal', onSessionProposal) + walletKit.on('session_request', onSessionRequest) + // auth + // walletKit.on('session_authenticate', onAuthRequest) + // TODOs + walletKit.engine.signClient.events.on('session_ping', data => console.log('ping', data)) + walletKit.on('session_delete', data => { + console.log('session_delete event received', data) + SettingsStore.setSessions(Object.values(walletKit.getActiveSessions())) + }) + // walletKit.on('session_authenticate', onSessionAuthenticate) + // load sessions on init + SettingsStore.setSessions(Object.values(walletKit.getActiveSessions())) + } + }, [initialized, walletKit, onAuthRequest, onSessionProposal, onSessionRequest, onSessionAuthenticate]) +} diff --git a/advanced/wallets/reown-web-wallet/src/pages/_app.tsx b/advanced/wallets/reown-web-wallet/src/pages/_app.tsx new file mode 100644 index 000000000..e01310271 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/pages/_app.tsx @@ -0,0 +1,75 @@ +import { Toaster } from 'react-hot-toast' +import { useEffect } from 'react' +import { createTheme, NextUIProvider } from '@nextui-org/react' + +import Layout from '@/components/Layout' +import Modal from '@/components/Modal' +import useInitialization from '@/hooks/useInitialization' +import useWalletConnectEventsManager from '@/hooks/useWalletConnectEventsManager' +import { walletKit } from '@/utils/WalletConnectUtil' +import { RELAYER_EVENTS } from '@walletconnect/core' +import type { AppProps } from 'next/app' +import '../../public/main.css' +import { styledToast } from '@/utils/HelperUtil' +import { createAppKit } from '@reown/appkit/react' +import { EthersAdapter } from '@reown/appkit-adapter-ethers' +import { mainnet, polygon, optimism, avalanche} from '@reown/appkit/networks' +import useAppKitProviderEventsManager from '@/hooks/useAppKitProviderEventsManager' + +const ethersAdapter = new EthersAdapter() + +const metadata = { + name: 'Reown Web Wallet', + description: 'Reown Web Wallet', + url: 'reown-web-wallet.vercel.app', + icons: ['https://avatars.githubusercontent.com/u/37784886'], + redirect: { + native: typeof window !== 'undefined' ? window.location.origin : undefined + } +} + +const modal = createAppKit({ + adapters: [ethersAdapter], + networks: [mainnet, polygon, optimism, avalanche], + defaultNetwork: mainnet, + projectId: process.env.NEXT_PUBLIC_PROJECT_ID as string, + features: { + analytics: true, + emailShowWallets: false, + }, + allWallets: 'HIDE', + metadata +}) + + +export default function App({ Component, pageProps }: AppProps) { + // Step 1 - Initialize wallets and wallet connect client + const initialized = useInitialization() + + // Step 2 - Once initialized, set up wallet connect event manager + useWalletConnectEventsManager(initialized) + useAppKitProviderEventsManager() + useEffect(() => { + if (!initialized) return + walletKit?.core.relayer.on(RELAYER_EVENTS.connect, () => { + styledToast('Network connection is restored!', 'success') + }) + + walletKit?.core.relayer.on(RELAYER_EVENTS.disconnect, () => { + styledToast('Network connection lost.', 'error') + }) + }, [initialized]) + + + + return ( + + + + + + + + + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/pages/index.tsx b/advanced/wallets/reown-web-wallet/src/pages/index.tsx new file mode 100644 index 000000000..481895865 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/pages/index.tsx @@ -0,0 +1,35 @@ +import AccountCard from '@/components/AccountCard' +import PageHeader from '@/components/PageHeader' +import { EIP155_MAINNET_CHAINS } from '@/data/EIP155Data' +import { Text } from '@nextui-org/react' +import { Fragment } from 'react' +import { useAppKitAccount } from '@reown/appkit/react' +import { Box } from '@mui/material' + +export default function HomePage() { + const { address } = useAppKitAccount() + return address ? ( + + + + + + + + Mainnets + + {Object.entries(EIP155_MAINNET_CHAINS).map(([caip10, { name, logo, rgb }]) => ( + + ))} + + + ) : +} diff --git a/advanced/wallets/reown-web-wallet/src/pages/pairings.tsx b/advanced/wallets/reown-web-wallet/src/pages/pairings.tsx new file mode 100644 index 000000000..182b1d5e1 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/pages/pairings.tsx @@ -0,0 +1,41 @@ +import PageHeader from '@/components/PageHeader' +import PairingCard from '@/components/PairingCard' +import { walletKit } from '@/utils/WalletConnectUtil' +import { Text } from '@nextui-org/react' +import { getSdkError } from '@walletconnect/utils' +import { Fragment, useState } from 'react' + +export default function PairingsPage() { + const [pairings, setPairings] = useState(walletKit?.core?.pairing?.getPairings()) + + async function onDelete(topic: string) { + await walletKit.disconnectSession({ topic, reason: getSdkError('USER_DISCONNECTED') }) + const newPairings = pairings.filter(pairing => pairing.topic !== topic) + setPairings(newPairings) + } + + return ( + + + {pairings.length ? ( + pairings.map(pairing => { + const { peerMetadata } = pairing + + return ( + onDelete(pairing.topic)} + data-testid={'pairing-' + pairing.topic} + /> + ) + }) + ) : ( + No pairings + )} + + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/pages/request.tsx b/advanced/wallets/reown-web-wallet/src/pages/request.tsx new file mode 100644 index 000000000..0bbe607d0 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/pages/request.tsx @@ -0,0 +1,71 @@ +import PageHeader from "@/components/PageHeader"; +import { walletKit } from "@/utils/WalletConnectUtil"; +import { formatJsonRpcResult } from "@json-rpc-tools/utils"; +import { W3mFrameProvider } from "@reown/appkit-wallet"; +import { useAppKitAccount, useAppKitProvider } from "@reown/appkit/react"; +import { useRouter } from "next/router"; +import { useEffect } from "react"; +import { rejectEIP155Request } from '@/utils/EIP155RequestHandlerUtil' +import ModalStore from '@/store/ModalStore' + +export default function RequestPage() { + const { walletProvider } = useAppKitProvider('eip155') + const { address, isConnected, caipAddress, status } = useAppKitAccount() + + const router = useRouter() + + useEffect(() => { + if (!isConnected || !walletProvider || !walletKit) { + return + } + + (async () => { + const pendingRequests = walletKit.getPendingSessionRequests() + console.log('pendingRequests', pendingRequests) + + if (pendingRequests.length !== 0) { + const { chainId: activeEthChainId } = await walletProvider.getChainId() + const activeChainId = `eip155:${activeEthChainId}` + + pendingRequests.forEach(async request => { + try { + const requestedChainId = request.params.chainId + if (requestedChainId !== activeChainId) { + ModalStore.open('LoadingModal', {loadingMessage: 'Switching network...'}) + await walletProvider.switchNetwork(requestedChainId) + ModalStore.close() + } + + const response = await walletProvider.request(request.params.request as any) + console.log('response', response) + await walletKit.respondSessionRequest({ + topic: request.topic, + response: formatJsonRpcResult(request.id, response) + }) + } catch (e) { + console.error('error', e) + const response = rejectEIP155Request(request) + await walletKit.respondSessionRequest({ + topic: request.topic, + response + }) + } + }) + + const redirect = router.query.redirect as string + if (redirect) { + window.location.assign(redirect) + } + + } + })() + + }, [walletProvider, walletKit]) + + + return ( + <> + + + ) +} \ No newline at end of file diff --git a/advanced/wallets/reown-web-wallet/src/pages/session.tsx b/advanced/wallets/reown-web-wallet/src/pages/session.tsx new file mode 100644 index 000000000..db7d27fdc --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/pages/session.tsx @@ -0,0 +1,228 @@ +/* eslint-disable react-hooks/rules-of-hooks */ +import PageHeader from '@/components/PageHeader' +import ProjectInfoCard from '@/components/ProjectInfoCard' +import SessionChainCard from '@/components/SessionChainCard' +import { styledToast } from '@/utils/HelperUtil' +import { walletKit } from '@/utils/WalletConnectUtil' +import { Button, Col, Divider, Loading, Row, Text } from '@nextui-org/react' +import { getSdkError } from '@walletconnect/utils' +import { useRouter } from 'next/router' +import { Fragment, useCallback, useEffect, useMemo, useState } from 'react' + +/** + * Component + */ +export default function SessionPage() { + const [topic, setTopic] = useState('') + const [updated, setUpdated] = useState(new Date()) + const { query, replace } = useRouter() + const [updateLoading, setUpdateLoading] = useState(false) + const [pingLoading, setPingLoading] = useState(false) + const [emitLoading, setEmitLoading] = useState(false) + const [deleteLoading, setDeleteLoading] = useState(false) + const [pendingRequests, setPendingRequests] = useState([]) + + useEffect(() => { + if (query?.topic) { + setTopic(query.topic as string) + } + }, [query]) + + const session = useMemo( + () => walletKit.engine.signClient.session.values.find(s => s.topic === topic), + [topic] + ) + const namespaces = useMemo(() => session?.namespaces, [session]) + + // Get necessary data from session + const expiryDate = useMemo(() => new Date(session?.expiry! * 1000), [session]) + const getPendingRequests = useCallback(() => { + if (!session) return + const allPending = walletKit.getPendingSessionRequests() + const requestsForSession = allPending?.filter(r => r.topic === session.topic) + setPendingRequests(requestsForSession) + }, [session]) + + useEffect(() => { + const interval = setInterval(() => { + getPendingRequests() + }, 1000) + getPendingRequests() + return () => clearInterval(interval) + }, [getPendingRequests]) + + // Handle deletion of a session + const onDeleteSession = useCallback(async () => { + setDeleteLoading(true) + try { + await walletKit.disconnectSession({ topic, reason: getSdkError('USER_DISCONNECTED') }) + replace('/sessions') + } catch (e) { + styledToast((e as Error).message, 'error') + } + setDeleteLoading(false) + }, [topic, replace]) + + const onSessionPing = useCallback(async () => { + setPingLoading(true) + await walletKit.engine.signClient.ping({ topic }) + setPingLoading(false) + }, [topic]) + + const onSessionEmit = useCallback(async () => { + setEmitLoading(true) + try { + const namespace = Object.keys(session?.namespaces!)[0] + const chainId = session?.namespaces[namespace].chains?.[0] + await walletKit.emitSessionEvent({ + topic, + event: { name: 'chainChanged', data: 'Hello World' }, + chainId: chainId! // chainId: 'eip155:1' + }) + } catch (e) { + styledToast((e as Error).message, 'error') + } + setEmitLoading(false) + }, [session?.namespaces, topic]) + + const onSessionUpdate = useCallback(async () => { + setUpdateLoading(true) + try { + const session = walletKit.engine.signClient.session.get(topic) + const baseAddress = '0x70012948c348CBF00806A3C79E3c5DAdFaAa347' + const namespaceKeyToUpdate = Object.keys(session?.namespaces)[0] + const namespaceToUpdate = session?.namespaces[namespaceKeyToUpdate] + await walletKit.updateSession({ + topic, + namespaces: { + ...session?.namespaces, + [namespaceKeyToUpdate]: { + ...session?.namespaces[namespaceKeyToUpdate], + accounts: namespaceToUpdate.accounts.concat( + `${namespaceToUpdate.chains?.[0]}:${baseAddress}${Math.floor( + Math.random() * (9 - 1 + 1) + 0 + )}` + ) // generates random number between 0 and 9 + } + } + }) + setUpdated(new Date()) + } catch (e) { + styledToast((e as Error).message, 'error') + } + setUpdateLoading(false) + }, [topic]) + + return !session ? ( + <> + ) : ( + + + + + + + {pendingRequests.length > 0 ? ( + + + Pending Requests ({pendingRequests.length}) + + {pendingRequests.map((request, index) => { + return ( + + + + + {request.id} - ⏳{' '} + {( + (request.params.request?.expiryTimestamp * 1000 - Date.now()) / + 1000 + ).toFixed(0)} + s + + + + + ) + })} + + + ) : null} + {namespaces && + Object.keys(namespaces).map(chain => { + return ( + + {`Review ${chain} permissions`} + + + + ) + })} + + + Expiry + + {expiryDate.toDateString()} - {expiryDate.toLocaleTimeString()} + + + + + Last Updated + + {updated.toDateString()} - {updated.toLocaleTimeString()} + + + + + + + + + + + + + + + + + + + + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/pages/sessions.tsx b/advanced/wallets/reown-web-wallet/src/pages/sessions.tsx new file mode 100644 index 000000000..f51c8bc9b --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/pages/sessions.tsx @@ -0,0 +1,40 @@ +import PageHeader from '@/components/PageHeader' +import SessionCard from '@/components/SessionCard' +import SettingsStore from '@/store/SettingsStore' +import { Text } from '@nextui-org/react' +import { Fragment } from 'react' +import { useSnapshot } from 'valtio' + +export default function SessionsPage() { + const { sessions } = useSnapshot(SettingsStore.state) + + if (!sessions.length) { + return ( + + + No sessions + + ) + } + + return ( + + + {sessions.length + ? sessions.map(session => { + const { name, icons, url } = session.peer.metadata + + return ( + + ) + }) + : null} + + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/pages/settings.tsx b/advanced/wallets/reown-web-wallet/src/pages/settings.tsx new file mode 100644 index 000000000..df0c3c96a --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/pages/settings.tsx @@ -0,0 +1,50 @@ +import PageHeader from '@/components/PageHeader' +import RelayRegionPicker from '@/components/RelayRegionPicker' +import SettingsStore from '@/store/SettingsStore' +import { Card, Divider, Row, Switch, Text } from '@nextui-org/react' +import { Fragment } from 'react' +import { useSnapshot } from 'valtio' +import packageJSON from '../../package.json' + +export default function SettingsPage() { + const { + testNets, + } = useSnapshot(SettingsStore.state) + + return ( + + + + + Packages + + + @walletconnect/sign-client + {packageJSON.dependencies['@reown/walletkit']} + + + + + + Testnets + + + + {testNets ? 'Enabled' : 'Disabled'} + + + + + + + Relayer Region + + + + + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/pages/walletconnect.tsx b/advanced/wallets/reown-web-wallet/src/pages/walletconnect.tsx new file mode 100644 index 000000000..f06113127 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/pages/walletconnect.tsx @@ -0,0 +1,86 @@ +import { parseUri } from '@walletconnect/utils' +import PageHeader from '@/components/PageHeader' +import QrReader from '@/components/QrReader' +import { walletKit } from '@/utils/WalletConnectUtil' +import { Button, Input, Loading, Text } from '@nextui-org/react' +import { Fragment, useEffect, useState } from 'react' +import { styledToast } from '@/utils/HelperUtil' +import ModalStore from '@/store/ModalStore' + +export default function WalletConnectPage(params: { deepLink?: string }) { + const { deepLink } = params + const [uri, setUri] = useState('') + const [loading, setLoading] = useState(false) + + async function onConnect(uri: string) { + const { topic: pairingTopic } = parseUri(uri) + // if for some reason, the proposal is not received, we need to close the modal when the pairing expires (5mins) + const pairingExpiredListener = ({ topic }: { topic: string }) => { + console.log('pairingExpiredListener', topic) + if (pairingTopic === topic) { + styledToast('Pairing expired. Please try again with new Connection URI', 'error') + ModalStore.close() + walletKit.core.pairing.events.removeListener('pairing_expire', pairingExpiredListener) + } + } + walletKit.once('session_proposal', (proposal) => { + console.log('session_proposal', proposal) + walletKit.core.pairing.events.removeListener('pairing_expire', pairingExpiredListener) + }) + try { + setLoading(true) + walletKit.core.pairing.events.on('pairing_expire', pairingExpiredListener) + await walletKit.pair({ uri }) + } catch (error) { + console.log('error', error) + styledToast((error as Error).message, 'error') + ModalStore.close() + } finally { + setLoading(false) + setUri('') + } + } + + useEffect(() => { + if (deepLink) { + console.log('wc page -- deepLink', deepLink) + + // onConnect(deepLink) + } + }, [deepLink]) + + return ( + + + <> + + + + or use walletconnect uri + + + setUri(e.target.value)} + value={uri} + data-testid="uri-input" + contentRight={ + + } + /> + + + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/pages/wc.tsx b/advanced/wallets/reown-web-wallet/src/pages/wc.tsx new file mode 100644 index 000000000..b2cdc4690 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/pages/wc.tsx @@ -0,0 +1,56 @@ +import { Text } from '@nextui-org/react' +import { Fragment, useCallback, useEffect, useState } from 'react' +import { useRouter } from 'next/router' +import WalletConnectPage from './walletconnect' +import ModalStore from '@/store/ModalStore' +import { useSnapshot } from 'valtio' + +export default function DeepLinkPairingPage() { + const state = useSnapshot(ModalStore.state) + const router = useRouter() + const [loadingMessage, setLoadingMessage] = useState('') + const [requestTimeout, setRequestTimeout] = useState(null) + + const uri = router.query.uri as string + const requestId = router.query.requestId as string + + const removeTimeout = useCallback(() => { + if (requestTimeout) { + clearTimeout(requestTimeout) + } + }, [requestTimeout]) + + useEffect(() => { + if (state.view == 'LoadingModal') { + const timeout = setTimeout(() => { + setLoadingMessage('Your request is taking longer than usual. Feel free to try again.') + }, 15_000) + setRequestTimeout(timeout) + } else if (state.view) { + removeTimeout() + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [state.view]) + + // useEffect(() => { + // if (requestId) { + // ModalStore.open('LoadingModal', { loadingMessage }) + // } + + // if (uri) { + // ModalStore.open('LoadingModal', { loadingMessage }) + // } + // }, [uri, requestId, loadingMessage]) + + if (!uri && !requestId) { + return ( + + + No URI provided via `?uri=` params + + + ) + } + + return +} diff --git a/advanced/wallets/reown-web-wallet/src/store/ModalStore.ts b/advanced/wallets/reown-web-wallet/src/store/ModalStore.ts new file mode 100644 index 000000000..fd112a1fe --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/store/ModalStore.ts @@ -0,0 +1,65 @@ +import { SessionTypes, SignClientTypes } from '@walletconnect/types' +import { WalletKitTypes } from '@reown/walletkit' +import { proxy } from 'valtio' + +/** + * Types + */ +interface ModalData { + proposal?: SignClientTypes.EventArguments['session_proposal'] + requestEvent?: SignClientTypes.EventArguments['session_request'] + requestSession?: SessionTypes.Struct + request?: WalletKitTypes.SessionAuthenticate + loadingMessage?: string + authRequest?: SignClientTypes.EventArguments['session_authenticate'] +} + +interface State { + open: boolean + view?: + | 'SessionProposalModal' + | 'SessionSignModal' + | 'SessionSignTypedDataModal' + | 'SessionSendTransactionModal' + | 'SessionSendCallsModal' + | 'SessionUnsuportedMethodModal' + | 'SessionSignCosmosModal' + | 'SessionSignSolanaModal' + | 'SessionSignPolkadotModal' + | 'SessionSignNearModal' + | 'SessionSignMultiversxModal' + | 'SessionSignTronModal' + | 'SessionSignTezosModal' + | 'SessionSignKadenaModal' + | 'AuthRequestModal' + | 'SessionAuthenticateModal' + | 'LoadingModal' + | 'AppKitConnectionModal', + data?: ModalData +} + +/** + * State + */ +const state = proxy({ + open: false +}) + +/** + * Store / Actions + */ +const ModalStore = { + state, + + open(view: State['view'], data: State['data']) { + state.view = view + state.data = data + state.open = true + }, + + close() { + state.open = false + } +} + +export default ModalStore diff --git a/advanced/wallets/reown-web-wallet/src/store/SettingsStore.ts b/advanced/wallets/reown-web-wallet/src/store/SettingsStore.ts new file mode 100644 index 000000000..5a56c818d --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/store/SettingsStore.ts @@ -0,0 +1,118 @@ +import { Verify, SessionTypes } from '@walletconnect/types' +import { proxy } from 'valtio' + +const TEST_NETS_ENABLED_KEY = 'TEST_NETS' + +/** + * Types + */ +interface State { + testNets: boolean + account: number + eip155Address: string + cosmosAddress: string + solanaAddress: string + polkadotAddress: string + nearAddress: string + multiversxAddress: string + tronAddress: string + tezosAddress: string + kadenaAddress: string + relayerRegionURL: string + activeChainId: string + currentRequestVerifyContext?: Verify.Context + sessions: SessionTypes.Struct[] +} + +/** + * State + */ +const state = proxy({ + testNets: + typeof localStorage !== 'undefined' + ? Boolean(localStorage.getItem(TEST_NETS_ENABLED_KEY)) + : true, + account: 0, + activeChainId: '1', + eip155Address: '', + cosmosAddress: '', + solanaAddress: '', + polkadotAddress: '', + nearAddress: '', + multiversxAddress: '', + tronAddress: '', + tezosAddress: '', + kadenaAddress: '', + relayerRegionURL: '', + sessions: [], +}) + +/** + * Store / Actions + */ +const SettingsStore = { + state, + + setAccount(value: number) { + state.account = value + }, + + setEIP155Address(eip155Address: string) { + state.eip155Address = eip155Address + }, + + setCosmosAddress(cosmosAddresses: string) { + state.cosmosAddress = cosmosAddresses + }, + + setSolanaAddress(solanaAddress: string) { + state.solanaAddress = solanaAddress + }, + + setPolkadotAddress(polkadotAddress: string) { + state.polkadotAddress = polkadotAddress + }, + setNearAddress(nearAddress: string) { + state.nearAddress = nearAddress + }, + setKadenaAddress(kadenaAddress: string) { + state.kadenaAddress = kadenaAddress + }, + setRelayerRegionURL(relayerRegionURL: string) { + state.relayerRegionURL = relayerRegionURL + }, + + setMultiversxAddress(multiversxAddress: string) { + state.multiversxAddress = multiversxAddress + }, + + setTronAddress(tronAddress: string) { + state.tronAddress = tronAddress + }, + + setTezosAddress(tezosAddress: string) { + state.tezosAddress = tezosAddress + }, + + setActiveChainId(value: string) { + state.activeChainId = value + }, + + setCurrentRequestVerifyContext(context: Verify.Context) { + state.currentRequestVerifyContext = context + }, + setSessions(sessions: SessionTypes.Struct[]) { + state.sessions = sessions + }, + + toggleTestNets() { + state.testNets = !state.testNets + if (state.testNets) { + localStorage.setItem(TEST_NETS_ENABLED_KEY, 'YES') + } else { + localStorage.removeItem(TEST_NETS_ENABLED_KEY) + } + }, +} + +export default SettingsStore diff --git a/advanced/wallets/reown-web-wallet/src/utils/EIP155RequestHandlerUtil.ts b/advanced/wallets/reown-web-wallet/src/utils/EIP155RequestHandlerUtil.ts new file mode 100644 index 000000000..d36392e16 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/utils/EIP155RequestHandlerUtil.ts @@ -0,0 +1,84 @@ +import { EIP155_CHAINS, EIP155_SIGNING_METHODS, TEIP155Chain } from '@/data/EIP155Data' +import { getSignParamsMessage, getSignTypedDataParamsData } from '@/utils/HelperUtil' +import { formatJsonRpcError, formatJsonRpcResult } from '@json-rpc-tools/utils' +import { SignClientTypes } from '@walletconnect/types' +import { getSdkError } from '@walletconnect/utils' +import SettingsStore from '@/store/SettingsStore' +import { Eip1193Provider, JsonRpcProvider, Provider } from 'ethers' + +type RequestEventArgs = Omit + +export async function approveEIP155Request(requestEvent: RequestEventArgs, provider: Eip1193Provider) { + const { params, id } = requestEvent + const { chainId, request } = params + + SettingsStore.setActiveChainId(chainId) + + + switch (request.method) { + case EIP155_SIGNING_METHODS.PERSONAL_SIGN: + case EIP155_SIGNING_METHODS.ETH_SIGN: + try { + const message = getSignParamsMessage(request.params) + const signedMessage = await provider.request(request) + return formatJsonRpcResult(id, signedMessage) + } catch (error: any) { + console.error(error) + alert(error.message) + return formatJsonRpcError(id, error.message) + } + + case EIP155_SIGNING_METHODS.ETH_SIGN_TYPED_DATA: + case EIP155_SIGNING_METHODS.ETH_SIGN_TYPED_DATA_V3: + case EIP155_SIGNING_METHODS.ETH_SIGN_TYPED_DATA_V4: + try { + const { + domain, + types, + message: data, + primaryType + } = getSignTypedDataParamsData(request.params) + + // https://github.com/ethers-io/ethers.js/issues/687#issuecomment-714069471 + delete types.EIP712Domain + const signedData = await provider.request({ + method: request.method, + params: [data, primaryType, domain] + }) + return formatJsonRpcResult(id, signedData) + } catch (error: any) { + console.error(error) + alert(error.message) + return formatJsonRpcError(id, error.message) + } + + case EIP155_SIGNING_METHODS.ETH_SEND_TRANSACTION: + try { + const hash = await provider.request(request) + const receipt = typeof hash === 'string' ? hash : hash?.hash // TODO improve interface + return formatJsonRpcResult(id, receipt) + } catch (error: any) { + console.error(error) + alert(error.message) + return formatJsonRpcError(id, error.message) + } + + case EIP155_SIGNING_METHODS.ETH_SIGN_TRANSACTION: + try { + const signature = await provider.request(request) + return formatJsonRpcResult(id, signature) + } catch (error: any) { + console.error(error) + alert(error.message) + return formatJsonRpcError(id, error.message) + } + default: + throw new Error(getSdkError('INVALID_METHOD').message) + } +} + +export function rejectEIP155Request(request: RequestEventArgs) { + const { id } = request + + return formatJsonRpcError(id, getSdkError('USER_REJECTED').message) +} diff --git a/advanced/wallets/reown-web-wallet/src/utils/HelperUtil.ts b/advanced/wallets/reown-web-wallet/src/utils/HelperUtil.ts new file mode 100644 index 000000000..c8791197a --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/utils/HelperUtil.ts @@ -0,0 +1,169 @@ +import toast from 'react-hot-toast' +import { EIP155_CHAINS, TEIP155Chain } from '@/data/EIP155Data' + +import { isAddress, isHexString, toUtf8String } from 'ethers' + +/** + * Truncates string (in the middle) via given lenght value + */ +export function truncate(value: string, length: number) { + if (value?.length <= length) { + return value + } + + const separator = '...' + const stringLength = length - separator.length + const frontLength = Math.ceil(stringLength / 2) + const backLength = Math.floor(stringLength / 2) + + return value.substring(0, frontLength) + separator + value.substring(value.length - backLength) +} + +/** + * Converts hex to utf8 string if it is valid bytes + */ +export function convertHexToUtf8(value: string) { + if (isHexString(value)) { + return toUtf8String(value) + } + + return value +} + +/** + * Gets message from various signing request methods by filtering out + * a value that is not an address (thus is a message). + * If it is a hex string, it gets converted to utf8 string + */ +export function getSignParamsMessage(params: string[]) { + const message = params.filter(p => !isAddress(p))[0] + + return convertHexToUtf8(message) +} + +/** + * Gets data from various signTypedData request methods by filtering out + * a value that is not an address (thus is data). + * If data is a string convert it to object + */ +export function getSignTypedDataParamsData(params: string[]) { + const data = params.filter(p => !isAddress(p))[0] + + if (typeof data === 'string') { + return JSON.parse(data) + } + + return data +} + +/** + * Get our address from params checking if params string contains one + * of our wallet addresses + */ +export function getWalletAddressFromParams(addresses: string[], params: any) { + const paramsString = JSON.stringify(params) + let address = '' + + addresses.forEach(addr => { + if (paramsString.toLowerCase().includes(addr.toLowerCase())) { + address = addr + } + }) + + return address +} + +/** + * Check if chain is part of EIP155 standard + */ +export function isEIP155Chain(chain: string) { + return chain.includes('eip155') +} + +/** + * Check if chain is part of COSMOS standard + */ +export function isCosmosChain(chain: string) { + return chain.includes('cosmos') +} + +/** + * Check if chain is part of SOLANA standard + */ +export function isSolanaChain(chain: string) { + return chain.includes('solana') +} + +/** + * Check if chain is part of POLKADOT standard + */ +export function isPolkadotChain(chain: string) { + return chain.includes('polkadot') +} + +/** + * Check if chain is part of NEAR standard + */ +export function isNearChain(chain: string) { + return chain.includes('near') +} + +/** + * Check if chain is part of KADENA standard + */ +export function isKadenaChain(chain: string) { + return chain.includes('kadena') +} + +/** + * Check if chain is part of MULTIVERSX standard + */ +export function isMultiversxChain(chain: string) { + return chain.includes('mvx') +} + +/** + * Check if chain is part of TRON standard + */ +export function isTronChain(chain: string) { + return chain.includes('tron') +} + +/** + * Check if chain is part of Tezos standard + */ +export function isTezosChain(chain: string) { + return chain.includes('tezos') +} + +/** + * Formats chainId to its name + */ +export function formatChainName(chainId: string) { + return ( + EIP155_CHAINS[chainId as TEIP155Chain]?.name ?? + chainId + ) +} + +export function styledToast(message: string, type: string) { + if (type === 'success') { + toast.success(message, { + position: 'bottom-left', + style: { + borderRadius: '10px', + background: '#333', + color: '#fff' + } + }) + } else if (type === 'error') { + toast.error(message, { + position: 'bottom-left', + style: { + borderRadius: '10px', + background: '#333', + color: '#fff' + } + }) + } +} diff --git a/advanced/wallets/reown-web-wallet/src/utils/WalletConnectUtil.ts b/advanced/wallets/reown-web-wallet/src/utils/WalletConnectUtil.ts new file mode 100644 index 000000000..5273d2b46 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/utils/WalletConnectUtil.ts @@ -0,0 +1,78 @@ +import { WalletKit, IWalletKit } from '@reown/walletkit' +import { Core } from '@walletconnect/core' +export let walletKit: IWalletKit + +export async function createWalletKit(relayerRegionURL: string) { + const core = new Core({ + projectId: process.env.NEXT_PUBLIC_PROJECT_ID, + relayUrl: relayerRegionURL ?? process.env.NEXT_PUBLIC_RELAY_URL, + // logger: 'debug', + customStoragePrefix: 'reown-walletkit' + }) + walletKit = await WalletKit.init({ + core, + metadata: { + name: 'React Wallet Example', + description: 'React Wallet for WalletConnect', + url: 'https://walletconnect.com/', + icons: ['https://avatars.githubusercontent.com/u/37784886'] + } + }) + + try { + const clientId = await walletKit.engine.signClient.core.crypto.getClientId() + console.log('WalletConnect ClientID: ', clientId) + localStorage.setItem('WALLETCONNECT_CLIENT_ID', clientId) + } catch (error) { + console.error('Failed to set WalletConnect clientId in localStorage: ', error) + } +} + +export async function updateSignClientChainId(chainId: string, address: string) { + // get most recent session + const sessions = walletKit.getActiveSessions() + if (!sessions) return + const namespace = chainId.split(':')[0] + Object.values(sessions).forEach(async session => { + await walletKit.updateSession({ + topic: session.topic, + namespaces: { + ...session.namespaces, + [namespace]: { + ...session.namespaces[namespace], + chains: [ + ...new Set([chainId].concat(Array.from(session?.namespaces?.[namespace]?.chains || []))) + ], + accounts: [ + ...new Set( + [`${chainId}:${address}`].concat( + Array.from(session?.namespaces?.[namespace]?.accounts || []) + ) + ) + ] + } + } + }) + await new Promise(resolve => setTimeout(resolve, 1000)) + + const chainChanged = { + topic: session.topic, + event: { + name: 'chainChanged', + data: parseInt(chainId.split(':')[1]) + }, + chainId: chainId + } + + const accountsChanged = { + topic: session.topic, + event: { + name: 'accountsChanged', + data: [`${chainId}:${address}`] + }, + chainId + } + await walletKit.emitSessionEvent(chainChanged) + await walletKit.emitSessionEvent(accountsChanged) + }) +} diff --git a/advanced/wallets/reown-web-wallet/src/utils/permissionValidatorUtils/abi/PermissionValidator.ts b/advanced/wallets/reown-web-wallet/src/utils/permissionValidatorUtils/abi/PermissionValidator.ts new file mode 100644 index 000000000..0413559ed --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/utils/permissionValidatorUtils/abi/PermissionValidator.ts @@ -0,0 +1,422 @@ +export const permissionValidatorAbi = [ + { + type: 'function', + name: '_parsePermissionFromPermissionEnableData', + inputs: [ + { + name: '_permissionEnableData', + type: 'bytes', + internalType: 'bytes' + }, + { + name: '_permissionIndex', + type: 'uint256', + internalType: 'uint256' + } + ], + outputs: [ + { + name: 'permissionChainId', + type: 'uint64', + internalType: 'uint64' + }, + { + name: 'permissionDigest', + type: 'bytes32', + internalType: 'bytes32' + } + ], + stateMutability: 'pure' + }, + { + type: 'function', + name: 'checkPermissionForSmartAccount', + inputs: [ + { + name: 'smartAccount', + type: 'address', + internalType: 'address' + }, + { + name: 'permissionDataFromContext', + type: 'bytes', + internalType: 'bytes' + } + ], + outputs: [ + { + name: 'permissionPrefix', + type: 'bytes32', + internalType: 'bytes32' + } + ], + stateMutability: 'view' + }, + { + type: 'function', + name: 'enabledPermissions', + inputs: [ + { + name: 'singleSignerPermissionId', + type: 'bytes32', + internalType: 'bytes32' + }, + { + name: 'smartAccount', + type: 'address', + internalType: 'address' + } + ], + outputs: [ + { + name: 'validUntil', + type: 'uint48', + internalType: 'ValidUntil' + }, + { + name: 'validAfter', + type: 'uint48', + internalType: 'ValidAfter' + }, + { + name: 'signatureValidationAlgorithm', + type: 'address', + internalType: 'address' + }, + { + name: 'signer', + type: 'bytes', + internalType: 'bytes' + }, + { + name: 'policy', + type: 'address', + internalType: 'address' + }, + { + name: 'policyData', + type: 'bytes', + internalType: 'bytes' + } + ], + stateMutability: 'view' + }, + { + type: 'function', + name: 'getModuleTypes', + inputs: [], + outputs: [ + { + name: '', + type: 'uint256', + internalType: 'uint256' + } + ], + stateMutability: 'view' + }, + { + type: 'function', + name: 'getPermissionId', + inputs: [ + { + name: 'permission', + type: 'tuple', + internalType: 'struct SingleSignerPermission', + components: [ + { + name: 'validUntil', + type: 'uint48', + internalType: 'ValidUntil' + }, + { + name: 'validAfter', + type: 'uint48', + internalType: 'ValidAfter' + }, + { + name: 'signatureValidationAlgorithm', + type: 'address', + internalType: 'address' + }, + { + name: 'signer', + type: 'bytes', + internalType: 'bytes' + }, + { + name: 'policy', + type: 'address', + internalType: 'address' + }, + { + name: 'policyData', + type: 'bytes', + internalType: 'bytes' + } + ] + } + ], + outputs: [ + { + name: '', + type: 'bytes32', + internalType: 'bytes32' + } + ], + stateMutability: 'pure' + }, + { + type: 'function', + name: 'getPermissionIdFromUnpacked', + inputs: [ + { + name: 'validUntil', + type: 'uint48', + internalType: 'ValidUntil' + }, + { + name: 'validAfter', + type: 'uint48', + internalType: 'ValidAfter' + }, + { + name: 'signatureValidationAlgorithm', + type: 'address', + internalType: 'address' + }, + { + name: 'signer', + type: 'bytes', + internalType: 'bytes' + }, + { + name: 'policy', + type: 'address', + internalType: 'address' + }, + { + name: 'policyData', + type: 'bytes', + internalType: 'bytes' + } + ], + outputs: [ + { + name: '', + type: 'bytes32', + internalType: 'bytes32' + } + ], + stateMutability: 'pure' + }, + { + type: 'function', + name: 'isInitialized', + inputs: [ + { + name: '', + type: 'address', + internalType: 'address' + } + ], + outputs: [ + { + name: '', + type: 'bool', + internalType: 'bool' + } + ], + stateMutability: 'pure' + }, + { + type: 'function', + name: 'isModuleType', + inputs: [ + { + name: 'moduleTypeId', + type: 'uint256', + internalType: 'uint256' + } + ], + outputs: [ + { + name: '', + type: 'bool', + internalType: 'bool' + } + ], + stateMutability: 'pure' + }, + { + type: 'function', + name: 'isValidSignatureWithSender', + inputs: [ + { + name: 'sender', + type: 'address', + internalType: 'address' + }, + { + name: 'hash', + type: 'bytes32', + internalType: 'bytes32' + }, + { + name: 'data', + type: 'bytes', + internalType: 'bytes' + } + ], + outputs: [ + { + name: '', + type: 'bytes4', + internalType: 'bytes4' + } + ], + stateMutability: 'view' + }, + { + type: 'function', + name: 'onInstall', + inputs: [ + { + name: 'data', + type: 'bytes', + internalType: 'bytes' + } + ], + outputs: [], + stateMutability: 'nonpayable' + }, + { + type: 'function', + name: 'onUninstall', + inputs: [ + { + name: 'data', + type: 'bytes', + internalType: 'bytes' + } + ], + outputs: [], + stateMutability: 'nonpayable' + }, + { + type: 'function', + name: 'test', + inputs: [ + { + name: 'a', + type: 'uint256', + internalType: 'uint256' + } + ], + outputs: [], + stateMutability: 'nonpayable' + }, + { + type: 'function', + name: 'validateUserOp', + inputs: [ + { + name: 'userOp', + type: 'tuple', + internalType: 'struct PackedUserOperation', + components: [ + { + name: 'sender', + type: 'address', + internalType: 'address' + }, + { + name: 'nonce', + type: 'uint256', + internalType: 'uint256' + }, + { + name: 'initCode', + type: 'bytes', + internalType: 'bytes' + }, + { + name: 'callData', + type: 'bytes', + internalType: 'bytes' + }, + { + name: 'accountGasLimits', + type: 'bytes32', + internalType: 'bytes32' + }, + { + name: 'preVerificationGas', + type: 'uint256', + internalType: 'uint256' + }, + { + name: 'gasFees', + type: 'bytes32', + internalType: 'bytes32' + }, + { + name: 'paymasterAndData', + type: 'bytes', + internalType: 'bytes' + }, + { + name: 'signature', + type: 'bytes', + internalType: 'bytes' + } + ] + }, + { + name: 'userOpHash', + type: 'bytes32', + internalType: 'bytes32' + } + ], + outputs: [ + { + name: 'validationData', + type: 'uint256', + internalType: 'uint256' + } + ], + stateMutability: 'nonpayable' + }, + { + type: 'error', + name: 'AlreadyInitialized', + inputs: [ + { + name: 'smartAccount', + type: 'address', + internalType: 'address' + } + ] + }, + { + type: 'error', + name: 'InvalidTargetAddress', + inputs: [ + { + name: 'target', + type: 'address', + internalType: 'address' + } + ] + }, + { + type: 'error', + name: 'NotInitialized', + inputs: [ + { + name: 'smartAccount', + type: 'address', + internalType: 'address' + } + ] + } +] as const diff --git a/advanced/wallets/reown-web-wallet/src/utils/permissionValidatorUtils/constants.ts b/advanced/wallets/reown-web-wallet/src/utils/permissionValidatorUtils/constants.ts new file mode 100644 index 000000000..a4406e43d --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/utils/permissionValidatorUtils/constants.ts @@ -0,0 +1,5 @@ +import { Address } from 'viem' + +export const PERMISSION_VALIDATOR_ADDRESS: Address = '0x6671AD9ED29E2d7a894E80bf48b7Bf03Ee64A0f4' +export const SECP256K1_SIGNATURE_VALIDATOR_ADDRESS: Address = + '0x033f60A1035E64c96FD511abA61bA8d9276ADB4f' diff --git a/advanced/wallets/reown-web-wallet/src/utils/permissionValidatorUtils/index.ts b/advanced/wallets/reown-web-wallet/src/utils/permissionValidatorUtils/index.ts new file mode 100644 index 000000000..774cb054e --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/utils/permissionValidatorUtils/index.ts @@ -0,0 +1,52 @@ +import { Address, Chain, Hex, encodePacked, keccak256 } from 'viem' + +export type SingleSignerPermission = { + validUntil: number + validAfter: number + signatureValidationAlgorithm: Address + signer: Address + policy: Address + policyData: `0x${string}` +} + +export type PermissionContext = { + accountType: 'KernelV3' | 'Safe7579' + accountAddress: Address + permissionValidatorAddress: Address + permissions: SingleSignerPermission[] + permittedScopeData: `0x${string}` + permittedScopeSignature: `0x${string}` + enableSig?: `0x${string}` +} + +export function getPermissionId(permission: SingleSignerPermission): `0x${string}` { + return keccak256( + encodePacked( + ['uint48', 'uint48', 'address', 'address', 'address', 'bytes'], + [ + permission.validUntil, + permission.validAfter, + permission.signatureValidationAlgorithm, + permission.signer, + permission.policy, + permission.policyData + ] + ) + ) +} + +export function getPermissionScopeData( + permissions: SingleSignerPermission[], + chain: Chain +): `0x${string}` { + const permissionIds: Hex[] = [] + for (let i = 0; i < permissions.length; i++) { + permissionIds[i] = getPermissionId(permissions[i]) + } + let permittedScopeData: `0x${string}` = encodePacked(['uint8'], [permissions.length]) + const chainIds = [BigInt(chain.id)] + for (let i = 0; i < chainIds.length; ++i) { + permittedScopeData = encodePacked(['bytes', 'uint64'], [permittedScopeData, chainIds[i]]) + } + return encodePacked(['bytes', 'bytes[]'], [permittedScopeData, permissionIds]) +} diff --git a/advanced/wallets/reown-web-wallet/src/utils/safe7579AccountUtils/abis/Account.ts b/advanced/wallets/reown-web-wallet/src/utils/safe7579AccountUtils/abis/Account.ts new file mode 100644 index 000000000..df45d7d71 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/utils/safe7579AccountUtils/abis/Account.ts @@ -0,0 +1,38 @@ +export const executeAbi = [ + { + type: 'function', + name: 'execute', + inputs: [ + { + name: 'mode', + type: 'bytes32', + internalType: 'ModeCode' + }, + { + name: 'executionCalldata', + type: 'bytes', + internalType: 'bytes' + } + ], + outputs: [], + stateMutability: 'payable' + } +] as const + +export const isModuleInstalledAbi = [ + { + type: 'function', + name: 'isModuleInstalled', + inputs: [ + { name: 'moduleType', type: 'uint256', internalType: 'uint256' }, + { name: 'module', type: 'address', internalType: 'address' }, + { + name: 'additionalContext', + type: 'bytes', + internalType: 'bytes' + } + ], + outputs: [{ name: '', type: 'bool', internalType: 'bool' }], + stateMutability: 'view' + } +] as const diff --git a/advanced/wallets/reown-web-wallet/src/utils/safe7579AccountUtils/abis/AccountFactory.ts b/advanced/wallets/reown-web-wallet/src/utils/safe7579AccountUtils/abis/AccountFactory.ts new file mode 100644 index 000000000..23a97ff89 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/utils/safe7579AccountUtils/abis/AccountFactory.ts @@ -0,0 +1,47 @@ +export const createProxyWithNonceAbi = [ + { + type: 'function', + name: 'createProxyWithNonce', + inputs: [ + { + name: '_singleton', + type: 'address', + internalType: 'address' + }, + { + name: 'initializer', + type: 'bytes', + internalType: 'bytes' + }, + { + name: 'saltNonce', + type: 'uint256', + internalType: 'uint256' + } + ], + outputs: [ + { + name: 'proxy', + type: 'address', + internalType: 'contract SafeProxy' + } + ], + stateMutability: 'nonpayable' + } +] as const + +export const proxyCreationCodeAbi = [ + { + type: 'function', + name: 'proxyCreationCode', + inputs: [], + outputs: [ + { + name: '', + type: 'bytes', + internalType: 'bytes' + } + ], + stateMutability: 'pure' + } +] as const diff --git a/advanced/wallets/reown-web-wallet/src/utils/safe7579AccountUtils/abis/Launchpad.ts b/advanced/wallets/reown-web-wallet/src/utils/safe7579AccountUtils/abis/Launchpad.ts new file mode 100644 index 000000000..b7d216374 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/utils/safe7579AccountUtils/abis/Launchpad.ts @@ -0,0 +1,235 @@ +export const initSafe7579Abi = [ + { + type: 'function', + name: 'initSafe7579', + inputs: [ + { name: 'safe7579', type: 'address', internalType: 'address' }, + { + name: 'executors', + type: 'tuple[]', + internalType: 'struct ModuleInit[]', + components: [ + { name: 'module', type: 'address', internalType: 'address' }, + { name: 'initData', type: 'bytes', internalType: 'bytes' } + ] + }, + { + name: 'fallbacks', + type: 'tuple[]', + internalType: 'struct ModuleInit[]', + components: [ + { name: 'module', type: 'address', internalType: 'address' }, + { name: 'initData', type: 'bytes', internalType: 'bytes' } + ] + }, + { + name: 'hooks', + type: 'tuple[]', + internalType: 'struct ModuleInit[]', + components: [ + { name: 'module', type: 'address', internalType: 'address' }, + { name: 'initData', type: 'bytes', internalType: 'bytes' } + ] + }, + { + name: 'attesters', + type: 'address[]', + internalType: 'address[]' + }, + { name: 'threshold', type: 'uint8', internalType: 'uint8' } + ], + outputs: [], + stateMutability: 'nonpayable' + } +] as const + +export const preValidationSetupAbi = [ + { + inputs: [ + { + internalType: 'bytes32', + name: 'initHash', + type: 'bytes32' + }, + { + internalType: 'address', + name: 'to', + type: 'address' + }, + { + internalType: 'bytes', + name: 'preInit', + type: 'bytes' + } + ], + stateMutability: 'nonpayable', + type: 'function', + name: 'preValidationSetup' + } +] as const + +export const predictSafeAddressAbi = [ + { + type: 'function', + name: 'predictSafeAddress', + inputs: [ + { + name: 'singleton', + type: 'address', + internalType: 'address' + }, + { + name: 'safeProxyFactory', + type: 'address', + internalType: 'address' + }, + { + name: 'creationCode', + type: 'bytes', + internalType: 'bytes' + }, + { + name: 'salt', + type: 'bytes32', + internalType: 'bytes32' + }, + { + name: 'factoryInitializer', + type: 'bytes', + internalType: 'bytes' + } + ], + outputs: [ + { + name: 'safeProxy', + type: 'address', + internalType: 'address' + } + ], + stateMutability: 'pure' + } +] as const + +export const setupSafeAbi = [ + { + type: 'function', + name: 'setupSafe', + inputs: [ + { + name: 'initData', + type: 'tuple', + internalType: 'struct Safe7579Launchpad.InitData', + components: [ + { + name: 'singleton', + type: 'address', + internalType: 'address' + }, + { + name: 'owners', + type: 'address[]', + internalType: 'address[]' + }, + { + name: 'threshold', + type: 'uint256', + internalType: 'uint256' + }, + { + name: 'setupTo', + type: 'address', + internalType: 'address' + }, + { + name: 'setupData', + type: 'bytes', + internalType: 'bytes' + }, + { + name: 'safe7579', + type: 'address', + internalType: 'address' + }, + { + name: 'validators', + type: 'tuple[]', + internalType: 'struct ISafe7579Init.ModuleInit[]', + components: [ + { + name: 'module', + type: 'address', + internalType: 'address' + }, + { + name: 'initData', + type: 'bytes', + internalType: 'bytes' + } + ] + }, + { + name: 'callData', + type: 'bytes', + internalType: 'bytes' + } + ] + } + ], + outputs: [], + stateMutability: 'nonpayable' + } +] as const + +export const hashAbi = [ + { + type: 'function', + name: 'hash', + inputs: [ + { + name: 'data', + type: 'tuple', + internalType: 'struct Safe7579Launchpad.InitData', + components: [ + { + name: 'singleton', + type: 'address', + internalType: 'address' + }, + { + name: 'owners', + type: 'address[]', + internalType: 'address[]' + }, + { + name: 'threshold', + type: 'uint256', + internalType: 'uint256' + }, + { name: 'setupTo', type: 'address', internalType: 'address' }, + { name: 'setupData', type: 'bytes', internalType: 'bytes' }, + { + name: 'safe7579', + type: 'address', + internalType: 'contract ISafe7579' + }, + { + name: 'validators', + type: 'tuple[]', + internalType: 'struct ModuleInit[]', + components: [ + { + name: 'module', + type: 'address', + internalType: 'address' + }, + { name: 'initData', type: 'bytes', internalType: 'bytes' } + ] + }, + { name: 'callData', type: 'bytes', internalType: 'bytes' } + ] + } + ], + outputs: [{ name: '', type: 'bytes32', internalType: 'bytes32' }], + stateMutability: 'pure' + } +] as const diff --git a/advanced/wallets/reown-web-wallet/src/utils/safe7579AccountUtils/constants.ts b/advanced/wallets/reown-web-wallet/src/utils/safe7579AccountUtils/constants.ts new file mode 100644 index 000000000..a10952fce --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/utils/safe7579AccountUtils/constants.ts @@ -0,0 +1,17 @@ +import { ENTRYPOINT_ADDRESS_V07_TYPE } from 'permissionless/types' +import { Address } from 'viem' + +export const ENTRY_POINT_ADDRESS: ENTRYPOINT_ADDRESS_V07_TYPE = + '0x0000000071727De22E5E9d8BAf0edAc6f37da032' + +export const SAFE_ACCOUNT_FACTORY_ADDRESS: Address = '0xe89e194e5bd3e5a8d40c4cd9c95dd2c56a8a6ed6' + +export const SAFE_SINGLETON_ADDRESS: Address = '0x8d70ae4ae3fb2a73e78f57da16e6e1edbe9fd3eb' + +export const SAFE_7579_ADDRESS: Address = '0xD2Aa2F19Bf6700bE99E140A0b283fE9EF9438A15' + +export const REGISTRY_ADDRESS: Address = '0x1d8c40f958fb6998067e9b8b26850d2ae30b7c70' + +export const LAUNCHPAD_ADDRESS: Address = '0x1EC6A1e000dD440995667e48cB880785C7d6831C' + +export const VALIDATOR_ADDRESS: Address = '0x503b54Ed1E62365F0c9e4caF1479623b08acbe77' diff --git a/advanced/wallets/reown-web-wallet/src/utils/safe7579AccountUtils/signerToSafe7579SmartAccount.ts b/advanced/wallets/reown-web-wallet/src/utils/safe7579AccountUtils/signerToSafe7579SmartAccount.ts new file mode 100644 index 000000000..88ed9808f --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/utils/safe7579AccountUtils/signerToSafe7579SmartAccount.ts @@ -0,0 +1,521 @@ +import type { SignableMessage, TypedData } from 'viem' +import { + type Address, + type Chain, + type Client, + type Hex, + type LocalAccount, + type Transport, + type TypedDataDefinition, + concatHex, + encodeAbiParameters, + encodeFunctionData, + encodePacked, + pad, + zeroAddress, + keccak256, + stringToBytes, + publicActions, + hashTypedData, + hashMessage, + toBytes +} from 'viem' +import { getChainId, signMessage, signTypedData } from 'viem/actions' +import { ENTRYPOINT_ADDRESS_V07_TYPE, EntryPoint } from 'permissionless/types/entrypoint' +import { + SignTransactionNotSupportedBySmartAccount, + SmartAccount, + SmartAccountSigner, + toSmartAccount +} from 'permissionless/accounts' +import { getAccountNonce, getUserOperationHash, isSmartAccountDeployed } from 'permissionless' +import { Prettify } from 'viem/chains' +import { + LAUNCHPAD_ADDRESS, + SAFE_7579_ADDRESS, + SAFE_ACCOUNT_FACTORY_ADDRESS, + SAFE_SINGLETON_ADDRESS, + VALIDATOR_ADDRESS +} from './constants' +import { CALL_TYPE, Execution, encodeUserOpCallData } from './userop' +import { + hashAbi, + initSafe7579Abi, + preValidationSetupAbi, + predictSafeAddressAbi, + setupSafeAbi +} from './abis/Launchpad' +import { createProxyWithNonceAbi, proxyCreationCodeAbi } from './abis/AccountFactory' +import { executeAbi } from './abis/Account' +import { PERMISSION_VALIDATOR_ADDRESS } from '../permissionValidatorUtils/constants' + +export type Safe7579SmartAccount< + entryPoint extends ENTRYPOINT_ADDRESS_V07_TYPE, + transport extends Transport = Transport, + chain extends Chain | undefined = Chain | undefined +> = SmartAccount +type TTypedData = TypedData | Record +type TPrimaryType = keyof TTypedData | 'EIP712Domain' | keyof TTypedData +/** + * The account creation ABI for Safe7579 Smart Account + */ + +type InitialModule = { + module: Address + initData: Hex +} + +export function getSafe7579InitialValidators(): InitialModule[] { + const initialValidatorModuleAddress: Address[] = [VALIDATOR_ADDRESS, PERMISSION_VALIDATOR_ADDRESS] + const initialValidators: InitialModule[] = initialValidatorModuleAddress.map( + validatorModuleAddress => { + return { + module: validatorModuleAddress, + initData: '0x' + } + } + ) + return initialValidators +} + +export const getSafe7579InitData = ( + owner: Address, + initialValidators: InitialModule[], + initialExecutions: Execution | Execution[] +) => { + if (!Array.isArray(initialExecutions)) initialExecutions = [initialExecutions] + return { + singleton: SAFE_SINGLETON_ADDRESS, + owners: [owner], + threshold: BigInt(1), + setupTo: LAUNCHPAD_ADDRESS, + setupData: encodeFunctionData({ + abi: initSafe7579Abi, + functionName: 'initSafe7579', + args: [ + SAFE_7579_ADDRESS, + [], // executors + [], // fallbacks + [], // hooks + [], // attesters + 0 // threshold + ] + }), + safe7579: SAFE_7579_ADDRESS, + validators: initialValidators, + callData: encodeUserOpCallData({ + actions: initialExecutions + }) + } +} +/** + * Get the account initialization code for Safe7579 smart account default authorization module + * @param owner + * @param index + * @param initialValidatorAddress + */ +const getAccountInitCode = async < + entryPoint extends EntryPoint, + TTransport extends Transport = Transport, + TChain extends Chain | undefined = Chain | undefined +>({ + client, + owner, + index, + initialValidatorAddress +}: { + client: Client + owner: Address + index: bigint + initialValidatorAddress: Address +}): Promise => { + if (!owner) throw new Error('Owner account not found') + const initialValidators = getSafe7579InitialValidators() + const dummyExecution = [ + { + to: zeroAddress as Address, + value: BigInt('0'), + data: '0x' as Hex + } + ] + const initData = getSafe7579InitData(owner, initialValidators, dummyExecution) + const publicClient = client.extend(publicActions) + const initHash = (await publicClient.readContract({ + address: LAUNCHPAD_ADDRESS, + abi: hashAbi, + functionName: 'hash', + args: [initData] + })) as Hex + const factoryInitializer = encodeFunctionData({ + abi: preValidationSetupAbi, + functionName: 'preValidationSetup', + args: [initHash, zeroAddress, ''] + }) + + const salt = keccak256(stringToBytes(index.toString())) + + const initCode = encodeFunctionData({ + abi: createProxyWithNonceAbi, + functionName: 'createProxyWithNonce', + args: [LAUNCHPAD_ADDRESS, factoryInitializer, BigInt(salt)] + }) + return initCode +} + +const getAccountAddress = async < + entryPoint extends EntryPoint, + TTransport extends Transport = Transport, + TChain extends Chain | undefined = Chain | undefined +>({ + client, + factoryAddress, + initialValidatorAddress, + entryPoint: entryPointAddress, + owner, + index = 0n +}: { + client: Client + factoryAddress: Address + initialValidatorAddress: Address + owner: Address + entryPoint: entryPoint + index?: bigint +}): Promise
=> { + const salt = keccak256(stringToBytes(index.toString())) + const initialValidators = getSafe7579InitialValidators() + const publicClient = client.extend(publicActions) + const dummyExecution = [ + { + to: zeroAddress as Address, + value: BigInt('0'), + data: '0x' as Hex + } + ] + const initData = getSafe7579InitData(owner, initialValidators, dummyExecution) + const initHash = (await publicClient.readContract({ + address: LAUNCHPAD_ADDRESS, + abi: hashAbi, + functionName: 'hash', + args: [initData] + })) as Hex + const factoryInitializer = encodeFunctionData({ + abi: preValidationSetupAbi, + functionName: 'preValidationSetup', + args: [initHash, zeroAddress, ''] + }) + + const safeProxyCreationCode = (await publicClient.readContract({ + address: factoryAddress, // SAFE_ACCOUNT_FACTORY_ADDRESS, + abi: proxyCreationCodeAbi, + functionName: 'proxyCreationCode', + args: [] + })) as Hex + + const address = (await publicClient.readContract({ + address: LAUNCHPAD_ADDRESS, + abi: predictSafeAddressAbi, + functionName: 'predictSafeAddress', + args: [ + LAUNCHPAD_ADDRESS, + factoryAddress, // SAFE_ACCOUNT_FACTORY_ADDRESS, + safeProxyCreationCode, + salt, + factoryInitializer + ] + })) as Address + // Get the sender address based on the init code + return address +} + +const adjustVInSignature = ( + signingMethod: 'eth_sign' | 'eth_signTypedData', + signature: string +): Hex => { + const ETHEREUM_V_VALUES = [0, 1, 27, 28] + const MIN_VALID_V_VALUE_FOR_SAFE_ECDSA = 27 + let signatureV = parseInt(signature.slice(-2), 16) + if (!ETHEREUM_V_VALUES.includes(signatureV)) { + throw new Error('Invalid signature') + } + if (signingMethod === 'eth_sign') { + if (signatureV < MIN_VALID_V_VALUE_FOR_SAFE_ECDSA) { + signatureV += MIN_VALID_V_VALUE_FOR_SAFE_ECDSA + } + signatureV += 4 + } + if (signingMethod === 'eth_signTypedData') { + if (signatureV < MIN_VALID_V_VALUE_FOR_SAFE_ECDSA) { + signatureV += MIN_VALID_V_VALUE_FOR_SAFE_ECDSA + } + } + return (signature.slice(0, -2) + signatureV.toString(16)) as Hex +} + +const generateSafeMessageMessage = < + TTypedData extends TypedData | { [key: string]: unknown }, + TPrimaryType extends keyof TTypedData | 'EIP712Domain' = keyof TTypedData +>( + message: SignableMessage | TypedDataDefinition +): Hex => { + const signableMessage = message as SignableMessage + + if (typeof signableMessage === 'string' || signableMessage.raw) { + return hashMessage(signableMessage) + } + + return hashTypedData(message as TypedDataDefinition) +} + +export type SignerToSafe7579SmartAccountParameters< + entryPoint extends ENTRYPOINT_ADDRESS_V07_TYPE, + TSource extends string = string, + TAddress extends Address = Address +> = Prettify<{ + signer: SmartAccountSigner + entryPoint: entryPoint + index?: bigint + factoryAddress?: Address + initialValidatorAddress?: Address +}> + +/** + * Build a Safe7579 modular smart account from a private key, that use the ECDSA signer behind the scene + * @param client + * @param signer + * @param entryPoint + * @param index + * @param factoryAddress + * @param initialValidatorAddress + */ +export async function signerToSafe7579SmartAccount< + entryPoint extends ENTRYPOINT_ADDRESS_V07_TYPE, + TTransport extends Transport = Transport, + TChain extends Chain | undefined = Chain | undefined, + TSource extends string = string, + TAddress extends Address = Address +>( + client: Client, + { + signer, + entryPoint: entryPointAddress, + index = 0n, + factoryAddress = SAFE_ACCOUNT_FACTORY_ADDRESS, + initialValidatorAddress = VALIDATOR_ADDRESS + }: SignerToSafe7579SmartAccountParameters +): Promise> { + // Get the private key related account + const viemSigner: LocalAccount = { + ...signer, + signTransaction: (_, __) => { + throw new SignTransactionNotSupportedBySmartAccount() + } + } as LocalAccount + + // Helper to generate the init code for the smart account + const generateInitCode = () => + getAccountInitCode({ + client, + owner: viemSigner.address, + index, + initialValidatorAddress + }) + + // Fetch account address and chain id + const [accountAddress, chainId] = await Promise.all([ + getAccountAddress({ + client, + factoryAddress, + initialValidatorAddress, + entryPoint: entryPointAddress, + owner: viemSigner.address, + index + }), + getChainId(client) + ]) + + if (!accountAddress) throw new Error('Account address not found') + + let smartAccountDeployed = await isSmartAccountDeployed(client, accountAddress) + + return toSmartAccount({ + address: accountAddress, + client: client, + // publicKey: accountAddress, + entryPoint: entryPointAddress, + source: 'safe7579SmartAccount', + + async signMessage({ message }) { + const messageHash = hashTypedData({ + domain: { + chainId: chainId, + verifyingContract: accountAddress + }, + types: { + SafeMessage: [{ name: 'message', type: 'bytes' }] + }, + primaryType: 'SafeMessage', + message: { + message: generateSafeMessageMessage(message) + } + }) + + return adjustVInSignature( + 'eth_sign', + await signMessage(client, { + account: viemSigner, + message: { + raw: toBytes(messageHash) + } + }) + ) + }, + + async signTypedData< + TTypedData extends TypedData | Record, + TPrimaryType extends keyof TTypedData | 'EIP712Domain' = keyof TTypedData + >(typedData: TypedDataDefinition) { + return adjustVInSignature( + 'eth_signTypedData', + await signTypedData(client, { + account: viemSigner, + domain: { + chainId: chainId, + verifyingContract: accountAddress + }, + types: { + SafeMessage: [{ name: 'message', type: 'bytes' }] + }, + primaryType: 'SafeMessage', + message: { + message: generateSafeMessageMessage(typedData) + } + }) + ) + }, + async signTransaction(_, __) { + throw new SignTransactionNotSupportedBySmartAccount() + }, + + // Get the nonce of the smart account + async getNonce() { + return await getAccountNonce(client, { + sender: accountAddress, + entryPoint: entryPointAddress, + key: BigInt( + pad(initialValidatorAddress, { + dir: 'right', + size: 24 + }) || 0 + ) + }) + }, + + // Sign a user operation + async signUserOperation(userOperation) { + const hash = getUserOperationHash({ + userOperation: { + ...userOperation, + signature: '0x' + }, + entryPoint: entryPointAddress, + chainId: chainId + }) + + const signature = await signMessage(client, { + account: viemSigner, + message: { raw: hash } + }) + return signature + }, + + async getFactory() { + if (smartAccountDeployed) return undefined + smartAccountDeployed = await isSmartAccountDeployed(client, accountAddress) + if (smartAccountDeployed) return undefined + + return factoryAddress + }, + + async getFactoryData() { + // if (smartAccountDeployed) return undefined + smartAccountDeployed = await isSmartAccountDeployed(client, accountAddress) + if (smartAccountDeployed) return undefined + return generateInitCode() + }, + + // Encode the init code + async getInitCode() { + // if (smartAccountDeployed) return "0x" + smartAccountDeployed = await isSmartAccountDeployed(client, accountAddress) + if (smartAccountDeployed) return '0x' + + return concatHex([factoryAddress, await generateInitCode()]) + }, + + // Encode the deploy call data + async encodeDeployCallData(_) { + throw new Error("Doesn't support account deployment") + }, + + // Encode a call + async encodeCallData(args) { + if (Array.isArray(args)) { + // Encode a batched call + const argsArray = args as { + to: Address + value: bigint + data: Hex + }[] + return encodeFunctionData({ + functionName: 'execute', + abi: executeAbi, + args: [ + CALL_TYPE.BATCH, + encodeAbiParameters( + [ + { + components: [ + { + name: 'to', + type: 'address' + }, + { + name: 'value', + type: 'uint256' + }, + { + name: 'data', + type: 'bytes' + } + ], + name: 'Execution', + type: 'tuple[]' + } + ], + // @ts-ignore + [argsArray] + ) + ] + }) + } + const { to, value, data } = args as { + to: Address + value: bigint + data: Hex + } + return encodeFunctionData({ + functionName: 'execute', + abi: executeAbi, + args: [ + CALL_TYPE.SINGLE, + encodePacked(['address', 'uint256', 'bytes'], [to, BigInt(Number(value)), data]) + ] + }) + }, + + // Get simple dummy signature for authorization + async getDummySignature(_userOperation) { + return `0xe8b94748580ca0b4993c9a1b86b5be851bfc076ff5ce3a1ff65bf16392acfcb800f9b4f1aef1555c7fce5599fffb17e7c635502154a0333ba21f3ae491839af51c` + } + }) +} diff --git a/advanced/wallets/reown-web-wallet/src/utils/safe7579AccountUtils/userop.ts b/advanced/wallets/reown-web-wallet/src/utils/safe7579AccountUtils/userop.ts new file mode 100644 index 000000000..cbb0426d9 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/utils/safe7579AccountUtils/userop.ts @@ -0,0 +1,53 @@ +import { executeAbi } from './abis/Account' +import { Address, Hex, encodeFunctionData, encodeAbiParameters, encodePacked } from 'viem' + +export const CALL_TYPE = { + SINGLE: '0x0000000000000000000000000000000000000000000000000000000000000000' as `0x${string}`, + BATCH: '0x0100000000000000000000000000000000000000000000000000000000000000' as `0x${string}` +} +export type Execution = { to: Address; value: bigint; data: Hex } +export function encodeUserOpCallData({ actions }: { actions: Execution[] }): Hex { + if (actions.length === 0) { + throw new Error('No actions') + } + if (actions.length === 1) { + const { to, value, data } = actions[0] + return encodeFunctionData({ + functionName: 'execute', + abi: executeAbi, + args: [CALL_TYPE.SINGLE, encodePacked(['address', 'uint256', 'bytes'], [to, value, data])] + }) + } + + return encodeFunctionData({ + functionName: 'execute', + abi: executeAbi, + args: [ + CALL_TYPE.BATCH, + encodeAbiParameters( + [ + { + components: [ + { + name: 'to', + type: 'address' + }, + { + name: 'value', + type: 'uint256' + }, + { + name: 'data', + type: 'bytes' + } + ], + name: 'Execution', + type: 'tuple[]' + } + ], + // @ts-ignore + [actions] + ) + ] + }) +} diff --git a/advanced/wallets/reown-web-wallet/src/views/AppKitConnectionModal.tsx b/advanced/wallets/reown-web-wallet/src/views/AppKitConnectionModal.tsx new file mode 100644 index 000000000..b412d8aab --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/views/AppKitConnectionModal.tsx @@ -0,0 +1,40 @@ +import ModalStore from "@/store/ModalStore" +import { useAppKit, useAppKitAccount, useAppKitState } from "@reown/appkit/react" +import { useEffect } from "react" +import LoadingModal from "./LoadingModal" +import RequestModalContainer from "@/components/RequestModalContainer" +import { Row, Col, Loading, Divider, Text } from "@nextui-org/react" +import { useSnapshot } from "valtio" + +export default function AppKitConnectionModal() { + const { open } = useAppKitState() + const { isConnected, status } = useAppKitAccount() + + const { view } = useSnapshot(ModalStore.state) + + // for now just open appkit modal if not connected + // useEffect(() => { + // console.log('appkit connection modal', status) + // if (!isConnected && status !== undefined && status !== 'reconnecting' && status !== 'connecting') { + // appkit.open() + // } + // }, [isConnected, status]) + + return ( + +
+ + + + + + + + Connecting to Reown... + + + +
+
+ ) +} \ No newline at end of file diff --git a/advanced/wallets/reown-web-wallet/src/views/AuthRequestModal.tsx b/advanced/wallets/reown-web-wallet/src/views/AuthRequestModal.tsx new file mode 100644 index 000000000..2e65822a0 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/views/AuthRequestModal.tsx @@ -0,0 +1,89 @@ +/* eslint-disable react-hooks/rules-of-hooks */ +import { useCallback, useState } from 'react' +import { Col, Row, Text, Code } from '@nextui-org/react' +import { getSdkError } from '@walletconnect/utils' + +import ModalStore from '@/store/ModalStore' +import { walletKit } from '@/utils/WalletConnectUtil' +import RequestModal from './RequestModal' +import { useAppKitAccount, useAppKitProvider } from '@reown/appkit/react' + +export default function AuthRequestModal() { + const [isLoadingApprove, setIsLoadingApprove] = useState(false) + const [isLoadingReject, setIsLoadingReject] = useState(false) + const { address } = useAppKitAccount() + const { walletProvider } = useAppKitProvider('eip155') + // Get request and wallet data from store + const request = ModalStore.state.data?.request + // Ensure request and wallet are defined + if (!request) { + return Missing request data + } + + const iss = `did:pkh:eip155:1:${address}` + + // Get required request data + const { params } = request + + // const message = walletKit.formatMessage(params.cacaoPayload, iss) + + // // Handle approve action (logic varies based on request method) + // const onApprove = useCallback(async () => { + // if (request) { + // setIsLoadingApprove(true) + // const signature = await walletProvider?.request({ + // method: 'personal_sign', + // params: [message, address] + // }) + // await walletKit.respondAuthRequest( + // { + // id: request.id, + // signature: { + // s: signature, + // t: 'eip191' + // } + // }, + // iss + // ) + // setIsLoadingApprove(false) + // ModalStore.close() + // } + // }, [request, address, message, iss, walletProvider]) + + // // Handle reject action + // const onReject = useCallback(async () => { + // if (request) { + // setIsLoadingReject(true) + // await walletKit.respondAuthRequest( + // { + // id: request.id, + // error: getSdkError('USER_REJECTED') + // }, + // iss + // ) + // setIsLoadingReject(false) + // ModalStore.close() + // } + // }, [request, iss]) + + return ( +
disabled
+ // + // + // + // Message + // + // {message} + // + // + // + // + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/views/LoadingModal.tsx b/advanced/wallets/reown-web-wallet/src/views/LoadingModal.tsx new file mode 100644 index 000000000..728d2b673 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/views/LoadingModal.tsx @@ -0,0 +1,34 @@ +import { Col, Divider, Link, Loading, Row, Text, styled } from '@nextui-org/react' +import { CoreTypes } from '@walletconnect/types' +import NewReleasesIcon from '@mui/icons-material/NewReleases' +import RequestModalContainer from '@/components/RequestModalContainer' +import { useSnapshot } from 'valtio' +import ModalStore from '@/store/ModalStore' + +export default function LoadingModal() { + const state = useSnapshot(ModalStore.state) + const message = state.data?.loadingMessage + + return ( + +
+ + + + + + + + Loading your request... + + + {message ? ( +
+ + {message} +
+ ) : null} +
+
+ ) +} diff --git a/advanced/wallets/reown-web-wallet/src/views/RequestModal.tsx b/advanced/wallets/reown-web-wallet/src/views/RequestModal.tsx new file mode 100644 index 000000000..ef51bff73 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/views/RequestModal.tsx @@ -0,0 +1,89 @@ +import { Fragment, ReactNode, useMemo, useState } from 'react' +import { Divider } from '@nextui-org/react' +import { CoreTypes } from '@walletconnect/types' + +import ModalFooter, { LoaderProps } from '@/components/ModalFooter' +import ProjectInfoCard from '@/components/ProjectInfoCard' +import RequestModalContainer from '@/components/RequestModalContainer' +import VerifyInfobox from '@/components/VerifyInfobox' +import { useSnapshot } from 'valtio' +import SettingsStore from '@/store/SettingsStore' +import ThreatPrompt from './TheatPrompt' + +interface IProps { + children: ReactNode + metadata: CoreTypes.Metadata + onApprove: () => void + onReject: () => void + intention?: string + infoBoxCondition?: boolean + infoBoxText?: string + approveLoader?: LoaderProps + rejectLoader?: LoaderProps + disableApprove?: boolean + disableReject?: boolean +} +export default function RequestModal({ + children, + metadata, + onApprove, + onReject, + approveLoader, + rejectLoader, + intention, + infoBoxCondition, + infoBoxText, + disableApprove, + disableReject +}: IProps) { + const { currentRequestVerifyContext } = useSnapshot(SettingsStore.state) + const isScam = currentRequestVerifyContext?.verified.isScam + const [threatAcknowledged, setThreatAcknowledged] = useState(false) + + const threatPromptContent = useMemo(() => { + return ( + setThreatAcknowledged(true)} + onReject={onReject} + /> + ) + }, [metadata, onReject]) + + const modalContent = useMemo(() => { + return ( + <> + + + + {children} + + + + + + ) + }, [ + approveLoader, + children, + infoBoxCondition, + infoBoxText, + intention, + metadata, + onApprove, + onReject, + rejectLoader, + disableApprove, + disableReject + ]) + return {isScam && !threatAcknowledged ? threatPromptContent : modalContent} +} diff --git a/advanced/wallets/reown-web-wallet/src/views/SessionAuthenticateModal.tsx b/advanced/wallets/reown-web-wallet/src/views/SessionAuthenticateModal.tsx new file mode 100644 index 000000000..5089d4b24 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/views/SessionAuthenticateModal.tsx @@ -0,0 +1,157 @@ +import { useCallback, useEffect, useState } from 'react' +import { Col, Row, Text, Code, Checkbox, Grid } from '@nextui-org/react' +import { buildAuthObject, getSdkError, populateAuthPayload } from '@walletconnect/utils' + +import ModalStore from '@/store/ModalStore' +import SettingsStore from '@/store/SettingsStore' +import { walletKit } from '@/utils/WalletConnectUtil' +import RequestModal from './RequestModal' +import { EIP155_CHAINS, EIP155_SIGNING_METHODS } from '@/data/EIP155Data' +import { styledToast } from '@/utils/HelperUtil' +import { useAppKitAccount, useAppKitProvider } from '@reown/appkit/react' + +export default function SessionAuthenticateModal() { + // Get request and wallet data from store + const authRequest = ModalStore.state.data?.authRequest + + const [messages, setMessages] = useState< + { authPayload: any; message: string; id: number; iss: string }[] + >([]) + const [supportedChains] = useState(Object.keys(EIP155_CHAINS)) + const [supportedMethods] = useState(Object.values(EIP155_SIGNING_METHODS)) + const [signStrategy, setSignStrategy] = useState(1) + const { address } = useAppKitAccount() + const { walletProvider } = useAppKitProvider('eip155') + // Ensure request and wallet are defined + + + // eslint-disable-next-line react-hooks/rules-of-hooks + const getMessageToSign = useCallback( + (authPayload, iss) => { + const message = walletKit.engine.signClient.formatAuthMessage({ + request: authPayload, + iss + }) + return message + }, + [address] + ) + + useEffect(() => { + if (!authRequest?.params?.authPayload) return + const newAuthPayload = populateAuthPayload({ + authPayload: authRequest?.params?.authPayload, + chains: supportedChains, + methods: supportedMethods + }) + + if (signStrategy === 1) { + try { + const iss = `${newAuthPayload.chains[0]}:${address}` + const message = getMessageToSign(newAuthPayload, iss) + setMessages([ + { + authPayload: newAuthPayload, + message, + id: authRequest.id, + iss + } + ]) + } catch (e) { + console.log('error', e) + styledToast((e as Error).message, 'error') + ModalStore.close() + } + } else if (signStrategy === 2) { + const messagesToSign: any[] = [] + newAuthPayload.chains.forEach((chain: string) => { + const iss = `${chain}:${address}` + const message = walletKit.engine.signClient.formatAuthMessage({ + request: newAuthPayload, + iss + }) + messagesToSign.push({ + authPayload: newAuthPayload, + message, + iss, + id: authRequest.id + }) + }) + setMessages(messagesToSign) + } + }, [address, authRequest, getMessageToSign, signStrategy, supportedChains, supportedMethods]) + + // Handle approve action (logic varies based on request method) + const onApprove = useCallback(async () => { + // if (messages.length) { + // const signedAuths = [] + // for (const message of messages) { + // const signature = await walletProvider?.request({ + // method: 'personal_sign', + // params: [message.message, address] + // }) + // const signedCacao = buildAuthObject( + // message.authPayload, + // { + // t: 'eip191', + // s: signature + // }, + // message.iss + // ) + // signedAuths.push(signedCacao) + // } + + // await walletKit.engine.signClient.approveSessionAuthenticate({ + // id: messages[0].id, + // auths: signedAuths + // }) + // SettingsStore.setSessions(Object.values(walletKit.getActiveSessions())) + // ModalStore.close() + // } + }, [address, messages]) + + // Handle reject action + const onReject = useCallback(async () => { + if (authRequest?.params?.authPayload) { + await walletKit.engine.signClient.rejectSessionAuthenticate({ + id: authRequest.id, + reason: getSdkError('USER_REJECTED') + }) + ModalStore.close() + } + }, [authRequest]) + + return ( + + + + setSignStrategy(1)} checked={signStrategy === 1}> + Sign One + + + + setSignStrategy(2)} checked={signStrategy === 2}> + Sign All + + + + + + Messages to Sign ({messages.length}) + {messages.map((message, index) => { + return ( + + {message.message} + + ) + })} + + + + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/views/SessionProposalModal.tsx b/advanced/wallets/reown-web-wallet/src/views/SessionProposalModal.tsx new file mode 100644 index 000000000..3aba588ec --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/views/SessionProposalModal.tsx @@ -0,0 +1,306 @@ +import { Col, Grid, Row, Text, styled } from '@nextui-org/react' +import { useCallback, useMemo, useState, useEffect } from 'react' +import { buildApprovedNamespaces, getSdkError } from '@walletconnect/utils' +import { SignClientTypes } from '@walletconnect/types' +import DoneIcon from '@mui/icons-material/Done' +import CloseIcon from '@mui/icons-material/Close' +import ModalStore from '@/store/ModalStore' +import { styledToast } from '@/utils/HelperUtil' +import { walletKit } from '@/utils/WalletConnectUtil' +import { EIP155Chain, EIP155_CHAINS, EIP155_SIGNING_METHODS } from '@/data/EIP155Data' +import ChainDataMini from '@/components/ChainDataMini' +import ChainAddressMini from '@/components/ChainAddressMini' +import { getChainData } from '@/data/chainsUtil' +import RequestModal from './RequestModal' +import { useSnapshot } from 'valtio' +import SettingsStore from '@/store/SettingsStore' +import { EIP5792_METHODS } from '@/data/EIP5792Data' +import { ChainController, useAppKitAccount, useAppKitProvider, useAppKitState } from '@reown/appkit/react' +import { W3mFrameProvider } from '@reown/appkit-wallet' +import LoadingModal from './LoadingModal' +import { useRouter } from 'next/router' + +const StyledText = styled(Text, { + fontWeight: 400 +} as any) + +const StyledSpan = styled('span', { + fontWeight: 400 +} as any) + +export default function SessionProposalModal() { + // Get proposal data and wallet address from store + const data = useSnapshot(ModalStore.state) + const proposal = data?.data?.proposal as SignClientTypes.EventArguments['session_proposal'] + const [isLoadingApprove, setIsLoadingApprove] = useState(false) + const [isLoadingReject, setIsLoadingReject] = useState(false) + const { address, caipAddress } = useAppKitAccount() + const { walletProvider } = useAppKitProvider('eip155') + + const [supportedNamespaces, setSupportedNamespaces] = useState(null) + const [smartAccounts, setSmartAccounts] = useState([]) + const [activeChainId, setActiveChainId] = useState('') + const [email, setEmail] = useState('') + + useEffect(() => { + if (!walletProvider) + return; + + const fetchSupportedNamespaces = async () => { + console.log('fetchSupportedNamespaces', walletProvider) + + const user = await walletProvider.getUser({}) + + const saAddress = user.accounts?.find(account => account.type === 'smartAccount')?.address + const eoaAddress = user.accounts?.find(account => account.type === 'eoa')?.address + + const activeChainId = `eip155:${user.chainId}` + + // eip155 + const eip155Chains = Object.keys(EIP155_CHAINS) + const eip155Methods = Object.values(EIP155_SIGNING_METHODS) + + // eip5792 + const eip5792Chains = Object.keys(EIP155_CHAINS) + const eip5792Methods = Object.values(EIP5792_METHODS) + + const smartAccounts = eip155Chains.map(chain => `${chain}:${saAddress}`) + const eoaAccounts = eip155Chains.map(chain => `${chain}:${eoaAddress}`) + + let allAccounts = [...smartAccounts, ...eoaAccounts]; + + // Move preferred account type for active chain to the front + const preferredAccountType = user.preferredAccountType + const preferredAccountAddress = preferredAccountType === 'smartAccount' ? saAddress : eoaAddress + const preferredAccountForActiveChain = `${activeChainId}:${preferredAccountAddress}` + + allAccounts = [ + preferredAccountForActiveChain, + ...allAccounts.filter(account => account !== preferredAccountForActiveChain) + ]; + + console.log('allAccounts', allAccounts) + + const result = { + eip155: { + chains: eip155Chains, + methods: eip155Methods.concat(eip5792Methods), + events: ['accountsChanged', 'chainChanged'], + accounts: allAccounts, + }, + }; + + setActiveChainId(activeChainId); + setEmail(user.email || '') + setSmartAccounts(smartAccounts); + setSupportedNamespaces(result); + }; + + fetchSupportedNamespaces(); + }, [walletProvider]); + + const requestedChains = useMemo(() => { + if (!proposal) return [] + const required = [] + for (const [key, values] of Object.entries(proposal.params.requiredNamespaces)) { + const chains = key.includes(':') ? key : values.chains + required.push(chains) + } + + const optional = [] + for (const [key, values] of Object.entries(proposal.params.optionalNamespaces)) { + const chains = key.includes(':') ? key : values.chains + optional.push(chains) + } + + return [...new Set([...required.flat(), ...optional.flat()])] + }, [proposal]) + + // the chains that are supported by the wallet from the proposal + const supportedChains: EIP155Chain[] = useMemo( + () => + requestedChains + .map(chain => { + const chainData = getChainData(chain!) + + if (!chainData) return null + + return chainData + }) + .filter(chain => chain), // removes null values + [requestedChains] + ) as unknown as EIP155Chain[] + + // get required chains that are not supported by the wallet + const notSupportedChains = useMemo(() => { + if (!proposal) return [] + const required = [] + for (const [key, values] of Object.entries(proposal.params.requiredNamespaces)) { + const chains = key.includes(':') ? key : values.chains + required.push(chains) + } + return required + .flat() + .filter( + chain => + !supportedChains + .map(supportedChain => `${supportedChain?.namespace}:${supportedChain?.chainId}`) + .includes(chain!) + ) + }, [proposal, supportedChains]) + const getAddress = useCallback((namespace?: string) => { + if (!namespace) return 'N/A' + switch (namespace) { + case 'eip155': + return address + } + }, [address]) + + const namespaces = useMemo(() => { + try { + // the builder throws an exception if required namespaces are not supported + return buildApprovedNamespaces({ + proposal: proposal.params, + supportedNamespaces + }) + } catch (e) {} + }, [proposal.params, supportedNamespaces]) + + + // Hanlde approve action, construct session namespace + const onApprove = useCallback(async () => { + if (proposal && namespaces) { + setIsLoadingApprove(true) + try { + const session = await walletKit.approveSession({ + id: proposal.id, + namespaces, + sessionProperties: { + "smartAccounts": JSON.stringify(smartAccounts), + "email": email, + } + }) + SettingsStore.setSessions(Object.values(walletKit.getActiveSessions())) + + await new Promise(resolve => setTimeout(resolve, 1000)) + + const chainChanged = { + topic: session.topic, + event: { + name: 'chainChanged', + data: `0x${parseInt(activeChainId.split(':')[1]).toString(16)}` + }, + chainId: activeChainId + } + + console.log('chainChanged', chainChanged) + await walletKit.emitSessionEvent(chainChanged) + + const nativeRedirect = session.peer.metadata.redirect?.native + if (nativeRedirect) { + // Try to open the native app using the URL schema + window.location.assign(nativeRedirect) + } + } catch (e) { + setIsLoadingApprove(false) + styledToast((e as Error).message, 'error') + return + } + } + setIsLoadingApprove(false) + ModalStore.close() + }, [namespaces, proposal, walletProvider]) + + // Hanlde reject action + // eslint-disable-next-line react-hooks/rules-of-hooks + const onReject = useCallback(async () => { + if (proposal) { + try { + setIsLoadingReject(true) + await new Promise(resolve => setTimeout(resolve, 1000)) + await walletKit.rejectSession({ + id: proposal.id, + reason: getSdkError('USER_REJECTED_METHODS') + }) + } catch (e) { + setIsLoadingReject(false) + styledToast((e as Error).message, 'error') + return + } + } + setIsLoadingReject(false) + ModalStore.close() + }, [proposal]) + + return ( + 0 || supportedChains.length === 0} + disableApprove={notSupportedChains.length > 0 || supportedChains.length === 0} + infoBoxText={`The session cannot be approved because the wallet does not the support some or all of the proposed chains. Please inspect the console for more information.`} + > + + + Requested permissions + + + + + {' '} + View your balance and activity + + + + + {' '} + Send approval requests + + + + + + Move funds without permission + + + + + Accounts + {(supportedChains.length > 0 && + supportedChains.map((chain, i) => { + return ( + + + + ) + })) || Non available} + + Smart Accounts + + + + Chains + + {(supportedChains.length > 0 && + supportedChains.map((chain, i) => { + if (!chain) { + return <> + } + + return ( + + + + ) + })) || Non available} + + Chains + + + + + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/views/SessionSendTransactionModal.tsx b/advanced/wallets/reown-web-wallet/src/views/SessionSendTransactionModal.tsx new file mode 100644 index 000000000..f712e623e --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/views/SessionSendTransactionModal.tsx @@ -0,0 +1,88 @@ +import { useCallback, useState } from 'react' +import { Divider, Text } from '@nextui-org/react' + +import RequestDataCard from '@/components/RequestDataCard' +import RequesDetailsCard from '@/components/RequestDetalilsCard' +import RequestMethodCard from '@/components/RequestMethodCard' +import ModalStore from '@/store/ModalStore' +import { approveEIP155Request, rejectEIP155Request } from '@/utils/EIP155RequestHandlerUtil' +import { styledToast } from '@/utils/HelperUtil' +import { walletKit } from '@/utils/WalletConnectUtil' +import RequestModal from './RequestModal' +import { useAppKitProvider } from '@reown/appkit/react' +import { W3mFrameProvider } from '@reown/appkit-wallet' + +export default function SessionSendTransactionModal() { + const [isLoadingApprove, setIsLoadingApprove] = useState(false) + const [isLoadingReject, setIsLoadingReject] = useState(false) + const { walletProvider } = useAppKitProvider('eip155') + + // Get request and wallet data from store + const requestEvent = ModalStore.state.data?.requestEvent + const requestSession = ModalStore.state.data?.requestSession + + const topic = requestEvent?.topic + const params = requestEvent?.params + const chainId = params?.chainId + const request = params?.request + const transaction = request?.params[0] + + // Handle approve action + const onApprove = useCallback(async () => { + if (requestEvent && topic && walletProvider) { + setIsLoadingApprove(true) + try { + const response = await approveEIP155Request(requestEvent, walletProvider) + await walletKit.respondSessionRequest({ + topic, + response + }) + } catch (e) { + setIsLoadingApprove(false) + styledToast((e as Error).message, 'error') + return + } + setIsLoadingApprove(false) + ModalStore.close() + } + }, [requestEvent, topic, walletProvider]) + + // Handle reject action + const onReject = useCallback(async () => { + if (requestEvent && topic) { + setIsLoadingReject(true) + const response = rejectEIP155Request(requestEvent) + try { + await walletKit.respondSessionRequest({ + topic, + response + }) + } catch (e) { + setIsLoadingReject(false) + styledToast((e as Error).message, 'error') + return + } + setIsLoadingReject(false) + ModalStore.close() + } + }, [requestEvent, topic]) + + return request && requestSession ? ( + + + + + + + + ) : ( + Request not found + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/views/SessionSignModal.tsx b/advanced/wallets/reown-web-wallet/src/views/SessionSignModal.tsx new file mode 100644 index 000000000..e2c0f800b --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/views/SessionSignModal.tsx @@ -0,0 +1,95 @@ +/* eslint-disable react-hooks/rules-of-hooks */ +import { Col, Divider, Row, Text } from '@nextui-org/react' +import { useCallback, useState } from 'react' + +import RequesDetailsCard from '@/components/RequestDetalilsCard' +import ModalStore from '@/store/ModalStore' +import { approveEIP155Request, rejectEIP155Request } from '@/utils/EIP155RequestHandlerUtil' +import { getSignParamsMessage, styledToast } from '@/utils/HelperUtil' +import { walletKit } from '@/utils/WalletConnectUtil' +import RequestModal from './RequestModal' +import { useAppKitProvider } from '@reown/appkit/react' +import { W3mFrameProvider } from '@reown/appkit-wallet' + +export default function SessionSignModal() { + // Get request and wallet data from store + const requestEvent = ModalStore.state.data?.requestEvent + const requestSession = ModalStore.state.data?.requestSession + const [isLoadingApprove, setIsLoadingApprove] = useState(false) + const [isLoadingReject, setIsLoadingReject] = useState(false) + const { walletProvider } = useAppKitProvider('eip155') + + // Ensure request and wallet are defined + if (!requestEvent || !requestSession) { + return Missing request data + } + + // Get required request data + const { topic, params } = requestEvent + const { request, chainId } = params + + // Get message, convert it to UTF8 string if it is valid hex + const message = getSignParamsMessage(request.params) + + // Handle approve action (logic varies based on request method) + const onApprove = useCallback(async () => { + if (requestEvent && topic && walletProvider) { + setIsLoadingApprove(true) + const response = await approveEIP155Request(requestEvent, walletProvider) + try { + await walletKit.respondSessionRequest({ + topic, + response + }) + } catch (e) { + setIsLoadingApprove(false) + styledToast((e as Error).message, 'error') + return + } + setIsLoadingApprove(false) + ModalStore.close() + } + }, [requestEvent, topic, walletProvider]) + + // Handle reject action + const onReject = useCallback(async () => { + if (requestEvent) { + setIsLoadingReject(true) + const response = rejectEIP155Request(requestEvent) + try { + await walletKit.respondSessionRequest({ + topic, + response + }) + } catch (e) { + setIsLoadingReject(false) + styledToast((e as Error).message, 'error') + return + } + setIsLoadingReject(false) + ModalStore.close() + } + }, [requestEvent, topic]) + + return ( + + + + + + Message + + {message} + + + + + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/views/SessionSignTypedDataModal.tsx b/advanced/wallets/reown-web-wallet/src/views/SessionSignTypedDataModal.tsx new file mode 100644 index 000000000..ff6eafc06 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/views/SessionSignTypedDataModal.tsx @@ -0,0 +1,91 @@ +/* eslint-disable react-hooks/rules-of-hooks */ +import { Divider, Text } from '@nextui-org/react' + +import RequestDataCard from '@/components/RequestDataCard' +import RequesDetailsCard from '@/components/RequestDetalilsCard' +import RequestMethodCard from '@/components/RequestMethodCard' +import ModalStore from '@/store/ModalStore' +import { approveEIP155Request, rejectEIP155Request } from '@/utils/EIP155RequestHandlerUtil' +import { getSignTypedDataParamsData, styledToast } from '@/utils/HelperUtil' +import { walletKit } from '@/utils/WalletConnectUtil' +import RequestModal from './RequestModal' +import { useCallback, useState } from 'react' +import PermissionDetailsCard from '@/components/PermissionDetailsCard' +import { useAppKitProvider } from '@reown/appkit/react' +import { W3mFrameProvider } from '@reown/appkit-wallet' + +export default function SessionSignTypedDataModal() { + // Get request and wallet data from store + const requestEvent = ModalStore.state.data?.requestEvent + const requestSession = ModalStore.state.data?.requestSession + const [isLoadingApprove, setIsLoadingApprove] = useState(false) + const [isLoadingReject, setIsLoadingReject] = useState(false) + const { walletProvider } = useAppKitProvider('eip155') + + + // Ensure request and wallet are defined + if (!requestEvent || !requestSession) { + return Missing request data + } + + // Get required request data + const { topic, params } = requestEvent + const { request, chainId } = params + let method = request.method + // Get data + const data = getSignTypedDataParamsData(request.params) + + // Handle approve action (logic varies based on request method) + const onApprove = useCallback(async () => { + if (requestEvent && topic && walletProvider) { + setIsLoadingApprove(true) + const response = await approveEIP155Request(requestEvent, walletProvider) + try { + await walletKit.respondSessionRequest({ + topic, + response + }) + } catch (e) { + setIsLoadingApprove(false) + styledToast((e as Error).message, 'error') + return + } + setIsLoadingApprove(false) + ModalStore.close() + } + }, [requestEvent, topic, walletProvider]) + + // Handle reject action + const onReject = useCallback(async () => { + if (requestEvent) { + setIsLoadingReject(true) + const response = rejectEIP155Request(requestEvent) + try { + await walletKit.respondSessionRequest({ + topic, + response + }) + } catch (e) { + setIsLoadingReject(false) + styledToast((e as Error).message, 'error') + return + } + setIsLoadingReject(false) + ModalStore.close() + } + }, [requestEvent, topic]) + return ( + + + + + + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/views/SessionUnsuportedMethodModal.tsx b/advanced/wallets/reown-web-wallet/src/views/SessionUnsuportedMethodModal.tsx new file mode 100644 index 000000000..a8620be2b --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/views/SessionUnsuportedMethodModal.tsx @@ -0,0 +1,44 @@ +import { Button, Divider, Modal, Text } from '@nextui-org/react' +import { Fragment } from 'react' + +import ProjectInfoCard from '@/components/ProjectInfoCard' +import RequesDetailsCard from '@/components/RequestDetalilsCard' +import RequestMethodCard from '@/components/RequestMethodCard' +import RequestModalContainer from '@/components/RequestModalContainer' +import ModalStore from '@/store/ModalStore' + +export default function SessionUnsuportedMethodModal() { + // Get request and wallet data from store + const requestEvent = ModalStore.state.data?.requestEvent + const requestSession = ModalStore.state.data?.requestSession + + // Ensure request and wallet are defined + if (!requestEvent || !requestSession) { + return Missing request data + } + + // Get required request data + const { topic, params } = requestEvent + const { chainId, request } = params + + return ( + + + + + + + + + + + + + + + + + ) +} diff --git a/advanced/wallets/reown-web-wallet/src/views/TheatPrompt.tsx b/advanced/wallets/reown-web-wallet/src/views/TheatPrompt.tsx new file mode 100644 index 000000000..12cec4a1c --- /dev/null +++ b/advanced/wallets/reown-web-wallet/src/views/TheatPrompt.tsx @@ -0,0 +1,78 @@ +import { Col, Divider, Link, Row, Text, styled } from '@nextui-org/react' +import { CoreTypes } from '@walletconnect/types' +import NewReleasesIcon from '@mui/icons-material/NewReleases' + +import RequestModalContainer from '@/components/RequestModalContainer' + +interface IProps { + metadata: CoreTypes.Metadata + onApprove: () => void + onReject: () => void +} + +const StyledLink = styled('span', { + color: '#697177' +} as any) + +const StyledProceedButton = styled('p', { + margin: '10px auto', + padding: '10px', + color: '$error', + cursor: 'pointer' +} as any) + +const StyledCloseButton = styled('p', { + margin: 'auto', + padding: '10px', + border: '1px solid $error', + borderRadius: '30px' +} as any) + +export default function ThreatPrompt({ metadata, onApprove, onReject }: IProps) { + const { icons, name, url } = metadata + + return ( + +
+ + + + + + + + Website flagged + + + + + + {url} + + + +
+ + + This website you`re trying to connect is flagged as malicious by multiple security + providers. Approving may lead to loss of funds. + + + + Proceed anyway + + + + + Close + + +
+
+
+ ) +} diff --git a/advanced/wallets/reown-web-wallet/tsconfig.json b/advanced/wallets/reown-web-wallet/tsconfig.json new file mode 100644 index 000000000..b521890a7 --- /dev/null +++ b/advanced/wallets/reown-web-wallet/tsconfig.json @@ -0,0 +1,36 @@ +{ + "compilerOptions": { + "target": "ES2020", + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "incremental": true, + "esModuleInterop": true, + "downlevelIteration": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "baseUrl": ".", + "paths": { + "@/*": ["src/*"], + "react": ["node_modules/@types/react"], + } + }, + "include": [ + "next-env.d.ts", + "**/*.ts", + "**/*.tsx" + ], + "exclude": [ + "node_modules" + ] +} diff --git a/dapps/appkit-siwe/next/.gitignore b/dapps/appkit-siwe/next/.gitignore index 7b9f356ec..200ee126f 100644 --- a/dapps/appkit-siwe/next/.gitignore +++ b/dapps/appkit-siwe/next/.gitignore @@ -1,7 +1,7 @@ # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. # dependencies -/node_modules +node_modules/ /.pnp .pnp.js .yarn/install-state.gz diff --git a/dapps/appkit-siwe/react/.gitignore b/dapps/appkit-siwe/react/.gitignore index 77ecd8fab..59c5f6ddb 100644 --- a/dapps/appkit-siwe/react/.gitignore +++ b/dapps/appkit-siwe/react/.gitignore @@ -8,7 +8,7 @@ pnpm-debug.log* lerna-debug.log* -node_modules +node_modules/* dist dist-ssr *.local