Feat/105 Web3 Setup (#119)
* add deposit page * add web3 provider using web3-react package * add env setup, add guard for incorrect chain id * add lib for web3-provider * make wallet and ethereum connect dialogs look more consistent * add setup tests file for jest-dom * remove chain id config and just use appChainId prop, add disconnect button to invalid chainId state * remove .env file for now, will complete as own ticket * switch handling of connect dialog state to the consuming app * rename web3-provider package to just web3 * envs for each environment so we can specify chainId * remove fallback to testnet for apollo client creation * make web3container enforce connection before rendering childen * move infura id to env var
This commit is contained in:
parent
0af568dada
commit
8e9c2e4080
24
apps/trading/.env
Normal file
24
apps/trading/.env
Normal file
@ -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";
|
4
apps/trading/.env.devent
Normal file
4
apps/trading/.env.devent
Normal file
@ -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";
|
4
apps/trading/.env.mainnet
Normal file
4
apps/trading/.env.mainnet
Normal file
@ -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";
|
4
apps/trading/.env.stagnet1
Normal file
4
apps/trading/.env.stagnet1
Normal file
@ -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";
|
4
apps/trading/.env.stagnet2
Normal file
4
apps/trading/.env.stagnet2
Normal file
@ -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";
|
4
apps/trading/.env.testnet
Normal file
4
apps/trading/.env.testnet
Normal file
@ -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";
|
@ -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'}
|
||||
</button>
|
||||
);
|
||||
};
|
||||
|
1
apps/trading/components/web3-container/index.ts
Normal file
1
apps/trading/components/web3-container/index.ts
Normal file
@ -0,0 +1 @@
|
||||
export { Web3Container } from './web3-container';
|
@ -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(
|
||||
<Web3Container>
|
||||
<div>Child</div>
|
||||
</Web3Container>
|
||||
);
|
||||
|
||||
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(
|
||||
<Web3Container>
|
||||
<div>Child</div>
|
||||
</Web3Container>
|
||||
);
|
||||
|
||||
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(
|
||||
<Web3Container>
|
||||
<div>Child</div>
|
||||
</Web3Container>
|
||||
);
|
||||
|
||||
expect(screen.queryByText('Child')).not.toBeInTheDocument();
|
||||
expect(screen.getByText(`This app only works on chain ID: 3`));
|
||||
});
|
79
apps/trading/components/web3-container/web3-container.tsx
Normal file
79
apps/trading/components/web3-container/web3-container.tsx
Normal file
@ -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 (
|
||||
<Web3Provider connectors={Connectors}>
|
||||
<Web3Content setDialogOpen={setDialogOpen}>{children}</Web3Content>
|
||||
<Web3ConnectDialog
|
||||
connectors={Connectors}
|
||||
dialogOpen={dialogOpen}
|
||||
setDialogOpen={setDialogOpen}
|
||||
desiredChainId={Number(process.env['NX_ETHEREUM_CHAIN_ID'] || 3)}
|
||||
/>
|
||||
</Web3Provider>
|
||||
);
|
||||
};
|
||||
|
||||
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 (
|
||||
<SplashWrapper>
|
||||
<p className="mb-12">Something went wrong: {error.message}</p>
|
||||
<Button onClick={() => connector.deactivate()}>Disconnect</Button>
|
||||
</SplashWrapper>
|
||||
);
|
||||
}
|
||||
|
||||
if (!isActive) {
|
||||
return (
|
||||
<SplashWrapper>
|
||||
<p className="mb-12">Connect your Ethereum wallet</p>
|
||||
<Button onClick={() => setDialogOpen(true)}>Connect</Button>
|
||||
</SplashWrapper>
|
||||
);
|
||||
}
|
||||
|
||||
if (chainId !== appChainId) {
|
||||
return (
|
||||
<SplashWrapper>
|
||||
<p className="mb-12">This app only works on chain ID: {appChainId}</p>
|
||||
<Button onClick={() => connector.deactivate()}>Disconnect</Button>
|
||||
</SplashWrapper>
|
||||
);
|
||||
}
|
||||
|
||||
return <>{children}</>;
|
||||
};
|
||||
|
||||
interface SplashWrapperProps {
|
||||
children: ReactNode;
|
||||
}
|
||||
|
||||
const SplashWrapper = ({ children }: SplashWrapperProps) => {
|
||||
return (
|
||||
<Splash>
|
||||
<div className="text-center">{children}</div>
|
||||
</Splash>
|
||||
);
|
||||
};
|
@ -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();
|
||||
|
23
apps/trading/lib/web3-connectors.ts
Normal file
23
apps/trading/lib/web3-connectors.ts
Normal file
@ -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<MetaMask>(
|
||||
(actions) => new MetaMask(actions)
|
||||
);
|
||||
|
||||
export const walletconnect = initializeConnector<WalletConnect>(
|
||||
(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,
|
||||
};
|
@ -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();
|
||||
|
||||
|
28
apps/trading/pages/portfolio/deposit/index.page.tsx
Normal file
28
apps/trading/pages/portfolio/deposit/index.page.tsx
Normal file
@ -0,0 +1,28 @@
|
||||
import { useWeb3React } from '@web3-react/core';
|
||||
import { Web3Container } from '../../../components/web3-container';
|
||||
|
||||
const Deposit = () => {
|
||||
return (
|
||||
<Web3Container>
|
||||
<div>
|
||||
<h1>Deposit</h1>
|
||||
<Info />
|
||||
</div>
|
||||
</Web3Container>
|
||||
);
|
||||
};
|
||||
|
||||
const Info = () => {
|
||||
const { isActive, chainId, accounts } = useWeb3React();
|
||||
if (!isActive) {
|
||||
return <div>Not active</div>;
|
||||
}
|
||||
return (
|
||||
<div>
|
||||
<p>{chainId}</p>
|
||||
<p>{accounts[0]}</p>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Deposit;
|
@ -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}
|
||||
</p>
|
||||
)}
|
||||
<div className="flex gap-4">
|
||||
<AnchorButton href="/portfolio/deposit">Deposit</AnchorButton>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
@ -67,11 +67,11 @@ export function VegaConnectDialog({
|
||||
<button
|
||||
key={key}
|
||||
onClick={() => setSelectedConnector(connector)}
|
||||
className="capitalize hover:text-vega-pink dark:hover:text-vega-yellow"
|
||||
className="capitalize hover:text-vega-pink dark:hover:text-vega-yellow underline"
|
||||
>
|
||||
{key} provider
|
||||
</button>
|
||||
<p>{connector.description}</p>
|
||||
<p className="text-black-60">{connector.description}</p>
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
|
12
libs/web3/.babelrc
Normal file
12
libs/web3/.babelrc
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"presets": [
|
||||
[
|
||||
"@nrwl/react/babel",
|
||||
{
|
||||
"runtime": "automatic",
|
||||
"useBuiltIns": "usage"
|
||||
}
|
||||
]
|
||||
],
|
||||
"plugins": []
|
||||
}
|
18
libs/web3/.eslintrc.json
Normal file
18
libs/web3/.eslintrc.json
Normal file
@ -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": {}
|
||||
}
|
||||
]
|
||||
}
|
7
libs/web3/README.md
Normal file
7
libs/web3/README.md
Normal file
@ -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).
|
10
libs/web3/jest.config.js
Normal file
10
libs/web3/jest.config.js
Normal file
@ -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'],
|
||||
};
|
23
libs/web3/project.json
Normal file
23
libs/web3/project.json
Normal file
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
2
libs/web3/src/index.ts
Normal file
2
libs/web3/src/index.ts
Normal file
@ -0,0 +1,2 @@
|
||||
export * from './lib/web3-provider';
|
||||
export * from './lib/web3-connect-dialog';
|
8
libs/web3/src/lib/types.ts
Normal file
8
libs/web3/src/lib/types.ts
Normal file
@ -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;
|
48
libs/web3/src/lib/web3-connect-dialog.spec.tsx
Normal file
48
libs/web3/src/lib/web3-connect-dialog.spec.tsx
Normal file
@ -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(<Web3ConnectDialog {...props} />);
|
||||
expect(container).toBeEmptyDOMElement();
|
||||
rerender(<Web3ConnectDialog {...props} dialogOpen={true} />);
|
||||
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(<Web3ConnectDialog {...props} dialogOpen={true} />);
|
||||
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);
|
||||
});
|
||||
});
|
44
libs/web3/src/lib/web3-connect-dialog.tsx
Normal file
44
libs/web3/src/lib/web3-connect-dialog.tsx
Normal file
@ -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 (
|
||||
<Dialog
|
||||
open={dialogOpen}
|
||||
onChange={setDialogOpen}
|
||||
intent={Intent.Prompt}
|
||||
title="Connect to your Ethereum wallet"
|
||||
>
|
||||
<ul data-testid="web3-connector-list">
|
||||
{Object.entries(connectors).map(([connectorName, [connector]]) => {
|
||||
return (
|
||||
<li key={connectorName} className="mb-12 last:mb-0">
|
||||
<button
|
||||
className="capitalize hover:text-vega-pink dark:hover:text-vega-yellow underline"
|
||||
data-testid={`web3-connector-${connectorName}`}
|
||||
onClick={async () => {
|
||||
await connector.activate(desiredChainId);
|
||||
setDialogOpen(false);
|
||||
}}
|
||||
>
|
||||
{connectorName}
|
||||
</button>
|
||||
</li>
|
||||
);
|
||||
})}
|
||||
</ul>
|
||||
</Dialog>
|
||||
);
|
||||
};
|
20
libs/web3/src/lib/web3-provider.spec.tsx
Normal file
20
libs/web3/src/lib/web3-provider.spec.tsx
Normal file
@ -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(
|
||||
<Web3Provider connectors={connectors}>
|
||||
<div>Child</div>
|
||||
</Web3Provider>
|
||||
);
|
||||
});
|
||||
|
||||
expect(screen.getByText('Child')).toBeInTheDocument();
|
||||
});
|
19
libs/web3/src/lib/web3-provider.tsx
Normal file
19
libs/web3/src/lib/web3-provider.tsx
Normal file
@ -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 (
|
||||
<Web3ReactProvider
|
||||
connectors={Object.values(connectors).map(([connector, hooks]) => {
|
||||
return [connector, hooks];
|
||||
})}
|
||||
>
|
||||
{children}
|
||||
</Web3ReactProvider>
|
||||
);
|
||||
};
|
1
libs/web3/src/setup-tests.ts
Normal file
1
libs/web3/src/setup-tests.ts
Normal file
@ -0,0 +1 @@
|
||||
import '@testing-library/jest-dom';
|
25
libs/web3/tsconfig.json
Normal file
25
libs/web3/tsconfig.json
Normal file
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
22
libs/web3/tsconfig.lib.json
Normal file
22
libs/web3/tsconfig.lib.json
Normal file
@ -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"]
|
||||
}
|
19
libs/web3/tsconfig.spec.json
Normal file
19
libs/web3/tsconfig.spec.json
Normal file
@ -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"
|
||||
]
|
||||
}
|
@ -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",
|
||||
|
@ -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"]
|
||||
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
483
yarn.lock
483
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"
|
||||
|
Loading…
Reference in New Issue
Block a user