diff --git a/apps/trading/.env b/apps/trading/.env
new file mode 100644
index 000000000..1271252c7
--- /dev/null
+++ b/apps/trading/.env
@@ -0,0 +1,24 @@
+# React Environment Variables
+# https://facebook.github.io/create-react-app/docs/adding-custom-environment-variables#expanding-environment-variables-in-env
+
+# Netlify Environment Variables
+# https://www.netlify.com/docs/continuous-deployment/#environment-variables
+NX_VERSION=$npm_package_version
+NX_REPOSITORY_URL=$REPOSITORY_URL
+NX_BRANCH=$BRANCH
+NX_PULL_REQUEST=$PULL_REQUEST
+NX_HEAD=$HEAD
+NX_COMMIT_REF=$COMMIT_REF
+NX_CONTEXT=$CONTEXT
+NX_REVIEW_ID=$REVIEW_ID
+NX_INCOMING_HOOK_TITLE=$INCOMING_HOOK_TITLE
+NX_INCOMING_HOOK_URL=$INCOMING_HOOK_URL
+NX_INCOMING_HOOK_BODY=$INCOMING_HOOK_BODY
+NX_URL=$URL
+NX_DEPLOY_URL=$DEPLOY_URL
+NX_DEPLOY_PRIME_URL=$DEPLOY_PRIME_URL
+
+# App configuration variables
+NX_VEGA_URL = "https://lb.testnet.vega.xyz/query"
+NX_ETHEREUM_CHAIN_ID = 3
+NX_INFURA_ID = "4f846e79e13f44d1b51bbd7ed9edefb8";
\ No newline at end of file
diff --git a/apps/trading/.env.devent b/apps/trading/.env.devent
new file mode 100644
index 000000000..d2f47df37
--- /dev/null
+++ b/apps/trading/.env.devent
@@ -0,0 +1,4 @@
+# App configuration variables
+NX_VEGA_URL = "https://n04.d.vega.xyz/query"
+NX_ETHEREUM_CHAIN_ID = 3
+NX_INFURA_ID = "4f846e79e13f44d1b51bbd7ed9edefb8";
\ No newline at end of file
diff --git a/apps/trading/.env.mainnet b/apps/trading/.env.mainnet
new file mode 100644
index 000000000..634a2fb17
--- /dev/null
+++ b/apps/trading/.env.mainnet
@@ -0,0 +1,4 @@
+# App configuration variables
+NX_VEGA_URL = "https://api.token.vega.xyz/query"
+NX_ETHEREUM_CHAIN_ID = 1
+NX_INFURA_ID = "4f846e79e13f44d1b51bbd7ed9edefb8";
\ No newline at end of file
diff --git a/apps/trading/.env.stagnet1 b/apps/trading/.env.stagnet1
new file mode 100644
index 000000000..907bec9f0
--- /dev/null
+++ b/apps/trading/.env.stagnet1
@@ -0,0 +1,4 @@
+# App configuration variables
+NX_VEGA_URL = "https://n03.s.vega.xyz/query"
+NX_ETHEREUM_CHAIN_ID = 3
+NX_INFURA_ID = "4f846e79e13f44d1b51bbd7ed9edefb8";
diff --git a/apps/trading/.env.stagnet2 b/apps/trading/.env.stagnet2
new file mode 100644
index 000000000..adb972a50
--- /dev/null
+++ b/apps/trading/.env.stagnet2
@@ -0,0 +1,4 @@
+# App configuration variables
+NX_VEGA_URL = "https://n03.stagnet2.vega.xyz/query"
+NX_ETHEREUM_CHAIN_ID = 3
+NX_INFURA_ID = "4f846e79e13f44d1b51bbd7ed9edefb8";
\ No newline at end of file
diff --git a/apps/trading/.env.testnet b/apps/trading/.env.testnet
new file mode 100644
index 000000000..1909d68a5
--- /dev/null
+++ b/apps/trading/.env.testnet
@@ -0,0 +1,4 @@
+# App configuration variables
+NX_VEGA_URL = "https://lb.testnet.vega.xyz/query"
+NX_ETHEREUM_CHAIN_ID = 3
+NX_INFURA_ID = "4f846e79e13f44d1b51bbd7ed9edefb8";
\ No newline at end of file
diff --git a/apps/trading/components/vega-wallet-connect-button/index.tsx b/apps/trading/components/vega-wallet-connect-button/index.tsx
index 8571b81b1..2a72e9289 100644
--- a/apps/trading/components/vega-wallet-connect-button/index.tsx
+++ b/apps/trading/components/vega-wallet-connect-button/index.tsx
@@ -23,7 +23,7 @@ export const VegaWalletButton = ({
onClick={handleClick}
className="ml-auto inline-block text-ui sm:text-body-large"
>
- {isConnected ? 'Disconnect' : 'Connect Vega wallet'}
+ {isConnected ? 'Disconnect Vega wallet' : 'Connect Vega wallet'}
);
};
diff --git a/apps/trading/components/web3-container/index.ts b/apps/trading/components/web3-container/index.ts
new file mode 100644
index 000000000..6e35feeb3
--- /dev/null
+++ b/apps/trading/components/web3-container/index.ts
@@ -0,0 +1 @@
+export { Web3Container } from './web3-container';
diff --git a/apps/trading/components/web3-container/web3-container.spec.tsx b/apps/trading/components/web3-container/web3-container.spec.tsx
new file mode 100644
index 000000000..eda7b6351
--- /dev/null
+++ b/apps/trading/components/web3-container/web3-container.spec.tsx
@@ -0,0 +1,65 @@
+import { fireEvent, render, screen } from '@testing-library/react';
+import { Web3Container } from './web3-container';
+
+const defaultHookValue = {
+ isActive: false,
+ error: undefined,
+ connector: null,
+ chainId: 3,
+};
+let mockHookValue;
+
+jest.mock('@web3-react/core', () => {
+ const original = jest.requireActual('@web3-react/core');
+ return {
+ ...original,
+ useWeb3React: jest.fn(() => mockHookValue),
+ };
+});
+
+test('Prompt to connect opens dialog', () => {
+ mockHookValue = defaultHookValue;
+ render(
+
+ Child
+
+ );
+
+ expect(screen.queryByText('Child')).not.toBeInTheDocument();
+ expect(screen.queryByTestId('web3-connector-list')).not.toBeInTheDocument();
+ expect(screen.getByText('Connect your Ethereum wallet')).toBeInTheDocument();
+ fireEvent.click(screen.getByText('Connect'));
+ expect(screen.getByTestId('web3-connector-list')).toBeInTheDocument();
+});
+
+test('Error message is shown', () => {
+ const message = 'Opps! An error';
+ mockHookValue = { ...defaultHookValue, error: new Error(message) };
+
+ render(
+
+ Child
+
+ );
+
+ expect(screen.queryByText('Child')).not.toBeInTheDocument();
+ expect(screen.getByText(`Something went wrong: ${message}`));
+});
+
+test('Chain id matches app configuration', () => {
+ const expectedChainId = 4;
+ mockHookValue = {
+ ...defaultHookValue,
+ isActive: true,
+ chainId: expectedChainId,
+ };
+
+ render(
+
+ Child
+
+ );
+
+ expect(screen.queryByText('Child')).not.toBeInTheDocument();
+ expect(screen.getByText(`This app only works on chain ID: 3`));
+});
diff --git a/apps/trading/components/web3-container/web3-container.tsx b/apps/trading/components/web3-container/web3-container.tsx
new file mode 100644
index 000000000..2698d6a46
--- /dev/null
+++ b/apps/trading/components/web3-container/web3-container.tsx
@@ -0,0 +1,79 @@
+import { Button, Splash } from '@vegaprotocol/ui-toolkit';
+import { Web3Provider, Web3ConnectDialog } from '@vegaprotocol/web3';
+import { useWeb3React } from '@web3-react/core';
+import { ReactNode, useEffect, useState } from 'react';
+import { Connectors } from '../../lib/web3-connectors';
+
+interface Web3ContainerProps {
+ children: ReactNode;
+}
+
+export const Web3Container = ({ children }: Web3ContainerProps) => {
+ const [dialogOpen, setDialogOpen] = useState(false);
+ return (
+
+ {children}
+
+
+ );
+};
+
+interface Web3ContentProps {
+ children: ReactNode;
+ setDialogOpen: (isOpen: boolean) => void;
+}
+
+export const Web3Content = ({ children, setDialogOpen }: Web3ContentProps) => {
+ const appChainId = Number(process.env['NX_ETHEREUM_CHAIN_ID'] || 3);
+ const { isActive, error, connector, chainId } = useWeb3React();
+
+ useEffect(() => {
+ connector?.connectEagerly();
+ }, [connector]);
+
+ if (error) {
+ return (
+
+ Something went wrong: {error.message}
+
+
+ );
+ }
+
+ if (!isActive) {
+ return (
+
+ Connect your Ethereum wallet
+
+
+ );
+ }
+
+ if (chainId !== appChainId) {
+ return (
+
+ This app only works on chain ID: {appChainId}
+
+
+ );
+ }
+
+ return <>{children}>;
+};
+
+interface SplashWrapperProps {
+ children: ReactNode;
+}
+
+const SplashWrapper = ({ children }: SplashWrapperProps) => {
+ return (
+
+ {children}
+
+ );
+};
diff --git a/apps/trading/hooks/use-vega-wallet-eager-connect.ts b/apps/trading/hooks/use-vega-wallet-eager-connect.ts
index 1b40cbdbb..8da9055d8 100644
--- a/apps/trading/hooks/use-vega-wallet-eager-connect.ts
+++ b/apps/trading/hooks/use-vega-wallet-eager-connect.ts
@@ -1,7 +1,7 @@
import { useVegaWallet, WALLET_CONFIG } from '@vegaprotocol/wallet';
import { useEffect } from 'react';
import { LocalStorage } from '@vegaprotocol/react-helpers';
-import { Connectors } from '../lib/connectors';
+import { Connectors } from '../lib/vega-connectors';
export function useEagerConnect() {
const { connect } = useVegaWallet();
diff --git a/apps/trading/lib/connectors.ts b/apps/trading/lib/vega-connectors.ts
similarity index 100%
rename from apps/trading/lib/connectors.ts
rename to apps/trading/lib/vega-connectors.ts
diff --git a/apps/trading/lib/web3-connectors.ts b/apps/trading/lib/web3-connectors.ts
new file mode 100644
index 000000000..0567b4b83
--- /dev/null
+++ b/apps/trading/lib/web3-connectors.ts
@@ -0,0 +1,23 @@
+import { initializeConnector } from '@web3-react/core';
+import { MetaMask } from '@web3-react/metamask';
+import { WalletConnect } from '@web3-react/walletconnect';
+
+export const metamask = initializeConnector(
+ (actions) => new MetaMask(actions)
+);
+
+export const walletconnect = initializeConnector(
+ (actions) =>
+ new WalletConnect(actions, {
+ rpc: {
+ 1: `https://mainnet.infura.io/v3/${process.env['NX_INFURA_ID']}`,
+ 3: `https://ropsten.infura.io/v3/${process.env['NX_INFURA_ID']}`,
+ },
+ }),
+ [1, 3]
+);
+
+export const Connectors = {
+ metamask,
+ walletconnect,
+};
diff --git a/apps/trading/pages/_app.page.tsx b/apps/trading/pages/_app.page.tsx
index fe20d1396..3c59855d9 100644
--- a/apps/trading/pages/_app.page.tsx
+++ b/apps/trading/pages/_app.page.tsx
@@ -3,7 +3,7 @@ import Head from 'next/head';
import { Navbar } from '../components/navbar';
import { ThemeContext } from '@vegaprotocol/react-helpers';
import { VegaConnectDialog, VegaWalletProvider } from '@vegaprotocol/wallet';
-import { Connectors } from '../lib/connectors';
+import { Connectors } from '../lib/vega-connectors';
import { useCallback, useMemo, useState } from 'react';
import { createClient } from '../lib/apollo-client';
import { ThemeSwitcher } from '@vegaprotocol/ui-toolkit';
@@ -15,11 +15,7 @@ import { useThemeSwitcher } from '../hooks/use-theme-switcher';
import './styles.css';
function VegaTradingApp({ Component, pageProps }: AppProps) {
- const client = useMemo(
- () =>
- createClient(process.env['NX_VEGA_URL'] || 'https://lb.testnet.vega.xyz'),
- []
- );
+ const client = useMemo(() => createClient(process.env['NX_VEGA_URL']), []);
const [dialogOpen, setDialogOpen] = useState(false);
const [theme, toggleTheme] = useThemeSwitcher();
diff --git a/apps/trading/pages/portfolio/deposit/index.page.tsx b/apps/trading/pages/portfolio/deposit/index.page.tsx
new file mode 100644
index 000000000..da45dfc7c
--- /dev/null
+++ b/apps/trading/pages/portfolio/deposit/index.page.tsx
@@ -0,0 +1,28 @@
+import { useWeb3React } from '@web3-react/core';
+import { Web3Container } from '../../../components/web3-container';
+
+const Deposit = () => {
+ return (
+
+
+
Deposit
+
+
+
+ );
+};
+
+const Info = () => {
+ const { isActive, chainId, accounts } = useWeb3React();
+ if (!isActive) {
+ return Not active
;
+ }
+ return (
+
+
{chainId}
+
{accounts[0]}
+
+ );
+};
+
+export default Deposit;
diff --git a/apps/trading/pages/portfolio/index.page.tsx b/apps/trading/pages/portfolio/index.page.tsx
index 484564ca7..5cf191e63 100644
--- a/apps/trading/pages/portfolio/index.page.tsx
+++ b/apps/trading/pages/portfolio/index.page.tsx
@@ -1,3 +1,4 @@
+import { AnchorButton } from '@vegaprotocol/ui-toolkit';
import { useVegaWallet } from '@vegaprotocol/wallet';
const Portfolio = () => {
@@ -10,6 +11,9 @@ const Portfolio = () => {
Keypair: {keypair.name} {keypair.pub}
)}
+
);
};
diff --git a/libs/wallet/src/connect-dialog.tsx b/libs/wallet/src/connect-dialog.tsx
index 7b4e8656b..f75a39057 100644
--- a/libs/wallet/src/connect-dialog.tsx
+++ b/libs/wallet/src/connect-dialog.tsx
@@ -67,11 +67,11 @@ export function VegaConnectDialog({
- {connector.description}
+ {connector.description}
))}
diff --git a/libs/web3/.babelrc b/libs/web3/.babelrc
new file mode 100644
index 000000000..ccae900be
--- /dev/null
+++ b/libs/web3/.babelrc
@@ -0,0 +1,12 @@
+{
+ "presets": [
+ [
+ "@nrwl/react/babel",
+ {
+ "runtime": "automatic",
+ "useBuiltIns": "usage"
+ }
+ ]
+ ],
+ "plugins": []
+}
diff --git a/libs/web3/.eslintrc.json b/libs/web3/.eslintrc.json
new file mode 100644
index 000000000..734ddacee
--- /dev/null
+++ b/libs/web3/.eslintrc.json
@@ -0,0 +1,18 @@
+{
+ "extends": ["plugin:@nrwl/nx/react", "../../.eslintrc.json"],
+ "ignorePatterns": ["!**/*"],
+ "overrides": [
+ {
+ "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
+ "rules": {}
+ },
+ {
+ "files": ["*.ts", "*.tsx"],
+ "rules": {}
+ },
+ {
+ "files": ["*.js", "*.jsx"],
+ "rules": {}
+ }
+ ]
+}
diff --git a/libs/web3/README.md b/libs/web3/README.md
new file mode 100644
index 000000000..4ddd1785f
--- /dev/null
+++ b/libs/web3/README.md
@@ -0,0 +1,7 @@
+# web3
+
+This library was generated with [Nx](https://nx.dev).
+
+## Running unit tests
+
+Run `nx test web3` to execute the unit tests via [Jest](https://jestjs.io).
diff --git a/libs/web3/jest.config.js b/libs/web3/jest.config.js
new file mode 100644
index 000000000..bd0f5f9e5
--- /dev/null
+++ b/libs/web3/jest.config.js
@@ -0,0 +1,10 @@
+module.exports = {
+ displayName: 'web3',
+ preset: '../../jest.preset.js',
+ transform: {
+ '^.+\\.[tj]sx?$': 'babel-jest',
+ },
+ moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
+ coverageDirectory: '../../coverage/libs/web3',
+ setupFilesAfterEnv: ['./src/setup-tests.ts'],
+};
diff --git a/libs/web3/project.json b/libs/web3/project.json
new file mode 100644
index 000000000..76a6d2287
--- /dev/null
+++ b/libs/web3/project.json
@@ -0,0 +1,23 @@
+{
+ "root": "libs/web3",
+ "sourceRoot": "libs/web3/src",
+ "projectType": "library",
+ "tags": [],
+ "targets": {
+ "lint": {
+ "executor": "@nrwl/linter:eslint",
+ "outputs": ["{options.outputFile}"],
+ "options": {
+ "lintFilePatterns": ["libs/web3/**/*.{ts,tsx,js,jsx}"]
+ }
+ },
+ "test": {
+ "executor": "@nrwl/jest:jest",
+ "outputs": ["coverage/libs/web3"],
+ "options": {
+ "jestConfig": "libs/web3/jest.config.js",
+ "passWithNoTests": true
+ }
+ }
+ }
+}
diff --git a/libs/web3/src/index.ts b/libs/web3/src/index.ts
new file mode 100644
index 000000000..76dfd08fb
--- /dev/null
+++ b/libs/web3/src/index.ts
@@ -0,0 +1,2 @@
+export * from './lib/web3-provider';
+export * from './lib/web3-connect-dialog';
diff --git a/libs/web3/src/lib/types.ts b/libs/web3/src/lib/types.ts
new file mode 100644
index 000000000..f0a54f765
--- /dev/null
+++ b/libs/web3/src/lib/types.ts
@@ -0,0 +1,8 @@
+import { Web3ReactHooks } from '@web3-react/core';
+import { MetaMask } from '@web3-react/metamask';
+import { WalletConnect } from '@web3-react/walletconnect';
+
+export type Connectors = {
+ [name: string]: [Connector, Web3ReactHooks, object];
+};
+type Connector = MetaMask | WalletConnect;
diff --git a/libs/web3/src/lib/web3-connect-dialog.spec.tsx b/libs/web3/src/lib/web3-connect-dialog.spec.tsx
new file mode 100644
index 000000000..9f73e7406
--- /dev/null
+++ b/libs/web3/src/lib/web3-connect-dialog.spec.tsx
@@ -0,0 +1,48 @@
+import { fireEvent, render, screen, waitFor } from '@testing-library/react';
+import { Web3ConnectDialog } from './web3-connect-dialog';
+import { initializeConnector } from '@web3-react/core';
+import { MetaMask } from '@web3-react/metamask';
+
+const connectors = {
+ foo: initializeConnector((actions) => new MetaMask(actions)),
+ bar: initializeConnector((actions) => new MetaMask(actions)),
+};
+
+const props = {
+ dialogOpen: false,
+ setDialogOpen: jest.fn(),
+ connectors,
+ desiredChainId: 3,
+};
+
+test('Dialog can be open or closed', () => {
+ const { container, rerender } = render();
+ expect(container).toBeEmptyDOMElement();
+ rerender();
+ expect(screen.getByTestId('web3-connector-list')).toBeInTheDocument();
+ expect(
+ screen.getByText('Connect to your Ethereum wallet')
+ ).toBeInTheDocument();
+});
+
+test('Renders connection options', async () => {
+ const spyOnConnect = jest
+ .spyOn(connectors.foo[0], 'activate')
+ .mockReturnValue(Promise.resolve());
+
+ render();
+ const connectorList = screen.getByTestId('web3-connector-list');
+ expect(connectorList).toBeInTheDocument();
+ expect(connectorList.children).toHaveLength(Object.keys(connectors).length);
+
+ // foo/bar connector options displayed
+ expect(screen.getByTestId('web3-connector-foo')).toBeInTheDocument();
+ expect(screen.getByTestId('web3-connector-bar')).toBeInTheDocument();
+
+ // Assert connection is attempted with desired chain
+ fireEvent.click(screen.getByTestId('web3-connector-foo'));
+ expect(spyOnConnect).toHaveBeenCalledWith(props.desiredChainId);
+ await waitFor(() => {
+ expect(props.setDialogOpen).toHaveBeenCalledWith(false);
+ });
+});
diff --git a/libs/web3/src/lib/web3-connect-dialog.tsx b/libs/web3/src/lib/web3-connect-dialog.tsx
new file mode 100644
index 000000000..de11df2d1
--- /dev/null
+++ b/libs/web3/src/lib/web3-connect-dialog.tsx
@@ -0,0 +1,44 @@
+import { Dialog, Intent } from '@vegaprotocol/ui-toolkit';
+import { Connectors } from './types';
+
+interface Web3ConnectDialogProps {
+ dialogOpen: boolean;
+ setDialogOpen: (isOpen: boolean) => void;
+ connectors: Connectors;
+ desiredChainId?: number;
+}
+
+export const Web3ConnectDialog = ({
+ dialogOpen,
+ setDialogOpen,
+ connectors,
+ desiredChainId,
+}: Web3ConnectDialogProps) => {
+ return (
+
+ );
+};
diff --git a/libs/web3/src/lib/web3-provider.spec.tsx b/libs/web3/src/lib/web3-provider.spec.tsx
new file mode 100644
index 000000000..29ca7da2e
--- /dev/null
+++ b/libs/web3/src/lib/web3-provider.spec.tsx
@@ -0,0 +1,20 @@
+import { act, render, screen } from '@testing-library/react';
+import { initializeConnector } from '@web3-react/core';
+import { MetaMask } from '@web3-react/metamask';
+import { Web3Provider } from './web3-provider';
+
+const connectors = {
+ foo: initializeConnector((actions) => new MetaMask(actions)),
+};
+
+test('Renders children', async () => {
+ await act(async () => {
+ render(
+
+ Child
+
+ );
+ });
+
+ expect(screen.getByText('Child')).toBeInTheDocument();
+});
diff --git a/libs/web3/src/lib/web3-provider.tsx b/libs/web3/src/lib/web3-provider.tsx
new file mode 100644
index 000000000..e7c429f93
--- /dev/null
+++ b/libs/web3/src/lib/web3-provider.tsx
@@ -0,0 +1,19 @@
+import { Web3ReactProvider } from '@web3-react/core';
+import { Connectors } from './types';
+
+interface Web3ProviderProps {
+ children: JSX.Element | JSX.Element[];
+ connectors: Connectors;
+}
+
+export const Web3Provider = ({ children, connectors }: Web3ProviderProps) => {
+ return (
+ {
+ return [connector, hooks];
+ })}
+ >
+ {children}
+
+ );
+};
diff --git a/libs/web3/src/setup-tests.ts b/libs/web3/src/setup-tests.ts
new file mode 100644
index 000000000..7b0828bfa
--- /dev/null
+++ b/libs/web3/src/setup-tests.ts
@@ -0,0 +1 @@
+import '@testing-library/jest-dom';
diff --git a/libs/web3/tsconfig.json b/libs/web3/tsconfig.json
new file mode 100644
index 000000000..4c089585e
--- /dev/null
+++ b/libs/web3/tsconfig.json
@@ -0,0 +1,25 @@
+{
+ "extends": "../../tsconfig.base.json",
+ "compilerOptions": {
+ "jsx": "react-jsx",
+ "allowJs": true,
+ "esModuleInterop": true,
+ "allowSyntheticDefaultImports": true,
+ "forceConsistentCasingInFileNames": true,
+ "strict": true,
+ "noImplicitOverride": true,
+ "noPropertyAccessFromIndexSignature": true,
+ "noImplicitReturns": true,
+ "noFallthroughCasesInSwitch": true
+ },
+ "files": [],
+ "include": [],
+ "references": [
+ {
+ "path": "./tsconfig.lib.json"
+ },
+ {
+ "path": "./tsconfig.spec.json"
+ }
+ ]
+}
diff --git a/libs/web3/tsconfig.lib.json b/libs/web3/tsconfig.lib.json
new file mode 100644
index 000000000..252904bb7
--- /dev/null
+++ b/libs/web3/tsconfig.lib.json
@@ -0,0 +1,22 @@
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "outDir": "../../dist/out-tsc",
+ "types": ["node"]
+ },
+ "files": [
+ "../../node_modules/@nrwl/react/typings/cssmodule.d.ts",
+ "../../node_modules/@nrwl/react/typings/image.d.ts"
+ ],
+ "exclude": [
+ "**/*.spec.ts",
+ "**/*.test.ts",
+ "**/*.spec.tsx",
+ "**/*.test.tsx",
+ "**/*.spec.js",
+ "**/*.test.js",
+ "**/*.spec.jsx",
+ "**/*.test.jsx"
+ ],
+ "include": ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"]
+}
diff --git a/libs/web3/tsconfig.spec.json b/libs/web3/tsconfig.spec.json
new file mode 100644
index 000000000..67f149c4c
--- /dev/null
+++ b/libs/web3/tsconfig.spec.json
@@ -0,0 +1,19 @@
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "outDir": "../../dist/out-tsc",
+ "module": "commonjs",
+ "types": ["jest", "node"]
+ },
+ "include": [
+ "**/*.test.ts",
+ "**/*.spec.ts",
+ "**/*.test.tsx",
+ "**/*.spec.tsx",
+ "**/*.test.js",
+ "**/*.spec.js",
+ "**/*.test.jsx",
+ "**/*.spec.jsx",
+ "**/*.d.ts"
+ ]
+}
diff --git a/package.json b/package.json
index 8f0744025..1b268ddf0 100644
--- a/package.json
+++ b/package.json
@@ -25,6 +25,10 @@
"@types/lodash": "^4.14.180",
"@types/uuid": "^8.3.4",
"@vegaprotocol/vegawallet-service-api-client": "^0.4.6",
+ "@walletconnect/ethereum-provider": "^1.7.5",
+ "@web3-react/core": "8.0.20-beta.0",
+ "@web3-react/metamask": "8.0.16-beta.0",
+ "@web3-react/walletconnect": "^8.0.23-beta.0",
"ag-grid-community": "^27.0.1",
"ag-grid-react": "^27.0.1",
"apollo": "^2.33.9",
diff --git a/tsconfig.base.json b/tsconfig.base.json
index f7792cf38..55dd28414 100644
--- a/tsconfig.base.json
+++ b/tsconfig.base.json
@@ -27,7 +27,8 @@
"libs/tailwindcss-config/src/index.js"
],
"@vegaprotocol/ui-toolkit": ["libs/ui-toolkit/src/index.ts"],
- "@vegaprotocol/wallet": ["libs/wallet/src/index.ts"]
+ "@vegaprotocol/wallet": ["libs/wallet/src/index.ts"],
+ "@vegaprotocol/web3": ["libs/web3/src/index.ts"]
}
},
"exclude": ["node_modules", "tmp"]
diff --git a/workspace.json b/workspace.json
index 880fcc030..9ae846565 100644
--- a/workspace.json
+++ b/workspace.json
@@ -15,6 +15,7 @@
"trading": "apps/trading",
"trading-e2e": "apps/trading-e2e",
"ui-toolkit": "libs/ui-toolkit",
- "wallet": "libs/wallet"
+ "wallet": "libs/wallet",
+ "web3": "libs/web3"
}
}
diff --git a/yarn.lock b/yarn.lock
index 7d5c3fae4..1821b6c12 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1718,6 +1718,31 @@
bech32 "1.1.4"
ws "7.4.6"
+"@ethersproject/providers@^5.6.0":
+ version "5.6.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.6.1.tgz#9a05f00ecbac59565bf6907c8d2af8ac33303b48"
+ integrity sha512-w8Wx15nH+aVDvnoKCyI1f3x0B5idmk/bDJXMEUqCfdO8Eadd0QpDx9lDMTMmenhOmf9vufLJXjpSm24D3ZnVpg==
+ 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", "@ethersproject/random@^5.6.0":
version "5.6.0"
resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.6.0.tgz#1505d1ab6a250e0ee92f436850fa3314b2cb5ae6"
@@ -2162,6 +2187,31 @@
"@jridgewell/resolve-uri" "^3.0.3"
"@jridgewell/sourcemap-codec" "^1.4.10"
+"@json-rpc-tools/provider@^1.5.5":
+ version "1.7.6"
+ resolved "https://registry.yarnpkg.com/@json-rpc-tools/provider/-/provider-1.7.6.tgz#8a17c34c493fa892632e278fd9331104e8491ec6"
+ integrity sha512-z7D3xvJ33UfCGv77n40lbzOYjZKVM3k2+5cV7xS8G6SCvKTzMkhkUYuD/qzQUNT4cG/lv0e9mRToweEEVLVVmA==
+ dependencies:
+ "@json-rpc-tools/utils" "^1.7.6"
+ axios "^0.21.0"
+ safe-json-utils "^1.1.1"
+ ws "^7.4.0"
+
+"@json-rpc-tools/types@^1.7.6":
+ version "1.7.6"
+ resolved "https://registry.yarnpkg.com/@json-rpc-tools/types/-/types-1.7.6.tgz#5abd5fde01364a130c46093b501715bcce5bdc0e"
+ integrity sha512-nDSqmyRNEqEK9TZHtM15uNnDljczhCUdBmRhpNZ95bIPKEDQ+nTDmGMFd2lLin3upc5h2VVVd9tkTDdbXUhDIQ==
+ dependencies:
+ keyvaluestorage-interface "^1.0.0"
+
+"@json-rpc-tools/utils@^1.7.6":
+ version "1.7.6"
+ resolved "https://registry.yarnpkg.com/@json-rpc-tools/utils/-/utils-1.7.6.tgz#67f04987dbaa2e7adb6adff1575367b75a9a9ba1"
+ 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"
+
"@mdx-js/loader@^1.6.22":
version "1.6.22"
resolved "https://registry.yarnpkg.com/@mdx-js/loader/-/loader-1.6.22.tgz#d9e8fe7f8185ff13c9c8639c048b123e30d322c4"
@@ -2206,6 +2256,11 @@
resolved "https://registry.yarnpkg.com/@mdx-js/util/-/util-1.6.22.tgz#219dfd89ae5b97a8801f015323ffa4b62f45718b"
integrity sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==
+"@metamask/detect-provider@^1.2.0":
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/@metamask/detect-provider/-/detect-provider-1.2.0.tgz#3667a7531f2a682e3c3a43eaf3a1958bdb42a696"
+ integrity sha512-ocA76vt+8D0thgXZ7LxFPyqw3H7988qblgzddTDA6B8a/yU0uKV42QR/DhA+Jh11rJjxW0jKvwb5htA6krNZDQ==
+
"@mrmlnc/readdir-enhanced@^2.2.1":
version "2.2.1"
resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde"
@@ -3172,6 +3227,11 @@
node-addon-api "^3.2.1"
node-gyp-build "^4.3.0"
+"@pedrouid/environment@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@pedrouid/environment/-/environment-1.0.1.tgz#858f0f8a057340e0b250398b75ead77d6f4342ec"
+ integrity sha512-HaW78NszGzRZd9SeoI3JD11JqY+lubnaOx7Pewj5pfjqWXOEATpeKIFb9Z4t2WBUK2iryiXX3lzWwmYWgUL0Ug==
+
"@phenomnomnominal/tsquery@4.1.1":
version "4.1.1"
resolved "https://registry.yarnpkg.com/@phenomnomnominal/tsquery/-/tsquery-4.1.1.tgz#42971b83590e9d853d024ddb04a18085a36518df"
@@ -5648,6 +5708,240 @@
url-parse "^1.4.3"
whatwg-fetch "^3.0.0"
+"@walletconnect/browser-utils@^1.7.5":
+ version "1.7.5"
+ resolved "https://registry.yarnpkg.com/@walletconnect/browser-utils/-/browser-utils-1.7.5.tgz#a12ff382310bfbb02509a69565dacf14aa744461"
+ integrity sha512-gm9ufi0n5cGBXoGWDtMVSqIJ0eXYW+ZFuTNVN0fm4oal26J7cPrOdFjzhv5zvx5fKztWQ21DNFZ+PRXBjXg04Q==
+ dependencies:
+ "@walletconnect/safe-json" "1.0.0"
+ "@walletconnect/types" "^1.7.5"
+ "@walletconnect/window-getters" "1.0.0"
+ "@walletconnect/window-metadata" "1.0.0"
+ detect-browser "5.2.0"
+
+"@walletconnect/client@^1.7.5":
+ version "1.7.5"
+ resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.7.5.tgz#7c3a1fc5a9f41022892c3c2b85be94afec49268e"
+ integrity sha512-Vh3h1kfhmJ4Jx//H0lmmfDc5Q2s+R73Nh5cetVN41QPRrAcqHE4lR2ZS8XxRCNBl4/gcHZJIZS9J2Ui4tTXBLA==
+ dependencies:
+ "@walletconnect/core" "^1.7.5"
+ "@walletconnect/iso-crypto" "^1.7.5"
+ "@walletconnect/types" "^1.7.5"
+ "@walletconnect/utils" "^1.7.5"
+
+"@walletconnect/core@^1.7.5":
+ version "1.7.5"
+ resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.7.5.tgz#623d19d4578b6195bb0f6e6313316d32fa4b2f10"
+ integrity sha512-c4B8s9fZ/Ah2p460Hxo4e9pwLQVYT2+dVYAfqaxVzfYjhAokDEtO55Bdm1hujtRjQVqwTvCljKxBB+LgMp3k8w==
+ dependencies:
+ "@walletconnect/socket-transport" "^1.7.5"
+ "@walletconnect/types" "^1.7.5"
+ "@walletconnect/utils" "^1.7.5"
+
+"@walletconnect/crypto@^1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@walletconnect/crypto/-/crypto-1.0.2.tgz#3fcc2b2cde6f529a19eadd883dc555cd0e861992"
+ integrity sha512-+OlNtwieUqVcOpFTvLBvH+9J9pntEqH5evpINHfVxff1XIgwV55PpbdvkHu6r9Ib4WQDOFiD8OeeXs1vHw7xKQ==
+ dependencies:
+ "@walletconnect/encoding" "^1.0.1"
+ "@walletconnect/environment" "^1.0.0"
+ "@walletconnect/randombytes" "^1.0.2"
+ aes-js "^3.1.2"
+ hash.js "^1.1.7"
+
+"@walletconnect/encoding@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@walletconnect/encoding/-/encoding-1.0.1.tgz#93c18ce9478c3d5283dbb88c41eb2864b575269a"
+ integrity sha512-8opL2rs6N6E3tJfsqwS82aZQDL3gmupWUgmvuZ3CGU7z/InZs3R9jkzH8wmYtpbq0sFK3WkJkQRZFFk4BkrmFA==
+ dependencies:
+ is-typedarray "1.0.0"
+ typedarray-to-buffer "3.1.5"
+
+"@walletconnect/environment@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@walletconnect/environment/-/environment-1.0.0.tgz#c4545869fa9c389ec88c364e1a5f8178e8ab5034"
+ integrity sha512-4BwqyWy6KpSvkocSaV7WR3BlZfrxLbJSLkg+j7Gl6pTDE+U55lLhJvQaMuDVazXYxcjBsG09k7UlH7cGiUI5vQ==
+
+"@walletconnect/ethereum-provider@^1.7.5":
+ version "1.7.5"
+ resolved "https://registry.yarnpkg.com/@walletconnect/ethereum-provider/-/ethereum-provider-1.7.5.tgz#2cc6e8759b9a4cf1ea400e3c5d779faf7846b92a"
+ integrity sha512-hEY7YhQSCcUccwuVgQvpL/FZB6ov07ad+FZ0NSsr8Xv54ysmgoaE8tdReVa8zrGK2LCuB6mtfSGx2E0bZ2H4Ng==
+ dependencies:
+ "@walletconnect/client" "^1.7.5"
+ "@walletconnect/jsonrpc-http-connection" "^1.0.0"
+ "@walletconnect/jsonrpc-provider" "^1.0.2"
+ "@walletconnect/signer-connection" "^1.7.5"
+ "@walletconnect/types" "^1.7.5"
+ "@walletconnect/utils" "^1.7.5"
+ eip1193-provider "1.0.1"
+ eventemitter3 "4.0.7"
+
+"@walletconnect/iso-crypto@^1.7.5":
+ version "1.7.5"
+ resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.7.5.tgz#12d624605c656c8eed31a9d073d85b73cd0be291"
+ integrity sha512-mJdRs2SqAPOLBBqLhU+ZnAh2c8TL2uDuL/ojV4aBzZ0ZHNT7X2zSOjAiixCb3vvH8GAt30OKmiRo3+ChI/9zvA==
+ dependencies:
+ "@walletconnect/crypto" "^1.0.2"
+ "@walletconnect/types" "^1.7.5"
+ "@walletconnect/utils" "^1.7.5"
+
+"@walletconnect/jsonrpc-http-connection@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.0.tgz#5bbdfbaf6d6519b3c08e492a6badb7460ab5ecd0"
+ integrity sha512-fmBTox7Zo9Tb8wzKpnOgYl5cYPu+2xXifNMDYMRGkWDAygXBzRzmfdhk7OowCkSXeh8aDhE5eFtMk+u8MOmntg==
+ dependencies:
+ "@walletconnect/jsonrpc-utils" "^1.0.0"
+ "@walletconnect/safe-json" "^1.0.0"
+ cross-fetch "^3.1.4"
+
+"@walletconnect/jsonrpc-provider@^1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.2.tgz#283d7fc064ce81bf6d57678e1cf299cbd0b5505c"
+ integrity sha512-7sIjzg27I7noPRULYTV2QEWWNV3+d3f5T7ym8VTtCRoA1Xf+SoN9cZJotO0GCCk0jVcvN2BX3DCSq6WbcCi4Eg==
+ dependencies:
+ "@walletconnect/jsonrpc-utils" "^1.0.0"
+ "@walletconnect/safe-json" "^1.0.0"
+
+"@walletconnect/jsonrpc-types@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.0.tgz#fa75ad5e8f106a2e33287b1e6833e22ed0225055"
+ integrity sha512-11QXNq5H1PKZk7bP8SxgmCw3HRaDuPOVE+wObqEvmhc7OWYUZqfuaaMb+OXGRSOHL3sbC+XHfdeCxFTMXSFyng==
+ dependencies:
+ keyvaluestorage-interface "^1.0.0"
+
+"@walletconnect/jsonrpc-utils@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.0.tgz#1a2f668d606e8f0b6e7d8fdebae86001bd037a3f"
+ integrity sha512-qUHbKUK6sHeHn67qtHZoLoYk5hS6x1arTPjKDRkY93/6Fx+ZmNIpdm1owX3l6aYueyegJ7mz43FpvYHUqJ8xcw==
+ dependencies:
+ "@walletconnect/environment" "^1.0.0"
+ "@walletconnect/jsonrpc-types" "^1.0.0"
+
+"@walletconnect/mobile-registry@^1.4.0":
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/@walletconnect/mobile-registry/-/mobile-registry-1.4.0.tgz#502cf8ab87330841d794819081e748ebdef7aee5"
+ integrity sha512-ZtKRio4uCZ1JUF7LIdecmZt7FOLnX72RPSY7aUVu7mj7CSfxDwUn6gBuK6WGtH+NZCldBqDl5DenI5fFSvkKYw==
+
+"@walletconnect/qrcode-modal@^1.7.5":
+ version "1.7.5"
+ resolved "https://registry.yarnpkg.com/@walletconnect/qrcode-modal/-/qrcode-modal-1.7.5.tgz#d7b42b4109c20d00c28e5a617992db6e8d79471e"
+ integrity sha512-LVq35jc3VMGq1EMcGCObQtEiercMDmUHDnc7A3AmUo0LoAbaPo6c8Hq0zqy2+JhtLmxUhU3ktf+szmCoiUDTUQ==
+ dependencies:
+ "@walletconnect/browser-utils" "^1.7.5"
+ "@walletconnect/mobile-registry" "^1.4.0"
+ "@walletconnect/types" "^1.7.5"
+ copy-to-clipboard "^3.3.1"
+ preact "10.4.1"
+ qrcode "1.4.4"
+
+"@walletconnect/randombytes@^1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@walletconnect/randombytes/-/randombytes-1.0.2.tgz#95c644251a15e6675f58fbffc9513a01486da49c"
+ integrity sha512-ivgOtAyqQnN0rLQmOFPemsgYGysd/ooLfaDA/ACQ3cyqlca56t3rZc7pXfqJOIETx/wSyoF5XbwL+BqYodw27A==
+ dependencies:
+ "@walletconnect/encoding" "^1.0.1"
+ "@walletconnect/environment" "^1.0.0"
+ randombytes "^2.1.0"
+
+"@walletconnect/safe-json@1.0.0", "@walletconnect/safe-json@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.0.tgz#12eeb11d43795199c045fafde97e3c91646683b2"
+ integrity sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg==
+
+"@walletconnect/signer-connection@^1.7.5":
+ version "1.7.5"
+ resolved "https://registry.yarnpkg.com/@walletconnect/signer-connection/-/signer-connection-1.7.5.tgz#ad37b34534445c7c3870f6fb33d2188f52054bd9"
+ integrity sha512-O7WO1Yqu8eBDfUJYeEkQDV2LDvj5JvAltTRn7El0IYOjK/T979c4NvyBpjHv9rp0eKX6/60foynj4D/h9hA4ew==
+ dependencies:
+ "@walletconnect/client" "^1.7.5"
+ "@walletconnect/jsonrpc-types" "^1.0.0"
+ "@walletconnect/jsonrpc-utils" "^1.0.0"
+ "@walletconnect/qrcode-modal" "^1.7.5"
+ "@walletconnect/types" "^1.7.5"
+ eventemitter3 "4.0.7"
+
+"@walletconnect/socket-transport@^1.7.5":
+ version "1.7.5"
+ resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.7.5.tgz#5416886403c7bea526f4ced6452fd1056c0a1354"
+ integrity sha512-4TYCxrNWb4f5a1NGsALXidr+/6dOiqgVfUQJ4fdP6R7ijL+7jtdiktguU9FIDq5wFXRE+ZdpCpwSAfOt60q/mQ==
+ dependencies:
+ "@walletconnect/types" "^1.7.5"
+ "@walletconnect/utils" "^1.7.5"
+ ws "7.5.3"
+
+"@walletconnect/types@^1.7.5":
+ version "1.7.5"
+ resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.7.5.tgz#145d7dd9df4415178995df6d4facef41c371ab6f"
+ integrity sha512-0HvZzxD93et4DdrYgAvclI1BqclkZS7iPWRtbGg3r+PQhRPbOkNypzBy6XH6wflbmr+WBGdmyJvynHsdhcCqUA==
+
+"@walletconnect/utils@^1.7.5":
+ version "1.7.5"
+ resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.7.5.tgz#762bf7f384846772416e44b636ce9792d1d7db5f"
+ integrity sha512-U954rIIA/g/Cmdqy+n3hMY1DDMmXxGs8w/QmrK9b/H5nkQ3e4QicOyynq5g/JTTesN5HZdDTFiyX9r0GSKa+iA==
+ dependencies:
+ "@walletconnect/browser-utils" "^1.7.5"
+ "@walletconnect/encoding" "^1.0.1"
+ "@walletconnect/jsonrpc-utils" "^1.0.0"
+ "@walletconnect/types" "^1.7.5"
+ bn.js "4.11.8"
+ js-sha3 "0.8.0"
+ query-string "6.13.5"
+
+"@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"
+
+"@web3-react/core@8.0.20-beta.0":
+ version "8.0.20-beta.0"
+ resolved "https://registry.yarnpkg.com/@web3-react/core/-/core-8.0.20-beta.0.tgz#a98e751955029c2deca22acd5fe300f527bae142"
+ integrity sha512-VMsCaoCC4c/cCOhCnQkHBo7VRMnLFokh8Gx+ju+WQz3b0c3V/qywcEUNrJoNhDryc863oNYjQti7cb5hhlJPVQ==
+ dependencies:
+ "@web3-react/store" "^8.0.14-beta.0"
+ "@web3-react/types" "^8.0.10-beta.0"
+ zustand "^4.0.0-beta.2"
+ optionalDependencies:
+ "@ethersproject/providers" "^5.6.0"
+
+"@web3-react/metamask@8.0.16-beta.0":
+ version "8.0.16-beta.0"
+ resolved "https://registry.yarnpkg.com/@web3-react/metamask/-/metamask-8.0.16-beta.0.tgz#66ec1131a0d09774ebdb9e9a98aba8c70e39ae74"
+ integrity sha512-YuI2UY7ka+VJt8m7K3SmpXouyORZIIcNyAERc50ipZPeWro9j/a0qDavFZ0OnE8nhGrgBA+kJq+hMTvZrggCZQ==
+ dependencies:
+ "@metamask/detect-provider" "^1.2.0"
+ "@web3-react/types" "^8.0.10-beta.0"
+
+"@web3-react/store@^8.0.14-beta.0":
+ version "8.0.14-beta.0"
+ resolved "https://registry.yarnpkg.com/@web3-react/store/-/store-8.0.14-beta.0.tgz#302a5275f50323d63cd3a9f075414e5b63164f55"
+ integrity sha512-Z6ja+ilt7NWeL4wMcDLzD15255i0hcDySzvMwggqkEYs+hY3+w/R3dlR3FZDApr+MsxDq3wDukaQVUdKYA+Oqw==
+ dependencies:
+ "@ethersproject/address" "^5.6.0"
+ "@web3-react/types" "^8.0.10-beta.0"
+ zustand "^4.0.0-beta.2"
+
+"@web3-react/types@^8.0.10-beta.0":
+ version "8.0.10-beta.0"
+ resolved "https://registry.yarnpkg.com/@web3-react/types/-/types-8.0.10-beta.0.tgz#8ed9f1b5e40dcbe2a08be5ce9dd9e3ef2b2a6908"
+ integrity sha512-HitBmoKHyLDeRrJgtkImPddb8nzsb/FroAdiaYA15gAwAE3Y/p7Nd/TN8IANlgKcMkuyGyUjPD27fE7Mvw9rEA==
+ dependencies:
+ zustand "^4.0.0-beta.2"
+
+"@web3-react/walletconnect@^8.0.23-beta.0":
+ version "8.0.23-beta.0"
+ resolved "https://registry.yarnpkg.com/@web3-react/walletconnect/-/walletconnect-8.0.23-beta.0.tgz#ce6debb7383508d95ae828627d8a7f9286dbe8ed"
+ integrity sha512-MUq11Pmp9Y4Y+Cey5HrWNJM0gA76u02CzgsL4/iF1ph6t0cuqZj0C6guwwkTMF9apxUTlMpWgpywRQDbxdqDoA==
+ dependencies:
+ "@web3-react/types" "^8.0.10-beta.0"
+ eventemitter3 "^4.0.7"
+
"@webassemblyjs/ast@1.11.1":
version "1.11.1"
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7"
@@ -6044,6 +6338,11 @@ aes-js@3.0.0:
resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d"
integrity sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=
+aes-js@^3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a"
+ integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==
+
ag-grid-community@^27.0.1:
version "27.0.1"
resolved "https://registry.yarnpkg.com/ag-grid-community/-/ag-grid-community-27.0.1.tgz#7ce5c000d321ba2c22447837e793b1d8366f4cdb"
@@ -6836,7 +7135,7 @@ axe-core@^4.2.0, axe-core@^4.3.5:
resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.1.tgz#7dbdc25989298f9ad006645cd396782443757413"
integrity sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==
-axios@^0.21.1:
+axios@^0.21.0, axios@^0.21.1:
version "0.21.4"
resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575"
integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==
@@ -7206,6 +7505,11 @@ bluebird@^3.3.5, bluebird@^3.4.1, bluebird@^3.5.5, bluebird@^3.7.2:
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
+bn.js@4.11.8:
+ version "4.11.8"
+ resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
+ integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==
+
bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9:
version "4.12.0"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
@@ -7533,12 +7837,30 @@ bser@2.1.1:
dependencies:
node-int64 "^0.4.0"
+buffer-alloc-unsafe@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0"
+ integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==
+
+buffer-alloc@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec"
+ integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==
+ dependencies:
+ buffer-alloc-unsafe "^1.1.0"
+ buffer-fill "^1.0.0"
+
buffer-crc32@~0.2.3:
version "0.2.13"
resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
-buffer-from@^1.0.0:
+buffer-fill@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c"
+ integrity sha1-+PeLdniYiO858gXNY39o5wISKyw=
+
+buffer-from@^1.0.0, buffer-from@^1.1.1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
@@ -7578,7 +7900,7 @@ buffer@^4.3.0:
ieee754 "^1.1.4"
isarray "^1.0.0"
-buffer@^5.6.0:
+buffer@^5.4.3, buffer@^5.6.0:
version "5.7.1"
resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
@@ -8261,6 +8583,15 @@ cli-ux@^5.2.1:
supports-hyperlinks "^2.1.0"
tslib "^2.0.0"
+cliui@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5"
+ integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==
+ dependencies:
+ string-width "^3.1.0"
+ strip-ansi "^5.2.0"
+ wrap-ansi "^5.1.0"
+
cliui@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1"
@@ -8768,6 +9099,13 @@ create-require@^1.1.0:
resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
+cross-fetch@^3.1.4:
+ version "3.1.5"
+ resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f"
+ integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==
+ dependencies:
+ node-fetch "2.6.7"
+
cross-spawn@^6.0.0, cross-spawn@^6.0.5:
version "6.0.5"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
@@ -9413,6 +9751,11 @@ detab@2.0.4:
dependencies:
repeat-string "^1.5.4"
+detect-browser@5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.2.0.tgz#c9cd5afa96a6a19fda0bbe9e9be48a6b6e1e9c97"
+ integrity sha512-tr7XntDAu50BVENgQfajMLzacmSe34D+qZc4zjnniz0ZVuw/TZcLcyxHQjYpJTM36sGEkZZlYLnIM1hH7alTMA==
+
detect-newline@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651"
@@ -9474,6 +9817,11 @@ diffie-hellman@^5.0.0:
miller-rabin "^4.0.0"
randombytes "^2.0.0"
+dijkstrajs@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.2.tgz#2e48c0d3b825462afe75ab4ad5e829c8ece36257"
+ integrity sha512-QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg==
+
dir-glob@^2.2.2:
version "2.2.2"
resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4"
@@ -9689,6 +10037,13 @@ ee-first@1.1.1:
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
+eip1193-provider@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/eip1193-provider/-/eip1193-provider-1.0.1.tgz#420d29cf4f6c443e3f32e718fb16fafb250637c3"
+ integrity sha512-kSuqwQ26d7CzuS/t3yRXo2Su2cVH0QfvyKbr2H7Be7O5YDyIq4hQGCNTo5wRdP07bt+E2R/8nPCzey4ojBHf7g==
+ dependencies:
+ "@json-rpc-tools/provider" "^1.5.5"
+
ejs@^3.1.5:
version "3.1.6"
resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.6.tgz#5bfd0a0689743bb5268b3550cceeebbc1702822a"
@@ -9731,6 +10086,11 @@ emittery@^0.8.1:
resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860"
integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==
+emoji-regex@^7.0.1:
+ version "7.0.3"
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
+ integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
+
emoji-regex@^8.0.0:
version "8.0.0"
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
@@ -10412,7 +10772,7 @@ eventemitter2@^6.4.3:
resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.5.tgz#97380f758ae24ac15df8353e0cc27f8b95644655"
integrity sha512-bXE7Dyc1i6oQElDG0jMRZJrRAn9QR2xyyFGmBdZleNmyQX0FqGYmhZIrIrpPfm/w//LTo4tVQGOGQcGCb5q9uw==
-eventemitter3@^4.0.0, eventemitter3@^4.0.4:
+eventemitter3@4.0.7, eventemitter3@^4.0.0, eventemitter3@^4.0.4, eventemitter3@^4.0.7:
version "4.0.7"
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
@@ -11670,7 +12030,7 @@ hash-base@^3.0.0:
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:
+hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7:
version "1.1.7"
resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==
@@ -12729,7 +13089,7 @@ is-typed-array@^1.1.3, is-typed-array@^1.1.7:
foreach "^2.0.5"
has-tostringtag "^1.0.0"
-is-typedarray@^1.0.0, is-typedarray@~1.0.0:
+is-typedarray@1.0.0, is-typedarray@^1.0.0, is-typedarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
@@ -12783,7 +13143,7 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
-isarray@^2.0.5:
+isarray@^2.0.1, isarray@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723"
integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==
@@ -13614,6 +13974,11 @@ junk@^3.1.0:
resolved "https://registry.yarnpkg.com/junk/-/junk-3.1.0.tgz#31499098d902b7e98c5d9b9c80f43457a88abfa1"
integrity sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==
+keyvaluestorage-interface@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz#13ebdf71f5284ad54be94bd1ad9ed79adad515ff"
+ integrity sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==
+
kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
version "3.2.2"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
@@ -14783,7 +15148,7 @@ node-fetch@2.6.1:
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
-node-fetch@^2.6.1:
+node-fetch@2.6.7, node-fetch@^2.6.1:
version "2.6.7"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
@@ -15667,6 +16032,11 @@ pluralize@^8.0.0:
resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1"
integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==
+pngjs@^3.3.0:
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f"
+ integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==
+
pnp-webpack-plugin@1.6.4:
version "1.6.4"
resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149"
@@ -16063,6 +16433,11 @@ postcss@^8.2.13, postcss@^8.2.15, postcss@^8.3.5, postcss@^8.4.6, postcss@^8.4.7
picocolors "^1.0.0"
source-map-js "^1.0.2"
+preact@10.4.1:
+ version "10.4.1"
+ resolved "https://registry.yarnpkg.com/preact/-/preact-10.4.1.tgz#9b3ba020547673a231c6cf16f0fbaef0e8863431"
+ integrity sha512-WKrRpCSwL2t3tpOOGhf2WfTpcmbpxaWtDbdJdKdjd0aEiTkvOmS4NBkG6kzlaAHI9AkQ3iVqbFWM3Ei7mZ4o1Q==
+
prelude-ls@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
@@ -16278,6 +16653,19 @@ q@^1.1.2:
resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=
+qrcode@1.4.4:
+ version "1.4.4"
+ resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.4.4.tgz#f0c43568a7e7510a55efc3b88d9602f71963ea83"
+ integrity sha512-oLzEC5+NKFou9P0bMj5+v6Z40evexeE29Z9cummZXZ9QXyMr3lphkURzxjXgPJC5azpxcshoDWV1xE46z+/c3Q==
+ dependencies:
+ buffer "^5.4.3"
+ buffer-alloc "^1.2.0"
+ buffer-from "^1.1.1"
+ dijkstrajs "^1.0.1"
+ isarray "^2.0.1"
+ pngjs "^3.3.0"
+ yargs "^13.2.4"
+
qs@6.9.7:
version "6.9.7"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.7.tgz#4610846871485e1e048f44ae3b94033f0e675afe"
@@ -16295,6 +16683,15 @@ qs@~6.5.2:
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad"
integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==
+query-string@6.13.5:
+ version "6.13.5"
+ resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.13.5.tgz#99e95e2fb7021db90a6f373f990c0c814b3812d8"
+ integrity sha512-svk3xg9qHR39P3JlHuD7g3nRnyay5mHbrPctEBDUxUkHRifPHXJDhBUycdCC0NBjXoDf44Gb+IsOZL1Uwn8M/Q==
+ dependencies:
+ decode-uri-component "^0.2.0"
+ split-on-first "^1.0.0"
+ strict-uri-encode "^2.0.0"
+
query-string@^6.13.8:
version "6.14.1"
resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a"
@@ -17236,6 +17633,11 @@ safe-identifier@^0.4.2:
resolved "https://registry.yarnpkg.com/safe-identifier/-/safe-identifier-0.4.2.tgz#cf6bfca31c2897c588092d1750d30ef501d59fcb"
integrity sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==
+safe-json-utils@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/safe-json-utils/-/safe-json-utils-1.1.1.tgz#0e883874467d95ab914c3f511096b89bfb3e63b1"
+ integrity sha512-SAJWGKDs50tAbiDXLf89PDwt9XYkWyANFWVzn4dTXl5QyI8t2o/bW5/OJl3lvc2WVU4MEpTo9Yz5NVFNsp+OJQ==
+
safe-regex@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
@@ -18166,6 +18568,15 @@ string-width@^2.1.1:
is-fullwidth-code-point "^2.0.0"
strip-ansi "^4.0.0"
+string-width@^3.0.0, string-width@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
+ integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
+ dependencies:
+ emoji-regex "^7.0.1"
+ is-fullwidth-code-point "^2.0.0"
+ strip-ansi "^5.1.0"
+
string-width@^5.0.0:
version "5.1.2"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794"
@@ -18237,7 +18648,7 @@ string_decoder@~1.1.1:
dependencies:
safe-buffer "~5.1.0"
-strip-ansi@5.2.0, strip-ansi@^5.0.0, strip-ansi@^5.2.0:
+strip-ansi@5.2.0, strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
@@ -19108,7 +19519,7 @@ typed-assert@^1.0.8:
resolved "https://registry.yarnpkg.com/typed-assert/-/typed-assert-1.0.9.tgz#8af9d4f93432c4970ec717e3006f33f135b06213"
integrity sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==
-typedarray-to-buffer@^3.1.5:
+typedarray-to-buffer@3.1.5, typedarray-to-buffer@^3.1.5:
version "3.1.5"
resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"
integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==
@@ -19452,6 +19863,11 @@ use-subscription@1.5.1:
dependencies:
object-assign "^4.1.1"
+use-sync-external-store@1.0.0-rc.1-next-629036a9c-20220224:
+ version "1.0.0-rc.1-next-629036a9c-20220224"
+ resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.0.0-rc.1-next-629036a9c-20220224.tgz#40cf472454789403c2de6c8471d177459d184dc1"
+ integrity sha512-IhuMl0apVVYsT3XPfV+0nuwf0T6+3d4YxQXV4tDRsGpSQcYVG4zoWwfX4zdtouUfuelYg4t2SEmFifIMrxPfIw==
+
use@^3.1.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
@@ -20145,6 +20561,15 @@ wrap-ansi@^4.0.0:
string-width "^2.1.1"
strip-ansi "^4.0.0"
+wrap-ansi@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09"
+ integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==
+ dependencies:
+ ansi-styles "^3.2.0"
+ string-width "^3.0.0"
+ strip-ansi "^5.0.0"
+
wrap-ansi@^6.2.0:
version "6.2.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
@@ -20183,7 +20608,12 @@ ws@7.4.6:
resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c"
integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==
-ws@^7.4.6:
+ws@7.5.3:
+ version "7.5.3"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74"
+ integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==
+
+ws@^7.4.0, ws@^7.4.6:
version "7.5.7"
resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67"
integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==
@@ -20243,6 +20673,14 @@ yargs-parser@20.x, yargs-parser@^20.2.2, yargs-parser@^20.2.7:
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"
integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
+yargs-parser@^13.1.2:
+ version "13.1.2"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38"
+ integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==
+ dependencies:
+ camelcase "^5.0.0"
+ decamelize "^1.2.0"
+
yargs-parser@^18.1.2:
version "18.1.3"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0"
@@ -20268,6 +20706,22 @@ yargs@15.4.1:
y18n "^4.0.0"
yargs-parser "^18.1.2"
+yargs@^13.2.4:
+ version "13.3.2"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd"
+ integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==
+ dependencies:
+ cliui "^5.0.0"
+ find-up "^3.0.0"
+ get-caller-file "^2.0.1"
+ require-directory "^2.1.1"
+ require-main-filename "^2.0.0"
+ set-blocking "^2.0.0"
+ string-width "^3.0.0"
+ which-module "^2.0.0"
+ y18n "^4.0.0"
+ yargs-parser "^13.1.2"
+
yargs@^16.2.0:
version "16.2.0"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
@@ -20324,6 +20778,13 @@ zen-observable@0.8.15, zen-observable@^0.8.0:
resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15"
integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==
+zustand@^4.0.0-beta.2:
+ version "4.0.0-beta.2"
+ resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.0.0-beta.2.tgz#27fdc32b62225cc18976c0cf8866ecee9a9f4a98"
+ integrity sha512-aJ5ypnOwPIa/uSjdZv/oHChTWPplpFOG/hvWwzkR5ahFiPI5R6ifyObf8Fz1Vi6Obz2wY1N32fT2pNrpT2hzPw==
+ dependencies:
+ use-sync-external-store "1.0.0-rc.1-next-629036a9c-20220224"
+
zwitch@^1.0.0:
version "1.0.5"
resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920"