diff --git a/wallets/react-wallet-v2-chat/.env.local.example b/wallets/react-wallet-v2-chat/.env.local.example new file mode 100644 index 0000000..857da45 --- /dev/null +++ b/wallets/react-wallet-v2-chat/.env.local.example @@ -0,0 +1,3 @@ +NEXT_PUBLIC_PROJECT_ID=... +NEXT_PUBLIC_RELAY_URL=wss://relay.walletconnect.com + diff --git a/wallets/react-wallet-v2-chat/.eslintrc.json b/wallets/react-wallet-v2-chat/.eslintrc.json new file mode 100644 index 0000000..39894ad --- /dev/null +++ b/wallets/react-wallet-v2-chat/.eslintrc.json @@ -0,0 +1,4 @@ +{ + "extends": "next/core-web-vitals", + "ignorePatterns": ["next.config.js"] +} diff --git a/wallets/react-wallet-v2-chat/.gitignore b/wallets/react-wallet-v2-chat/.gitignore new file mode 100644 index 0000000..58af681 --- /dev/null +++ b/wallets/react-wallet-v2-chat/.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/wallets/react-wallet-v2-chat/.prettierrc.json b/wallets/react-wallet-v2-chat/.prettierrc.json new file mode 100644 index 0000000..e2abdba --- /dev/null +++ b/wallets/react-wallet-v2-chat/.prettierrc.json @@ -0,0 +1,9 @@ +{ + "arrowParens": "avoid", + "parser": "typescript", + "printWidth": 100, + "singleQuote": true, + "tabWidth": 2, + "trailingComma": "none", + "semi": false +} diff --git a/wallets/react-wallet-v2-chat/README.md b/wallets/react-wallet-v2-chat/README.md new file mode 100644 index 0000000..8195d50 --- /dev/null +++ b/wallets/react-wallet-v2-chat/README.md @@ -0,0 +1,44 @@ +# Wallet Example (React, Typescript, Ethers, NextJS, Cosmos) + +This example aims to demonstrate basic and advanced use cases enabled by WalletConnect. Please only use this for refference and development purposes, otherwise you are at risk of loosing 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 + +Eexample 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 oppens related [Modal views](https://github.com/WalletConnect/web-examples/tree/main/wallets/react-wallet-v2/src/views) and passes them all necesary 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. Uppon approval or rejection modals pass request data to [RequestHandlerUtil.ts](https://github.com/WalletConnect/web-examples/blob/main/wallets/react-wallet-v2/src/utils/RequestHandlerUtil.ts) that performs all necesary work based on request method and returns formated json rpc result data that can be then used for WallteConnect client responses + +## Preview of wallet and dapp examples in action + +https://user-images.githubusercontent.com/3154053/156764521-3492c232-7a93-47ba-88bd-2cee3f8366d4.mp4 diff --git a/wallets/react-wallet-v2-chat/next-env.d.ts b/wallets/react-wallet-v2-chat/next-env.d.ts new file mode 100644 index 0000000..4f11a03 --- /dev/null +++ b/wallets/react-wallet-v2-chat/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/wallets/react-wallet-v2-chat/next.config.js b/wallets/react-wallet-v2-chat/next.config.js new file mode 100644 index 0000000..58a97fa --- /dev/null +++ b/wallets/react-wallet-v2-chat/next.config.js @@ -0,0 +1,3 @@ +module.exports = { + reactStrictMode: true +} diff --git a/wallets/react-wallet-v2-chat/package.json b/wallets/react-wallet-v2-chat/package.json new file mode 100644 index 0000000..3819ff3 --- /dev/null +++ b/wallets/react-wallet-v2-chat/package.json @@ -0,0 +1,45 @@ +{ + "name": "react-wallet-v2", + "private": true, + "scripts": { + "dev": "next dev -p 3001", + "dev:peer": "NEXT_PUBLIC_CHAT_ENV=peer next dev -p 3002", + "build": "next build", + "start": "next start", + "lint": "next lint" + }, + "dependencies": { + "@cosmjs/amino": "0.28.4", + "@cosmjs/encoding": "0.28.4", + "@cosmjs/proto-signing": "0.28.4", + "@json-rpc-tools/utils": "1.7.6", + "@nextui-org/react": "1.0.8-beta.5", + "@solana/web3.js": "1.43.0", + "@walletconnect/chat-client": "^0.1.6", + "@walletconnect/sign-client": "2.0.0-rc.4", + "@walletconnect/utils": "2.0.0-rc.4", + "bs58": "5.0.0", + "cosmos-wallet": "1.2.0", + "ethers": "5.6.6", + "framer-motion": "6.3.3", + "mnemonic-keyring": "1.4.0", + "next": "12.1.5", + "react": "17.0.2", + "react-code-blocks": "0.0.9-0", + "react-dom": "17.0.2", + "react-icons": "^4.4.0", + "react-qr-reader-es6": "2.2.1-2", + "solana-wallet": "1.0.1", + "valtio": "1.6.0" + }, + "devDependencies": { + "@types/node": "17.0.35", + "@types/react": "18.0.9", + "@walletconnect/types": "2.0.0-rc.4", + "eslint": "8.15.0", + "eslint-config-next": "12.1.6", + "eslint-config-prettier": "8.5.0", + "prettier": "2.6.2", + "typescript": "4.6.4" + } +} diff --git a/wallets/react-wallet-v2-chat/public/chain-logos/cosmos-cosmoshub-4.png b/wallets/react-wallet-v2-chat/public/chain-logos/cosmos-cosmoshub-4.png new file mode 100644 index 0000000..03cc60a Binary files /dev/null and b/wallets/react-wallet-v2-chat/public/chain-logos/cosmos-cosmoshub-4.png differ diff --git a/wallets/react-wallet-v2-chat/public/chain-logos/eip155-1.png b/wallets/react-wallet-v2-chat/public/chain-logos/eip155-1.png new file mode 100644 index 0000000..ca51f56 Binary files /dev/null and b/wallets/react-wallet-v2-chat/public/chain-logos/eip155-1.png differ diff --git a/wallets/react-wallet-v2-chat/public/chain-logos/eip155-137.png b/wallets/react-wallet-v2-chat/public/chain-logos/eip155-137.png new file mode 100644 index 0000000..1b0e56b Binary files /dev/null and b/wallets/react-wallet-v2-chat/public/chain-logos/eip155-137.png differ diff --git a/wallets/react-wallet-v2-chat/public/chain-logos/eip155-43113.png b/wallets/react-wallet-v2-chat/public/chain-logos/eip155-43113.png new file mode 100644 index 0000000..c35df44 Binary files /dev/null and b/wallets/react-wallet-v2-chat/public/chain-logos/eip155-43113.png differ diff --git a/wallets/react-wallet-v2-chat/public/chain-logos/solana-4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ.png b/wallets/react-wallet-v2-chat/public/chain-logos/solana-4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ.png new file mode 100644 index 0000000..a107a08 Binary files /dev/null and b/wallets/react-wallet-v2-chat/public/chain-logos/solana-4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ.png differ diff --git a/wallets/react-wallet-v2-chat/public/favicon.ico b/wallets/react-wallet-v2-chat/public/favicon.ico new file mode 100644 index 0000000..718d6fe Binary files /dev/null and b/wallets/react-wallet-v2-chat/public/favicon.ico differ diff --git a/wallets/react-wallet-v2-chat/public/icons/accounts-icon.svg b/wallets/react-wallet-v2-chat/public/icons/accounts-icon.svg new file mode 100644 index 0000000..c159f8f --- /dev/null +++ b/wallets/react-wallet-v2-chat/public/icons/accounts-icon.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wallets/react-wallet-v2-chat/public/icons/arrow-down-icon.svg b/wallets/react-wallet-v2-chat/public/icons/arrow-down-icon.svg new file mode 100644 index 0000000..362c3cb --- /dev/null +++ b/wallets/react-wallet-v2-chat/public/icons/arrow-down-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/wallets/react-wallet-v2-chat/public/icons/arrow-right-icon.svg b/wallets/react-wallet-v2-chat/public/icons/arrow-right-icon.svg new file mode 100644 index 0000000..6c5acea --- /dev/null +++ b/wallets/react-wallet-v2-chat/public/icons/arrow-right-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/wallets/react-wallet-v2-chat/public/icons/chat-icon.svg b/wallets/react-wallet-v2-chat/public/icons/chat-icon.svg new file mode 100644 index 0000000..8350f7a --- /dev/null +++ b/wallets/react-wallet-v2-chat/public/icons/chat-icon.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/wallets/react-wallet-v2-chat/public/icons/checkmark-icon.svg b/wallets/react-wallet-v2-chat/public/icons/checkmark-icon.svg new file mode 100644 index 0000000..31822d1 --- /dev/null +++ b/wallets/react-wallet-v2-chat/public/icons/checkmark-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/wallets/react-wallet-v2-chat/public/icons/copy-icon.svg b/wallets/react-wallet-v2-chat/public/icons/copy-icon.svg new file mode 100644 index 0000000..76253a9 --- /dev/null +++ b/wallets/react-wallet-v2-chat/public/icons/copy-icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/wallets/react-wallet-v2-chat/public/icons/delete-icon.svg b/wallets/react-wallet-v2-chat/public/icons/delete-icon.svg new file mode 100644 index 0000000..ffce69d --- /dev/null +++ b/wallets/react-wallet-v2-chat/public/icons/delete-icon.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/wallets/react-wallet-v2-chat/public/icons/pairings-icon.svg b/wallets/react-wallet-v2-chat/public/icons/pairings-icon.svg new file mode 100644 index 0000000..66f418a --- /dev/null +++ b/wallets/react-wallet-v2-chat/public/icons/pairings-icon.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/wallets/react-wallet-v2-chat/public/icons/qr-icon.svg b/wallets/react-wallet-v2-chat/public/icons/qr-icon.svg new file mode 100644 index 0000000..caf6441 --- /dev/null +++ b/wallets/react-wallet-v2-chat/public/icons/qr-icon.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/wallets/react-wallet-v2-chat/public/icons/sessions-icon.svg b/wallets/react-wallet-v2-chat/public/icons/sessions-icon.svg new file mode 100644 index 0000000..0b74731 --- /dev/null +++ b/wallets/react-wallet-v2-chat/public/icons/sessions-icon.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/wallets/react-wallet-v2-chat/public/icons/settings-icon.svg b/wallets/react-wallet-v2-chat/public/icons/settings-icon.svg new file mode 100644 index 0000000..11874aa --- /dev/null +++ b/wallets/react-wallet-v2-chat/public/icons/settings-icon.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/wallets/react-wallet-v2-chat/public/main.css b/wallets/react-wallet-v2-chat/public/main.css new file mode 100644 index 0000000..7899b2c --- /dev/null +++ b/wallets/react-wallet-v2-chat/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/wallets/react-wallet-v2-chat/public/vercel.svg b/wallets/react-wallet-v2-chat/public/vercel.svg new file mode 100644 index 0000000..fbf0e25 --- /dev/null +++ b/wallets/react-wallet-v2-chat/public/vercel.svg @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/wallets/react-wallet-v2-chat/public/wallet-connect-logo.svg b/wallets/react-wallet-v2-chat/public/wallet-connect-logo.svg new file mode 100644 index 0000000..897281f --- /dev/null +++ b/wallets/react-wallet-v2-chat/public/wallet-connect-logo.svg @@ -0,0 +1,3 @@ + + + diff --git a/wallets/react-wallet-v2-chat/src/components/AccountCard.tsx b/wallets/react-wallet-v2-chat/src/components/AccountCard.tsx new file mode 100644 index 0000000..9b58ec2 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/components/AccountCard.tsx @@ -0,0 +1,51 @@ +import ChainCard from '@/components/ChainCard' +import { truncate } from '@/utils/HelperUtil' +import { Avatar, Button, Text, Tooltip } from '@nextui-org/react' +import Image from 'next/image' +import { useState } from 'react' + +interface Props { + name: string + logo: string + rgb: string + address: string +} + +export default function AccountCard({ name, logo, rgb, address }: Props) { + const [copied, setCopied] = useState(false) + + function onCopy() { + navigator?.clipboard?.writeText(address) + setCopied(true) + setTimeout(() => setCopied(false), 1500) + } + + return ( + + +
+ + {name} + + + {truncate(address, 19)} + +
+ + + + +
+ ) +} diff --git a/wallets/react-wallet-v2-chat/src/components/AccountPicker.tsx b/wallets/react-wallet-v2-chat/src/components/AccountPicker.tsx new file mode 100644 index 0000000..9cc06df --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/components/AccountPicker.tsx @@ -0,0 +1,24 @@ +import SettingsStore from '@/store/SettingsStore' +import { cosmosAddresses } from '@/utils/CosmosWalletUtil' +import { eip155Addresses } from '@/utils/EIP155WalletUtil' +import { solanaAddresses } from '@/utils/SolanaWalletUtil' +import { useSnapshot } from 'valtio' + +export default function AccountPicker() { + const { account } = useSnapshot(SettingsStore.state) + + function onSelect(value: string) { + const account = Number(value) + SettingsStore.setAccount(account) + SettingsStore.setEIP155Address(eip155Addresses[account]) + SettingsStore.setCosmosAddress(cosmosAddresses[account]) + SettingsStore.setSolanaAddress(solanaAddresses[account]) + } + + return ( + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/components/AccountSelectCard.tsx b/wallets/react-wallet-v2-chat/src/components/AccountSelectCard.tsx new file mode 100644 index 0000000..dcdff4b --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/components/AccountSelectCard.tsx @@ -0,0 +1,35 @@ +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 +} + +/** + * Component + */ +export default function AccountSelectCard({ address, selected, index, onSelect }: IProps) { + return ( + + + + + {`${truncate(address, 14)} - Account ${index + 1}`} + + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/components/ChainCard.tsx b/wallets/react-wallet-v2-chat/src/components/ChainCard.tsx new file mode 100644 index 0000000..6936f51 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/components/ChainCard.tsx @@ -0,0 +1,36 @@ +import { Card } from '@nextui-org/react' +import { ReactNode } from 'react' + +interface Props { + children: ReactNode | ReactNode[] + rgb: string + flexDirection: 'row' | 'col' + alignItems: 'center' | 'flex-start' +} + +export default function ChainCard({ rgb, children, flexDirection, alignItems }: Props) { + return ( + + + {children} + + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/components/ChatAvatar.tsx b/wallets/react-wallet-v2-chat/src/components/ChatAvatar.tsx new file mode 100644 index 0000000..56cda3f --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/components/ChatAvatar.tsx @@ -0,0 +1,10 @@ +import { Avatar, styled } from '@nextui-org/react' + +const ChatAvatar = styled(Avatar, { + '> span': { + background: + 'radial-gradient(75.29% 75.29% at 64.96% 24.36%, #FFFFFF 0.52%, #F5CCFC 31.25%, #DBA4F5 51.56%, #9A8EE8 65.62%, #6493DA 82.29%, #6EBDEA 100%) !important' + } +} as any) + +export default ChatAvatar diff --git a/wallets/react-wallet-v2-chat/src/components/ChatMessage.tsx b/wallets/react-wallet-v2-chat/src/components/ChatMessage.tsx new file mode 100644 index 0000000..644c97b --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/components/ChatMessage.tsx @@ -0,0 +1,68 @@ +import { Avatar, Grid, styled, Text } from '@nextui-org/react' +import ChatAvatar from './ChatAvatar' + +const Wrapper = styled('div', { + display: 'flex', + alignItems: 'flex-end', + margin: '0.25rem 0', + variants: { + messageType: { + incoming: { + alignSelf: 'flex-start' + }, + outgoing: { + alignSelf: 'flex-end', + flexDirection: 'row-reverse' + } + } + } +} as any) + +const MessageContainer = styled('div', { + position: 'relative', + width: 'fit-content', + padding: '0.25rem 0.75rem', + textAlign: 'left', + wordBreak: 'break-word', + color: '$grey500', + variants: { + messageType: { + incoming: { + background: '$chatPurplePrimary', + alignSelf: 'flex-start', + borderRadius: '20px 20px 20px 6px' + }, + outgoing: { + background: '$gray800', + alignSelf: 'flex-end', + borderRadius: '20px 20px 6px 20px' + } + } + } +} as any) + +interface IProps { + messageType: 'incoming' | 'outgoing' + message: string +} + +export default function ChatMessage({ messageType, message }: IProps) { + return ( + /* @ts-ignore */ + + {messageType === 'incoming' ? : null} + + + {/* {messageType === 'incoming' && ( + + username.eth + + )} */} + {/* @ts-ignore */} + + {message} + + + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/components/ChatPrimaryCTAButton.tsx b/wallets/react-wallet-v2-chat/src/components/ChatPrimaryCTAButton.tsx new file mode 100644 index 0000000..fe4d80c --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/components/ChatPrimaryCTAButton.tsx @@ -0,0 +1,24 @@ +import { Button } from '@nextui-org/react' +import { MouseEventHandler, ReactNode } from 'react' + +interface IProps { + onClick: MouseEventHandler + icon: ReactNode +} + +export default function ChatPrimaryCTAButton({ onClick, icon }: IProps) { + return ( + + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/components/ChatSummaryCard.tsx b/wallets/react-wallet-v2-chat/src/components/ChatSummaryCard.tsx new file mode 100644 index 0000000..2b6f7aa --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/components/ChatSummaryCard.tsx @@ -0,0 +1,55 @@ +import { demoAddressResolver } from '@/config/chatConstants' +import { Card, Text } from '@nextui-org/react' +import Image from 'next/image' +import NextLink from 'next/link' +import ChatAvatar from './ChatAvatar' + +/** + * Types + */ +interface IProps { + topic?: string + peerAccount: string + latestMessage?: string +} + +/** + * Component + */ +export default function ChatSummaryCard({ peerAccount, topic, latestMessage }: IProps) { + return ( + + + + +
+ + {demoAddressResolver[peerAccount] ?? peerAccount} + + + {latestMessage ?? ''} + +
+ + session icon +
+
+
+ ) +} diff --git a/wallets/react-wallet-v2-chat/src/components/ChatboxInput.tsx b/wallets/react-wallet-v2-chat/src/components/ChatboxInput.tsx new file mode 100644 index 0000000..5658c77 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/components/ChatboxInput.tsx @@ -0,0 +1,122 @@ +import { Input, styled } from '@nextui-org/react' +import { SyntheticEvent, useState } from 'react' + +const StyledForm = styled('form', { + display: 'flex', + alignItems: 'center', + width: '100%', + padding: '0.5rem', + zIndex: 3 +} as any) + +const InputContainer = styled('div', { + display: 'flex', + justifyContent: 'center', + flexDirection: 'row', + position: 'sticky' +} as any) + +const SendButton = styled('button', { + // reset button styles + background: 'transparent', + border: 'none', + padding: 0, + // styles + width: '24px', + margin: '0 10px', + dflex: 'center', + bg: 'linear-gradient(90deg, $secondary, $primary)', + borderRadius: '$rounded', + cursor: 'pointer', + transition: 'opacity 0.25s ease 0s, transform 0.25s ease 0s', + svg: { + size: '100%', + padding: '4px', + transition: 'transform 0.25s ease 0s, opacity 200ms ease-in-out 50ms', + boxShadow: '0 5px 20px -5px rgba(0, 0, 0, 0.1)' + }, + '&:hover': { + opacity: 0.8 + }, + '&:active': { + transform: 'scale(0.9)', + svg: { + transform: 'translate(24px, -24px)', + opacity: 0 + } + } +} as any) + +const SendIcon = ({ + fill = 'currentColor', + filled, + size, + height, + width, + label, + className, + ...props +}: any) => { + return ( + + + + + + ) +} + +interface IProps { + handleSend: (message: string) => void +} + +export default function ChatboxInput({ handleSend }: IProps) { + const [message, setMessage] = useState('') + + function handleMessageChange(evt: any) { + setMessage(evt.target.value) + } + + function onSend(evt: SyntheticEvent) { + evt.preventDefault() + if (message.length > 0) { + handleSend(message) + // Clear the input post-send. + setMessage('') + } + } + + return ( + + + + + + } + /> + + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/components/Layout.tsx b/wallets/react-wallet-v2-chat/src/components/Layout.tsx new file mode 100644 index 0000000..7f8a473 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/components/Layout.tsx @@ -0,0 +1,94 @@ +import Navigation from '@/components/Navigation' +import RouteTransition from '@/components/RouteTransition' +import { Card, Container, Loading } from '@nextui-org/react' +import { useRouter } from 'next/router' +import { Fragment, ReactNode } from 'react' + +/** + * Types + */ +interface Props { + initialized: boolean + children: ReactNode | ReactNode[] +} + +/** + * Container + */ +export default function Layout({ children, initialized }: Props) { + const { route } = useRouter() + const shouldHideFooter = route === '/chat' + + return ( + + + {initialized ? ( + + + + {children} + + + + + + + + ) : ( + + )} + + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/components/Modal.tsx b/wallets/react-wallet-v2-chat/src/components/Modal.tsx new file mode 100644 index 0000000..e79f798 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/components/Modal.tsx @@ -0,0 +1,26 @@ +import ModalStore from '@/store/ModalStore' +import SessionProposalModal from '@/views/SessionProposalModal' +import SessionSendTransactionModal from '@/views/SessionSendTransactionModal' +import SessionSignCosmosModal from '@/views/SessionSignCosmosModal' +import SessionRequestModal from '@/views/SessionSignModal' +import SessionSignSolanaModal from '@/views/SessionSignSolanaModal' +import SessionSignTypedDataModal from '@/views/SessionSignTypedDataModal' +import SessionUnsuportedMethodModal from '@/views/SessionUnsuportedMethodModal' +import { Modal as NextModal } from '@nextui-org/react' +import { useSnapshot } from 'valtio' + +export default function Modal() { + const { open, view } = useSnapshot(ModalStore.state) + + return ( + + {view === 'SessionProposalModal' && } + {view === 'SessionSignModal' && } + {view === 'SessionSignTypedDataModal' && } + {view === 'SessionSendTransactionModal' && } + {view === 'SessionUnsuportedMethodModal' && } + {view === 'SessionSignCosmosModal' && } + {view === 'SessionSignSolanaModal' && } + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/components/Navigation.tsx b/wallets/react-wallet-v2-chat/src/components/Navigation.tsx new file mode 100644 index 0000000..acb5f0a --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/components/Navigation.tsx @@ -0,0 +1,63 @@ +import { Avatar, Row, styled } from '@nextui-org/react' +import { FiMessageCircle } from 'react-icons/fi' +import Image from 'next/image' +import Link from 'next/link' + +const StyledChatIcon = styled(FiMessageCircle, { + color: '$primary' +} as any) + +export default function Navigation() { + return ( + + + + accounts icon + + + + + + sessions icon + + + + + + + } + /> + + + + {/* TODO: re-enable pairings link */} + {/* + + pairings icon + + */} + + + + chats icon + + + + + + settings icon + + + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/components/PageHeader.tsx b/wallets/react-wallet-v2-chat/src/components/PageHeader.tsx new file mode 100644 index 0000000..48b8e01 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/components/PageHeader.tsx @@ -0,0 +1,56 @@ +import { Button, Col, Divider, Row, Text } from '@nextui-org/react' +import { Fragment, ReactNode } from 'react' +import { FiChevronLeft } from 'react-icons/fi' +import NextLink from 'next/link' + +/** + * Types + */ +interface Props { + children?: ReactNode | ReactNode[] + title: string + withBackButton?: boolean + backButtonHref?: string + ctaButton?: ReactNode | ReactNode[] +} + +/** + * Component + */ +export default function PageHeader({ + title, + children, + ctaButton, + withBackButton = false, + backButtonHref = '#' +}: Props) { + return ( + + + {withBackButton && ( + + + + + + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/components/ProjectInfoCard.tsx b/wallets/react-wallet-v2-chat/src/components/ProjectInfoCard.tsx new file mode 100644 index 0000000..c2f6b6f --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/components/ProjectInfoCard.tsx @@ -0,0 +1,28 @@ +import { Avatar, Col, Link, Row, Text } from '@nextui-org/react' +import { SignClientTypes } from '@walletconnect/types' + +/** + * Types + */ +interface IProps { + metadata: SignClientTypes.Metadata +} + +/** + * Components + */ +export default function ProjectInfoCard({ metadata }: IProps) { + const { icons, name, url } = metadata + + return ( + + + + + + {name} + {url} + + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/components/ProposalSelectSection.tsx b/wallets/react-wallet-v2-chat/src/components/ProposalSelectSection.tsx new file mode 100644 index 0000000..0dcba24 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/components/ProposalSelectSection.tsx @@ -0,0 +1,39 @@ +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 +} + +/** + * Component + */ +export default function ProposalSelectSection({ + addresses, + selectedAddresses, + chain, + onSelect +}: IProps) { + return ( + + + {`Choose ${chain} accounts`} + {addresses.map((address, index) => ( + onSelect(chain, address)} + selected={selectedAddresses?.includes(address) ?? false} + /> + ))} + + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/components/QrReader.tsx b/wallets/react-wallet-v2-chat/src/components/QrReader.tsx new file mode 100644 index 0000000..632d046 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/components/QrReader.tsx @@ -0,0 +1,77 @@ +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/wallets/react-wallet-v2-chat/src/components/RequestDataCard.tsx b/wallets/react-wallet-v2-chat/src/components/RequestDataCard.tsx new file mode 100644 index 0000000..28cff88 --- /dev/null +++ b/wallets/react-wallet-v2-chat/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/wallets/react-wallet-v2-chat/src/components/RequestDetalilsCard.tsx b/wallets/react-wallet-v2-chat/src/components/RequestDetalilsCard.tsx new file mode 100644 index 0000000..695b610 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/components/RequestDetalilsCard.tsx @@ -0,0 +1,48 @@ +import { COSMOS_MAINNET_CHAINS, TCosmosChain } from '@/data/COSMOSData' +import { EIP155_CHAINS, TEIP155Chain } from '@/data/EIP155Data' +import { SOLANA_CHAINS, TSolanaChain } from '@/data/SolanaData' +import { Col, Divider, Row, Text } from '@nextui-org/react' +import { Fragment } from 'react' + +/** + * Types + */ +interface IProps { + chains: string[] + protocol: string +} + +/** + * Component + */ +export default function RequesDetailsCard({ chains, protocol }: IProps) { + return ( + + + + Blockchain(s) + + {chains + .map( + chain => + EIP155_CHAINS[chain as TEIP155Chain]?.name ?? + COSMOS_MAINNET_CHAINS[chain as TCosmosChain]?.name ?? + SOLANA_CHAINS[chain as TSolanaChain]?.name ?? + chain + ) + .join(', ')} + + + + + + + + + Relay Protocol + {protocol} + + + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/components/RequestMethodCard.tsx b/wallets/react-wallet-v2-chat/src/components/RequestMethodCard.tsx new file mode 100644 index 0000000..ee04eff --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/components/RequestMethodCard.tsx @@ -0,0 +1,22 @@ +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/wallets/react-wallet-v2-chat/src/components/RequestModalContainer.tsx b/wallets/react-wallet-v2-chat/src/components/RequestModalContainer.tsx new file mode 100644 index 0000000..6d9d1e1 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/components/RequestModalContainer.tsx @@ -0,0 +1,27 @@ +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} + + + + {children} + + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/components/RouteTransition.tsx b/wallets/react-wallet-v2-chat/src/components/RouteTransition.tsx new file mode 100644 index 0000000..ae6fbc0 --- /dev/null +++ b/wallets/react-wallet-v2-chat/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/wallets/react-wallet-v2-chat/src/components/SessionCard.tsx b/wallets/react-wallet-v2-chat/src/components/SessionCard.tsx new file mode 100644 index 0000000..750710f --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/components/SessionCard.tsx @@ -0,0 +1,55 @@ +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/wallets/react-wallet-v2-chat/src/components/SessionChainCard.tsx b/wallets/react-wallet-v2-chat/src/components/SessionChainCard.tsx new file mode 100644 index 0000000..1ecdf83 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/components/SessionChainCard.tsx @@ -0,0 +1,86 @@ +import ChainCard from '@/components/ChainCard' +import { COSMOS_MAINNET_CHAINS } from '@/data/COSMOSData' +import { EIP155_MAINNET_CHAINS, EIP155_TEST_CHAINS } from '@/data/EIP155Data' +import { SOLANA_MAINNET_CHAINS, SOLANA_TEST_CHAINS } from '@/data/SolanaData' +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 = { + ...COSMOS_MAINNET_CHAINS, + ...SOLANA_MAINNET_CHAINS, + ...EIP155_MAINNET_CHAINS, + ...EIP155_TEST_CHAINS, + ...SOLANA_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}` + chains.push(chainId) + }) + + return ( + + {chains.map(chainId => { + const extensionMethods: SessionTypes.Namespace['methods'] = [] + const extensionEvents: SessionTypes.Namespace['events'] = [] + + namespace.extension?.map(({ accounts, methods, events }) => { + accounts.forEach(account => { + const [type, chain] = account.split(':') + const chainId = `${type}:${chain}` + if (chains.includes(chainId)) { + extensionMethods.push(...methods) + extensionEvents.push(...events) + } + }) + }) + + const allMethods = [...namespace.methods, ...extensionMethods] + const allEvents = [...namespace.events, ...extensionEvents] + // @ts-expect-error + const rgb = CHAIN_METADATA[chainId]?.rgb + + return ( + + + {formatChainName(chainId)} + + + + Methods + {allMethods.length ? allMethods.join(', ') : '-'} + + + + + Events + {allEvents.length ? allEvents.join(', ') : '-'} + + + + ) + })} + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/components/SessionProposalChainCard.tsx b/wallets/react-wallet-v2-chat/src/components/SessionProposalChainCard.tsx new file mode 100644 index 0000000..e192e11 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/components/SessionProposalChainCard.tsx @@ -0,0 +1,72 @@ +import ChainCard from '@/components/ChainCard' +import { COSMOS_MAINNET_CHAINS } from '@/data/COSMOSData' +import { EIP155_MAINNET_CHAINS, EIP155_TEST_CHAINS } from '@/data/EIP155Data' +import { SOLANA_MAINNET_CHAINS, SOLANA_TEST_CHAINS } from '@/data/SolanaData' +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 = { + ...COSMOS_MAINNET_CHAINS, + ...SOLANA_MAINNET_CHAINS, + ...EIP155_MAINNET_CHAINS, + ...EIP155_TEST_CHAINS, + ...SOLANA_TEST_CHAINS +} + +/** + * Types + */ +interface IProps { + requiredNamespace: ProposalTypes.RequiredNamespace +} + +/** + * Component + */ +export default function SessionProposalChainCard({ requiredNamespace }: IProps) { + return ( + + {requiredNamespace.chains.map(chainId => { + const extensionMethods: ProposalTypes.RequiredNamespace['methods'] = [] + const extensionEvents: ProposalTypes.RequiredNamespace['events'] = [] + + requiredNamespace.extension?.map(({ chains, methods, events }) => { + if (chains.includes(chainId)) { + extensionMethods.push(...methods) + extensionEvents.push(...events) + } + }) + + const allMethods = [...requiredNamespace.methods, ...extensionMethods] + const allEvents = [...requiredNamespace.events, ...extensionEvents] + // @ts-expect-error + const rgb = CHAIN_METADATA[chainId]?.rgb + + return ( + + + {formatChainName(chainId)} + + + + Methods + {allMethods.length ? allMethods.join(', ') : '-'} + + + + + Events + {allEvents.length ? allEvents.join(', ') : '-'} + + + + ) + })} + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/config/chatConstants.ts b/wallets/react-wallet-v2-chat/src/config/chatConstants.ts new file mode 100644 index 0000000..bd94cc5 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/config/chatConstants.ts @@ -0,0 +1,9 @@ +export const demoContactsMap: Record = { + 'swift.eth': 'eip155:1:0xab16a96d359ec26a11e2c2b3d8f8b8942d5bfcdb', + 'kotlin.eth': 'eip155:2:0xab16a96d359ec26a11e2c2b3d8f8b8942d5bfcdb' +} + +export const demoAddressResolver: Record = { + 'eip155:1:0xab16a96d359ec26a11e2c2b3d8f8b8942d5bfcdb': 'swift.eth', + 'eip155:2:0xab16a96d359ec26a11e2c2b3d8f8b8942d5bfcdb': 'kotlin.eth' +} diff --git a/wallets/react-wallet-v2-chat/src/config/chatTheme.ts b/wallets/react-wallet-v2-chat/src/config/chatTheme.ts new file mode 100644 index 0000000..c7042cf --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/config/chatTheme.ts @@ -0,0 +1,9 @@ +import { BaseTheme } from '@nextui-org/react/types/theme/types' + +export const chatTheme: BaseTheme = { + colors: { + chatGreenPrimary: '#2BEE6C', + chatGreenSecondary: 'rgba(13, 242, 166, 0.15)', + chatPurplePrimary: '#794CFF' + } +} diff --git a/wallets/react-wallet-v2-chat/src/data/COSMOSData.ts b/wallets/react-wallet-v2-chat/src/data/COSMOSData.ts new file mode 100644 index 0000000..9d7bd87 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/data/COSMOSData.ts @@ -0,0 +1,25 @@ +/** + * Types + */ +export type TCosmosChain = keyof typeof COSMOS_MAINNET_CHAINS + +/** + * Chains + */ +export const COSMOS_MAINNET_CHAINS = { + 'cosmos:cosmoshub-4': { + chainId: 'cosmoshub-4', + name: 'Cosmos Hub', + logo: '/chain-logos/cosmos-cosmoshub-4.png', + rgb: '107, 111, 147', + rpc: '' + } +} + +/** + * Methods + */ +export const COSMOS_SIGNING_METHODS = { + COSMOS_SIGN_DIRECT: 'cosmos_signDirect', + COSMOS_SIGN_AMINO: 'cosmos_signAmino' +} diff --git a/wallets/react-wallet-v2-chat/src/data/EIP155Data.ts b/wallets/react-wallet-v2-chat/src/data/EIP155Data.ts new file mode 100644 index 0000000..f9d5a27 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/data/EIP155Data.ts @@ -0,0 +1,76 @@ +/** + * @desc Refference list of eip155 chains + * @url https://chainlist.org + */ + +/** + * Types + */ +export type TEIP155Chain = keyof typeof EIP155_CHAINS + +/** + * Chains + */ +export const EIP155_MAINNET_CHAINS = { + 'eip155:1': { + chainId: 1, + name: 'Ethereum', + logo: '/chain-logos/eip155-1.png', + rgb: '99, 125, 234', + rpc: 'https://cloudflare-eth.com/' + }, + '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' + }, + 'eip155:137': { + chainId: 137, + name: 'Polygon', + logo: '/chain-logos/eip155-137.png', + rgb: '130, 71, 229', + rpc: 'https://polygon-rpc.com/' + } +} + +export const EIP155_TEST_CHAINS = { + 'eip155:42': { + chainId: 42, + name: 'Ethereum Kovan', + logo: '/chain-logos/eip155-1.png', + rgb: '99, 125, 234', + rpc: 'https://kovan.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161' + }, + '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' + }, + 'eip155:80001': { + chainId: 80001, + name: 'Polygon Mumbai', + logo: '/chain-logos/eip155-137.png', + rgb: '130, 71, 229', + rpc: 'https://matic-mumbai.chainstacklabs.com' + } +} + +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/wallets/react-wallet-v2-chat/src/data/SolanaData.ts b/wallets/react-wallet-v2-chat/src/data/SolanaData.ts new file mode 100644 index 0000000..6d6d1ee --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/data/SolanaData.ts @@ -0,0 +1,37 @@ +/** + * Types + */ +export type TSolanaChain = keyof typeof SOLANA_MAINNET_CHAINS + +/** + * Chains + */ +export const SOLANA_MAINNET_CHAINS = { + 'solana:4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ': { + chainId: '4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ', + name: 'Solana', + logo: '/chain-logos/solana-4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ.png', + rgb: '30, 240, 166', + rpc: '' + } +} + +export const SOLANA_TEST_CHAINS = { + 'solana:8E9rvCKLFQia2Y35HXjjpWzj8weVo44K': { + chainId: '8E9rvCKLFQia2Y35HXjjpWzj8weVo44K', + name: 'Solana Devnet', + logo: '/chain-logos/solana-4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ.png', + rgb: '30, 240, 166', + rpc: '' + } +} + +export const SOLANA_CHAINS = { ...SOLANA_MAINNET_CHAINS, ...SOLANA_TEST_CHAINS } + +/** + * Methods + */ +export const SOLANA_SIGNING_METHODS = { + SOLANA_SIGN_TRANSACTION: 'solana_signTransaction', + SOLANA_SIGN_MESSAGE: 'solana_signMessage' +} diff --git a/wallets/react-wallet-v2-chat/src/hooks/useInitialization.ts b/wallets/react-wallet-v2-chat/src/hooks/useInitialization.ts new file mode 100644 index 0000000..5c5ca85 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/hooks/useInitialization.ts @@ -0,0 +1,38 @@ +import SettingsStore from '@/store/SettingsStore' +import { createOrRestoreCosmosWallet } from '@/utils/CosmosWalletUtil' +import { createOrRestoreEIP155Wallet } from '@/utils/EIP155WalletUtil' +import { createOrRestoreSolanaWallet } from '@/utils/SolanaWalletUtil' +import { chatClient, createChatClient, createSignClient } from '@/utils/WalletConnectUtil' +import { useCallback, useEffect, useState } from 'react' + +export default function useInitialization() { + const [initialized, setInitialized] = useState(false) + + const onInitialize = useCallback(async () => { + try { + const { eip155Addresses } = createOrRestoreEIP155Wallet() + const { cosmosAddresses } = await createOrRestoreCosmosWallet() + const { solanaAddresses } = await createOrRestoreSolanaWallet() + + SettingsStore.setEIP155Address(eip155Addresses[0]) + SettingsStore.setCosmosAddress(cosmosAddresses[0]) + SettingsStore.setSolanaAddress(solanaAddresses[0]) + + await createSignClient() + + await createChatClient() + + setInitialized(true) + } catch (err: unknown) { + alert(err) + } + }, []) + + useEffect(() => { + if (!initialized) { + onInitialize() + } + }, [initialized, onInitialize]) + + return initialized +} diff --git a/wallets/react-wallet-v2-chat/src/hooks/useWalletConnectEventsManager.ts b/wallets/react-wallet-v2-chat/src/hooks/useWalletConnectEventsManager.ts new file mode 100644 index 0000000..a1a6a65 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/hooks/useWalletConnectEventsManager.ts @@ -0,0 +1,73 @@ +import { COSMOS_SIGNING_METHODS } from '@/data/COSMOSData' +import { EIP155_SIGNING_METHODS } from '@/data/EIP155Data' +import { SOLANA_SIGNING_METHODS } from '@/data/SolanaData' +import ModalStore from '@/store/ModalStore' +import { signClient } from '@/utils/WalletConnectUtil' +import { SignClientTypes } from '@walletconnect/types' +import { useCallback, useEffect } from 'react' + +export default function useWalletConnectEventsManager(initialized: boolean) { + /****************************************************************************** + * 1. Open session proposal modal for confirmation / rejection + *****************************************************************************/ + const onSessionProposal = useCallback( + (proposal: SignClientTypes.EventArguments['session_proposal']) => { + ModalStore.open('SessionProposalModal', { proposal }) + }, + [] + ) + + /****************************************************************************** + * 3. Open request handling modal based on method that was used + *****************************************************************************/ + const onSessionRequest = useCallback( + async (requestEvent: SignClientTypes.EventArguments['session_request']) => { + console.log('session_request', requestEvent) + const { topic, params } = requestEvent + const { request } = params + const requestSession = signClient.session.get(topic) + + switch (request.method) { + case EIP155_SIGNING_METHODS.ETH_SIGN: + case EIP155_SIGNING_METHODS.PERSONAL_SIGN: + return ModalStore.open('SessionSignModal', { requestEvent, requestSession }) + + 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: + return ModalStore.open('SessionSignTypedDataModal', { requestEvent, requestSession }) + + case EIP155_SIGNING_METHODS.ETH_SEND_TRANSACTION: + case EIP155_SIGNING_METHODS.ETH_SIGN_TRANSACTION: + return ModalStore.open('SessionSendTransactionModal', { requestEvent, requestSession }) + + case COSMOS_SIGNING_METHODS.COSMOS_SIGN_DIRECT: + case COSMOS_SIGNING_METHODS.COSMOS_SIGN_AMINO: + return ModalStore.open('SessionSignCosmosModal', { requestEvent, requestSession }) + + case SOLANA_SIGNING_METHODS.SOLANA_SIGN_MESSAGE: + case SOLANA_SIGNING_METHODS.SOLANA_SIGN_TRANSACTION: + return ModalStore.open('SessionSignSolanaModal', { requestEvent, requestSession }) + + default: + return ModalStore.open('SessionUnsuportedMethodModal', { requestEvent, requestSession }) + } + }, + [] + ) + + /****************************************************************************** + * Set up WalletConnect event listeners + *****************************************************************************/ + useEffect(() => { + if (initialized) { + signClient.on('session_proposal', onSessionProposal) + signClient.on('session_request', onSessionRequest) + // TODOs + signClient.on('session_ping', data => console.log('ping', data)) + signClient.on('session_event', data => console.log('event', data)) + signClient.on('session_update', data => console.log('update', data)) + signClient.on('session_delete', data => console.log('delete', data)) + } + }, [initialized, onSessionProposal, onSessionRequest]) +} diff --git a/wallets/react-wallet-v2-chat/src/lib/CosmosLib.ts b/wallets/react-wallet-v2-chat/src/lib/CosmosLib.ts new file mode 100644 index 0000000..1e12f3d --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/lib/CosmosLib.ts @@ -0,0 +1,63 @@ +import { Secp256k1Wallet, StdSignDoc } from '@cosmjs/amino' +import { fromHex } from '@cosmjs/encoding' +import { DirectSecp256k1Wallet } from '@cosmjs/proto-signing' +// @ts-expect-error +import { SignDoc } from '@cosmjs/proto-signing/build/codec/cosmos/tx/v1beta1/tx' +import Keyring from 'mnemonic-keyring' + +/** + * Constants + */ +const DEFAULT_PATH = "m/44'/118'/0'/0/0" +const DEFAULT_PREFIX = 'cosmos' + +/** + * Types + */ +interface IInitArguments { + mnemonic?: string + path?: string + prefix?: string +} + +/** + * Library + */ +export default class CosmosLib { + private keyring: Keyring + private directSigner: DirectSecp256k1Wallet + private aminoSigner: Secp256k1Wallet + + constructor(keyring: Keyring, directSigner: DirectSecp256k1Wallet, aminoSigner: Secp256k1Wallet) { + this.directSigner = directSigner + this.keyring = keyring + this.aminoSigner = aminoSigner + } + + static async init({ mnemonic, path, prefix }: IInitArguments) { + const keyring = await Keyring.init({ mnemonic: mnemonic ?? Keyring.generateMnemonic() }) + const privateKey = fromHex(keyring.getPrivateKey(path ?? DEFAULT_PATH)) + const directSigner = await DirectSecp256k1Wallet.fromKey(privateKey, prefix ?? DEFAULT_PREFIX) + const aminoSigner = await Secp256k1Wallet.fromKey(privateKey, prefix ?? DEFAULT_PREFIX) + + return new CosmosLib(keyring, directSigner, aminoSigner) + } + + public getMnemonic() { + return this.keyring.mnemonic + } + + public async getAddress() { + const account = await this.directSigner.getAccounts() + + return account[0].address + } + + public async signDirect(address: string, signDoc: SignDoc) { + return await this.directSigner.signDirect(address, signDoc) + } + + public async signAmino(address: string, signDoc: StdSignDoc) { + return await this.aminoSigner.signAmino(address, signDoc) + } +} diff --git a/wallets/react-wallet-v2-chat/src/lib/EIP155Lib.ts b/wallets/react-wallet-v2-chat/src/lib/EIP155Lib.ts new file mode 100644 index 0000000..652a85d --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/lib/EIP155Lib.ts @@ -0,0 +1,49 @@ +import { providers, Wallet } from 'ethers' + +/** + * Types + */ +interface IInitArgs { + mnemonic?: string +} + +/** + * Library + */ +export default class EIP155Lib { + wallet: Wallet + + constructor(wallet: Wallet) { + this.wallet = wallet + } + + static init({ mnemonic }: IInitArgs) { + const wallet = mnemonic ? Wallet.fromMnemonic(mnemonic) : Wallet.createRandom() + + return new EIP155Lib(wallet) + } + + getMnemonic() { + return this.wallet.mnemonic.phrase + } + + getAddress() { + return this.wallet.address + } + + signMessage(message: string) { + return this.wallet.signMessage(message) + } + + _signTypedData(domain: any, types: any, data: any) { + return this.wallet._signTypedData(domain, types, data) + } + + connect(provider: providers.JsonRpcProvider) { + return this.wallet.connect(provider) + } + + signTransaction(transaction: providers.TransactionRequest) { + return this.wallet.signTransaction(transaction) + } +} diff --git a/wallets/react-wallet-v2-chat/src/lib/SolanaLib.ts b/wallets/react-wallet-v2-chat/src/lib/SolanaLib.ts new file mode 100644 index 0000000..d06ff5a --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/lib/SolanaLib.ts @@ -0,0 +1,61 @@ +import { Keypair } from '@solana/web3.js' +import bs58 from 'bs58' +import nacl from 'tweetnacl' +import SolanaWallet, { SolanaSignTransaction } from 'solana-wallet' + +/** + * Types + */ +interface IInitArguments { + secretKey?: Uint8Array +} + +/** + * Library + */ +export default class SolanaLib { + keypair: Keypair + solanaWallet: SolanaWallet + + constructor(keypair: Keypair) { + this.keypair = keypair + this.solanaWallet = new SolanaWallet(Buffer.from(keypair.secretKey)) + } + + static init({ secretKey }: IInitArguments) { + const keypair = secretKey ? Keypair.fromSecretKey(secretKey) : Keypair.generate() + + return new SolanaLib(keypair) + } + + public async getAddress() { + return await this.keypair.publicKey.toBase58() + } + + public getSecretKey() { + return this.keypair.secretKey.toString() + } + + public async signMessage(message: string) { + const signature = nacl.sign.detached(bs58.decode(message), this.keypair.secretKey) + const bs58Signature = bs58.encode(signature) + + return { signature: bs58Signature } + } + + public async signTransaction( + feePayer: SolanaSignTransaction['feePayer'], + recentBlockhash: SolanaSignTransaction['recentBlockhash'], + instructions: SolanaSignTransaction['instructions'], + partialSignatures?: SolanaSignTransaction['partialSignatures'] + ) { + const { signature } = await this.solanaWallet.signTransaction(feePayer, { + feePayer, + instructions, + recentBlockhash, + partialSignatures: partialSignatures ?? [] + }) + + return { signature } + } +} diff --git a/wallets/react-wallet-v2-chat/src/pages/_app.tsx b/wallets/react-wallet-v2-chat/src/pages/_app.tsx new file mode 100644 index 0000000..00ee60b --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/pages/_app.tsx @@ -0,0 +1,37 @@ +import Layout from '@/components/Layout' +import Modal from '@/components/Modal' +import { chatTheme } from '@/config/chatTheme' +import useInitialization from '@/hooks/useInitialization' +import useWalletConnectEventsManager from '@/hooks/useWalletConnectEventsManager' +import { createTheme, NextUIProvider } from '@nextui-org/react' +import { AppProps } from 'next/app' +import { Fragment } from 'react' +import '../../public/main.css' + +const theme = createTheme({ + type: 'dark', + theme: chatTheme +}) + +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) + + return ( + + {/* Hacking around this issue with missing shim for `global -> globalThis` */} + {/* https://github.com/webpack/webpack/issues/10035#issuecomment-603231120 */} + + + + + + + + + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/pages/chat.tsx b/wallets/react-wallet-v2-chat/src/pages/chat.tsx new file mode 100644 index 0000000..391a317 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/pages/chat.tsx @@ -0,0 +1,121 @@ +import { Fragment, useEffect, useRef, useState } from 'react' +import { styled } from '@nextui-org/react' +import { useRouter } from 'next/router' +import { useSnapshot } from 'valtio' + +import ChatboxInput from '@/components/ChatboxInput' +import ChatMessage from '@/components/ChatMessage' +import PageHeader from '@/components/PageHeader' +import { demoAddressResolver } from '@/config/chatConstants' +import SettingsStore from '@/store/SettingsStore' +import { chatClient } from '@/utils/WalletConnectUtil' + +const ChatContainer = styled('div', { + display: 'flex', + flexDirection: 'column', + flexGrow: 1, + height: '84%', + maxWidth: '100%' +} as any) + +const MessagesContainer = styled('div', { + display: 'flex', + flexGrow: 1, + flexDirection: 'column', + overflowY: 'scroll', + padding: '10px' +} as any) + +/** + * Component + */ +export default function ChatPage() { + const [topic, setTopic] = useState('') + const [messages, setMessages] = useState< + { + message: string + authorAccount: string + }[] + >([]) + const { eip155Address } = useSnapshot(SettingsStore.state) + const { query } = useRouter() + const lastMessageRef = useRef(null) + + const fullEip155Address = `eip155:1:${eip155Address}` + + async function onOutgoingMessage(outgoingMessage: string) { + await chatClient.message({ + topic, + payload: { + message: outgoingMessage, + authorAccount: fullEip155Address, + timestamp: Date.now() + } + }) + + if (chatClient.getMessages({ topic }).length) { + setMessages(chatClient.getMessages({ topic })) + } + } + + function isOutgoingMessage(authorAccount: string) { + return authorAccount === fullEip155Address + } + + function getChatTitle() { + if (typeof query.peerAccount !== 'string') return '' + + return demoAddressResolver[query.peerAccount] ?? query.peerAccount + } + + useEffect(() => { + if (query?.topic) { + setTopic(query.topic as string) + } + }, [query]) + + useEffect(() => { + // Set existing messages on load. + if (topic) { + try { + const messages = chatClient.getMessages({ topic }) + console.log('getMessages for topic: ', topic, messages) + setMessages(messages) + } catch (error) {} + } + }, [topic]) + + useEffect(() => { + lastMessageRef.current?.scrollIntoView({ behavior: 'smooth' }) + }, [messages]) + + useEffect(() => { + if (topic) { + // Update local messages state on new message. + chatClient.once('chat_message', eventArgs => { + console.log('new chat message:', eventArgs) + + setMessages(chatClient.getMessages({ topic })) + }) + } + }, [messages, topic]) + + return ( + + + + + {messages.map(({ message, authorAccount }, i) => ( + + ))} +
+
+ +
+
+ ) +} diff --git a/wallets/react-wallet-v2-chat/src/pages/chatRequests.tsx b/wallets/react-wallet-v2-chat/src/pages/chatRequests.tsx new file mode 100644 index 0000000..2817bb3 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/pages/chatRequests.tsx @@ -0,0 +1,50 @@ +import PageHeader from '@/components/PageHeader' +import { Text } from '@nextui-org/react' +import { Fragment, useEffect, useState } from 'react' +import { chatClient } from '@/utils/WalletConnectUtil' +import { ChatClientTypes } from '@walletconnect/chat-client' +import ChatRequestCard from '@/components/ChatRequestCard' +import { useRouter } from 'next/router' + +export default function ChatRequestsPage() { + const router = useRouter() + const [chatInvites, setChatInvites] = useState>(new Map()) + + useEffect(() => { + console.log('setting invites:', chatClient.getInvites()) + + setChatInvites(chatClient.getInvites()) + }, []) + + const acceptChatInvite = async (inviteId: number) => { + await chatClient.accept({ id: inviteId }) + router.push('/chats') + } + const rejectChatInvite = async (inviteId: number) => { + await chatClient.reject({ id: inviteId }) + router.push('/chats') + } + + return ( + + + + {chatInvites.size > 0 ? ( + Array.from(chatInvites).map(([inviteId, invite]) => { + return ( + acceptChatInvite(Number(inviteId))} + onReject={() => rejectChatInvite(Number(inviteId))} + /> + ) + }) + ) : ( + + No chat requests + + )} + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/pages/chats.tsx b/wallets/react-wallet-v2-chat/src/pages/chats.tsx new file mode 100644 index 0000000..2aa120a --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/pages/chats.tsx @@ -0,0 +1,82 @@ +import { Fragment, useEffect, useState } from 'react' +import { Row, Text } from '@nextui-org/react' +import { useRouter } from 'next/router' +import { FiPlus } from 'react-icons/fi' +import { useSnapshot } from 'valtio' + +import ChatSummaryCard from '@/components/ChatSummaryCard' +import PageHeader from '@/components/PageHeader' +import ChatRequestsButton from '@/components/ChatRequestsButton' +import { chatClient } from '@/utils/WalletConnectUtil' +import ChatPrimaryCTAButton from '@/components/ChatPrimaryCTAButton' +import SettingsStore from '@/store/SettingsStore' + +export default function ChatsPage() { + const router = useRouter() + const [isLoading, setIsLoading] = useState(true) + + const [chatThreads, setChatThreads] = useState< + { topic: string; selfAccount: string; peerAccount: string }[] + >([]) + + const [chatInvites, setChatInvites] = useState([]) + + const { eip155Address } = useSnapshot(SettingsStore.state) + + const initChatClient = async () => { + console.log(chatClient) + await chatClient.register({ account: `eip155:1:${eip155Address}` }) + + console.log('chatInvites on load:', chatClient.chatInvites.getAll()) + console.log('chatThreads on load:', chatClient.chatThreads.getAll()) + console.log('chatMessages on load:', chatClient.chatMessages.getAll()) + setChatThreads(chatClient.chatThreads.getAll()) + setChatInvites(chatClient.chatInvites.getAll()) + + chatClient.on('chat_invite', async args => { + console.log('chat_invite:', args) + console.log(chatClient.chatInvites.getAll()) + setChatInvites(chatClient.chatInvites.getAll()) + }) + + chatClient.on('chat_joined', async args => { + console.log('chat_joined:', args) + console.log(chatClient.chatThreads.getAll()) + setChatThreads(chatClient.chatThreads.getAll()) + }) + + setIsLoading(false) + } + + useEffect(() => { + initChatClient() + }, []) + + return ( + + } onClick={() => router.push('/newChat')} /> + } + /> + + + {chatInvites.length ? : null} + {/* */} + + + {isLoading ? ( + + Fetching chats... + + ) : chatThreads.length ? ( + chatThreads.map(props => { + return + }) + ) : ( + No chats + )} + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/pages/index.tsx b/wallets/react-wallet-v2-chat/src/pages/index.tsx new file mode 100644 index 0000000..d43d238 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/pages/index.tsx @@ -0,0 +1,78 @@ +import AccountCard from '@/components/AccountCard' +import AccountPicker from '@/components/AccountPicker' +import PageHeader from '@/components/PageHeader' +import { COSMOS_MAINNET_CHAINS } from '@/data/COSMOSData' +import { EIP155_MAINNET_CHAINS, EIP155_TEST_CHAINS } from '@/data/EIP155Data' +import { SOLANA_MAINNET_CHAINS, SOLANA_TEST_CHAINS } from '@/data/SolanaData' +import SettingsStore from '@/store/SettingsStore' +import { Text } from '@nextui-org/react' +import { Fragment } from 'react' +import { useSnapshot } from 'valtio' + +export default function HomePage() { + const { testNets, eip155Address, cosmosAddress, solanaAddress } = useSnapshot(SettingsStore.state) + + return ( + + + + + + Mainnets + + {Object.entries(EIP155_MAINNET_CHAINS).map(([namespace, { name, logo, rgb }]) => ( + + ))} + {Object.entries(COSMOS_MAINNET_CHAINS).map(([namespace, { name, logo, rgb }]) => ( + + ))} + {Object.entries(SOLANA_MAINNET_CHAINS).map(([namespace, { name, logo, rgb }]) => ( + + ))} + + {testNets ? ( + + + Testnets + + {Object.entries(EIP155_TEST_CHAINS).map(([namespace, { name, logo, rgb }]) => ( + + ))} + {Object.entries(SOLANA_TEST_CHAINS).map(([namespace, { name, logo, rgb }]) => ( + + ))} + + ) : null} + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/pages/invites.tsx b/wallets/react-wallet-v2-chat/src/pages/invites.tsx new file mode 100644 index 0000000..13e325f --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/pages/invites.tsx @@ -0,0 +1,18 @@ +import PageHeader from '@/components/PageHeader' +import { Fragment, useEffect, useState } from 'react' + +export default function InvitesPage() { + return ( + + + + {/* {chatThreads.length ? ( + chatThreads.map(props => { + return + }) + ) : ( + No chats + )} */} + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/pages/newChat.tsx b/wallets/react-wallet-v2-chat/src/pages/newChat.tsx new file mode 100644 index 0000000..ad0e626 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/pages/newChat.tsx @@ -0,0 +1,65 @@ +import { Fragment, useEffect, useState } from 'react' +import { useSnapshot } from 'valtio' +import { FiArrowRight } from 'react-icons/fi' +import { Input, Row } from '@nextui-org/react' + +import PageHeader from '@/components/PageHeader' +import { chatClient } from '@/utils/WalletConnectUtil' +import { ChatClientTypes } from '@walletconnect/chat-client' +import ChatPrimaryCTAButton from '@/components/ChatPrimaryCTAButton' +import { demoContactsMap } from '@/config/chatConstants' +import SettingsStore from '@/store/SettingsStore' + +export default function NewChatPage() { + const [address, setAddress] = useState('') + const { eip155Address } = useSnapshot(SettingsStore.state) + + const createInvite = async (targetAddress: string) => { + const invite: ChatClientTypes.PartialInvite = { + message: "hey let's chat", + account: `eip155:1:${eip155Address}` + } + const inviteId = await chatClient.invite({ + account: targetAddress, + invite + }) + } + + const onInvite = async () => { + if (demoContactsMap[address]) { + await createInvite(demoContactsMap[address]) + } else { + console.log('onInvite: inviting address ', address) + await createInvite(address) + } + setAddress('') + } + + return ( + + } onClick={onInvite} />} + /> + + + { + setAddress(e.target.value) + }} + css={{ + padding: '$5', + background: '$gray800' + }} + /> + + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/pages/pairings.tsx b/wallets/react-wallet-v2-chat/src/pages/pairings.tsx new file mode 100644 index 0000000..8992198 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/pages/pairings.tsx @@ -0,0 +1,39 @@ +import PageHeader from '@/components/PageHeader' +import PairingCard from '@/components/PairingCard' +import { signClient } 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(signClient.pairing.values) + + async function onDelete(topic: string) { + await signClient.disconnect({ 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)} + /> + ) + }) + ) : ( + No pairings + )} + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/pages/session.tsx b/wallets/react-wallet-v2-chat/src/pages/session.tsx new file mode 100644 index 0000000..a424855 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/pages/session.tsx @@ -0,0 +1,164 @@ +import PageHeader from '@/components/PageHeader' +import ProjectInfoCard from '@/components/ProjectInfoCard' +import SessionChainCard from '@/components/SessionChainCard' +import { signClient } from '@/utils/WalletConnectUtil' +import { Button, Divider, Loading, Row, Text } from '@nextui-org/react' +import { getSdkError } from '@walletconnect/utils' +import { useRouter } from 'next/router' +import { Fragment, useEffect, useState } from 'react' + +/** + * Component + */ +export default function SessionPage() { + const [topic, setTopic] = useState('') + const [updated, setUpdated] = useState(new Date()) + const { query, replace } = useRouter() + const [loading, setLoading] = useState(false) + + useEffect(() => { + if (query?.topic) { + setTopic(query.topic as string) + } + }, [query]) + + const session = signClient.session.values.find(s => s.topic === topic) + + if (!session) { + return null + } + + // Get necessary data from session + const expiryDate = new Date(session.expiry * 1000) + const { namespaces } = session + + // Handle deletion of a session + async function onDeleteSession() { + setLoading(true) + await signClient.disconnect({ topic, reason: getSdkError('USER_DISCONNECTED') }) + replace('/sessions') + setLoading(false) + } + + async function onSessionPing() { + setLoading(true) + await signClient.ping({ topic }) + setLoading(false) + } + + async function onSessionEmit() { + setLoading(true) + console.log('baleg') + await signClient.emit({ + topic, + event: { name: 'chainChanged', data: 'Hello World' }, + chainId: 'eip155:1' + }) + setLoading(false) + } + + const newNs = { + eip155: { + accounts: [ + 'eip155:1:0x70012948c348CBF00806A3C79E3c5DAdFaAa347B', + 'eip155:137:0x70012948c348CBF00806A3C79E3c5DAdFaAa347B' + ], + methods: ['personal_sign', 'eth_signTypedData', 'eth_sendTransaction'], + events: [] + } + } + + async function onSessionUpdate() { + setLoading(true) + const { acknowledged } = await signClient.update({ topic, namespaces: newNs }) + await acknowledged() + setUpdated(new Date()) + setLoading(false) + } + + // function renderAccountSelection(chain: string) { + // if (isEIP155Chain(chain)) { + // return ( + // + // ) + // } else if (isCosmosChain(chain)) { + // return ( + // + // ) + // } else if (isSolanaChain(chain)) { + // return ( + // + // ) + // } + // } + + return ( + + + + + + + + {Object.keys(namespaces).map(chain => { + return ( + + {`Review ${chain} permissions`} + + {/* {renderAccountSelection(chain)} */} + + + ) + })} + + + Expiry + {expiryDate.toDateString()} + + + + Last Updated + {updated.toDateString()} + + + + + + + + + + + + + + + + + + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/pages/sessions.tsx b/wallets/react-wallet-v2-chat/src/pages/sessions.tsx new file mode 100644 index 0000000..02313c5 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/pages/sessions.tsx @@ -0,0 +1,32 @@ +import PageHeader from '@/components/PageHeader' +import SessionCard from '@/components/SessionCard' +import { signClient } from '@/utils/WalletConnectUtil' +import { Text } from '@nextui-org/react' +import { Fragment, useState } from 'react' + +export default function SessionsPage() { + const [sessions, setSessions] = useState(signClient.session.values) + + return ( + + + {sessions.length ? ( + sessions.map(session => { + const { name, icons, url } = session.peer.metadata + + return ( + + ) + }) + ) : ( + No sessions + )} + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/pages/settings.tsx b/wallets/react-wallet-v2-chat/src/pages/settings.tsx new file mode 100644 index 0000000..982ee31 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/pages/settings.tsx @@ -0,0 +1,77 @@ +import PageHeader from '@/components/PageHeader' +import SettingsStore from '@/store/SettingsStore' +import { cosmosWallets } from '@/utils/CosmosWalletUtil' +import { eip155Wallets } from '@/utils/EIP155WalletUtil' +import { solanaWallets } from '@/utils/SolanaWalletUtil' +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, eip155Address, cosmosAddress, solanaAddress } = useSnapshot(SettingsStore.state) + + return ( + + + + + Packages + + + @walletconnect/sign-client + {packageJSON.dependencies['@walletconnect/sign-client']} + + + @walletconnect/utils + {packageJSON.dependencies['@walletconnect/utils']} + + + @walletconnect/types + {packageJSON.devDependencies['@walletconnect/types']} + + + @walletconnect/chat-client + {packageJSON.dependencies['@walletconnect/chat-client']} + + + + + + Testnets + + + + {testNets ? 'Enabled' : 'Disabled'} + + + + + + Warning: mnemonics and secret keys are provided for development purposes only and should not + be used elsewhere! + + + + EIP155 Mnemonic + + + {eip155Wallets[eip155Address].getMnemonic()} + + + + Cosmos Mnemonic + + + {cosmosWallets[cosmosAddress].getMnemonic()} + + + + Solana Secret Key + + + {solanaWallets[solanaAddress].getSecretKey()} + + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/pages/walletconnect.tsx b/wallets/react-wallet-v2-chat/src/pages/walletconnect.tsx new file mode 100644 index 0000000..078521f --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/pages/walletconnect.tsx @@ -0,0 +1,54 @@ +import PageHeader from '@/components/PageHeader' +import QrReader from '@/components/QrReader' +import { signClient } from '@/utils/WalletConnectUtil' +import { Button, Input, Loading, Text } from '@nextui-org/react' +import { Fragment, useState } from 'react' + +export default function WalletConnectPage() { + const [uri, setUri] = useState('') + const [loading, setLoading] = useState(false) + + async function onConnect(uri: string) { + try { + setLoading(true) + await signClient.pair({ uri }) + } catch (err: unknown) { + alert(err) + } finally { + setUri('') + setLoading(false) + } + } + + return ( + + + + + + + or use walletconnect uri + + + setUri(e.target.value)} + value={uri} + contentRight={ + + } + /> + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/store/ModalStore.ts b/wallets/react-wallet-v2-chat/src/store/ModalStore.ts new file mode 100644 index 0000000..4718ad7 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/store/ModalStore.ts @@ -0,0 +1,50 @@ +import { SessionTypes, SignClientTypes } from '@walletconnect/types' +import { proxy } from 'valtio' + +/** + * Types + */ +interface ModalData { + proposal?: SignClientTypes.EventArguments['session_proposal'] + requestEvent?: SignClientTypes.EventArguments['session_request'] + requestSession?: SessionTypes.Struct +} + +interface State { + open: boolean + view?: + | 'SessionProposalModal' + | 'SessionSignModal' + | 'SessionSignTypedDataModal' + | 'SessionSendTransactionModal' + | 'SessionUnsuportedMethodModal' + | 'SessionSignCosmosModal' + | 'SessionSignSolanaModal' + 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/wallets/react-wallet-v2-chat/src/store/SettingsStore.ts b/wallets/react-wallet-v2-chat/src/store/SettingsStore.ts new file mode 100644 index 0000000..5099004 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/store/SettingsStore.ts @@ -0,0 +1,57 @@ +import { proxy } from 'valtio' + +/** + * Types + */ +interface State { + testNets: boolean + account: number + eip155Address: string + cosmosAddress: string + solanaAddress: string +} + +/** + * State + */ +const state = proxy({ + testNets: typeof localStorage !== 'undefined' ? Boolean(localStorage.getItem('TEST_NETS')) : true, + account: 0, + eip155Address: '', + cosmosAddress: '', + solanaAddress: '' +}) + +/** + * 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 + }, + + toggleTestNets() { + state.testNets = !state.testNets + if (state.testNets) { + localStorage.setItem('TEST_NETS', 'YES') + } else { + localStorage.removeItem('TEST_NETS') + } + } +} + +export default SettingsStore diff --git a/wallets/react-wallet-v2-chat/src/utils/CosmosRequestHandler.ts b/wallets/react-wallet-v2-chat/src/utils/CosmosRequestHandler.ts new file mode 100644 index 0000000..4612c49 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/utils/CosmosRequestHandler.ts @@ -0,0 +1,40 @@ +import { COSMOS_SIGNING_METHODS } from '@/data/COSMOSData' +import { cosmosAddresses, cosmosWallets } from '@/utils/CosmosWalletUtil' +import { getWalletAddressFromParams } from '@/utils/HelperUtil' +import { formatJsonRpcError, formatJsonRpcResult } from '@json-rpc-tools/utils' +import { SignClientTypes } from '@walletconnect/types' +import { getSdkError } from '@walletconnect/utils' +import { parseSignDocValues } from 'cosmos-wallet' + +export async function approveCosmosRequest( + requestEvent: SignClientTypes.EventArguments['session_request'] +) { + const { params, id } = requestEvent + const { request } = params + const wallet = cosmosWallets[getWalletAddressFromParams(cosmosAddresses, params)] + + switch (request.method) { + case COSMOS_SIGNING_METHODS.COSMOS_SIGN_DIRECT: + const signedDirect = await wallet.signDirect( + request.params.signerAddress, + parseSignDocValues(request.params.signDoc) + ) + return formatJsonRpcResult(id, signedDirect.signature) + + case COSMOS_SIGNING_METHODS.COSMOS_SIGN_AMINO: + const signedAmino = await wallet.signAmino( + request.params.signerAddress, + request.params.signDoc + ) + return formatJsonRpcResult(id, signedAmino.signature) + + default: + throw new Error(getSdkError('INVALID_METHOD').message) + } +} + +export function rejectCosmosRequest(request: SignClientTypes.EventArguments['session_request']) { + const { id } = request + + return formatJsonRpcError(id, getSdkError('USER_REJECTED_METHODS').message) +} diff --git a/wallets/react-wallet-v2-chat/src/utils/CosmosWalletUtil.ts b/wallets/react-wallet-v2-chat/src/utils/CosmosWalletUtil.ts new file mode 100644 index 0000000..55ed38f --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/utils/CosmosWalletUtil.ts @@ -0,0 +1,43 @@ +import CosmosLib from '@/lib/CosmosLib' + +export let wallet1: CosmosLib +export let wallet2: CosmosLib +export let cosmosWallets: Record +export let cosmosAddresses: string[] + +let address1: string +let address2: string + +/** + * Utilities + */ +export async function createOrRestoreCosmosWallet() { + const mnemonic1 = localStorage.getItem('COSMOS_MNEMONIC_1') + const mnemonic2 = localStorage.getItem('COSMOS_MNEMONIC_2') + + if (mnemonic1 && mnemonic2) { + wallet1 = await CosmosLib.init({ mnemonic: mnemonic1 }) + wallet2 = await CosmosLib.init({ mnemonic: mnemonic2 }) + } else { + wallet1 = await CosmosLib.init({}) + wallet2 = await CosmosLib.init({}) + + // Don't store mnemonic in local storage in a production project! + localStorage.setItem('COSMOS_MNEMONIC_1', wallet1.getMnemonic()) + localStorage.setItem('COSMOS_MNEMONIC_2', wallet2.getMnemonic()) + } + + address1 = await wallet1.getAddress() + address2 = await wallet2.getAddress() + + cosmosWallets = { + [address1]: wallet1, + [address2]: wallet2 + } + cosmosAddresses = Object.keys(cosmosWallets) + + return { + cosmosWallets, + cosmosAddresses + } +} diff --git a/wallets/react-wallet-v2-chat/src/utils/EIP155RequestHandlerUtil.ts b/wallets/react-wallet-v2-chat/src/utils/EIP155RequestHandlerUtil.ts new file mode 100644 index 0000000..56ba361 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/utils/EIP155RequestHandlerUtil.ts @@ -0,0 +1,57 @@ +import { EIP155_CHAINS, EIP155_SIGNING_METHODS, TEIP155Chain } from '@/data/EIP155Data' +import { eip155Addresses, eip155Wallets } from '@/utils/EIP155WalletUtil' +import { + getSignParamsMessage, + getSignTypedDataParamsData, + getWalletAddressFromParams +} from '@/utils/HelperUtil' +import { formatJsonRpcError, formatJsonRpcResult } from '@json-rpc-tools/utils' +import { SignClientTypes } from '@walletconnect/types' +import { getSdkError } from '@walletconnect/utils' +import { providers } from 'ethers' + +export async function approveEIP155Request( + requestEvent: SignClientTypes.EventArguments['session_request'] +) { + const { params, id } = requestEvent + const { chainId, request } = params + const wallet = eip155Wallets[getWalletAddressFromParams(eip155Addresses, params)] + + switch (request.method) { + case EIP155_SIGNING_METHODS.PERSONAL_SIGN: + case EIP155_SIGNING_METHODS.ETH_SIGN: + const message = getSignParamsMessage(request.params) + const signedMessage = await wallet.signMessage(message) + return formatJsonRpcResult(id, signedMessage) + + 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: + const { domain, types, message: data } = getSignTypedDataParamsData(request.params) + // https://github.com/ethers-io/ethers.js/issues/687#issuecomment-714069471 + delete types.EIP712Domain + const signedData = await wallet._signTypedData(domain, types, data) + return formatJsonRpcResult(id, signedData) + + case EIP155_SIGNING_METHODS.ETH_SEND_TRANSACTION: + const provider = new providers.JsonRpcProvider(EIP155_CHAINS[chainId as TEIP155Chain].rpc) + const sendTransaction = request.params[0] + const connectedWallet = wallet.connect(provider) + const { hash } = await connectedWallet.sendTransaction(sendTransaction) + return formatJsonRpcResult(id, hash) + + case EIP155_SIGNING_METHODS.ETH_SIGN_TRANSACTION: + const signTransaction = request.params[0] + const signature = await wallet.signTransaction(signTransaction) + return formatJsonRpcResult(id, signature) + + default: + throw new Error(getSdkError('INVALID_METHOD').message) + } +} + +export function rejectEIP155Request(request: SignClientTypes.EventArguments['session_request']) { + const { id } = request + + return formatJsonRpcError(id, getSdkError('USER_REJECTED_METHODS').message) +} diff --git a/wallets/react-wallet-v2-chat/src/utils/EIP155WalletUtil.ts b/wallets/react-wallet-v2-chat/src/utils/EIP155WalletUtil.ts new file mode 100644 index 0000000..a09ca5e --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/utils/EIP155WalletUtil.ts @@ -0,0 +1,43 @@ +import EIP155Lib from '@/lib/EIP155Lib' + +export let wallet1: EIP155Lib +export let wallet2: EIP155Lib +export let eip155Wallets: Record +export let eip155Addresses: string[] + +let address1: string +let address2: string + +/** + * Utilities + */ +export function createOrRestoreEIP155Wallet() { + const mnemonic1 = localStorage.getItem('EIP155_MNEMONIC_1') + const mnemonic2 = localStorage.getItem('EIP155_MNEMONIC_2') + + if (mnemonic1 && mnemonic2) { + wallet1 = EIP155Lib.init({ mnemonic: mnemonic1 }) + wallet2 = EIP155Lib.init({ mnemonic: mnemonic2 }) + } else { + wallet1 = EIP155Lib.init({}) + wallet2 = EIP155Lib.init({}) + + // Don't store mnemonic in local storage in a production project! + localStorage.setItem('EIP155_MNEMONIC_1', wallet1.getMnemonic()) + localStorage.setItem('EIP155_MNEMONIC_2', wallet2.getMnemonic()) + } + + address1 = wallet1.getAddress() + address2 = wallet2.getAddress() + + eip155Wallets = { + [address1]: wallet1, + [address2]: wallet2 + } + eip155Addresses = Object.keys(eip155Wallets) + + return { + eip155Wallets, + eip155Addresses + } +} diff --git a/wallets/react-wallet-v2-chat/src/utils/HelperUtil.ts b/wallets/react-wallet-v2-chat/src/utils/HelperUtil.ts new file mode 100644 index 0000000..c50477b --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/utils/HelperUtil.ts @@ -0,0 +1,107 @@ +import { COSMOS_MAINNET_CHAINS, TCosmosChain } from '@/data/COSMOSData' +import { EIP155_CHAINS, TEIP155Chain } from '@/data/EIP155Data' +import { SOLANA_CHAINS, TSolanaChain } from '@/data/SolanaData' +import { utils } 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 (utils.isHexString(value)) { + return utils.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 => !utils.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 => !utils.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.includes(addr)) { + 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') +} + +/** + * Formats chainId to its name + */ +export function formatChainName(chainId: string) { + return ( + EIP155_CHAINS[chainId as TEIP155Chain]?.name ?? + COSMOS_MAINNET_CHAINS[chainId as TCosmosChain]?.name ?? + SOLANA_CHAINS[chainId as TSolanaChain]?.name ?? + chainId + ) +} diff --git a/wallets/react-wallet-v2-chat/src/utils/SolanaRequestHandlerUtil.ts b/wallets/react-wallet-v2-chat/src/utils/SolanaRequestHandlerUtil.ts new file mode 100644 index 0000000..1a74eb2 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/utils/SolanaRequestHandlerUtil.ts @@ -0,0 +1,38 @@ +import { SOLANA_SIGNING_METHODS } from '@/data/SolanaData' +import { getWalletAddressFromParams } from '@/utils/HelperUtil' +import { solanaAddresses, solanaWallets } from '@/utils/SolanaWalletUtil' +import { formatJsonRpcError, formatJsonRpcResult } from '@json-rpc-tools/utils' +import { SignClientTypes } from '@walletconnect/types' +import { getSdkError } from '@walletconnect/utils' + +export async function approveSolanaRequest( + requestEvent: SignClientTypes.EventArguments['session_request'] +) { + const { params, id } = requestEvent + const { request } = params + const wallet = solanaWallets[getWalletAddressFromParams(solanaAddresses, params)] + + switch (request.method) { + case SOLANA_SIGNING_METHODS.SOLANA_SIGN_MESSAGE: + const signedMessage = await wallet.signMessage(request.params.message) + return formatJsonRpcResult(id, signedMessage) + + case SOLANA_SIGNING_METHODS.SOLANA_SIGN_TRANSACTION: + const signedTransaction = await wallet.signTransaction( + request.params.feePayer, + request.params.recentBlockhash, + request.params.instructions + ) + + return formatJsonRpcResult(id, signedTransaction) + + default: + throw new Error(getSdkError('INVALID_METHOD').message) + } +} + +export function rejectSolanaRequest(request: SignClientTypes.EventArguments['session_request']) { + const { id } = request + + return formatJsonRpcError(id, getSdkError('USER_REJECTED_METHODS').message) +} diff --git a/wallets/react-wallet-v2-chat/src/utils/SolanaWalletUtil.ts b/wallets/react-wallet-v2-chat/src/utils/SolanaWalletUtil.ts new file mode 100644 index 0000000..60b36c1 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/utils/SolanaWalletUtil.ts @@ -0,0 +1,51 @@ +import SolanaLib from '@/lib/SolanaLib' + +export let wallet1: SolanaLib +export let wallet2: SolanaLib +export let solanaWallets: Record +export let solanaAddresses: string[] + +let address1: string +let address2: string + +/** + * Utilities + */ +export async function createOrRestoreSolanaWallet() { + const secretKey1 = localStorage.getItem('SOLANA_SECRET_KEY_1') + const secretKey2 = localStorage.getItem('SOLANA_SECRET_KEY_2') + + if (secretKey1 && secretKey2) { + const secretArray1: number[] = Object.values(JSON.parse(secretKey1)) + const secretArray2: number[] = Object.values(JSON.parse(secretKey2)) + wallet1 = SolanaLib.init({ secretKey: Uint8Array.from(secretArray1) }) + wallet2 = SolanaLib.init({ secretKey: Uint8Array.from(secretArray2) }) + } else { + wallet1 = SolanaLib.init({}) + wallet2 = SolanaLib.init({}) + + // Don't store secretKey in local storage in a production project! + localStorage.setItem( + 'SOLANA_SECRET_KEY_1', + JSON.stringify(Array.from(wallet1.keypair.secretKey)) + ) + localStorage.setItem( + 'SOLANA_SECRET_KEY_2', + JSON.stringify(Array.from(wallet2.keypair.secretKey)) + ) + } + + address1 = await wallet1.getAddress() + address2 = await wallet2.getAddress() + + solanaWallets = { + [address1]: wallet1, + [address2]: wallet2 + } + solanaAddresses = Object.keys(solanaWallets) + + return { + solanaWallets, + solanaAddresses + } +} diff --git a/wallets/react-wallet-v2-chat/src/utils/WalletConnectUtil.ts b/wallets/react-wallet-v2-chat/src/utils/WalletConnectUtil.ts new file mode 100644 index 0000000..9d8ae2c --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/utils/WalletConnectUtil.ts @@ -0,0 +1,27 @@ +import SignClient from '@walletconnect/sign-client' +import { ChatClient } from '@walletconnect/chat-client' + +export let signClient: SignClient +export let chatClient: ChatClient + +export async function createSignClient() { + signClient = await SignClient.init({ + projectId: process.env.NEXT_PUBLIC_PROJECT_ID, + relayUrl: process.env.NEXT_PUBLIC_RELAY_URL ?? 'wss://relay.walletconnect.com', + metadata: { + name: 'React Wallet', + description: 'React Wallet for WalletConnect', + url: 'https://walletconnect.com/', + icons: ['https://avatars.githubusercontent.com/u/37784886'] + } + }) +} + +// FIXME: update relayUrl here to not hardcode local relay. +export async function createChatClient() { + chatClient = await ChatClient.init({ + logger: 'debug', + projectId: process.env.NEXT_PUBLIC_PROJECT_ID, + relayUrl: process.env.NEXT_PUBLIC_RELAY_URL ?? 'wss://relay.walletconnect.com' + }) +} diff --git a/wallets/react-wallet-v2-chat/src/views/SessionProposalModal.tsx b/wallets/react-wallet-v2-chat/src/views/SessionProposalModal.tsx new file mode 100644 index 0000000..c78edf5 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/views/SessionProposalModal.tsx @@ -0,0 +1,157 @@ +import ProjectInfoCard from '@/components/ProjectInfoCard' +import ProposalSelectSection from '@/components/ProposalSelectSection' +import RequestModalContainer from '@/components/RequestModalContainer' +import SessionProposalChainCard from '@/components/SessionProposalChainCard' +import ModalStore from '@/store/ModalStore' +import { cosmosAddresses } from '@/utils/CosmosWalletUtil' +import { eip155Addresses } from '@/utils/EIP155WalletUtil' +import { isCosmosChain, isEIP155Chain, isSolanaChain } from '@/utils/HelperUtil' +import { solanaAddresses } from '@/utils/SolanaWalletUtil' +import { signClient } from '@/utils/WalletConnectUtil' +import { Button, Divider, Modal, Text } from '@nextui-org/react' +import { SessionTypes } from '@walletconnect/types' +import { getSdkError } from '@walletconnect/utils' +import { Fragment, useState } from 'react' + +export default function SessionProposalModal() { + const [selectedAccounts, setSelectedAccounts] = useState>({}) + const hasSelected = Object.keys(selectedAccounts).length + + // Get proposal data and wallet address from store + const proposal = ModalStore.state.data?.proposal + + // Ensure proposal is defined + if (!proposal) { + return Missing proposal data + } + + // Get required proposal data + const { id, params } = proposal + const { proposer, requiredNamespaces, relays } = params + + // Add / remove address from EIP155 selection + function onSelectAccount(chain: string, account: string) { + if (selectedAccounts[chain]?.includes(account)) { + const newSelectedAccounts = selectedAccounts[chain]?.filter(a => a !== account) + setSelectedAccounts(prev => ({ + ...prev, + [chain]: newSelectedAccounts + })) + } else { + const prevChainAddresses = selectedAccounts[chain] ?? [] + setSelectedAccounts(prev => ({ + ...prev, + [chain]: [...prevChainAddresses, account] + })) + } + } + + // Hanlde approve action, construct session namespace + async function onApprove() { + if (proposal) { + const namespaces: SessionTypes.Namespaces = {} + Object.keys(requiredNamespaces).forEach(key => { + const accounts: string[] = [] + requiredNamespaces[key].chains.map(chain => { + selectedAccounts[key].map(acc => accounts.push(`${chain}:${acc}`)) + }) + namespaces[key] = { + accounts, + methods: requiredNamespaces[key].methods, + events: requiredNamespaces[key].events + } + }) + + const { acknowledged } = await signClient.approve({ + id, + relayProtocol: relays[0].protocol, + namespaces + }) + await acknowledged() + } + ModalStore.close() + } + + // Hanlde reject action + async function onReject() { + if (proposal) { + await signClient.reject({ + id, + reason: getSdkError('USER_REJECTED_METHODS') + }) + } + ModalStore.close() + } + + // Render account selection checkboxes based on chain + function renderAccountSelection(chain: string) { + if (isEIP155Chain(chain)) { + return ( + + ) + } else if (isCosmosChain(chain)) { + return ( + + ) + } else if (isSolanaChain(chain)) { + return ( + + ) + } + } + + return ( + + + + + {/* TODO(ilja) Relays selection */} + + + + {Object.keys(requiredNamespaces).map(chain => { + return ( + + {`Review ${chain} permissions`} + + {renderAccountSelection(chain)} + + + ) + })} + + + + + + + + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/views/SessionSendTransactionModal.tsx b/wallets/react-wallet-v2-chat/src/views/SessionSendTransactionModal.tsx new file mode 100644 index 0000000..7119b52 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/views/SessionSendTransactionModal.tsx @@ -0,0 +1,83 @@ +import ProjectInfoCard from '@/components/ProjectInfoCard' +import RequestDataCard from '@/components/RequestDataCard' +import RequesDetailsCard from '@/components/RequestDetalilsCard' +import RequestMethodCard from '@/components/RequestMethodCard' +import RequestModalContainer from '@/components/RequestModalContainer' +import ModalStore from '@/store/ModalStore' +import { approveEIP155Request, rejectEIP155Request } from '@/utils/EIP155RequestHandlerUtil' +import { signClient } from '@/utils/WalletConnectUtil' +import { Button, Divider, Loading, Modal, Text } from '@nextui-org/react' +import { Fragment, useState } from 'react' + +export default function SessionSendTransactionModal() { + const [loading, setLoading] = useState(false) + + // 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 proposal data + + const { topic, params } = requestEvent + const { request, chainId } = params + const transaction = request.params[0] + + // Handle approve action + async function onApprove() { + if (requestEvent) { + setLoading(true) + const response = await approveEIP155Request(requestEvent) + await signClient.respond({ + topic, + response + }) + ModalStore.close() + } + } + + // Handle reject action + async function onReject() { + if (requestEvent) { + const response = rejectEIP155Request(requestEvent) + await signClient.respond({ + topic, + response + }) + ModalStore.close() + } + } + + return ( + + + + + + + + + + + + + + + + + + + + + + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/views/SessionSignCosmosModal.tsx b/wallets/react-wallet-v2-chat/src/views/SessionSignCosmosModal.tsx new file mode 100644 index 0000000..e7b5a38 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/views/SessionSignCosmosModal.tsx @@ -0,0 +1,78 @@ +import ProjectInfoCard from '@/components/ProjectInfoCard' +import RequestDataCard from '@/components/RequestDataCard' +import RequesDetailsCard from '@/components/RequestDetalilsCard' +import RequestMethodCard from '@/components/RequestMethodCard' +import RequestModalContainer from '@/components/RequestModalContainer' +import ModalStore from '@/store/ModalStore' +import { approveCosmosRequest, rejectCosmosRequest } from '@/utils/CosmosRequestHandler' +import { signClient } from '@/utils/WalletConnectUtil' +import { Button, Divider, Modal, Text } from '@nextui-org/react' +import { Fragment } from 'react' + +export default function SessionSignCosmosModal() { + // 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 + + // Handle approve action (logic varies based on request method) + async function onApprove() { + if (requestEvent) { + const response = await approveCosmosRequest(requestEvent) + await signClient.respond({ + topic, + response + }) + ModalStore.close() + } + } + + // Handle reject action + async function onReject() { + if (requestEvent) { + const response = rejectCosmosRequest(requestEvent) + await signClient.respond({ + topic, + response + }) + ModalStore.close() + } + } + + return ( + + + + + + + + + + + + + + + + + + + + + + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/views/SessionSignModal.tsx b/wallets/react-wallet-v2-chat/src/views/SessionSignModal.tsx new file mode 100644 index 0000000..d932da7 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/views/SessionSignModal.tsx @@ -0,0 +1,86 @@ +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' +import { approveEIP155Request, rejectEIP155Request } from '@/utils/EIP155RequestHandlerUtil' +import { getSignParamsMessage } from '@/utils/HelperUtil' +import { signClient } from '@/utils/WalletConnectUtil' +import { Button, Col, Divider, Modal, Row, Text } from '@nextui-org/react' +import { Fragment } from 'react' + +export default function SessionSignModal() { + // 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 { 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) + async function onApprove() { + if (requestEvent) { + const response = await approveEIP155Request(requestEvent) + await signClient.respond({ + topic, + response + }) + ModalStore.close() + } + } + + // Handle reject action + async function onReject() { + if (requestEvent) { + const response = rejectEIP155Request(requestEvent) + await signClient.respond({ + topic, + response + }) + ModalStore.close() + } + } + + return ( + + + + + + + + + + + + + Message + {message} + + + + + + + + + + + + + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/views/SessionSignSolanaModal.tsx b/wallets/react-wallet-v2-chat/src/views/SessionSignSolanaModal.tsx new file mode 100644 index 0000000..408860a --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/views/SessionSignSolanaModal.tsx @@ -0,0 +1,78 @@ +import ProjectInfoCard from '@/components/ProjectInfoCard' +import RequestDataCard from '@/components/RequestDataCard' +import RequesDetailsCard from '@/components/RequestDetalilsCard' +import RequestMethodCard from '@/components/RequestMethodCard' +import RequestModalContainer from '@/components/RequestModalContainer' +import ModalStore from '@/store/ModalStore' +import { approveSolanaRequest, rejectSolanaRequest } from '@/utils/SolanaRequestHandlerUtil' +import { signClient } from '@/utils/WalletConnectUtil' +import { Button, Divider, Modal, Text } from '@nextui-org/react' +import { Fragment } from 'react' + +export default function SessionSignSolanaModal() { + // 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 { request, chainId } = params + + // Handle approve action (logic varies based on request method) + async function onApprove() { + if (requestEvent) { + const response = await approveSolanaRequest(requestEvent) + await signClient.respond({ + topic, + response + }) + ModalStore.close() + } + } + + // Handle reject action + async function onReject() { + if (requestEvent) { + const response = rejectSolanaRequest(requestEvent) + await signClient.respond({ + topic, + response + }) + ModalStore.close() + } + } + + return ( + + + + + + + + + + + + + + + + + + + + + + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/views/SessionSignTypedDataModal.tsx b/wallets/react-wallet-v2-chat/src/views/SessionSignTypedDataModal.tsx new file mode 100644 index 0000000..456ba25 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/views/SessionSignTypedDataModal.tsx @@ -0,0 +1,82 @@ +import ProjectInfoCard from '@/components/ProjectInfoCard' +import RequestDataCard from '@/components/RequestDataCard' +import RequesDetailsCard from '@/components/RequestDetalilsCard' +import RequestMethodCard from '@/components/RequestMethodCard' +import RequestModalContainer from '@/components/RequestModalContainer' +import ModalStore from '@/store/ModalStore' +import { approveEIP155Request, rejectEIP155Request } from '@/utils/EIP155RequestHandlerUtil' +import { getSignTypedDataParamsData } from '@/utils/HelperUtil' +import { signClient } from '@/utils/WalletConnectUtil' +import { Button, Divider, Modal, Text } from '@nextui-org/react' +import { Fragment } from 'react' + +export default function SessionSignTypedDataModal() { + // 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 { request, chainId } = params + + // Get data + const data = getSignTypedDataParamsData(request.params) + + // Handle approve action (logic varies based on request method) + async function onApprove() { + if (requestEvent) { + const response = await approveEIP155Request(requestEvent) + await signClient.respond({ + topic, + response + }) + ModalStore.close() + } + } + + // Handle reject action + async function onReject() { + if (requestEvent) { + const response = rejectEIP155Request(requestEvent) + await signClient.respond({ + topic, + response + }) + ModalStore.close() + } + } + + return ( + + + + + + + + + + + + + + + + + + + + + + + ) +} diff --git a/wallets/react-wallet-v2-chat/src/views/SessionUnsuportedMethodModal.tsx b/wallets/react-wallet-v2-chat/src/views/SessionUnsuportedMethodModal.tsx new file mode 100644 index 0000000..f2ee670 --- /dev/null +++ b/wallets/react-wallet-v2-chat/src/views/SessionUnsuportedMethodModal.tsx @@ -0,0 +1,44 @@ +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' +import { Button, Divider, Modal, Text } from '@nextui-org/react' +import { Fragment } from 'react' + +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/wallets/react-wallet-v2-chat/tsconfig.json b/wallets/react-wallet-v2-chat/tsconfig.json new file mode 100644 index 0000000..a9d5577 --- /dev/null +++ b/wallets/react-wallet-v2-chat/tsconfig.json @@ -0,0 +1,34 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "incremental": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "baseUrl": ".", + "paths": { + "@/*": ["src/*"] + } + }, + "include": [ + "next-env.d.ts", + "**/*.ts", + "**/*.tsx" + ], + "exclude": [ + "node_modules" + ] +} diff --git a/wallets/react-wallet-v2-chat/yarn.lock b/wallets/react-wallet-v2-chat/yarn.lock new file mode 100644 index 0000000..d99e65d --- /dev/null +++ b/wallets/react-wallet-v2-chat/yarn.lock @@ -0,0 +1,5501 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz" + integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== + dependencies: + "@babel/highlight" "^7.16.7" + +"@babel/generator@^7.18.2": + version "7.18.2" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz" + integrity sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw== + dependencies: + "@babel/types" "^7.18.2" + "@jridgewell/gen-mapping" "^0.3.0" + jsesc "^2.5.1" + +"@babel/helper-annotate-as-pure@^7.16.0": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz" + integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-environment-visitor@^7.18.2": + version "7.18.2" + resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz" + integrity sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ== + +"@babel/helper-function-name@^7.17.9": + version "7.17.9" + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz" + integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== + dependencies: + "@babel/template" "^7.16.7" + "@babel/types" "^7.17.0" + +"@babel/helper-hoist-variables@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz" + integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.16.0": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz" + integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-split-export-declaration@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz" + integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-validator-identifier@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz" + integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== + +"@babel/highlight@^7.16.7": + version "7.17.12" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz" + integrity sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.16.7", "@babel/parser@^7.18.0": + version "7.18.3" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.18.3.tgz" + integrity sha512-rL50YcEuHbbauAFAysNsJA4/f89fGTOBRNs9P81sniKnKAr4xULe5AecolcsKbi88xu0ByWYDj/S1AJ3FSFuSQ== + +"@babel/runtime-corejs3@^7.10.2": + version "7.18.3" + resolved "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.18.3.tgz" + integrity sha512-l4ddFwrc9rnR+EJsHsh+TJ4A35YqQz/UqcjtlX2ov53hlJYG5CxtQmNZxyajwDVmCxwy++rtvGU5HazCK4W41Q== + dependencies: + core-js-pure "^3.20.2" + regenerator-runtime "^0.13.4" + +"@babel/runtime@7.9.6": + version "7.9.6" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz" + integrity sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/runtime@^7.10.2", "@babel/runtime@^7.10.4", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.6.2": + version "7.18.3" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz" + integrity sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz" + integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/parser" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/traverse@^7.4.5": + version "7.18.2" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.2.tgz" + integrity sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.18.2" + "@babel/helper-environment-visitor" "^7.18.2" + "@babel/helper-function-name" "^7.17.9" + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/parser" "^7.18.0" + "@babel/types" "^7.18.2" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.16.7", "@babel/types@^7.17.0", "@babel/types@^7.18.2": + version "7.18.2" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.18.2.tgz" + integrity sha512-0On6B8A4/+mFUto5WERt3EEuG1NznDirvwca1O8UwXQHVY8g3R7OzYgxXdOfMwLO08UrpUD/2+3Bclyq+/C94Q== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + to-fast-properties "^2.0.0" + +"@cosmjs/amino@0.28.4": + version "0.28.4" + resolved "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.28.4.tgz" + integrity sha512-b8y5gFC0eGrH0IoYSNtDmTdsTgeQ1KFZ5YVOeIiKmzF91MeiciYO/MNqc027kctacZ+UbnVWGEUGyRBPi9ta/g== + dependencies: + "@cosmjs/crypto" "0.28.4" + "@cosmjs/encoding" "0.28.4" + "@cosmjs/math" "0.28.4" + "@cosmjs/utils" "0.28.4" + +"@cosmjs/amino@^0.25.4", "@cosmjs/amino@^0.25.6": + version "0.25.6" + resolved "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.25.6.tgz" + integrity sha512-9dXN2W7LHjDtJUGNsQ9ok0DfxeN3ca/TXnxCR3Ikh/5YqBqxI8Gel1J9PQO9L6EheYyh045Wff4bsMaLjyEeqQ== + dependencies: + "@cosmjs/crypto" "^0.25.6" + "@cosmjs/encoding" "^0.25.6" + "@cosmjs/math" "^0.25.6" + "@cosmjs/utils" "^0.25.6" + +"@cosmjs/crypto@0.28.4": + version "0.28.4" + resolved "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.28.4.tgz" + integrity sha512-JRxNLlED3DDh9d04A0RcRw3mYkoobN7q7wafUFy3vI1TjoyWx33v0gqqaYE6/hoo9ghUrJSVOfzVihl8fZajJA== + dependencies: + "@cosmjs/encoding" "0.28.4" + "@cosmjs/math" "0.28.4" + "@cosmjs/utils" "0.28.4" + "@noble/hashes" "^1" + bn.js "^5.2.0" + elliptic "^6.5.3" + libsodium-wrappers "^0.7.6" + +"@cosmjs/crypto@^0.25.6": + version "0.25.6" + resolved "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.25.6.tgz" + integrity sha512-ec+YcQLrg2ibcxtNrh4FqQnG9kG9IE/Aik2NH6+OXQdFU/qFuBTxSFcKDgzzBOChwlkXwydllM9Jjbp+dgIzRw== + dependencies: + "@cosmjs/encoding" "^0.25.6" + "@cosmjs/math" "^0.25.6" + "@cosmjs/utils" "^0.25.6" + bip39 "^3.0.2" + bn.js "^4.11.8" + elliptic "^6.5.3" + js-sha3 "^0.8.0" + libsodium-wrappers "^0.7.6" + ripemd160 "^2.0.2" + sha.js "^2.4.11" + +"@cosmjs/encoding@0.28.4": + version "0.28.4" + resolved "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.28.4.tgz" + integrity sha512-N6Qnjs4dd8KwjW5m9t3L+rWYYGW2wyS+iLtJJ9DD8DiTTxpW9h7/AmUVO/dsRe5H2tV8/DzH/B9pFfpsgro22A== + dependencies: + base64-js "^1.3.0" + bech32 "^1.1.4" + readonly-date "^1.0.0" + +"@cosmjs/encoding@^0.25.6": + version "0.25.6" + resolved "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.25.6.tgz" + integrity sha512-0imUOB8XkUstI216uznPaX1hqgvLQ2Xso3zJj5IV5oJuNlsfDj9nt/iQxXWbJuettc6gvrFfpf+Vw2vBZSZ75g== + dependencies: + base64-js "^1.3.0" + bech32 "^1.1.4" + readonly-date "^1.0.0" + +"@cosmjs/math@0.28.4": + version "0.28.4" + resolved "https://registry.npmjs.org/@cosmjs/math/-/math-0.28.4.tgz" + integrity sha512-wsWjbxFXvk46Dsx8jQ5vsBZOIQuiUIyaaZbUvxsgIhAMpuuBnV5O/drK87+B+4cL+umTelFqTbWnkqueVCIFxQ== + dependencies: + bn.js "^5.2.0" + +"@cosmjs/math@^0.25.6": + version "0.25.6" + resolved "https://registry.npmjs.org/@cosmjs/math/-/math-0.25.6.tgz" + integrity sha512-Fmyc9FJ8KMU34n7rdapMJrT/8rx5WhMw2F7WLBu7AVLcBh0yWsXIcMSJCoPHTOnMIiABjXsnrrwEaLrOOBfu6A== + dependencies: + bn.js "^4.11.8" + +"@cosmjs/proto-signing@0.28.4": + version "0.28.4" + resolved "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.28.4.tgz" + integrity sha512-4vgCLK9gOsdWzD78V5XbAsupSSyntPEzokWYhgRQNwgVTcKX1kg0eKZqUvF5ua5iL9x6MevfH/sgwPyiYleMBw== + dependencies: + "@cosmjs/amino" "0.28.4" + "@cosmjs/crypto" "0.28.4" + "@cosmjs/encoding" "0.28.4" + "@cosmjs/math" "0.28.4" + "@cosmjs/utils" "0.28.4" + cosmjs-types "^0.4.0" + long "^4.0.0" + protobufjs "~6.10.2" + +"@cosmjs/proto-signing@^0.25.4": + version "0.25.6" + resolved "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.25.6.tgz" + integrity sha512-JpQ+Vnv9s6i3x8f3Jo0lJZ3VMnj3R5sMgX+8ti1LtB7qEYRR85qbDrEG9hDGIKqJJabvrAuCHnO6hYi0vJEJHA== + dependencies: + "@cosmjs/amino" "^0.25.6" + long "^4.0.0" + protobufjs "~6.10.2" + +"@cosmjs/utils@0.28.4": + version "0.28.4" + resolved "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.28.4.tgz" + integrity sha512-lb3TU6833arPoPZF8HTeG9V418CpurvqH5Aa/ls0I0wYdPDEMO6622+PQNQhQ8Vw8Az2MXoSyc8jsqrgawT84Q== + +"@cosmjs/utils@^0.25.6": + version "0.25.6" + resolved "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.25.6.tgz" + integrity sha512-ofOYiuxVKNo238vCPPlaDzqPXy2AQ/5/nashBo5rvPZJkxt9LciGfUEQWPCOb1BIJDNx2Dzu0z4XCf/dwzl0Dg== + +"@emotion/is-prop-valid@^0.8.2": + version "0.8.8" + resolved "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz" + integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== + dependencies: + "@emotion/memoize" "0.7.4" + +"@emotion/is-prop-valid@^1.1.0": + version "1.1.2" + resolved "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.1.2.tgz" + integrity sha512-3QnhqeL+WW88YjYbQL5gUIkthuMw7a0NGbZ7wfFVk2kg/CK5w8w5FFa0RzWjyY1+sujN0NWbtSHH6OJmWHtJpQ== + dependencies: + "@emotion/memoize" "^0.7.4" + +"@emotion/memoize@0.7.4": + version "0.7.4" + resolved "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz" + integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== + +"@emotion/memoize@^0.7.4": + version "0.7.5" + resolved "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz" + integrity sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ== + +"@emotion/stylis@^0.8.4": + version "0.8.5" + resolved "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz" + integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ== + +"@emotion/unitless@^0.7.4": + version "0.7.5" + resolved "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz" + integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== + +"@eslint/eslintrc@^1.2.3": + version "1.3.0" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz" + integrity sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.3.2" + globals "^13.15.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@ethersproject/abi@5.6.2": + version "5.6.2" + resolved "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.6.2.tgz" + integrity sha512-40Ixjhy+YzFtnvzIqFU13FW9hd1gMoLa3cJfSDnfnL4o8EnEG1qLiV8sNJo3sHYi9UYMfFeRuZ7kv5+vhzU7gQ== + dependencies: + "@ethersproject/address" "^5.6.0" + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/constants" "^5.6.0" + "@ethersproject/hash" "^5.6.0" + "@ethersproject/keccak256" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/strings" "^5.6.0" + +"@ethersproject/abi@^5.6.0": + version "5.6.3" + resolved "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.6.3.tgz" + integrity sha512-CxKTdoZY4zDJLWXG6HzNH6znWK0M79WzzxHegDoecE3+K32pzfHOzuXg2/oGSTecZynFgpkjYXNPOqXVJlqClw== + dependencies: + "@ethersproject/address" "^5.6.1" + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/constants" "^5.6.1" + "@ethersproject/hash" "^5.6.1" + "@ethersproject/keccak256" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/strings" "^5.6.1" + +"@ethersproject/abstract-provider@5.6.0": + version "5.6.0" + resolved "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.6.0.tgz" + integrity sha512-oPMFlKLN+g+y7a79cLK3WiLcjWFnZQtXWgnLAbHZcN3s7L4v90UHpTOrLk+m3yr0gt+/h9STTM6zrr7PM8uoRw== + dependencies: + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/networks" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/transactions" "^5.6.0" + "@ethersproject/web" "^5.6.0" + +"@ethersproject/abstract-provider@^5.6.0", "@ethersproject/abstract-provider@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.6.1.tgz" + integrity sha512-BxlIgogYJtp1FS8Muvj8YfdClk3unZH0vRMVX791Z9INBNT/kuACZ9GzaY1Y4yFq+YSy6/w4gzj3HCRKrK9hsQ== + dependencies: + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/networks" "^5.6.3" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/transactions" "^5.6.2" + "@ethersproject/web" "^5.6.1" + +"@ethersproject/abstract-signer@5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.6.1.tgz" + integrity sha512-xhSLo6y0nGJS7NxfvOSzCaWKvWb1TLT7dQ0nnpHZrDnC67xfnWm9NXflTMFPUXXMtjr33CdV0kWDEmnbrQZ74Q== + dependencies: + "@ethersproject/abstract-provider" "^5.6.0" + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + +"@ethersproject/abstract-signer@^5.6.0", "@ethersproject/abstract-signer@^5.6.2": + version "5.6.2" + resolved "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.6.2.tgz" + integrity sha512-n1r6lttFBG0t2vNiI3HoWaS/KdOt8xyDjzlP2cuevlWLG6EX0OwcKLyG/Kp/cuwNxdy/ous+R/DEMdTUwWQIjQ== + dependencies: + "@ethersproject/abstract-provider" "^5.6.1" + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + +"@ethersproject/address@5.6.0": + version "5.6.0" + resolved "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.0.tgz" + integrity sha512-6nvhYXjbXsHPS+30sHZ+U4VMagFC/9zAk6Gd/h3S21YW4+yfb0WfRtaAIZ4kfM4rrVwqiy284LP0GtL5HXGLxQ== + dependencies: + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/keccak256" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/rlp" "^5.6.0" + +"@ethersproject/address@^5.6.0", "@ethersproject/address@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.1.tgz" + integrity sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q== + dependencies: + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/keccak256" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/rlp" "^5.6.1" + +"@ethersproject/base64@5.6.0": + version "5.6.0" + resolved "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.6.0.tgz" + integrity sha512-2Neq8wxJ9xHxCF9TUgmKeSh9BXJ6OAxWfeGWvbauPh8FuHEjamgHilllx8KkSd5ErxyHIX7Xv3Fkcud2kY9ezw== + dependencies: + "@ethersproject/bytes" "^5.6.0" + +"@ethersproject/base64@^5.6.0", "@ethersproject/base64@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.6.1.tgz" + integrity sha512-qB76rjop6a0RIYYMiB4Eh/8n+Hxu2NIZm8S/Q7kNo5pmZfXhHGHmS4MinUainiBC54SCyRnwzL+KZjj8zbsSsw== + dependencies: + "@ethersproject/bytes" "^5.6.1" + +"@ethersproject/basex@5.6.0": + version "5.6.0" + resolved "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.6.0.tgz" + integrity sha512-qN4T+hQd/Md32MoJpc69rOwLYRUXwjTlhHDIeUkUmiN/JyWkkLLMoG0TqvSQKNqZOMgN5stbUYN6ILC+eD7MEQ== + dependencies: + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + +"@ethersproject/basex@^5.6.0", "@ethersproject/basex@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.6.1.tgz" + integrity sha512-a52MkVz4vuBXR06nvflPMotld1FJWSj2QT0985v7P/emPZO00PucFAkbcmq2vpVU7Ts7umKiSI6SppiLykVWsA== + dependencies: + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/properties" "^5.6.0" + +"@ethersproject/bignumber@5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.1.tgz" + integrity sha512-UtMeZ3GaUuF9sx2u9nPZiPP3ULcAFmXyvynR7oHl/tPrM+vldZh7ocMsoa1PqKYGnQnqUZJoqxZnGN6J0qdipA== + dependencies: + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + bn.js "^4.11.9" + +"@ethersproject/bignumber@^5.6.0", "@ethersproject/bignumber@^5.6.2": + version "5.6.2" + resolved "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.2.tgz" + integrity sha512-v7+EEUbhGqT3XJ9LMPsKvXYHFc8eHxTowFCG/HgJErmq4XHJ2WR7aeyICg3uTOAQ7Icn0GFHAohXEhxQHq4Ubw== + dependencies: + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + bn.js "^5.2.1" + +"@ethersproject/bytes@5.6.1", "@ethersproject/bytes@^5.6.0", "@ethersproject/bytes@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.6.1.tgz" + integrity sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g== + dependencies: + "@ethersproject/logger" "^5.6.0" + +"@ethersproject/constants@5.6.0": + version "5.6.0" + resolved "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.6.0.tgz" + integrity sha512-SrdaJx2bK0WQl23nSpV/b1aq293Lh0sUaZT/yYKPDKn4tlAbkH96SPJwIhwSwTsoQQZxuh1jnqsKwyymoiBdWA== + dependencies: + "@ethersproject/bignumber" "^5.6.0" + +"@ethersproject/constants@^5.6.0", "@ethersproject/constants@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.6.1.tgz" + integrity sha512-QSq9WVnZbxXYFftrjSjZDUshp6/eKp6qrtdBtUCm0QxCV5z1fG/w3kdlcsjMCQuQHUnAclKoK7XpXMezhRDOLg== + dependencies: + "@ethersproject/bignumber" "^5.6.2" + +"@ethersproject/contracts@5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.6.1.tgz" + integrity sha512-0fpBBDoPqJMsutE6sNjg6pvCJaIcl7tliMQTMRcoUWDACfjO68CpKOJBlsEhEhmzdnu/41KbrfAeg+sB3y35MQ== + dependencies: + "@ethersproject/abi" "^5.6.0" + "@ethersproject/abstract-provider" "^5.6.0" + "@ethersproject/abstract-signer" "^5.6.0" + "@ethersproject/address" "^5.6.0" + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/constants" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/transactions" "^5.6.0" + +"@ethersproject/hash@5.6.0": + version "5.6.0" + resolved "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.6.0.tgz" + integrity sha512-fFd+k9gtczqlr0/BruWLAu7UAOas1uRRJvOR84uDf4lNZ+bTkGl366qvniUZHKtlqxBRU65MkOobkmvmpHU+jA== + dependencies: + "@ethersproject/abstract-signer" "^5.6.0" + "@ethersproject/address" "^5.6.0" + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/keccak256" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/strings" "^5.6.0" + +"@ethersproject/hash@^5.6.0", "@ethersproject/hash@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.6.1.tgz" + integrity sha512-L1xAHurbaxG8VVul4ankNX5HgQ8PNCTrnVXEiFnE9xoRnaUcgfD12tZINtDinSllxPLCtGwguQxJ5E6keE84pA== + dependencies: + "@ethersproject/abstract-signer" "^5.6.2" + "@ethersproject/address" "^5.6.1" + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/keccak256" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/strings" "^5.6.1" + +"@ethersproject/hdnode@5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.6.1.tgz" + integrity sha512-6IuYDmbH5Bv/WH/A2cUd0FjNr4qTLAvyHAECiFZhNZp69pPvU7qIDwJ7CU7VAkwm4IVBzqdYy9mpMAGhQdwCDA== + dependencies: + "@ethersproject/abstract-signer" "^5.6.0" + "@ethersproject/basex" "^5.6.0" + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/pbkdf2" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/sha2" "^5.6.0" + "@ethersproject/signing-key" "^5.6.0" + "@ethersproject/strings" "^5.6.0" + "@ethersproject/transactions" "^5.6.0" + "@ethersproject/wordlists" "^5.6.0" + +"@ethersproject/hdnode@^5.6.0", "@ethersproject/hdnode@^5.6.2": + version "5.6.2" + resolved "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.6.2.tgz" + integrity sha512-tERxW8Ccf9CxW2db3WsN01Qao3wFeRsfYY9TCuhmG0xNpl2IO8wgXU3HtWIZ49gUWPggRy4Yg5axU0ACaEKf1Q== + dependencies: + "@ethersproject/abstract-signer" "^5.6.2" + "@ethersproject/basex" "^5.6.1" + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/pbkdf2" "^5.6.1" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/sha2" "^5.6.1" + "@ethersproject/signing-key" "^5.6.2" + "@ethersproject/strings" "^5.6.1" + "@ethersproject/transactions" "^5.6.2" + "@ethersproject/wordlists" "^5.6.1" + +"@ethersproject/json-wallets@5.6.0": + version "5.6.0" + resolved "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.6.0.tgz" + integrity sha512-fmh86jViB9r0ibWXTQipxpAGMiuxoqUf78oqJDlCAJXgnJF024hOOX7qVgqsjtbeoxmcLwpPsXNU0WEe/16qPQ== + dependencies: + "@ethersproject/abstract-signer" "^5.6.0" + "@ethersproject/address" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/hdnode" "^5.6.0" + "@ethersproject/keccak256" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/pbkdf2" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/random" "^5.6.0" + "@ethersproject/strings" "^5.6.0" + "@ethersproject/transactions" "^5.6.0" + aes-js "3.0.0" + scrypt-js "3.0.1" + +"@ethersproject/json-wallets@^5.6.0": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.6.1.tgz" + integrity sha512-KfyJ6Zwz3kGeX25nLihPwZYlDqamO6pfGKNnVMWWfEVVp42lTfCZVXXy5Ie8IZTN0HKwAngpIPi7gk4IJzgmqQ== + dependencies: + "@ethersproject/abstract-signer" "^5.6.2" + "@ethersproject/address" "^5.6.1" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/hdnode" "^5.6.2" + "@ethersproject/keccak256" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/pbkdf2" "^5.6.1" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/random" "^5.6.1" + "@ethersproject/strings" "^5.6.1" + "@ethersproject/transactions" "^5.6.2" + aes-js "3.0.0" + scrypt-js "3.0.1" + +"@ethersproject/keccak256@5.6.0": + version "5.6.0" + resolved "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.6.0.tgz" + integrity sha512-tk56BJ96mdj/ksi7HWZVWGjCq0WVl/QvfhFQNeL8fxhBlGoP+L80uDCiQcpJPd+2XxkivS3lwRm3E0CXTfol0w== + dependencies: + "@ethersproject/bytes" "^5.6.0" + js-sha3 "0.8.0" + +"@ethersproject/keccak256@^5.6.0", "@ethersproject/keccak256@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.6.1.tgz" + integrity sha512-bB7DQHCTRDooZZdL3lk9wpL0+XuG3XLGHLh3cePnybsO3V0rdCAOQGpn/0R3aODmnTOOkCATJiD2hnL+5bwthA== + dependencies: + "@ethersproject/bytes" "^5.6.1" + js-sha3 "0.8.0" + +"@ethersproject/logger@5.6.0", "@ethersproject/logger@^5.6.0": + version "5.6.0" + resolved "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.6.0.tgz" + integrity sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg== + +"@ethersproject/networks@5.6.2": + version "5.6.2" + resolved "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.6.2.tgz" + integrity sha512-9uEzaJY7j5wpYGTojGp8U89mSsgQLc40PCMJLMCnFXTs7nhBveZ0t7dbqWUNrepWTszDbFkYD6WlL8DKx5huHA== + dependencies: + "@ethersproject/logger" "^5.6.0" + +"@ethersproject/networks@^5.6.0", "@ethersproject/networks@^5.6.3": + version "5.6.3" + resolved "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.6.3.tgz" + integrity sha512-QZxRH7cA5Ut9TbXwZFiCyuPchdWi87ZtVNHWZd0R6YFgYtes2jQ3+bsslJ0WdyDe0i6QumqtoYqvY3rrQFRZOQ== + dependencies: + "@ethersproject/logger" "^5.6.0" + +"@ethersproject/pbkdf2@5.6.0": + version "5.6.0" + resolved "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.6.0.tgz" + integrity sha512-Wu1AxTgJo3T3H6MIu/eejLFok9TYoSdgwRr5oGY1LTLfmGesDoSx05pemsbrPT2gG4cQME+baTSCp5sEo2erZQ== + dependencies: + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/sha2" "^5.6.0" + +"@ethersproject/pbkdf2@^5.6.0", "@ethersproject/pbkdf2@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.6.1.tgz" + integrity sha512-k4gRQ+D93zDRPNUfmduNKq065uadC2YjMP/CqwwX5qG6R05f47boq6pLZtV/RnC4NZAYOPH1Cyo54q0c9sshRQ== + dependencies: + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/sha2" "^5.6.1" + +"@ethersproject/properties@5.6.0", "@ethersproject/properties@^5.6.0": + version "5.6.0" + resolved "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.6.0.tgz" + integrity sha512-szoOkHskajKePTJSZ46uHUWWkbv7TzP2ypdEK6jGMqJaEt2sb0jCgfBo0gH0m2HBpRixMuJ6TBRaQCF7a9DoCg== + dependencies: + "@ethersproject/logger" "^5.6.0" + +"@ethersproject/providers@5.6.6": + version "5.6.6" + resolved "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.6.6.tgz" + integrity sha512-6X6agj3NeQ4tgnvBMCjHK+CjQbz+Qmn20JTxCYZ/uymrgCEOpJtY9zeRxJIDsSi0DPw8xNAxypj95JMCsapUfA== + dependencies: + "@ethersproject/abstract-provider" "^5.6.0" + "@ethersproject/abstract-signer" "^5.6.0" + "@ethersproject/address" "^5.6.0" + "@ethersproject/basex" "^5.6.0" + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/constants" "^5.6.0" + "@ethersproject/hash" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/networks" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/random" "^5.6.0" + "@ethersproject/rlp" "^5.6.0" + "@ethersproject/sha2" "^5.6.0" + "@ethersproject/strings" "^5.6.0" + "@ethersproject/transactions" "^5.6.0" + "@ethersproject/web" "^5.6.0" + bech32 "1.1.4" + ws "7.4.6" + +"@ethersproject/random@5.6.0": + version "5.6.0" + resolved "https://registry.npmjs.org/@ethersproject/random/-/random-5.6.0.tgz" + integrity sha512-si0PLcLjq+NG/XHSZz90asNf+YfKEqJGVdxoEkSukzbnBgC8rydbgbUgBbBGLeHN4kAJwUFEKsu3sCXT93YMsw== + dependencies: + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + +"@ethersproject/random@^5.6.0", "@ethersproject/random@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/random/-/random-5.6.1.tgz" + integrity sha512-/wtPNHwbmng+5yi3fkipA8YBT59DdkGRoC2vWk09Dci/q5DlgnMkhIycjHlavrvrjJBkFjO/ueLyT+aUDfc4lA== + dependencies: + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + +"@ethersproject/rlp@5.6.0": + version "5.6.0" + resolved "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.0.tgz" + integrity sha512-dz9WR1xpcTL+9DtOT/aDO+YyxSSdO8YIS0jyZwHHSlAmnxA6cKU3TrTd4Xc/bHayctxTgGLYNuVVoiXE4tTq1g== + dependencies: + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + +"@ethersproject/rlp@^5.6.0", "@ethersproject/rlp@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.1.tgz" + integrity sha512-uYjmcZx+DKlFUk7a5/W9aQVaoEC7+1MOBgNtvNg13+RnuUwT4F0zTovC0tmay5SmRslb29V1B7Y5KCri46WhuQ== + dependencies: + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + +"@ethersproject/sha2@5.6.0": + version "5.6.0" + resolved "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.6.0.tgz" + integrity sha512-1tNWCPFLu1n3JM9t4/kytz35DkuF9MxqkGGEHNauEbaARdm2fafnOyw1s0tIQDPKF/7bkP1u3dbrmjpn5CelyA== + dependencies: + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + hash.js "1.1.7" + +"@ethersproject/sha2@^5.5.0", "@ethersproject/sha2@^5.6.0", "@ethersproject/sha2@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.6.1.tgz" + integrity sha512-5K2GyqcW7G4Yo3uenHegbXRPDgARpWUiXc6RiF7b6i/HXUoWlb7uCARh7BAHg7/qT/Q5ydofNwiZcim9qpjB6g== + dependencies: + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + hash.js "1.1.7" + +"@ethersproject/signing-key@5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.6.1.tgz" + integrity sha512-XvqQ20DH0D+bS3qlrrgh+axRMth5kD1xuvqUQUTeezxUTXBOeR6hWz2/C6FBEu39FRytyybIWrYf7YLSAKr1LQ== + dependencies: + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + bn.js "^4.11.9" + elliptic "6.5.4" + hash.js "1.1.7" + +"@ethersproject/signing-key@^5.6.0", "@ethersproject/signing-key@^5.6.2": + version "5.6.2" + resolved "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.6.2.tgz" + integrity sha512-jVbu0RuP7EFpw82vHcL+GP35+KaNruVAZM90GxgQnGqB6crhBqW/ozBfFvdeImtmb4qPko0uxXjn8l9jpn0cwQ== + dependencies: + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + bn.js "^5.2.1" + elliptic "6.5.4" + hash.js "1.1.7" + +"@ethersproject/solidity@5.6.0": + version "5.6.0" + resolved "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.6.0.tgz" + integrity sha512-YwF52vTNd50kjDzqKaoNNbC/r9kMDPq3YzDWmsjFTRBcIF1y4JCQJ8gB30wsTfHbaxgxelI5BfxQSxD/PbJOww== + dependencies: + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/keccak256" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/sha2" "^5.6.0" + "@ethersproject/strings" "^5.6.0" + +"@ethersproject/strings@5.6.0": + version "5.6.0" + resolved "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.6.0.tgz" + integrity sha512-uv10vTtLTZqrJuqBZR862ZQjTIa724wGPWQqZrofaPI/kUsf53TBG0I0D+hQ1qyNtllbNzaW+PDPHHUI6/65Mg== + dependencies: + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/constants" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + +"@ethersproject/strings@^5.6.0", "@ethersproject/strings@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.6.1.tgz" + integrity sha512-2X1Lgk6Jyfg26MUnsHiT456U9ijxKUybz8IM1Vih+NJxYtXhmvKBcHOmvGqpFSVJ0nQ4ZCoIViR8XlRw1v/+Cw== + dependencies: + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/constants" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + +"@ethersproject/transactions@5.6.0": + version "5.6.0" + resolved "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.6.0.tgz" + integrity sha512-4HX+VOhNjXHZyGzER6E/LVI2i6lf9ejYeWD6l4g50AdmimyuStKc39kvKf1bXWQMg7QNVh+uC7dYwtaZ02IXeg== + dependencies: + "@ethersproject/address" "^5.6.0" + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/constants" "^5.6.0" + "@ethersproject/keccak256" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/rlp" "^5.6.0" + "@ethersproject/signing-key" "^5.6.0" + +"@ethersproject/transactions@^5.6.0", "@ethersproject/transactions@^5.6.2": + version "5.6.2" + resolved "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.6.2.tgz" + integrity sha512-BuV63IRPHmJvthNkkt9G70Ullx6AcM+SDc+a8Aw/8Yew6YwT51TcBKEp1P4oOQ/bP25I18JJr7rcFRgFtU9B2Q== + dependencies: + "@ethersproject/address" "^5.6.1" + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/constants" "^5.6.1" + "@ethersproject/keccak256" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/rlp" "^5.6.1" + "@ethersproject/signing-key" "^5.6.2" + +"@ethersproject/units@5.6.0": + version "5.6.0" + resolved "https://registry.npmjs.org/@ethersproject/units/-/units-5.6.0.tgz" + integrity sha512-tig9x0Qmh8qbo1w8/6tmtyrm/QQRviBh389EQ+d8fP4wDsBrJBf08oZfoiz1/uenKK9M78yAP4PoR7SsVoTjsw== + dependencies: + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/constants" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + +"@ethersproject/wallet@5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.6.1.tgz" + integrity sha512-oXWoOslEWtwZiViIMlGVjeKDQz/tI7JF9UkyzN9jaGj8z7sXt2SyFMb0Ev6vSAqjIzrCrNrJ/+MkAhtKnGOfZw== + dependencies: + "@ethersproject/abstract-provider" "^5.6.0" + "@ethersproject/abstract-signer" "^5.6.0" + "@ethersproject/address" "^5.6.0" + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/hash" "^5.6.0" + "@ethersproject/hdnode" "^5.6.0" + "@ethersproject/json-wallets" "^5.6.0" + "@ethersproject/keccak256" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/random" "^5.6.0" + "@ethersproject/signing-key" "^5.6.0" + "@ethersproject/transactions" "^5.6.0" + "@ethersproject/wordlists" "^5.6.0" + +"@ethersproject/web@5.6.0": + version "5.6.0" + resolved "https://registry.npmjs.org/@ethersproject/web/-/web-5.6.0.tgz" + integrity sha512-G/XHj0hV1FxI2teHRfCGvfBUHFmU+YOSbCxlAMqJklxSa7QMiHFQfAxvwY2PFqgvdkxEKwRNr/eCjfAPEm2Ctg== + dependencies: + "@ethersproject/base64" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/strings" "^5.6.0" + +"@ethersproject/web@^5.6.0", "@ethersproject/web@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/web/-/web-5.6.1.tgz" + integrity sha512-/vSyzaQlNXkO1WV+RneYKqCJwualcUdx/Z3gseVovZP0wIlOFcCE1hkRhKBH8ImKbGQbMl9EAAyJFrJu7V0aqA== + dependencies: + "@ethersproject/base64" "^5.6.1" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/strings" "^5.6.1" + +"@ethersproject/wordlists@5.6.0": + version "5.6.0" + resolved "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.6.0.tgz" + integrity sha512-q0bxNBfIX3fUuAo9OmjlEYxP40IB8ABgb7HjEZCL5IKubzV3j30CWi2rqQbjTS2HfoyQbfINoKcTVWP4ejwR7Q== + dependencies: + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/hash" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/strings" "^5.6.0" + +"@ethersproject/wordlists@^5.6.0", "@ethersproject/wordlists@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.6.1.tgz" + integrity sha512-wiPRgBpNbNwCQFoCr8bcWO8o5I810cqO6mkdtKfLKFlLxeCWcnzDi4Alu8iyNzlhYuS9npCwivMbRWF19dyblw== + dependencies: + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/hash" "^5.6.1" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/strings" "^5.6.1" + +"@formatjs/ecma402-abstract@1.11.4": + version "1.11.4" + resolved "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz" + integrity sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw== + dependencies: + "@formatjs/intl-localematcher" "0.2.25" + tslib "^2.1.0" + +"@formatjs/fast-memoize@1.2.1": + version "1.2.1" + resolved "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-1.2.1.tgz" + integrity sha512-Rg0e76nomkz3vF9IPlKeV+Qynok0r7YZjL6syLz4/urSg0IbjPZCB/iYUMNsYA643gh4mgrX3T7KEIFIxJBQeg== + dependencies: + tslib "^2.1.0" + +"@formatjs/icu-messageformat-parser@2.1.0": + version "2.1.0" + resolved "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.0.tgz" + integrity sha512-Qxv/lmCN6hKpBSss2uQ8IROVnta2r9jd3ymUEIjm2UyIkUCHVcbUVRGL/KS/wv7876edvsPe+hjHVJ4z8YuVaw== + dependencies: + "@formatjs/ecma402-abstract" "1.11.4" + "@formatjs/icu-skeleton-parser" "1.3.6" + tslib "^2.1.0" + +"@formatjs/icu-skeleton-parser@1.3.6": + version "1.3.6" + resolved "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.6.tgz" + integrity sha512-I96mOxvml/YLrwU2Txnd4klA7V8fRhb6JG/4hm3VMNmeJo1F03IpV2L3wWt7EweqNLES59SZ4d6hVOPCSf80Bg== + dependencies: + "@formatjs/ecma402-abstract" "1.11.4" + tslib "^2.1.0" + +"@formatjs/intl-localematcher@0.2.25": + version "0.2.25" + resolved "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.2.25.tgz" + integrity sha512-YmLcX70BxoSopLFdLr1Ds99NdlTI2oWoLbaUW2M406lxOIPzE1KQhRz2fPUkq34xVZQaihCoU29h0KK7An3bhA== + dependencies: + tslib "^2.1.0" + +"@hapi/bourne@^2.0.0": + version "2.1.0" + resolved "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.1.0.tgz" + integrity sha512-i1BpaNDVLJdRBEKeJWkVO6tYX6DMFBuwMhSuWqLsY4ufeTKGVuV5rBsUhxPayXqnnWHgXUAmWK16H/ykO5Wj4Q== + +"@humanwhocodes/config-array@^0.9.2": + version "0.9.5" + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz" + integrity sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw== + dependencies: + "@humanwhocodes/object-schema" "^1.2.1" + debug "^4.1.1" + minimatch "^3.0.4" + +"@humanwhocodes/object-schema@^1.2.1": + version "1.2.1" + resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== + +"@internationalized/date@3.0.0-alpha.3": + version "3.0.0-alpha.3" + resolved "https://registry.npmjs.org/@internationalized/date/-/date-3.0.0-alpha.3.tgz" + integrity sha512-lfUzsXEXNLSR5zmBlwBlNcawrJ8V+u9+JCyoTX76KAEuiHlKtk5wE7S0fMf1WllFHWdrENqy7LbN00FC3HhADQ== + dependencies: + "@babel/runtime" "^7.6.2" + +"@internationalized/date@3.0.0-rc.0": + version "3.0.0-rc.0" + resolved "https://registry.npmjs.org/@internationalized/date/-/date-3.0.0-rc.0.tgz" + integrity sha512-R8ui3O2G43fZ/z5cBdJuU6nswKtuVrKloDE6utvqKEeGf6igFoiapcjg7jbQ+WvWIDGtdUytOp2fOq/X4efBdQ== + dependencies: + "@babel/runtime" "^7.6.2" + +"@internationalized/message@^3.0.5", "@internationalized/message@^3.0.6": + version "3.0.6" + resolved "https://registry.npmjs.org/@internationalized/message/-/message-3.0.6.tgz" + integrity sha512-ECk3toFy87I2z5zipRNwdbouvRlIyMKb/FzKj1upMaNS52AKhpvrLgo3CY/ZXQKm4CRIbeh6p/F/Ztt+enhIEA== + dependencies: + "@babel/runtime" "^7.6.2" + intl-messageformat "^9.12.0" + +"@internationalized/number@^3.0.5", "@internationalized/number@^3.1.0": + version "3.1.0" + resolved "https://registry.npmjs.org/@internationalized/number/-/number-3.1.0.tgz" + integrity sha512-CEts+2rIB4QveKeeF6xIHdn8aLVvUt5aiarkpCZgtMyYqfqo/ZBELf2UyhvLPGpRxcF24ClCISMTP9BTVreSAg== + dependencies: + "@babel/runtime" "^7.6.2" + +"@jridgewell/gen-mapping@^0.3.0": + version "0.3.1" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz" + integrity sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg== + dependencies: + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@^3.0.3": + version "3.0.7" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz" + integrity sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA== + +"@jridgewell/set-array@^1.0.0": + version "1.1.1" + resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz" + integrity sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.13" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz" + integrity sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w== + +"@jridgewell/trace-mapping@^0.3.9": + version "0.3.13" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz" + integrity sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@json-rpc-tools/types@^1.7.6": + version "1.7.6" + resolved "https://registry.npmjs.org/@json-rpc-tools/types/-/types-1.7.6.tgz" + integrity sha512-nDSqmyRNEqEK9TZHtM15uNnDljczhCUdBmRhpNZ95bIPKEDQ+nTDmGMFd2lLin3upc5h2VVVd9tkTDdbXUhDIQ== + dependencies: + keyvaluestorage-interface "^1.0.0" + +"@json-rpc-tools/utils@1.7.6": + version "1.7.6" + resolved "https://registry.npmjs.org/@json-rpc-tools/utils/-/utils-1.7.6.tgz" + integrity sha512-HjA8x/U/Q78HRRe19yh8HVKoZ+Iaoo3YZjakJYxR+rw52NHo6jM+VE9b8+7ygkCFXl/EHID5wh/MkXaE/jGyYw== + dependencies: + "@json-rpc-tools/types" "^1.7.6" + "@pedrouid/environment" "^1.0.1" + +"@next/env@12.1.5": + version "12.1.5" + resolved "https://registry.npmjs.org/@next/env/-/env-12.1.5.tgz" + integrity sha512-+34yUJslfJi7Lyx6ELuN8nWcOzi27izfYnZIC1Dqv7kmmfiBVxgzR3BXhlvEMTKC2IRJhXVs2FkMY+buQe3k7Q== + +"@next/eslint-plugin-next@12.1.6": + version "12.1.6" + resolved "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-12.1.6.tgz" + integrity sha512-yNUtJ90NEiYFT6TJnNyofKMPYqirKDwpahcbxBgSIuABwYOdkGwzos1ZkYD51Qf0diYwpQZBeVqElTk7Q2WNqw== + dependencies: + glob "7.1.7" + +"@next/swc-android-arm-eabi@12.1.5": + version "12.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.1.5.tgz#36729ab3dfd7743e82cfe536b43254dcb146620c" + integrity sha512-SKnGTdYcoN04Y2DvE0/Y7/MjkA+ltsmbuH/y/hR7Ob7tsj+8ZdOYuk+YvW1B8dY20nDPHP58XgDTSm2nA8BzzA== + +"@next/swc-android-arm64@12.1.5": + version "12.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-12.1.5.tgz#52578f552305c92d0b9b81d603c9643fb71e0835" + integrity sha512-YXiqgQ/9Rxg1dXp6brXbeQM1JDx9SwUY/36JiE+36FXqYEmDYbxld9qkX6GEzkc5rbwJ+RCitargnzEtwGW0mw== + +"@next/swc-darwin-arm64@12.1.5": + version "12.1.5" + resolved "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.1.5.tgz" + integrity sha512-y8mhldb/WFZ6lFeowkGfi0cO/lBdiBqDk4T4LZLvCpoQp4Or/NzUN6P5NzBQZ5/b4oUHM/wQICEM+1wKA4qIVw== + +"@next/swc-darwin-x64@12.1.5": + version "12.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-12.1.5.tgz#adcabb732d226453777c0d37d58eaff9328b66fd" + integrity sha512-wqJ3X7WQdTwSGi0kIDEmzw34QHISRIQ5uvC+VXmsIlCPFcMA+zM5723uh8NfuKGquDMiEMS31a83QgkuHMYbwQ== + +"@next/swc-linux-arm-gnueabihf@12.1.5": + version "12.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.1.5.tgz#82a7cde67482b756bc65fbebf1dfa8a782074e93" + integrity sha512-WnhdM5duONMvt2CncAl+9pim0wBxDS2lHoo7ub/o/i1bRbs11UTzosKzEXVaTDCUkCX2c32lIDi1WcN2ZPkcdw== + +"@next/swc-linux-arm64-gnu@12.1.5": + version "12.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.1.5.tgz#f82ca014504950aab751e81f467492e9be0bad5d" + integrity sha512-Jq2H68yQ4bLUhR/XQnbw3LDW0GMQn355qx6rU36BthDLeGue7YV7MqNPa8GKvrpPocEMW77nWx/1yI6w6J07gw== + +"@next/swc-linux-arm64-musl@12.1.5": + version "12.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.1.5.tgz#f811ec9f4b12a978426c284c95ab2f515ddf7f9e" + integrity sha512-KgPjwdbhDqXI7ghNN8V/WAiLquc9Ebe8KBrNNEL0NQr+yd9CyKJ6KqjayVkmX+hbHzbyvbui/5wh/p3CZQ9xcQ== + +"@next/swc-linux-x64-gnu@12.1.5": + version "12.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.1.5.tgz#d44857257e6d20dc841998951d584ab1f25772c3" + integrity sha512-O2ErUTvCJ6DkNTSr9pbu1n3tcqykqE/ebty1rwClzIYdOgpB3T2MfEPP+K7GhUR87wmN/hlihO9ch7qpVFDGKw== + +"@next/swc-linux-x64-musl@12.1.5": + version "12.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.1.5.tgz#3cc523abadc9a2a6de680593aff06e71cc29ecef" + integrity sha512-1eIlZmlO/VRjxxzUBcVosf54AFU3ltAzHi+BJA+9U/lPxCYIsT+R4uO3QksRzRjKWhVQMRjEnlXyyq5SKJm7BA== + +"@next/swc-win32-arm64-msvc@12.1.5": + version "12.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.1.5.tgz#c62232d869f1f9b22e8f24e4e7f05307c20f30ca" + integrity sha512-oromsfokbEuVb0CBLLE7R9qX3KGXucZpsojLpzUh1QJjuy1QkrPJncwr8xmWQnwgtQ6ecMWXgXPB+qtvizT9Tw== + +"@next/swc-win32-ia32-msvc@12.1.5": + version "12.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.1.5.tgz#2bd9b28a9ba730d12a493e7d9d18e150fe89d496" + integrity sha512-a/51L5KzBpeZSW9LbekMo3I3Cwul+V+QKwbEIMA+Qwb2qrlcn1L9h3lt8cHqNTFt2y72ce6aTwDTw1lyi5oIRA== + +"@next/swc-win32-x64-msvc@12.1.5": + version "12.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.1.5.tgz#02f377e4d41eaaacf265e34bab9bacd8efc4a351" + integrity sha512-/SoXW1Ntpmpw3AXAzfDRaQidnd8kbZ2oSni8u5z0yw6t4RwJvmdZy1eOaAADRThWKV+2oU90++LSnXJIwBRWYQ== + +"@nextui-org/react@1.0.8-beta.5": + version "1.0.8-beta.5" + resolved "https://registry.npmjs.org/@nextui-org/react/-/react-1.0.8-beta.5.tgz" + integrity sha512-rLM3PPuo0bNSp+WpawDUGRsa4FQTPuYwLEa6v9jSYzJMbSPr265LCOopn+h9o95CAFBJ48C1laSnnJ4SEEE0DQ== + dependencies: + "@babel/runtime" "7.9.6" + "@react-aria/button" "3.4.3" + "@react-aria/checkbox" "3.3.0" + "@react-aria/focus" "3.5.1" + "@react-aria/i18n" "3.3.6" + "@react-aria/interactions" "3.8.0" + "@react-aria/label" "3.2.2" + "@react-aria/ssr" "3.1.2" + "@react-aria/table" "3.2.1" + "@react-aria/utils" "3.11.1" + "@react-aria/visually-hidden" "3.2.4" + "@react-stately/checkbox" "3.0.6" + "@react-stately/data" "3.4.5" + "@react-stately/table" "3.1.1" + "@react-stately/toggle" "3.2.4" + "@react-types/button" "^3.4.4" + "@react-types/checkbox" "3.2.6" + "@react-types/grid" "3.0.1" + "@react-types/shared" "3.11.0" + "@stitches/react" "1.2.7" + +"@noble/hashes@^1": + version "1.0.0" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.0.0.tgz" + integrity sha512-DZVbtY62kc3kkBtMHqwCOfXrT/hnoORy5BJ4+HU1IR59X0KWAOqsfzQPcUl/lQLlG7qXbe/fZ3r/emxtAl+sqg== + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@pedrouid/environment@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@pedrouid/environment/-/environment-1.0.1.tgz" + integrity sha512-HaW78NszGzRZd9SeoI3JD11JqY+lubnaOx7Pewj5pfjqWXOEATpeKIFb9Z4t2WBUK2iryiXX3lzWwmYWgUL0Ug== + +"@pedrouid/iso-random@^1.1.0": + version "1.2.1" + resolved "https://registry.npmjs.org/@pedrouid/iso-random/-/iso-random-1.2.1.tgz" + integrity sha512-C35NqYMmLsg61WDiEup4OwjRhgfZIcK4BL+Qg49xowHUJ+f7/LFZCO+TGuQqoXFAj1beKIOpUN33f0fqV7zneQ== + dependencies: + "@pedrouid/environment" "^1.0.1" + enc-utils "^3.0.0" + randombytes "^2.1.0" + +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz" + integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz" + integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz" + integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz" + integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz" + integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz" + integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz" + integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz" + integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== + +"@react-aria/button@3.4.3": + version "3.4.3" + resolved "https://registry.npmjs.org/@react-aria/button/-/button-3.4.3.tgz" + integrity sha512-OMUuMu9UrBPv89DtAytRKDjD1YYkBY+Q2BCDs0OkRC1wjuWagCXji/f7ro7p6BSccIDRBdE6Lsi9OZmSJeTcqw== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/focus" "^3.5.4" + "@react-aria/interactions" "^3.8.3" + "@react-aria/utils" "^3.11.3" + "@react-stately/toggle" "^3.2.6" + "@react-types/button" "^3.4.4" + +"@react-aria/checkbox@3.3.0": + version "3.3.0" + resolved "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.3.0.tgz" + integrity sha512-0PVUYoflY4iVnFkn/fFKUDZSluNCZ8wO4M2bXhklbc7LneOw6uZbx9DkRrbk1bqLFLlJzoTAXmy1eXtNASZ9Gg== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/label" "^3.2.2" + "@react-aria/toggle" "^3.2.0" + "@react-aria/utils" "^3.11.1" + "@react-stately/checkbox" "^3.0.4" + "@react-stately/toggle" "^3.2.4" + "@react-types/checkbox" "^3.2.4" + +"@react-aria/focus@3.5.1": + version "3.5.1" + resolved "https://registry.npmjs.org/@react-aria/focus/-/focus-3.5.1.tgz" + integrity sha512-8TTlxekumLxFZo0GELVUDCv6olQTMlGtobeGNaf0MVoonGz5oukjjPa3DB+PZRxMduTotRlniqpejnZi4fzMDw== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/interactions" "^3.8.0" + "@react-aria/utils" "^3.11.1" + "@react-types/shared" "^3.11.0" + clsx "^1.1.1" + +"@react-aria/focus@^3.5.1", "@react-aria/focus@^3.5.4", "@react-aria/focus@^3.5.5": + version "3.5.5" + resolved "https://registry.npmjs.org/@react-aria/focus/-/focus-3.5.5.tgz" + integrity sha512-scv+jhbQ25JCh36gu8a++edvdEFdlRScdQdnkJOB4NbHbYYfY36APtI70hgQHdfq9dDl5fJ9LMsH9hoF7X3gLw== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/interactions" "^3.8.4" + "@react-aria/utils" "^3.12.0" + "@react-types/shared" "^3.12.0" + clsx "^1.1.1" + +"@react-aria/grid@^3.2.1": + version "3.2.6" + resolved "https://registry.npmjs.org/@react-aria/grid/-/grid-3.2.6.tgz" + integrity sha512-hNQHJkedMMAj+XmqbFW97Nybe5nEh+mRWB5SD7yuIvBLOFxnWid2BUF6zRA6nkZpfsPPTY1YHefgCGzQTFxbNQ== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/focus" "^3.5.5" + "@react-aria/i18n" "^3.3.9" + "@react-aria/interactions" "^3.8.4" + "@react-aria/live-announcer" "^3.0.6" + "@react-aria/selection" "^3.8.2" + "@react-aria/utils" "^3.12.0" + "@react-stately/grid" "^3.1.4" + "@react-stately/selection" "^3.9.4" + "@react-stately/virtualizer" "^3.1.9" + "@react-types/checkbox" "^3.2.7" + "@react-types/grid" "^3.0.4" + "@react-types/shared" "^3.12.0" + +"@react-aria/i18n@3.3.6": + version "3.3.6" + resolved "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.3.6.tgz" + integrity sha512-GOogCx5UR3RpkJSceQwwenLctaK7tbDP0DKzmaWQv1ZNUg9nr35w65VMq46WIGz2dIQhqydTagZP1Exci1KhkQ== + dependencies: + "@babel/runtime" "^7.6.2" + "@internationalized/date" "3.0.0-alpha.3" + "@internationalized/message" "^3.0.5" + "@internationalized/number" "^3.0.5" + "@react-aria/ssr" "^3.1.2" + "@react-aria/utils" "^3.11.2" + "@react-types/shared" "^3.11.1" + +"@react-aria/i18n@^3.3.5", "@react-aria/i18n@^3.3.9": + version "3.3.9" + resolved "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.3.9.tgz" + integrity sha512-EOqiOu84NYH/CW0s/tt3yDqDsjHlrHdi5qzrOGpGN/BvxtA/4UkMBdi8TTKXdRk8oHUIdNW1z5mZxzxkLDy1sA== + dependencies: + "@babel/runtime" "^7.6.2" + "@internationalized/date" "3.0.0-rc.0" + "@internationalized/message" "^3.0.6" + "@internationalized/number" "^3.1.0" + "@react-aria/ssr" "^3.1.2" + "@react-aria/utils" "^3.12.0" + "@react-types/shared" "^3.12.0" + +"@react-aria/interactions@3.8.0": + version "3.8.0" + resolved "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.8.0.tgz" + integrity sha512-2NPyk9JM/Obd49+xm9pnSq8dGbe9t1YtQDZprOs/2hyyP6kZEfvQX1NruXcC+SuAMUPwI4R2eiCgLuMfkeUYrA== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/utils" "^3.11.1" + "@react-types/shared" "^3.11.0" + +"@react-aria/interactions@^3.8.0", "@react-aria/interactions@^3.8.3", "@react-aria/interactions@^3.8.4": + version "3.8.4" + resolved "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.8.4.tgz" + integrity sha512-6EHFKK8pmjSJSKcBbduijPETKqE669XZ1VaEY8ubr6VnlVhCszvKHoxpU384CkNiDNLJOVkK6HDzPXsn3lxhng== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/utils" "^3.12.0" + "@react-types/shared" "^3.12.0" + +"@react-aria/label@3.2.2": + version "3.2.2" + resolved "https://registry.npmjs.org/@react-aria/label/-/label-3.2.2.tgz" + integrity sha512-boOXJJGp2+Rqmvqwj/ElfVGsK37/rLUcTZ9fzvN261TAj5mk8QITQ0ii9t6ueNJuuTVDucvOO6NtDhgWRYc4+A== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/utils" "^3.11.1" + "@react-types/label" "^3.5.1" + "@react-types/shared" "^3.11.0" + +"@react-aria/label@^3.2.2": + version "3.2.5" + resolved "https://registry.npmjs.org/@react-aria/label/-/label-3.2.5.tgz" + integrity sha512-MkcPa7Ps/BsWTctH7IgVWtYENwrByfYMPmYdZCgotI0MiI6wK4LWwRaUQmfc7mWwJ7ns2NPyBRwrzJT4+RRbew== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/utils" "^3.12.0" + "@react-types/label" "^3.5.4" + "@react-types/shared" "^3.12.0" + +"@react-aria/live-announcer@^3.0.2", "@react-aria/live-announcer@^3.0.6": + version "3.0.6" + resolved "https://registry.npmjs.org/@react-aria/live-announcer/-/live-announcer-3.0.6.tgz" + integrity sha512-dXd5knYAFQPNr4ApxGwHXIDBuO50d9koat1ViFI22yS1QJF3y1dcIkBHfiAWIUtGr8AbRbWDZZnHtKrfPl25Zg== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/utils" "^3.12.0" + "@react-aria/visually-hidden" "^3.2.8" + +"@react-aria/selection@^3.7.2", "@react-aria/selection@^3.8.2": + version "3.8.2" + resolved "https://registry.npmjs.org/@react-aria/selection/-/selection-3.8.2.tgz" + integrity sha512-sBkSza8kT06tUKzIX68H2k+svYNCBOwhHmU0gbx164CmitCLk/akDGIds3LeoA9FhFFXw6/5CuLp6SNhmqlLWw== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/focus" "^3.5.5" + "@react-aria/i18n" "^3.3.9" + "@react-aria/interactions" "^3.8.4" + "@react-aria/utils" "^3.12.0" + "@react-stately/collections" "^3.3.8" + "@react-stately/selection" "^3.9.4" + "@react-types/shared" "^3.12.0" + +"@react-aria/ssr@3.1.2", "@react-aria/ssr@^3.1.1", "@react-aria/ssr@^3.1.2": + version "3.1.2" + resolved "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.1.2.tgz" + integrity sha512-amXY11ImpokvkTMeKRHjsSsG7v1yzzs6yeqArCyBIk60J3Yhgxwx9Cah+Uu/804ATFwqzN22AXIo7SdtIaMP+g== + dependencies: + "@babel/runtime" "^7.6.2" + +"@react-aria/table@3.2.1": + version "3.2.1" + resolved "https://registry.npmjs.org/@react-aria/table/-/table-3.2.1.tgz" + integrity sha512-wFWpgMGzF8fcsYfl6etbAv8V7minb1AnF/vnOZrmHwqec+/QpxMm8B4ZIUH8JqNR9bAo9Rt+HF+8xsbOjZHj2g== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/focus" "^3.5.1" + "@react-aria/grid" "^3.2.1" + "@react-aria/i18n" "^3.3.5" + "@react-aria/interactions" "^3.8.0" + "@react-aria/live-announcer" "^3.0.2" + "@react-aria/selection" "^3.7.2" + "@react-aria/utils" "^3.11.1" + "@react-stately/table" "^3.1.1" + "@react-stately/virtualizer" "3.1.7-alpha.0" + "@react-types/checkbox" "^3.2.4" + "@react-types/grid" "^3.0.1" + "@react-types/shared" "^3.11.0" + "@react-types/table" "^3.1.1" + +"@react-aria/toggle@^3.2.0": + version "3.2.4" + resolved "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.2.4.tgz" + integrity sha512-q1NiUKkWt9trgVj/VvKrTpe/tvNcsM9ie5JJVxikF4moPCyIqxRWaDzi2/g/63c1I6LZDMVT4v6V5tk9xgfuiQ== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/focus" "^3.5.5" + "@react-aria/interactions" "^3.8.4" + "@react-aria/utils" "^3.12.0" + "@react-stately/toggle" "^3.2.7" + "@react-types/checkbox" "^3.2.7" + "@react-types/shared" "^3.12.0" + "@react-types/switch" "^3.1.6" + +"@react-aria/utils@3.11.1": + version "3.11.1" + resolved "https://registry.npmjs.org/@react-aria/utils/-/utils-3.11.1.tgz" + integrity sha512-sD/9EVinZIvuvzAjJMs2YYOz74DELolU0pDBHWuFAAOffJw9gBy8X/HxkmG91X4gwxRzy9jlJAFEEChoqtmHFA== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/ssr" "^3.1.1" + "@react-stately/utils" "^3.4.0" + "@react-types/shared" "^3.11.0" + clsx "^1.1.1" + +"@react-aria/utils@^3.11.1", "@react-aria/utils@^3.11.2", "@react-aria/utils@^3.11.3", "@react-aria/utils@^3.12.0": + version "3.12.0" + resolved "https://registry.npmjs.org/@react-aria/utils/-/utils-3.12.0.tgz" + integrity sha512-1TMrE7UpgTgQHgW3z0r6Zo4CTUDwNsZEwzg+mQVub8ZalonhuNs5OrulUn+lRIsGELNktGNkeh/29WsS1Od8eg== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/ssr" "^3.1.2" + "@react-stately/utils" "^3.4.1" + "@react-types/shared" "^3.12.0" + clsx "^1.1.1" + +"@react-aria/visually-hidden@3.2.4": + version "3.2.4" + resolved "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.2.4.tgz" + integrity sha512-o1ToUW+/kQ8+PWOuEFxW77eT9ZhLjws+Ynik1ew4ocgJGQyPpFQ0P2riM9idopXOzLmuUyHeBMGPN1JnTwQ4ZQ== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/interactions" "^3.8.0" + "@react-aria/utils" "^3.11.1" + clsx "^1.1.1" + +"@react-aria/visually-hidden@^3.2.8": + version "3.2.8" + resolved "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.2.8.tgz" + integrity sha512-SLBID66sUZrCdxaxLhgxypF/UyGuFVFGc+VhqmFi9QacDfAQcoT3DQyXEaKUIDMVtwAtSuWl7BpuooEctKBe6Q== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/interactions" "^3.8.4" + "@react-aria/utils" "^3.12.0" + clsx "^1.1.1" + +"@react-stately/checkbox@3.0.6": + version "3.0.6" + resolved "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.0.6.tgz" + integrity sha512-RrXJlEtp2q3g6Yex9QI8/tRJhIDmG1oKc5+VyVvdxp0NXtK0Zz+ycIlXuzcI5gwlBemv5ETxbIG4p5gdNXVeKA== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/toggle" "^3.2.6" + "@react-stately/utils" "^3.4.1" + "@react-types/checkbox" "^3.2.6" + +"@react-stately/checkbox@^3.0.4": + version "3.0.7" + resolved "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.0.7.tgz" + integrity sha512-dBY4x3qWoCO2IFeTVovnq6xkWa9ycqdNNws+gbYt79EwFdKSIfH1iTuFrv9DIwTU2N72quFCC/xQ23+a1/ZqSg== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/toggle" "^3.2.7" + "@react-stately/utils" "^3.4.1" + "@react-types/checkbox" "^3.2.7" + +"@react-stately/collections@^3.3.5", "@react-stately/collections@^3.3.7", "@react-stately/collections@^3.3.8": + version "3.3.8" + resolved "https://registry.npmjs.org/@react-stately/collections/-/collections-3.3.8.tgz" + integrity sha512-R4RXLc0aaCZaCTh3NT/lmpMtVqP3HIdi2d1kyq4/uIC8APUFzEoUMEV+P0k3nQ5v6mO/UCkP3ePdOywnJBm/Gg== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-types/shared" "^3.12.0" + +"@react-stately/data@3.4.5": + version "3.4.5" + resolved "https://registry.npmjs.org/@react-stately/data/-/data-3.4.5.tgz" + integrity sha512-IbAuoG6iuO52eKLhB7lvo3i7nAk76i8Q8eqkAkyx2w6Yi68cruUyQ2kmx/FoNyCSfKyGCGT8VOSSYBR3mxjpvw== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-types/shared" "^3.11.1" + +"@react-stately/grid@^3.1.1", "@react-stately/grid@^3.1.3", "@react-stately/grid@^3.1.4": + version "3.1.4" + resolved "https://registry.npmjs.org/@react-stately/grid/-/grid-3.1.4.tgz" + integrity sha512-f0BjDSGcPFHI7x6PmLwfMMhFj1ttKD3QKZgTrSIhmPnZqY/LEk1XFq8RFdnk5bNmt4JwiEDbytS7W4HbSTIe3g== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/selection" "^3.9.4" + "@react-types/grid" "^3.0.4" + "@react-types/shared" "^3.12.0" + +"@react-stately/selection@^3.9.1", "@react-stately/selection@^3.9.3", "@react-stately/selection@^3.9.4": + version "3.9.4" + resolved "https://registry.npmjs.org/@react-stately/selection/-/selection-3.9.4.tgz" + integrity sha512-hgJ4raHFQMfQ1aQYgL+nRpQgA7GdPDh9esIeB8Ih+yS783cV4vyyqKxuLd2u9W4cilnEkgXjrI5Z21RU86jzEg== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/collections" "^3.3.8" + "@react-stately/utils" "^3.4.1" + "@react-types/shared" "^3.12.0" + +"@react-stately/table@3.1.1": + version "3.1.1" + resolved "https://registry.npmjs.org/@react-stately/table/-/table-3.1.1.tgz" + integrity sha512-4sLTv88xd/sM4utcbCB/WS9LawblzLWThOuKKMxllkR/QrMQklH9FLiLVs20doSVN/CdNvER5IFkl0+NNFYMjg== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/collections" "^3.3.5" + "@react-stately/grid" "^3.1.1" + "@react-stately/selection" "^3.9.1" + "@react-types/grid" "^3.0.1" + "@react-types/shared" "^3.11.0" + "@react-types/table" "^3.1.1" + +"@react-stately/table@^3.1.1": + version "3.1.3" + resolved "https://registry.npmjs.org/@react-stately/table/-/table-3.1.3.tgz" + integrity sha512-HSsamFabtCSHib4A5rxXBtfKPd0InXjXSoaxUNi6RLOyptULMA06q1ShbWDEijTYGQI5Pfevs/5bgLonj0enbg== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/collections" "^3.3.7" + "@react-stately/grid" "^3.1.3" + "@react-stately/selection" "^3.9.3" + "@react-types/grid" "^3.0.3" + "@react-types/shared" "^3.11.2" + "@react-types/table" "^3.1.3" + +"@react-stately/toggle@3.2.4": + version "3.2.4" + resolved "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.2.4.tgz" + integrity sha512-WMyrs20vBPIkaP0PFjWQiZSaZoWQDNvtbCVAf6UH/0MTPMqJDR+r4dH8q9C+aOqM4UHiR3wQa2JjiwAxj5rSXQ== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/utils" "^3.4.0" + "@react-types/checkbox" "^3.2.4" + "@react-types/shared" "^3.11.0" + +"@react-stately/toggle@^3.2.4", "@react-stately/toggle@^3.2.6", "@react-stately/toggle@^3.2.7": + version "3.2.7" + resolved "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.2.7.tgz" + integrity sha512-McKc2wIp1z7Dw6EqQgOgjr2QnKR+LWXppZjdx30K4hnCiP6cXZp66DmR2ngekPrtOYDN6Xdqbty/Ez7kiJxmnQ== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/utils" "^3.4.1" + "@react-types/checkbox" "^3.2.7" + "@react-types/shared" "^3.12.0" + +"@react-stately/utils@^3.4.0", "@react-stately/utils@^3.4.1": + version "3.4.1" + resolved "https://registry.npmjs.org/@react-stately/utils/-/utils-3.4.1.tgz" + integrity sha512-mjFbKklj/W8KRw1CQSpUJxHd7lhUge4i00NwJTwGxbzmiJgsTWlKKS/1rBf48ey9hUBopXT5x5vG/AxQfWTQug== + dependencies: + "@babel/runtime" "^7.6.2" + +"@react-stately/virtualizer@3.1.7-alpha.0": + version "3.1.7-alpha.0" + resolved "https://registry.npmjs.org/@react-stately/virtualizer/-/virtualizer-3.1.7-alpha.0.tgz" + integrity sha512-0M7HUIJclA20wAdHslMlSrzsyI5TidZXBNVj8xz49CUAwIl+MHp4vCY+IsitnFvtvB0dSvax9XfD9Rnr23Tzlw== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/utils" "^3.11.1" + "@react-types/shared" "^3.11.0" + +"@react-stately/virtualizer@^3.1.9": + version "3.1.9" + resolved "https://registry.npmjs.org/@react-stately/virtualizer/-/virtualizer-3.1.9.tgz" + integrity sha512-to0CQU4l08ZI/Ar3h/BeDqFTjK0nJUfhdk8mTpP+bV0RGBQnDwqCnrLFdQCc3Xl8fbYWa+Y6pvSUqJ0rq6Bp7Q== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/utils" "^3.12.0" + "@react-types/shared" "^3.12.0" + +"@react-types/button@^3.4.4": + version "3.4.5" + resolved "https://registry.npmjs.org/@react-types/button/-/button-3.4.5.tgz" + integrity sha512-wqOw3LvqFRJl6lDhije7koTINWBv+LRBKAlGOri2ddw3VDqvm0/zu2ENDIP/XX0FtUzuffoc1U5YgxmBlXd7gQ== + dependencies: + "@react-types/shared" "^3.12.0" + +"@react-types/checkbox@3.2.6": + version "3.2.6" + resolved "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.2.6.tgz" + integrity sha512-bOQAnnDEpXL1P4oRBiwjnOskKQtawc+JcRZzQk/9k7NwKWfv5MHG/MFDJsW057GPm9Ks0onNATohtw6LFvzAQA== + dependencies: + "@react-types/shared" "^3.11.2" + +"@react-types/checkbox@^3.2.4", "@react-types/checkbox@^3.2.6", "@react-types/checkbox@^3.2.7": + version "3.2.7" + resolved "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.2.7.tgz" + integrity sha512-c/hJwVRr7JoakyU39hUQstCc/0uPPvE+Eie8SspV2u9umSs7dYiUBc7F2wpboWIdNkQUEHG/Uq/Vs6/hk+yrkg== + dependencies: + "@react-types/shared" "^3.12.0" + +"@react-types/grid@3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@react-types/grid/-/grid-3.0.1.tgz" + integrity sha512-D5pEItMhT3Khz9xDdkC5hi6gAKVjjuSSCD8VxzDxd885Kk1xWJZjsYPCDKNFaifmt7LZEXo4JiAMg2M2WRqiQA== + dependencies: + "@react-types/shared" "^3.11.0" + +"@react-types/grid@^3.0.1", "@react-types/grid@^3.0.3", "@react-types/grid@^3.0.4": + version "3.0.4" + resolved "https://registry.npmjs.org/@react-types/grid/-/grid-3.0.4.tgz" + integrity sha512-Ot6V/2PajcqBq2GH/YrsuiA8EqEmTcuvICfPd5RpjbLDFhhHbxOFsgOrXX2Qr33huu96dAhhEEEvOuVKbLcBdQ== + dependencies: + "@react-types/shared" "^3.12.0" + +"@react-types/label@^3.5.1", "@react-types/label@^3.5.4": + version "3.5.4" + resolved "https://registry.npmjs.org/@react-types/label/-/label-3.5.4.tgz" + integrity sha512-LuShOdEYokzn58SKUIo7kQdN3CV5Rs+HCxmvix4+Uw6BAYG9/aqqoKKolTA9klbM8rvvEzDqFzNZZHeMTBoN6w== + dependencies: + "@react-types/shared" "^3.12.0" + +"@react-types/shared@3.11.0": + version "3.11.0" + resolved "https://registry.npmjs.org/@react-types/shared/-/shared-3.11.0.tgz" + integrity sha512-BLKHwS94m+/731RZ4tgsr0uT7oJCioCNIfzFmZBZuZtASqpXJVsRhn2omweMD0e3uH2atxuwIZbf0WUW3Y6CRw== + +"@react-types/shared@^3.11.0", "@react-types/shared@^3.11.1", "@react-types/shared@^3.11.2", "@react-types/shared@^3.12.0": + version "3.12.0" + resolved "https://registry.npmjs.org/@react-types/shared/-/shared-3.12.0.tgz" + integrity sha512-faGr9xOjtMlkQPfA1i36iUmWS/hpPPtxIwdAtBi6p7rCejmShMLFZ2YN4DxzbJUCVubF2S1+rMMIKuXG17DkEw== + +"@react-types/switch@^3.1.6": + version "3.1.6" + resolved "https://registry.npmjs.org/@react-types/switch/-/switch-3.1.6.tgz" + integrity sha512-H9ECjBeEK82tGGiCNx2gQfrx5nJEviICAvUCfemLCS4zdUxs9NUYxIfI12v1Bl5NJ1dD0Cyc0hb4haiB+mX1ig== + dependencies: + "@react-types/checkbox" "^3.2.7" + "@react-types/shared" "^3.12.0" + +"@react-types/table@^3.1.1", "@react-types/table@^3.1.3": + version "3.1.3" + resolved "https://registry.npmjs.org/@react-types/table/-/table-3.1.3.tgz" + integrity sha512-l5ZmoPEnnMNUOW/mC7x/HDXC0CmHGz5IpWBPbV1aJtQCxRD42yosMaP8pT48EPZjupSeEuUGVFW2sZQlEjHbwg== + dependencies: + "@react-types/grid" "^3.0.3" + "@react-types/shared" "^3.11.2" + +"@rushstack/eslint-patch@^1.1.3": + version "1.1.3" + resolved "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.3.tgz" + integrity sha512-WiBSI6JBIhC6LRIsB2Kwh8DsGTlbBU+mLRxJmAe3LjHTdkDpwIbEOZgoXBbZilk/vlfjK8i6nKRAvIRn1XaIMw== + +"@solana/buffer-layout-utils@^0.2.0": + version "0.2.0" + resolved "https://registry.npmjs.org/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz" + integrity sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g== + dependencies: + "@solana/buffer-layout" "^4.0.0" + "@solana/web3.js" "^1.32.0" + bigint-buffer "^1.1.5" + bignumber.js "^9.0.1" + +"@solana/buffer-layout@^4.0.0": + version "4.0.0" + resolved "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.0.tgz" + integrity sha512-lR0EMP2HC3+Mxwd4YcnZb0smnaDw7Bl2IQWZiTevRH5ZZBZn6VRWn3/92E3qdU4SSImJkA6IDHawOHAnx/qUvQ== + dependencies: + buffer "~6.0.3" + +"@solana/web3.js@1.43.0": + version "1.43.0" + resolved "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.43.0.tgz" + integrity sha512-wcT7OzuLYnkrJAwnhrYLZkOOLF+Ads8IOHIcJhI4F9WtTYf/mf+TQ6srD7zMX4NjkELqJr65a0Pt0ulsqCfWNw== + dependencies: + "@babel/runtime" "^7.12.5" + "@ethersproject/sha2" "^5.5.0" + "@solana/buffer-layout" "^4.0.0" + "@solana/buffer-layout-utils" "^0.2.0" + bn.js "^5.0.0" + borsh "^0.7.0" + bs58 "^4.0.1" + buffer "6.0.1" + cross-fetch "^3.1.4" + fast-stable-stringify "^1.0.0" + jayson "^3.4.4" + js-sha3 "^0.8.0" + rpc-websockets "^7.4.2" + secp256k1 "^4.0.2" + superstruct "^0.14.2" + tweetnacl "^1.0.0" + +"@solana/web3.js@^1.32.0", "@solana/web3.js@^1.35.1": + version "1.43.1" + resolved "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.43.1.tgz" + integrity sha512-s6TRcWz3rYvxM8gg1eQmUAUJQeoXIFMG9MbSWb/uRrLU0q7Xd9Ic1PNbACp1n1O0wyCogTAyFWXXPK476aIVSg== + dependencies: + "@babel/runtime" "^7.12.5" + "@ethersproject/sha2" "^5.5.0" + "@solana/buffer-layout" "^4.0.0" + bigint-buffer "^1.1.5" + bn.js "^5.0.0" + borsh "^0.7.0" + bs58 "^4.0.1" + buffer "6.0.1" + cross-fetch "^3.1.4" + fast-stable-stringify "^1.0.0" + jayson "^3.4.4" + js-sha3 "^0.8.0" + rpc-websockets "^7.4.2" + secp256k1 "^4.0.2" + superstruct "^0.14.2" + tweetnacl "^1.0.0" + +"@stablelib/aead@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz" + integrity sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg== + +"@stablelib/binary@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz" + integrity sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q== + dependencies: + "@stablelib/int" "^1.0.1" + +"@stablelib/bytes@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz" + integrity sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ== + +"@stablelib/chacha20poly1305@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz#de6b18e283a9cb9b7530d8767f99cde1fec4c2ee" + integrity sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA== + 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": + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/chacha/-/chacha-1.0.1.tgz" + integrity sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/constant-time@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz" + integrity sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg== + +"@stablelib/ed25519@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@stablelib/ed25519/-/ed25519-1.0.2.tgz" + integrity sha512-FtnvUwvKbp6l1dNcg4CswMAVFVu/nzLK3oC7/PRtjYyHbWsIkD8j+5cjXHmwcCpdCpRCaTGACkEhhMQ1RcdSOQ== + dependencies: + "@stablelib/random" "^1.0.1" + "@stablelib/sha512" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/hash@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz" + integrity sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg== + +"@stablelib/hkdf@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/hkdf/-/hkdf-1.0.1.tgz#b4efd47fd56fb43c6a13e8775a54b354f028d98d" + integrity sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g== + dependencies: + "@stablelib/hash" "^1.0.1" + "@stablelib/hmac" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/hmac@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/hmac/-/hmac-1.0.1.tgz" + integrity sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA== + dependencies: + "@stablelib/constant-time" "^1.0.1" + "@stablelib/hash" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/int@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz" + integrity sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w== + +"@stablelib/keyagreement@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz" + integrity sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg== + dependencies: + "@stablelib/bytes" "^1.0.1" + +"@stablelib/poly1305@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz" + integrity sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA== + dependencies: + "@stablelib/constant-time" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/random@1.0.1", "@stablelib/random@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/random/-/random-1.0.1.tgz" + integrity sha512-zOh+JHX3XG9MSfIB0LZl/YwPP9w3o6WBiJkZvjPoKKu5LKFW4OLV71vMxWp9qG5T43NaWyn0QQTWgqCdO+yOBQ== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/sha256@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/sha256/-/sha256-1.0.1.tgz#77b6675b67f9b0ea081d2e31bda4866297a3ae4f" + integrity sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/hash" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/sha512@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/sha512/-/sha512-1.0.1.tgz" + integrity sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/hash" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/wipe@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz" + integrity sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg== + +"@stablelib/x25519@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@stablelib/x25519/-/x25519-1.0.2.tgz#ae21e2ab668076ec2eb2b4853b82a27fab045fa1" + integrity sha512-wTR0t0Bp1HABLFRbYaE3vFLuco2QbAg6QvxBnzi5j9qjhYezWHW7OiCZyaWbt25UkSaoolUUT4Il0nS/2vcbSw== + dependencies: + "@stablelib/keyagreement" "^1.0.1" + "@stablelib/random" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stitches/react@1.2.7": + version "1.2.7" + resolved "https://registry.npmjs.org/@stitches/react/-/react-1.2.7.tgz" + integrity sha512-6AxpUag7OW55ANzRnuy7R15FEyQeZ66fytVo3BBilFIU0mfo3t49CAMcEAL/A1SbhSj/FCdWkn/XrbjGBTJTzg== + +"@types/connect@^3.4.33": + version "3.4.35" + resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + dependencies: + "@types/node" "*" + +"@types/express-serve-static-core@^4.17.9": + version "4.17.28" + resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz" + integrity sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + +"@types/lodash@^4.14.159": + version "4.14.182" + resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.182.tgz" + integrity sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q== + +"@types/long@^4.0.1": + version "4.0.2" + resolved "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz" + integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== + +"@types/node@*", "@types/node@17.0.35", "@types/node@>=13.7.0": + version "17.0.35" + resolved "https://registry.npmjs.org/@types/node/-/node-17.0.35.tgz" + integrity sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg== + +"@types/node@10.12.18": + version "10.12.18" + resolved "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz" + integrity sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ== + +"@types/node@11.11.6": + version "11.11.6" + resolved "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz" + integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== + +"@types/node@^12.12.54": + version "12.20.52" + resolved "https://registry.npmjs.org/@types/node/-/node-12.20.52.tgz" + integrity sha512-cfkwWw72849SNYp3Zx0IcIs25vABmFh73xicxhCkTcvtZQeIez15PpwQN8fY3RD7gv1Wrxlc9MEtfMORZDEsGw== + +"@types/node@^13.7.0": + version "13.13.52" + resolved "https://registry.npmjs.org/@types/node/-/node-13.13.52.tgz" + integrity sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ== + +"@types/prop-types@*": + version "15.7.5" + resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz" + integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== + +"@types/qs@*": + version "6.9.7" + resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + +"@types/range-parser@*": + version "1.2.4" + resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz" + integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + +"@types/react@18.0.9": + version "18.0.9" + resolved "https://registry.npmjs.org/@types/react/-/react-18.0.9.tgz" + integrity sha512-9bjbg1hJHUm4De19L1cHiW0Jvx3geel6Qczhjd0qY5VKVE2X5+x77YxAepuCwVh4vrgZJdgEJw48zrhRIeF4Nw== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/scheduler@*": + version "0.16.2" + resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz" + integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== + +"@types/ws@^7.4.4": + version "7.4.7" + resolved "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz" + integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== + dependencies: + "@types/node" "*" + +"@typescript-eslint/parser@^5.21.0": + version "5.26.0" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.26.0.tgz" + integrity sha512-n/IzU87ttzIdnAH5vQ4BBDnLPly7rC5VnjN3m0xBG82HK6rhRxnCb3w/GyWbNDghPd+NktJqB/wl6+YkzZ5T5Q== + dependencies: + "@typescript-eslint/scope-manager" "5.26.0" + "@typescript-eslint/types" "5.26.0" + "@typescript-eslint/typescript-estree" "5.26.0" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@5.26.0": + version "5.26.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.26.0.tgz" + integrity sha512-gVzTJUESuTwiju/7NiTb4c5oqod8xt5GhMbExKsCTp6adU3mya6AGJ4Pl9xC7x2DX9UYFsjImC0mA62BCY22Iw== + dependencies: + "@typescript-eslint/types" "5.26.0" + "@typescript-eslint/visitor-keys" "5.26.0" + +"@typescript-eslint/types@5.26.0": + version "5.26.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.26.0.tgz" + integrity sha512-8794JZFE1RN4XaExLWLI2oSXsVImNkl79PzTOOWt9h0UHROwJedNOD2IJyfL0NbddFllcktGIO2aOu10avQQyA== + +"@typescript-eslint/typescript-estree@5.26.0": + version "5.26.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.26.0.tgz" + integrity sha512-EyGpw6eQDsfD6jIqmXP3rU5oHScZ51tL/cZgFbFBvWuCwrIptl+oueUZzSmLtxFuSOQ9vDcJIs+279gnJkfd1w== + dependencies: + "@typescript-eslint/types" "5.26.0" + "@typescript-eslint/visitor-keys" "5.26.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/visitor-keys@5.26.0": + version "5.26.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.26.0.tgz" + integrity sha512-wei+ffqHanYDOQgg/fS6Hcar6wAWv0CUPQ3TZzOWd2BLfgP539rb49bwua8WRAs7R6kOSLn82rfEu2ro6Llt8Q== + dependencies: + "@typescript-eslint/types" "5.26.0" + eslint-visitor-keys "^3.3.0" + +"@walletconnect/chat-client@^0.1.6": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@walletconnect/chat-client/-/chat-client-0.1.6.tgz#9641ef338fb73c906cb4633223bf729578f92d95" + integrity sha512-s8o9+8FxzhCGGU3BwdTuzeuE/5Seprcw53nnJM6irG9DG/LJz17A8DI/ZTj1PGzQS7lkllQVde/tPMUUiFL3lQ== + dependencies: + "@walletconnect/core" "2.0.0-rc.4" + "@walletconnect/jsonrpc-utils" "^1.0.3" + "@walletconnect/logger" "^1.0.1" + "@walletconnect/utils" "2.0.0-rc.4" + axios "^0.27.2" + events "^3.3.0" + pino "^8.0.0" + +"@walletconnect/core@2.0.0-rc.4": + version "2.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-2.0.0-rc.4.tgz#2423f48bf7a6df1b1fcfef697f0feeca204374ce" + integrity sha512-DBxKE5cpRvfa/d8LZLhvAXzPn5+Ezax9meV1tR5WAjmCqcRxHC6YFNrwFupt5WZrpSpAhrPTOmL5hGs9zvBzrQ== + dependencies: + "@walletconnect/heartbeat" "1.0.0" + "@walletconnect/jsonrpc-provider" "1.0.5" + "@walletconnect/jsonrpc-utils" "1.0.3" + "@walletconnect/jsonrpc-ws-connection" "1.0.3" + "@walletconnect/keyvaluestorage" "1.0.1-rc.2" + "@walletconnect/logger" "1.0.1" + "@walletconnect/relay-api" "1.0.6" + "@walletconnect/relay-auth" "1.0.3" + "@walletconnect/safe-json" "1.0.0" + "@walletconnect/time" "1.0.1" + "@walletconnect/types" "2.0.0-rc.4" + "@walletconnect/utils" "2.0.0-rc.4" + lodash.isequal "4.5.0" + pino "6.7.0" + pino-pretty "4.3.0" + uint8arrays "3.1.0" + +"@walletconnect/environment@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@walletconnect/environment/-/environment-1.0.0.tgz" + integrity sha512-4BwqyWy6KpSvkocSaV7WR3BlZfrxLbJSLkg+j7Gl6pTDE+U55lLhJvQaMuDVazXYxcjBsG09k7UlH7cGiUI5vQ== + +"@walletconnect/events@1.0.0", "@walletconnect/events@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@walletconnect/events/-/events-1.0.0.tgz" + integrity sha512-LLf8krnHo+PsObwMZbGhVaG24SvGTJM0MEtPNhrlQmp27CRV+LwYpHLh7fhABcnUon4aeo7dojCJMmx5jBNWuQ== + dependencies: + keyvaluestorage-interface "^1.0.0" + +"@walletconnect/heartbeat@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@walletconnect/heartbeat/-/heartbeat-1.0.0.tgz#d77d10aab467aafc45a09e25547d2158da630198" + integrity sha512-WMWbUNHVkVd7FS38P0DMDlvR38P/kSZcda94t54h8XtC1CfI2M/Cn9TGS6mC6MNuDkZZm+cOdkekibQc+9sNdQ== + dependencies: + "@walletconnect/events" "^1.0.0" + "@walletconnect/time" "^1.0.1" + +"@walletconnect/jsonrpc-provider@1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.5.tgz#1a66053b6f083a9885a32b7c2c8f6a376f1a4458" + integrity sha512-v61u4ZIV8+p9uIHS2Kl2YRj/2idrQiHcrbrJXw3McQkEJtj9mkCofr1Hu/n419wSRM5uiNK8Z4WRS9zGTTAhWQ== + dependencies: + "@walletconnect/jsonrpc-utils" "^1.0.3" + "@walletconnect/safe-json" "^1.0.0" + +"@walletconnect/jsonrpc-types@1.0.1", "@walletconnect/jsonrpc-types@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.1.tgz" + integrity sha512-+6coTtOuChCqM+AoYyi4Q83p9l/laI6NvuM2/AHaZFuf0gT0NjW7IX2+86qGyizn7Ptq4AYZmfxurAxTnhefuw== + dependencies: + keyvaluestorage-interface "^1.0.0" + +"@walletconnect/jsonrpc-utils@1.0.3", "@walletconnect/jsonrpc-utils@^1.0.3": + version "1.0.3" + resolved "https://registry.npmjs.org/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.3.tgz" + integrity sha512-3yb49bPk16MNLk6uIIHPSHQCpD6UAo1OMOx1rM8cW/MPEAYAzrSW5hkhG7NEUwX9SokRIgnZK3QuQkiyNzBMhQ== + dependencies: + "@walletconnect/environment" "^1.0.0" + "@walletconnect/jsonrpc-types" "^1.0.1" + +"@walletconnect/jsonrpc-ws-connection@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.3.tgz#a2c9dce8ccbdeda4f7923356b32644ea4908375f" + integrity sha512-+tKT3y8HvSdwXZkvF3+6FwnT9MYVdR7rxr1/x/hCPCB4DCLl4ZfDm8rP4doXbDaMJHaMrGn2JNT3RPABlOXSnw== + dependencies: + "@walletconnect/jsonrpc-utils" "^1.0.3" + "@walletconnect/safe-json" "^1.0.0" + ws "^7.5.1" + +"@walletconnect/keyvaluestorage@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.0.0.tgz#2733fc32c868f534419308f90b079fba0ef7d66e" + integrity sha512-dlIrX/pCjuXMUprkLdy0hw0Ibr3To9nCdG19mPqd/lRdRWsPItBL+79LClVplMxb0cuF3qlTuGTNx/hmUKYmWA== + dependencies: + localStorage "^1.0.4" + safe-json-utils "^1.1.1" + +"@walletconnect/keyvaluestorage@1.0.1-rc.2": + version "1.0.1-rc.2" + resolved "https://registry.yarnpkg.com/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.0.1-rc.2.tgz#d1dafec01a0e33fe3b70ed22e24fe5c5f0a09b37" + integrity sha512-W704vnzAAZ4b/v7vEvYDul7fZ+TtG2vIfw8J41N8DnfBeee3IZ/urSrsAPaNUcDZArAWv/ZOYrIGHz5K9sdeUA== + dependencies: + localStorage "^1.0.4" + safe-json-utils "^1.1.1" + +"@walletconnect/logger@1.0.1", "@walletconnect/logger@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@walletconnect/logger/-/logger-1.0.1.tgz#680e45099b62ec20262a7f87ff374f73d08109be" + integrity sha512-veJCZTA2uhJP8qS5J8FGYXSduShFZflNFIYesm80fW6zKIQ+Hvg0GR0r4LeXk5cnve5qT7QO+FUnO29v/aYtPQ== + dependencies: + pino "^6.7.0" + +"@walletconnect/relay-api@1.0.6": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@walletconnect/relay-api/-/relay-api-1.0.6.tgz#6972b20a0fceee68f164a2d65064eaf458d4d27d" + integrity sha512-KW7juHNomtzZWGZy+7MuzppXlUenBOz4AvLKNwXf5c9x8T0LhpodM/NnrsJsxB+Gu3dJl5Zv5R86CcCQIqxlKg== + dependencies: + "@walletconnect/jsonrpc-types" "^1.0.1" + +"@walletconnect/relay-auth@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@walletconnect/relay-auth/-/relay-auth-1.0.3.tgz#5a20fa0a95b0678fb26d7e96dc0e3f780867deec" + integrity sha512-73BHB4oTftTGveNIFO0g73KjAl9dSPKUZ/3hgEo4FRs7SzXORUQKjeDsZnOWFYWaDeiozH2ckaJv5GJtORI79Q== + dependencies: + "@stablelib/ed25519" "^1.0.2" + "@stablelib/random" "^1.0.1" + "@walletconnect/safe-json" "^1.0.0" + "@walletconnect/time" "^1.0.1" + uint8arrays "^3.0.0" + +"@walletconnect/safe-json@1.0.0", "@walletconnect/safe-json@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.0.tgz" + integrity sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg== + +"@walletconnect/sign-client@2.0.0-rc.4": + version "2.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@walletconnect/sign-client/-/sign-client-2.0.0-rc.4.tgz#d282c29c2f93b17f12e8d2eb2dde5dfae8676591" + integrity sha512-LW38YpEjEblqFyH1J5h0xpn+F7eIfmc5AHECcY/bQYVKywEcQHojdKimxUSNWU2ThMO1iJK4e7VJj6AgTP1vgg== + dependencies: + "@walletconnect/core" "2.0.0-rc.4" + "@walletconnect/events" "1.0.0" + "@walletconnect/heartbeat" "1.0.0" + "@walletconnect/jsonrpc-provider" "1.0.5" + "@walletconnect/jsonrpc-utils" "1.0.3" + "@walletconnect/logger" "1.0.1" + "@walletconnect/time" "1.0.1" + "@walletconnect/types" "2.0.0-rc.4" + "@walletconnect/utils" "2.0.0-rc.4" + pino "6.7.0" + pino-pretty "4.3.0" + +"@walletconnect/time@1.0.1", "@walletconnect/time@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@walletconnect/time/-/time-1.0.1.tgz" + integrity sha512-LtNtHupTNranehLMh8Z/JN6xVySysSoJNjNCQ0ML+hOUkim5QX/VdvfovSpaX9qA2b95u7bIuTcq0O3UBk7Iyw== + +"@walletconnect/types@2.0.0-rc.4": + version "2.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-2.0.0-rc.4.tgz#7068df28041f0600b9e0d67a803b2e32456080bf" + integrity sha512-ZNGkwWNVQab85cNKyp5h82pripRoa46loEo5gWlR8H/KNIrll1GZbijnd8mZb4RF+TLLN+FrQqfZZNcaeWNFCw== + dependencies: + "@walletconnect/events" "1.0.0" + "@walletconnect/heartbeat" "1.0.0" + "@walletconnect/jsonrpc-types" "1.0.1" + "@walletconnect/keyvaluestorage" "1.0.0" + +"@walletconnect/utils@2.0.0-rc.4": + version "2.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-2.0.0-rc.4.tgz#a6717a26e0734a9708d79c7679f2d08baac39802" + integrity sha512-qg3a924eauH1u/FfgdjEEkJuNlFsKglh2AGosnFXB4bYaAhFBZkMxZfh0W6I2s9GJWU8pyr21qso489YIDWIVw== + dependencies: + "@stablelib/chacha20poly1305" "1.0.1" + "@stablelib/hkdf" "1.0.1" + "@stablelib/random" "1.0.1" + "@stablelib/sha256" "1.0.1" + "@stablelib/x25519" "1.0.2" + "@walletconnect/jsonrpc-utils" "1.0.3" + "@walletconnect/relay-api" "1.0.6" + "@walletconnect/safe-json" "1.0.0" + "@walletconnect/time" "1.0.1" + "@walletconnect/types" "2.0.0-rc.4" + "@walletconnect/window-getters" "1.0.0" + "@walletconnect/window-metadata" "1.0.0" + detect-browser "5.3.0" + query-string "7.1.1" + uint8arrays "3.1.0" + +"@walletconnect/window-getters@1.0.0", "@walletconnect/window-getters@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@walletconnect/window-getters/-/window-getters-1.0.0.tgz#1053224f77e725dfd611c83931b5f6c98c32bfc8" + integrity sha512-xB0SQsLaleIYIkSsl43vm8EwETpBzJ2gnzk7e0wMF3ktqiTGS6TFHxcprMl5R44KKh4tCcHCJwolMCaDSwtAaA== + +"@walletconnect/window-metadata@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@walletconnect/window-metadata/-/window-metadata-1.0.0.tgz#93b1cc685e6b9b202f29c26be550fde97800c4e5" + integrity sha512-9eFvmJxIKCC3YWOL97SgRkKhlyGXkrHwamfechmqszbypFspaSk+t2jQXAEU7YClHF6Qjw5eYOmy1//zFi9/GA== + dependencies: + "@walletconnect/window-getters" "^1.0.0" + +JSONStream@^1.3.5: + version "1.3.5" + resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn@^8.7.1: + version "8.7.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz" + integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== + +aes-js@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz" + integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== + +ajv@^6.10.0, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +aproba@^1.0.3: + version "1.2.0" + resolved "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +are-we-there-yet@~1.1.2: + version "1.1.7" + resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz" + integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +args@^5.0.1: + version "5.0.3" + resolved "https://registry.npmjs.org/args/-/args-5.0.3.tgz" + integrity sha512-h6k/zfFgusnv3i5TU08KQkVKuCPBtL/PWQbWkHUxvJrZ2nAyeaUupneemcrgn1xmqxPQsPIzwkUhOpoqPDRZuA== + dependencies: + camelcase "5.0.0" + chalk "2.4.2" + leven "2.1.0" + mri "1.1.4" + +aria-query@^4.2.2: + version "4.2.2" + resolved "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz" + integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== + dependencies: + "@babel/runtime" "^7.10.2" + "@babel/runtime-corejs3" "^7.10.2" + +array-includes@^3.1.4, array-includes@^3.1.5: + version "3.1.5" + resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz" + integrity sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" + get-intrinsic "^1.1.1" + is-string "^1.0.7" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array.prototype.flat@^1.2.5: + version "1.3.0" + resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz" + integrity sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.2" + es-shim-unscopables "^1.0.0" + +array.prototype.flatmap@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz" + integrity sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.2" + es-shim-unscopables "^1.0.0" + +ast-types-flow@^0.0.7: + version "0.0.7" + resolved "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz" + integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +atomic-sleep@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz" + integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== + +axe-core@^4.3.5: + version "4.4.2" + resolved "https://registry.npmjs.org/axe-core/-/axe-core-4.4.2.tgz" + integrity sha512-LVAaGp/wkkgYJcjmHsoKx4juT1aQvJyPcW09MLCjVTh3V2cc6PnyempiLMNH5iMdfIX/zdbjUx2KDjMLCTdPeA== + +axios@^0.27.2: + version "0.27.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" + integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== + dependencies: + follow-redirects "^1.14.9" + form-data "^4.0.0" + +axobject-query@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz" + integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== + +"babel-plugin-styled-components@>= 1.12.0": + version "2.0.7" + resolved "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.7.tgz" + integrity sha512-i7YhvPgVqRKfoQ66toiZ06jPNA3p6ierpfUuEWxNF+fV27Uv5gxBkf8KZLHUCc1nFA9j6+80pYoIpqCeyW3/bA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.0" + "@babel/helper-module-imports" "^7.16.0" + babel-plugin-syntax-jsx "^6.18.0" + lodash "^4.17.11" + picomatch "^2.3.0" + +babel-plugin-syntax-jsx@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz" + integrity sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base-x@^3.0.2: + version "3.0.9" + resolved "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz" + integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== + dependencies: + safe-buffer "^5.0.1" + +base-x@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz" + integrity sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw== + +base64-js@^1.3.0, base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +bcrypto@^5.4.0: + version "5.4.0" + resolved "https://registry.npmjs.org/bcrypto/-/bcrypto-5.4.0.tgz" + integrity sha512-KDX2CR29o6ZoqpQndcCxFZAtYA1jDMnXU3jmCfzP44g++Cu7AHHtZN/JbrN/MXAg9SLvtQ8XISG+eVD9zH1+Jg== + dependencies: + bufio "~1.0.7" + loady "~0.0.5" + +bech32@1.1.4, bech32@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz" + integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== + +better-sqlite3@^7.1.2: + version "7.5.3" + resolved "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-7.5.3.tgz" + integrity sha512-tNIrDsThpWT8j1mg+svI1pqCYROqNOWMbB2qXVg+TJqH9UR5XnbAHyRsLZoJagldGTTqJPj/sUPVOkW0GRpYqw== + dependencies: + bindings "^1.5.0" + prebuild-install "^7.1.0" + +bigint-buffer@^1.1.5: + version "1.1.5" + resolved "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz" + integrity sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA== + dependencies: + bindings "^1.3.0" + +bignumber.js@^9.0.1: + version "9.0.2" + resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz" + integrity sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw== + +bindings@^1.3.0, bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +bip32@^2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/bip32/-/bip32-2.0.6.tgz" + integrity sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA== + dependencies: + "@types/node" "10.12.18" + bs58check "^2.1.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + tiny-secp256k1 "^1.1.3" + typeforce "^1.11.5" + wif "^2.0.6" + +bip39@^3.0.2, bip39@^3.0.3: + version "3.0.4" + resolved "https://registry.npmjs.org/bip39/-/bip39-3.0.4.tgz" + integrity sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw== + dependencies: + "@types/node" "11.11.6" + create-hash "^1.1.0" + pbkdf2 "^3.0.9" + randombytes "^2.0.1" + +bl@^4.0.3: + version "4.1.0" + resolved "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +bn.js@^4.11.8, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +bn.js@^5.0.0, bn.js@^5.2.0, bn.js@^5.2.1: + version "5.2.1" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + +borsh@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz" + integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== + dependencies: + bn.js "^5.2.0" + bs58 "^4.0.0" + text-encoding-utf-8 "^1.0.2" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== + +bs58@5.0.0, bs58@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz" + integrity sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ== + dependencies: + base-x "^4.0.0" + +bs58@^4.0.0, bs58@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz" + integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== + dependencies: + base-x "^3.0.2" + +bs58check@<3.0.0, bs58check@^2.1.1: + version "2.1.2" + resolved "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz" + integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== + dependencies: + bs58 "^4.0.0" + create-hash "^1.1.0" + safe-buffer "^5.1.2" + +buffer@6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.1.tgz" + integrity sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +buffer@^6.0.3, buffer@~6.0.3: + version "6.0.3" + resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +bufferutil@^4.0.1: + version "4.0.6" + resolved "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz" + integrity sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw== + dependencies: + node-gyp-build "^4.3.0" + +bufio@~1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/bufio/-/bufio-1.0.7.tgz" + integrity sha512-bd1dDQhiC+bEbEfg56IdBv7faWa6OipMs/AFFFvtFnB3wAYjlwQpQRZ0pm6ZkgtfL0pILRXhKxOiQj6UzoMR7A== + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase@5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz" + integrity sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA== + +camelize@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz" + integrity sha512-W2lPwkBkMZwFlPCXhIlYgxu+7gC/NUlCtdK652DAJ1JdgV0sTrvuPFshNPrFa1TY2JOkLhgdeEBplB4ezEa+xg== + +caniuse-lite@^1.0.30001283: + version "1.0.30001343" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001343.tgz" + integrity sha512-8KeCrAtPMabo/XW14B+R9sZYoClx1n0b+WYgwDKZPtWR3TcdvWzdSy7mPyFEmR5WU1St9v1PW6sdO5dkFOEzfA== + +chalk@2.4.2, chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +character-entities-legacy@^1.0.0: + version "1.1.4" + resolved "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz" + integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== + +character-entities@^1.0.0: + version "1.2.4" + resolved "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz" + integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== + +character-reference-invalid@^1.0.0: + version "1.1.4" + resolved "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz" + integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +clipboard@^2.0.0: + version "2.0.11" + resolved "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz" + integrity sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw== + dependencies: + good-listener "^1.2.2" + select "^1.1.2" + tiny-emitter "^2.0.0" + +clsx@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz" + integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz" + integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +comma-separated-tokens@^1.0.0: + version "1.0.8" + resolved "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz" + integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== + +commander@^2.20.3: + version "2.20.3" + resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + +core-js-pure@^3.20.2: + version "3.22.7" + resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.22.7.tgz" + integrity sha512-wTriFxiZI+C8msGeh7fJcbC/a0V8fdInN1oS2eK79DMBGs8iIJiXhtFJCiT3rBa8w6zroHWW3p8ArlujZ/Mz+w== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cosmjs-types@^0.4.0: + version "0.4.1" + resolved "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.4.1.tgz" + integrity sha512-I7E/cHkIgoJzMNQdFF0YVqPlaTqrqKHrskuSTIqlEyxfB5Lf3WKCajSXVK2yHOfOFfSux/RxEdpMzw/eO4DIog== + dependencies: + long "^4.0.0" + protobufjs "~6.11.2" + +cosmos-wallet@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/cosmos-wallet/-/cosmos-wallet-1.2.0.tgz" + integrity sha512-lMEpNhjN6FHU6c8l/lYi1hWU/74bOlTmo3pz0mwVpCHjNSe5u7sZCO7j0dndd3oV0tM8tj/u3eJa4NgZxG9a0Q== + dependencies: + "@cosmjs/amino" "^0.25.4" + "@cosmjs/proto-signing" "^0.25.4" + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-fetch@^3.1.4: + version "3.1.5" + resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz" + integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== + dependencies: + node-fetch "2.6.7" + +cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +css-color-keywords@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz" + integrity sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU= + +css-to-react-native@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz" + integrity sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ== + dependencies: + camelize "^1.0.0" + css-color-keywords "^1.0.0" + postcss-value-parser "^4.0.2" + +csstype@^3.0.2: + version "3.1.0" + resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz" + integrity sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA== + +damerau-levenshtein@^1.0.7: + version "1.0.8" + resolved "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz" + integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== + +dateformat@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" + integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== + +debug@^2.6.9: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz" + integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== + +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +define-properties@^1.1.3, define-properties@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz" + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +delay@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz" + integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +delegate@^3.1.2: + version "3.2.0" + resolved "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz" + integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +detect-browser@5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.3.0.tgz#9705ef2bddf46072d0f7265a1fe300e36fe7ceca" + integrity sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w== + +detect-libc@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz" + integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.3, elliptic@^6.5.4: + version "6.5.4" + resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + 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: + version "8.0.0" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +enc-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/enc-utils/-/enc-utils-3.0.0.tgz" + integrity sha512-e57t/Z2HzWOLwOp7DZcV0VMEY8t7ptWwsxyp6kM2b2zrk6JqIpXxzkruHAMiBsy5wg9jp/183GdiRXCvBtzsYg== + dependencies: + is-typedarray "1.0.0" + typedarray-to-buffer "3.1.5" + +end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5: + version "1.20.1" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz" + integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.1.1" + get-symbol-description "^1.0.0" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + is-callable "^1.2.4" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-weakref "^1.0.2" + object-inspect "^1.12.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + regexp.prototype.flags "^1.4.3" + string.prototype.trimend "^1.0.5" + string.prototype.trimstart "^1.0.5" + unbox-primitive "^1.0.2" + +es-shim-unscopables@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz" + integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== + dependencies: + has "^1.0.3" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es6-promise@^4.0.3: + version "4.2.8" + resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + +es6-promisify@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz" + integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= + dependencies: + es6-promise "^4.0.3" + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-config-next@12.1.6: + version "12.1.6" + resolved "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-12.1.6.tgz" + integrity sha512-qoiS3g/EPzfCTkGkaPBSX9W0NGE/B1wNO3oWrd76QszVGrdpLggNqcO8+LR6MB0CNqtp9Q8NoeVrxNVbzM9hqA== + dependencies: + "@next/eslint-plugin-next" "12.1.6" + "@rushstack/eslint-patch" "^1.1.3" + "@typescript-eslint/parser" "^5.21.0" + eslint-import-resolver-node "^0.3.6" + eslint-import-resolver-typescript "^2.7.1" + eslint-plugin-import "^2.26.0" + eslint-plugin-jsx-a11y "^6.5.1" + eslint-plugin-react "^7.29.4" + eslint-plugin-react-hooks "^4.5.0" + +eslint-config-prettier@8.5.0: + version "8.5.0" + resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz" + integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== + +eslint-import-resolver-node@^0.3.6: + version "0.3.6" + resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz" + integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== + dependencies: + debug "^3.2.7" + resolve "^1.20.0" + +eslint-import-resolver-typescript@^2.7.1: + version "2.7.1" + resolved "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.7.1.tgz" + integrity sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ== + dependencies: + debug "^4.3.4" + glob "^7.2.0" + is-glob "^4.0.3" + resolve "^1.22.0" + tsconfig-paths "^3.14.1" + +eslint-module-utils@^2.7.3: + version "2.7.3" + resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz" + integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== + dependencies: + debug "^3.2.7" + find-up "^2.1.0" + +eslint-plugin-import@^2.26.0: + version "2.26.0" + resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz" + integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== + dependencies: + array-includes "^3.1.4" + array.prototype.flat "^1.2.5" + debug "^2.6.9" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.6" + eslint-module-utils "^2.7.3" + has "^1.0.3" + is-core-module "^2.8.1" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.values "^1.1.5" + resolve "^1.22.0" + tsconfig-paths "^3.14.1" + +eslint-plugin-jsx-a11y@^6.5.1: + version "6.5.1" + resolved "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz" + integrity sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g== + dependencies: + "@babel/runtime" "^7.16.3" + aria-query "^4.2.2" + array-includes "^3.1.4" + ast-types-flow "^0.0.7" + axe-core "^4.3.5" + axobject-query "^2.2.0" + damerau-levenshtein "^1.0.7" + emoji-regex "^9.2.2" + has "^1.0.3" + jsx-ast-utils "^3.2.1" + language-tags "^1.0.5" + minimatch "^3.0.4" + +eslint-plugin-react-hooks@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.5.0.tgz" + integrity sha512-8k1gRt7D7h03kd+SAAlzXkQwWK22BnK6GKZG+FJA6BAGy22CFvl8kCIXKpVux0cCxMWDQUPqSok0LKaZ0aOcCw== + +eslint-plugin-react@^7.29.4: + version "7.30.0" + resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.0.tgz" + integrity sha512-RgwH7hjW48BleKsYyHK5vUAvxtE9SMPDKmcPRQgtRCYaZA0XQPt5FSkrU3nhz5ifzMZcA8opwmRJ2cmOO8tr5A== + dependencies: + array-includes "^3.1.5" + array.prototype.flatmap "^1.3.0" + doctrine "^2.1.0" + estraverse "^5.3.0" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.1.2" + object.entries "^1.1.5" + object.fromentries "^2.0.5" + object.hasown "^1.1.1" + object.values "^1.1.5" + prop-types "^15.8.1" + resolve "^2.0.0-next.3" + semver "^6.3.0" + string.prototype.matchall "^4.0.7" + +eslint-scope@^7.1.1: + version "7.1.1" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz" + integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" + +eslint-visitor-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint-visitor-keys@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz" + integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== + +eslint@8.15.0: + version "8.15.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.15.0.tgz" + integrity sha512-GG5USZ1jhCu8HJkzGgeK8/+RGnHaNYZGrGDzUtigK3BsGESW/rs2az23XqE0WVwDxy1VRvvjSSGu5nB0Bu+6SA== + dependencies: + "@eslint/eslintrc" "^1.2.3" + "@humanwhocodes/config-array" "^0.9.2" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.1.1" + eslint-utils "^3.0.0" + eslint-visitor-keys "^3.3.0" + espree "^9.3.2" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^6.0.1" + globals "^13.6.0" + ignore "^5.2.0" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + 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.1" + regexpp "^3.2.0" + strip-ansi "^6.0.1" + strip-json-comments "^3.1.0" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^9.3.2: + version "9.3.2" + resolved "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz" + integrity sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA== + dependencies: + acorn "^8.7.1" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.3.0" + +esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: + version "5.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +ethers@5.6.6: + version "5.6.6" + resolved "https://registry.npmjs.org/ethers/-/ethers-5.6.6.tgz" + integrity sha512-2B2ZmSGvRcJpHnFMBk58mkXP50njFipUBCgLK8jUTFbomhVs501cLzyMU6+Vx8YnUDQxywC3qkZvd33xWS+2FA== + dependencies: + "@ethersproject/abi" "5.6.2" + "@ethersproject/abstract-provider" "5.6.0" + "@ethersproject/abstract-signer" "5.6.1" + "@ethersproject/address" "5.6.0" + "@ethersproject/base64" "5.6.0" + "@ethersproject/basex" "5.6.0" + "@ethersproject/bignumber" "5.6.1" + "@ethersproject/bytes" "5.6.1" + "@ethersproject/constants" "5.6.0" + "@ethersproject/contracts" "5.6.1" + "@ethersproject/hash" "5.6.0" + "@ethersproject/hdnode" "5.6.1" + "@ethersproject/json-wallets" "5.6.0" + "@ethersproject/keccak256" "5.6.0" + "@ethersproject/logger" "5.6.0" + "@ethersproject/networks" "5.6.2" + "@ethersproject/pbkdf2" "5.6.0" + "@ethersproject/properties" "5.6.0" + "@ethersproject/providers" "5.6.6" + "@ethersproject/random" "5.6.0" + "@ethersproject/rlp" "5.6.0" + "@ethersproject/sha2" "5.6.0" + "@ethersproject/signing-key" "5.6.1" + "@ethersproject/solidity" "5.6.0" + "@ethersproject/strings" "5.6.0" + "@ethersproject/transactions" "5.6.0" + "@ethersproject/units" "5.6.0" + "@ethersproject/wallet" "5.6.1" + "@ethersproject/web" "5.6.0" + "@ethersproject/wordlists" "5.6.0" + +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + +eventemitter3@^4.0.7: + version "4.0.7" + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + +eyes@^0.1.8: + version "0.1.8" + resolved "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz" + integrity sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A= + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.2.9: + version "3.2.11" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz" + integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fast-redact@^3.0.0: + version "3.1.1" + resolved "https://registry.npmjs.org/fast-redact/-/fast-redact-3.1.1.tgz" + integrity sha512-odVmjC8x8jNeMZ3C+rPMESzXVSEU8tSWSHv9HFxP2mm89G/1WwqhrerJDQm9Zus8X6aoRgQDThKqptdNA6bt+A== + +fast-redact@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.1.2.tgz#d58e69e9084ce9fa4c1a6fa98a3e1ecf5d7839aa" + integrity sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw== + +fast-safe-stringify@^2.0.7, fast-safe-stringify@^2.0.8: + version "2.1.1" + resolved "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz" + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== + +fast-stable-stringify@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz" + integrity sha1-XFVDRisiru79NtBbNOUceMuG0xM= + +fastq@^1.6.0: + version "1.13.0" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz" + integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + dependencies: + reusify "^1.0.4" + +fault@^1.0.2: + version "1.0.4" + resolved "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz" + integrity sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA== + dependencies: + format "^0.2.0" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +filter-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz" + integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ== + +find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatstr@^1.0.12: + version "1.0.12" + resolved "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz" + integrity sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw== + +flatted@^3.1.0: + version "3.2.5" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz" + integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== + +follow-redirects@^1.14.9: + version "1.15.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +format@^0.2.0: + version "0.2.2" + resolved "https://registry.npmjs.org/format/-/format-0.2.2.tgz" + integrity sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs= + +framer-motion@6.3.3: + version "6.3.3" + resolved "https://registry.npmjs.org/framer-motion/-/framer-motion-6.3.3.tgz" + integrity sha512-wo0dCnoq5vn4L8YVOPO9W54dliH78vDaX0Lj+bSPUys6Nt5QaehrS3uaYa0q5eVeikUgtTjz070UhQ94thI5Sw== + dependencies: + framesync "6.0.1" + hey-listen "^1.0.8" + popmotion "11.0.3" + style-value-types "5.0.0" + tslib "^2.1.0" + optionalDependencies: + "@emotion/is-prop-valid" "^0.8.2" + +framesync@6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/framesync/-/framesync-6.0.1.tgz" + integrity sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA== + dependencies: + tslib "^2.1.0" + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +functions-have-names@^1.2.2: + version "1.2.3" + resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz" + integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= + +glob-parent@^5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.1: + version "6.0.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob@7.1.7: + version "7.1.7" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.1.3, glob@^7.2.0: + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^13.15.0, globals@^13.6.0: + version "13.15.0" + resolved "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz" + integrity sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog== + dependencies: + type-fest "^0.20.2" + +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +good-listener@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz" + integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA= + dependencies: + delegate "^3.1.2" + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +hast-util-parse-selector@^2.0.0: + version "2.2.5" + resolved "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz" + integrity sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ== + +hastscript@^5.0.0: + version "5.1.2" + resolved "https://registry.npmjs.org/hastscript/-/hastscript-5.1.2.tgz" + integrity sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ== + dependencies: + comma-separated-tokens "^1.0.0" + hast-util-parse-selector "^2.0.0" + property-information "^5.0.0" + space-separated-tokens "^1.0.0" + +hey-listen@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz" + integrity sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q== + +highlight.js@~9.15.0, highlight.js@~9.15.1: + version "9.15.10" + resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.10.tgz" + integrity sha512-RoV7OkQm0T3os3Dd2VHLNMoaoDVx77Wygln3n9l5YV172XonWG6rgQD3XnF/BuFFZw9A0TJgmMSO8FEWQgvcXw== + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hoist-non-react-statics@^3.0.0: + version "3.3.2" + resolved "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +ieee754@^1.1.13, ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz" + integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@~1.3.0: + version "1.3.8" + resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" + +intl-messageformat@^9.12.0: + version "9.13.0" + resolved "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.13.0.tgz" + integrity sha512-7sGC7QnSQGa5LZP7bXLDhVDtQOeKGeBFGHF2Y8LVBwYZoQZCgWeKoPGTa5GMG8g/TzDgeXuYJQis7Ggiw2xTOw== + dependencies: + "@formatjs/ecma402-abstract" "1.11.4" + "@formatjs/fast-memoize" "1.2.1" + "@formatjs/icu-messageformat-parser" "2.1.0" + tslib "^2.1.0" + +is-alphabetical@^1.0.0: + version "1.0.4" + resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz" + integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== + +is-alphanumerical@^1.0.0: + version "1.0.4" + resolved "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz" + integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== + dependencies: + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-callable@^1.1.4, is-callable@^1.2.4: + version "1.2.4" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz" + integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== + +is-core-module@^2.2.0, is-core-module@^2.8.1: + version "2.9.0" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz" + integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-decimal@^1.0.0: + version "1.0.4" + resolved "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz" + integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-hexadecimal@^1.0.0: + version "1.0.4" + resolved "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz" + integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typedarray@1.0.0, is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isomorphic-ws@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz" + integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== + +jayson@^3.4.4: + version "3.6.6" + resolved "https://registry.npmjs.org/jayson/-/jayson-3.6.6.tgz" + integrity sha512-f71uvrAWTtrwoww6MKcl9phQTC+56AopLyEenWvKVAIMz+q0oVGj6tenLZ7Z6UiPBkJtKLj4kt0tACllFQruGQ== + dependencies: + "@types/connect" "^3.4.33" + "@types/express-serve-static-core" "^4.17.9" + "@types/lodash" "^4.14.159" + "@types/node" "^12.12.54" + "@types/ws" "^7.4.4" + 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" + json-stringify-safe "^5.0.1" + lodash "^4.17.20" + uuid "^8.3.2" + ws "^7.4.5" + +jmespath@^0.15.0: + version "0.15.0" + resolved "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz" + integrity sha512-+kHj8HXArPfpPEKGLZ+kB5ONRTCiGQXo8RQYL0hH8t6pWXUBBK5KkkQmTNOwKK4LEsd0yTsgtjJVm4UBSZea4w== + +joycon@^2.2.5: + version "2.2.5" + resolved "https://registry.npmjs.org/joycon/-/joycon-2.2.5.tgz" + integrity sha512-YqvUxoOcVPnCp0VU1/56f+iKSdvIRJYPznH22BdXV3xMk75SFXhWeJkZ8C9XxUWt1b5x2X1SxuFygW1U0FmkEQ== + +js-sha3@0.8.0, js-sha3@^0.8.0: + version "0.8.0" + resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz" + integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json-stringify-safe@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz" + integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= + +jsqr-es6@^1.4.0-1: + version "1.4.0-1" + resolved "https://registry.npmjs.org/jsqr-es6/-/jsqr-es6-1.4.0-1.tgz" + integrity sha512-LPWZJLI+3LLOy9k3/s/MeXlkfNOs3bYBX5O+fp4N0XuxbgO8H7Uc/nYZeNwo13nSZXRW9xWFKmZdy9591+PyAg== + +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.2.1: + version "3.3.0" + resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.0.tgz" + integrity sha512-XzO9luP6L0xkxwhIJMTJQpZo/eeN60K08jHdexfD569AGxeNug6UketeHXEhROoM8aR7EcUoOQmIhcJQjcuq8Q== + dependencies: + array-includes "^3.1.4" + object.assign "^4.1.2" + +keyvaluestorage-interface@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz" + integrity sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g== + +keyvaluestorage@^0.7.1: + version "0.7.1" + resolved "https://registry.npmjs.org/keyvaluestorage/-/keyvaluestorage-0.7.1.tgz" + integrity sha512-7AHq8bZE4WRWy+BltiuPwQo5aKuj7CguhwGdW7NUUOEImY2Tq/lJaBjHdOf0MYzeu+Y4oxQWhkZEZcrDc9KnxA== + dependencies: + better-sqlite3 "^7.1.2" + keyvaluestorage-interface "^1.0.0" + localStorage "^1.0.4" + safe-json-utils "^1.1.1" + +language-subtag-registry@~0.3.2: + version "0.3.21" + resolved "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz" + integrity sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg== + +language-tags@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz" + integrity sha1-0yHbxNowuovzAk4ED6XBRmH5GTo= + dependencies: + language-subtag-registry "~0.3.2" + +leven@2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz" + integrity sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +libsodium-wrappers@^0.7.6: + version "0.7.10" + resolved "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.10.tgz" + integrity sha512-pO3F1Q9NPLB/MWIhehim42b/Fwb30JNScCNh8TcQ/kIc+qGLQch8ag8wb0keK3EP5kbGakk1H8Wwo7v+36rNQg== + dependencies: + libsodium "^0.7.0" + +libsodium@^0.7.0: + version "0.7.10" + resolved "https://registry.npmjs.org/libsodium/-/libsodium-0.7.10.tgz" + integrity sha512-eY+z7hDrDKxkAK+QKZVNv92A5KYkxfvIshtBJkmg5TSiCnYqZP3i9OO9whE79Pwgm4jGaoHgkM4ao/b9Cyu4zQ== + +loady@~0.0.5: + version "0.0.5" + resolved "https://registry.npmjs.org/loady/-/loady-0.0.5.tgz" + integrity sha512-uxKD2HIj042/HBx77NBcmEPsD+hxCgAtjEWlYNScuUjIsh/62Uyu39GOR68TBR68v+jqDL9zfftCWoUo4y03sQ== + +localStorage@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/localStorage/-/localStorage-1.0.4.tgz" + integrity sha512-r35zrihcDiX+dqWlJSeIwS9nrF95OQTgqMFm3FB2D/+XgdmZtcutZOb7t0xXkhOEM8a9kpuu7cc28g1g36I5DQ== + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +lodash.isequal@4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz" + integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash@^4.17.11, lodash@^4.17.20: + version "4.17.21" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +long@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/long/-/long-4.0.0.tgz" + integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== + +loose-envify@^1.1.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lowlight@1.12.1: + version "1.12.1" + resolved "https://registry.npmjs.org/lowlight/-/lowlight-1.12.1.tgz" + integrity sha512-OqaVxMGIESnawn+TU/QMV5BJLbUghUfjDWPAtFqDYDmDtr4FnB+op8xM+pR7nKlauHNUHXGt0VgWatFB8voS5w== + dependencies: + fault "^1.0.2" + highlight.js "~9.15.0" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.6: + version "1.2.6" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== + +mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: + version "0.5.3" + resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + +mnemonic-keyring@1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/mnemonic-keyring/-/mnemonic-keyring-1.4.0.tgz" + integrity sha512-Peo4oupSy4UkeeqYpuJ5PUw4mjDj4lVetoD2R1LloMzoeA8UAXdLOXCUpooQZp7fq7kqtZeOUhDjoLcOWIJUiQ== + dependencies: + "@pedrouid/iso-random" "^1.1.0" + bcrypto "^5.4.0" + bip32 "^2.0.6" + bip39 "^3.0.3" + keyvaluestorage "^0.7.1" + +mri@1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz" + integrity sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multiformats@^9.4.2: + version "9.7.0" + resolved "https://registry.npmjs.org/multiformats/-/multiformats-9.7.0.tgz" + integrity sha512-uv/tcgwk0yN4DStopnBN4GTgvaAlYdy6KnZpuzEPFOYQd71DYFJjs0MN1ERElAflrZaYyGBWXyGxL5GgrxIx0Q== + +nan@^2.13.2: + version "2.16.0" + resolved "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz" + integrity sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA== + +nanoid@^3.1.30: + version "3.3.4" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz" + integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== + +napi-build-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz" + integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +next@12.1.5: + version "12.1.5" + resolved "https://registry.npmjs.org/next/-/next-12.1.5.tgz" + integrity sha512-YGHDpyfgCfnT5GZObsKepmRnne7Kzp7nGrac07dikhutWQug7hHg85/+sPJ4ZW5Q2pDkb+n0FnmLkmd44htIJQ== + dependencies: + "@next/env" "12.1.5" + caniuse-lite "^1.0.30001283" + postcss "8.4.5" + styled-jsx "5.0.1" + optionalDependencies: + "@next/swc-android-arm-eabi" "12.1.5" + "@next/swc-android-arm64" "12.1.5" + "@next/swc-darwin-arm64" "12.1.5" + "@next/swc-darwin-x64" "12.1.5" + "@next/swc-linux-arm-gnueabihf" "12.1.5" + "@next/swc-linux-arm64-gnu" "12.1.5" + "@next/swc-linux-arm64-musl" "12.1.5" + "@next/swc-linux-x64-gnu" "12.1.5" + "@next/swc-linux-x64-musl" "12.1.5" + "@next/swc-win32-arm64-msvc" "12.1.5" + "@next/swc-win32-ia32-msvc" "12.1.5" + "@next/swc-win32-x64-msvc" "12.1.5" + +node-abi@^3.3.0: + version "3.22.0" + resolved "https://registry.npmjs.org/node-abi/-/node-abi-3.22.0.tgz" + integrity sha512-u4uAs/4Zzmp/jjsD9cyFYDXeISfUWaAVWshPmDZOFOv4Xl4SbzTXm53I04C2uRueYJ+0t5PEtLH/owbn2Npf/w== + dependencies: + semver "^7.3.5" + +node-addon-api@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz" + integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== + +node-fetch@2.6.7: + version "2.6.7" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" + +node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: + version "4.4.0" + resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz" + integrity sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ== + +npmlog@^4.0.1: + version "4.1.2" + resolved "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-inspect@^1.12.0, object-inspect@^1.9.0: + version "1.12.1" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.1.tgz" + integrity sha512-Y/jF6vnvEtOPGiKD1+q+X0CiUYRQtEHp89MLLUJ7TUivtH8Ugn2+3A7Rynqk7BRsAoqeOQWnFnjpDrKSxDgIGA== + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +object.entries@^1.1.5: + version "1.1.5" + resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz" + integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + +object.fromentries@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz" + integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + +object.hasown@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz" + integrity sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A== + dependencies: + define-properties "^1.1.4" + es-abstract "^1.19.5" + +object.values@^1.1.5: + version "1.1.5" + resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz" + integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + +on-exit-leak-free@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz#5c703c968f7e7f851885f6459bf8a8a57edc9cc4" + integrity sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-entities@^1.1.2: + version "1.2.2" + resolved "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz" + integrity sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg== + dependencies: + character-entities "^1.0.0" + character-entities-legacy "^1.0.0" + character-reference-invalid "^1.0.0" + is-alphanumerical "^1.0.0" + is-decimal "^1.0.0" + is-hexadecimal "^1.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6, path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pbkdf2@^3.0.9: + version "3.1.2" + resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz" + integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.3.0, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pino-abstract-transport@v1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz#cc0d6955fffcadb91b7b49ef220a6cc111d48bb3" + integrity sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA== + dependencies: + readable-stream "^4.0.0" + split2 "^4.0.0" + +pino-pretty@4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-4.3.0.tgz#18695606fd4f1e21cd1585d18999cd84d429e1d8" + integrity sha512-uEc9SUCCGVEs0goZvyznKXBHtI1PNjGgqHviJHxOCEFEWZN6Z/IQKv5pO9gSdm/b+WfX+/dfheWhtZUyScqjlQ== + dependencies: + "@hapi/bourne" "^2.0.0" + args "^5.0.1" + chalk "^4.0.0" + dateformat "^3.0.3" + fast-safe-stringify "^2.0.7" + jmespath "^0.15.0" + joycon "^2.2.5" + pump "^3.0.0" + readable-stream "^3.6.0" + split2 "^3.1.1" + strip-json-comments "^3.1.1" + +pino-std-serializers@^2.4.2: + version "2.5.0" + resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-2.5.0.tgz#40ead781c65a0ce7ecd9c1c33f409d31fe712315" + integrity sha512-wXqbqSrIhE58TdrxxlfLwU9eDhrzppQDvGhBEr1gYbzzM4KKo3Y63gSjiDXRKLVS2UOXdPNR2v+KnQgNrs+xUg== + +pino-std-serializers@^3.1.0: + version "3.2.0" + resolved "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz" + integrity sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg== + +pino-std-serializers@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-6.0.0.tgz#4c20928a1bafca122fdc2a7a4a171ca1c5f9c526" + integrity sha512-mMMOwSKrmyl+Y12Ri2xhH1lbzQxwwpuru9VjyJpgFIH4asSj88F2csdMwN6+M5g1Ll4rmsYghHLQJw81tgZ7LQ== + +pino@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/pino/-/pino-6.7.0.tgz#d5d96b7004fed78816b5694fda3eab02b5ca6d23" + integrity sha512-vPXJ4P9rWCwzlTJt+f0Ni4THc3DWyt8iDDCO4edQ8narTu6hnpzdXu8FqeSJCGndl1W6lfbYQUQihUO54y66Lw== + dependencies: + fast-redact "^3.0.0" + fast-safe-stringify "^2.0.7" + flatstr "^1.0.12" + pino-std-serializers "^2.4.2" + quick-format-unescaped "^4.0.1" + sonic-boom "^1.0.2" + +pino@^6.7.0: + version "6.14.0" + resolved "https://registry.npmjs.org/pino/-/pino-6.14.0.tgz" + integrity sha512-iuhEDel3Z3hF9Jfe44DPXR8l07bhjuFY3GMHIXbjnY9XcafbyDDwl2sN2vw2GjMPf5Nkoe+OFao7ffn9SXaKDg== + dependencies: + fast-redact "^3.0.0" + fast-safe-stringify "^2.0.8" + flatstr "^1.0.12" + pino-std-serializers "^3.1.0" + process-warning "^1.0.0" + quick-format-unescaped "^4.0.3" + sonic-boom "^1.0.2" + +pino@^8.0.0: + version "8.7.0" + resolved "https://registry.yarnpkg.com/pino/-/pino-8.7.0.tgz#58621608a3d8540ae643cdd9194cdd94130c78d9" + integrity sha512-l9sA5uPxmZzwydhMWUcm1gI0YxNnYl8MfSr2h8cwLvOAzQLBLewzF247h/vqHe3/tt6fgtXeG9wdjjoetdI/vA== + dependencies: + atomic-sleep "^1.0.0" + fast-redact "^3.1.1" + on-exit-leak-free "^2.1.0" + pino-abstract-transport v1.0.0 + pino-std-serializers "^6.0.0" + process-warning "^2.0.0" + quick-format-unescaped "^4.0.3" + real-require "^0.2.0" + safe-stable-stringify "^2.3.1" + sonic-boom "^3.1.0" + thread-stream "^2.0.0" + +popmotion@11.0.3: + version "11.0.3" + resolved "https://registry.npmjs.org/popmotion/-/popmotion-11.0.3.tgz" + integrity sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA== + dependencies: + framesync "6.0.1" + hey-listen "^1.0.8" + style-value-types "5.0.0" + tslib "^2.1.0" + +postcss-value-parser@^4.0.2: + version "4.2.0" + resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@8.4.5: + version "8.4.5" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz" + integrity sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg== + dependencies: + nanoid "^3.1.30" + picocolors "^1.0.0" + source-map-js "^1.0.1" + +prebuild-install@^7.1.0: + version "7.1.0" + resolved "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.0.tgz" + integrity sha512-CNcMgI1xBypOyGqjp3wOc8AAo1nMhZS3Cwd3iHIxOdAUbb+YxdNuM4Z5iIrZ8RLvOsf3F3bl7b7xGq6DjQoNYA== + dependencies: + detect-libc "^2.0.0" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" + napi-build-utils "^1.0.1" + node-abi "^3.3.0" + npmlog "^4.0.1" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^4.0.0" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prettier@2.6.2: + version "2.6.2" + resolved "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz" + integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew== + +prismjs@^1.8.4: + version "1.28.0" + resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.28.0.tgz" + integrity sha512-8aaXdYvl1F7iC7Xm1spqSaY/OJBpYW3v+KJ+F17iYxvdc8sfjW194COK5wVhMZX45tGteiBQgdvD/nhxcRwylw== + +prismjs@~1.17.0: + version "1.17.1" + resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.17.1.tgz" + integrity sha512-PrEDJAFdUGbOP6xK/UsfkC5ghJsPJviKgnQOoxaDbBjwc8op68Quupwt1DeAFoG8GImPhiKXAvvsH7wDSLsu1Q== + optionalDependencies: + clipboard "^2.0.0" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process-warning@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz" + integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== + +process-warning@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-2.0.0.tgz#341dbeaac985b90a04ebcd844d50097c7737b2ee" + integrity sha512-+MmoAXoUX+VTHAlwns0h+kFUWFs/3FZy+ZuchkgjyOu3oioLAo2LB5aCfKPh2+P9O18i3m43tUEv3YqttSy0Ww== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + +prop-types@^15.7.2, prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +property-information@^5.0.0: + version "5.6.0" + resolved "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz" + integrity sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA== + dependencies: + xtend "^4.0.0" + +protobufjs@~6.10.2: + version "6.10.3" + resolved "https://registry.npmjs.org/protobufjs/-/protobufjs-6.10.3.tgz" + integrity sha512-yvAslS0hNdBhlSKckI4R1l7wunVilX66uvrjzE4MimiAt7/qw1nLpMhZrn/ObuUTM/c3Xnfl01LYMdcSJe6dwg== + 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/long" "^4.0.1" + "@types/node" "^13.7.0" + long "^4.0.0" + +protobufjs@~6.11.2: + version "6.11.3" + resolved "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz" + integrity sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg== + 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/long" "^4.0.1" + "@types/node" ">=13.7.0" + long "^4.0.0" + +proxy-compare@2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/proxy-compare/-/proxy-compare-2.1.0.tgz" + integrity sha512-wapJ3h/w8fRSyPEG0y2WMV+tf9xwvj3nxM6aHVuPEOwKs/t5xLSKZb44ubNTiqq2T6lmEMHEWGMTaU2L6ddaFA== + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +query-string@7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-7.1.1.tgz#754620669db978625a90f635f12617c271a088e1" + integrity sha512-MplouLRDHBZSG9z7fpuAAcI7aAYjDLhtsiVZsevsfaHWDS2IDdORKbSd1kWUA+V4zyva/HZoSfpwnYMMQDhb0w== + dependencies: + decode-uri-component "^0.2.0" + filter-obj "^1.1.0" + split-on-first "^1.0.0" + strict-uri-encode "^2.0.0" + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +quick-format-unescaped@^4.0.1, quick-format-unescaped@^4.0.3: + version "4.0.4" + resolved "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz" + integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== + +randombytes@^2.0.1, randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-code-blocks@0.0.9-0: + version "0.0.9-0" + resolved "https://registry.npmjs.org/react-code-blocks/-/react-code-blocks-0.0.9-0.tgz" + integrity sha512-jdYJVZwGtsr6WIUaqILy5fkF1acf57YV5s0V3+w5o9v3omYnqBeO6EuZi1Vf2x1hahkYGEedsp46+ofdkYlqyw== + dependencies: + "@babel/runtime" "^7.10.4" + react-syntax-highlighter "^12.2.1" + styled-components "^5.1.1" + tslib "^2.0.0" + +react-dom@17.0.2: + version "17.0.2" + resolved "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz" + integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + scheduler "^0.20.2" + +react-icons@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-4.4.0.tgz#a13a8a20c254854e1ec9aecef28a95cdf24ef703" + integrity sha512-fSbvHeVYo/B5/L4VhB7sBA1i2tS8MkT0Hb9t2H1AVPkwGfVHLJCqyr2Py9dKMxsyM63Eng1GkdZfbWj+Fmv8Rg== + +react-is@^16.13.1, react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-qr-reader-es6@2.2.1-2: + version "2.2.1-2" + resolved "https://registry.npmjs.org/react-qr-reader-es6/-/react-qr-reader-es6-2.2.1-2.tgz" + integrity sha512-pDNH8FoR3fOBBCgh4ImKHlX+pv/D3P8JmE+vjjcw3+YTEUgBqUAZbIkD/WUE3HzhVhN2zx7ZLBhO9vJngnjJxw== + dependencies: + jsqr-es6 "^1.4.0-1" + prop-types "^15.7.2" + +react-syntax-highlighter@^12.2.1: + version "12.2.1" + resolved "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-12.2.1.tgz" + integrity sha512-CTsp0ZWijwKRYFg9xhkWD4DSpQqE4vb2NKVMdPAkomnILSmsNBHE0n5GuI5zB+PU3ySVvXvdt9jo+ViD9XibCA== + dependencies: + "@babel/runtime" "^7.3.1" + highlight.js "~9.15.1" + lowlight "1.12.1" + prismjs "^1.8.4" + refractor "^2.4.1" + +react@17.0.2: + version "17.0.2" + resolved "https://registry.npmjs.org/react/-/react-17.0.2.tgz" + integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +readable-stream@^2.0.6: + version "2.3.7" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.0, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.2.0.tgz#a7ef523d3b39e4962b0db1a1af22777b10eeca46" + integrity sha512-gJrBHsaI3lgBoGMW/jHZsQ/o/TIWiu5ENCJG1BB7fuCKzpFM8GaS2UoBVt9NO+oI+3FcrBNbUkl3ilDe09aY4A== + dependencies: + abort-controller "^3.0.0" + buffer "^6.0.3" + events "^3.3.0" + process "^0.11.10" + +readonly-date@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/readonly-date/-/readonly-date-1.0.0.tgz" + integrity sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ== + +real-require@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.2.0.tgz#209632dea1810be2ae063a6ac084fee7e33fba78" + integrity sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg== + +refractor@^2.4.1: + version "2.10.1" + resolved "https://registry.npmjs.org/refractor/-/refractor-2.10.1.tgz" + integrity sha512-Xh9o7hQiQlDbxo5/XkOX6H+x/q8rmlmZKr97Ie1Q8ZM32IRRd3B/UxuA/yXDW79DBSXGWxm2yRTbcTVmAciJRw== + dependencies: + hastscript "^5.0.0" + parse-entities "^1.1.2" + prismjs "~1.17.0" + +regenerator-runtime@^0.13.4: + version "0.13.9" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz" + integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== + +regexp.prototype.flags@^1.4.1, regexp.prototype.flags@^1.4.3: + version "1.4.3" + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz" + integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + functions-have-names "^1.2.2" + +regexpp@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve@^1.20.0, resolve@^1.22.0: + version "1.22.0" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz" + integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== + dependencies: + is-core-module "^2.8.1" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resolve@^2.0.0-next.3: + version "2.0.0-next.3" + resolved "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz" + integrity sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1, ripemd160@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rpc-websockets@^7.4.2: + version "7.4.18" + resolved "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.4.18.tgz" + integrity sha512-bVu+4qM5CkGVlTqJa6FaAxLbb5uRnyH4te7yjFvoCzbnif7PT4BcvXtNTprHlNvsH+/StB81zUQicxMrUrIomA== + dependencies: + "@babel/runtime" "^7.17.2" + eventemitter3 "^4.0.7" + uuid "^8.3.2" + ws "^8.5.0" + optionalDependencies: + bufferutil "^4.0.1" + utf-8-validate "^5.0.2" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-json-utils@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/safe-json-utils/-/safe-json-utils-1.1.1.tgz" + integrity sha512-SAJWGKDs50tAbiDXLf89PDwt9XYkWyANFWVzn4dTXl5QyI8t2o/bW5/OJl3lvc2WVU4MEpTo9Yz5NVFNsp+OJQ== + +safe-stable-stringify@^2.3.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.1.tgz#34694bd8a30575b7f94792aa51527551bd733d61" + integrity sha512-dVHE6bMtS/bnL2mwualjc6IxEv1F+OCUpA46pKUj6F8uDbUM0jCCulPqRNPSnWwGNKx5etqMjZYdXtrm5KJZGA== + +scheduler@^0.20.2: + version "0.20.2" + resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz" + integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +scrypt-js@3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz" + integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== + +secp256k1@^4.0.2: + version "4.0.3" + resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz" + integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== + dependencies: + elliptic "^6.5.4" + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + +select@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/select/-/select-1.1.2.tgz" + integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= + +semver@^6.3.0: + version "6.3.0" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.3.5, semver@^7.3.7: + version "7.3.7" + resolved "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz" + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== + dependencies: + lru-cache "^6.0.0" + +set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +sha.js@^2.4.0, sha.js@^2.4.11, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shallowequal@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +signal-exit@^3.0.0: + version "3.0.7" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz" + integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== + dependencies: + decompress-response "^6.0.0" + once "^1.3.1" + simple-concat "^1.0.0" + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +solana-wallet@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/solana-wallet/-/solana-wallet-1.0.1.tgz" + integrity sha512-rkYu9gwayAdVMhWGdZSz6a+IaOJXs3TNtYXWuSQsdMJUndkQ+puy7cB9/u5pwZTjqzxtd1DN9cbAFKFH5648xQ== + dependencies: + "@solana/web3.js" "^1.35.1" + bs58 "^5.0.0" + tweetnacl "^1.0.3" + +sonic-boom@^1.0.2: + version "1.4.1" + resolved "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz" + integrity sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg== + dependencies: + atomic-sleep "^1.0.0" + flatstr "^1.0.12" + +sonic-boom@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.2.0.tgz#ce9f2de7557e68be2e52c8df6d9b052e7d348143" + integrity sha512-SbbZ+Kqj/XIunvIAgUZRlqd6CGQYq71tRRbXR92Za8J/R3Yh4Av+TWENiSiEgnlwckYLyP0YZQWVfyNC0dzLaA== + dependencies: + atomic-sleep "^1.0.0" + +source-map-js@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +space-separated-tokens@^1.0.0: + version "1.1.5" + resolved "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz" + integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== + +split-on-first@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz" + integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== + +split2@^3.1.1: + version "3.2.2" + resolved "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz" + integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== + dependencies: + readable-stream "^3.0.0" + +split2@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.1.0.tgz#101907a24370f85bb782f08adaabe4e281ecf809" + integrity sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ== + +strict-uri-encode@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz" + integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2 || 3 || 4": + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string.prototype.matchall@^4.0.7: + version "4.0.7" + resolved "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz" + integrity sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + get-intrinsic "^1.1.1" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + regexp.prototype.flags "^1.4.1" + side-channel "^1.0.4" + +string.prototype.trimend@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz" + integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" + +string.prototype.trimstart@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz" + integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +style-value-types@5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/style-value-types/-/style-value-types-5.0.0.tgz" + integrity sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA== + dependencies: + hey-listen "^1.0.8" + tslib "^2.1.0" + +styled-components@^5.1.1: + version "5.3.5" + resolved "https://registry.npmjs.org/styled-components/-/styled-components-5.3.5.tgz" + integrity sha512-ndETJ9RKaaL6q41B69WudeqLzOpY1A/ET/glXkNZ2T7dPjPqpPCXXQjDFYZWwNnE5co0wX+gTCqx9mfxTmSIPg== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/traverse" "^7.4.5" + "@emotion/is-prop-valid" "^1.1.0" + "@emotion/stylis" "^0.8.4" + "@emotion/unitless" "^0.7.4" + babel-plugin-styled-components ">= 1.12.0" + css-to-react-native "^3.0.0" + hoist-non-react-statics "^3.0.0" + shallowequal "^1.1.0" + supports-color "^5.5.0" + +styled-jsx@5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.1.tgz" + integrity sha512-+PIZ/6Uk40mphiQJJI1202b+/dYeTVd9ZnMPR80pgiWbjIwvN2zIp4r9et0BgqBuShh48I0gttPlAXA7WVvBxw== + +superstruct@^0.14.2: + version "0.14.2" + resolved "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz" + integrity sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ== + +supports-color@^5.3.0, supports-color@^5.5.0: + version "5.5.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +tar-fs@^2.0.0: + version "2.1.1" + resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz" + integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.1.4" + +tar-stream@^2.1.4: + version "2.2.0" + resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +text-encoding-utf-8@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz" + integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +thread-stream@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-2.2.0.tgz#310c03a253f729094ce5d4638ef5186dfa80a9e8" + integrity sha512-rUkv4/fnb4rqy/gGy7VuqK6wE1+1DOCOWy4RMeaV69ZHMP11tQKZvZSip1yTgrKCMZzEMcCL/bKfHvSfDHx+iQ== + dependencies: + real-require "^0.2.0" + +"through@>=2.2.7 <3": + version "2.3.8" + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +tiny-emitter@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz" + integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== + +tiny-secp256k1@^1.1.3: + version "1.1.6" + resolved "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-1.1.6.tgz" + integrity sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA== + dependencies: + bindings "^1.3.0" + bn.js "^4.11.8" + create-hmac "^1.1.7" + elliptic "^6.4.0" + nan "^2.13.2" + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" + integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + +tsconfig-paths@^3.14.1: + version "3.14.1" + resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz" + integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tslib@^1.8.1: + version "1.14.1" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.0, tslib@^2.1.0: + version "2.4.0" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^1.0.0, tweetnacl@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz" + integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +typedarray-to-buffer@3.1.5: + version "3.1.5" + resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typeforce@^1.11.5: + version "1.18.0" + resolved "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz" + integrity sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g== + +typescript@4.6.4: + version "4.6.4" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz" + integrity sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg== + +uint8arrays@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.0.tgz#8186b8eafce68f28bd29bd29d683a311778901e2" + integrity sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog== + dependencies: + multiformats "^9.4.2" + +uint8arrays@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz" + integrity sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA== + dependencies: + multiformats "^9.4.2" + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +use-sync-external-store@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.0.0.tgz" + integrity sha512-AFVsxg5GkFg8GDcxnl+Z0lMAz9rE8DGJCc28qnBuQF7lac57B5smLcT37aXpXIIPz75rW4g3eXHPjhHwdGskOw== + +utf-8-validate@^5.0.2: + version "5.0.9" + resolved "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.9.tgz" + integrity sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q== + dependencies: + node-gyp-build "^4.3.0" + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-compile-cache@^2.0.3: + version "2.3.0" + resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== + +valtio@1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/valtio/-/valtio-1.6.0.tgz" + integrity sha512-I/AUMRGlGpskbTdwYbiJutMKq4AHPgV8GWMwvPPQ6jdAhlWO4gheK4bTKZ22Ff5ONXjjZE8mQ0vL5l0em4wJGg== + dependencies: + proxy-compare "2.1.0" + use-sync-external-store "1.0.0" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" + integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" + integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.5" + resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + dependencies: + string-width "^1.0.2 || 2 || 3 || 4" + +wif@^2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz" + integrity sha1-CNP1IFbGZnkplyb63g1DKudLRwQ= + dependencies: + bs58check "<3.0.0" + +word-wrap@^1.2.3: + version "1.2.3" + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +ws@7.4.6: + version "7.4.6" + resolved "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz" + integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== + +ws@^7.4.5, ws@^7.5.1: + version "7.5.7" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz" + integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== + +ws@^8.5.0: + version "8.6.0" + resolved "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz" + integrity sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw== + +xtend@^4.0.0: + version "4.0.2" + resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==