This commit is contained in:
Jaco
2023-02-20 13:13:31 +02:00
committed by GitHub
parent afaf232000
commit 3b2dedc05d
84 changed files with 230 additions and 158 deletions
+3 -3
View File
@@ -32,13 +32,13 @@
"lint": "polkadot-dev-run-lint",
"postinstall": "polkadot-dev-yarn-only",
"start": "yarn watch",
"test": "EXTENSION_PREFIX='test' polkadot-dev-run-test --env jest -- --detectOpenHandles",
"test:one": "EXTENSION_PREFIX='test' polkadot-dev-run-test --env jest -- --detectOpenHandles",
"test": "EXTENSION_PREFIX='test' polkadot-dev-run-test --env jest",
"test:one": "EXTENSION_PREFIX='test' polkadot-dev-run-test --env jest",
"watch": "cd packages/extension && yarn polkadot-exec-webpack --config webpack.watch.cjs --mode development --watch"
},
"devDependencies": {
"@babel/core": "^7.20.12",
"@polkadot/dev": "^0.68.38",
"@polkadot/dev": "^0.68.41",
"@types/jest": "^29.4.0",
"i18next-scanner": "^4.1.1",
"sinon-chrome": "^3.0.1"
+2 -2
View File
@@ -30,8 +30,8 @@
"@polkadot/phishing": "^0.19.3",
"@polkadot/rpc-provider": "^9.14.2",
"@polkadot/types": "^9.14.2",
"@polkadot/ui-keyring": "^2.11.3",
"@polkadot/ui-settings": "^2.11.3",
"@polkadot/ui-keyring": "^2.12.1",
"@polkadot/ui-settings": "^2.12.1",
"@polkadot/util": "^10.4.2",
"@polkadot/util-crypto": "^10.4.2",
"eventemitter3": "^5.0.0",
+4 -4
View File
@@ -29,12 +29,12 @@
"@polkadot/hw-ledger": "^10.4.2",
"@polkadot/keyring": "^10.4.2",
"@polkadot/networks": "^10.4.2",
"@polkadot/react-identicon": "^2.11.3",
"@polkadot/react-qr": "^2.11.3",
"@polkadot/react-identicon": "^2.12.1",
"@polkadot/react-qr": "^2.12.1",
"@polkadot/types": "^9.14.2",
"@polkadot/types-augment": "^9.14.2",
"@polkadot/ui-keyring": "^2.11.3",
"@polkadot/ui-settings": "^2.11.3",
"@polkadot/ui-keyring": "^2.12.1",
"@polkadot/ui-settings": "^2.12.1",
"@polkadot/util": "^10.4.2",
"@polkadot/util-crypto": "^10.4.2",
"file-saver": "^2.0.5",
@@ -3,8 +3,10 @@
import '@polkadot/extension-mocks/chrome';
import type { ReactWrapper } from 'enzyme';
import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
import { configure, mount, ReactWrapper } from 'enzyme';
import enzyme from 'enzyme';
import React from 'react';
import { act } from 'react-dom/test-utils';
import { MemoryRouter } from 'react-router';
@@ -15,6 +17,8 @@ import * as messaging from '../../messaging';
import { flushAllPromises } from '../../testHelpers';
import Account from './Account';
const { configure, mount } = enzyme;
// NOTE Required for spyOn when using @swc/jest
// https://github.com/swc-project/swc/issues/3843
jest.mock('../../messaging', (): Record<string, unknown> => ({
@@ -4,7 +4,6 @@
import type { AccountJson } from '@polkadot/extension-base/background/types';
import React, { useCallback, useContext, useEffect, useMemo, useState } from 'react';
import styled from 'styled-components';
import { canDerive } from '@polkadot/extension-base/utils';
import { ThemeProps } from '@polkadot/extension-ui/types';
@@ -14,6 +13,7 @@ import useGenesisHashOptions from '../../hooks/useGenesisHashOptions';
import useTranslation from '../../hooks/useTranslation';
import { editAccount, tieAccount } from '../../messaging';
import { Name } from '../../partials';
import { styled } from '../../styled';
interface Props extends AccountJson {
className?: string;
@@ -4,8 +4,8 @@
import type { AccountWithChildren } from '@polkadot/extension-base/background/types';
import React from 'react';
import styled from 'styled-components';
import { styled } from '../../styled';
import Account from './Account';
interface Props extends AccountWithChildren {
@@ -4,11 +4,11 @@
import type { ThemeProps } from '../../types';
import React, { useCallback, useContext } from 'react';
import styled from 'styled-components';
import { ActionContext } from '../../components';
import useTranslation from '../../hooks/useTranslation';
import Header from '../../partials/Header';
import { styled } from '../../styled';
import AddAccountImage from './AddAccountImage';
interface Props extends ThemeProps {
@@ -10,7 +10,8 @@
import type { ThemeProps } from '../../types';
import React from 'react';
import styled from 'styled-components';
import { styled } from '../../styled';
interface Props extends ThemeProps {
className?: string;
@@ -4,7 +4,6 @@
import type { ThemeProps } from '../../types';
import React, { useCallback, useContext, useEffect, useMemo, useState } from 'react';
import styled from 'styled-components';
import { AccountWithChildren } from '@polkadot/extension-base/background/types';
import getNetworkMap from '@polkadot/extension-ui/util/getNetworkMap';
@@ -12,6 +11,7 @@ import getNetworkMap from '@polkadot/extension-ui/util/getNetworkMap';
import { AccountContext } from '../../components';
import useTranslation from '../../hooks/useTranslation';
import { Header } from '../../partials';
import { styled } from '../../styled';
import AccountsTree from './AccountsTree';
import AddAccount from './AddAccount';
@@ -5,12 +5,12 @@ import type { ThemeProps } from '../../types';
import React, { useCallback, useContext, useEffect } from 'react';
import { useParams } from 'react-router';
import styled from 'styled-components';
import { AccountContext, ActionContext, Button } from '../../components';
import useTranslation from '../../hooks/useTranslation';
import { getAuthList, updateAuthorization } from '../../messaging';
import { AccountSelection, Header } from '../../partials';
import { styled } from '../../styled';
interface Props extends ThemeProps {
className?: string;
@@ -5,12 +5,13 @@ import type { ThemeProps } from '../../types';
import React, { useCallback } from 'react';
import { Link } from 'react-router-dom';
import styled from 'styled-components';
import { AuthUrlInfo } from '@polkadot/extension-base/background/handlers/State';
import { RemoveAuth } from '@polkadot/extension-ui/components';
import { useTranslation } from '@polkadot/extension-ui/components/translate';
import { styled } from '../../styled';
interface Props extends ThemeProps {
className?: string;
info: AuthUrlInfo;
@@ -4,7 +4,6 @@
import type { ThemeProps } from '../../types';
import React, { useCallback, useEffect, useMemo, useState } from 'react';
import styled from 'styled-components';
import { AuthUrlInfo, AuthUrls } from '@polkadot/extension-base/background/handlers/State';
import { InputFilter } from '@polkadot/extension-ui/components';
@@ -12,6 +11,7 @@ import { InputFilter } from '@polkadot/extension-ui/components';
import useTranslation from '../../hooks/useTranslation';
import { getAuthList, removeAuthorization } from '../../messaging';
import { Header } from '../../partials';
import { styled } from '../../styled';
import WebsiteEntry from './WebsiteEntry';
interface Props extends ThemeProps {
@@ -3,10 +3,11 @@
import '@polkadot/extension-mocks/chrome';
import type { ReactWrapper } from 'enzyme';
import type { AccountJson, AuthorizeRequest } from '@polkadot/extension-base/background/types';
import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
import { configure, mount, ReactWrapper } from 'enzyme';
import enzyme from 'enzyme';
import React from 'react';
import { ThemeProvider } from 'styled-components';
@@ -17,6 +18,8 @@ import Account from '../Accounts/Account';
import Request from './Request';
import Authorize from '.';
const { configure, mount } = enzyme;
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-call
configure({ adapter: new Adapter() });
@@ -6,11 +6,12 @@ import type { ThemeProps } from '../../types';
import { t } from 'i18next';
import React, { useCallback } from 'react';
import { Trans } from 'react-i18next';
import styled from 'styled-components';
import { Button, Warning } from '@polkadot/extension-ui/components';
import { deleteAuthRequest } from '@polkadot/extension-ui/messaging';
import { styled } from '../../styled';
interface Props extends ThemeProps {
authId: string;
className?: string;
@@ -5,12 +5,12 @@ import type { RequestAuthorizeTab } from '@polkadot/extension-base/background/ty
import type { ThemeProps } from '../../types';
import React, { useCallback, useContext, useEffect } from 'react';
import styled from 'styled-components';
import { AccountContext, ActionBar, ActionContext, Button, Link } from '../../components';
import useTranslation from '../../hooks/useTranslation';
import { approveAuthRequest, deleteAuthRequest } from '../../messaging';
import { AccountSelection } from '../../partials';
import { styled } from '../../styled';
import NoAccount from './NoAccount';
interface Props extends ThemeProps {
@@ -4,11 +4,11 @@
import type { ThemeProps } from '../../types';
import React, { useContext } from 'react';
import styled from 'styled-components';
import { AuthorizeReqContext } from '../../components';
import useTranslation from '../../hooks/useTranslation';
import { Header } from '../../partials';
import { styled } from '../../styled';
import Request from './Request';
interface Props extends ThemeProps {
@@ -3,8 +3,10 @@
import '@polkadot/extension-mocks/chrome';
import type { ReactWrapper } from 'enzyme';
import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
import { configure, mount, ReactWrapper } from 'enzyme';
import enzyme from 'enzyme';
import React from 'react';
import { act } from 'react-dom/test-utils';
import { ThemeProvider } from 'styled-components';
@@ -15,6 +17,8 @@ import { Header } from '../../partials';
import { flushAllPromises } from '../../testHelpers';
import CreateAccount from '.';
const { configure, mount } = enzyme;
// NOTE Required for spyOn when using @swc/jest
// https://github.com/swc-project/swc/issues/3843
jest.mock('../../messaging', (): Record<string, unknown> => ({
@@ -2,7 +2,6 @@
// SPDX-License-Identifier: Apache-2.0
import React, { useCallback, useContext, useEffect, useState } from 'react';
import styled from 'styled-components';
import { ActionContext, Address, Dropdown, Loading } from '../../components';
import AccountNamePasswordCreation from '../../components/AccountNamePasswordCreation';
@@ -11,6 +10,7 @@ import useMetadata from '../../hooks/useMetadata';
import useTranslation from '../../hooks/useTranslation';
import { createAccountSuri, createSeed, validateSeed } from '../../messaging';
import { HeaderWithSteps } from '../../partials';
import { styled } from '../../styled';
import { DEFAULT_TYPE } from '../../util/defaultType';
import Mnemonic from './Mnemonic';
@@ -4,11 +4,11 @@
import type { ThemeProps } from '../../types';
import React, { useCallback, useRef, useState } from 'react';
import styled from 'styled-components';
import arrow from '../../assets/arrow-down.svg';
import { Address } from '../../components';
import useOutsideClick from '../../hooks/useOutsideClick';
import { styled } from '../../styled';
interface Props {
allAddresses: [string, string | null][];
@@ -6,10 +6,10 @@ import type { ThemeProps } from '../../types';
import { faLock, faLockOpen } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import React, { useCallback, useEffect, useState } from 'react';
import styled from 'styled-components';
import { Button, InputWithLabel } from '../../components';
import useTranslation from '../../hooks/useTranslation';
import { styled } from '../../styled';
interface Props extends ThemeProps{
className?: string;
@@ -3,10 +3,11 @@
import '@polkadot/extension-mocks/chrome';
import type { ReactWrapper } from 'enzyme';
import type { AccountJson, ResponseDeriveValidate } from '@polkadot/extension-base/background/types';
import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
import { configure, mount, ReactWrapper } from 'enzyme';
import enzyme from 'enzyme';
import React from 'react';
import { act } from 'react-dom/test-utils';
import { MemoryRouter, Route } from 'react-router';
@@ -19,6 +20,8 @@ import { buildHierarchy } from '../../util/buildHierarchy';
import AddressDropdown from './AddressDropdown';
import Derive from '.';
const { configure, mount } = enzyme;
// NOTE Required for spyOn when using @swc/jest
// https://github.com/swc-project/swc/issues/3843
jest.mock('../../messaging', (): Record<string, unknown> => ({
@@ -3,10 +3,11 @@
import '@polkadot/extension-mocks/chrome';
import type { ReactWrapper } from 'enzyme';
import type { KeyringPair$Json } from '@polkadot/keyring/types';
import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
import { configure, mount, ReactWrapper } from 'enzyme';
import enzyme from 'enzyme';
import React from 'react';
import { act } from 'react-dom/test-utils';
import { MemoryRouter, Route } from 'react-router';
@@ -17,6 +18,8 @@ import * as messaging from '../messaging';
import { flushAllPromises } from '../testHelpers';
import Export from './Export';
const { configure, mount } = enzyme;
// NOTE Required for spyOn when using @swc/jest
// https://github.com/swc-project/swc/issues/3843
jest.mock('../messaging', (): Record<string, unknown> => ({
+1 -1
View File
@@ -6,12 +6,12 @@ import type { ThemeProps } from '../types';
import { saveAs } from 'file-saver';
import React, { useCallback, useContext, useState } from 'react';
import { RouteComponentProps, withRouter } from 'react-router';
import styled from 'styled-components';
import { ActionBar, ActionContext, ActionText, Address, Button, InputWithLabel, Warning } from '../components';
import useTranslation from '../hooks/useTranslation';
import { exportAccount } from '../messaging';
import { Header } from '../partials';
import { styled } from '../styled';
const MIN_LENGTH = 6;
@@ -6,12 +6,12 @@ import type { ThemeProps } from '../types';
import { saveAs } from 'file-saver';
import React, { useCallback, useContext, useState } from 'react';
import { RouteComponentProps, withRouter } from 'react-router';
import styled from 'styled-components';
import { AccountContext, ActionBar, ActionContext, ActionText, Button, InputWithLabel, Warning } from '../components';
import useTranslation from '../hooks/useTranslation';
import { exportAccounts } from '../messaging';
import { Header } from '../partials';
import { styled } from '../styled';
const MIN_LENGTH = 6;
+1 -1
View File
@@ -5,12 +5,12 @@ import type { ThemeProps } from '../types';
import React, { useCallback, useContext, useState } from 'react';
import { RouteComponentProps, withRouter } from 'react-router';
import styled from 'styled-components';
import { ActionBar, ActionContext, ActionText, Address, Button, Warning } from '../components';
import useTranslation from '../hooks/useTranslation';
import { forgetAccount } from '../messaging';
import { Header } from '../partials';
import { styled } from '../styled';
interface Props extends RouteComponentProps<{ address: string }>, ThemeProps {
className?: string;
@@ -4,7 +4,6 @@
import { faSync } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import React, { useCallback, useContext, useEffect, useRef, useState } from 'react';
import styled from 'styled-components';
import settings from '@polkadot/ui-settings';
@@ -13,6 +12,7 @@ import { useLedger } from '../hooks/useLedger';
import useTranslation from '../hooks/useTranslation';
import { createAccountHardware } from '../messaging';
import { Header, Name } from '../partials';
import { styled } from '../styled';
import { ThemeProps } from '../types';
import ledgerChains from '../util/legerChains';
@@ -3,8 +3,10 @@
import '@polkadot/extension-mocks/chrome';
import type { ReactWrapper } from 'enzyme';
import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
import { configure, mount, ReactWrapper } from 'enzyme';
import enzyme from 'enzyme';
import React from 'react';
import { act } from 'react-dom/test-utils';
import { MemoryRouter } from 'react-router';
@@ -14,6 +16,8 @@ import * as messaging from '../messaging';
import { flushAllPromises } from '../testHelpers';
import ImportQr from './ImportQr';
const { configure, mount } = enzyme;
const mockedAccount = {
content: '12bxf6QJS5hMJgwbJMDjFot1sq93EvgQwyuPWENr9SzJfxtN',
expectedBannerChain: 'Polkadot',
@@ -3,8 +3,10 @@
import '@polkadot/extension-mocks/chrome';
import type { ReactWrapper } from 'enzyme';
import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
import { configure, mount, ReactWrapper } from 'enzyme';
import enzyme from 'enzyme';
import React from 'react';
import { act } from 'react-dom/test-utils';
import { MemoryRouter } from 'react-router';
@@ -14,6 +16,8 @@ import * as messaging from '../../messaging';
import { flushAllPromises } from '../../testHelpers';
import ImportSeed from './';
const { configure, mount } = enzyme;
const account = {
derivation: '/1',
expectedAddress: '5GNg7RWeAAJuya4wTxb8aZf19bCWJroKuJNrhk4N3iYHNqTm',
@@ -8,7 +8,6 @@ import type { AccountInfo } from '.';
import { faCaretDown, faCaretRight } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import React, { useCallback, useEffect, useState } from 'react';
import styled from 'styled-components';
import { validateSeed } from '@polkadot/extension-ui/messaging';
import { objectSpread } from '@polkadot/util';
@@ -16,6 +15,7 @@ import { objectSpread } from '@polkadot/util';
import { ButtonArea, Dropdown, InputWithLabel, NextStepButton, TextAreaWithLabel, VerticalSpace, Warning } from '../../components';
import useGenesisHashOptions from '../../hooks/useGenesisHashOptions';
import useTranslation from '../../hooks/useTranslation';
import { styled } from '../../styled';
interface Props {
className?: string;
@@ -5,12 +5,12 @@ import type { MetadataDef } from '@polkadot/extension-inject/types';
import type { ThemeProps } from '../../types';
import React, { useCallback, useContext } from 'react';
import styled from 'styled-components';
import { ActionBar, ActionContext, Button, Link, Table, Warning } from '../../components';
import useMetadata from '../../hooks/useMetadata';
import useTranslation from '../../hooks/useTranslation';
import { approveMetaRequest, rejectMetaRequest } from '../../messaging';
import { styled } from '../../styled';
interface Props {
className?: string;
@@ -6,10 +6,10 @@ import type { ThemeProps } from '../types';
import React from 'react';
import { Trans } from 'react-i18next';
import { useParams } from 'react-router';
import styled from 'styled-components';
import useTranslation from '../hooks/useTranslation';
import { Header } from '../partials';
import { styled } from '../styled';
interface Props extends ThemeProps {
className?: string;
@@ -6,7 +6,6 @@ import type { KeyringPair$Json } from '@polkadot/keyring/types';
import type { KeyringPairs$Json } from '@polkadot/ui-keyring/types';
import React, { useCallback, useContext, useEffect, useState } from 'react';
import styled from 'styled-components';
import { u8aToString } from '@polkadot/util';
@@ -14,6 +13,7 @@ import { AccountContext, ActionContext, Address, Button, InputFileWithLabel, Inp
import useTranslation from '../hooks/useTranslation';
import { batchRestore, jsonGetAccountInfo, jsonRestore } from '../messaging';
import { Header } from '../partials';
import { styled } from '../styled';
import { DEFAULT_TYPE } from '../util/defaultType';
import { isKeyringPairs$Json } from '../util/typeGuards';
@@ -4,11 +4,11 @@
import type { ThemeProps } from '../../types';
import React, { useMemo } from 'react';
import styled from 'styled-components';
import { isAscii, u8aToString, u8aUnwrapBytes } from '@polkadot/util';
import useTranslation from '../../hooks/useTranslation';
import { styled } from '../../styled';
interface Props {
className?: string;
@@ -7,11 +7,11 @@ import type { HexString } from '@polkadot/util/types';
import { faSync } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import React, { useCallback, useEffect, useState } from 'react';
import styled from 'styled-components';
import { Button, Warning } from '../../components';
import { useLedger } from '../../hooks/useLedger';
import useTranslation from '../../hooks/useTranslation';
import { styled } from '../../styled';
interface Props {
accountIndex?: number;
@@ -5,13 +5,13 @@ import type { ExtrinsicPayload } from '@polkadot/types/interfaces';
import type { HexString } from '@polkadot/util/types';
import React, { useCallback, useMemo, useState } from 'react';
import styled from 'styled-components';
import { wrapBytes } from '@polkadot/extension-dapp/wrapBytes';
import { QrDisplayPayload, QrScanSignature } from '@polkadot/react-qr';
import { Button } from '../../components';
import useTranslation from '../../hooks/useTranslation';
import { styled } from '../../styled';
import { CMD_MORTAL, CMD_SIGN_MESSAGE } from './Request';
interface Props {
@@ -2,13 +2,13 @@
// SPDX-License-Identifier: Apache-2.0
import React, { useCallback, useContext, useEffect, useState } from 'react';
import styled from 'styled-components';
import { PASSWORD_EXPIRY_MIN } from '@polkadot/extension-base/defaults';
import { ActionBar, ActionContext, Button, ButtonArea, Checkbox, Link } from '../../../components';
import useTranslation from '../../../hooks/useTranslation';
import { approveSignPassword, cancelSignRequest, isSignLocked } from '../../../messaging';
import { styled } from '../../../styled';
import Unlock from '../Unlock';
interface Props {
@@ -3,10 +3,11 @@
import '@polkadot/extension-mocks/chrome';
import type { ReactWrapper } from 'enzyme';
import type { SigningRequest } from '@polkadot/extension-base/background/types';
import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
import { configure, mount, ReactWrapper } from 'enzyme';
import enzyme from 'enzyme';
import { EventEmitter } from 'events';
import React, { useState } from 'react';
import { act } from 'react-dom/test-utils';
@@ -23,6 +24,8 @@ import Request from './Request';
import TransactionIndex from './TransactionIndex';
import Signing from '.';
const { configure, mount } = enzyme;
// NOTE Required for spyOn when using @swc/jest
// https://github.com/swc-project/swc/issues/3843
jest.mock('../../messaging', (): Record<string, unknown> => ({
@@ -6,7 +6,8 @@ import type { ThemeProps } from '../../types';
import { faArrowLeft, faArrowRight } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import React, { useCallback } from 'react';
import styled from 'styled-components';
import { styled } from '../../styled';
interface Props {
className?: string;
+1 -1
View File
@@ -4,11 +4,11 @@
import type { ThemeProps } from '../types';
import React, { useCallback, useContext } from 'react';
import styled from 'styled-components';
import { ActionContext, Box, Button, ButtonArea, List, VerticalSpace } from '../components';
import useTranslation from '../hooks/useTranslation';
import { Header } from '../partials';
import { styled } from '../styled';
interface Props extends ThemeProps {
className?: string;
@@ -6,7 +6,7 @@ import '@polkadot/extension-mocks/chrome';
import type { ReactWrapper } from 'enzyme';
import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
import { configure, mount } from 'enzyme';
import enzyme from 'enzyme';
import React from 'react';
import { act } from 'react-dom/test-utils';
@@ -17,6 +17,8 @@ import { AccountNamePasswordCreation, Input, InputWithLabel, NextStepButton } fr
// For this file, there are a lot of them
/* eslint-disable @typescript-eslint/no-unsafe-argument */
const { configure, mount } = enzyme;
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-call
configure({ adapter: new Adapter() });
@@ -2,7 +2,8 @@
// SPDX-License-Identifier: Apache-2.0
import React from 'react';
import styled from 'styled-components';
import { styled } from '../styled';
interface Props {
children: React.ReactNode;
@@ -6,7 +6,8 @@ import type { ThemeProps } from '../types';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import React, { MouseEventHandler } from 'react';
import styled from 'styled-components';
import { styled } from '../styled';
interface Props {
className?: string;
@@ -9,7 +9,7 @@ import type { IconTheme } from '@polkadot/react-identicon/types';
import type { Props as AddressComponentProps } from './Address';
import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
import { configure, mount } from 'enzyme';
import enzyme from 'enzyme';
import React from 'react';
import { act } from 'react-dom/test-utils';
@@ -22,6 +22,8 @@ import { DEFAULT_TYPE } from '../util/defaultType';
import getParentNameSuri from '../util/getParentNameSuri';
import { AccountContext, Address } from '.';
const { configure, mount } = enzyme;
// NOTE Required for spyOn when using @swc/jest
// https://github.com/swc-project/swc/issues/3843
jest.mock('../messaging', (): Record<string, unknown> => ({
@@ -14,7 +14,6 @@ import { faCodeBranch, faQrcode } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import React, { useCallback, useContext, useEffect, useRef, useState } from 'react';
import CopyToClipboard from 'react-copy-to-clipboard';
import styled from 'styled-components';
import { decodeAddress, encodeAddress } from '@polkadot/util-crypto';
@@ -24,6 +23,7 @@ import useOutsideClick from '../hooks/useOutsideClick';
import useToast from '../hooks/useToast';
import useTranslation from '../hooks/useTranslation';
import { showAccount } from '../messaging';
import { styled } from '../styled';
import { DEFAULT_TYPE } from '../util/defaultType';
import getParentNameSuri from '../util/getParentNameSuri';
import { AccountContext, SettingsContext } from './contexts';
@@ -6,8 +6,8 @@ import type { ThemeProps } from '../types';
import { faArrowLeft } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import React from 'react';
import styled from 'styled-components';
import { styled } from '../styled';
import Button from './Button';
interface Props {
+2 -1
View File
@@ -4,7 +4,8 @@
import type { ThemeProps } from '../types';
import React from 'react';
import styled from 'styled-components';
import { styled } from '../styled';
interface Props {
banner?: React.ReactNode;
@@ -4,8 +4,8 @@
import type { ThemeProps } from '../types';
import React, { useCallback } from 'react';
import styled from 'styled-components';
import { styled } from '../styled';
import Spinner from './Spinner';
interface Props extends ThemeProps {
@@ -4,7 +4,8 @@
import type { ThemeProps } from '../types';
import React from 'react';
import styled from 'styled-components';
import { styled } from '../styled';
interface Props extends ThemeProps {
className?: string;
@@ -2,8 +2,8 @@
// SPDX-License-Identifier: Apache-2.0
import React from 'react';
import styled from 'styled-components';
import { styled } from '../styled';
import { Button } from '.';
interface ButtonWithSubtitleProps {
@@ -4,9 +4,9 @@
import type { ThemeProps } from '../types';
import React, { useCallback, useEffect } from 'react';
import styled from 'styled-components';
import Checkmark from '../assets/checkmark.svg';
import { styled } from '../styled';
interface Props {
checked: boolean;
@@ -4,9 +4,9 @@
import type { ThemeProps } from '../types';
import React, { useCallback } from 'react';
import styled from 'styled-components';
import arrow from '../assets/arrow-down.svg';
import { styled } from '../styled';
import Label from './Label';
interface DropdownOption {
@@ -2,7 +2,8 @@
// SPDX-License-Identifier: Apache-2.0
import React from 'react';
import styled from 'styled-components';
import { styled } from '../styled';
interface Props {
className?: string;
@@ -5,10 +5,11 @@ import type { IconTheme } from '@polkadot/react-identicon/types';
import type { ThemeProps } from '../types';
import React from 'react';
import styled from 'styled-components';
import Icon from '@polkadot/react-identicon';
import { styled } from '../styled';
interface Props {
className?: string;
iconTheme?: IconTheme;
@@ -5,11 +5,11 @@ import type { ThemeProps } from '../types';
import React, { createRef, useCallback, useState } from 'react';
import Dropzone, { DropzoneRef } from 'react-dropzone';
import styled from 'styled-components';
import { formatNumber, hexToU8a, isHex, u8aToString } from '@polkadot/util';
import useTranslation from '../hooks/useTranslation';
import { styled } from '../styled';
import Label from './Label';
function classes (...classNames: (boolean | null | string | undefined)[]): string {
@@ -4,8 +4,8 @@
import { faTimes } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import React, { useCallback, useRef } from 'react';
import styled from 'styled-components';
import { styled } from '../styled';
import { ThemeProps } from '../types';
import { Input } from './TextInputs';
@@ -2,9 +2,9 @@
// SPDX-License-Identifier: Apache-2.0
import React, { useCallback, useState } from 'react';
import styled from 'styled-components';
import useTranslation from '../hooks/useTranslation';
import { styled } from '../styled';
import Label from './Label';
import { Input } from './TextInputs';
import Warning from './Warning';
@@ -4,7 +4,8 @@
import type { ThemeProps } from '../types';
import React from 'react';
import styled from 'styled-components';
import { styled } from '../styled';
interface Props {
children: React.ReactNode;
@@ -5,7 +5,8 @@ import type { ThemeProps } from '../types';
import React from 'react';
import { Link as RouterLink } from 'react-router-dom';
import styled from 'styled-components';
import { styled } from '../styled';
interface Props {
children?: React.ReactNode;
@@ -4,7 +4,8 @@
import type { ThemeProps } from '../types';
import React from 'react';
import styled from 'styled-components';
import { styled } from '../styled';
interface Props extends ThemeProps {
className?: string;
@@ -4,7 +4,8 @@
import type { ThemeProps } from '../types';
import React from 'react';
import styled from 'styled-components';
import { styled } from '../styled';
interface Props {
children: React.ReactNode;
@@ -4,7 +4,8 @@
import type { ThemeProps } from '../types';
import React from 'react';
import styled from 'styled-components';
import { styled } from '../styled';
interface Props {
children: React.ReactNode;
@@ -4,7 +4,8 @@
import type { ThemeProps } from '../types';
import React from 'react';
import styled from 'styled-components';
import { styled } from '../styled';
interface Props extends ThemeProps {
className?: string;
@@ -4,7 +4,8 @@
import type { ThemeProps } from '../types';
import React from 'react';
import styled from 'styled-components';
import { styled } from '../styled';
interface Props extends ThemeProps {
children: React.ReactNode;
@@ -5,9 +5,9 @@ import type { ThemeProps } from '../types';
import { faCopy } from '@fortawesome/free-regular-svg-icons';
import React, { MouseEventHandler } from 'react';
import styled from 'styled-components';
import useTranslation from '../hooks/useTranslation';
import { styled } from '../styled';
import ActionText from './ActionText';
import TextAreaWithLabel from './TextAreaWithLabel';
@@ -6,8 +6,8 @@ import type { ThemeProps } from '../types';
import { faArrowRight } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import React from 'react';
import styled from 'styled-components';
import { styled } from '../styled';
import Button from './Button';
type Props = React.ComponentProps<typeof Button>;
@@ -6,7 +6,8 @@ import type { ThemeProps } from '../types';
import { faTrash } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import React from 'react';
import styled from 'styled-components';
import { styled } from '../styled';
interface Props{
className?: string
@@ -4,9 +4,9 @@
import type { ThemeProps } from '../types';
import React from 'react';
import styled from 'styled-components';
import spinnerSrc from '../assets/spinner.png';
import { styled } from '../styled';
interface Props extends ThemeProps {
className?: string;
+2 -1
View File
@@ -4,7 +4,8 @@
import type { ThemeProps } from '../types';
import React from 'react';
import styled from 'styled-components';
import { styled } from '../styled';
interface Props extends ThemeProps {
className?: string;
@@ -4,7 +4,8 @@
import type { ThemeProps } from '../types';
import React, { useCallback } from 'react';
import styled from 'styled-components';
import { styled } from '../styled';
interface Props {
checked: boolean;
@@ -4,7 +4,8 @@
import type { ThemeProps } from '../types';
import React from 'react';
import styled from 'styled-components';
import { styled } from '../styled';
interface Props {
children: React.ReactNode;
@@ -4,7 +4,8 @@
import type { ThemeProps } from '../../types';
import React from 'react';
import styled from 'styled-components';
import { styled } from '../../styled';
interface Props {
content: React.ReactChild;
@@ -2,7 +2,8 @@
// SPDX-License-Identifier: Apache-2.0
import React from 'react';
import styled from 'styled-components';
import { styled } from '../styled';
interface Props {
className?: string;
@@ -6,7 +6,8 @@ import type { ThemeProps } from '../types';
import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import React from 'react';
import styled from 'styled-components';
import { styled } from '../styled';
interface Props extends ThemeProps {
children: React.ReactNode;
+2 -2
View File
@@ -4,12 +4,12 @@
import '@polkadot/extension-mocks/chrome';
import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
import { configure } from 'enzyme';
import enzyme from 'enzyme';
import { exportAccount } from './messaging';
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-call
configure({ adapter: new Adapter() });
enzyme.configure({ adapter: new Adapter() });
describe('messaging sends message to background via extension port for', () => {
test('exportAccount', () => {
@@ -5,11 +5,11 @@ import type { ThemeProps } from '../types';
import React, { useCallback, useContext, useEffect, useMemo, useState } from 'react';
import { Trans } from 'react-i18next';
import styled from 'styled-components';
import { AccountContext, Checkbox, Warning } from '../components';
import useTranslation from '../hooks/useTranslation';
import AccountsTree from '../Popup/Accounts/AccountsTree';
import { styled } from '../styled';
interface Props extends ThemeProps {
className?: string;
@@ -3,8 +3,10 @@
import '@polkadot/extension-mocks/chrome';
import type { ReactWrapper } from 'enzyme';
import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
import { configure, mount, ReactWrapper } from 'enzyme';
import enzyme from 'enzyme';
import React from 'react';
import { MemoryRouter } from 'react-router';
import { ThemeProvider } from 'styled-components';
@@ -13,6 +15,8 @@ import { themes } from '../components';
import Header from './Header';
import Settings from './MenuSettings';
const { configure, mount } = enzyme;
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-call
configure({ adapter: new Adapter() });
@@ -6,7 +6,6 @@ import type { ThemeProps } from '../types';
import { faArrowLeft, faCog, faPlusCircle, faSearch } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import React, { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';
import styled from 'styled-components';
import logo from '../assets/pjs.svg';
import { ActionContext } from '../components';
@@ -15,6 +14,7 @@ import Link from '../components/Link';
import useOutsideClick from '../hooks/useOutsideClick';
import useTranslation from '../hooks/useTranslation';
import { getConnectedTabsUrl } from '../messaging';
import { styled } from '../styled';
import MenuAdd from './MenuAdd';
import MenuSettings from './MenuSettings';
@@ -4,9 +4,9 @@
import type { ThemeProps } from '../types';
import React, { useCallback, useContext } from 'react';
import styled from 'styled-components';
import { ActionContext, ActionText } from '../components';
import { styled } from '../styled';
import Header from './Header';
interface Props extends ThemeProps {
@@ -7,13 +7,13 @@ import { faUsb } from '@fortawesome/free-brands-svg-icons';
import { faCodeBranch, faFileExport, faFileUpload, faKey, faPlusCircle, faQrcode } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import React, { useCallback, useContext } from 'react';
import styled from 'styled-components';
import { AccountContext, Link, MediaContext, Menu, MenuDivider, MenuItem } from '../components';
import useIsPopup from '../hooks/useIsPopup';
import { useLedger } from '../hooks/useLedger';
import useTranslation from '../hooks/useTranslation';
import { windowOpen } from '../messaging';
import { styled } from '../styled';
interface Props extends ThemeProps {
className?: string;
+14
View File
@@ -0,0 +1,14 @@
// Copyright 2019-2023 @polkadot/extension-ui authors & contributors
// SPDX-License-Identifier: Apache-2.0
import styledComponents from 'styled-components';
// In styled-components v6, there is a named export which can be used
// directly, i.e. "import { styled } from ..." with no more magic. Until
// such time the cjs vs esm import here is problematic, so we hack around
// the various shapes below
export const styled = (
(styledComponents as unknown as { styled: typeof styledComponents }).styled ||
(styledComponents as unknown as { default: typeof styledComponents }).default ||
styledComponents
);
@@ -21,87 +21,85 @@ describe('Use Account Hierarchy', () => {
parentAddress?: string;
suri?: string;
whenCreated?: number;
} => ({
address,
name,
parentAddress,
suri,
whenCreated
});
} => ({ address, name, parentAddress, suri, whenCreated });
test('for empty account list, returns empty list', () => {
it('for empty account list, returns empty list', () => {
testHierarchy([], []);
});
test('returns one account', () => {
it('returns one account', () => {
testHierarchy([acc('a')], [acc('a')]);
});
test('puts child account into children field of parent: single child', () => {
it('puts child account into children field of parent: single child', () => {
testHierarchy([acc('a'), acc('b', 'a')], [
{ address: 'a', children: [acc('b', 'a')] }
{ address: 'a', children: [acc('b', 'a')], name: undefined, parentAddress: undefined, suri: undefined, whenCreated: undefined }
]);
});
test('puts child account into children field of parent: more children', () => {
it('puts child account into children field of parent: more children', () => {
testHierarchy([acc('a'), acc('b', 'a'), acc('c', 'a')], [
{ address: 'a', children: [acc('b', 'a'), acc('c', 'a')] }
{ address: 'a', children: [acc('b', 'a'), acc('c', 'a')], name: undefined, parentAddress: undefined, suri: undefined, whenCreated: undefined }
]);
});
test('puts child account into children field of parent: 2 roots', () => {
it('puts child account into children field of parent: 2 roots', () => {
testHierarchy([acc('a'), acc('b', 'a'), acc('c', 'a'), acc('d')], [
{ address: 'a', children: [acc('b', 'a'), acc('c', 'a')] },
{ address: 'a', children: [acc('b', 'a'), acc('c', 'a')], name: undefined, parentAddress: undefined, suri: undefined, whenCreated: undefined },
acc('d')
]);
});
test('handles grandchildren', () => {
it('handles grandchildren', () => {
testHierarchy([acc('a'), acc('b', 'a'), acc('c', 'b')], [{
address: 'a',
children: [{
...acc('b', 'a'),
children: [acc('c', 'b')]
}]
}],
name: undefined,
parentAddress: undefined,
suri: undefined,
whenCreated: undefined
}]);
});
test('sorts accounts by network', () => {
it('sorts accounts by network', () => {
testHierarchy(
[{ address: 'b', genesisHash: genesisExample.KUSAMA }, { address: 'a', genesisHash: genesisExample.POLKADOT }, { address: 'c', genesisHash: genesisExample.KUSAMA }],
[{ address: 'b', genesisHash: genesisExample.KUSAMA }, { address: 'c', genesisHash: genesisExample.KUSAMA }, { address: 'a', genesisHash: genesisExample.POLKADOT }]
);
});
test('sorts accounts by network and name', () => {
it('sorts accounts by network and name', () => {
testHierarchy(
[{ address: 'b', genesisHash: genesisExample.KUSAMA, name: 'b-last-kusama' }, { address: 'a', genesisHash: genesisExample.POLKADOT }, { address: 'c', genesisHash: genesisExample.KUSAMA, name: 'a-first-kusama' }],
[{ address: 'c', genesisHash: genesisExample.KUSAMA, name: 'a-first-kusama' }, { address: 'b', genesisHash: genesisExample.KUSAMA, name: 'b-last-kusama' }, { address: 'a', genesisHash: genesisExample.POLKADOT }]
);
});
test('sorts accounts by name and creation date', () => {
it('sorts accounts by name and creation date', () => {
testHierarchy(
[acc('b', undefined, 2, 'b'), acc('z', undefined, 1, 'b'), acc('a', undefined, 4, 'a')],
[{ address: 'a', name: 'a', whenCreated: 4 }, { address: 'z', name: 'b', whenCreated: 1 }, { address: 'b', name: 'b', whenCreated: 2 }]
[{ address: 'a', name: 'a', parentAddress: undefined, suri: undefined, whenCreated: 4 }, { address: 'z', name: 'b', parentAddress: undefined, suri: undefined, whenCreated: 1 }, { address: 'b', name: 'b', parentAddress: undefined, suri: undefined, whenCreated: 2 }]
);
});
test('sorts account children by name and path', () => {
it('sorts account children by name and path', () => {
testHierarchy(
[acc('a', undefined, 1, 'a'), acc('b', 'a', 1, 'b', '/2'), acc('b', 'a', 1, 'b', '/0')],
[{ address: 'a', children: [acc('b', 'a', 1, 'b', '/0'), acc('b', 'a', 1, 'b', '/2')], name: 'a', whenCreated: 1 }]
[{ address: 'a', children: [acc('b', 'a', 1, 'b', '/0'), acc('b', 'a', 1, 'b', '/2')], name: 'a', parentAddress: undefined, suri: undefined, whenCreated: 1 }]
);
});
test('sorts accounts with children by name and creation date', () => {
it('sorts accounts with children by name and creation date', () => {
testHierarchy(
[acc('b', undefined, 2, 'b'), acc('z', undefined, 1, 'b'), acc('d', 'b', 2, 'd'), acc('c', 'b', 3, 'c'), acc('a', undefined, 4, 'a')],
[{ address: 'a', name: 'a', whenCreated: 4 }, { address: 'z', name: 'b', whenCreated: 1 }, { address: 'b', children: [acc('c', 'b', 3, 'c'), acc('d', 'b', 2, 'd')], name: 'b', whenCreated: 2 }]
[{ address: 'a', name: 'a', parentAddress: undefined, suri: undefined, whenCreated: 4 }, { address: 'z', name: 'b', parentAddress: undefined, suri: undefined, whenCreated: 1 }, { address: 'b', children: [acc('c', 'b', 3, 'c'), acc('d', 'b', 2, 'd')], name: 'b', parentAddress: undefined, suri: undefined, whenCreated: 2 }]
);
});
test('if creation time is missing, puts account at the back of a list', () => {
it('if creation time is missing, puts account at the back of a list', () => {
testHierarchy(
[acc('a'), acc('b', undefined, 2), acc('c', undefined, 1)],
[acc('c', undefined, 1), acc('b', undefined, 2), acc('a')]
@@ -12,19 +12,19 @@ describe('Generate Derivation Path', () => {
parentAddress
});
test('generates path for first masters child', () => {
it('generates path for first masters child', () => {
expect(nextDerivationPath([acc('a')], 'a')).toEqual('//0');
});
test('generates path for third masters child', () => {
it('generates path for third masters child', () => {
expect(nextDerivationPath([acc('a'), acc('b', 'a'), acc('c', 'a')], 'a')).toEqual('//2');
});
test('generates path for masters child when another root exists', () => {
it('generates path for masters child when another root exists', () => {
expect(nextDerivationPath([acc('a'), acc('b', 'a'), acc('c', 'a'), acc('d')], 'a')).toEqual('//2');
});
test('generates path for masters grandchild', () => {
it('generates path for masters grandchild', () => {
expect(nextDerivationPath([acc('a'), acc('b', 'a'), acc('c', 'b'), acc('d', 'b')], 'b')).toEqual('//2');
});
});
+1 -1
View File
@@ -22,7 +22,7 @@
"@polkadot/extension-ui": "^0.44.9"
},
"devDependencies": {
"@polkadot/dev": "^0.68.38",
"@polkadot/dev": "^0.68.41",
"babel-loader": "^8.3.0",
"browser-resolve": "^2.0.0",
"buffer": "^6.0.3",
+41 -41
View File
@@ -2578,9 +2578,9 @@ __metadata:
languageName: node
linkType: hard
"@polkadot/dev@npm:^0.68.38":
version: 0.68.38
resolution: "@polkadot/dev@npm:0.68.38"
"@polkadot/dev@npm:^0.68.41":
version: 0.68.41
resolution: "@polkadot/dev@npm:0.68.41"
dependencies:
"@babel/cli": ^7.20.7
"@babel/core": ^7.20.12
@@ -2644,7 +2644,7 @@ __metadata:
jsdom: ^21.1.0
madge: ^6.0.0
prettier: ^2.8.4
rollup: ^3.17.1
rollup: ^3.17.2
rollup-plugin-cleanup: ^3.2.1
typescript: ^4.9.5
webpack: ^5.75.0
@@ -2682,7 +2682,7 @@ __metadata:
polkadot-exec-swc: scripts/polkadot-exec-swc.mjs
polkadot-exec-tsc: scripts/polkadot-exec-tsc.mjs
polkadot-exec-webpack: scripts/polkadot-exec-webpack.mjs
checksum: 7fa2e683784b02b97fb08c34f1f84d6504e28d2a3d1ae0513b392390a800f4801f281bf789b0c7f0a19e221bfc6de5a2c89a237eb3674ce9ad131188392d7e08
checksum: a3e5d0acca6393c0d2cda36d5000ce605bf7cc0da6dd427947a82fe7d7783ce3ba2711bf4167d69178fc227e5ab86bd8ef75b3292d71328a817d0c3030305e95
languageName: node
linkType: hard
@@ -2701,8 +2701,8 @@ __metadata:
"@polkadot/phishing": ^0.19.3
"@polkadot/rpc-provider": ^9.14.2
"@polkadot/types": ^9.14.2
"@polkadot/ui-keyring": ^2.11.3
"@polkadot/ui-settings": ^2.11.3
"@polkadot/ui-keyring": ^2.12.1
"@polkadot/ui-settings": ^2.12.1
"@polkadot/util": ^10.4.2
"@polkadot/util-crypto": ^10.4.2
eventemitter3: ^5.0.0
@@ -2799,12 +2799,12 @@ __metadata:
"@polkadot/hw-ledger": ^10.4.2
"@polkadot/keyring": ^10.4.2
"@polkadot/networks": ^10.4.2
"@polkadot/react-identicon": ^2.11.3
"@polkadot/react-qr": ^2.11.3
"@polkadot/react-identicon": ^2.12.1
"@polkadot/react-qr": ^2.12.1
"@polkadot/types": ^9.14.2
"@polkadot/types-augment": ^9.14.2
"@polkadot/ui-keyring": ^2.11.3
"@polkadot/ui-settings": ^2.11.3
"@polkadot/ui-keyring": ^2.12.1
"@polkadot/ui-settings": ^2.12.1
"@polkadot/util": ^10.4.2
"@polkadot/util-crypto": ^10.4.2
"@types/enzyme": ^3.10.12
@@ -2838,7 +2838,7 @@ __metadata:
resolution: "@polkadot/extension@workspace:packages/extension"
dependencies:
"@babel/runtime": ^7.20.13
"@polkadot/dev": ^0.68.38
"@polkadot/dev": ^0.68.41
"@polkadot/extension-base": ^0.44.9
"@polkadot/extension-inject": ^0.44.9
"@polkadot/extension-ui": ^0.44.9
@@ -2926,14 +2926,14 @@ __metadata:
languageName: node
linkType: hard
"@polkadot/react-identicon@npm:^2.11.3":
version: 2.11.3
resolution: "@polkadot/react-identicon@npm:2.11.3"
"@polkadot/react-identicon@npm:^2.12.1":
version: 2.12.1
resolution: "@polkadot/react-identicon@npm:2.12.1"
dependencies:
"@babel/runtime": ^7.20.13
"@polkadot/keyring": ^10.4.2
"@polkadot/ui-settings": 2.11.3
"@polkadot/ui-shared": 2.11.3
"@polkadot/ui-settings": 2.12.1
"@polkadot/ui-shared": 2.12.1
"@polkadot/util": ^10.4.2
"@polkadot/util-crypto": ^10.4.2
color: ^3.2.1
@@ -2949,16 +2949,16 @@ __metadata:
react-dom: "*"
react-is: "*"
styled-components: "*"
checksum: 2454027dce63a036d19722deb65f1239c47c678effd5b356faf2a1a77b6426cfe889f382d078d8490562a5456c97184723e18e664a5c24f2eca128b46829a33b
checksum: 5fbb640edcbfb0f3fb00170dcb5585c10dc7d578e9fd958c257b8853d5627fb561d34ee20af1a11a6838a4dabce78afdbf05a6945615341576389c6d714c786c
languageName: node
linkType: hard
"@polkadot/react-qr@npm:^2.11.3":
version: 2.11.3
resolution: "@polkadot/react-qr@npm:2.11.3"
"@polkadot/react-qr@npm:^2.12.1":
version: 2.12.1
resolution: "@polkadot/react-qr@npm:2.12.1"
dependencies:
"@babel/runtime": ^7.20.13
"@polkadot/ui-settings": 2.11.3
"@polkadot/ui-settings": 2.12.1
"@polkadot/util": ^10.4.2
"@polkadot/util-crypto": ^10.4.2
qrcode-generator: ^1.4.4
@@ -2970,7 +2970,7 @@ __metadata:
react: "*"
react-dom: "*"
styled-components: "*"
checksum: 457e540dad46287df8f02465b7b8cef1c6ff6f6eb7a299d3dc12c81c4c946e59c7d1522e41f93a808828b5145d767ebc7704aa87577e7974d563121432e4da13
checksum: 2f348b48e7a387afa1784547c9b39f22a000ca1ad99896bb8b87f03298dfad582ec23512ad764a57758282f60f10f071c766595cc774085ef8ba017a1f3ffa19
languageName: node
linkType: hard
@@ -3099,13 +3099,13 @@ __metadata:
languageName: node
linkType: hard
"@polkadot/ui-keyring@npm:^2.11.3":
version: 2.11.3
resolution: "@polkadot/ui-keyring@npm:2.11.3"
"@polkadot/ui-keyring@npm:^2.12.1":
version: 2.12.1
resolution: "@polkadot/ui-keyring@npm:2.12.1"
dependencies:
"@babel/runtime": ^7.20.13
"@polkadot/keyring": ^10.4.2
"@polkadot/ui-settings": 2.11.3
"@polkadot/ui-settings": 2.12.1
"@polkadot/util": ^10.4.2
"@polkadot/util-crypto": ^10.4.2
mkdirp: ^2.1.3
@@ -3115,13 +3115,13 @@ __metadata:
"@polkadot/keyring": "*"
"@polkadot/ui-settings": "*"
"@polkadot/util": "*"
checksum: 91cbabaab1c5cc40dd11235bfaaa88ca817cb0b2b20b7ff55a30ae2d02ab0c64872e3d76385a819610cd60910e809c7665edaad7bb7f2066cb783f483eed3feb
checksum: 524e3dcbb35ff7c6c4aaf39735259adc4cac94fa82ad9c9782906c86215ec74790b3c22e21f27e80025a07b98a42de1c2d2c6d69738fa89f3f087391d8c98ea2
languageName: node
linkType: hard
"@polkadot/ui-settings@npm:2.11.3, @polkadot/ui-settings@npm:^2.11.3":
version: 2.11.3
resolution: "@polkadot/ui-settings@npm:2.11.3"
"@polkadot/ui-settings@npm:2.12.1, @polkadot/ui-settings@npm:^2.12.1":
version: 2.12.1
resolution: "@polkadot/ui-settings@npm:2.12.1"
dependencies:
"@babel/runtime": ^7.20.13
"@polkadot/networks": ^10.4.2
@@ -3131,20 +3131,20 @@ __metadata:
peerDependencies:
"@polkadot/networks": "*"
"@polkadot/util": "*"
checksum: 66daa72e53579a9cbb05f8cdc11dac7a8e3b1a30d558c399c21e818ba0bd7483d0ec579902ad9a3b80959949ad8c0a208030c373318e4dc79d8afd4720cf3e65
checksum: 13ccd765520be013c1bd3d7e4638b9e3b8f2a63bc2d7971c9787b7bccc9c6042f5f14bd86581ffc4a8ea50135d52f0d4d5011fdfd63717c5c547d35a4e74fd26
languageName: node
linkType: hard
"@polkadot/ui-shared@npm:2.11.3":
version: 2.11.3
resolution: "@polkadot/ui-shared@npm:2.11.3"
"@polkadot/ui-shared@npm:2.12.1":
version: 2.12.1
resolution: "@polkadot/ui-shared@npm:2.12.1"
dependencies:
"@babel/runtime": ^7.20.13
color: ^3.2.1
peerDependencies:
"@polkadot/util": "*"
"@polkadot/util-crypto": "*"
checksum: aa74e86ad8191524ac451ab99a3e2f457bb72582a0148971dc750be656b16518f3ab147a09b11cb7b9761d3aa33a1093958dfb36bc6b300f9e1e16b3d95b6252
checksum: c9c16bf04166ae15d5d494723805b469e149a01bc5b50184d6bac1ee0fe854f13b492241d229a81b4949c0a081a94d95b78a479c63a875b9218ad3c27eb90935
languageName: node
linkType: hard
@@ -16225,9 +16225,9 @@ __metadata:
languageName: node
linkType: hard
"rollup@npm:^3.17.1":
version: 3.17.1
resolution: "rollup@npm:3.17.1"
"rollup@npm:^3.17.2":
version: 3.17.2
resolution: "rollup@npm:3.17.2"
dependencies:
fsevents: ~2.3.2
dependenciesMeta:
@@ -16235,7 +16235,7 @@ __metadata:
optional: true
bin:
rollup: dist/bin/rollup
checksum: 3c6076eba228a6623b886929154ebbb9ddfb6a044e567456eeb6257b5235f4fd740655836b539155b1b25697f38f5d189bf81b9ce0624ce5aafc6c8620bd80c0
checksum: 9473eb7e7ffdb74c8e01e813eccb2e81e86cd429aea4705c424a5369845bedd871e715347a53be04a157f8febb99a8e502c124b896141e06d94fb86d6e121721
languageName: node
linkType: hard
@@ -16244,7 +16244,7 @@ __metadata:
resolution: "root-workspace-0b6124@workspace:."
dependencies:
"@babel/core": ^7.20.12
"@polkadot/dev": ^0.68.38
"@polkadot/dev": ^0.68.41
"@types/jest": ^29.4.0
i18next-scanner: ^4.1.1
sinon-chrome: ^3.0.1