From ecd9217516e0309c3ec1ba731ad64051df030d18 Mon Sep 17 00:00:00 2001 From: TingALin Date: Tue, 11 Jul 2023 13:45:10 +0700 Subject: [PATCH 001/435] initial --- package.json | 8 +- src/library/QRCode/Display.tsx | 167 ++++++++++++++++++++++++++ src/library/QRCode/DisplayPayload.tsx | 49 ++++++++ src/library/QRCode/Scan.tsx | 67 +++++++++++ src/library/QRCode/ScanSignatures.tsx | 44 +++++++ src/library/QRCode/constants.tsx | 12 ++ src/library/QRCode/util.tsx | 65 ++++++++++ yarn.lock | 11 +- 8 files changed, 419 insertions(+), 4 deletions(-) create mode 100644 src/library/QRCode/Display.tsx create mode 100644 src/library/QRCode/DisplayPayload.tsx create mode 100644 src/library/QRCode/Scan.tsx create mode 100644 src/library/QRCode/ScanSignatures.tsx create mode 100644 src/library/QRCode/constants.tsx create mode 100644 src/library/QRCode/util.tsx diff --git a/package.json b/package.json index b99a3e8ca5..f83ff33314 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,10 @@ "react-i18next": "^13.0.1", "react-router-dom": "^6.14.1", "react-scroll": "^1.8.9", - "styled-components": "^5.3.11" + "styled-components": "^5.3.11", + "qrcode-generator": "1.4.4", + "react-qr-reader": "^2.2.1", + "@polkadot/util-crypto": "12.3.2" }, "devDependencies": { "@ledgerhq/logs": "^6.10.1", @@ -91,6 +94,7 @@ "vite-plugin-eslint": "^1.8.1", "vite-plugin-svgr": "^3.2.0", "vite-tsconfig-paths": "^4.2.0", - "vitest": "^0.33.0" + "vitest": "^0.33.0", + "@types/react-qr-reader": "^2.1.4" } } diff --git a/src/library/QRCode/Display.tsx b/src/library/QRCode/Display.tsx new file mode 100644 index 0000000000..e2a20a7591 --- /dev/null +++ b/src/library/QRCode/Display.tsx @@ -0,0 +1,167 @@ +/* @license Copyright 2023 @paritytech/polkadot-dashboard-ui authors & contributors +SPDX-License-Identifier: Apache-2.0 */ + +import { objectSpread } from '@polkadot/util'; +import { xxhashAsHex } from '@polkadot/util-crypto'; +import _qrcode from 'qrcode-generator'; +import React, { useEffect, useMemo, useRef, useState } from 'react'; +import styled from 'styled-components'; +import { createFrames, createImgSize } from './util'; + +// A small hurdle to jump through, just to get the default/default correct (as generated) +const qrcode: typeof _qrcode = _qrcode; + +// HACK The default function take string -> number[], the Uint8array is compatible +// with that signature and the use thereof +// eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-member-access +(qrcode as any).stringToBytes = (data: Uint8Array): Uint8Array => data; + +interface Props { + className?: string | undefined; + size?: string | number | undefined; + skipEncoding?: boolean; + style?: React.CSSProperties | undefined; + timerDelay?: number | undefined; + value: Uint8Array; +} + +interface FrameState { + frames: Uint8Array[]; + frameIdx: number; + image: string | null; + valueHash: string | null; +} + +interface TimerState { + timerDelay: number; + timerId: ReturnType | null; +} + +const DEFAULT_FRAME_DELAY = 2750; +const TIMER_INC = 500; + +const getDataUrl = (value: Uint8Array): string => { + const qr = qrcode(0, 'M'); + + // HACK See our qrcode stringToBytes override as used internally. This + // will only work for the case where we actually pass `Bytes` in here + qr.addData(value as unknown as string, 'Byte'); + qr.make(); + + return qr.createDataURL(16, 0); +}; + +const Display = ({ + className = '', + size, + skipEncoding, + style = {}, + timerDelay = DEFAULT_FRAME_DELAY, + value, +}: Props): React.ReactElement | null => { + const [{ image }, setFrameState] = useState({ + frameIdx: 0, + frames: [], + image: null, + valueHash: null, + }); + const timerRef = useRef({ timerDelay, timerId: null }); + + const containerStyle = useMemo(() => createImgSize(size), [size]); + + // run on initial load to setup the global timer and provide and unsubscribe + useEffect((): (() => void) => { + const nextFrame = () => + setFrameState((state): FrameState => { + // when we have a single frame, we only ever fire once + if (state.frames.length <= 1) { + return state; + } + + let frameIdx = state.frameIdx + 1; + + // when we overflow, skip to the first and slightly increase the delay between frames + if (frameIdx === state.frames.length) { + frameIdx = 0; + timerRef.current.timerDelay = timerRef.current.timerDelay + TIMER_INC; + } + + // only encode the frames on demand, not above as part of the + // state derivation - in the case of large payloads, this should + // be slightly more responsive on initial load + const newState = objectSpread({}, state, { + frameIdx, + image: getDataUrl(state.frames[frameIdx]), + }); + + // set the new timer last + timerRef.current.timerId = setTimeout( + nextFrame, + timerRef.current.timerDelay + ); + + return newState; + }); + + timerRef.current.timerId = setTimeout( + nextFrame, + timerRef.current.timerDelay + ); + + return (): void => { + // eslint-disable-next-line react-hooks/exhaustive-deps + timerRef.current.timerId && clearTimeout(timerRef.current.timerId); + }; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + useEffect((): void => { + setFrameState((state): FrameState => { + const valueHash = xxhashAsHex(value); + + if (valueHash === state.valueHash) { + return state; + } + + const frames: Uint8Array[] = skipEncoding ? [value] : createFrames(value); + + // encode on demand + return { + frameIdx: 0, + frames, + image: getDataUrl(frames[0]), + valueHash, + }; + }); + }, [skipEncoding, value]); + + if (!image) { + return null; + } + + return ( + +
+ +
+
+ ); +}; + +const StyledDiv = styled.div` + .ui--qr-Display { + height: 100%; + width: 100%; + + img, + svg { + background: white; + height: auto !important; + max-height: 100%; + max-width: 100%; + width: auto !important; + } + } +`; + +export const QrDisplay = React.memo(Display); diff --git a/src/library/QRCode/DisplayPayload.tsx b/src/library/QRCode/DisplayPayload.tsx new file mode 100644 index 0000000000..b58746164c --- /dev/null +++ b/src/library/QRCode/DisplayPayload.tsx @@ -0,0 +1,49 @@ +/* @license Copyright 2023 @paritytech/polkadot-dashboard-ui authors & contributors +SPDX-License-Identifier: Apache-2.0 */ + +import React, { useMemo } from 'react'; +import { QrDisplay } from './Display'; +import { createSignPayload } from './util'; + +interface Props { + address: string; + className?: string; + cmd: number; + genesisHash: Uint8Array | string; + payload: Uint8Array; + size?: string | number; + style?: React.CSSProperties; + timerDelay?: number; +} + +const DisplayPayload = ({ + address, + className, + cmd, + genesisHash, + payload, + size, + style, + timerDelay, +}: Props): React.ReactElement | null => { + const data = useMemo( + () => createSignPayload(address, cmd, payload, genesisHash), + [address, cmd, payload, genesisHash] + ); + + if (!data) { + return null; + } + + return ( + + ); +}; + +export const QrDisplayPayload = React.memo(DisplayPayload); diff --git a/src/library/QRCode/Scan.tsx b/src/library/QRCode/Scan.tsx new file mode 100644 index 0000000000..9c8ef5ac0f --- /dev/null +++ b/src/library/QRCode/Scan.tsx @@ -0,0 +1,67 @@ +/* @license Copyright 2023 @paritytech/polkadot-dashboard-ui authors & contributors +SPDX-License-Identifier: Apache-2.0 */ + +import React, { useCallback, useMemo } from 'react'; +import Reader from 'react-qr-reader'; +import styled from 'styled-components'; +import { createImgSize } from './util'; + +interface Props { + className?: string | undefined; + delay?: number; + onError?: undefined | ((error: Error) => void); + onScan: (data: string) => void; + size?: string | number | undefined; + style?: React.CSSProperties | undefined; +} + +const DEFAULT_DELAY = 150; + +const DEFAULT_ERROR = (error: Error): void => { + console.error('@polkadot/react-qr:Scan', error.message); +}; + +const Scan = ({ + className = '', + delay = DEFAULT_DELAY, + onError = DEFAULT_ERROR, + onScan, + size, + style = {}, +}: Props): React.ReactElement => { + const containerStyle = useMemo(() => createImgSize(size), [size]); + + const _onError = useCallback((error: Error) => onError(error), [onError]); + + const _onScan = useCallback( + (data: string | null) => data && onScan(data), + [onScan] + ); + + return ( + + + + ); +}; + +const StyledDiv = styled.div` + .ui--qr-Scan { + display: inline-block; + height: 100%; + transform: matrix(-1, 0, 0, 1, 0, 0); + width: 100%; + + video { + margin: 0; + } + } +`; + +export const QrScan = React.memo(Scan); diff --git a/src/library/QRCode/ScanSignatures.tsx b/src/library/QRCode/ScanSignatures.tsx new file mode 100644 index 0000000000..6d39b3844a --- /dev/null +++ b/src/library/QRCode/ScanSignatures.tsx @@ -0,0 +1,44 @@ +/* @license Copyright 2023 @paritytech/polkadot-dashboard-ui authors & contributors +SPDX-License-Identifier: Apache-2.0 */ + +import type { HexString } from '@polkadot/util/types'; +import React, { useCallback } from 'react'; +import { QrScan } from './Scan'; + +interface ScanType { + signature: HexString; +} + +interface Props { + className?: string; + onError?: (error: Error) => void; + onScan: (scanned: ScanType) => void; + size?: string | number; + style?: React.CSSProperties; +} + +const ScanSignature = ({ + className, + onError, + onScan, + size, + style, +}: Props): React.ReactElement => { + const _onScan = useCallback( + (signature: string | null) => + signature && onScan({ signature: `0x${signature}` }), + [onScan] + ); + + return ( + + ); +}; + +export const QrScanSignature = React.memo(ScanSignature); diff --git a/src/library/QRCode/constants.tsx b/src/library/QRCode/constants.tsx new file mode 100644 index 0000000000..de2010814e --- /dev/null +++ b/src/library/QRCode/constants.tsx @@ -0,0 +1,12 @@ +// Copyright 2017-2023 @polkadot/react-qr authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export const ADDRESS_PREFIX = 'substrate'; +export const SEED_PREFIX = 'secret'; +export const FRAME_SIZE = 1024; +export const SUBSTRATE_ID = new Uint8Array([0x53]); +export const CRYPTO_SR25519 = new Uint8Array([0x01]); +export const CMD_SIGN_TX = new Uint8Array([0]); +export const CMD_SIGN_TX_HASH = new Uint8Array([1]); +export const CMD_SIGN_IMMORTAL_TX = new Uint8Array([2]); +export const CMD_SIGN_MSG = new Uint8Array([3]); diff --git a/src/library/QRCode/util.tsx b/src/library/QRCode/util.tsx new file mode 100644 index 0000000000..33ba38b84a --- /dev/null +++ b/src/library/QRCode/util.tsx @@ -0,0 +1,65 @@ +/* @license Copyright 2023 @paritytech/polkadot-dashboard-ui authors & contributors +SPDX-License-Identifier: Apache-2.0 */ + +import { isString, u8aConcat, u8aToU8a } from '@polkadot/util'; +import { decodeAddress } from '@polkadot/util-crypto'; +import { CRYPTO_SR25519, FRAME_SIZE, SUBSTRATE_ID } from './constants'; + +const MULTIPART = new Uint8Array([0]); + +export const encodeNumber = (value: number): Uint8Array => + new Uint8Array([value >> 8, value & 0xff]); + +export const createSignPayload = ( + address: string, + cmd: number, + payload: string | Uint8Array, + genesisHash: string | Uint8Array +): Uint8Array => + u8aConcat( + SUBSTRATE_ID, + CRYPTO_SR25519, + new Uint8Array([cmd]), + decodeAddress(address), + u8aToU8a(payload), + u8aToU8a(genesisHash) + ); + +export const createFrames = (input: Uint8Array): Uint8Array[] => { + const frames = []; + let idx = 0; + + while (idx < input.length) { + frames.push(input.subarray(idx, idx + FRAME_SIZE)); + + idx += FRAME_SIZE; + } + + return frames.map( + (frame, index: number): Uint8Array => + u8aConcat( + MULTIPART, + encodeNumber(frames.length), + encodeNumber(index), + frame + ) + ); +}; + +export const createImgSize = ( + size?: string | number +): Record => { + if (!size) { + return { + height: 'auto', + width: '100%', + }; + } + + const height = isString(size) ? size : `${size}px`; + + return { + height, + width: height, + }; +}; diff --git a/yarn.lock b/yarn.lock index e0de8ebc93..53f45012c0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1301,6 +1301,13 @@ dependencies: "@types/react" "*" +"@types/react-qr-reader@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@types/react-qr-reader/-/react-qr-reader-2.1.4.tgz#a36f0b83b4402e26c4217d0e8af6b5e2887fc749" + integrity sha512-2Hq+UNfsO2TVqxbFlOE0gGhQr/+C4wdgNDaaLV8K93mK/Z7Vw2D3YbMlnJAaSzM45fUtYJs0vc48wV04+OEkiA== + dependencies: + "@types/react" "*" + "@types/react-scroll@^1.8.6": version "1.8.7" resolved "https://registry.npmjs.org/@types/react-scroll/-/react-scroll-1.8.7.tgz#7241c6ccd47839d79227a23a5184d727245c7324" @@ -4029,7 +4036,7 @@ punycode@^2.1.0: resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== -qrcode-generator@^1.4.4: +qrcode-generator@1.4.4, qrcode-generator@^1.4.4: version "1.4.4" resolved "https://registry.npmjs.org/qrcode-generator/-/qrcode-generator-1.4.4.tgz#63f771224854759329a99048806a53ed278740e7" integrity sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw== @@ -4256,7 +4263,7 @@ rollup-plugin-visualizer@^5.9.0: rollup@^2.77.2: version "2.79.1" - resolved "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== optionalDependencies: fsevents "~2.3.2" From 9ce55569a831bfcb9fcb61cb44ef15d28ff7478c Mon Sep 17 00:00:00 2001 From: TingALin Date: Tue, 11 Jul 2023 15:13:53 +0700 Subject: [PATCH 002/435] replace @polkadot/react-qr --- package.json | 1 - src/library/QRCode/Display.tsx | 10 +- src/library/QRCode/constants.tsx | 4 +- src/library/QRCode/util.tsx | 3 +- .../SubmitTx/ManualSign/Vault/SignOverlay.tsx | 3 +- src/modals/ImportVault/Reader.tsx | 2 +- yarn.lock | 1520 ++++++++--------- 7 files changed, 763 insertions(+), 780 deletions(-) diff --git a/package.json b/package.json index f83ff33314..70e8663328 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,6 @@ "@polkadot/api": "^10.9.1", "@polkadot/keyring": "^12.1.1", "@polkadot/react-identicon": "^3.5.1", - "@polkadot/react-qr": "^3.5.1", "@polkadot/rpc-provider": "^10.9.1", "@polkadot/util": "^12.1.1", "@polkadotcloud/core-ui": "^0.3.42", diff --git a/src/library/QRCode/Display.tsx b/src/library/QRCode/Display.tsx index e2a20a7591..20b289ac14 100644 --- a/src/library/QRCode/Display.tsx +++ b/src/library/QRCode/Display.tsx @@ -83,7 +83,7 @@ const Display = ({ // when we overflow, skip to the first and slightly increase the delay between frames if (frameIdx === state.frames.length) { frameIdx = 0; - timerRef.current.timerDelay = timerRef.current.timerDelay + TIMER_INC; + timerRef.current.timerDelay += TIMER_INC; } // only encode the frames on demand, not above as part of the @@ -108,11 +108,7 @@ const Display = ({ timerRef.current.timerDelay ); - return (): void => { - // eslint-disable-next-line react-hooks/exhaustive-deps - timerRef.current.timerId && clearTimeout(timerRef.current.timerId); - }; - // eslint-disable-next-line react-hooks/exhaustive-deps + return () => clearTimeout(timerRef.current.timerId || 0); }, []); useEffect((): void => { @@ -142,7 +138,7 @@ const Display = ({ return (
- + img
); diff --git a/src/library/QRCode/constants.tsx b/src/library/QRCode/constants.tsx index de2010814e..ec72c38059 100644 --- a/src/library/QRCode/constants.tsx +++ b/src/library/QRCode/constants.tsx @@ -1,5 +1,5 @@ -// Copyright 2017-2023 @polkadot/react-qr authors & contributors -// SPDX-License-Identifier: Apache-2.0 +/* @license Copyright 2023 @paritytech/polkadot-dashboard-ui authors & contributors +SPDX-License-Identifier: Apache-2.0 */ export const ADDRESS_PREFIX = 'substrate'; export const SEED_PREFIX = 'secret'; diff --git a/src/library/QRCode/util.tsx b/src/library/QRCode/util.tsx index 33ba38b84a..129d095fc9 100644 --- a/src/library/QRCode/util.tsx +++ b/src/library/QRCode/util.tsx @@ -8,7 +8,8 @@ import { CRYPTO_SR25519, FRAME_SIZE, SUBSTRATE_ID } from './constants'; const MULTIPART = new Uint8Array([0]); export const encodeNumber = (value: number): Uint8Array => - new Uint8Array([value >> 8, value & 0xff]); + // eslint-disable-next-line no-bitwise + new Uint8Array([value >> 8, value && 0xff]); export const createSignPayload = ( address: string, diff --git a/src/library/SubmitTx/ManualSign/Vault/SignOverlay.tsx b/src/library/SubmitTx/ManualSign/Vault/SignOverlay.tsx index f599d14625..470de3ddb7 100644 --- a/src/library/SubmitTx/ManualSign/Vault/SignOverlay.tsx +++ b/src/library/SubmitTx/ManualSign/Vault/SignOverlay.tsx @@ -6,11 +6,12 @@ import { faChevronRight, } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { QrDisplayPayload, QrScanSignature } from '@polkadot/react-qr'; import { ButtonPrimary, ButtonSecondary } from '@polkadotcloud/core-ui'; import { useOverlay } from 'contexts/Overlay'; import { useTxMeta } from 'contexts/TxMeta'; import { QRViewerWrapper } from 'library/Import/Wrappers'; +import { QrDisplayPayload } from 'library/QRCode/DisplayPayload'; +import { QrScanSignature } from 'library/QRCode/ScanSignatures'; import type { SignerOverlayProps } from 'library/SubmitTx/types'; import { useState } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/modals/ImportVault/Reader.tsx b/src/modals/ImportVault/Reader.tsx index 4a691c6584..8bc05c66dd 100644 --- a/src/modals/ImportVault/Reader.tsx +++ b/src/modals/ImportVault/Reader.tsx @@ -1,13 +1,13 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: Apache-2.0 -import { QrScanSignature } from '@polkadot/react-qr'; import { ButtonSecondary } from '@polkadotcloud/core-ui'; import { isValidAddress } from '@polkadotcloud/utils'; import { useConnect } from 'contexts/Connect'; import { useVaultHardware } from 'contexts/Hardware/Vault'; import { useOverlay } from 'contexts/Overlay'; import { QRViewerWrapper } from 'library/Import/Wrappers'; +import { QrScanSignature } from 'library/QRCode/ScanSignatures'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/yarn.lock b/yarn.lock index 53f45012c0..8752f21a7d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4,12 +4,12 @@ "@aashutoshrathi/word-wrap@^1.2.3": version "1.2.6" - resolved "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== "@ampproject/remapping@^2.2.0": version "2.2.1" - resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== dependencies: "@jridgewell/gen-mapping" "^0.3.0" @@ -17,19 +17,19 @@ "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.5": version "7.22.5" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== dependencies: "@babel/highlight" "^7.22.5" "@babel/compat-data@^7.22.6": version "7.22.6" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.6.tgz#15606a20341de59ba02cd2fcc5086fcbe73bf544" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.6.tgz#15606a20341de59ba02cd2fcc5086fcbe73bf544" integrity sha512-29tfsWTq2Ftu7MXmimyC0C5FDZv5DYxOZkh3XD3+QW4V/BYuv/LyEsjj3c0hqedEaDt6DBfDvexMKU8YevdqFg== "@babel/core@^7.21.3": version "7.22.8" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.22.8.tgz#386470abe884302db9c82e8e5e87be9e46c86785" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.8.tgz#386470abe884302db9c82e8e5e87be9e46c86785" integrity sha512-75+KxFB4CZqYRXjx4NlR4J7yGvKumBuZTmV4NV6v09dVXXkuYVYLT68N6HCzLvfJ+fWCxQsntNzKwwIXL4bHnw== dependencies: "@ampproject/remapping" "^2.2.0" @@ -50,7 +50,7 @@ "@babel/generator@^7.22.7": version "7.22.7" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.22.7.tgz#a6b8152d5a621893f2c9dacf9a4e286d520633d5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.7.tgz#a6b8152d5a621893f2c9dacf9a4e286d520633d5" integrity sha512-p+jPjMG+SI8yvIaxGgeW24u7q9+5+TGpZh8/CuB7RhBKd7RCy8FayNEFNNKrNK/eUcY/4ExQqLmyrvBXKsIcwQ== dependencies: "@babel/types" "^7.22.5" @@ -60,14 +60,14 @@ "@babel/helper-annotate-as-pure@^7.22.5": version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== dependencies: "@babel/types" "^7.22.5" "@babel/helper-compilation-targets@^7.22.6": version "7.22.6" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.6.tgz#e30d61abe9480aa5a83232eb31c111be922d2e52" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.6.tgz#e30d61abe9480aa5a83232eb31c111be922d2e52" integrity sha512-534sYEqWD9VfUm3IPn2SLcH4Q3P86XL+QvqdC7ZsFrzyyPF3T4XGiVghF6PTYNdWg6pXuoqXxNQAhbYeEInTzA== dependencies: "@babel/compat-data" "^7.22.6" @@ -78,12 +78,12 @@ "@babel/helper-environment-visitor@^7.22.5": version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== "@babel/helper-function-name@^7.22.5": version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ== dependencies: "@babel/template" "^7.22.5" @@ -91,21 +91,21 @@ "@babel/helper-hoist-variables@^7.22.5": version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== dependencies: "@babel/types" "^7.22.5" "@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.22.5": version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== dependencies: "@babel/types" "^7.22.5" "@babel/helper-module-transforms@^7.22.5": version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz#0f65daa0716961b6e96b164034e737f60a80d2ef" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz#0f65daa0716961b6e96b164034e737f60a80d2ef" integrity sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw== dependencies: "@babel/helper-environment-visitor" "^7.22.5" @@ -119,41 +119,41 @@ "@babel/helper-plugin-utils@^7.22.5": version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== "@babel/helper-simple-access@^7.22.5": version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== dependencies: "@babel/types" "^7.22.5" "@babel/helper-split-export-declaration@^7.22.5", "@babel/helper-split-export-declaration@^7.22.6": version "7.22.6" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== dependencies: "@babel/types" "^7.22.5" "@babel/helper-string-parser@^7.22.5": version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== "@babel/helper-validator-identifier@^7.22.5": version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== "@babel/helper-validator-option@^7.22.5": version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== "@babel/helpers@^7.22.6": version "7.22.6" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.6.tgz#8e61d3395a4f0c5a8060f309fb008200969b5ecd" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.6.tgz#8e61d3395a4f0c5a8060f309fb008200969b5ecd" integrity sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA== dependencies: "@babel/template" "^7.22.5" @@ -162,7 +162,7 @@ "@babel/highlight@^7.22.5": version "7.22.5" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== dependencies: "@babel/helper-validator-identifier" "^7.22.5" @@ -171,26 +171,26 @@ "@babel/parser@^7.22.5", "@babel/parser@^7.22.7": version "7.22.7" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae" integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q== "@babel/plugin-syntax-jsx@^7.22.5": version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/runtime@^7.10.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.19.4", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5": version "7.22.6" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.6.tgz#57d64b9ae3cff1d67eb067ae117dac087f5bd438" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.6.tgz#57d64b9ae3cff1d67eb067ae117dac087f5bd438" integrity sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ== dependencies: regenerator-runtime "^0.13.11" "@babel/template@^7.22.5": version "7.22.5" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw== dependencies: "@babel/code-frame" "^7.22.5" @@ -199,7 +199,7 @@ "@babel/traverse@^7.22.5", "@babel/traverse@^7.22.6", "@babel/traverse@^7.22.8", "@babel/traverse@^7.4.5": version "7.22.8" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.8.tgz#4d4451d31bc34efeae01eac222b514a77aa4000e" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.8.tgz#4d4451d31bc34efeae01eac222b514a77aa4000e" integrity sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw== dependencies: "@babel/code-frame" "^7.22.5" @@ -215,7 +215,7 @@ "@babel/types@^7.21.3", "@babel/types@^7.22.5": version "7.22.5" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== dependencies: "@babel/helper-string-parser" "^7.22.5" @@ -224,175 +224,175 @@ "@dotlottie/player-component@^2.0.1": version "2.0.1" - resolved "https://registry.npmjs.org/@dotlottie/player-component/-/player-component-2.0.1.tgz#9dfd5d9907e876d95e5c2430065102020eb8d3c8" + resolved "https://registry.yarnpkg.com/@dotlottie/player-component/-/player-component-2.0.1.tgz#9dfd5d9907e876d95e5c2430065102020eb8d3c8" integrity sha512-Qq6hWg/XGPZy5x8KgdX9cUoWqAp16btPV7Do5XBRiYMhzVIqmztV+/C/as+XF0/wPDXk4u64p9d4OZfQcy6YLg== dependencies: lit "^2.7.5" "@emotion/is-prop-valid@^0.8.2": version "0.8.8" - resolved "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== dependencies: "@emotion/memoize" "0.7.4" "@emotion/is-prop-valid@^1.1.0": version "1.2.1" - resolved "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz#23116cf1ed18bfeac910ec6436561ecb1a3885cc" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz#23116cf1ed18bfeac910ec6436561ecb1a3885cc" integrity sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw== dependencies: "@emotion/memoize" "^0.8.1" "@emotion/memoize@0.7.4": version "0.7.4" - resolved "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== "@emotion/memoize@^0.8.1": version "0.8.1" - resolved "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz#c1ddb040429c6d21d38cc945fe75c818cfb68e17" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.1.tgz#c1ddb040429c6d21d38cc945fe75c818cfb68e17" integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA== "@emotion/stylis@^0.8.4": version "0.8.5" - resolved "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04" + resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04" integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ== "@emotion/unitless@^0.7.4": version "0.7.5" - resolved "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== "@esbuild-plugins/node-globals-polyfill@^0.2.3": version "0.2.3" - resolved "https://registry.npmjs.org/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.2.3.tgz#0e4497a2b53c9e9485e149bc92ddb228438d6bcf" + resolved "https://registry.yarnpkg.com/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.2.3.tgz#0e4497a2b53c9e9485e149bc92ddb228438d6bcf" integrity sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw== "@esbuild/android-arm64@0.18.11": version "0.18.11" - resolved "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.11.tgz#fa6f0cc7105367cb79cc0a8bf32bf50cb1673e45" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.11.tgz#fa6f0cc7105367cb79cc0a8bf32bf50cb1673e45" integrity sha512-snieiq75Z1z5LJX9cduSAjUr7vEI1OdlzFPMw0HH5YI7qQHDd3qs+WZoMrWYDsfRJSq36lIA6mfZBkvL46KoIw== "@esbuild/android-arm@0.18.11": version "0.18.11" - resolved "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.11.tgz#ae84a410696c9f549a15be94eaececb860bacacb" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.11.tgz#ae84a410696c9f549a15be94eaececb860bacacb" integrity sha512-q4qlUf5ucwbUJZXF5tEQ8LF7y0Nk4P58hOsGk3ucY0oCwgQqAnqXVbUuahCddVHfrxmpyewRpiTHwVHIETYu7Q== "@esbuild/android-x64@0.18.11": version "0.18.11" - resolved "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.11.tgz#0e58360bbc789ad0d68174d32ba20e678c2a16b6" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.11.tgz#0e58360bbc789ad0d68174d32ba20e678c2a16b6" integrity sha512-iPuoxQEV34+hTF6FT7om+Qwziv1U519lEOvekXO9zaMMlT9+XneAhKL32DW3H7okrCOBQ44BMihE8dclbZtTuw== "@esbuild/darwin-arm64@0.18.11": version "0.18.11" - resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.11.tgz#fcdcd2ef76ca656540208afdd84f284072f0d1f9" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.11.tgz#fcdcd2ef76ca656540208afdd84f284072f0d1f9" integrity sha512-Gm0QkI3k402OpfMKyQEEMG0RuW2LQsSmI6OeO4El2ojJMoF5NLYb3qMIjvbG/lbMeLOGiW6ooU8xqc+S0fgz2w== "@esbuild/darwin-x64@0.18.11": version "0.18.11" - resolved "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.11.tgz#c5ac602ec0504a8ff81e876bc8a9811e94d69d37" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.11.tgz#c5ac602ec0504a8ff81e876bc8a9811e94d69d37" integrity sha512-N15Vzy0YNHu6cfyDOjiyfJlRJCB/ngKOAvoBf1qybG3eOq0SL2Lutzz9N7DYUbb7Q23XtHPn6lMDF6uWbGv9Fw== "@esbuild/freebsd-arm64@0.18.11": version "0.18.11" - resolved "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.11.tgz#7012fb06ee3e6e0d5560664a65f3fefbcc46db2e" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.11.tgz#7012fb06ee3e6e0d5560664a65f3fefbcc46db2e" integrity sha512-atEyuq6a3omEY5qAh5jIORWk8MzFnCpSTUruBgeyN9jZq1K/QI9uke0ATi3MHu4L8c59CnIi4+1jDKMuqmR71A== "@esbuild/freebsd-x64@0.18.11": version "0.18.11" - resolved "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.11.tgz#c5de1199f70e1f97d5c8fca51afa9bf9a2af5969" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.11.tgz#c5de1199f70e1f97d5c8fca51afa9bf9a2af5969" integrity sha512-XtuPrEfBj/YYYnAAB7KcorzzpGTvOr/dTtXPGesRfmflqhA4LMF0Gh/n5+a9JBzPuJ+CGk17CA++Hmr1F/gI0Q== "@esbuild/linux-arm64@0.18.11": version "0.18.11" - resolved "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.11.tgz#2a6d3a74e0b8b5f294e22b4515b29f76ebd42660" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.11.tgz#2a6d3a74e0b8b5f294e22b4515b29f76ebd42660" integrity sha512-c6Vh2WS9VFKxKZ2TvJdA7gdy0n6eSy+yunBvv4aqNCEhSWVor1TU43wNRp2YLO9Vng2G+W94aRz+ILDSwAiYog== "@esbuild/linux-arm@0.18.11": version "0.18.11" - resolved "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.11.tgz#5175bd61b793b436e4aece6328aa0d9be07751e1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.11.tgz#5175bd61b793b436e4aece6328aa0d9be07751e1" integrity sha512-Idipz+Taso/toi2ETugShXjQ3S59b6m62KmLHkJlSq/cBejixmIydqrtM2XTvNCywFl3VC7SreSf6NV0i6sRyg== "@esbuild/linux-ia32@0.18.11": version "0.18.11" - resolved "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.11.tgz#20ee6cfd65a398875f321a485e7b2278e5f6f67b" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.11.tgz#20ee6cfd65a398875f321a485e7b2278e5f6f67b" integrity sha512-S3hkIF6KUqRh9n1Q0dSyYcWmcVa9Cg+mSoZEfFuzoYXXsk6196qndrM+ZiHNwpZKi3XOXpShZZ+9dfN5ykqjjw== "@esbuild/linux-loong64@0.18.11": version "0.18.11" - resolved "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.11.tgz#8e7b251dede75083bf44508dab5edce3f49d052b" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.11.tgz#8e7b251dede75083bf44508dab5edce3f49d052b" integrity sha512-MRESANOoObQINBA+RMZW+Z0TJWpibtE7cPFnahzyQHDCA9X9LOmGh68MVimZlM9J8n5Ia8lU773te6O3ILW8kw== "@esbuild/linux-mips64el@0.18.11": version "0.18.11" - resolved "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.11.tgz#a3125eb48538ac4932a9d05089b157f94e443165" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.11.tgz#a3125eb48538ac4932a9d05089b157f94e443165" integrity sha512-qVyPIZrXNMOLYegtD1u8EBccCrBVshxMrn5MkuFc3mEVsw7CCQHaqZ4jm9hbn4gWY95XFnb7i4SsT3eflxZsUg== "@esbuild/linux-ppc64@0.18.11": version "0.18.11" - resolved "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.11.tgz#842abadb7a0995bd539adee2be4d681b68279499" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.11.tgz#842abadb7a0995bd539adee2be4d681b68279499" integrity sha512-T3yd8vJXfPirZaUOoA9D2ZjxZX4Gr3QuC3GztBJA6PklLotc/7sXTOuuRkhE9W/5JvJP/K9b99ayPNAD+R+4qQ== "@esbuild/linux-riscv64@0.18.11": version "0.18.11" - resolved "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.11.tgz#7ce6e6cee1c72d5b4d2f4f8b6fcccf4a9bea0e28" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.11.tgz#7ce6e6cee1c72d5b4d2f4f8b6fcccf4a9bea0e28" integrity sha512-evUoRPWiwuFk++snjH9e2cAjF5VVSTj+Dnf+rkO/Q20tRqv+644279TZlPK8nUGunjPAtQRCj1jQkDAvL6rm2w== "@esbuild/linux-s390x@0.18.11": version "0.18.11" - resolved "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.11.tgz#98fbc794363d02ded07d300df2e535650b297b96" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.11.tgz#98fbc794363d02ded07d300df2e535650b297b96" integrity sha512-/SlRJ15XR6i93gRWquRxYCfhTeC5PdqEapKoLbX63PLCmAkXZHY2uQm2l9bN0oPHBsOw2IswRZctMYS0MijFcg== "@esbuild/linux-x64@0.18.11": version "0.18.11" - resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.11.tgz#f8458ec8cf74c8274e4cacd00744d8446cac52eb" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.11.tgz#f8458ec8cf74c8274e4cacd00744d8446cac52eb" integrity sha512-xcncej+wF16WEmIwPtCHi0qmx1FweBqgsRtEL1mSHLFR6/mb3GEZfLQnx+pUDfRDEM4DQF8dpXIW7eDOZl1IbA== "@esbuild/netbsd-x64@0.18.11": version "0.18.11" - resolved "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.11.tgz#a7b2f991b8293748a7be42eac1c4325faf0c7cca" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.11.tgz#a7b2f991b8293748a7be42eac1c4325faf0c7cca" integrity sha512-aSjMHj/F7BuS1CptSXNg6S3M4F3bLp5wfFPIJM+Km2NfIVfFKhdmfHF9frhiCLIGVzDziggqWll0B+9AUbud/Q== "@esbuild/openbsd-x64@0.18.11": version "0.18.11" - resolved "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.11.tgz#3e50923de84c54008f834221130fd23646072b2f" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.11.tgz#3e50923de84c54008f834221130fd23646072b2f" integrity sha512-tNBq+6XIBZtht0xJGv7IBB5XaSyvYPCm1PxJ33zLQONdZoLVM0bgGqUrXnJyiEguD9LU4AHiu+GCXy/Hm9LsdQ== "@esbuild/sunos-x64@0.18.11": version "0.18.11" - resolved "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.11.tgz#ae47a550b0cd395de03606ecfba03cc96c7c19e2" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.11.tgz#ae47a550b0cd395de03606ecfba03cc96c7c19e2" integrity sha512-kxfbDOrH4dHuAAOhr7D7EqaYf+W45LsAOOhAet99EyuxxQmjbk8M9N4ezHcEiCYPaiW8Dj3K26Z2V17Gt6p3ng== "@esbuild/win32-arm64@0.18.11": version "0.18.11" - resolved "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.11.tgz#05d364582b7862d7fbf4698ef43644f7346dcfcc" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.11.tgz#05d364582b7862d7fbf4698ef43644f7346dcfcc" integrity sha512-Sh0dDRyk1Xi348idbal7lZyfSkjhJsdFeuC13zqdipsvMetlGiFQNdO+Yfp6f6B4FbyQm7qsk16yaZk25LChzg== "@esbuild/win32-ia32@0.18.11": version "0.18.11" - resolved "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.11.tgz#a3372095a4a1939da672156a3c104f8ce85ee616" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.11.tgz#a3372095a4a1939da672156a3c104f8ce85ee616" integrity sha512-o9JUIKF1j0rqJTFbIoF4bXj6rvrTZYOrfRcGyL0Vm5uJ/j5CkBD/51tpdxe9lXEDouhRgdr/BYzUrDOvrWwJpg== "@esbuild/win32-x64@0.18.11": version "0.18.11" - resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.11.tgz#6526c7e1b40d5b9f0a222c6b767c22f6fb97aa57" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.11.tgz#6526c7e1b40d5b9f0a222c6b767c22f6fb97aa57" integrity sha512-rQI4cjLHd2hGsM1LqgDI7oOCYbQ6IBOVsX9ejuRMSze0GqXUG2ekwiKkiBU1pRGSeCqFFHxTrcEydB2Hyoz9CA== "@eslint-community/eslint-utils@^4.2.0": version "4.4.0" - resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: eslint-visitor-keys "^3.3.0" "@eslint-community/regexpp@^4.4.0": version "4.5.1" - resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== "@eslint/eslintrc@^2.1.0": version "2.1.0" - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.0.tgz#82256f164cc9e0b59669efc19d57f8092706841d" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.0.tgz#82256f164cc9e0b59669efc19d57f8092706841d" integrity sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A== dependencies: ajv "^6.12.4" @@ -407,52 +407,52 @@ "@eslint/js@8.44.0": version "8.44.0" - resolved "https://registry.npmjs.org/@eslint/js/-/js-8.44.0.tgz#961a5903c74139390478bdc808bcde3fc45ab7af" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.44.0.tgz#961a5903c74139390478bdc808bcde3fc45ab7af" integrity sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw== "@fortawesome/fontawesome-common-types@6.4.0": version "6.4.0" - resolved "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.4.0.tgz#88da2b70d6ca18aaa6ed3687832e11f39e80624b" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.4.0.tgz#88da2b70d6ca18aaa6ed3687832e11f39e80624b" integrity sha512-HNii132xfomg5QVZw0HwXXpN22s7VBHQBv9CeOu9tfJnhsWQNd2lmTNi8CSrnw5B+5YOmzu1UoPAyxaXsJ6RgQ== "@fortawesome/fontawesome-svg-core@^6.4.0": version "6.4.0" - resolved "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.4.0.tgz#3727552eff9179506e9203d72feb5b1063c11a21" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.4.0.tgz#3727552eff9179506e9203d72feb5b1063c11a21" integrity sha512-Bertv8xOiVELz5raB2FlXDPKt+m94MQ3JgDfsVbrqNpLU9+UE2E18GKjLKw+d3XbeYPqg1pzyQKGsrzbw+pPaw== dependencies: "@fortawesome/fontawesome-common-types" "6.4.0" "@fortawesome/free-brands-svg-icons@^6.4.0": version "6.4.0" - resolved "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.4.0.tgz#c785cf5563231eadc5ef5f8cd0274e0b8920433f" + resolved "https://registry.yarnpkg.com/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.4.0.tgz#c785cf5563231eadc5ef5f8cd0274e0b8920433f" integrity sha512-qvxTCo0FQ5k2N+VCXb/PZQ+QMhqRVM4OORiO6MXdG6bKolIojGU/srQ1ptvKk0JTbRgaJOfL2qMqGvBEZG7Z6g== dependencies: "@fortawesome/fontawesome-common-types" "6.4.0" "@fortawesome/free-regular-svg-icons@^6.4.0": version "6.4.0" - resolved "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.4.0.tgz#cacc53bd8d832d46feead412d9ea9ce80a55e13a" + resolved "https://registry.yarnpkg.com/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.4.0.tgz#cacc53bd8d832d46feead412d9ea9ce80a55e13a" integrity sha512-ZfycI7D0KWPZtf7wtMFnQxs8qjBXArRzczABuMQqecA/nXohquJ5J/RCR77PmY5qGWkxAZDxpnUFVXKwtY/jPw== dependencies: "@fortawesome/fontawesome-common-types" "6.4.0" "@fortawesome/free-solid-svg-icons@^6.4.0": version "6.4.0" - resolved "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.4.0.tgz#48c0e790847fa56299e2f26b82b39663b8ad7119" + resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.4.0.tgz#48c0e790847fa56299e2f26b82b39663b8ad7119" integrity sha512-kutPeRGWm8V5dltFP1zGjQOEAzaLZj4StdQhWVZnfGFCvAPVvHh8qk5bRrU4KXnRRRNni5tKQI9PBAdI6MP8nQ== dependencies: "@fortawesome/fontawesome-common-types" "6.4.0" "@fortawesome/react-fontawesome@^0.2.0": version "0.2.0" - resolved "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.0.tgz#d90dd8a9211830b4e3c08e94b63a0ba7291ddcf4" + resolved "https://registry.yarnpkg.com/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.0.tgz#d90dd8a9211830b4e3c08e94b63a0ba7291ddcf4" integrity sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw== dependencies: prop-types "^15.8.1" "@humanwhocodes/config-array@^0.11.10": version "0.11.10" - resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== dependencies: "@humanwhocodes/object-schema" "^1.2.1" @@ -461,24 +461,24 @@ "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" - resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== "@humanwhocodes/object-schema@^1.2.1": version "1.2.1" - resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== "@jest/schemas@^29.6.0": version "29.6.0" - resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.0.tgz#0f4cb2c8e3dca80c135507ba5635a4fd755b0040" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.0.tgz#0f4cb2c8e3dca80c135507ba5635a4fd755b0040" integrity sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ== dependencies: "@sinclair/typebox" "^0.27.8" "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": version "0.3.3" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== dependencies: "@jridgewell/set-array" "^1.0.1" @@ -487,27 +487,27 @@ "@jridgewell/resolve-uri@3.1.0": version "3.1.0" - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== "@jridgewell/set-array@^1.0.1": version "1.1.2" - resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== "@jridgewell/sourcemap-codec@1.4.14": version "1.4.14" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.15": version "1.4.15" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": version "0.3.18" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== dependencies: "@jridgewell/resolve-uri" "3.1.0" @@ -515,12 +515,12 @@ "@kurkle/color@^0.3.0": version "0.3.2" - resolved "https://registry.npmjs.org/@kurkle/color/-/color-0.3.2.tgz#5acd38242e8bde4f9986e7913c8fdf49d3aa199f" + resolved "https://registry.yarnpkg.com/@kurkle/color/-/color-0.3.2.tgz#5acd38242e8bde4f9986e7913c8fdf49d3aa199f" integrity sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw== "@ledgerhq/devices@^8.0.4": version "8.0.4" - resolved "https://registry.npmjs.org/@ledgerhq/devices/-/devices-8.0.4.tgz#ebc7779adbbec2d046424603a481623eb3fbe306" + resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-8.0.4.tgz#ebc7779adbbec2d046424603a481623eb3fbe306" integrity sha512-dxOiWZmtEv1tgw70+rW8gviCRZUeGDUnxY6HUPiRqTAc0Ts2AXxiJChgAsPvIywWTGW+S67Nxq1oTZdpRbdt+A== dependencies: "@ledgerhq/errors" "^6.12.7" @@ -530,12 +530,12 @@ "@ledgerhq/errors@^6.12.7": version "6.12.7" - resolved "https://registry.npmjs.org/@ledgerhq/errors/-/errors-6.12.7.tgz#c7b630488d5713bc7b1e1682d6ab5d08918c69f1" + resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.12.7.tgz#c7b630488d5713bc7b1e1682d6ab5d08918c69f1" integrity sha512-1BpjzFErPK7qPFx0oItcX0mNLJMplVAm2Dpl5urZlubewnTyyw5sahIBjU+8LLCWJ2eGEh/0wyvh0jMtR0n2Mg== "@ledgerhq/hw-transport-webhid@^6.27.16": version "6.27.16" - resolved "https://registry.npmjs.org/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-6.27.16.tgz#c8bb9f9a55d637134f24d51c2cef6e4aea3830ce" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-6.27.16.tgz#c8bb9f9a55d637134f24d51c2cef6e4aea3830ce" integrity sha512-inNn710l01c0OI5sXo+8jNaxxGZermOdEsbF/a20pfvqFYvdz7WQAtmjO2NjUbScyFadxNmNnocQxQ5DRvMKOQ== dependencies: "@ledgerhq/devices" "^8.0.4" @@ -545,7 +545,7 @@ "@ledgerhq/hw-transport@^6.27.1", "@ledgerhq/hw-transport@^6.28.5": version "6.28.5" - resolved "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-6.28.5.tgz#675193be2f695a596068145351da598316c25831" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.28.5.tgz#675193be2f695a596068145351da598316c25831" integrity sha512-xmw5RhYbqExBBqTvOnOjN/RYNIGMBxFJ+zcYNfkfw/E+uEY3L7xq8Z7sC/n7URTT6xtEctElqduBJnBQE4OQtw== dependencies: "@ledgerhq/devices" "^8.0.4" @@ -554,41 +554,41 @@ "@ledgerhq/logs@^6.10.1": version "6.10.1" - resolved "https://registry.npmjs.org/@ledgerhq/logs/-/logs-6.10.1.tgz#5bd16082261d7364eabb511c788f00937dac588d" + resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-6.10.1.tgz#5bd16082261d7364eabb511c788f00937dac588d" integrity sha512-z+ILK8Q3y+nfUl43ctCPuR4Y2bIxk/ooCQFwZxhtci1EhAtMDzMAx2W25qx8G1PPL9UUOdnUax19+F0OjXoj4w== "@lit-labs/ssr-dom-shim@^1.0.0", "@lit-labs/ssr-dom-shim@^1.1.0": version "1.1.1" - resolved "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.1.tgz#64df34e2f12e68e78ac57e571d25ec07fa460ca9" + resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.1.tgz#64df34e2f12e68e78ac57e571d25ec07fa460ca9" integrity sha512-kXOeFbfCm4fFf2A3WwVEeQj55tMZa8c8/f9AKHMobQMkzNUfUj+antR3fRPaZJawsa1aZiP/Da3ndpZrwEe4rQ== "@lit/reactive-element@^1.3.0", "@lit/reactive-element@^1.6.0": version "1.6.2" - resolved "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.2.tgz#c256690f82f2d7d0ffb0b1cdf68dcb1ec86cea28" + resolved "https://registry.yarnpkg.com/@lit/reactive-element/-/reactive-element-1.6.2.tgz#c256690f82f2d7d0ffb0b1cdf68dcb1ec86cea28" integrity sha512-rDfl+QnCYjuIGf5xI2sVJWdYIi56CTCwWa+nidKYX6oIuBYwUbT/vX4qbUDlHiZKJ/3FRNQ/tWJui44p6/stSA== dependencies: "@lit-labs/ssr-dom-shim" "^1.0.0" "@nicolo-ribaudo/semver-v6@^6.3.3": version "6.3.3" - resolved "https://registry.npmjs.org/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz#ea6d23ade78a325f7a52750aab1526b02b628c29" + resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz#ea6d23ade78a325f7a52750aab1526b02b628c29" integrity sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg== "@noble/curves@1.1.0": version "1.1.0" - resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.1.0.tgz#f13fc667c89184bc04cccb9b11e8e7bae27d8c3d" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.1.0.tgz#f13fc667c89184bc04cccb9b11e8e7bae27d8c3d" integrity sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA== dependencies: "@noble/hashes" "1.3.1" "@noble/hashes@1.3.1", "@noble/hashes@^1.2.0": version "1.3.1" - resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.1.tgz#8831ef002114670c603c458ab8b11328406953a9" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.1.tgz#8831ef002114670c603c458ab8b11328406953a9" integrity sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA== "@nodelib/fs.scandir@2.1.5": version "2.1.5" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: "@nodelib/fs.stat" "2.0.5" @@ -596,12 +596,12 @@ "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": version "2.0.5" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" @@ -609,7 +609,7 @@ "@pkgr/utils@^2.3.1": version "2.4.2" - resolved "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz#9e638bbe9a6a6f165580dc943f138fd3309a2cbc" + resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.4.2.tgz#9e638bbe9a6a6f165580dc943f138fd3309a2cbc" integrity sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw== dependencies: cross-spawn "^7.0.3" @@ -621,7 +621,7 @@ "@polkadot/api-augment@10.9.1": version "10.9.1" - resolved "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-10.9.1.tgz#9fc81b81903229bb23b0b16783e97ec52a5d4f1b" + resolved "https://registry.yarnpkg.com/@polkadot/api-augment/-/api-augment-10.9.1.tgz#9fc81b81903229bb23b0b16783e97ec52a5d4f1b" integrity sha512-kRZZvCFVcN4hAH4dJ+Qzfdy27/4EEq3oLDf3ihj0LTVrAezSWcKPGE3EVFy+Mn6Lo4SUc7RVyoKvIUhSk2l4Dg== dependencies: "@polkadot/api-base" "10.9.1" @@ -634,7 +634,7 @@ "@polkadot/api-base@10.9.1": version "10.9.1" - resolved "https://registry.npmjs.org/@polkadot/api-base/-/api-base-10.9.1.tgz#27f63c4950814c2f10535f794121fa1384dc2207" + resolved "https://registry.yarnpkg.com/@polkadot/api-base/-/api-base-10.9.1.tgz#27f63c4950814c2f10535f794121fa1384dc2207" integrity sha512-Q3m2KzlceMK2kX8bhnUZWk3RT6emmijeeFZZQgCePpEcrSeNjnqG4qjuTPgkveaOkUT8MAoDc5Avuzcc2jlW9g== dependencies: "@polkadot/rpc-core" "10.9.1" @@ -645,7 +645,7 @@ "@polkadot/api-derive@10.9.1": version "10.9.1" - resolved "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-10.9.1.tgz#04a4ca3285fd215c4cd50cfb3f4791d38dd90050" + resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-10.9.1.tgz#04a4ca3285fd215c4cd50cfb3f4791d38dd90050" integrity sha512-mRud1UZCFIc4Z63qAoGSIHh/foyUYADfy1RQYCmPpeFKfIdCIrHpd7xFdJXTOMYOS0BwlM6u4qli/ZT4XigezQ== dependencies: "@polkadot/api" "10.9.1" @@ -661,7 +661,7 @@ "@polkadot/api@10.9.1", "@polkadot/api@^10.9.1": version "10.9.1" - resolved "https://registry.npmjs.org/@polkadot/api/-/api-10.9.1.tgz#156b3436f45ef18218960804988c1f552d2c4e46" + resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-10.9.1.tgz#156b3436f45ef18218960804988c1f552d2c4e46" integrity sha512-ND/2UqZBWvtt4PfV03OStTKg0mxmPk4UpMAgJKutdgsz/wP9CYJ1KbjwFgPNekL9JnzbKQsWyQNPVrcw7kQk8A== dependencies: "@polkadot/api-augment" "10.9.1" @@ -684,7 +684,7 @@ "@polkadot/keyring@^12.1.1", "@polkadot/keyring@^12.3.1": version "12.3.2" - resolved "https://registry.npmjs.org/@polkadot/keyring/-/keyring-12.3.2.tgz#112a0c28816a1f47edad6260dc94222c29465a54" + resolved "https://registry.yarnpkg.com/@polkadot/keyring/-/keyring-12.3.2.tgz#112a0c28816a1f47edad6260dc94222c29465a54" integrity sha512-NTdtDeI0DP9l/45hXynNABeP5VB8piw5YR+CbUxK2e36xpJWVXwbcOepzslg5ghE9rs8UKJb30Z/HqTU4sBY0Q== dependencies: "@polkadot/util" "12.3.2" @@ -693,7 +693,7 @@ "@polkadot/networks@12.3.2", "@polkadot/networks@^12.3.1": version "12.3.2" - resolved "https://registry.npmjs.org/@polkadot/networks/-/networks-12.3.2.tgz#131b0439c481add159814dd2cf0286c6c3fe5b3b" + resolved "https://registry.yarnpkg.com/@polkadot/networks/-/networks-12.3.2.tgz#131b0439c481add159814dd2cf0286c6c3fe5b3b" integrity sha512-uCkyybKoeEm1daKr0uT/9oNDHDDzCy2/ZdVl346hQqfdR1Ct3BaxMjxqvdmb5N8aCw0cBWSfgsxAYtw8ESmllQ== dependencies: "@polkadot/util" "12.3.2" @@ -702,7 +702,7 @@ "@polkadot/react-identicon@^3.5.1": version "3.5.1" - resolved "https://registry.npmjs.org/@polkadot/react-identicon/-/react-identicon-3.5.1.tgz#0e6796669c63a13497348a84de5ab4549771d0dc" + resolved "https://registry.yarnpkg.com/@polkadot/react-identicon/-/react-identicon-3.5.1.tgz#0e6796669c63a13497348a84de5ab4549771d0dc" integrity sha512-otMoajqrJn6COm3qAVYXo1IiUWKycApfhSiYRXnbbtZPJ5vq1SJacfhDYTl/S3B1l2UF/o3yei6Tq3fNu67ZNA== dependencies: "@polkadot/keyring" "^12.3.1" @@ -716,22 +716,9 @@ styled-components "^5.3.11" tslib "^2.5.3" -"@polkadot/react-qr@^3.5.1": - version "3.5.1" - resolved "https://registry.npmjs.org/@polkadot/react-qr/-/react-qr-3.5.1.tgz#b9690b653779d2aed6c0ce773e842a8d5ad42d11" - integrity sha512-3TP0U6LEzousfioZtarGDfqIpZ+sCUsRII1nzgTfpGM7VJwmAKOzBFORqoYW1Lm1mbaZ0x1m3sypfXaE5tqqJg== - dependencies: - "@polkadot/ui-settings" "3.5.1" - "@polkadot/util" "^12.3.1" - "@polkadot/util-crypto" "^12.3.1" - qrcode-generator "^1.4.4" - react-qr-reader "^2.2.1" - styled-components "^5.3.11" - tslib "^2.5.3" - "@polkadot/rpc-augment@10.9.1": version "10.9.1" - resolved "https://registry.npmjs.org/@polkadot/rpc-augment/-/rpc-augment-10.9.1.tgz#214ec3ee145d20caa61ea204041a3aadb89c6b0f" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-augment/-/rpc-augment-10.9.1.tgz#214ec3ee145d20caa61ea204041a3aadb89c6b0f" integrity sha512-MaLHkNlyqN20ZRYr6uNd1BZr1OsrnX9qLAmsl0mcrri1vPGRH6VHjfFH1RBLkikpWD82v17g0l2hLwdV1ZHMcw== dependencies: "@polkadot/rpc-core" "10.9.1" @@ -742,7 +729,7 @@ "@polkadot/rpc-core@10.9.1": version "10.9.1" - resolved "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-10.9.1.tgz#798c514dbed6f6c2e43098a494c9f51fb144dc31" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-10.9.1.tgz#798c514dbed6f6c2e43098a494c9f51fb144dc31" integrity sha512-ZtA8B8SfXSAwVkBlCcKRHw0eSM7ec/sbiNOM5GasXPeRujUgT7lOwSH2GbUZSqe9RfRDMp6DvO9c2JoGc3LLWw== dependencies: "@polkadot/rpc-augment" "10.9.1" @@ -754,7 +741,7 @@ "@polkadot/rpc-provider@10.9.1", "@polkadot/rpc-provider@^10.9.1": version "10.9.1" - resolved "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-10.9.1.tgz#de3a474bbcd26d28d9cd3134acdb3b5ce92b680b" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-10.9.1.tgz#de3a474bbcd26d28d9cd3134acdb3b5ce92b680b" integrity sha512-4QzT2QzD+320+eT6b79sGAA85Tt3Bb8fQvse4r5Mom2iiBd2SO81vOhxSAOaIe4GUsw25VzFJmsbe7+OObItdg== dependencies: "@polkadot/keyring" "^12.3.1" @@ -774,7 +761,7 @@ "@polkadot/types-augment@10.9.1": version "10.9.1" - resolved "https://registry.npmjs.org/@polkadot/types-augment/-/types-augment-10.9.1.tgz#5f1c1225c04ffbfe243629a46087c9c9de25a6b3" + resolved "https://registry.yarnpkg.com/@polkadot/types-augment/-/types-augment-10.9.1.tgz#5f1c1225c04ffbfe243629a46087c9c9de25a6b3" integrity sha512-OY9/jTMFRFqYdkUnfcGwqMLC64A0Q25bjvCuVQCVjsPFKE3wl0Kt5rNT01eV2UmLXrR6fY0xWbR2w80bLA7CIQ== dependencies: "@polkadot/types" "10.9.1" @@ -784,7 +771,7 @@ "@polkadot/types-codec@10.9.1": version "10.9.1" - resolved "https://registry.npmjs.org/@polkadot/types-codec/-/types-codec-10.9.1.tgz#f30026d3dfeaa69c07c45fa66d1c39318fd232cc" + resolved "https://registry.yarnpkg.com/@polkadot/types-codec/-/types-codec-10.9.1.tgz#f30026d3dfeaa69c07c45fa66d1c39318fd232cc" integrity sha512-mJ5OegKGraY1FLvEa8FopRCr3pQrhDkcn5RNOjmgJQozENVeRaxhk0NwxYz7IojFvSDnKnc6lNQfKaaSe5pLHg== dependencies: "@polkadot/util" "^12.3.1" @@ -793,7 +780,7 @@ "@polkadot/types-create@10.9.1": version "10.9.1" - resolved "https://registry.npmjs.org/@polkadot/types-create/-/types-create-10.9.1.tgz#087d7e2af51cce558b67e3859613b932a3bdc0a3" + resolved "https://registry.yarnpkg.com/@polkadot/types-create/-/types-create-10.9.1.tgz#087d7e2af51cce558b67e3859613b932a3bdc0a3" integrity sha512-OVz50MGTTuiuVnRP/zAx4CTuLioc0hsiwNwqN2lNhmIJGtnQ4Vy/7mQRsIWehiYz6g0Vzzm5B3qWkTXO1NSN5w== dependencies: "@polkadot/types-codec" "10.9.1" @@ -802,7 +789,7 @@ "@polkadot/types-known@10.9.1": version "10.9.1" - resolved "https://registry.npmjs.org/@polkadot/types-known/-/types-known-10.9.1.tgz#fe0c7e55191aa843119edcaf9abb5d2471463a7d" + resolved "https://registry.yarnpkg.com/@polkadot/types-known/-/types-known-10.9.1.tgz#fe0c7e55191aa843119edcaf9abb5d2471463a7d" integrity sha512-zCMVWc4pJtkbMFPu72bD4IhvV/gkHXPX3C5uu92WdmCfnn0vEIEsMKWlVXVVvQQZKAqvs/awpqIfrUtEViOGEA== dependencies: "@polkadot/networks" "^12.3.1" @@ -814,7 +801,7 @@ "@polkadot/types-support@10.9.1": version "10.9.1" - resolved "https://registry.npmjs.org/@polkadot/types-support/-/types-support-10.9.1.tgz#17a861aab8e5a225a4e20cefa2d16076ddd51baf" + resolved "https://registry.yarnpkg.com/@polkadot/types-support/-/types-support-10.9.1.tgz#17a861aab8e5a225a4e20cefa2d16076ddd51baf" integrity sha512-XsieuLDsszvMZQlleacQBfx07i/JkwQV/UxH9q8Hz7Okmaz9pEVEW1h3ka2/cPuC7a4l32JhaORBUYshBZNdJg== dependencies: "@polkadot/util" "^12.3.1" @@ -822,7 +809,7 @@ "@polkadot/types@10.9.1": version "10.9.1" - resolved "https://registry.npmjs.org/@polkadot/types/-/types-10.9.1.tgz#f111d00f7278ad3be95deba3d701fafefe080cb2" + resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-10.9.1.tgz#f111d00f7278ad3be95deba3d701fafefe080cb2" integrity sha512-AG33i2ZGGfq7u+5rkAdGrXAQHHl844/Yv+junH5ZzX69xiCoWO1bH/yzDUNBdpki2GlACWvF9nLYh3F2tVF93w== dependencies: "@polkadot/keyring" "^12.3.1" @@ -836,7 +823,7 @@ "@polkadot/ui-settings@3.5.1": version "3.5.1" - resolved "https://registry.npmjs.org/@polkadot/ui-settings/-/ui-settings-3.5.1.tgz#53aadb3bc1e8b79c7a7b3b219ab72cf0e37ca612" + resolved "https://registry.yarnpkg.com/@polkadot/ui-settings/-/ui-settings-3.5.1.tgz#53aadb3bc1e8b79c7a7b3b219ab72cf0e37ca612" integrity sha512-3Lhgr9bZZALUuJbpy2zlqRm1sA7YIYnVXGUo0p5YWqWsthGQRL8mR4WhxcAnR+fZumI5fW+nhjosm5SiGzvy/Q== dependencies: "@polkadot/networks" "^12.3.1" @@ -847,7 +834,7 @@ "@polkadot/ui-shared@3.5.1": version "3.5.1" - resolved "https://registry.npmjs.org/@polkadot/ui-shared/-/ui-shared-3.5.1.tgz#c7be9c98d62940647bfc1c69b7675395f6c73ee8" + resolved "https://registry.yarnpkg.com/@polkadot/ui-shared/-/ui-shared-3.5.1.tgz#c7be9c98d62940647bfc1c69b7675395f6c73ee8" integrity sha512-YXOVfm4YDbkTOyVPu6duhHN1L6/kntzk4Zx2IM8mPXRAdV7nexKPh9nasG/DJth0oqomCuhAhH+B61UueCmXUQ== dependencies: colord "^2.9.3" @@ -855,7 +842,7 @@ "@polkadot/util-crypto@12.3.2", "@polkadot/util-crypto@^12.3.1": version "12.3.2" - resolved "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-12.3.2.tgz#42d810886904e06fa6e5db254c15f6ef80f4ab72" + resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-12.3.2.tgz#42d810886904e06fa6e5db254c15f6ef80f4ab72" integrity sha512-pTpx+YxolY0BDT4RcGmgeKbHHD/dI6Ll9xRsqmVdIjpcVVY20uDNTyXs81ZNtfKgyod1y9JQkfNv2Dz9iEpTkQ== dependencies: "@noble/curves" "1.1.0" @@ -871,7 +858,7 @@ "@polkadot/util@12.3.2", "@polkadot/util@^12.1.1", "@polkadot/util@^12.3.1": version "12.3.2" - resolved "https://registry.npmjs.org/@polkadot/util/-/util-12.3.2.tgz#f46e147b0e6a426da5ba59df4ce65de1a3effe4a" + resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-12.3.2.tgz#f46e147b0e6a426da5ba59df4ce65de1a3effe4a" integrity sha512-y/JShcGyOamCUiSIg++XZuLHt1ktSKBaSH2K5Nw5NXlgP0+7am+GZzqPB8fQ4qhYLruEOv+YRiz0GC1Zr9S+wg== dependencies: "@polkadot/x-bigint" "12.3.2" @@ -884,7 +871,7 @@ "@polkadot/wasm-bridge@7.2.1": version "7.2.1" - resolved "https://registry.npmjs.org/@polkadot/wasm-bridge/-/wasm-bridge-7.2.1.tgz#8464a96552207d2b49c6f32137b24132534b91ee" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-bridge/-/wasm-bridge-7.2.1.tgz#8464a96552207d2b49c6f32137b24132534b91ee" integrity sha512-uV/LHREDBGBbHrrv7HTki+Klw0PYZzFomagFWII4lp6Toj/VCvRh5WMzooVC+g/XsBGosAwrvBhoModabyHx+A== dependencies: "@polkadot/wasm-util" "7.2.1" @@ -892,14 +879,14 @@ "@polkadot/wasm-crypto-asmjs@7.2.1": version "7.2.1" - resolved "https://registry.npmjs.org/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-7.2.1.tgz#3e7a91e2905ab7354bc37b82f3e151a62bb024db" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-7.2.1.tgz#3e7a91e2905ab7354bc37b82f3e151a62bb024db" integrity sha512-z/d21bmxyVfkzGsKef/FWswKX02x5lK97f4NPBZ9XBeiFkmzlXhdSnu58/+b1sKsRAGdW/Rn/rTNRDhW0GqCAg== dependencies: tslib "^2.5.0" "@polkadot/wasm-crypto-init@7.2.1": version "7.2.1" - resolved "https://registry.npmjs.org/@polkadot/wasm-crypto-init/-/wasm-crypto-init-7.2.1.tgz#9dbba41ed7d382575240f1483cf5a139ff2787bd" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-init/-/wasm-crypto-init-7.2.1.tgz#9dbba41ed7d382575240f1483cf5a139ff2787bd" integrity sha512-GcEXtwN9LcSf32V9zSaYjHImFw16hCyo2Xzg4GLLDPPeaAAfbFr2oQMgwyDbvBrBjLKHVHjsPZyGhXae831amw== dependencies: "@polkadot/wasm-bridge" "7.2.1" @@ -910,7 +897,7 @@ "@polkadot/wasm-crypto-wasm@7.2.1": version "7.2.1" - resolved "https://registry.npmjs.org/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-7.2.1.tgz#d2486322c725f6e5d2cc2d6abcb77ecbbaedc738" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-7.2.1.tgz#d2486322c725f6e5d2cc2d6abcb77ecbbaedc738" integrity sha512-DqyXE4rSD0CVlLIw88B58+HHNyrvm+JAnYyuEDYZwCvzUWOCNos/DDg9wi/K39VAIsCCKDmwKqkkfIofuOj/lA== dependencies: "@polkadot/wasm-util" "7.2.1" @@ -918,7 +905,7 @@ "@polkadot/wasm-crypto@^7.2.1": version "7.2.1" - resolved "https://registry.npmjs.org/@polkadot/wasm-crypto/-/wasm-crypto-7.2.1.tgz#db671dcb73f1646dc13478b5ffc3be18c64babe1" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto/-/wasm-crypto-7.2.1.tgz#db671dcb73f1646dc13478b5ffc3be18c64babe1" integrity sha512-SA2+33S9TAwGhniKgztVN6pxUKpGfN4Tre/eUZGUfpgRkT92wIUT2GpGWQE+fCCqGQgADrNiBcwt6XwdPqMQ4Q== dependencies: "@polkadot/wasm-bridge" "7.2.1" @@ -930,14 +917,14 @@ "@polkadot/wasm-util@7.2.1", "@polkadot/wasm-util@^7.2.1": version "7.2.1" - resolved "https://registry.npmjs.org/@polkadot/wasm-util/-/wasm-util-7.2.1.tgz#fda233120ec02f77f0d14e4d3c7ad9ce06535fb8" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-util/-/wasm-util-7.2.1.tgz#fda233120ec02f77f0d14e4d3c7ad9ce06535fb8" integrity sha512-FBSn/3aYJzhN0sYAYhHB8y9JL8mVgxLy4M1kUXYbyo+8GLRQEN5rns8Vcb8TAlIzBWgVTOOptYBvxo0oj0h7Og== dependencies: tslib "^2.5.0" "@polkadot/x-bigint@12.3.2", "@polkadot/x-bigint@^12.3.1": version "12.3.2" - resolved "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-12.3.2.tgz#0e99489cc7938bed40762aaaed58ded6850ab54b" + resolved "https://registry.yarnpkg.com/@polkadot/x-bigint/-/x-bigint-12.3.2.tgz#0e99489cc7938bed40762aaaed58ded6850ab54b" integrity sha512-JLqLgfGXe/x+hZJETd5ZqfpVsbwyMsH5Nn1Q20ineMMjXN/ig+kVR8Mc15LXBMuw4g7LldFW6UUrotWnuMI8Yw== dependencies: "@polkadot/x-global" "12.3.2" @@ -945,7 +932,7 @@ "@polkadot/x-fetch@^12.3.1": version "12.3.2" - resolved "https://registry.npmjs.org/@polkadot/x-fetch/-/x-fetch-12.3.2.tgz#7e8d2113268e792dd5d1b259ef13839c6aa77996" + resolved "https://registry.yarnpkg.com/@polkadot/x-fetch/-/x-fetch-12.3.2.tgz#7e8d2113268e792dd5d1b259ef13839c6aa77996" integrity sha512-3IEuZ5S+RI/t33NsdPLIIa5COfDCfpUW2sbaByEczn75aD1jLqJZSEDwiBniJ2osyNd4uUxBf6e5jw7LAZeZJg== dependencies: "@polkadot/x-global" "12.3.2" @@ -954,14 +941,14 @@ "@polkadot/x-global@12.3.2", "@polkadot/x-global@^12.3.1": version "12.3.2" - resolved "https://registry.npmjs.org/@polkadot/x-global/-/x-global-12.3.2.tgz#04ac0b0e559a35107f0b95ff7889fcade3796aa3" + resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-12.3.2.tgz#04ac0b0e559a35107f0b95ff7889fcade3796aa3" integrity sha512-yVZq6oIegjlyh5rUZiTklgu+fL+W/DG1ypEa02683tUCB3avV5cA3PAHKptMSlb6FpweHu37lKKrqfAWrraDxg== dependencies: tslib "^2.5.3" "@polkadot/x-randomvalues@12.3.2": version "12.3.2" - resolved "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-12.3.2.tgz#43ac489a998098bdd40b3f82f28adb5b542db2a5" + resolved "https://registry.yarnpkg.com/@polkadot/x-randomvalues/-/x-randomvalues-12.3.2.tgz#43ac489a998098bdd40b3f82f28adb5b542db2a5" integrity sha512-ywjIs8CWpvOGmq+3cGCNPOHxAjPHdBUiXyDccftx5BRVdmtbt36gK/V84bKr6Xs73FGu0jprUAOSRRsLZX/3dg== dependencies: "@polkadot/x-global" "12.3.2" @@ -969,7 +956,7 @@ "@polkadot/x-textdecoder@12.3.2": version "12.3.2" - resolved "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-12.3.2.tgz#bbd5682744f3552ce5d4d792ff48a3ca525eafcf" + resolved "https://registry.yarnpkg.com/@polkadot/x-textdecoder/-/x-textdecoder-12.3.2.tgz#bbd5682744f3552ce5d4d792ff48a3ca525eafcf" integrity sha512-lY5bfA5xArJRWEJlYOlQQMJeTjWD8s0yMhchirVgf5xj8Id9vPGeUoneH+VFDEwgXxrqBvDFJ4smN4T/r6a/fg== dependencies: "@polkadot/x-global" "12.3.2" @@ -977,7 +964,7 @@ "@polkadot/x-textencoder@12.3.2": version "12.3.2" - resolved "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-12.3.2.tgz#223e6f6dd78e2d81c6dcc6f244c76ceae7b08e32" + resolved "https://registry.yarnpkg.com/@polkadot/x-textencoder/-/x-textencoder-12.3.2.tgz#223e6f6dd78e2d81c6dcc6f244c76ceae7b08e32" integrity sha512-iP3qEBiHzBckQ9zeY7ZHRWuu7mCEg5SMpOugs6UODRk8sx6KHzGQYlghBbWLit0uppPDVE0ifEwZ2n73djJHWQ== dependencies: "@polkadot/x-global" "12.3.2" @@ -985,7 +972,7 @@ "@polkadot/x-ws@^12.3.1": version "12.3.2" - resolved "https://registry.npmjs.org/@polkadot/x-ws/-/x-ws-12.3.2.tgz#422559dfbdaac4c965d5e1b406b6cc4529214f94" + resolved "https://registry.yarnpkg.com/@polkadot/x-ws/-/x-ws-12.3.2.tgz#422559dfbdaac4c965d5e1b406b6cc4529214f94" integrity sha512-yM9Z64pLNlHpJE43+Xtr+iUXmYpFFY5u5hrke2PJt13O48H8f9Vb9cRaIh94appLyICoS0aekGhDkGH+MCspBA== dependencies: "@polkadot/x-global" "12.3.2" @@ -994,27 +981,27 @@ "@polkadotcloud/core-ui@^0.3.42": version "0.3.42" - resolved "https://registry.npmjs.org/@polkadotcloud/core-ui/-/core-ui-0.3.42.tgz#de955d45bd0f111fea2ed8abde79313ea8c05eb6" + resolved "https://registry.yarnpkg.com/@polkadotcloud/core-ui/-/core-ui-0.3.42.tgz#de955d45bd0f111fea2ed8abde79313ea8c05eb6" integrity sha512-vFABVwT82dd5vIp9tniiE765ragJv7UQsLE1cPFWKRq8hYpcsI4NCAOLmxhLAuYWRR0tDwaIrPXxtw0MkNP2NQ== "@polkadotcloud/react-odometer@^0.1.17": version "0.1.17" - resolved "https://registry.npmjs.org/@polkadotcloud/react-odometer/-/react-odometer-0.1.17.tgz#0c4465581c4155ee45b2a99a7b8cbacc36d485b0" + resolved "https://registry.yarnpkg.com/@polkadotcloud/react-odometer/-/react-odometer-0.1.17.tgz#0c4465581c4155ee45b2a99a7b8cbacc36d485b0" integrity sha512-60VSsLJva6oSGidtem2oF43i04zNqg2Hxm3OT/UvUamuIIoY0QJKI+hnWl643mGTk5Ooz13hDLxpt5Sf9IXmfw== "@polkadotcloud/utils@^0.2.22": version "0.2.22" - resolved "https://registry.npmjs.org/@polkadotcloud/utils/-/utils-0.2.22.tgz#959b7de19352ce3cf75ba32b6c5bde19b3caee07" + resolved "https://registry.yarnpkg.com/@polkadotcloud/utils/-/utils-0.2.22.tgz#959b7de19352ce3cf75ba32b6c5bde19b3caee07" integrity sha512-FtGOwEt1oiP1beC1y1VjeiYcVg0vmMts1qMkluHsptdsz7uPXPau4t2SxZvqVM9sKsJbaWmGe6Z+EfzV4I9Cow== "@remix-run/router@1.7.1": version "1.7.1" - resolved "https://registry.npmjs.org/@remix-run/router/-/router-1.7.1.tgz#fea7ac35ae4014637c130011f59428f618730498" + resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.7.1.tgz#fea7ac35ae4014637c130011f59428f618730498" integrity sha512-bgVQM4ZJ2u2CM8k1ey70o1ePFXsEzYVZoWghh6WjM8p59jQ7HxzbHW4SbnWFG7V9ig9chLawQxDTZ3xzOF8MkQ== "@rollup/pluginutils@^4.2.1": version "4.2.1" - resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== dependencies: estree-walker "^2.0.1" @@ -1022,7 +1009,7 @@ "@rollup/pluginutils@^5.0.2": version "5.0.2" - resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz#012b8f53c71e4f6f9cb317e311df1404f56e7a33" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.2.tgz#012b8f53c71e4f6f9cb317e311df1404f56e7a33" integrity sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA== dependencies: "@types/estree" "^1.0.0" @@ -1031,22 +1018,22 @@ "@scure/base@1.1.1", "@scure/base@^1.1.1": version "1.1.1" - resolved "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz#ebb651ee52ff84f420097055f4bf46cfba403938" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.1.tgz#ebb651ee52ff84f420097055f4bf46cfba403938" integrity sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA== "@sinclair/typebox@^0.27.8": version "0.27.8" - resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== "@substrate/connect-extension-protocol@^1.0.1": version "1.0.1" - resolved "https://registry.npmjs.org/@substrate/connect-extension-protocol/-/connect-extension-protocol-1.0.1.tgz#fa5738039586c648013caa6a0c95c43265dbe77d" + resolved "https://registry.yarnpkg.com/@substrate/connect-extension-protocol/-/connect-extension-protocol-1.0.1.tgz#fa5738039586c648013caa6a0c95c43265dbe77d" integrity sha512-161JhCC1csjH3GE5mPLEd7HbWtwNSPJBg3p1Ksz9SFlTzj/bgEwudiRN2y5i0MoLGCIJRYKyKGMxVnd29PzNjg== "@substrate/connect@0.7.26": version "0.7.26" - resolved "https://registry.npmjs.org/@substrate/connect/-/connect-0.7.26.tgz#a0ee5180c9cb2f29250d1219a32f7b7e7dea1196" + resolved "https://registry.yarnpkg.com/@substrate/connect/-/connect-0.7.26.tgz#a0ee5180c9cb2f29250d1219a32f7b7e7dea1196" integrity sha512-uuGSiroGuKWj1+38n1kY5HReer5iL9bRwPCzuoLtqAOmI1fGI0hsSI2LlNQMAbfRgr7VRHXOk5MTuQf5ulsFRw== dependencies: "@substrate/connect-extension-protocol" "^1.0.1" @@ -1054,62 +1041,61 @@ smoldot "1.0.4" "@substrate/connect@^0.7.29": - version "0.7.29" - resolved "https://registry.npmjs.org/@substrate/connect/-/connect-0.7.29.tgz#36a0c1b0dfd8ead99ede2ce406a8c1c8a328516b" - integrity sha512-8EiKvzcVYis6dP8SDadasGP92qzWsq1C6+u/TAGiQ59YNxMI5mv7Kcol7sfsdhz1xvNfE9bFen4OYE1KYDe8LA== + version "0.7.30" + resolved "https://registry.yarnpkg.com/@substrate/connect/-/connect-0.7.30.tgz#bc633d869e47efb32dc6b7b39f716b5d8d83646c" + integrity sha512-njt7lVc3GsoLWfynAh3VhOgjBRQYdT3Cd4N+QPANhHk3GTLQmfxvDUU4zQm1O3pYORY/lZOHlBtR0HoJklte0Q== dependencies: "@substrate/connect-extension-protocol" "^1.0.1" - eventemitter3 "^4.0.7" - smoldot "1.0.9" + smoldot "1.0.11" "@substrate/ss58-registry@^1.40.0": version "1.41.0" - resolved "https://registry.npmjs.org/@substrate/ss58-registry/-/ss58-registry-1.41.0.tgz#dd18e132f44b73c3cd31cf0db489c10af70bef36" + resolved "https://registry.yarnpkg.com/@substrate/ss58-registry/-/ss58-registry-1.41.0.tgz#dd18e132f44b73c3cd31cf0db489c10af70bef36" integrity sha512-TLz5VkEaJRNFzf1Oiix9gqknKer3aKbLfjK9XHBFCIhdxlQpI+S6lZGu3wT4DHAGXPakYfXb8+9ZIOtWLcQ/2Q== "@svgr/babel-plugin-add-jsx-attribute@^7.0.0": version "7.0.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-7.0.0.tgz#80856c1b7a3b7422d232f6e079f0beb90c4a13e9" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-7.0.0.tgz#80856c1b7a3b7422d232f6e079f0beb90c4a13e9" integrity sha512-khWbXesWIP9v8HuKCl2NU2HNAyqpSQ/vkIl36Nbn4HIwEYSRWL0H7Gs6idJdha2DkpFDWlsqMELvoCE8lfFY6Q== "@svgr/babel-plugin-remove-jsx-attribute@^7.0.0": version "7.0.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-7.0.0.tgz#91da77a009dc38e8d30da45d9b62ef8736f2d90a" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-7.0.0.tgz#91da77a009dc38e8d30da45d9b62ef8736f2d90a" integrity sha512-iiZaIvb3H/c7d3TH2HBeK91uI2rMhZNwnsIrvd7ZwGLkFw6mmunOCoVnjdYua662MqGFxlN9xTq4fv9hgR4VXQ== "@svgr/babel-plugin-remove-jsx-empty-expression@^7.0.0": version "7.0.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-7.0.0.tgz#5154ff1213509e36ab315974c8c2fd48dafb827b" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-7.0.0.tgz#5154ff1213509e36ab315974c8c2fd48dafb827b" integrity sha512-sQQmyo+qegBx8DfFc04PFmIO1FP1MHI1/QEpzcIcclo5OAISsOJPW76ZIs0bDyO/DBSJEa/tDa1W26pVtt0FRw== "@svgr/babel-plugin-replace-jsx-attribute-value@^7.0.0": version "7.0.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-7.0.0.tgz#7e72f44ee57fdbcb02fb0d4a7629466c5242725e" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-7.0.0.tgz#7e72f44ee57fdbcb02fb0d4a7629466c5242725e" integrity sha512-i6MaAqIZXDOJeikJuzocByBf8zO+meLwfQ/qMHIjCcvpnfvWf82PFvredEZElErB5glQFJa2KVKk8N2xV6tRRA== "@svgr/babel-plugin-svg-dynamic-title@^7.0.0": version "7.0.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-7.0.0.tgz#8caf0449c678ea29be756b89960b2b16c9f33f00" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-7.0.0.tgz#8caf0449c678ea29be756b89960b2b16c9f33f00" integrity sha512-BoVSh6ge3SLLpKC0pmmN9DFlqgFy4NxNgdZNLPNJWBUU7TQpDWeBuyVuDW88iXydb5Cv0ReC+ffa5h3VrKfk1w== "@svgr/babel-plugin-svg-em-dimensions@^7.0.0": version "7.0.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-7.0.0.tgz#4db6b5af6d29e93db236b1a013fa953754071d41" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-7.0.0.tgz#4db6b5af6d29e93db236b1a013fa953754071d41" integrity sha512-tNDcBa+hYn0gO+GkP/AuNKdVtMufVhU9fdzu+vUQsR18RIJ9RWe7h/pSBY338RO08wArntwbDk5WhQBmhf2PaA== "@svgr/babel-plugin-transform-react-native-svg@^7.0.0": version "7.0.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-7.0.0.tgz#236995e58b5e36ff06365d5310509ce5391aeec9" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-7.0.0.tgz#236995e58b5e36ff06365d5310509ce5391aeec9" integrity sha512-qw54u8ljCJYL2KtBOjI5z7Nzg8LnSvQOP5hPKj77H4VQL4+HdKbAT5pnkkZLmHKYwzsIHSYKXxHouD8zZamCFQ== "@svgr/babel-plugin-transform-svg-component@^7.0.0": version "7.0.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-7.0.0.tgz#a9b62730acf10d22a2aa57e0f701c0ecbc270430" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-7.0.0.tgz#a9b62730acf10d22a2aa57e0f701c0ecbc270430" integrity sha512-CcFECkDj98daOg9jE3Bh3uyD9kzevCAnZ+UtzG6+BQG/jOQ2OA3jHnX6iG4G1MCJkUQFnUvEv33NvQfqrb/F3A== "@svgr/babel-preset@^7.0.0": version "7.0.0" - resolved "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-7.0.0.tgz#55aaca4cec2ff6515a571715b6b6fa98675b66d9" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-7.0.0.tgz#55aaca4cec2ff6515a571715b6b6fa98675b66d9" integrity sha512-EX/NHeFa30j5UjldQGVQikuuQNHUdGmbh9kEpBKofGUtF0GUPJ4T4rhoYiqDAOmBOxojyot36JIFiDUHUK1ilQ== dependencies: "@svgr/babel-plugin-add-jsx-attribute" "^7.0.0" @@ -1123,7 +1109,7 @@ "@svgr/core@^7.0.0": version "7.0.0" - resolved "https://registry.npmjs.org/@svgr/core/-/core-7.0.0.tgz#def863d2670c682615583c80b408e83c095c2233" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-7.0.0.tgz#def863d2670c682615583c80b408e83c095c2233" integrity sha512-ztAoxkaKhRVloa3XydohgQQCb0/8x9T63yXovpmHzKMkHO6pkjdsIAWKOS4bE95P/2quVh1NtjSKlMRNzSBffw== dependencies: "@babel/core" "^7.21.3" @@ -1133,7 +1119,7 @@ "@svgr/hast-util-to-babel-ast@^7.0.0": version "7.0.0" - resolved "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-7.0.0.tgz#d457dfbe74ebc1e5a6daf97ded49e9576a3a00cf" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-7.0.0.tgz#d457dfbe74ebc1e5a6daf97ded49e9576a3a00cf" integrity sha512-42Ej9sDDEmsJKjrfQ1PHmiDiHagh/u9AHO9QWbeNx4KmD9yS5d1XHmXUNINfUcykAU+4431Cn+k6Vn5mWBYimQ== dependencies: "@babel/types" "^7.21.3" @@ -1141,7 +1127,7 @@ "@svgr/plugin-jsx@^7.0.0": version "7.0.0" - resolved "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-7.0.0.tgz#b9e0c7d05bc890d70163ac0490ba8c41f1afab90" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-7.0.0.tgz#b9e0c7d05bc890d70163ac0490ba8c41f1afab90" integrity sha512-SWlTpPQmBUtLKxXWgpv8syzqIU8XgFRvyhfkam2So8b3BE0OS0HPe5UfmlJ2KIC+a7dpuuYovPR2WAQuSyMoPw== dependencies: "@babel/core" "^7.21.3" @@ -1151,57 +1137,57 @@ "@swc/core-darwin-arm64@1.3.68": version "1.3.68" - resolved "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.68.tgz#cf7fe9550a09eb18e6ceb30362da39886dbaf9d6" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.68.tgz#cf7fe9550a09eb18e6ceb30362da39886dbaf9d6" integrity sha512-Z5pNxeuP2NxpOHTzDQkJs0wAPLnTlglZnR3WjObijwvdwT/kw1Y5EPDKM/BVSIeG40SPMkDLBbI0aj0qyXzrBA== "@swc/core-darwin-x64@1.3.68": version "1.3.68" - resolved "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.68.tgz#83e1077a9a0f607f2a0050db2c9b288464c885cf" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.68.tgz#83e1077a9a0f607f2a0050db2c9b288464c885cf" integrity sha512-ZHl42g6yXhfX4PzAQ0BNvBXpt/OcbAHfubWRN6eXELK3fiNnxL7QBW1if7iizlq6iA+Mj1pwHyyUit1pz0+fgA== "@swc/core-linux-arm-gnueabihf@1.3.68": version "1.3.68" - resolved "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.68.tgz#c2f7ed599eac5f85ae2ca018cb2df6ae256256cd" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.68.tgz#c2f7ed599eac5f85ae2ca018cb2df6ae256256cd" integrity sha512-Mk8f6KCOQ2CNAR4PtWajIjS6XKSSR7ZYDOCf1GXRxhS3qEyQH7V8elWvqWYqHcT4foO60NUmxA/NOM/dQrdO1A== "@swc/core-linux-arm64-gnu@1.3.68": version "1.3.68" - resolved "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.68.tgz#5f10476668bf68d671d0e23f754fb7192038b6df" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.68.tgz#5f10476668bf68d671d0e23f754fb7192038b6df" integrity sha512-RhBllggh9t9sIxaRgRcGrVaS7fDk6KsIqR6b9+dwU5OyDr4ZyHWw1ZaH/1/HAebuXYhNBjoNUiRtca6lKRIPgQ== "@swc/core-linux-arm64-musl@1.3.68": version "1.3.68" - resolved "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.68.tgz#141c575acd84911801da5c93e5ee1b1a90d7e04b" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.68.tgz#141c575acd84911801da5c93e5ee1b1a90d7e04b" integrity sha512-8K3zjU+tFgn6yGDEeD343gkKaHU9dhz77NiVkI1VzwRaT/Ag5pwl5eMQ1yStm8koNFzn3zq6rGjHfI5g2yI5Wg== "@swc/core-linux-x64-gnu@1.3.68": version "1.3.68" - resolved "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.68.tgz#d9d5ceb218bea38d312e04336b37a2b312c29cc3" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.68.tgz#d9d5ceb218bea38d312e04336b37a2b312c29cc3" integrity sha512-4xAnvsBOyeTL0AB8GWlRKDM/hsysJ5jr5qvdKKI3rZfJgnnxl/xSX6TJKPsJ8gygfUJ3BmfCbmUmEyeDZ3YPvA== "@swc/core-linux-x64-musl@1.3.68": version "1.3.68" - resolved "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.68.tgz#440174a638d86f0c4d53de632bd6782a5ae61b57" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.68.tgz#440174a638d86f0c4d53de632bd6782a5ae61b57" integrity sha512-RCpaBo1fcpy1EFdjF+I7N4lfzOaHXVV0iMw/ABM+0PD6tp3V/9pxsguaZyeAHyEiUlDA6PZ4TfXv5zfnXEgW4Q== "@swc/core-win32-arm64-msvc@1.3.68": version "1.3.68" - resolved "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.68.tgz#c04936c621e2990ff3e88896cc435c094edd3e29" + resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.68.tgz#c04936c621e2990ff3e88896cc435c094edd3e29" integrity sha512-v2WZvXrSslYEpY1nqpItyamL4DyaJinmOkXvM8Bc1LLKU5rGuvmBdjUYg/5Y+o0AUynuiWubpgHNOkBWiCvfqw== "@swc/core-win32-ia32-msvc@1.3.68": version "1.3.68" - resolved "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.68.tgz#d4f75ead1fe56436d7cd3676b7d7b42bfeb952c1" + resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.68.tgz#d4f75ead1fe56436d7cd3676b7d7b42bfeb952c1" integrity sha512-HH5NJrIdzkJs+1xxprie0qSCMBeL9yeEhcC1yZTzYv8bwmabOUSdtKIqS55iYP/2hLWn9CTbvKPmLOIhCopW3Q== "@swc/core-win32-x64-msvc@1.3.68": version "1.3.68" - resolved "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.68.tgz#6ac56e87d994deb1917fc1b24285599e12e7a7b9" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.68.tgz#6ac56e87d994deb1917fc1b24285599e12e7a7b9" integrity sha512-9HZVtLQUgK8r/yXQdwe0VBexbIcrY6+fBROhs7AAPWdewpaUeLkwQEJk6TbYr9CQuHw26FFGg6SjwAiqXF+kgQ== "@swc/core@^1.3.61": version "1.3.68" - resolved "https://registry.npmjs.org/@swc/core/-/core-1.3.68.tgz#f1eba0b90f529b0accb7910ef742be88d285e719" + resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.68.tgz#f1eba0b90f529b0accb7910ef742be88d285e719" integrity sha512-njGQuJO+Wy06dEayt70cf0c/KI3HGjm4iW9LLViVLBuYNzJ4SSdNfzejludzufu6im+dsDJ0i3QjgWhAIcVHMQ== optionalDependencies: "@swc/core-darwin-arm64" "1.3.68" @@ -1217,39 +1203,39 @@ "@types/bn.js@^5.1.1": version "5.1.1" - resolved "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz#b51e1b55920a4ca26e9285ff79936bbdec910682" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.1.tgz#b51e1b55920a4ca26e9285ff79936bbdec910682" integrity sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g== dependencies: "@types/node" "*" "@types/chai-subset@^1.3.3": version "1.3.3" - resolved "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.3.tgz#97893814e92abd2c534de422cb377e0e0bdaac94" + resolved "https://registry.yarnpkg.com/@types/chai-subset/-/chai-subset-1.3.3.tgz#97893814e92abd2c534de422cb377e0e0bdaac94" integrity sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw== dependencies: "@types/chai" "*" "@types/chai@*", "@types/chai@^4.3.5": version "4.3.5" - resolved "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz#ae69bcbb1bebb68c4ac0b11e9d8ed04526b3562b" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.5.tgz#ae69bcbb1bebb68c4ac0b11e9d8ed04526b3562b" integrity sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng== "@types/eslint@^8.4.5": - version "8.40.2" - resolved "https://registry.npmjs.org/@types/eslint/-/eslint-8.40.2.tgz#2833bc112d809677864a4b0e7d1de4f04d7dac2d" - integrity sha512-PRVjQ4Eh9z9pmmtaq8nTjZjQwKFk7YIHIud3lRoKRBgUQjgjRmoGxxGEPXQkF+lH7QkHJRNr5F4aBgYCW0lqpQ== + version "8.44.0" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.0.tgz#55818eabb376e2272f77fbf5c96c43137c3c1e53" + integrity sha512-gsF+c/0XOguWgaOgvFs+xnnRqt9GwgTvIks36WpE6ueeI4KCEHHd8K/CKHqhOqrJKsYH8m27kRzQEvWXAwXUTw== dependencies: "@types/estree" "*" "@types/json-schema" "*" "@types/estree@*", "@types/estree@^1.0.0": version "1.0.1" - resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== "@types/hoist-non-react-statics@*": version "3.3.1" - resolved "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f" + resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f" integrity sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA== dependencies: "@types/react" "*" @@ -1257,46 +1243,46 @@ "@types/json-schema@*", "@types/json-schema@^7.0.9": version "7.0.12" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== "@types/json5@^0.0.29": version "0.0.29" - resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== "@types/lodash.throttle@^4.1.7": version "4.1.7" - resolved "https://registry.npmjs.org/@types/lodash.throttle/-/lodash.throttle-4.1.7.tgz#4ef379eb4f778068022310ef166625f420b6ba58" + resolved "https://registry.yarnpkg.com/@types/lodash.throttle/-/lodash.throttle-4.1.7.tgz#4ef379eb4f778068022310ef166625f420b6ba58" integrity sha512-znwGDpjCHQ4FpLLx19w4OXDqq8+OvREa05H89obtSyXyOFKL3dDjCslsmfBz0T2FU8dmf5Wx1QvogbINiGIu9g== dependencies: "@types/lodash" "*" "@types/lodash@*": version "4.14.195" - resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.195.tgz#bafc975b252eb6cea78882ce8a7b6bf22a6de632" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.195.tgz#bafc975b252eb6cea78882ce8a7b6bf22a6de632" integrity sha512-Hwx9EUgdwf2GLarOjQp5ZH8ZmblzcbTBC2wtQWNKARBSxM9ezRIAUpeDTgoQRAFB0+8CNWXVA9+MaSOzOF3nPg== "@types/node@*": - version "20.4.0" - resolved "https://registry.npmjs.org/@types/node/-/node-20.4.0.tgz#01d637d1891e419bc85763b46f42809cd2d5addb" - integrity sha512-jfT7iTf/4kOQ9S7CHV9BIyRaQqHu67mOjsIQBC3BKZvzvUB6zLxEwJ6sBE3ozcvP8kF6Uk5PXN0Q+c0dfhGX0g== + version "20.4.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.4.1.tgz#a6033a8718653c50ac4962977e14d0f984d9527d" + integrity sha512-JIzsAvJeA/5iY6Y/OxZbv1lUcc8dNSE77lb2gnBH+/PJ3lFR1Ccvgwl5JWnHAkNHcRsT0TbpVOsiMKZ1F/yyJg== "@types/prop-types@*": version "15.7.5" - resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== "@types/react-dom@^18.2.6": version "18.2.6" - resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.6.tgz#ad621fa71a8db29af7c31b41b2ea3d8a6f4144d1" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.6.tgz#ad621fa71a8db29af7c31b41b2ea3d8a6f4144d1" integrity sha512-2et4PDvg6PVCyS7fuTc4gPoksV58bW0RwSxWKcPRcHZf0PRUGq03TKcD/rUHe3azfV6/5/biUBJw+HhCQjaP0A== dependencies: "@types/react" "*" "@types/react-helmet@^6.1.6": version "6.1.6" - resolved "https://registry.npmjs.org/@types/react-helmet/-/react-helmet-6.1.6.tgz#7d1afd8cbf099616894e8240e9ef70e3c6d7506d" + resolved "https://registry.yarnpkg.com/@types/react-helmet/-/react-helmet-6.1.6.tgz#7d1afd8cbf099616894e8240e9ef70e3c6d7506d" integrity sha512-ZKcoOdW/Tg+kiUbkFCBtvDw0k3nD4HJ/h/B9yWxN4uDO8OkRksWTO+EL+z/Qu3aHTeTll3Ro0Cc/8UhwBCMG5A== dependencies: "@types/react" "*" @@ -1310,14 +1296,14 @@ "@types/react-scroll@^1.8.6": version "1.8.7" - resolved "https://registry.npmjs.org/@types/react-scroll/-/react-scroll-1.8.7.tgz#7241c6ccd47839d79227a23a5184d727245c7324" + resolved "https://registry.yarnpkg.com/@types/react-scroll/-/react-scroll-1.8.7.tgz#7241c6ccd47839d79227a23a5184d727245c7324" integrity sha512-BB8g+hQL7OtBPWg/NcES6p5u6vduZonGl1BxrsGUwcefE53pfI0pFDd1lRFndgEUE6whYdFfhD+j0sZZT/6brQ== dependencies: "@types/react" "*" "@types/react@*", "@types/react@^18.2.14": version "18.2.14" - resolved "https://registry.npmjs.org/@types/react/-/react-18.2.14.tgz#fa7a6fecf1ce35ca94e74874f70c56ce88f7a127" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.14.tgz#fa7a6fecf1ce35ca94e74874f70c56ce88f7a127" integrity sha512-A0zjq+QN/O0Kpe30hA1GidzyFjatVvrpIvWLxD+xv67Vt91TWWgco9IvrJBkeyHm1trGaFS/FSGqPlhyeZRm0g== dependencies: "@types/prop-types" "*" @@ -1326,17 +1312,17 @@ "@types/scheduler@*": version "0.16.3" - resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== "@types/semver@^7.3.12": version "7.5.0" - resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== "@types/styled-components@^5.1.26": version "5.1.26" - resolved "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.26.tgz#5627e6812ee96d755028a98dae61d28e57c233af" + resolved "https://registry.yarnpkg.com/@types/styled-components/-/styled-components-5.1.26.tgz#5627e6812ee96d755028a98dae61d28e57c233af" integrity sha512-KuKJ9Z6xb93uJiIyxo/+ksS7yLjS1KzG6iv5i78dhVg/X3u5t1H7juRWqVmodIdz6wGVaIApo1u01kmFRdJHVw== dependencies: "@types/hoist-non-react-statics" "*" @@ -1345,18 +1331,18 @@ "@types/trusted-types@^2.0.2": version "2.0.3" - resolved "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz#a136f83b0758698df454e328759dbd3d44555311" + resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.3.tgz#a136f83b0758698df454e328759dbd3d44555311" integrity sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g== "@typescript-eslint/eslint-plugin@^5.61.0": - version "5.61.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.61.0.tgz#a1a5290cf33863b4db3fb79350b3c5275a7b1223" - integrity sha512-A5l/eUAug103qtkwccSCxn8ZRwT+7RXWkFECdA4Cvl1dOlDUgTpAOfSEElZn2uSUxhdDpnCdetrf0jvU4qrL+g== + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz#aeef0328d172b9e37d9bab6dbc13b87ed88977db" + integrity sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag== dependencies: "@eslint-community/regexpp" "^4.4.0" - "@typescript-eslint/scope-manager" "5.61.0" - "@typescript-eslint/type-utils" "5.61.0" - "@typescript-eslint/utils" "5.61.0" + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/type-utils" "5.62.0" + "@typescript-eslint/utils" "5.62.0" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.0" @@ -1365,76 +1351,76 @@ tsutils "^3.21.0" "@typescript-eslint/parser@^5.61.0": - version "5.61.0" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.61.0.tgz#7fbe3e2951904bb843f8932ebedd6e0635bffb70" - integrity sha512-yGr4Sgyh8uO6fSi9hw3jAFXNBHbCtKKFMdX2IkT3ZqpKmtAq3lHS4ixB/COFuAIJpwl9/AqF7j72ZDWYKmIfvg== + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.62.0.tgz#1b63d082d849a2fcae8a569248fbe2ee1b8a56c7" + integrity sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA== dependencies: - "@typescript-eslint/scope-manager" "5.61.0" - "@typescript-eslint/types" "5.61.0" - "@typescript-eslint/typescript-estree" "5.61.0" + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/typescript-estree" "5.62.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.61.0": - version "5.61.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.61.0.tgz#b670006d069c9abe6415c41f754b1b5d949ef2b2" - integrity sha512-W8VoMjoSg7f7nqAROEmTt6LoBpn81AegP7uKhhW5KzYlehs8VV0ZW0fIDVbcZRcaP3aPSW+JZFua+ysQN+m/Nw== +"@typescript-eslint/scope-manager@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c" + integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== dependencies: - "@typescript-eslint/types" "5.61.0" - "@typescript-eslint/visitor-keys" "5.61.0" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/visitor-keys" "5.62.0" -"@typescript-eslint/type-utils@5.61.0": - version "5.61.0" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.61.0.tgz#e90799eb2045c4435ea8378cb31cd8a9fddca47a" - integrity sha512-kk8u//r+oVK2Aj3ph/26XdH0pbAkC2RiSjUYhKD+PExemG4XSjpGFeyZ/QM8lBOa7O8aGOU+/yEbMJgQv/DnCg== +"@typescript-eslint/type-utils@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz#286f0389c41681376cdad96b309cedd17d70346a" + integrity sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew== dependencies: - "@typescript-eslint/typescript-estree" "5.61.0" - "@typescript-eslint/utils" "5.61.0" + "@typescript-eslint/typescript-estree" "5.62.0" + "@typescript-eslint/utils" "5.62.0" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.61.0": - version "5.61.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.61.0.tgz#e99ff11b5792d791554abab0f0370936d8ca50c0" - integrity sha512-ldyueo58KjngXpzloHUog/h9REmHl59G1b3a5Sng1GfBo14BkS3ZbMEb3693gnP1k//97lh7bKsp6/V/0v1veQ== +"@typescript-eslint/types@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" + integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== -"@typescript-eslint/typescript-estree@5.61.0": - version "5.61.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.61.0.tgz#4c7caca84ce95bb41aa585d46a764bcc050b92f3" - integrity sha512-Fud90PxONnnLZ36oR5ClJBLTLfU4pIWBmnvGwTbEa2cXIqj70AEDEmOmpkFComjBZ/037ueKrOdHuYmSFVD7Rw== +"@typescript-eslint/typescript-estree@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b" + integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA== dependencies: - "@typescript-eslint/types" "5.61.0" - "@typescript-eslint/visitor-keys" "5.61.0" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/visitor-keys" "5.62.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.61.0": - version "5.61.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.61.0.tgz#5064838a53e91c754fffbddd306adcca3fe0af36" - integrity sha512-mV6O+6VgQmVE6+xzlA91xifndPW9ElFW8vbSF0xCT/czPXVhwDewKila1jOyRwa9AE19zKnrr7Cg5S3pJVrTWQ== +"@typescript-eslint/utils@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86" + integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@types/json-schema" "^7.0.9" "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.61.0" - "@typescript-eslint/types" "5.61.0" - "@typescript-eslint/typescript-estree" "5.61.0" + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/typescript-estree" "5.62.0" eslint-scope "^5.1.1" semver "^7.3.7" -"@typescript-eslint/visitor-keys@5.61.0": - version "5.61.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.61.0.tgz#c79414fa42158fd23bd2bb70952dc5cdbb298140" - integrity sha512-50XQ5VdbWrX06mQXhy93WywSFZZGsv3EOjq+lqp6WC2t+j3mb6A9xYVdrRxafvK88vg9k9u+CT4l6D8PEatjKg== +"@typescript-eslint/visitor-keys@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e" + integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== dependencies: - "@typescript-eslint/types" "5.61.0" + "@typescript-eslint/types" "5.62.0" eslint-visitor-keys "^3.3.0" "@vitejs/plugin-react-swc@^3.3.2": version "3.3.2" - resolved "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.3.2.tgz#34a82c1728066f48a86dfecb2f15df60f89207fb" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-react-swc/-/plugin-react-swc-3.3.2.tgz#34a82c1728066f48a86dfecb2f15df60f89207fb" integrity sha512-VJFWY5sfoZerQRvJrh518h3AcQt6f/yTuWn4/TRB+dqmYU0NX1qz7qM5Wfd+gOQqUzQW4gxKqKN3KpE/P3+zrA== dependencies: "@swc/core" "^1.3.61" @@ -1484,7 +1470,7 @@ "@zondax/ledger-substrate@^0.41.1": version "0.41.1" - resolved "https://registry.npmjs.org/@zondax/ledger-substrate/-/ledger-substrate-0.41.1.tgz#6b79aceb61c042263ab1751a4cf28bb73e7cf774" + resolved "https://registry.yarnpkg.com/@zondax/ledger-substrate/-/ledger-substrate-0.41.1.tgz#6b79aceb61c042263ab1751a4cf28bb73e7cf774" integrity sha512-EcHM0HpCElkd8jI9i2ei/TenIG5rvKFynjDE1i+gCfSc5CWgdWxhcpyokK3CAiR/pm4qcLpNSA9ZZYo9wBN1uA== dependencies: "@ledgerhq/hw-transport" "^6.27.1" @@ -1497,22 +1483,22 @@ acorn-jsx@^5.3.2: version "5.3.2" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn-walk@^8.2.0: version "8.2.0" - resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== acorn@^8.8.2, acorn@^8.9.0: version "8.10.0" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== ajv@^6.10.0, ajv@^6.12.4: version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" @@ -1522,38 +1508,38 @@ ajv@^6.10.0, ajv@^6.12.4: ansi-escapes@^4.3.0: version "4.3.2" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: type-fest "^0.21.3" ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" ansi-styles@^5.0.0: version "5.2.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== anymatch@~3.1.2: version "3.1.3" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" @@ -1561,19 +1547,19 @@ anymatch@~3.1.2: argparse@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== aria-query@^5.1.3: version "5.3.0" - resolved "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== dependencies: dequal "^2.0.3" array-buffer-byte-length@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== dependencies: call-bind "^1.0.2" @@ -1581,7 +1567,7 @@ array-buffer-byte-length@^1.0.0: array-includes@^3.1.6: version "3.1.6" - resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== dependencies: call-bind "^1.0.2" @@ -1592,24 +1578,24 @@ array-includes@^3.1.6: array-union@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng== dependencies: array-uniq "^1.0.1" array-union@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== array-uniq@^1.0.1: version "1.0.3" - resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== array.prototype.flat@^1.3.1: version "1.3.1" - resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== dependencies: call-bind "^1.0.2" @@ -1619,7 +1605,7 @@ array.prototype.flat@^1.3.1: array.prototype.flatmap@^1.3.1: version "1.3.1" - resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== dependencies: call-bind "^1.0.2" @@ -1629,7 +1615,7 @@ array.prototype.flatmap@^1.3.1: array.prototype.tosorted@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz#ccf44738aa2b5ac56578ffda97c03fd3e23dd532" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz#ccf44738aa2b5ac56578ffda97c03fd3e23dd532" integrity sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ== dependencies: call-bind "^1.0.2" @@ -1640,39 +1626,39 @@ array.prototype.tosorted@^1.1.1: assertion-error@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== ast-types-flow@^0.0.7: version "0.0.7" - resolved "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag== async@^3.2.4: version "3.2.4" - resolved "https://registry.npmjs.org/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== available-typed-arrays@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== axe-core@^4.6.2: version "4.7.2" - resolved "https://registry.npmjs.org/axe-core/-/axe-core-4.7.2.tgz#040a7342b20765cb18bb50b628394c21bccc17a0" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.2.tgz#040a7342b20765cb18bb50b628394c21bccc17a0" integrity sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g== axobject-query@^3.1.1: version "3.2.1" - resolved "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz#39c378a6e3b06ca679f29138151e45b2b32da62a" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.2.1.tgz#39c378a6e3b06ca679f29138151e45b2b32da62a" integrity sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg== dependencies: dequal "^2.0.3" "babel-plugin-styled-components@>= 1.12.0": version "2.1.4" - resolved "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.4.tgz#9a1f37c7f32ef927b4b008b529feb4a2c82b1092" + resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.4.tgz#9a1f37c7f32ef927b4b008b529feb4a2c82b1092" integrity sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" @@ -1683,44 +1669,44 @@ axobject-query@^3.1.1: balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== base-x@^3.0.2: version "3.0.9" - resolved "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== dependencies: safe-buffer "^5.0.1" base-x@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz#d0e3b7753450c73f8ad2389b5c018a4af7b2224a" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-4.0.0.tgz#d0e3b7753450c73f8ad2389b5c018a4af7b2224a" integrity sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw== base64-js@^1.3.1: version "1.5.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== big-integer@^1.6.44: version "1.6.51" - resolved "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== bignumber.js@^9.1.1: version "9.1.1" - resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz#c4df7dc496bd849d4c9464344c1aa74228b4dac6" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.1.tgz#c4df7dc496bd849d4c9464344c1aa74228b4dac6" integrity sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig== binary-extensions@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -"bip32-ed25519@https://github.com/Zondax/bip32-ed25519": +"bip32-ed25519@git+https://github.com/Zondax/bip32-ed25519.git": version "0.0.4" - resolved "https://github.com/Zondax/bip32-ed25519#0949df01b5c93885339bc28116690292088f6134" + resolved "git+https://github.com/Zondax/bip32-ed25519.git#0949df01b5c93885339bc28116690292088f6134" dependencies: bn.js "^5.1.1" elliptic "^6.4.1" @@ -1728,7 +1714,7 @@ binary-extensions@^2.0.0: bip32@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/bip32/-/bip32-4.0.0.tgz#7fac3c05072188d2d355a4d6596b37188f06aa2f" + resolved "https://registry.yarnpkg.com/bip32/-/bip32-4.0.0.tgz#7fac3c05072188d2d355a4d6596b37188f06aa2f" integrity sha512-aOGy88DDlVUhspIXJN+dVEtclhIsfAUppD43V0j40cPTld3pv/0X/MlrZSZ6jowIaQQzFwP8M6rFU2z2mVYjDQ== dependencies: "@noble/hashes" "^1.2.0" @@ -1738,36 +1724,36 @@ bip32@^4.0.0: bip39@^3.0.4: version "3.1.0" - resolved "https://registry.npmjs.org/bip39/-/bip39-3.1.0.tgz#c55a418deaf48826a6ceb34ac55b3ee1577e18a3" + resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.1.0.tgz#c55a418deaf48826a6ceb34ac55b3ee1577e18a3" integrity sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A== dependencies: "@noble/hashes" "^1.2.0" blakejs@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" + resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== bn.js@^4.11.9: version "4.12.0" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== bn.js@^5.1.1, bn.js@^5.2.1: version "5.2.1" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== bplist-parser@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" + resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" integrity sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw== dependencies: big-integer "^1.6.44" brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" @@ -1775,19 +1761,19 @@ brace-expansion@^1.1.7: braces@^3.0.2, braces@~3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" brorand@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== browserslist@^4.21.9: version "4.21.9" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz#e11bdd3c313d7e2a9e87e8b4b0c7872b13897635" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.9.tgz#e11bdd3c313d7e2a9e87e8b4b0c7872b13897635" integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg== dependencies: caniuse-lite "^1.0.30001503" @@ -1797,21 +1783,21 @@ browserslist@^4.21.9: bs58@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== dependencies: base-x "^3.0.2" bs58@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz#865575b4d13c09ea2a84622df6c8cbeb54ffc279" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-5.0.0.tgz#865575b4d13c09ea2a84622df6c8cbeb54ffc279" integrity sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ== dependencies: base-x "^4.0.0" bs58check@<3.0.0: version "2.1.2" - resolved "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" + resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== dependencies: bs58 "^4.0.0" @@ -1820,7 +1806,7 @@ bs58check@<3.0.0: buffer@^6.0.3: version "6.0.3" - resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== dependencies: base64-js "^1.3.1" @@ -1828,19 +1814,19 @@ buffer@^6.0.3: bundle-name@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a" + resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a" integrity sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw== dependencies: run-applescript "^5.0.0" cac@^6.7.14: version "6.7.14" - resolved "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" + resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== dependencies: function-bind "^1.1.1" @@ -1848,34 +1834,34 @@ call-bind@^1.0.0, call-bind@^1.0.2: callsites@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camelcase@^6.2.0: version "6.3.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== camelize@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz#89b7e16884056331a35d6b5ad064332c91daa6c3" + resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.1.tgz#89b7e16884056331a35d6b5ad064332c91daa6c3" integrity sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ== caniuse-lite@^1.0.30001503: - version "1.0.30001512" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001512.tgz#7450843fb581c39f290305a83523c7a9ef0d4cb4" - integrity sha512-2S9nK0G/mE+jasCUsMPlARhRCts1ebcp2Ji8Y8PWi4NDE1iRdLCnEPHkEfeBrGC45L4isBx5ur3IQ6yTE2mRZw== + version "1.0.30001515" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz#418aefeed9d024cd3129bfae0ccc782d4cb8f12b" + integrity sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA== canvas-renderer@~2.2.0: version "2.2.1" - resolved "https://registry.npmjs.org/canvas-renderer/-/canvas-renderer-2.2.1.tgz#c1d131f78a9799aca8af9679ad0a005052b65550" + resolved "https://registry.yarnpkg.com/canvas-renderer/-/canvas-renderer-2.2.1.tgz#c1d131f78a9799aca8af9679ad0a005052b65550" integrity sha512-RrBgVL5qCEDIXpJ6NrzyRNoTnXxYarqm/cS/W6ERhUJts5UQtt/XPEosGN3rqUkZ4fjBArlnCbsISJ+KCFnIAg== dependencies: "@types/node" "*" chai@^4.3.7: version "4.3.7" - resolved "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz#ec63f6df01829088e8bf55fca839bcd464a8ec51" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.7.tgz#ec63f6df01829088e8bf55fca839bcd464a8ec51" integrity sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A== dependencies: assertion-error "^1.1.0" @@ -1888,7 +1874,7 @@ chai@^4.3.7: chalk@^2.0.0: version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" @@ -1897,7 +1883,7 @@ chalk@^2.0.0: chalk@^4.0.0, chalk@^4.1.1: version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" @@ -1905,19 +1891,19 @@ chalk@^4.0.0, chalk@^4.1.1: chart.js@^4.3.0: version "4.3.0" - resolved "https://registry.npmjs.org/chart.js/-/chart.js-4.3.0.tgz#ac363030ab3fec572850d2d872956f32a46326a1" + resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-4.3.0.tgz#ac363030ab3fec572850d2d872956f32a46326a1" integrity sha512-ynG0E79xGfMaV2xAHdbhwiPLczxnNNnasrmPEXriXsPJGjmhOBYzFVEsB65w2qMDz+CaBJJuJD0inE/ab/h36g== dependencies: "@kurkle/color" "^0.3.0" check-error@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== "chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.1: version "3.5.3" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: anymatch "~3.1.2" @@ -1932,7 +1918,7 @@ check-error@^1.0.2: cipher-base@^1.0.1: version "1.0.4" - resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== dependencies: inherits "^2.0.1" @@ -1940,12 +1926,12 @@ cipher-base@^1.0.1: classnames@^2.2.5: version "2.3.2" - resolved "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924" integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw== cliui@^8.0.1: version "8.0.1" - resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== dependencies: string-width "^4.2.0" @@ -1954,73 +1940,73 @@ cliui@^8.0.1: color-convert@^1.9.0: version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" color-name@1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@~1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== colord@^2.9.3: version "2.9.3" - resolved "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== commander@^2.18.0: version "2.20.3" - resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== commander@^8.0.0: version "8.3.0" - resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== commondir@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== concat-map@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== confusing-browser-globals@^1.0.10: version "1.0.11" - resolved "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" + resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA== convert-source-map@^1.7.0: version "1.9.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== copy-to-clipboard@^3.3.1: version "3.3.3" - resolved "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz#55ac43a1db8ae639a4bd99511c148cdd1b83a1b0" + resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz#55ac43a1db8ae639a4bd99511c148cdd1b83a1b0" integrity sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA== dependencies: toggle-selection "^1.0.6" cosmiconfig@^8.1.3: version "8.2.0" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz#f7d17c56a590856cd1e7cee98734dca272b0d8fd" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.2.0.tgz#f7d17c56a590856cd1e7cee98734dca272b0d8fd" integrity sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ== dependencies: import-fresh "^3.2.1" @@ -2030,7 +2016,7 @@ cosmiconfig@^8.1.3: create-hash@^1.1.0: version "1.2.0" - resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== dependencies: cipher-base "^1.0.1" @@ -2041,7 +2027,7 @@ create-hash@^1.1.0: cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: path-key "^3.1.0" @@ -2050,12 +2036,12 @@ cross-spawn@^7.0.2, cross-spawn@^7.0.3: css-color-keywords@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" + resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" integrity sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg== css-to-react-native@^3.0.0: version "3.2.0" - resolved "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz#cdd8099f71024e149e4f6fe17a7d46ecd55f1e32" + resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.2.0.tgz#cdd8099f71024e149e4f6fe17a7d46ecd55f1e32" integrity sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ== dependencies: camelize "^1.0.0" @@ -2064,55 +2050,55 @@ css-to-react-native@^3.0.0: csstype@^3.0.2: version "3.1.2" - resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== damerau-levenshtein@^1.0.8: version "1.0.8" - resolved "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== data-uri-to-buffer@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== date-fns@^2.29.3: version "2.30.0" - resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== dependencies: "@babel/runtime" "^7.21.0" debug@^3.2.7: version "3.2.7" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" deep-eql@^4.1.2: version "4.1.3" - resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== dependencies: type-detect "^4.0.0" deep-is@^0.1.3: version "0.1.4" - resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== default-browser-id@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz#bee7bbbef1f4e75d31f98f4d3f1556a14cea790c" + resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-3.0.0.tgz#bee7bbbef1f4e75d31f98f4d3f1556a14cea790c" integrity sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA== dependencies: bplist-parser "^0.2.0" @@ -2120,7 +2106,7 @@ default-browser-id@^3.0.0: default-browser@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz#53c9894f8810bf86696de117a6ce9085a3cbc7da" + resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-4.0.0.tgz#53c9894f8810bf86696de117a6ce9085a3cbc7da" integrity sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA== dependencies: bundle-name "^3.0.0" @@ -2130,17 +2116,17 @@ default-browser@^4.0.0: define-lazy-prop@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== define-lazy-prop@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== dependencies: has-property-descriptors "^1.0.0" @@ -2148,43 +2134,43 @@ define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: dequal@^2.0.3: version "2.0.3" - resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== diff-sequences@^29.4.3: version "29.4.3" - resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz#9314bc1fabe09267ffeca9cbafc457d8499a13f2" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.3.tgz#9314bc1fabe09267ffeca9cbafc457d8499a13f2" integrity sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA== dir-glob@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== dependencies: path-type "^4.0.0" doctrine@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== dependencies: esutils "^2.0.2" doctrine@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== dependencies: esutils "^2.0.2" electron-to-chromium@^1.4.431: - version "1.4.451" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.451.tgz#12b63ee5c82cbbc7b4ddd91e90f5a0dfc10de26e" - integrity sha512-YYbXHIBxAHe3KWvGOJOuWa6f3tgow44rBW+QAuwVp2DvGqNZeE//K2MowNdWS7XE8li5cgQDrX1LdBr41LufkA== + version "1.4.455" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.455.tgz#81fe4353ac970eb971c07088c8da8b7f6280ddc9" + integrity sha512-8tgdX0Odl24LtmLwxotpJCVjIndN559AvaOtd67u+2mo+IDsgsTF580NB+uuDCqsHw8yFg53l5+imFV9Fw3cbA== elliptic@^6.4.1: version "6.5.4" - resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== dependencies: bn.js "^4.11.9" @@ -2197,22 +2183,22 @@ elliptic@^6.4.1: email-addresses@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/email-addresses/-/email-addresses-5.0.0.tgz#7ae9e7f58eef7d5e3e2c2c2d3ea49b78dc854fa6" + resolved "https://registry.yarnpkg.com/email-addresses/-/email-addresses-5.0.0.tgz#7ae9e7f58eef7d5e3e2c2c2d3ea49b78dc854fa6" integrity sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw== emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== emoji-regex@^9.2.2: version "9.2.2" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== enhanced-resolve@^5.12.0: version "5.15.0" - resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== dependencies: graceful-fs "^4.2.4" @@ -2220,19 +2206,19 @@ enhanced-resolve@^5.12.0: entities@^4.4.0: version "4.5.0" - resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== error-ex@^1.3.1: version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" es-abstract@^1.19.0, es-abstract@^1.20.4: version "1.21.2" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== dependencies: array-buffer-byte-length "^1.0.0" @@ -2272,7 +2258,7 @@ es-abstract@^1.19.0, es-abstract@^1.20.4: es-set-tostringtag@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== dependencies: get-intrinsic "^1.1.3" @@ -2281,14 +2267,14 @@ es-set-tostringtag@^2.0.1: es-shim-unscopables@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== dependencies: has "^1.0.3" es-to-primitive@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== dependencies: is-callable "^1.1.4" @@ -2297,7 +2283,7 @@ es-to-primitive@^1.2.1: esbuild@^0.18.10: version "0.18.11" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.18.11.tgz#cbf94dc3359d57f600a0dbf281df9b1d1b4a156e" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.11.tgz#cbf94dc3359d57f600a0dbf281df9b1d1b4a156e" integrity sha512-i8u6mQF0JKJUlGR3OdFLKldJQMMs8OqM9Cc3UCi9XXziJ9WERM5bfkHaEAy0YAvPRMgqSW55W7xYn84XtEFTtA== optionalDependencies: "@esbuild/android-arm" "0.18.11" @@ -2325,22 +2311,22 @@ esbuild@^0.18.10: escalade@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== escape-string-regexp@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== eslint-config-airbnb-base@^15.0.0: version "15.0.0" - resolved "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz#6b09add90ac79c2f8d723a2580e07f3925afd236" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz#6b09add90ac79c2f8d723a2580e07f3925afd236" integrity sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig== dependencies: confusing-browser-globals "^1.0.10" @@ -2350,14 +2336,14 @@ eslint-config-airbnb-base@^15.0.0: eslint-config-airbnb-typescript@^17.0.0: version "17.0.0" - resolved "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-17.0.0.tgz#360dbcf810b26bbcf2ff716198465775f1c49a07" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-17.0.0.tgz#360dbcf810b26bbcf2ff716198465775f1c49a07" integrity sha512-elNiuzD0kPAPTXjFWg+lE24nMdHMtuxgYoD30OyMD6yrW1AhFZPAg27VX7d3tzOErw+dgJTNWfRSDqEcXb4V0g== dependencies: eslint-config-airbnb-base "^15.0.0" eslint-config-airbnb@^19.0.4: version "19.0.4" - resolved "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz#84d4c3490ad70a0ffa571138ebcdea6ab085fdc3" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz#84d4c3490ad70a0ffa571138ebcdea6ab085fdc3" integrity sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew== dependencies: eslint-config-airbnb-base "^15.0.0" @@ -2366,12 +2352,12 @@ eslint-config-airbnb@^19.0.4: eslint-config-prettier@^8.8.0: version "8.8.0" - resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== eslint-import-resolver-node@^0.3.7: version "0.3.7" - resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== dependencies: debug "^3.2.7" @@ -2380,7 +2366,7 @@ eslint-import-resolver-node@^0.3.7: eslint-import-resolver-typescript@^3.5.5: version "3.5.5" - resolved "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.5.tgz#0a9034ae7ed94b254a360fbea89187b60ea7456d" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.5.tgz#0a9034ae7ed94b254a360fbea89187b60ea7456d" integrity sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw== dependencies: debug "^4.3.4" @@ -2394,14 +2380,14 @@ eslint-import-resolver-typescript@^3.5.5: eslint-module-utils@^2.7.4: version "2.8.0" - resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== dependencies: debug "^3.2.7" eslint-plugin-import@^2.27.5: version "2.27.5" - resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== dependencies: array-includes "^3.1.6" @@ -2422,7 +2408,7 @@ eslint-plugin-import@^2.27.5: eslint-plugin-jsx-a11y@^6.7.1: version "6.7.1" - resolved "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz#fca5e02d115f48c9a597a6894d5bcec2f7a76976" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz#fca5e02d115f48c9a597a6894d5bcec2f7a76976" integrity sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA== dependencies: "@babel/runtime" "^7.20.7" @@ -2444,24 +2430,24 @@ eslint-plugin-jsx-a11y@^6.7.1: eslint-plugin-prefer-arrow-functions@^3.1.4: version "3.1.4" - resolved "https://registry.npmjs.org/eslint-plugin-prefer-arrow-functions/-/eslint-plugin-prefer-arrow-functions-3.1.4.tgz#a0761c7a0ba71461f6b2136fdf7f7cec1c82d778" + resolved "https://registry.yarnpkg.com/eslint-plugin-prefer-arrow-functions/-/eslint-plugin-prefer-arrow-functions-3.1.4.tgz#a0761c7a0ba71461f6b2136fdf7f7cec1c82d778" integrity sha512-LSO8VibqBKqzelr+L21mEIfachavCon+1SEumCJ6U8Ze2q0pntyojmomcVwd9RZBjrP+HV6k1Osz0B3Xwdq8WA== eslint-plugin-prefer-arrow@^1.2.3: version "1.2.3" - resolved "https://registry.npmjs.org/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.3.tgz#e7fbb3fa4cd84ff1015b9c51ad86550e55041041" + resolved "https://registry.yarnpkg.com/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.3.tgz#e7fbb3fa4cd84ff1015b9c51ad86550e55041041" integrity sha512-J9I5PKCOJretVuiZRGvPQxCbllxGAV/viI20JO3LYblAodofBxyMnZAJ+WGeClHgANnSJberTNoFWWjrWKBuXQ== eslint-plugin-prettier@^4.2.1: version "4.2.1" - resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== dependencies: prettier-linter-helpers "^1.0.0" eslint-plugin-react@^7.32.2: version "7.32.2" - resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz#e71f21c7c265ebce01bcbc9d0955170c55571f10" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz#e71f21c7c265ebce01bcbc9d0955170c55571f10" integrity sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg== dependencies: array-includes "^3.1.6" @@ -2482,19 +2468,19 @@ eslint-plugin-react@^7.32.2: eslint-plugin-unused-imports@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-2.0.0.tgz#d8db8c4d0cfa0637a8b51ce3fd7d1b6bc3f08520" + resolved "https://registry.yarnpkg.com/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-2.0.0.tgz#d8db8c4d0cfa0637a8b51ce3fd7d1b6bc3f08520" integrity sha512-3APeS/tQlTrFa167ThtP0Zm0vctjr4M44HMpeg1P4bK6wItarumq0Ma82xorMKdFsWpphQBlRPzw/pxiVELX1A== dependencies: eslint-rule-composer "^0.3.0" eslint-rule-composer@^0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz#79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9" + resolved "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz#79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9" integrity sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg== eslint-scope@^5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== dependencies: esrecurse "^4.3.0" @@ -2502,7 +2488,7 @@ eslint-scope@^5.1.1: eslint-scope@^7.2.0: version "7.2.0" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== dependencies: esrecurse "^4.3.0" @@ -2510,12 +2496,12 @@ eslint-scope@^7.2.0: eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: version "3.4.1" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== eslint@^8.44.0: version "8.44.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-8.44.0.tgz#51246e3889b259bbcd1d7d736a0c10add4f0e500" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.44.0.tgz#51246e3889b259bbcd1d7d736a0c10add4f0e500" integrity sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A== dependencies: "@eslint-community/eslint-utils" "^4.2.0" @@ -2560,7 +2546,7 @@ eslint@^8.44.0: espree@^9.6.0: version "9.6.0" - resolved "https://registry.npmjs.org/espree/-/espree-9.6.0.tgz#80869754b1c6560f32e3b6929194a3fe07c5b82f" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.0.tgz#80869754b1c6560f32e3b6929194a3fe07c5b82f" integrity sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A== dependencies: acorn "^8.9.0" @@ -2569,63 +2555,63 @@ espree@^9.6.0: esquery@^1.4.2: version "1.5.0" - resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== dependencies: estraverse "^5.1.0" esrecurse@^4.3.0: version "4.3.0" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" estraverse@^4.1.1: version "4.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: version "5.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== estree-walker@^2.0.1, estree-walker@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== esutils@^2.0.2: version "2.0.3" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== ethereum-blockies-base64@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/ethereum-blockies-base64/-/ethereum-blockies-base64-1.0.2.tgz#4aebca52142bf4d16a3144e6e2b59303e39ed2b3" + resolved "https://registry.yarnpkg.com/ethereum-blockies-base64/-/ethereum-blockies-base64-1.0.2.tgz#4aebca52142bf4d16a3144e6e2b59303e39ed2b3" integrity sha512-Vg2HTm7slcWNKaRhCUl/L3b4KrB8ohQXdd5Pu3OI897EcR6tVRvUqdTwAyx+dnmoDzj8e2bwBLDQ50ByFmcz6w== dependencies: pnglib "0.0.1" eventemitter3@^4.0.7: version "4.0.7" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== eventemitter3@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== events@^3.3.0: version "3.3.0" - resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== execa@^5.0.0: version "5.1.1" - resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== dependencies: cross-spawn "^7.0.3" @@ -2640,7 +2626,7 @@ execa@^5.0.0: execa@^7.1.1: version "7.1.1" - resolved "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz#3eb3c83d239488e7b409d48e8813b76bb55c9c43" + resolved "https://registry.yarnpkg.com/execa/-/execa-7.1.1.tgz#3eb3c83d239488e7b409d48e8813b76bb55c9c43" integrity sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q== dependencies: cross-spawn "^7.0.3" @@ -2655,17 +2641,17 @@ execa@^7.1.1: fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-diff@^1.1.2: version "1.3.0" - resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== fast-glob@^3.2.7, fast-glob@^3.2.9, fast-glob@^3.3.0: version "3.3.0" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz#7c40cb491e1e2ed5664749e87bfb516dbe8727c0" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.0.tgz#7c40cb491e1e2ed5664749e87bfb516dbe8727c0" integrity sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA== dependencies: "@nodelib/fs.stat" "^2.0.2" @@ -2676,24 +2662,24 @@ fast-glob@^3.2.7, fast-glob@^3.2.9, fast-glob@^3.3.0: fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-levenshtein@^2.0.6: version "2.0.6" - resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fastq@^1.6.0: version "1.15.0" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== dependencies: reusify "^1.0.4" fetch-blob@^3.1.2, fetch-blob@^3.1.4: version "3.2.0" - resolved "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" + resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== dependencies: node-domexception "^1.0.0" @@ -2701,19 +2687,19 @@ fetch-blob@^3.1.2, fetch-blob@^3.1.4: file-entry-cache@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== dependencies: flat-cache "^3.0.4" filename-reserved-regex@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" + resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" integrity sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ== filenamify@^4.3.0: version "4.3.0" - resolved "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz#62391cb58f02b09971c9d4f9d63b3cf9aba03106" + resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-4.3.0.tgz#62391cb58f02b09971c9d4f9d63b3cf9aba03106" integrity sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg== dependencies: filename-reserved-regex "^2.0.0" @@ -2722,14 +2708,14 @@ filenamify@^4.3.0: fill-range@^7.0.1: version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: to-regex-range "^5.0.1" find-cache-dir@^3.3.1: version "3.3.2" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== dependencies: commondir "^1.0.1" @@ -2738,7 +2724,7 @@ find-cache-dir@^3.3.1: find-up@^4.0.0: version "4.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: locate-path "^5.0.0" @@ -2746,7 +2732,7 @@ find-up@^4.0.0: find-up@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: locate-path "^6.0.0" @@ -2754,7 +2740,7 @@ find-up@^5.0.0: flat-cache@^3.0.4: version "3.0.4" - resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== dependencies: flatted "^3.1.0" @@ -2762,26 +2748,26 @@ flat-cache@^3.0.4: flatted@^3.1.0: version "3.2.7" - resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== for-each@^0.3.3: version "0.3.3" - resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== dependencies: is-callable "^1.1.3" formdata-polyfill@^4.0.10: version "4.0.10" - resolved "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" + resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== dependencies: fetch-blob "^3.1.2" framer-motion@^10.12.18: version "10.12.18" - resolved "https://registry.npmjs.org/framer-motion/-/framer-motion-10.12.18.tgz#92015860b6468a82e76c4739fcae81e1f6723b3f" + resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-10.12.18.tgz#92015860b6468a82e76c4739fcae81e1f6723b3f" integrity sha512-cfhiUpPbj+0eEWKjuD+5cz5cMqH71xOtMxGiS/cSGfHn2OlHIEAqFnFyzEMENw5PxWR9bMVhatzzpD6lexmHZQ== dependencies: tslib "^2.4.0" @@ -2790,7 +2776,7 @@ framer-motion@^10.12.18: fs-extra@^11.1.0: version "11.1.1" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== dependencies: graceful-fs "^4.2.0" @@ -2799,7 +2785,7 @@ fs-extra@^11.1.0: fs-extra@^8.1.0: version "8.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== dependencies: graceful-fs "^4.2.0" @@ -2808,22 +2794,22 @@ fs-extra@^8.1.0: fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@~2.3.2: version "2.3.2" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== function-bind@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== function.prototype.name@^1.1.5: version "1.1.5" - resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== dependencies: call-bind "^1.0.2" @@ -2833,27 +2819,27 @@ function.prototype.name@^1.1.5: functions-have-names@^1.2.2, functions-have-names@^1.2.3: version "1.2.3" - resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== gensync@^1.0.0-beta.2: version "1.0.0-beta.2" - resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== get-caller-file@^2.0.5: version "2.0.5" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== get-func-name@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: version "1.2.1" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== dependencies: function-bind "^1.1.1" @@ -2863,12 +2849,12 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@ get-stream@^6.0.0, get-stream@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== get-symbol-description@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== dependencies: call-bind "^1.0.2" @@ -2876,14 +2862,14 @@ get-symbol-description@^1.0.0: get-tsconfig@^4.5.0: version "4.6.2" - resolved "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.6.2.tgz#831879a5e6c2aa24fe79b60340e2233a1e0f472e" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.6.2.tgz#831879a5e6c2aa24fe79b60340e2233a1e0f472e" integrity sha512-E5XrT4CbbXcXWy+1jChlZmrmCwd5KGx502kDCXJJ7y898TtWW9FwoG5HfOLVRKmlmDGkWN2HM9Ho+/Y8F0sJDg== dependencies: resolve-pkg-maps "^1.0.0" gh-pages@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/gh-pages/-/gh-pages-5.0.0.tgz#e0893272a0e33f0453e53a3c017c33b91ddd6394" + resolved "https://registry.yarnpkg.com/gh-pages/-/gh-pages-5.0.0.tgz#e0893272a0e33f0453e53a3c017c33b91ddd6394" integrity sha512-Nqp1SjkPIB94Xw/3yYNTUL+G2dxlhjvv1zeN/4kMC1jfViTEqhtVz/Ba1zSXHuvXCN9ADNS1dN4r5/J/nZWEQQ== dependencies: async "^3.2.4" @@ -2896,21 +2882,21 @@ gh-pages@^5.0.0: glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" glob-parent@^6.0.2: version "6.0.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== dependencies: is-glob "^4.0.3" glob@^7.0.3, glob@^7.1.3: version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" @@ -2922,26 +2908,26 @@ glob@^7.0.3, glob@^7.1.3: globals@^11.1.0: version "11.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.19.0: version "13.20.0" - resolved "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== dependencies: type-fest "^0.20.2" globalthis@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== dependencies: define-properties "^1.1.3" globby@^11.1.0: version "11.1.0" - resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== dependencies: array-union "^2.1.0" @@ -2953,7 +2939,7 @@ globby@^11.1.0: globby@^13.1.3: version "13.2.2" - resolved "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz#63b90b1bf68619c2135475cbd4e71e66aa090592" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.2.2.tgz#63b90b1bf68619c2135475cbd4e71e66aa090592" integrity sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w== dependencies: dir-glob "^3.0.1" @@ -2964,7 +2950,7 @@ globby@^13.1.3: globby@^6.1.0: version "6.1.0" - resolved "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" integrity sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw== dependencies: array-union "^1.0.1" @@ -2975,75 +2961,75 @@ globby@^6.1.0: globrex@^0.1.2: version "0.1.2" - resolved "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" + resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== gopd@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== dependencies: get-intrinsic "^1.1.3" graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: version "4.2.11" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== graphemer@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-property-descriptors@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== dependencies: get-intrinsic "^1.1.1" has-proto@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== has-tostringtag@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== dependencies: has-symbols "^1.0.2" has@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" hash-base@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== dependencies: inherits "^2.0.4" @@ -3052,7 +3038,7 @@ hash-base@^3.0.0: hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: version "1.1.7" - resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== dependencies: inherits "^2.0.3" @@ -3060,7 +3046,7 @@ hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: hmac-drbg@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== dependencies: hash.js "^1.0.3" @@ -3069,31 +3055,31 @@ hmac-drbg@^1.0.1: hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.3.0: version "3.3.2" - resolved "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== dependencies: react-is "^16.7.0" html-parse-stringify@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz#dfc1017347ce9f77c8141a507f233040c59c55d2" + resolved "https://registry.yarnpkg.com/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz#dfc1017347ce9f77c8141a507f233040c59c55d2" integrity sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg== dependencies: void-elements "3.1.0" human-signals@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== human-signals@^4.3.0: version "4.3.1" - resolved "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== i18next-browser-languagedetector@^7.1.0: version "7.1.0" - resolved "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.1.0.tgz#01876fac51f86b78975e79b48ccb62e2313a2d7d" + resolved "https://registry.yarnpkg.com/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.1.0.tgz#01876fac51f86b78975e79b48ccb62e2313a2d7d" integrity sha512-cr2k7u1XJJ4HTOjM9GyOMtbOA47RtUoWRAtt52z43r3AoMs2StYKyjS3URPhzHaf+mn10hY9dZWamga5WPQjhA== dependencies: "@babel/runtime" "^7.19.4" @@ -3107,22 +3093,22 @@ i18next@^23.2.8: ieee754@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== ignore@^5.2.0, ignore@^5.2.4: version "5.2.4" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== immutable@^4.0.0: version "4.3.0" - resolved "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz#eb1738f14ffb39fd068b1dbe1296117484dd34be" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.0.tgz#eb1738f14ffb39fd068b1dbe1296117484dd34be" integrity sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg== import-fresh@^3.0.0, import-fresh@^3.2.1: version "3.3.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" @@ -3130,12 +3116,12 @@ import-fresh@^3.0.0, import-fresh@^3.2.1: imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" @@ -3143,12 +3129,12 @@ inflight@^1.0.4: inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== internal-slot@^1.0.3, internal-slot@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== dependencies: get-intrinsic "^1.2.0" @@ -3157,7 +3143,7 @@ internal-slot@^1.0.3, internal-slot@^1.0.5: is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== dependencies: call-bind "^1.0.2" @@ -3166,26 +3152,26 @@ is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: is-arrayish@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-bigint@^1.0.1: version "1.0.4" - resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== dependencies: has-bigints "^1.0.1" is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" is-boolean-object@^1.1.0: version "1.1.2" - resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== dependencies: call-bind "^1.0.2" @@ -3193,82 +3179,82 @@ is-boolean-object@^1.1.0: is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: version "1.2.7" - resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== is-core-module@^2.11.0, is-core-module@^2.9.0: version "2.12.1" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== dependencies: has "^1.0.3" is-date-object@^1.0.1: version "1.0.5" - resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== dependencies: has-tostringtag "^1.0.0" is-docker@^2.0.0, is-docker@^2.1.1: version "2.2.1" - resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== is-docker@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" is-inside-container@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" + resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== dependencies: is-docker "^3.0.0" is-negative-zero@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== is-number-object@^1.0.4: version "1.0.7" - resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== dependencies: has-tostringtag "^1.0.0" is-number@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-path-inside@^3.0.3: version "3.0.3" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== is-regex@^1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== dependencies: call-bind "^1.0.2" @@ -3276,38 +3262,38 @@ is-regex@^1.1.4: is-shared-array-buffer@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== dependencies: call-bind "^1.0.2" is-stream@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== is-stream@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" - resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== dependencies: has-tostringtag "^1.0.0" is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.4" - resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== dependencies: has-symbols "^1.0.2" is-typed-array@^1.1.10, is-typed-array@^1.1.9: version "1.1.10" - resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== dependencies: available-typed-arrays "^1.0.5" @@ -3318,94 +3304,94 @@ is-typed-array@^1.1.10, is-typed-array@^1.1.9: is-weakref@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== dependencies: call-bind "^1.0.2" is-wsl@^2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== dependencies: is-docker "^2.0.0" isexe@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== jdenticon@3.2.0: version "3.2.0" - resolved "https://registry.npmjs.org/jdenticon/-/jdenticon-3.2.0.tgz#b5b9ef413cb66f70c600d6e69a764c977f248a46" + resolved "https://registry.yarnpkg.com/jdenticon/-/jdenticon-3.2.0.tgz#b5b9ef413cb66f70c600d6e69a764c977f248a46" integrity sha512-z6Iq3fTODUMSOiR2nNYrqigS6Y0GvdXfyQWrUby7htDHvX7GNEwaWR4hcaL+FmhEgBe08Xkup/BKxXQhDJByPA== dependencies: canvas-renderer "~2.2.0" "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" jsesc@^2.5.1: version "2.5.2" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== json-parse-even-better-errors@^2.3.0: version "2.3.1" - resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json-stringify-safe@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== json5@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== dependencies: minimist "^1.2.0" json5@^2.2.2: version "2.2.3" - resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== jsonc-parser@^3.2.0: version "3.2.0" - resolved "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== jsonfile@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== optionalDependencies: graceful-fs "^4.1.6" jsonfile@^6.0.1: version "6.1.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== dependencies: universalify "^2.0.0" @@ -3414,12 +3400,12 @@ jsonfile@^6.0.1: jsqr@^1.2.0: version "1.4.0" - resolved "https://registry.npmjs.org/jsqr/-/jsqr-1.4.0.tgz#8efb8d0a7cc6863cb6d95116b9069123ce9eb2d1" + resolved "https://registry.yarnpkg.com/jsqr/-/jsqr-1.4.0.tgz#8efb8d0a7cc6863cb6d95116b9069123ce9eb2d1" integrity sha512-dxLob7q65Xg2DvstYkRpkYtmKm2sPJ9oFhrhmudT1dZvNFFTlroai3AWSpLey/w5vMcLBXRgOJsbXpdN9HzU/A== "jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.3: version "3.3.4" - resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.4.tgz#b896535fed5b867650acce5a9bd4135ffc7b3bf9" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.4.tgz#b896535fed5b867650acce5a9bd4135ffc7b3bf9" integrity sha512-fX2TVdCViod6HwKEtSWGHs57oFhVfCMwieb9PuRDgjDPh5XeqJiHFFFJCHxU5cnTc3Bu/GRL+kPiFmw8XWOfKw== dependencies: array-includes "^3.1.6" @@ -3429,19 +3415,19 @@ jsqr@^1.2.0: language-subtag-registry@~0.3.2: version "0.3.22" - resolved "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d" + resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d" integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w== language-tags@=1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" integrity sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ== dependencies: language-subtag-registry "~0.3.2" levn@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: prelude-ls "^1.2.1" @@ -3449,12 +3435,12 @@ levn@^0.4.1: lines-and-columns@^1.1.6: version "1.2.4" - resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== lit-element@^3.3.0: version "3.3.2" - resolved "https://registry.npmjs.org/lit-element/-/lit-element-3.3.2.tgz#9913bf220b85065f0e5f1bb8878cc44f36b50cfa" + resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-3.3.2.tgz#9913bf220b85065f0e5f1bb8878cc44f36b50cfa" integrity sha512-xXAeVWKGr4/njq0rGC9dethMnYCq5hpKYrgQZYTzawt9YQhMiXfD+T1RgrdY3NamOxwq2aXlb0vOI6e29CKgVQ== dependencies: "@lit-labs/ssr-dom-shim" "^1.1.0" @@ -3463,14 +3449,14 @@ lit-element@^3.3.0: lit-html@^2.7.0: version "2.7.5" - resolved "https://registry.npmjs.org/lit-html/-/lit-html-2.7.5.tgz#0c1b9d381abe20c01475ae53ea4b07bf4c923eb8" + resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-2.7.5.tgz#0c1b9d381abe20c01475ae53ea4b07bf4c923eb8" integrity sha512-YqUzpisJodwKIlbMFCtyrp58oLloKGnnPLMJ1t23cbfIJjg/H9pvLWK4XS69YeubK5HUs1UE4ys9w5dP1zg6IA== dependencies: "@types/trusted-types" "^2.0.2" lit@^2.7.5: version "2.7.6" - resolved "https://registry.npmjs.org/lit/-/lit-2.7.6.tgz#810007b876ed43e0c70124de91831921598b1665" + resolved "https://registry.yarnpkg.com/lit/-/lit-2.7.6.tgz#810007b876ed43e0c70124de91831921598b1665" integrity sha512-1amFHA7t4VaaDe+vdQejSVBklwtH9svGoG6/dZi9JhxtJBBlqY5D1RV7iLUYY0trCqQc4NfhYYZilZiVHt7Hxg== dependencies: "@lit/reactive-element" "^1.6.0" @@ -3479,72 +3465,72 @@ lit@^2.7.5: local-pkg@^0.4.3: version "0.4.3" - resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963" + resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963" integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g== locate-path@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== dependencies: p-locate "^4.1.0" locate-path@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: p-locate "^5.0.0" lodash.debounce@^4.0.8: version "4.0.8" - resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== lodash.merge@^4.6.2: version "4.6.2" - resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== lodash.pick@^4.4.0: version "4.4.0" - resolved "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" integrity sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q== lodash.throttle@^4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" + resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ== lodash@^4.17.21: version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== dependencies: js-tokens "^3.0.0 || ^4.0.0" loupe@^2.3.1, loupe@^2.3.6: version "2.3.6" - resolved "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz#76e4af498103c532d1ecc9be102036a21f787b53" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.6.tgz#76e4af498103c532d1ecc9be102036a21f787b53" integrity sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA== dependencies: get-func-name "^2.0.0" lru-cache@^5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: yallist "^3.0.2" lru-cache@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== dependencies: yallist "^4.0.0" @@ -3558,14 +3544,14 @@ magic-string@^0.30.1: make-dir@^3.0.2: version "3.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" md5.js@^1.3.4: version "1.3.5" - resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== dependencies: hash-base "^3.0.0" @@ -3574,17 +3560,17 @@ md5.js@^1.3.4: merge-stream@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== micromatch@^4.0.4: version "4.0.5" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: braces "^3.0.2" @@ -3592,39 +3578,39 @@ micromatch@^4.0.4: mimic-fn@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== mimic-fn@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== minimalistic-crypto-utils@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" minimist@^1.2.0, minimist@^1.2.6: version "1.2.8" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== mlly@^1.2.0, mlly@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/mlly/-/mlly-1.4.0.tgz#830c10d63f1f97bd8785377b24dc2a15d972832b" + resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.4.0.tgz#830c10d63f1f97bd8785377b24dc2a15d972832b" integrity sha512-ua8PAThnTwpprIaU47EPeZ/bPUVp2QYBbWMphUQpVdBI3Lgqzm5KZQ45Agm3YJedHXaIHl6pBGabaLSUPPSptg== dependencies: acorn "^8.9.0" @@ -3634,37 +3620,37 @@ mlly@^1.2.0, mlly@^1.4.0: mock-socket@^9.2.1: version "9.2.1" - resolved "https://registry.npmjs.org/mock-socket/-/mock-socket-9.2.1.tgz#cc9c0810aa4d0afe02d721dcb2b7e657c00e2282" + resolved "https://registry.yarnpkg.com/mock-socket/-/mock-socket-9.2.1.tgz#cc9c0810aa4d0afe02d721dcb2b7e657c00e2282" integrity sha512-aw9F9T9G2zpGipLLhSNh6ZpgUyUl4frcVmRN08uE1NWPWg43Wx6+sGPDbQ7E5iFZZDJW5b5bypMeAEHqTbIFag== ms@2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== ms@^2.1.1: version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== nanoid@^3.3.6: version "3.3.6" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== natural-compare-lite@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" + resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== natural-compare@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== nock@^13.3.1: version "13.3.1" - resolved "https://registry.npmjs.org/nock/-/nock-13.3.1.tgz#f22d4d661f7a05ebd9368edae1b5dc0a62d758fc" + resolved "https://registry.yarnpkg.com/nock/-/nock-13.3.1.tgz#f22d4d661f7a05ebd9368edae1b5dc0a62d758fc" integrity sha512-vHnopocZuI93p2ccivFyGuUfzjq2fxNyNurp7816mlT5V5HF4SzXu8lvLrVzBbNqzs+ODooZ6OksuSUNM7Njkw== dependencies: debug "^4.1.0" @@ -3674,12 +3660,12 @@ nock@^13.3.1: node-domexception@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== node-fetch@^3.3.1: version "3.3.1" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz#b3eea7b54b3a48020e46f4f88b9c5a7430d20b2e" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.1.tgz#b3eea7b54b3a48020e46f4f88b9c5a7430d20b2e" integrity sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow== dependencies: data-uri-to-buffer "^4.0.0" @@ -3687,47 +3673,47 @@ node-fetch@^3.3.1: formdata-polyfill "^4.0.10" node-releases@^2.0.12: - version "2.0.12" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039" - integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ== + version "2.0.13" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" + integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== npm-run-path@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: path-key "^3.0.0" npm-run-path@^5.1.0: version "5.1.0" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== dependencies: path-key "^4.0.0" object-assign@^4.0.1, object-assign@^4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object-inspect@^1.12.3, object-inspect@^1.9.0: version "1.12.3" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== object-keys@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object.assign@^4.1.2, object.assign@^4.1.4: version "4.1.4" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== dependencies: call-bind "^1.0.2" @@ -3737,7 +3723,7 @@ object.assign@^4.1.2, object.assign@^4.1.4: object.entries@^1.1.5, object.entries@^1.1.6: version "1.1.6" - resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz#9737d0e5b8291edd340a3e3264bb8a3b00d5fa23" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.6.tgz#9737d0e5b8291edd340a3e3264bb8a3b00d5fa23" integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w== dependencies: call-bind "^1.0.2" @@ -3746,7 +3732,7 @@ object.entries@^1.1.5, object.entries@^1.1.6: object.fromentries@^2.0.6: version "2.0.6" - resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73" integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg== dependencies: call-bind "^1.0.2" @@ -3755,7 +3741,7 @@ object.fromentries@^2.0.6: object.hasown@^1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92" + resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92" integrity sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw== dependencies: define-properties "^1.1.4" @@ -3763,7 +3749,7 @@ object.hasown@^1.1.2: object.values@^1.1.6: version "1.1.6" - resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== dependencies: call-bind "^1.0.2" @@ -3772,28 +3758,28 @@ object.values@^1.1.6: once@^1.3.0: version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" onetime@^5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" onetime@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== dependencies: mimic-fn "^4.0.0" open@^8.4.0: version "8.4.2" - resolved "https://registry.npmjs.org/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== dependencies: define-lazy-prop "^2.0.0" @@ -3802,7 +3788,7 @@ open@^8.4.0: open@^9.1.0: version "9.1.0" - resolved "https://registry.npmjs.org/open/-/open-9.1.0.tgz#684934359c90ad25742f5a26151970ff8c6c80b6" + resolved "https://registry.yarnpkg.com/open/-/open-9.1.0.tgz#684934359c90ad25742f5a26151970ff8c6c80b6" integrity sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg== dependencies: default-browser "^4.0.0" @@ -3812,7 +3798,7 @@ open@^9.1.0: optionator@^0.9.3: version "0.9.3" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== dependencies: "@aashutoshrathi/word-wrap" "^1.2.3" @@ -3824,59 +3810,59 @@ optionator@^0.9.3: p-limit@^2.2.0: version "2.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" p-limit@^3.0.2: version "3.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" p-limit@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== dependencies: yocto-queue "^1.0.0" p-locate@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== dependencies: p-limit "^2.2.0" p-locate@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: p-limit "^3.0.2" p-try@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== pako@^2.0.4: version "2.1.0" - resolved "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" + resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" parse-json@^5.0.0: version "5.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== dependencies: "@babel/code-frame" "^7.0.0" @@ -3886,81 +3872,81 @@ parse-json@^5.0.0: path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-key@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-type@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== pathe@^1.1.0, pathe@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz#1dd31d382b974ba69809adc9a7a347e65d84829a" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.1.tgz#1dd31d382b974ba69809adc9a7a347e65d84829a" integrity sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q== pathval@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== picocolors@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.3.1: version "2.3.1" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== pify@^2.0.0: version "2.3.0" - resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== pinkie-promise@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" - resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== pkg-dir@^4.1.0: version "4.2.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== dependencies: find-up "^4.0.0" pkg-types@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz#988b42ab19254c01614d13f4f65a2cfc7880f868" + resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.0.3.tgz#988b42ab19254c01614d13f4f65a2cfc7880f868" integrity sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A== dependencies: jsonc-parser "^3.2.0" @@ -3969,17 +3955,17 @@ pkg-types@^1.0.3: pnglib@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/pnglib/-/pnglib-0.0.1.tgz#f9ab6f9c688f4a9d579ad8be28878a716e30c096" + resolved "https://registry.yarnpkg.com/pnglib/-/pnglib-0.0.1.tgz#f9ab6f9c688f4a9d579ad8be28878a716e30c096" integrity sha512-95ChzOoYLOPIyVmL+Y6X+abKGXUJlvOVLkB1QQkyXl7Uczc6FElUy/x01NS7r2GX6GRezloO/ecCX9h4U9KadA== postcss-value-parser@^4.0.2: version "4.2.0" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== postcss@^8.4.24: version "8.4.25" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.25.tgz#4a133f5e379eda7f61e906c3b1aaa9b81292726f" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.25.tgz#4a133f5e379eda7f61e906c3b1aaa9b81292726f" integrity sha512-7taJ/8t2av0Z+sQEvNzCkpDynl0tX3uJMCODi6nT3PfASC7dYCWV9aQ+uiCf+KBD4SEFcu+GvJdGdwzQ6OSjCw== dependencies: nanoid "^3.3.6" @@ -3988,29 +3974,29 @@ postcss@^8.4.24: prelude-ls@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prettier-linter-helpers@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== dependencies: fast-diff "^1.1.2" prettier-plugin-organize-imports@^3.2.2: version "3.2.2" - resolved "https://registry.npmjs.org/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-3.2.2.tgz#91993365e017daa5d0d28d8183179834224d8dd1" + resolved "https://registry.yarnpkg.com/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-3.2.2.tgz#91993365e017daa5d0d28d8183179834224d8dd1" integrity sha512-e97lE6odGSiHonHJMTYC0q0iLXQyw0u5z/PJpvP/3vRy6/Zi9kLBwFAbEGjDzIowpjQv8b+J04PDamoUSQbzGA== prettier@2.8.8: version "2.8.8" - resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== pretty-format@^29.5.0: version "29.6.1" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.1.tgz#ec838c288850b7c4f9090b867c2d4f4edbfb0f3e" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.6.1.tgz#ec838c288850b7c4f9090b867c2d4f4edbfb0f3e" integrity sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog== dependencies: "@jest/schemas" "^29.6.0" @@ -4019,7 +4005,7 @@ pretty-format@^29.5.0: prop-types@^15.7.2, prop-types@^15.8.1: version "15.8.1" - resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== dependencies: loose-envify "^1.4.0" @@ -4028,27 +4014,27 @@ prop-types@^15.7.2, prop-types@^15.8.1: propagate@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz#40cdedab18085c792334e64f0ac17256d38f9a45" + resolved "https://registry.yarnpkg.com/propagate/-/propagate-2.0.1.tgz#40cdedab18085c792334e64f0ac17256d38f9a45" integrity sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag== punycode@^2.1.0: version "2.3.0" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== -qrcode-generator@1.4.4, qrcode-generator@^1.4.4: +qrcode-generator@1.4.4: version "1.4.4" - resolved "https://registry.npmjs.org/qrcode-generator/-/qrcode-generator-1.4.4.tgz#63f771224854759329a99048806a53ed278740e7" + resolved "https://registry.yarnpkg.com/qrcode-generator/-/qrcode-generator-1.4.4.tgz#63f771224854759329a99048806a53ed278740e7" integrity sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw== queue-microtask@^1.2.2: version "1.2.3" - resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== rc-slider@^10.2.1: version "10.2.1" - resolved "https://registry.npmjs.org/rc-slider/-/rc-slider-10.2.1.tgz#9b571d19f740adcacdde271f44901a47717fd8da" + resolved "https://registry.yarnpkg.com/rc-slider/-/rc-slider-10.2.1.tgz#9b571d19f740adcacdde271f44901a47717fd8da" integrity sha512-l355C/65iV4UFp7mXq5xBTNX2/tF2g74VWiTVlTpNp+6vjE/xaHHNiQq5Af+Uu28uUiqCuH/QXs5HfADL9KJ/A== dependencies: "@babel/runtime" "^7.10.1" @@ -4057,7 +4043,7 @@ rc-slider@^10.2.1: rc-util@^5.27.0: version "5.34.1" - resolved "https://registry.npmjs.org/rc-util/-/rc-util-5.34.1.tgz#0becf411d8f09bdb0f1b61322964f27efeeba642" + resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-5.34.1.tgz#0becf411d8f09bdb0f1b61322964f27efeeba642" integrity sha512-SqiUT8Ssgh5C+hu4y887xwCrMNcxLm6ScOo8AFlWYYF3z9uNNiPpwwSjvicqOlWd79rNw1g44rnP7tz9MrO1ZQ== dependencies: "@babel/runtime" "^7.18.3" @@ -4065,12 +4051,12 @@ rc-util@^5.27.0: react-chartjs-2@^5.2.0: version "5.2.0" - resolved "https://registry.npmjs.org/react-chartjs-2/-/react-chartjs-2-5.2.0.tgz#43c1e3549071c00a1a083ecbd26c1ad34d385f5d" + resolved "https://registry.yarnpkg.com/react-chartjs-2/-/react-chartjs-2-5.2.0.tgz#43c1e3549071c00a1a083ecbd26c1ad34d385f5d" integrity sha512-98iN5aguJyVSxp5U3CblRLH67J8gkfyGNbiK3c+l1QI/G4irHMPQw44aEPmjVag+YKTyQ260NcF82GTQ3bdscA== react-copy-to-clipboard@^5.1.0: version "5.1.0" - resolved "https://registry.npmjs.org/react-copy-to-clipboard/-/react-copy-to-clipboard-5.1.0.tgz#09aae5ec4c62750ccb2e6421a58725eabc41255c" + resolved "https://registry.yarnpkg.com/react-copy-to-clipboard/-/react-copy-to-clipboard-5.1.0.tgz#09aae5ec4c62750ccb2e6421a58725eabc41255c" integrity sha512-k61RsNgAayIJNoy9yDsYzDe/yAZAzEbEgcz3DZMhF686LEyukcE1hzurxe85JandPUG+yTfGVFzuEw3xt8WP/A== dependencies: copy-to-clipboard "^3.3.1" @@ -4078,7 +4064,7 @@ react-copy-to-clipboard@^5.1.0: react-dom@^18.2.0: version "18.2.0" - resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== dependencies: loose-envify "^1.1.0" @@ -4086,19 +4072,19 @@ react-dom@^18.2.0: react-error-boundary@^4.0.10: version "4.0.10" - resolved "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-4.0.10.tgz#975cc298e93ab7760d1460b7ea5a7855621e355a" + resolved "https://registry.yarnpkg.com/react-error-boundary/-/react-error-boundary-4.0.10.tgz#975cc298e93ab7760d1460b7ea5a7855621e355a" integrity sha512-pvVKdi77j2OoPHo+p3rorgE43OjDWiqFkaqkJz8sJKK6uf/u8xtzuaVfj5qJ2JnDLIgF1De3zY5AJDijp+LVPA== dependencies: "@babel/runtime" "^7.12.5" react-fast-compare@^3.1.1: version "3.2.2" - resolved "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz#929a97a532304ce9fee4bcae44234f1ce2c21d49" + resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.2.tgz#929a97a532304ce9fee4bcae44234f1ce2c21d49" integrity sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ== react-helmet@^6.1.0: version "6.1.0" - resolved "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz#a750d5165cb13cf213e44747502652e794468726" + resolved "https://registry.yarnpkg.com/react-helmet/-/react-helmet-6.1.0.tgz#a750d5165cb13cf213e44747502652e794468726" integrity sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw== dependencies: object-assign "^4.1.1" @@ -4107,26 +4093,26 @@ react-helmet@^6.1.0: react-side-effect "^2.1.0" react-i18next@^13.0.1: - version "13.0.1" - resolved "https://registry.npmjs.org/react-i18next/-/react-i18next-13.0.1.tgz#4d047d2d63d9616f7f5fd4ca88b1cc449cc15290" - integrity sha512-gMO6N2GfSfuH7xlHSsZ/mZf+Py9bLm/+EDKIn5fNTuDTjcCcwmMU5UEuGCDk5mdfivbo7ySyYXBN7B9tbGUxiA== + version "13.0.2" + resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-13.0.2.tgz#1708a9bdabc1fe1dd4a8534f4c3a80ab784b01e9" + integrity sha512-NEVxC32v0oR4egwYM0QM0WE93AiJG5r0NTXTL8mhQfAhsMfDS2fSO6jpluyfsfypP988KzUQrAXncspcJ7+GHA== dependencies: "@babel/runtime" "^7.22.5" html-parse-stringify "^3.0.1" react-is@^16.12.0, react-is@^16.13.1, react-is@^16.7.0: version "16.13.1" - resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== react-is@^18.0.0: version "18.2.0" - resolved "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== react-qr-reader@^2.2.1: version "2.2.1" - resolved "https://registry.npmjs.org/react-qr-reader/-/react-qr-reader-2.2.1.tgz#dc89046d1c1a1da837a683dd970de5926817d55b" + resolved "https://registry.yarnpkg.com/react-qr-reader/-/react-qr-reader-2.2.1.tgz#dc89046d1c1a1da837a683dd970de5926817d55b" integrity sha512-EL5JEj53u2yAOgtpAKAVBzD/SiKWn0Bl7AZy6ZrSf1lub7xHwtaXe6XSx36Wbhl1VMGmvmrwYMRwO1aSCT2fwA== dependencies: jsqr "^1.2.0" @@ -4135,7 +4121,7 @@ react-qr-reader@^2.2.1: react-router-dom@^6.14.1: version "6.14.1" - resolved "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.14.1.tgz#0ad7ba7abdf75baa61169d49f096f0494907a36f" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.14.1.tgz#0ad7ba7abdf75baa61169d49f096f0494907a36f" integrity sha512-ssF6M5UkQjHK70fgukCJyjlda0Dgono2QGwqGvuk7D+EDGHdacEN3Yke2LTMjkrpHuFwBfDFsEjGVXBDmL+bWw== dependencies: "@remix-run/router" "1.7.1" @@ -4143,14 +4129,14 @@ react-router-dom@^6.14.1: react-router@6.14.1: version "6.14.1" - resolved "https://registry.npmjs.org/react-router/-/react-router-6.14.1.tgz#5e82bcdabf21add859dc04b1859f91066b3a5810" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.14.1.tgz#5e82bcdabf21add859dc04b1859f91066b3a5810" integrity sha512-U4PfgvG55LdvbQjg5Y9QRWyVxIdO1LlpYT7x+tMAxd9/vmiPuJhIwdxZuIQLN/9e3O4KFDHYfR9gzGeYMasW8g== dependencies: "@remix-run/router" "1.7.1" react-scroll@^1.8.9: version "1.8.9" - resolved "https://registry.npmjs.org/react-scroll/-/react-scroll-1.8.9.tgz#96f8a82f882b187970c2338759225c7e619d915b" + resolved "https://registry.yarnpkg.com/react-scroll/-/react-scroll-1.8.9.tgz#96f8a82f882b187970c2338759225c7e619d915b" integrity sha512-9m7ztraiX/l6L7erzYAD3fhnveNckei6/NkWfqwN2e0FRdoE2W6Pk4oi2Nah7mWpPCPAeIgegfaqZACTimPOwg== dependencies: lodash.throttle "^4.1.1" @@ -4158,19 +4144,19 @@ react-scroll@^1.8.9: react-side-effect@^2.1.0: version "2.1.2" - resolved "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.2.tgz#dc6345b9e8f9906dc2eeb68700b615e0b4fe752a" + resolved "https://registry.yarnpkg.com/react-side-effect/-/react-side-effect-2.1.2.tgz#dc6345b9e8f9906dc2eeb68700b615e0b4fe752a" integrity sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw== react@^18.2.0: version "18.2.0" - resolved "https://registry.npmjs.org/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" + resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== dependencies: loose-envify "^1.1.0" readable-stream@^3.6.0: version "3.6.2" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== dependencies: inherits "^2.0.3" @@ -4179,19 +4165,19 @@ readable-stream@^3.6.0: readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" regenerator-runtime@^0.13.11: version "0.13.11" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== regexp.prototype.flags@^1.4.3: version "1.5.0" - resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== dependencies: call-bind "^1.0.2" @@ -4200,22 +4186,22 @@ regexp.prototype.flags@^1.4.3: require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== resolve-from@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve-pkg-maps@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" + resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== resolve@^1.22.1: version "1.22.2" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== dependencies: is-core-module "^2.11.0" @@ -4224,7 +4210,7 @@ resolve@^1.22.1: resolve@^2.0.0-next.4: version "2.0.0-next.4" - resolved "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== dependencies: is-core-module "^2.9.0" @@ -4233,19 +4219,19 @@ resolve@^2.0.0-next.4: reusify@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== rimraf@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" ripemd160@^2.0.1: version "2.0.2" - resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== dependencies: hash-base "^3.0.0" @@ -4253,7 +4239,7 @@ ripemd160@^2.0.1: rollup-plugin-visualizer@^5.9.0: version "5.9.2" - resolved "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.9.2.tgz#f1aa2d9b1be8ebd6869223c742324897464d8891" + resolved "https://registry.yarnpkg.com/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.9.2.tgz#f1aa2d9b1be8ebd6869223c742324897464d8891" integrity sha512-waHktD5mlWrYFrhOLbti4YgQCn1uR24nYsNuXxg7LkPH8KdTXVWR9DNY1WU0QqokyMixVXJS4J04HNrVTMP01A== dependencies: open "^8.4.0" @@ -4270,54 +4256,54 @@ rollup@^2.77.2: rollup@^3.25.2: version "3.26.2" - resolved "https://registry.npmjs.org/rollup/-/rollup-3.26.2.tgz#2e76a37606cb523fc9fef43e6f59c93f86d95e7c" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.26.2.tgz#2e76a37606cb523fc9fef43e6f59c93f86d95e7c" integrity sha512-6umBIGVz93er97pMgQO08LuH3m6PUb3jlDUUGFsNJB6VgTCUaDFpupf5JfU30529m/UKOgmiX+uY6Sx8cOYpLA== optionalDependencies: fsevents "~2.3.2" rtcpeerconnection-shim@^1.2.15: version "1.2.15" - resolved "https://registry.npmjs.org/rtcpeerconnection-shim/-/rtcpeerconnection-shim-1.2.15.tgz#e7cc189a81b435324c4949aa3dfb51888684b243" + resolved "https://registry.yarnpkg.com/rtcpeerconnection-shim/-/rtcpeerconnection-shim-1.2.15.tgz#e7cc189a81b435324c4949aa3dfb51888684b243" integrity sha512-C6DxhXt7bssQ1nHb154lqeL0SXz5Dx4RczXZu2Aa/L1NJFnEVDxFwCBo3fqtuljhHIGceg5JKBV4XJ0gW5JKyw== dependencies: sdp "^2.6.0" run-applescript@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c" + resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c" integrity sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg== dependencies: execa "^5.0.0" run-parallel@^1.1.9: version "1.2.0" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: queue-microtask "^1.2.2" rxjs@6: version "6.6.7" - resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== dependencies: tslib "^1.9.0" rxjs@^7.8.1: version "7.8.1" - resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== dependencies: tslib "^2.1.0" safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-regex-test@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== dependencies: call-bind "^1.0.2" @@ -4326,7 +4312,7 @@ safe-regex-test@^1.0.0: sass@^1.63.6: version "1.63.6" - resolved "https://registry.npmjs.org/sass/-/sass-1.63.6.tgz#481610e612902e0c31c46b46cf2dad66943283ea" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.63.6.tgz#481610e612902e0c31c46b46cf2dad66943283ea" integrity sha512-MJuxGMHzaOW7ipp+1KdELtqKbfAWbH7OLIdoSMnVe3EXPMTmxTmlaZDCTsgIpPCs3w99lLo9/zDKkOrJuT5byw== dependencies: chokidar ">=3.0.0 <4.0.0" @@ -4335,31 +4321,31 @@ sass@^1.63.6: scheduler@^0.23.0: version "0.23.0" - resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== dependencies: loose-envify "^1.1.0" sdp@^2.12.0, sdp@^2.6.0: version "2.12.0" - resolved "https://registry.npmjs.org/sdp/-/sdp-2.12.0.tgz#338a106af7560c86e4523f858349680350d53b22" + resolved "https://registry.yarnpkg.com/sdp/-/sdp-2.12.0.tgz#338a106af7560c86e4523f858349680350d53b22" integrity sha512-jhXqQAQVM+8Xj5EjJGVweuEzgtGWb3tmEEpl3CLP3cStInSbVHSg0QWOGQzNq8pSID4JkpeV2mPqlMDLrm0/Vw== semver@^6.0.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.5.0: - version "7.5.3" - resolved "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz#161ce8c2c6b4b3bdca6caadc9fa3317a4c4fe88e" - integrity sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ== + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: lru-cache "^6.0.0" sha.js@^2.4.0: version "2.4.11" - resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== dependencies: inherits "^2.0.1" @@ -4367,24 +4353,24 @@ sha.js@^2.4.0: shallowequal@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== side-channel@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== dependencies: call-bind "^1.0.0" @@ -4393,67 +4379,67 @@ side-channel@^1.0.4: siginfo@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" + resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== slash@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== slash@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" + resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== +smoldot@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/smoldot/-/smoldot-1.0.11.tgz#cd3fa68be0c51bd4d312772d4e9b8835d05d759d" + integrity sha512-sDp8oo6RWFPId59nuNKxKzBP9wu0czfFDW7WHMqxwopo12ffpijOo3aTL1PVcNFVo6lZhXxOKFCudhQCfhrZ7w== + dependencies: + ws "^8.8.1" + smoldot@1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/smoldot/-/smoldot-1.0.4.tgz#e4c38cedad68d699a11b5b9ce72bb75c891bfd98" + resolved "https://registry.yarnpkg.com/smoldot/-/smoldot-1.0.4.tgz#e4c38cedad68d699a11b5b9ce72bb75c891bfd98" integrity sha512-N3TazI1C4GGrseFH/piWyZCCCRJTRx2QhDfrUKRT4SzILlW5m8ayZ3QTKICcz1C/536T9cbHHJyP7afxI6Mi1A== dependencies: pako "^2.0.4" ws "^8.8.1" -smoldot@1.0.9: - version "1.0.9" - resolved "https://registry.npmjs.org/smoldot/-/smoldot-1.0.9.tgz#522fb9c911a2cdec172799e822499de6fc9a2ace" - integrity sha512-Lj2AGLqe0GmisZpYc2kAjsN9yekqCbigFgrc8nS+u6CFc32FwyhJF89mg34NkWkGtby8eVAVj1TqEr109J+Whg== - dependencies: - ws "^8.8.1" - "source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== source-map@^0.7.4: version "0.7.4" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== stackback@0.0.2: version "0.0.2" - resolved "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b" + resolved "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b" integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw== std-env@^3.3.3: version "3.3.3" - resolved "https://registry.npmjs.org/std-env/-/std-env-3.3.3.tgz#a54f06eb245fdcfef53d56f3c0251f1d5c3d01fe" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.3.3.tgz#a54f06eb245fdcfef53d56f3c0251f1d5c3d01fe" integrity sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg== store@^2.0.12: version "2.0.12" - resolved "https://registry.npmjs.org/store/-/store-2.0.12.tgz#8c534e2a0b831f72b75fc5f1119857c44ef5d593" + resolved "https://registry.yarnpkg.com/store/-/store-2.0.12.tgz#8c534e2a0b831f72b75fc5f1119857c44ef5d593" integrity sha512-eO9xlzDpXLiMr9W1nQ3Nfp9EzZieIQc10zPPMP5jsVV7bLOziSFFBP0XoDXACEIFtdI+rIz0NwWVA/QVJ8zJtw== string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -4462,7 +4448,7 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: string.prototype.matchall@^4.0.8: version "4.0.8" - resolved "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" integrity sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg== dependencies: call-bind "^1.0.2" @@ -4476,7 +4462,7 @@ string.prototype.matchall@^4.0.8: string.prototype.trim@^1.2.7: version "1.2.7" - resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== dependencies: call-bind "^1.0.2" @@ -4485,7 +4471,7 @@ string.prototype.trim@^1.2.7: string.prototype.trimend@^1.0.6: version "1.0.6" - resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== dependencies: call-bind "^1.0.2" @@ -4494,7 +4480,7 @@ string.prototype.trimend@^1.0.6: string.prototype.trimstart@^1.0.6: version "1.0.6" - resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== dependencies: call-bind "^1.0.2" @@ -4503,55 +4489,55 @@ string.prototype.trimstart@^1.0.6: string_decoder@^1.1.1: version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: safe-buffer "~5.2.0" strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-bom@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== strip-final-newline@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== strip-final-newline@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== strip-literal@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/strip-literal/-/strip-literal-1.0.1.tgz#0115a332710c849b4e46497891fb8d585e404bd2" + resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-1.0.1.tgz#0115a332710c849b4e46497891fb8d585e404bd2" integrity sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q== dependencies: acorn "^8.8.2" strip-outer@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" + resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== dependencies: escape-string-regexp "^1.0.2" styled-components@^5.3.11: version "5.3.11" - resolved "https://registry.npmjs.org/styled-components/-/styled-components-5.3.11.tgz#9fda7bf1108e39bf3f3e612fcc18170dedcd57a8" + resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.3.11.tgz#9fda7bf1108e39bf3f3e612fcc18170dedcd57a8" integrity sha512-uuzIIfnVkagcVHv9nE0VPlHPSCmXIUGKfJ42LNjxCCTDTL5sgnJ8Z7GZBq0EnLYGln77tPpEpExt2+qa+cZqSw== dependencies: "@babel/helper-module-imports" "^7.0.0" @@ -4567,31 +4553,31 @@ styled-components@^5.3.11: supports-color@^5.3.0, supports-color@^5.5.0: version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== svg-parser@^2.0.4: version "2.0.4" - resolved "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" + resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== synckit@^0.8.5: version "0.8.5" - resolved "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz#b7f4358f9bb559437f9f167eb6bc46b3c9818fa3" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.5.tgz#b7f4358f9bb559437f9f167eb6bc46b3c9818fa3" integrity sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q== dependencies: "@pkgr/utils" "^2.3.1" @@ -4599,22 +4585,22 @@ synckit@^0.8.5: tapable@^2.2.0: version "2.2.1" - resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== text-table@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== tiny-invariant@^1.1.0: version "1.3.1" - resolved "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz#8560808c916ef02ecfd55e66090df23a4b7aa642" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.1.tgz#8560808c916ef02ecfd55e66090df23a4b7aa642" integrity sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw== tinybench@^2.5.0: version "2.5.0" - resolved "https://registry.npmjs.org/tinybench/-/tinybench-2.5.0.tgz#4711c99bbf6f3e986f67eb722fed9cddb3a68ba5" + resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.5.0.tgz#4711c99bbf6f3e986f67eb722fed9cddb3a68ba5" integrity sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA== tinypool@^0.6.0: @@ -4624,46 +4610,46 @@ tinypool@^0.6.0: tinyspy@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/tinyspy/-/tinyspy-2.1.1.tgz#9e6371b00c259e5c5b301917ca18c01d40ae558c" + resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-2.1.1.tgz#9e6371b00c259e5c5b301917ca18c01d40ae558c" integrity sha512-XPJL2uSzcOyBMky6OFrusqWlzfFrXtE0hPuMgW8A2HmaqrPo4ZQHRN/V0QXN3FSjKxpsbRrFc5LI7KOwBsT1/w== titleize@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53" + resolved "https://registry.yarnpkg.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53" integrity sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ== to-fast-properties@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" toggle-selection@^1.0.6: version "1.0.6" - resolved "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" + resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ== trim-repeated@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" + resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" integrity sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg== dependencies: escape-string-regexp "^1.0.2" tsconfck@^2.1.0: version "2.1.1" - resolved "https://registry.npmjs.org/tsconfck/-/tsconfck-2.1.1.tgz#9b51603d2712d1f4740fa14748ca886a2e1893e5" + resolved "https://registry.yarnpkg.com/tsconfck/-/tsconfck-2.1.1.tgz#9b51603d2712d1f4740fa14748ca886a2e1893e5" integrity sha512-ZPCkJBKASZBmBUNqGHmRhdhM8pJYDdOXp4nRgj/O0JwUwsMq50lCDRQP/M5GBNAA0elPrq4gAeu4dkaVCuKWww== tsconfig-paths@^3.14.1: version "3.14.2" - resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== dependencies: "@types/json5" "^0.0.29" @@ -4673,46 +4659,46 @@ tsconfig-paths@^3.14.1: tslib@^1.8.1, tslib@^1.9.0: version "1.14.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslib@^2.1.0, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.5.3, tslib@^2.6.0: version "2.6.0" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz#b295854684dbda164e181d259a22cd779dcd7bc3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.0.tgz#b295854684dbda164e181d259a22cd779dcd7bc3" integrity sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA== tsutils@^3.21.0: version "3.21.0" - resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== dependencies: tslib "^1.8.1" type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: prelude-ls "^1.2.1" type-detect@^4.0.0, type-detect@^4.0.5: version "4.0.8" - resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== type-fest@^0.20.2: version "0.20.2" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== type-fest@^0.21.3: version "0.21.3" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== typed-array-length@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== dependencies: call-bind "^1.0.2" @@ -4721,22 +4707,22 @@ typed-array-length@^1.0.4: typeforce@^1.11.5: version "1.18.0" - resolved "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz#d7416a2c5845e085034d70fcc5b6cc4a90edbfdc" + resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.18.0.tgz#d7416a2c5845e085034d70fcc5b6cc4a90edbfdc" integrity sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g== typescript@^5.1.6: version "5.1.6" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274" integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA== ufo@^1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/ufo/-/ufo-1.1.2.tgz#d0d9e0fa09dece0c31ffd57bd363f030a35cfe76" + resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.1.2.tgz#d0d9e0fa09dece0c31ffd57bd363f030a35cfe76" integrity sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ== unbox-primitive@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== dependencies: call-bind "^1.0.2" @@ -4746,22 +4732,22 @@ unbox-primitive@^1.0.2: universalify@^0.1.0: version "0.1.2" - resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== universalify@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== untildify@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" + resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== update-browserslist-db@^1.0.11: version "1.0.11" - resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== dependencies: escalade "^3.1.1" @@ -4769,19 +4755,19 @@ update-browserslist-db@^1.0.11: uri-js@^4.2.2: version "4.4.1" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" util-deprecate@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== vite-bundle-visualizer@^0.8.0: version "0.8.0" - resolved "https://registry.npmjs.org/vite-bundle-visualizer/-/vite-bundle-visualizer-0.8.0.tgz#9642f80aa7fcd5aba0db043c2cb91c16315308ae" + resolved "https://registry.yarnpkg.com/vite-bundle-visualizer/-/vite-bundle-visualizer-0.8.0.tgz#9642f80aa7fcd5aba0db043c2cb91c16315308ae" integrity sha512-Z3RHuiqgxtNrCof1uINFel7VzESRYp3s9HK8Tg5JHXvcyVjIVIz6keUntna7CWtoNUIWUjaBwhmMCML9GM5qiw== dependencies: cac "^6.7.14" @@ -4801,7 +4787,7 @@ vite-node@0.33.0: vite-plugin-checker@^0.6.1: version "0.6.1" - resolved "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.6.1.tgz#51a0e654e033b5b9ad6301ae4d0ed0f5886d437c" + resolved "https://registry.yarnpkg.com/vite-plugin-checker/-/vite-plugin-checker-0.6.1.tgz#51a0e654e033b5b9ad6301ae4d0ed0f5886d437c" integrity sha512-4fAiu3W/IwRJuJkkUZlWbLunSzsvijDf0eDN6g/MGh6BUK4SMclOTGbLJCPvdAcMOQvVmm8JyJeYLYd4//8CkA== dependencies: "@babel/code-frame" "^7.12.13" @@ -4824,7 +4810,7 @@ vite-plugin-checker@^0.6.1: vite-plugin-eslint@^1.8.1: version "1.8.1" - resolved "https://registry.npmjs.org/vite-plugin-eslint/-/vite-plugin-eslint-1.8.1.tgz#0381b8272e7f0fd8b663311b64f7608d55d8b04c" + resolved "https://registry.yarnpkg.com/vite-plugin-eslint/-/vite-plugin-eslint-1.8.1.tgz#0381b8272e7f0fd8b663311b64f7608d55d8b04c" integrity sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang== dependencies: "@rollup/pluginutils" "^4.2.1" @@ -4833,7 +4819,7 @@ vite-plugin-eslint@^1.8.1: vite-plugin-svgr@^3.2.0: version "3.2.0" - resolved "https://registry.npmjs.org/vite-plugin-svgr/-/vite-plugin-svgr-3.2.0.tgz#920375aaf6635091c9ac8e467825f92d32544476" + resolved "https://registry.yarnpkg.com/vite-plugin-svgr/-/vite-plugin-svgr-3.2.0.tgz#920375aaf6635091c9ac8e467825f92d32544476" integrity sha512-Uvq6niTvhqJU6ga78qLKBFJSDvxWhOnyfQSoKpDPMAGxJPo5S3+9hyjExE5YDj6Lpa4uaLkGc1cBgxXov+LjSw== dependencies: "@rollup/pluginutils" "^5.0.2" @@ -4842,7 +4828,7 @@ vite-plugin-svgr@^3.2.0: vite-tsconfig-paths@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-4.2.0.tgz#bd2647d3eadafb65a10fc98a2ca565211f2eaf63" + resolved "https://registry.yarnpkg.com/vite-tsconfig-paths/-/vite-tsconfig-paths-4.2.0.tgz#bd2647d3eadafb65a10fc98a2ca565211f2eaf63" integrity sha512-jGpus0eUy5qbbMVGiTxCL1iB9ZGN6Bd37VGLJU39kTDD6ZfULTTb1bcc5IeTWqWJKiWV5YihCaibeASPiGi8kw== dependencies: debug "^4.1.1" @@ -4892,17 +4878,17 @@ vitest@^0.33.0: void-elements@3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09" + resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09" integrity sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w== vscode-jsonrpc@6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz#108bdb09b4400705176b957ceca9e0880e9b6d4e" + resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz#108bdb09b4400705176b957ceca9e0880e9b6d4e" integrity sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg== vscode-languageclient@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-7.0.0.tgz#b505c22c21ffcf96e167799757fca07a6bad0fb2" + resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-7.0.0.tgz#b505c22c21ffcf96e167799757fca07a6bad0fb2" integrity sha512-P9AXdAPlsCgslpP9pRxYPqkNYV7Xq8300/aZDpO35j1fJm/ncize8iGswzYlcvFw5DQUx4eVk+KvfXdL0rehNg== dependencies: minimatch "^3.0.4" @@ -4911,7 +4897,7 @@ vscode-languageclient@^7.0.0: vscode-languageserver-protocol@3.16.0: version "3.16.0" - resolved "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0.tgz#34135b61a9091db972188a07d337406a3cdbe821" + resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0.tgz#34135b61a9091db972188a07d337406a3cdbe821" integrity sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A== dependencies: vscode-jsonrpc "6.0.0" @@ -4919,34 +4905,34 @@ vscode-languageserver-protocol@3.16.0: vscode-languageserver-textdocument@^1.0.1: version "1.0.8" - resolved "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz#9eae94509cbd945ea44bca8dcfe4bb0c15bb3ac0" + resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz#9eae94509cbd945ea44bca8dcfe4bb0c15bb3ac0" integrity sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q== vscode-languageserver-types@3.16.0: version "3.16.0" - resolved "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz#ecf393fc121ec6974b2da3efb3155644c514e247" + resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz#ecf393fc121ec6974b2da3efb3155644c514e247" integrity sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA== vscode-languageserver@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-7.0.0.tgz#49b068c87cfcca93a356969d20f5d9bdd501c6b0" + resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-7.0.0.tgz#49b068c87cfcca93a356969d20f5d9bdd501c6b0" integrity sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw== dependencies: vscode-languageserver-protocol "3.16.0" vscode-uri@^3.0.2: version "3.0.7" - resolved "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.7.tgz#6d19fef387ee6b46c479e5fb00870e15e58c1eb8" + resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.7.tgz#6d19fef387ee6b46c479e5fb00870e15e58c1eb8" integrity sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA== web-streams-polyfill@^3.0.3: version "3.2.1" - resolved "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== webrtc-adapter@^7.2.1: version "7.7.1" - resolved "https://registry.npmjs.org/webrtc-adapter/-/webrtc-adapter-7.7.1.tgz#b2c227a6144983b35057df67bd984a7d4bfd17f1" + resolved "https://registry.yarnpkg.com/webrtc-adapter/-/webrtc-adapter-7.7.1.tgz#b2c227a6144983b35057df67bd984a7d4bfd17f1" integrity sha512-TbrbBmiQBL9n0/5bvDdORc6ZfRY/Z7JnEj+EYOD1ghseZdpJ+nF2yx14k3LgQKc7JZnG7HAcL+zHnY25So9d7A== dependencies: rtcpeerconnection-shim "^1.2.15" @@ -4954,7 +4940,7 @@ webrtc-adapter@^7.2.1: which-boxed-primitive@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== dependencies: is-bigint "^1.0.1" @@ -4964,9 +4950,9 @@ which-boxed-primitive@^1.0.2: is-symbol "^1.0.3" which-typed-array@^1.1.9: - version "1.1.9" - resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" - integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== + version "1.1.10" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.10.tgz#74baa2789991905c2076abb317103b866c64e69e" + integrity sha512-uxoA5vLUfRPdjCuJ1h5LlYdmTLbYfums398v3WLkM+i/Wltl2/XyZpQWKbN++ck5L64SR/grOHqtXCUKmlZPNA== dependencies: available-typed-arrays "^1.0.5" call-bind "^1.0.2" @@ -4977,14 +4963,14 @@ which-typed-array@^1.1.9: which@^2.0.1: version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" why-is-node-running@^2.2.2: version "2.2.2" - resolved "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz#4185b2b4699117819e7154594271e7e344c9973e" + resolved "https://registry.yarnpkg.com/why-is-node-running/-/why-is-node-running-2.2.2.tgz#4185b2b4699117819e7154594271e7e344c9973e" integrity sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA== dependencies: siginfo "^2.0.0" @@ -4992,14 +4978,14 @@ why-is-node-running@^2.2.2: wif@^2.0.6: version "2.0.6" - resolved "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz#08d3f52056c66679299726fade0d432ae74b4704" + resolved "https://registry.yarnpkg.com/wif/-/wif-2.0.6.tgz#08d3f52056c66679299726fade0d432ae74b4704" integrity sha512-HIanZn1zmduSF+BQhkE+YXIbEiH0xPr1012QbFEGB0xsKqJii0/SqJjyn8dFv6y36kOznMgMB+LGcbZTJ1xACQ== dependencies: bs58check "<3.0.0" wrap-ansi@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -5008,37 +4994,37 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== ws@^8.13.0, ws@^8.8.1: version "8.13.0" - resolved "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== y18n@^5.0.5: version "5.0.8" - resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== yallist@^3.0.2: version "3.1.1" - resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== yallist@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yargs-parser@^21.1.1: version "21.1.1" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== yargs@^17.5.1: version "17.7.2" - resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== dependencies: cliui "^8.0.1" @@ -5051,10 +5037,10 @@ yargs@^17.5.1: yocto-queue@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== yocto-queue@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== From 65d9beaf3977bfe94409a9bbd55eca22c38db1f5 Mon Sep 17 00:00:00 2001 From: TingALin Date: Thu, 13 Jul 2023 08:55:23 +0700 Subject: [PATCH 003/435] yarn.lock --- yarn.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/yarn.lock b/yarn.lock index e11a3e50e4..ec23db2d5f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1704,9 +1704,9 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -"bip32-ed25519@git+https://github.com/Zondax/bip32-ed25519.git": +"bip32-ed25519@https://github.com/Zondax/bip32-ed25519": version "0.0.4" - resolved "git+https://github.com/Zondax/bip32-ed25519.git#0949df01b5c93885339bc28116690292088f6134" + resolved "https://github.com/Zondax/bip32-ed25519#0949df01b5c93885339bc28116690292088f6134" dependencies: bn.js "^5.1.1" elliptic "^6.4.1" From 0b735bfdb8678a1109a03dc9f0a83489d1d9d5db Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Jul 2023 22:00:45 +0000 Subject: [PATCH 004/435] Bump @types/react from 18.2.14 to 18.2.15 Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.2.14 to 18.2.15. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) --- updated-dependencies: - dependency-name: "@types/react" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index a6d9e1a457..2655512379 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "devDependencies": { "@ledgerhq/logs": "^6.10.1", "@types/lodash.throttle": "^4.1.7", - "@types/react": "^18.2.14", + "@types/react": "^18.2.15", "@types/react-dom": "^18.2.7", "@types/react-helmet": "^6.1.6", "@types/react-scroll": "^1.8.6", diff --git a/yarn.lock b/yarn.lock index 4df8c1f24c..96146f6bdb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1283,10 +1283,10 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^18.2.14": - version "18.2.14" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.14.tgz#fa7a6fecf1ce35ca94e74874f70c56ce88f7a127" - integrity sha512-A0zjq+QN/O0Kpe30hA1GidzyFjatVvrpIvWLxD+xv67Vt91TWWgco9IvrJBkeyHm1trGaFS/FSGqPlhyeZRm0g== +"@types/react@*", "@types/react@^18.2.15": + version "18.2.15" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.15.tgz#14792b35df676c20ec3cf595b262f8c615a73066" + integrity sha512-oEjE7TQt1fFTFSbf8kkNuc798ahTUzn3Le67/PWjE8MAfYAD/qB7O8hSTcromLFqHCt9bcdOg5GXMokzTjJ5SA== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" From 287a1951aa585453d35252bf53e3ed0b7dc51aa3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Jul 2023 22:01:02 +0000 Subject: [PATCH 005/435] Bump eslint-config-airbnb-typescript from 17.0.0 to 17.1.0 Bumps [eslint-config-airbnb-typescript](https://github.com/iamturns/eslint-config-airbnb-typescript) from 17.0.0 to 17.1.0. - [Release notes](https://github.com/iamturns/eslint-config-airbnb-typescript/releases) - [Changelog](https://github.com/iamturns/eslint-config-airbnb-typescript/blob/master/CHANGELOG.md) - [Commits](https://github.com/iamturns/eslint-config-airbnb-typescript/compare/v17.0.0...v17.1.0) --- updated-dependencies: - dependency-name: eslint-config-airbnb-typescript dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index a6d9e1a457..468a29a941 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,7 @@ "@vitejs/plugin-react-swc": "^3.3.2", "eslint": "^8.44.0", "eslint-config-airbnb": "^19.0.4", - "eslint-config-airbnb-typescript": "^17.0.0", + "eslint-config-airbnb-typescript": "^17.1.0", "eslint-config-prettier": "^8.8.0", "eslint-import-resolver-typescript": "^3.5.5", "eslint-plugin-import": "^2.27.5", diff --git a/yarn.lock b/yarn.lock index 4df8c1f24c..15bbb1f304 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2297,10 +2297,10 @@ eslint-config-airbnb-base@^15.0.0: object.entries "^1.1.5" semver "^6.3.0" -eslint-config-airbnb-typescript@^17.0.0: - version "17.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-17.0.0.tgz#360dbcf810b26bbcf2ff716198465775f1c49a07" - integrity sha512-elNiuzD0kPAPTXjFWg+lE24nMdHMtuxgYoD30OyMD6yrW1AhFZPAg27VX7d3tzOErw+dgJTNWfRSDqEcXb4V0g== +eslint-config-airbnb-typescript@^17.1.0: + version "17.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-17.1.0.tgz#fda960eee4a510f092a9a1c139035ac588937ddc" + integrity sha512-GPxI5URre6dDpJ0CtcthSZVBAfI+Uw7un5OYNVxP2EYi3H81Jw701yFP7AU+/vCE7xBtFmjge7kfhhk4+RAiig== dependencies: eslint-config-airbnb-base "^15.0.0" From 972e45b28a794b13f52917b635a660df7fceca5b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Jul 2023 22:04:32 +0000 Subject: [PATCH 006/435] Bump prettier-plugin-organize-imports from 3.2.2 to 3.2.3 Bumps [prettier-plugin-organize-imports](https://github.com/simonhaenisch/prettier-plugin-organize-imports) from 3.2.2 to 3.2.3. - [Release notes](https://github.com/simonhaenisch/prettier-plugin-organize-imports/releases) - [Commits](https://github.com/simonhaenisch/prettier-plugin-organize-imports/compare/v3.2.2...v3.2.3) --- updated-dependencies: - dependency-name: prettier-plugin-organize-imports dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 468a29a941..51af7c6eec 100644 --- a/package.json +++ b/package.json @@ -82,7 +82,7 @@ "eslint-plugin-unused-imports": "^3.0.0", "gh-pages": "^5.0.0", "prettier": "2.8.8", - "prettier-plugin-organize-imports": "^3.2.2", + "prettier-plugin-organize-imports": "^3.2.3", "sass": "^1.63.6", "typescript": "^5.1.6", "vite": "^4.4.3", diff --git a/yarn.lock b/yarn.lock index 15bbb1f304..400a10d5ca 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3928,10 +3928,10 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier-plugin-organize-imports@^3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-3.2.2.tgz#91993365e017daa5d0d28d8183179834224d8dd1" - integrity sha512-e97lE6odGSiHonHJMTYC0q0iLXQyw0u5z/PJpvP/3vRy6/Zi9kLBwFAbEGjDzIowpjQv8b+J04PDamoUSQbzGA== +prettier-plugin-organize-imports@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-3.2.3.tgz#6b0141ac71f7ee9a673ce83e95456319e3a7cf0d" + integrity sha512-KFvk8C/zGyvUaE3RvxN2MhCLwzV6OBbFSkwZ2OamCrs9ZY4i5L77jQ/w4UmUr+lqX8qbaqVq6bZZkApn+IgJSg== prettier@2.8.8: version "2.8.8" From 1f6aa7028d442b99c699d9804800e290e59b7e40 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Jul 2023 22:03:56 +0000 Subject: [PATCH 007/435] Bump framer-motion from 10.12.18 to 10.12.20 Bumps [framer-motion](https://github.com/framer/motion) from 10.12.18 to 10.12.20. - [Changelog](https://github.com/framer/motion/blob/main/CHANGELOG.md) - [Commits](https://github.com/framer/motion/compare/v10.12.18...v10.12.20) --- updated-dependencies: - dependency-name: framer-motion dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 51af7c6eec..ede425fab3 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "buffer": "^6.0.3", "chart.js": "^4.3.0", "date-fns": "^2.29.3", - "framer-motion": "^10.12.18", + "framer-motion": "^10.12.20", "i18next": "^23.2.11", "i18next-browser-languagedetector": "^7.1.0", "lodash.throttle": "^4.1.1", diff --git a/yarn.lock b/yarn.lock index 400a10d5ca..699060af37 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2721,10 +2721,10 @@ formdata-polyfill@^4.0.10: dependencies: fetch-blob "^3.1.2" -framer-motion@^10.12.18: - version "10.12.18" - resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-10.12.18.tgz#92015860b6468a82e76c4739fcae81e1f6723b3f" - integrity sha512-cfhiUpPbj+0eEWKjuD+5cz5cMqH71xOtMxGiS/cSGfHn2OlHIEAqFnFyzEMENw5PxWR9bMVhatzzpD6lexmHZQ== +framer-motion@^10.12.20: + version "10.12.20" + resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-10.12.20.tgz#dce81636404cf3f7f5446b90e08be2625813c022" + integrity sha512-O4ODHTlov2cGHWjtMSuZhm2wX0eM33VK8+vCxren2uw9g3k/RubPCa0/tT6PtLzCvYgAhgKmaczVbY2qEJVWOw== dependencies: tslib "^2.4.0" optionalDependencies: From d9a8784ffc40e3f16854303fd30ac549aa4acf38 Mon Sep 17 00:00:00 2001 From: TingALin Date: Fri, 14 Jul 2023 20:35:11 +0700 Subject: [PATCH 008/435] trim --- src/library/QRCode/constants.tsx | 4 ---- src/library/QRCode/util.tsx | 5 +++-- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/library/QRCode/constants.tsx b/src/library/QRCode/constants.tsx index ec72c38059..7a34766ba9 100644 --- a/src/library/QRCode/constants.tsx +++ b/src/library/QRCode/constants.tsx @@ -6,7 +6,3 @@ export const SEED_PREFIX = 'secret'; export const FRAME_SIZE = 1024; export const SUBSTRATE_ID = new Uint8Array([0x53]); export const CRYPTO_SR25519 = new Uint8Array([0x01]); -export const CMD_SIGN_TX = new Uint8Array([0]); -export const CMD_SIGN_TX_HASH = new Uint8Array([1]); -export const CMD_SIGN_IMMORTAL_TX = new Uint8Array([2]); -export const CMD_SIGN_MSG = new Uint8Array([3]); diff --git a/src/library/QRCode/util.tsx b/src/library/QRCode/util.tsx index 129d095fc9..6b33b1c6be 100644 --- a/src/library/QRCode/util.tsx +++ b/src/library/QRCode/util.tsx @@ -16,8 +16,8 @@ export const createSignPayload = ( cmd: number, payload: string | Uint8Array, genesisHash: string | Uint8Array -): Uint8Array => - u8aConcat( +): Uint8Array => { + return u8aConcat( SUBSTRATE_ID, CRYPTO_SR25519, new Uint8Array([cmd]), @@ -25,6 +25,7 @@ export const createSignPayload = ( u8aToU8a(payload), u8aToU8a(genesisHash) ); +}; export const createFrames = (input: Uint8Array): Uint8Array[] => { const frames = []; From f8f7f6a1c7ed748aae114984dc87cbbe20f92d7a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 14 Jul 2023 21:41:02 +0000 Subject: [PATCH 009/435] Bump eslint from 8.44.0 to 8.45.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.44.0 to 8.45.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.44.0...v8.45.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 14 ++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index ede425fab3..67a46bd48b 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ "@typescript-eslint/eslint-plugin": "^5.62.0", "@typescript-eslint/parser": "^5.62.0", "@vitejs/plugin-react-swc": "^3.3.2", - "eslint": "^8.44.0", + "eslint": "^8.45.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb-typescript": "^17.1.0", "eslint-config-prettier": "^8.8.0", diff --git a/yarn.lock b/yarn.lock index 699060af37..176869939c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2462,10 +2462,10 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== -eslint@^8.44.0: - version "8.44.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.44.0.tgz#51246e3889b259bbcd1d7d736a0c10add4f0e500" - integrity sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A== +eslint@^8.45.0: + version "8.45.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.45.0.tgz#bab660f90d18e1364352c0a6b7c6db8edb458b78" + integrity sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.4.0" @@ -2492,7 +2492,6 @@ eslint@^8.44.0: globals "^13.19.0" graphemer "^1.4.0" ignore "^5.2.0" - import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" is-path-inside "^3.0.3" @@ -2504,7 +2503,6 @@ eslint@^8.44.0: natural-compare "^1.4.0" optionator "^0.9.3" strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" text-table "^0.2.0" espree@^9.6.0: @@ -3062,7 +3060,7 @@ immutable@^4.0.0: resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.0.tgz#eb1738f14ffb39fd068b1dbe1296117484dd34be" integrity sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg== -import-fresh@^3.0.0, import-fresh@^3.2.1: +import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -4452,7 +4450,7 @@ strip-final-newline@^3.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== From be126c1683388fb31dea3e2ced014ff0d0b33d10 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 14 Jul 2023 21:44:46 +0000 Subject: [PATCH 010/435] Bump framer-motion from 10.12.20 to 10.12.21 Bumps [framer-motion](https://github.com/framer/motion) from 10.12.20 to 10.12.21. - [Changelog](https://github.com/framer/motion/blob/main/CHANGELOG.md) - [Commits](https://github.com/framer/motion/compare/v10.12.20...v10.12.21) --- updated-dependencies: - dependency-name: framer-motion dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 67a46bd48b..6e294b029a 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "buffer": "^6.0.3", "chart.js": "^4.3.0", "date-fns": "^2.29.3", - "framer-motion": "^10.12.20", + "framer-motion": "^10.12.21", "i18next": "^23.2.11", "i18next-browser-languagedetector": "^7.1.0", "lodash.throttle": "^4.1.1", diff --git a/yarn.lock b/yarn.lock index 176869939c..93053901ac 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2719,10 +2719,10 @@ formdata-polyfill@^4.0.10: dependencies: fetch-blob "^3.1.2" -framer-motion@^10.12.20: - version "10.12.20" - resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-10.12.20.tgz#dce81636404cf3f7f5446b90e08be2625813c022" - integrity sha512-O4ODHTlov2cGHWjtMSuZhm2wX0eM33VK8+vCxren2uw9g3k/RubPCa0/tT6PtLzCvYgAhgKmaczVbY2qEJVWOw== +framer-motion@^10.12.21: + version "10.12.21" + resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-10.12.21.tgz#ea36b8db4dbb561d5fac7a978c2cd467f6d39a1b" + integrity sha512-EmnP73O5+1OGm2jtQNoBPPuAJvhySl+p4/9PL7PPJHt58nkPWeFaxhCJaUDXDf6N3jSLluefxopc0FrMCQ+/tQ== dependencies: tslib "^2.4.0" optionalDependencies: From 6ebc156e41a687cecce9871b80a5bd5c178faaa6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 14 Jul 2023 21:49:55 +0000 Subject: [PATCH 011/435] Bump vite from 4.4.3 to 4.4.4 Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.4.3 to 4.4.4. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v4.4.4/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 6e294b029a..142b3405fd 100644 --- a/package.json +++ b/package.json @@ -85,7 +85,7 @@ "prettier-plugin-organize-imports": "^3.2.3", "sass": "^1.63.6", "typescript": "^5.1.6", - "vite": "^4.4.3", + "vite": "^4.4.4", "vite-bundle-visualizer": "^0.8.0", "vite-plugin-checker": "^0.6.1", "vite-plugin-eslint": "^1.8.1", diff --git a/yarn.lock b/yarn.lock index 93053901ac..7a25181690 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4764,10 +4764,10 @@ vite-tsconfig-paths@^4.2.0: globrex "^0.1.2" tsconfck "^2.1.0" -"vite@^3.0.0 || ^4.0.0", vite@^4.4.3: - version "4.4.3" - resolved "https://registry.yarnpkg.com/vite/-/vite-4.4.3.tgz#dfaf86f4cba3058bf2724e2e2c88254fb0f21a5a" - integrity sha512-IMnXQXXWgLi5brBQx/4WzDxdzW0X3pjO4nqFJAuNvwKtxzAmPzFE1wszW3VDpAGQJm3RZkm/brzRdyGsnwgJIA== +"vite@^3.0.0 || ^4.0.0", vite@^4.4.4: + version "4.4.4" + resolved "https://registry.yarnpkg.com/vite/-/vite-4.4.4.tgz#b76e6049c0e080cb54e735ad2d18287753752118" + integrity sha512-4mvsTxjkveWrKDJI70QmelfVqTm+ihFAb6+xf4sjEU2TmUCTlVX87tmg/QooPEMQb/lM9qGHT99ebqPziEd3wg== dependencies: esbuild "^0.18.10" postcss "^8.4.25" From 3960ac9cb6e4b6d128bb9348c12e6840ea75aa79 Mon Sep 17 00:00:00 2001 From: TingALin Date: Sat, 15 Jul 2023 15:06:21 +0700 Subject: [PATCH 012/435] fix --- package.json | 1 - src/library/QRCode/Display.tsx | 20 ++++++---------- src/library/QRCode/DisplayPayload.tsx | 8 +++---- src/library/QRCode/Scan.tsx | 8 +++---- .../{ScanSignatures.tsx => ScanSignature.tsx} | 6 ++--- .../QRCode/{constants.tsx => constants.ts} | 4 ++-- src/library/QRCode/qrcode.ts | 14 +++++++++++ src/library/QRCode/{util.tsx => util.ts} | 24 +++++++++++++------ .../SubmitTx/ManualSign/Vault/SignOverlay.tsx | 2 +- src/modals/ImportVault/Reader.tsx | 2 +- yarn.lock | 15 +----------- 11 files changed, 54 insertions(+), 50 deletions(-) rename src/library/QRCode/{ScanSignatures.tsx => ScanSignature.tsx} (83%) rename src/library/QRCode/{constants.tsx => constants.ts} (64%) create mode 100644 src/library/QRCode/qrcode.ts rename src/library/QRCode/{util.tsx => util.ts} (75%) diff --git a/package.json b/package.json index ad2e06af6c..102455be79 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,6 @@ "@polkadot/api": "^10.9.1", "@polkadot/keyring": "^12.1.1", "@polkadot/react-identicon": "^3.5.1", - "@polkadot/react-qr": "^3.5.1", "@polkadot/rpc-provider": "^10.9.1", "@polkadot/util": "^12.1.1", "@polkadotcloud/core-ui": "^0.3.42", diff --git a/src/library/QRCode/Display.tsx b/src/library/QRCode/Display.tsx index 20b289ac14..90c6615200 100644 --- a/src/library/QRCode/Display.tsx +++ b/src/library/QRCode/Display.tsx @@ -1,20 +1,12 @@ -/* @license Copyright 2023 @paritytech/polkadot-dashboard-ui authors & contributors -SPDX-License-Identifier: Apache-2.0 */ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: Apache-2.0 import { objectSpread } from '@polkadot/util'; import { xxhashAsHex } from '@polkadot/util-crypto'; -import _qrcode from 'qrcode-generator'; import React, { useEffect, useMemo, useRef, useState } from 'react'; import styled from 'styled-components'; -import { createFrames, createImgSize } from './util'; - -// A small hurdle to jump through, just to get the default/default correct (as generated) -const qrcode: typeof _qrcode = _qrcode; - -// HACK The default function take string -> number[], the Uint8array is compatible -// with that signature and the use thereof -// eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-member-access -(qrcode as any).stringToBytes = (data: Uint8Array): Uint8Array => data; +import { qrcode } from './qrcode.js'; +import { createFrames, createImgSize } from './util.js'; interface Props { className?: string | undefined; @@ -108,7 +100,9 @@ const Display = ({ timerRef.current.timerDelay ); - return () => clearTimeout(timerRef.current.timerId || 0); + return () => { + if (timerRef.current.timerId) clearTimeout(timerRef.current.timerId); + }; }, []); useEffect((): void => { diff --git a/src/library/QRCode/DisplayPayload.tsx b/src/library/QRCode/DisplayPayload.tsx index b58746164c..1046e64cea 100644 --- a/src/library/QRCode/DisplayPayload.tsx +++ b/src/library/QRCode/DisplayPayload.tsx @@ -1,9 +1,9 @@ -/* @license Copyright 2023 @paritytech/polkadot-dashboard-ui authors & contributors -SPDX-License-Identifier: Apache-2.0 */ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: Apache-2.0 import React, { useMemo } from 'react'; -import { QrDisplay } from './Display'; -import { createSignPayload } from './util'; +import { QrDisplay } from './Display.js'; +import { createSignPayload } from './util.js'; interface Props { address: string; diff --git a/src/library/QRCode/Scan.tsx b/src/library/QRCode/Scan.tsx index 9c8ef5ac0f..907c26405c 100644 --- a/src/library/QRCode/Scan.tsx +++ b/src/library/QRCode/Scan.tsx @@ -1,10 +1,10 @@ -/* @license Copyright 2023 @paritytech/polkadot-dashboard-ui authors & contributors -SPDX-License-Identifier: Apache-2.0 */ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: Apache-2.0 import React, { useCallback, useMemo } from 'react'; import Reader from 'react-qr-reader'; import styled from 'styled-components'; -import { createImgSize } from './util'; +import { createImgSize } from './util.js'; interface Props { className?: string | undefined; @@ -18,7 +18,7 @@ interface Props { const DEFAULT_DELAY = 150; const DEFAULT_ERROR = (error: Error): void => { - console.error('@polkadot/react-qr:Scan', error.message); + console.error('react-qr:Scan', error.message); }; const Scan = ({ diff --git a/src/library/QRCode/ScanSignatures.tsx b/src/library/QRCode/ScanSignature.tsx similarity index 83% rename from src/library/QRCode/ScanSignatures.tsx rename to src/library/QRCode/ScanSignature.tsx index 6d39b3844a..88f26f174f 100644 --- a/src/library/QRCode/ScanSignatures.tsx +++ b/src/library/QRCode/ScanSignature.tsx @@ -1,9 +1,9 @@ -/* @license Copyright 2023 @paritytech/polkadot-dashboard-ui authors & contributors -SPDX-License-Identifier: Apache-2.0 */ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: Apache-2.0 import type { HexString } from '@polkadot/util/types'; import React, { useCallback } from 'react'; -import { QrScan } from './Scan'; +import { QrScan } from './Scan.js'; interface ScanType { signature: HexString; diff --git a/src/library/QRCode/constants.tsx b/src/library/QRCode/constants.ts similarity index 64% rename from src/library/QRCode/constants.tsx rename to src/library/QRCode/constants.ts index 7a34766ba9..712ecf4bdf 100644 --- a/src/library/QRCode/constants.tsx +++ b/src/library/QRCode/constants.ts @@ -1,5 +1,5 @@ -/* @license Copyright 2023 @paritytech/polkadot-dashboard-ui authors & contributors -SPDX-License-Identifier: Apache-2.0 */ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: Apache-2.0 export const ADDRESS_PREFIX = 'substrate'; export const SEED_PREFIX = 'secret'; diff --git a/src/library/QRCode/qrcode.ts b/src/library/QRCode/qrcode.ts new file mode 100644 index 0000000000..70ef4452ab --- /dev/null +++ b/src/library/QRCode/qrcode.ts @@ -0,0 +1,14 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import _qrcode from 'qrcode-generator'; + +// A small hurdle to jump through, just to get the default/default correct (as generated) +const qrcode: typeof _qrcode = _qrcode; + +// HACK The default function take string -> number[], the Uint8array is compatible +// with that signature and the use thereof +// eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-member-access +(qrcode as any).stringToBytes = (data: Uint8Array): Uint8Array => data; + +export { qrcode }; diff --git a/src/library/QRCode/util.tsx b/src/library/QRCode/util.ts similarity index 75% rename from src/library/QRCode/util.tsx rename to src/library/QRCode/util.ts index 6b33b1c6be..6ef6b0c03b 100644 --- a/src/library/QRCode/util.tsx +++ b/src/library/QRCode/util.ts @@ -1,23 +1,34 @@ -/* @license Copyright 2023 @paritytech/polkadot-dashboard-ui authors & contributors -SPDX-License-Identifier: Apache-2.0 */ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: Apache-2.0 import { isString, u8aConcat, u8aToU8a } from '@polkadot/util'; import { decodeAddress } from '@polkadot/util-crypto'; -import { CRYPTO_SR25519, FRAME_SIZE, SUBSTRATE_ID } from './constants'; +import { CRYPTO_SR25519, FRAME_SIZE, SUBSTRATE_ID } from './constants.js'; const MULTIPART = new Uint8Array([0]); export const encodeNumber = (value: number): Uint8Array => // eslint-disable-next-line no-bitwise - new Uint8Array([value >> 8, value && 0xff]); + new Uint8Array([value >> 8, value & 0xff]); + +export const encodeString = (value: string): Uint8Array => { + const count = value.length; + const u8a = new Uint8Array(count); + + for (let i = 0; i < count; i++) { + u8a[i] = value.charCodeAt(i); + } + + return u8a; +}; export const createSignPayload = ( address: string, cmd: number, payload: string | Uint8Array, genesisHash: string | Uint8Array -): Uint8Array => { - return u8aConcat( +): Uint8Array => + u8aConcat( SUBSTRATE_ID, CRYPTO_SR25519, new Uint8Array([cmd]), @@ -25,7 +36,6 @@ export const createSignPayload = ( u8aToU8a(payload), u8aToU8a(genesisHash) ); -}; export const createFrames = (input: Uint8Array): Uint8Array[] => { const frames = []; diff --git a/src/library/SubmitTx/ManualSign/Vault/SignOverlay.tsx b/src/library/SubmitTx/ManualSign/Vault/SignOverlay.tsx index 470de3ddb7..cb48bc6b7b 100644 --- a/src/library/SubmitTx/ManualSign/Vault/SignOverlay.tsx +++ b/src/library/SubmitTx/ManualSign/Vault/SignOverlay.tsx @@ -11,7 +11,7 @@ import { useOverlay } from 'contexts/Overlay'; import { useTxMeta } from 'contexts/TxMeta'; import { QRViewerWrapper } from 'library/Import/Wrappers'; import { QrDisplayPayload } from 'library/QRCode/DisplayPayload'; -import { QrScanSignature } from 'library/QRCode/ScanSignatures'; +import { QrScanSignature } from 'library/QRCode/ScanSignature'; import type { SignerOverlayProps } from 'library/SubmitTx/types'; import { useState } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/modals/ImportVault/Reader.tsx b/src/modals/ImportVault/Reader.tsx index 8bc05c66dd..671e32c7e0 100644 --- a/src/modals/ImportVault/Reader.tsx +++ b/src/modals/ImportVault/Reader.tsx @@ -7,7 +7,7 @@ import { useConnect } from 'contexts/Connect'; import { useVaultHardware } from 'contexts/Hardware/Vault'; import { useOverlay } from 'contexts/Overlay'; import { QRViewerWrapper } from 'library/Import/Wrappers'; -import { QrScanSignature } from 'library/QRCode/ScanSignatures'; +import { QrScanSignature } from 'library/QRCode/ScanSignature'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/yarn.lock b/yarn.lock index d23f54ad2a..c5a9f9786b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -716,19 +716,6 @@ styled-components "^5.3.11" tslib "^2.5.3" -"@polkadot/react-qr@^3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@polkadot/react-qr/-/react-qr-3.5.1.tgz#b9690b653779d2aed6c0ce773e842a8d5ad42d11" - integrity sha512-3TP0U6LEzousfioZtarGDfqIpZ+sCUsRII1nzgTfpGM7VJwmAKOzBFORqoYW1Lm1mbaZ0x1m3sypfXaE5tqqJg== - dependencies: - "@polkadot/ui-settings" "3.5.1" - "@polkadot/util" "^12.3.1" - "@polkadot/util-crypto" "^12.3.1" - qrcode-generator "^1.4.4" - react-qr-reader "^2.2.1" - styled-components "^5.3.11" - tslib "^2.5.3" - "@polkadot/rpc-augment@10.9.1": version "10.9.1" resolved "https://registry.yarnpkg.com/@polkadot/rpc-augment/-/rpc-augment-10.9.1.tgz#214ec3ee145d20caa61ea204041a3aadb89c6b0f" @@ -4035,7 +4022,7 @@ punycode@^2.1.0: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== -qrcode-generator@1.4.4, qrcode-generator@^1.4.4: +qrcode-generator@1.4.4: version "1.4.4" resolved "https://registry.yarnpkg.com/qrcode-generator/-/qrcode-generator-1.4.4.tgz#63f771224854759329a99048806a53ed278740e7" integrity sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw== From b3295374e1a1a0b6fbca2aaceaa926fd0122ba4c Mon Sep 17 00:00:00 2001 From: TingALin Date: Sat, 15 Jul 2023 15:09:37 +0700 Subject: [PATCH 013/435] rm identicon from json --- package.json | 1 - yarn.lock | 91 ---------------------------------------------------- 2 files changed, 92 deletions(-) diff --git a/package.json b/package.json index 102455be79..eb1ee84e49 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,6 @@ "@ledgerhq/hw-transport-webhid": "^6.27.16", "@polkadot/api": "^10.9.1", "@polkadot/keyring": "^12.1.1", - "@polkadot/react-identicon": "^3.5.1", "@polkadot/rpc-provider": "^10.9.1", "@polkadot/util": "^12.1.1", "@polkadotcloud/core-ui": "^0.3.42", diff --git a/yarn.lock b/yarn.lock index c5a9f9786b..2484864796 100644 --- a/yarn.lock +++ b/yarn.lock @@ -700,22 +700,6 @@ "@substrate/ss58-registry" "^1.40.0" tslib "^2.5.3" -"@polkadot/react-identicon@^3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@polkadot/react-identicon/-/react-identicon-3.5.1.tgz#0e6796669c63a13497348a84de5ab4549771d0dc" - integrity sha512-otMoajqrJn6COm3qAVYXo1IiUWKycApfhSiYRXnbbtZPJ5vq1SJacfhDYTl/S3B1l2UF/o3yei6Tq3fNu67ZNA== - dependencies: - "@polkadot/keyring" "^12.3.1" - "@polkadot/ui-settings" "3.5.1" - "@polkadot/ui-shared" "3.5.1" - "@polkadot/util" "^12.3.1" - "@polkadot/util-crypto" "^12.3.1" - ethereum-blockies-base64 "^1.0.2" - jdenticon "3.2.0" - react-copy-to-clipboard "^5.1.0" - styled-components "^5.3.11" - tslib "^2.5.3" - "@polkadot/rpc-augment@10.9.1": version "10.9.1" resolved "https://registry.yarnpkg.com/@polkadot/rpc-augment/-/rpc-augment-10.9.1.tgz#214ec3ee145d20caa61ea204041a3aadb89c6b0f" @@ -821,25 +805,6 @@ rxjs "^7.8.1" tslib "^2.5.3" -"@polkadot/ui-settings@3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@polkadot/ui-settings/-/ui-settings-3.5.1.tgz#53aadb3bc1e8b79c7a7b3b219ab72cf0e37ca612" - integrity sha512-3Lhgr9bZZALUuJbpy2zlqRm1sA7YIYnVXGUo0p5YWqWsthGQRL8mR4WhxcAnR+fZumI5fW+nhjosm5SiGzvy/Q== - dependencies: - "@polkadot/networks" "^12.3.1" - "@polkadot/util" "^12.3.1" - eventemitter3 "^5.0.1" - store "^2.0.12" - tslib "^2.5.3" - -"@polkadot/ui-shared@3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@polkadot/ui-shared/-/ui-shared-3.5.1.tgz#c7be9c98d62940647bfc1c69b7675395f6c73ee8" - integrity sha512-YXOVfm4YDbkTOyVPu6duhHN1L6/kntzk4Zx2IM8mPXRAdV7nexKPh9nasG/DJth0oqomCuhAhH+B61UueCmXUQ== - dependencies: - colord "^2.9.3" - tslib "^2.5.3" - "@polkadot/util-crypto@12.3.2", "@polkadot/util-crypto@^12.3.1": version "12.3.2" resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-12.3.2.tgz#42d810886904e06fa6e5db254c15f6ef80f4ab72" @@ -1852,13 +1817,6 @@ caniuse-lite@^1.0.30001503: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001514.tgz#e2a7e184a23affc9367b7c8d734e7ec4628c1309" integrity sha512-ENcIpYBmwAAOm/V2cXgM7rZUrKKaqisZl4ZAI520FIkqGXUxJjmaIssbRW5HVVR5tyV6ygTLIm15aU8LUmQSaQ== -canvas-renderer@~2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/canvas-renderer/-/canvas-renderer-2.2.1.tgz#c1d131f78a9799aca8af9679ad0a005052b65550" - integrity sha512-RrBgVL5qCEDIXpJ6NrzyRNoTnXxYarqm/cS/W6ERhUJts5UQtt/XPEosGN3rqUkZ4fjBArlnCbsISJ+KCFnIAg== - dependencies: - "@types/node" "*" - chai@^4.3.7: version "4.3.7" resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.7.tgz#ec63f6df01829088e8bf55fca839bcd464a8ec51" @@ -1962,11 +1920,6 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -colord@^2.9.3: - version "2.9.3" - resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" - integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== - commander@^2.18.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -1997,13 +1950,6 @@ convert-source-map@^1.7.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== -copy-to-clipboard@^3.3.1: - version "3.3.3" - resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz#55ac43a1db8ae639a4bd99511c148cdd1b83a1b0" - integrity sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA== - dependencies: - toggle-selection "^1.0.6" - cosmiconfig@^8.1.3: version "8.2.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.2.0.tgz#f7d17c56a590856cd1e7cee98734dca272b0d8fd" @@ -2587,13 +2533,6 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -ethereum-blockies-base64@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/ethereum-blockies-base64/-/ethereum-blockies-base64-1.0.2.tgz#4aebca52142bf4d16a3144e6e2b59303e39ed2b3" - integrity sha512-Vg2HTm7slcWNKaRhCUl/L3b4KrB8ohQXdd5Pu3OI897EcR6tVRvUqdTwAyx+dnmoDzj8e2bwBLDQ50ByFmcz6w== - dependencies: - pnglib "0.0.1" - eventemitter3@^4.0.7: version "4.0.7" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" @@ -3321,13 +3260,6 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -jdenticon@3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/jdenticon/-/jdenticon-3.2.0.tgz#b5b9ef413cb66f70c600d6e69a764c977f248a46" - integrity sha512-z6Iq3fTODUMSOiR2nNYrqigS6Y0GvdXfyQWrUby7htDHvX7GNEwaWR4hcaL+FmhEgBe08Xkup/BKxXQhDJByPA== - dependencies: - canvas-renderer "~2.2.0" - "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -3953,11 +3885,6 @@ pkg-types@^1.0.3: mlly "^1.2.0" pathe "^1.1.0" -pnglib@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/pnglib/-/pnglib-0.0.1.tgz#f9ab6f9c688f4a9d579ad8be28878a716e30c096" - integrity sha512-95ChzOoYLOPIyVmL+Y6X+abKGXUJlvOVLkB1QQkyXl7Uczc6FElUy/x01NS7r2GX6GRezloO/ecCX9h4U9KadA== - postcss-value-parser@^4.0.2: version "4.2.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" @@ -4054,14 +3981,6 @@ react-chartjs-2@^5.2.0: resolved "https://registry.yarnpkg.com/react-chartjs-2/-/react-chartjs-2-5.2.0.tgz#43c1e3549071c00a1a083ecbd26c1ad34d385f5d" integrity sha512-98iN5aguJyVSxp5U3CblRLH67J8gkfyGNbiK3c+l1QI/G4irHMPQw44aEPmjVag+YKTyQ260NcF82GTQ3bdscA== -react-copy-to-clipboard@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/react-copy-to-clipboard/-/react-copy-to-clipboard-5.1.0.tgz#09aae5ec4c62750ccb2e6421a58725eabc41255c" - integrity sha512-k61RsNgAayIJNoy9yDsYzDe/yAZAzEbEgcz3DZMhF686LEyukcE1hzurxe85JandPUG+yTfGVFzuEw3xt8WP/A== - dependencies: - copy-to-clipboard "^3.3.1" - prop-types "^15.8.1" - react-dom@^18.2.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" @@ -4432,11 +4351,6 @@ std-env@^3.3.3: resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.3.3.tgz#a54f06eb245fdcfef53d56f3c0251f1d5c3d01fe" integrity sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg== -store@^2.0.12: - version "2.0.12" - resolved "https://registry.yarnpkg.com/store/-/store-2.0.12.tgz#8c534e2a0b831f72b75fc5f1119857c44ef5d593" - integrity sha512-eO9xlzDpXLiMr9W1nQ3Nfp9EzZieIQc10zPPMP5jsVV7bLOziSFFBP0XoDXACEIFtdI+rIz0NwWVA/QVJ8zJtw== - string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -4630,11 +4544,6 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -toggle-selection@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" - integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ== - trim-repeated@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" From 8e336be68f387a2c5b9399d1507fbeaaa9c7751a Mon Sep 17 00:00:00 2001 From: TingALin Date: Sun, 16 Jul 2023 21:17:56 +0700 Subject: [PATCH 014/435] replace console error with Error --- src/library/QRCode/Scan.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/library/QRCode/Scan.tsx b/src/library/QRCode/Scan.tsx index 907c26405c..6e04a099fb 100644 --- a/src/library/QRCode/Scan.tsx +++ b/src/library/QRCode/Scan.tsx @@ -18,7 +18,7 @@ interface Props { const DEFAULT_DELAY = 150; const DEFAULT_ERROR = (error: Error): void => { - console.error('react-qr:Scan', error.message); + throw new Error(error.message); }; const Scan = ({ From 84b493aa57de5eee6d2f74bd4623c527c3574076 Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Mon, 17 Jul 2023 00:00:32 +0700 Subject: [PATCH 015/435] types & wrappers --- src/library/QRCode/Display.tsx | 46 +++------------------ src/library/QRCode/DisplayPayload.tsx | 14 +------ src/library/QRCode/Scan.tsx | 31 +++----------- src/library/QRCode/ScanSignature.tsx | 16 +------- src/library/QRCode/Wrappers.ts | 33 +++++++++++++++ src/library/QRCode/types.ts | 58 +++++++++++++++++++++++++++ 6 files changed, 105 insertions(+), 93 deletions(-) create mode 100644 src/library/QRCode/Wrappers.ts create mode 100644 src/library/QRCode/types.ts diff --git a/src/library/QRCode/Display.tsx b/src/library/QRCode/Display.tsx index 90c6615200..cf7abf4cf1 100644 --- a/src/library/QRCode/Display.tsx +++ b/src/library/QRCode/Display.tsx @@ -4,31 +4,11 @@ import { objectSpread } from '@polkadot/util'; import { xxhashAsHex } from '@polkadot/util-crypto'; import React, { useEffect, useMemo, useRef, useState } from 'react'; -import styled from 'styled-components'; +import { DisplayWrapper } from './Wrappers.js'; import { qrcode } from './qrcode.js'; +import type { DisplayProps, FrameState, TimerState } from './types.js'; import { createFrames, createImgSize } from './util.js'; -interface Props { - className?: string | undefined; - size?: string | number | undefined; - skipEncoding?: boolean; - style?: React.CSSProperties | undefined; - timerDelay?: number | undefined; - value: Uint8Array; -} - -interface FrameState { - frames: Uint8Array[]; - frameIdx: number; - image: string | null; - valueHash: string | null; -} - -interface TimerState { - timerDelay: number; - timerId: ReturnType | null; -} - const DEFAULT_FRAME_DELAY = 2750; const TIMER_INC = 500; @@ -50,7 +30,7 @@ const Display = ({ style = {}, timerDelay = DEFAULT_FRAME_DELAY, value, -}: Props): React.ReactElement | null => { +}: DisplayProps): React.ReactElement | null => { const [{ image }, setFrameState] = useState({ frameIdx: 0, frames: [], @@ -130,28 +110,12 @@ const Display = ({ } return ( - +
img
-
+ ); }; -const StyledDiv = styled.div` - .ui--qr-Display { - height: 100%; - width: 100%; - - img, - svg { - background: white; - height: auto !important; - max-height: 100%; - max-width: 100%; - width: auto !important; - } - } -`; - export const QrDisplay = React.memo(Display); diff --git a/src/library/QRCode/DisplayPayload.tsx b/src/library/QRCode/DisplayPayload.tsx index 1046e64cea..e10d920863 100644 --- a/src/library/QRCode/DisplayPayload.tsx +++ b/src/library/QRCode/DisplayPayload.tsx @@ -3,19 +3,9 @@ import React, { useMemo } from 'react'; import { QrDisplay } from './Display.js'; +import type { DisplayPayloadProps } from './types.js'; import { createSignPayload } from './util.js'; -interface Props { - address: string; - className?: string; - cmd: number; - genesisHash: Uint8Array | string; - payload: Uint8Array; - size?: string | number; - style?: React.CSSProperties; - timerDelay?: number; -} - const DisplayPayload = ({ address, className, @@ -25,7 +15,7 @@ const DisplayPayload = ({ size, style, timerDelay, -}: Props): React.ReactElement | null => { +}: DisplayPayloadProps): React.ReactElement | null => { const data = useMemo( () => createSignPayload(address, cmd, payload, genesisHash), [address, cmd, payload, genesisHash] diff --git a/src/library/QRCode/Scan.tsx b/src/library/QRCode/Scan.tsx index 6e04a099fb..cf0239c957 100644 --- a/src/library/QRCode/Scan.tsx +++ b/src/library/QRCode/Scan.tsx @@ -3,18 +3,10 @@ import React, { useCallback, useMemo } from 'react'; import Reader from 'react-qr-reader'; -import styled from 'styled-components'; +import { ScanWrapper } from './Wrappers.js'; +import type { ScanProps } from './types.js'; import { createImgSize } from './util.js'; -interface Props { - className?: string | undefined; - delay?: number; - onError?: undefined | ((error: Error) => void); - onScan: (data: string) => void; - size?: string | number | undefined; - style?: React.CSSProperties | undefined; -} - const DEFAULT_DELAY = 150; const DEFAULT_ERROR = (error: Error): void => { @@ -28,7 +20,7 @@ const Scan = ({ onScan, size, style = {}, -}: Props): React.ReactElement => { +}: ScanProps): React.ReactElement => { const containerStyle = useMemo(() => createImgSize(size), [size]); const _onError = useCallback((error: Error) => onError(error), [onError]); @@ -39,7 +31,7 @@ const Scan = ({ ); return ( - + - + ); }; -const StyledDiv = styled.div` - .ui--qr-Scan { - display: inline-block; - height: 100%; - transform: matrix(-1, 0, 0, 1, 0, 0); - width: 100%; - - video { - margin: 0; - } - } -`; - export const QrScan = React.memo(Scan); diff --git a/src/library/QRCode/ScanSignature.tsx b/src/library/QRCode/ScanSignature.tsx index 88f26f174f..007bcacf08 100644 --- a/src/library/QRCode/ScanSignature.tsx +++ b/src/library/QRCode/ScanSignature.tsx @@ -1,21 +1,9 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: Apache-2.0 -import type { HexString } from '@polkadot/util/types'; import React, { useCallback } from 'react'; import { QrScan } from './Scan.js'; - -interface ScanType { - signature: HexString; -} - -interface Props { - className?: string; - onError?: (error: Error) => void; - onScan: (scanned: ScanType) => void; - size?: string | number; - style?: React.CSSProperties; -} +import type { ScanSignatureProps } from './types.js'; const ScanSignature = ({ className, @@ -23,7 +11,7 @@ const ScanSignature = ({ onScan, size, style, -}: Props): React.ReactElement => { +}: ScanSignatureProps): React.ReactElement => { const _onScan = useCallback( (signature: string | null) => signature && onScan({ signature: `0x${signature}` }), diff --git a/src/library/QRCode/Wrappers.ts b/src/library/QRCode/Wrappers.ts new file mode 100644 index 0000000000..fb76eeb409 --- /dev/null +++ b/src/library/QRCode/Wrappers.ts @@ -0,0 +1,33 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import styled from 'styled-components'; + +export const DisplayWrapper = styled.div` + .ui--qr-Display { + height: 100%; + width: 100%; + + img, + svg { + background: white; + height: auto !important; + max-height: 100%; + max-width: 100%; + width: auto !important; + } + } +`; + +export const ScanWrapper = styled.div` + .ui--qr-Scan { + display: inline-block; + height: 100%; + transform: matrix(-1, 0, 0, 1, 0, 0); + width: 100%; + + video { + margin: 0; + } + } +`; diff --git a/src/library/QRCode/types.ts b/src/library/QRCode/types.ts new file mode 100644 index 0000000000..284eed4090 --- /dev/null +++ b/src/library/QRCode/types.ts @@ -0,0 +1,58 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@polkadot/util/types'; +import type React from 'react'; + +export interface FrameState { + frames: Uint8Array[]; + frameIdx: number; + image: string | null; + valueHash: string | null; +} + +export interface ScanType { + signature: HexString; +} + +export interface TimerState { + timerDelay: number; + timerId: ReturnType | null; +} + +export interface DisplayProps { + className?: string | undefined; + size?: string | number | undefined; + skipEncoding?: boolean; + style?: React.CSSProperties | undefined; + timerDelay?: number | undefined; + value: Uint8Array; +} + +export interface DisplayPayloadProps { + address: string; + className?: string; + cmd: number; + genesisHash: Uint8Array | string; + payload: Uint8Array; + size?: string | number; + style?: React.CSSProperties; + timerDelay?: number; +} + +export interface ScanProps { + className?: string | undefined; + delay?: number; + onError?: undefined | ((error: Error) => void); + onScan: (data: string) => void; + size?: string | number | undefined; + style?: React.CSSProperties | undefined; +} + +export interface ScanSignatureProps { + className?: string; + onError?: (error: Error) => void; + onScan: (scanned: ScanType) => void; + size?: string | number; + style?: React.CSSProperties; +} From 1d12067f3b9ce08ceba84ebd10b2ab9883ac86d7 Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Mon, 17 Jul 2023 00:03:19 +0700 Subject: [PATCH 016/435] rm eslint-disable --- src/library/QRCode/qrcode.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/library/QRCode/qrcode.ts b/src/library/QRCode/qrcode.ts index 70ef4452ab..eb134fe987 100644 --- a/src/library/QRCode/qrcode.ts +++ b/src/library/QRCode/qrcode.ts @@ -8,7 +8,6 @@ const qrcode: typeof _qrcode = _qrcode; // HACK The default function take string -> number[], the Uint8array is compatible // with that signature and the use thereof -// eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-member-access (qrcode as any).stringToBytes = (data: Uint8Array): Uint8Array => data; export { qrcode }; From 189aa334c910ae05b776331856b0167a77f977b5 Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Mon, 17 Jul 2023 00:18:00 +0700 Subject: [PATCH 017/435] install dep & fix type --- package.json | 12 +- src/library/SideMenu/types.ts | 2 +- yarn.lock | 1157 +++++++++++++++++++++++++++++++-- 3 files changed, 1116 insertions(+), 55 deletions(-) diff --git a/package.json b/package.json index 23da674c45..344bdb7c27 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "@polkadot/keyring": "^12.1.1", "@polkadot/rpc-provider": "^10.9.1", "@polkadot/util": "^12.1.1", + "@polkadot/util-crypto": "12.3.2", "@polkadotcloud/core-ui": "^0.3.42", "@polkadotcloud/react-odometer": "^0.1.17", "@polkadotcloud/utils": "^0.2.22", @@ -44,6 +45,7 @@ "i18next": "^23.2.11", "i18next-browser-languagedetector": "^7.1.0", "lodash.throttle": "^4.1.1", + "qrcode-generator": "1.4.4", "rc-slider": "^10.2.1", "react": "^18.2.0", "react-chartjs-2": "^5.2.0", @@ -51,12 +53,10 @@ "react-error-boundary": "^4.0.10", "react-helmet": "^6.1.0", "react-i18next": "^13.0.2", + "react-qr-reader": "^2.2.1", "react-router-dom": "^6.14.1", "react-scroll": "^1.8.9", - "styled-components": "^5.3.11", - "qrcode-generator": "1.4.4", - "react-qr-reader": "^2.2.1", - "@polkadot/util-crypto": "12.3.2" + "styled-components": "^6.0.0" }, "devDependencies": { "@ledgerhq/logs": "^6.10.1", @@ -64,6 +64,7 @@ "@types/react": "^18.2.15", "@types/react-dom": "^18.2.7", "@types/react-helmet": "^6.1.6", + "@types/react-qr-reader": "^2.1.4", "@types/react-scroll": "^1.8.6", "@types/styled-components": "^5.1.26", "@typescript-eslint/eslint-plugin": "^5.62.0", @@ -92,7 +93,6 @@ "vite-plugin-eslint": "^1.8.1", "vite-plugin-svgr": "^3.2.0", "vite-tsconfig-paths": "^4.2.0", - "vitest": "^0.33.0", - "@types/react-qr-reader": "^2.1.4" + "vitest": "^0.33.0" } } diff --git a/src/library/SideMenu/types.ts b/src/library/SideMenu/types.ts index bc56774352..4b4bed4c0e 100644 --- a/src/library/SideMenu/types.ts +++ b/src/library/SideMenu/types.ts @@ -6,7 +6,7 @@ import type { FunctionComponent, SVGProps } from 'react'; import type { AnyJson } from 'types'; export interface MinimisedProps { - $minimised: boolean; + $minimised?: boolean; } export interface HeadingProps { diff --git a/yarn.lock b/yarn.lock index ccb4e92791..85ab4e6a71 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15,6 +15,22 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" +"@babel/cli@^7.21.0": + version "7.22.9" + resolved "https://registry.npmjs.org/@babel/cli/-/cli-7.22.9.tgz#501b3614aeda7399371f6d5991404f069b059986" + integrity sha512-nb2O7AThqRo7/E53EGiuAkMaRbb7J5Qp3RvN+dmua1U+kydm0oznkhqbTEG15yk26G/C3yL6OdZjzgl+DMXVVA== + dependencies: + "@jridgewell/trace-mapping" "^0.3.17" + commander "^4.0.1" + convert-source-map "^1.1.0" + fs-readdir-recursive "^1.1.0" + glob "^7.2.0" + make-dir "^2.1.0" + slash "^2.0.0" + optionalDependencies: + "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3" + chokidar "^3.4.0" + "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" @@ -22,11 +38,37 @@ dependencies: "@babel/highlight" "^7.22.5" +"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.5", "@babel/compat-data@^7.22.9": + version "7.22.9" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" + integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== + "@babel/compat-data@^7.22.6": version "7.22.6" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.6.tgz#15606a20341de59ba02cd2fcc5086fcbe73bf544" integrity sha512-29tfsWTq2Ftu7MXmimyC0C5FDZv5DYxOZkh3XD3+QW4V/BYuv/LyEsjj3c0hqedEaDt6DBfDvexMKU8YevdqFg== +"@babel/core@^7.21.0": + version "7.22.9" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.22.9.tgz#bd96492c68822198f33e8a256061da3cf391f58f" + integrity sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.22.5" + "@babel/generator" "^7.22.9" + "@babel/helper-compilation-targets" "^7.22.9" + "@babel/helper-module-transforms" "^7.22.9" + "@babel/helpers" "^7.22.6" + "@babel/parser" "^7.22.7" + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.8" + "@babel/types" "^7.22.5" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.2" + semver "^6.3.1" + "@babel/core@^7.21.3": version "7.22.8" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.8.tgz#386470abe884302db9c82e8e5e87be9e46c86785" @@ -58,6 +100,16 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" +"@babel/generator@^7.22.9": + version "7.22.9" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.22.9.tgz#572ecfa7a31002fa1de2a9d91621fd895da8493d" + integrity sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw== + dependencies: + "@babel/types" "^7.22.5" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + "@babel/helper-annotate-as-pure@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" @@ -65,6 +117,24 @@ dependencies: "@babel/types" "^7.22.5" +"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz#a3f4758efdd0190d8927fcffd261755937c71878" + integrity sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.9": + version "7.22.9" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz#f9d0a7aaaa7cd32a3f31c9316a69f5a9bcacb892" + integrity sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw== + dependencies: + "@babel/compat-data" "^7.22.9" + "@babel/helper-validator-option" "^7.22.5" + browserslist "^4.21.9" + lru-cache "^5.1.1" + semver "^6.3.1" + "@babel/helper-compilation-targets@^7.22.6": version "7.22.6" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.6.tgz#e30d61abe9480aa5a83232eb31c111be922d2e52" @@ -76,6 +146,41 @@ browserslist "^4.21.9" lru-cache "^5.1.1" +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.22.5", "@babel/helper-create-class-features-plugin@^7.22.9": + version "7.22.9" + resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.9.tgz#c36ea240bb3348f942f08b0fbe28d6d979fab236" + integrity sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + semver "^6.3.1" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.5": + version "7.22.9" + resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz#9d8e61a8d9366fe66198f57c40565663de0825f6" + integrity sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + regexpu-core "^5.3.1" + semver "^6.3.1" + +"@babel/helper-define-polyfill-provider@^0.4.1": + version "0.4.1" + resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.1.tgz#af1429c4a83ac316a6a8c2cc8ff45cb5d2998d3a" + integrity sha512-kX4oXixDxG197yhX+J3Wp+NpL2wuCFjWQAr6yX2jtCnflK9ulMI51ULFGIrWiX1jGfvAxdHp+XQCcP2bZGPs9A== + dependencies: + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + "@babel/helper-environment-visitor@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" @@ -96,7 +201,14 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.22.5": +"@babel/helper-member-expression-to-functions@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz#0a7c56117cad3372fbf8d2fb4bf8f8d64a1e76b2" + integrity sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== @@ -117,11 +229,47 @@ "@babel/traverse" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/helper-plugin-utils@^7.22.5": +"@babel/helper-module-transforms@^7.22.9": + version "7.22.9" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz#92dfcb1fbbb2bc62529024f72d942a8c97142129" + integrity sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.5" + +"@babel/helper-optimise-call-expression@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" + integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== +"@babel/helper-remap-async-to-generator@^7.22.5": + version "7.22.9" + resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz#53a25b7484e722d7efb9c350c75c032d4628de82" + integrity sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-wrap-function" "^7.22.9" + +"@babel/helper-replace-supers@^7.22.5", "@babel/helper-replace-supers@^7.22.9": + version "7.22.9" + resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz#cbdc27d6d8d18cd22c81ae4293765a5d9afd0779" + integrity sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg== + dependencies: + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-simple-access@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" @@ -129,6 +277,13 @@ dependencies: "@babel/types" "^7.22.5" +"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" + integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-split-export-declaration@^7.22.5", "@babel/helper-split-export-declaration@^7.22.6": version "7.22.6" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" @@ -151,6 +306,15 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== +"@babel/helper-wrap-function@^7.22.9": + version "7.22.9" + resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.9.tgz#189937248c45b0182c1dcf32f3444ca153944cb9" + integrity sha512-sZ+QzfauuUEfxSEjKFmi3qDSHgLsTPK/pEpoD/qonZKOtTPTLbf59oabPQ4rKekt9lFcj/hTZaOhWwFYrgjk+Q== + dependencies: + "@babel/helper-function-name" "^7.22.5" + "@babel/template" "^7.22.5" + "@babel/types" "^7.22.5" + "@babel/helpers@^7.22.6": version "7.22.6" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.6.tgz#8e61d3395a4f0c5a8060f309fb008200969b5ecd" @@ -174,6 +338,124 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae" integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q== +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz#87245a21cd69a73b0b81bcda98d443d6df08f05e" + integrity sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz#fef09f9499b1f1c930da8a0c419db42167d792ca" + integrity sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.22.5" + +"@babel/plugin-external-helpers@^7.18.6": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-external-helpers/-/plugin-external-helpers-7.22.5.tgz#92b0705b74756123f289388320e0e12c407fdf9a" + integrity sha512-ngnNEWxmykPk82mH4ajZT0qTztr3Je6hrMuKAslZVM8G1YZTENJSYwrIGtt6KOtznug3exmAtF4so/nPqJuA4A== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-proposal-class-properties@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" + integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-object-rest-spread@^7.20.7": + version "7.20.7" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" + integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== + dependencies: + "@babel/compat-data" "^7.20.5" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.20.7" + +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== + +"@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" + integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-import-assertions@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz#07d252e2aa0bc6125567f742cd58619cb14dce98" + integrity sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-import-attributes@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz#ab840248d834410b829f569f5262b9e517555ecb" + integrity sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-import-meta@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + "@babel/plugin-syntax-jsx@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" @@ -181,7 +463,634 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/runtime@^7.10.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.19.4", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5": +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz#aac8d383b062c5072c647a31ef990c1d0af90272" + integrity sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-arrow-functions@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz#e5ba566d0c58a5b2ba2a8b795450641950b71958" + integrity sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-async-generator-functions@^7.22.7": + version "7.22.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.7.tgz#053e76c0a903b72b573cb1ab7d6882174d460a1b" + integrity sha512-7HmE7pk/Fmke45TODvxvkxRMV9RazV+ZZzhOL9AG8G29TLrr3jkjwF7uJfxZ30EoXpO+LJkq4oA8NjO2DTnEDg== + dependencies: + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.5" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-transform-async-to-generator@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz#c7a85f44e46f8952f6d27fe57c2ed3cc084c3775" + integrity sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ== + dependencies: + "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.5" + +"@babel/plugin-transform-block-scoped-functions@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz#27978075bfaeb9fa586d3cb63a3d30c1de580024" + integrity sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-block-scoping@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz#8bfc793b3a4b2742c0983fadc1480d843ecea31b" + integrity sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-class-properties@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz#97a56e31ad8c9dc06a0b3710ce7803d5a48cca77" + integrity sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-class-static-block@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz#3e40c46f048403472d6f4183116d5e46b1bff5ba" + integrity sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-transform-classes@^7.22.6": + version "7.22.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz#e04d7d804ed5b8501311293d1a0e6d43e94c3363" + integrity sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz#cd1e994bf9f316bd1c2dafcd02063ec261bb3869" + integrity sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/template" "^7.22.5" + +"@babel/plugin-transform-destructuring@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz#d3aca7438f6c26c78cdd0b0ba920a336001b27cc" + integrity sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-dotall-regex@^7.22.5", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz#dbb4f0e45766eb544e193fb00e65a1dd3b2a4165" + integrity sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-duplicate-keys@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz#b6e6428d9416f5f0bba19c70d1e6e7e0b88ab285" + integrity sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-dynamic-import@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz#d6908a8916a810468c4edff73b5b75bda6ad393e" + integrity sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-transform-exponentiation-operator@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz#402432ad544a1f9a480da865fda26be653e48f6a" + integrity sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-export-namespace-from@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz#57c41cb1d0613d22f548fddd8b288eedb9973a5b" + integrity sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-transform-for-of@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz#ab1b8a200a8f990137aff9a084f8de4099ab173f" + integrity sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-function-name@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz#935189af68b01898e0d6d99658db6b164205c143" + integrity sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg== + dependencies: + "@babel/helper-compilation-targets" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-json-strings@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz#14b64352fdf7e1f737eed68de1a1468bd2a77ec0" + integrity sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-transform-literals@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz#e9341f4b5a167952576e23db8d435849b1dd7920" + integrity sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-logical-assignment-operators@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz#66ae5f068fd5a9a5dc570df16f56c2a8462a9d6c" + integrity sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-transform-member-expression-literals@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz#4fcc9050eded981a468347dd374539ed3e058def" + integrity sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-modules-amd@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz#4e045f55dcf98afd00f85691a68fc0780704f526" + integrity sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ== + dependencies: + "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-modules-commonjs@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz#7d9875908d19b8c0536085af7b053fd5bd651bfa" + integrity sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA== + dependencies: + "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" + +"@babel/plugin-transform-modules-systemjs@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz#18c31410b5e579a0092638f95c896c2a98a5d496" + integrity sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ== + dependencies: + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.5" + +"@babel/plugin-transform-modules-umd@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz#4694ae40a87b1745e3775b6a7fe96400315d4f98" + integrity sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ== + dependencies: + "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f" + integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-new-target@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz#1b248acea54ce44ea06dfd37247ba089fcf9758d" + integrity sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-nullish-coalescing-operator@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz#f8872c65776e0b552e0849d7596cddd416c3e381" + integrity sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-transform-numeric-separator@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz#57226a2ed9e512b9b446517ab6fa2d17abb83f58" + integrity sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-transform-object-rest-spread@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz#9686dc3447df4753b0b2a2fae7e8bc33cdc1f2e1" + integrity sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ== + dependencies: + "@babel/compat-data" "^7.22.5" + "@babel/helper-compilation-targets" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.22.5" + +"@babel/plugin-transform-object-super@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz#794a8d2fcb5d0835af722173c1a9d704f44e218c" + integrity sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.5" + +"@babel/plugin-transform-optional-catch-binding@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz#842080be3076703be0eaf32ead6ac8174edee333" + integrity sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-transform-optional-chaining@^7.22.5", "@babel/plugin-transform-optional-chaining@^7.22.6": + version "7.22.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.6.tgz#4bacfe37001fe1901117672875e931d439811564" + integrity sha512-Vd5HiWml0mDVtcLHIoEU5sw6HOUW/Zk0acLs/SAeuLzkGNOPc9DB4nkUajemhCmTIz3eiaKREZn2hQQqF79YTg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz#c3542dd3c39b42c8069936e48717a8d179d63a18" + integrity sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-private-methods@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz#21c8af791f76674420a147ae62e9935d790f8722" + integrity sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-private-property-in-object@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz#07a77f28cbb251546a43d175a1dda4cf3ef83e32" + integrity sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-transform-property-literals@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz#b5ddabd73a4f7f26cd0e20f5db48290b88732766" + integrity sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-react-display-name@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz#3c4326f9fce31c7968d6cb9debcaf32d9e279a2b" + integrity sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-react-jsx-development@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz#e716b6edbef972a92165cd69d92f1255f7e73e87" + integrity sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A== + dependencies: + "@babel/plugin-transform-react-jsx" "^7.22.5" + +"@babel/plugin-transform-react-jsx@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz#932c291eb6dd1153359e2a90cb5e557dcf068416" + integrity sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-jsx" "^7.22.5" + "@babel/types" "^7.22.5" + +"@babel/plugin-transform-react-pure-annotations@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz#1f58363eef6626d6fa517b95ac66fe94685e32c0" + integrity sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-regenerator@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz#cd8a68b228a5f75fa01420e8cc2fc400f0fc32aa" + integrity sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + regenerator-transform "^0.15.1" + +"@babel/plugin-transform-reserved-words@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz#832cd35b81c287c4bcd09ce03e22199641f964fb" + integrity sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-shorthand-properties@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz#6e277654be82b5559fc4b9f58088507c24f0c624" + integrity sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-spread@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz#6487fd29f229c95e284ba6c98d65eafb893fea6b" + integrity sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + +"@babel/plugin-transform-sticky-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz#295aba1595bfc8197abd02eae5fc288c0deb26aa" + integrity sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-template-literals@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz#8f38cf291e5f7a8e60e9f733193f0bcc10909bff" + integrity sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-typeof-symbol@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz#5e2ba478da4b603af8673ff7c54f75a97b716b34" + integrity sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-typescript@^7.22.5": + version "7.22.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.9.tgz#91e08ad1eb1028ecc62662a842e93ecfbf3c7234" + integrity sha512-BnVR1CpKiuD0iobHPaM1iLvcwPYN2uVFAqoLVSpEDKWuOikoCv5HbKLxclhKYUXlWkX86DoZGtqI4XhbOsyrMg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.9" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-typescript" "^7.22.5" + +"@babel/plugin-transform-unicode-escapes@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz#ce0c248522b1cb22c7c992d88301a5ead70e806c" + integrity sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-property-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz#098898f74d5c1e86660dc112057b2d11227f1c81" + integrity sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz#ce7e7bb3ef208c4ff67e02a22816656256d7a183" + integrity sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-sets-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz#77788060e511b708ffc7d42fdfbc5b37c3004e91" + integrity sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/preset-env@^7.20.2": + version "7.22.9" + resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.9.tgz#57f17108eb5dfd4c5c25a44c1977eba1df310ac7" + integrity sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g== + dependencies: + "@babel/compat-data" "^7.22.9" + "@babel/helper-compilation-targets" "^7.22.9" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.5" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.5" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.5" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.22.5" + "@babel/plugin-syntax-import-attributes" "^7.22.5" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.22.5" + "@babel/plugin-transform-async-generator-functions" "^7.22.7" + "@babel/plugin-transform-async-to-generator" "^7.22.5" + "@babel/plugin-transform-block-scoped-functions" "^7.22.5" + "@babel/plugin-transform-block-scoping" "^7.22.5" + "@babel/plugin-transform-class-properties" "^7.22.5" + "@babel/plugin-transform-class-static-block" "^7.22.5" + "@babel/plugin-transform-classes" "^7.22.6" + "@babel/plugin-transform-computed-properties" "^7.22.5" + "@babel/plugin-transform-destructuring" "^7.22.5" + "@babel/plugin-transform-dotall-regex" "^7.22.5" + "@babel/plugin-transform-duplicate-keys" "^7.22.5" + "@babel/plugin-transform-dynamic-import" "^7.22.5" + "@babel/plugin-transform-exponentiation-operator" "^7.22.5" + "@babel/plugin-transform-export-namespace-from" "^7.22.5" + "@babel/plugin-transform-for-of" "^7.22.5" + "@babel/plugin-transform-function-name" "^7.22.5" + "@babel/plugin-transform-json-strings" "^7.22.5" + "@babel/plugin-transform-literals" "^7.22.5" + "@babel/plugin-transform-logical-assignment-operators" "^7.22.5" + "@babel/plugin-transform-member-expression-literals" "^7.22.5" + "@babel/plugin-transform-modules-amd" "^7.22.5" + "@babel/plugin-transform-modules-commonjs" "^7.22.5" + "@babel/plugin-transform-modules-systemjs" "^7.22.5" + "@babel/plugin-transform-modules-umd" "^7.22.5" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" + "@babel/plugin-transform-new-target" "^7.22.5" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.5" + "@babel/plugin-transform-numeric-separator" "^7.22.5" + "@babel/plugin-transform-object-rest-spread" "^7.22.5" + "@babel/plugin-transform-object-super" "^7.22.5" + "@babel/plugin-transform-optional-catch-binding" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.22.6" + "@babel/plugin-transform-parameters" "^7.22.5" + "@babel/plugin-transform-private-methods" "^7.22.5" + "@babel/plugin-transform-private-property-in-object" "^7.22.5" + "@babel/plugin-transform-property-literals" "^7.22.5" + "@babel/plugin-transform-regenerator" "^7.22.5" + "@babel/plugin-transform-reserved-words" "^7.22.5" + "@babel/plugin-transform-shorthand-properties" "^7.22.5" + "@babel/plugin-transform-spread" "^7.22.5" + "@babel/plugin-transform-sticky-regex" "^7.22.5" + "@babel/plugin-transform-template-literals" "^7.22.5" + "@babel/plugin-transform-typeof-symbol" "^7.22.5" + "@babel/plugin-transform-unicode-escapes" "^7.22.5" + "@babel/plugin-transform-unicode-property-regex" "^7.22.5" + "@babel/plugin-transform-unicode-regex" "^7.22.5" + "@babel/plugin-transform-unicode-sets-regex" "^7.22.5" + "@babel/preset-modules" "^0.1.5" + "@babel/types" "^7.22.5" + babel-plugin-polyfill-corejs2 "^0.4.4" + babel-plugin-polyfill-corejs3 "^0.8.2" + babel-plugin-polyfill-regenerator "^0.5.1" + core-js-compat "^3.31.0" + semver "^6.3.1" + +"@babel/preset-modules@^0.1.5": + version "0.1.5" + resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" + integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/preset-react@^7.18.6": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.22.5.tgz#c4d6058fbf80bccad02dd8c313a9aaa67e3c3dd6" + integrity sha512-M+Is3WikOpEJHgR385HbuCITPTaPRaNkibTEa9oiofmJvIsrceb4yp9RL9Kb+TE8LznmeyZqpP+Lopwcx59xPQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.5" + "@babel/plugin-transform-react-display-name" "^7.22.5" + "@babel/plugin-transform-react-jsx" "^7.22.5" + "@babel/plugin-transform-react-jsx-development" "^7.22.5" + "@babel/plugin-transform-react-pure-annotations" "^7.22.5" + +"@babel/preset-typescript@^7.21.0": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.22.5.tgz#16367d8b01d640e9a507577ed4ee54e0101e51c8" + integrity sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.5" + "@babel/plugin-syntax-jsx" "^7.22.5" + "@babel/plugin-transform-modules-commonjs" "^7.22.5" + "@babel/plugin-transform-typescript" "^7.22.5" + +"@babel/regjsgen@^0.8.0": + version "0.8.0" + resolved "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" + integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== + +"@babel/runtime@^7.10.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.19.4", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5", "@babel/runtime@^7.8.4": version "7.22.6" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.6.tgz#57d64b9ae3cff1d67eb067ae117dac087f5bd438" integrity sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ== @@ -197,7 +1106,7 @@ "@babel/parser" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/traverse@^7.22.5", "@babel/traverse@^7.22.6", "@babel/traverse@^7.22.8", "@babel/traverse@^7.4.5": +"@babel/traverse@^7.21.2", "@babel/traverse@^7.22.5", "@babel/traverse@^7.22.6", "@babel/traverse@^7.22.8": version "7.22.8" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.8.tgz#4d4451d31bc34efeae01eac222b514a77aa4000e" integrity sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw== @@ -213,7 +1122,7 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.21.3", "@babel/types@^7.22.5": +"@babel/types@^7.21.3", "@babel/types@^7.22.5", "@babel/types@^7.4.4": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== @@ -236,9 +1145,9 @@ dependencies: "@emotion/memoize" "0.7.4" -"@emotion/is-prop-valid@^1.1.0": +"@emotion/is-prop-valid@^1.2.1": version "1.2.1" - resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz#23116cf1ed18bfeac910ec6436561ecb1a3885cc" + resolved "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz#23116cf1ed18bfeac910ec6436561ecb1a3885cc" integrity sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw== dependencies: "@emotion/memoize" "^0.8.1" @@ -253,15 +1162,10 @@ resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.1.tgz#c1ddb040429c6d21d38cc945fe75c818cfb68e17" integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA== -"@emotion/stylis@^0.8.4": - version "0.8.5" - resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04" - integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ== - -"@emotion/unitless@^0.7.4": - version "0.7.5" - resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" - integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== +"@emotion/unitless@^0.8.0": + version "0.8.1" + resolved "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz#182b5a4704ef8ad91bde93f7a860a88fd92c79a3" + integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ== "@esbuild-plugins/node-globals-polyfill@^0.2.3": version "0.2.3" @@ -569,6 +1473,11 @@ dependencies: "@lit-labs/ssr-dom-shim" "^1.0.0" +"@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3": + version "2.1.8-no-fsevents.3" + resolved "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz#323d72dd25103d0c4fbdce89dadf574a787b1f9b" + integrity sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ== + "@nicolo-ribaudo/semver-v6@^6.3.3": version "6.3.3" resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz#ea6d23ade78a325f7a52750aab1526b02b628c29" @@ -1294,6 +2203,11 @@ "@types/react" "*" csstype "^3.0.2" +"@types/stylis@^4.0.2": + version "4.2.0" + resolved "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.0.tgz#199a3f473f0c3a6f6e4e1b17cdbc967f274bdc6b" + integrity sha512-n4sx2bqL0mW1tvDf/loQ+aMX7GQD3lc3fkCMC55VFNDu/vBOabO+LTIeXKM14xK0ppk5TUGcWRjiSpIlUpghKw== + "@types/trusted-types@^2.0.2": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.3.tgz#a136f83b0758698df454e328759dbd3d44555311" @@ -1621,16 +2535,29 @@ axobject-query@^3.1.1: dependencies: dequal "^2.0.3" -"babel-plugin-styled-components@>= 1.12.0": - version "2.1.4" - resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.4.tgz#9a1f37c7f32ef927b4b008b529feb4a2c82b1092" - integrity sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g== +babel-plugin-polyfill-corejs2@^0.4.4: + version "0.4.4" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.4.tgz#9f9a0e1cd9d645cc246a5e094db5c3aa913ccd2b" + integrity sha512-9WeK9snM1BfxB38goUEv2FLnA6ja07UMfazFHzCXUb3NyDZAwfXvQiURQ6guTTMeHcOsdknULm1PDhs4uWtKyA== dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-module-imports" "^7.22.5" - "@babel/plugin-syntax-jsx" "^7.22.5" - lodash "^4.17.21" - picomatch "^2.3.1" + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.4.1" + "@nicolo-ribaudo/semver-v6" "^6.3.3" + +babel-plugin-polyfill-corejs3@^0.8.2: + version "0.8.2" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.2.tgz#d406c5738d298cd9c66f64a94cf8d5904ce4cc5e" + integrity sha512-Cid+Jv1BrY9ReW9lIfNlNpsI53N+FN7gE+f73zLAUbr9C52W4gKLWSByx47pfDJsEysojKArqOtOKZSVIIUTuQ== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.4.1" + core-js-compat "^3.31.0" + +babel-plugin-polyfill-regenerator@^0.5.1: + version "0.5.1" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.1.tgz#ace7a5eced6dff7d5060c335c52064778216afd3" + integrity sha512-L8OyySuI6OSQ5hFy9O+7zFjyr4WhAfRjLIOkhQGYl+emwJkd/S4XXT1JpfrgR1jrQ1NcGiOh+yAdGlF8pnC3Jw== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.4.1" balanced-match@^1.0.0: version "1.0.2" @@ -1859,7 +2786,7 @@ check-error@^1.0.2: resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== -"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.1: +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.0, chokidar@^3.5.1: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -1925,6 +2852,11 @@ commander@^2.18.0: resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== +commander@^4.0.1: + version "4.1.1" + resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + commander@^8.0.0: version "8.3.0" resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" @@ -1945,11 +2877,18 @@ confusing-browser-globals@^1.0.10: resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA== -convert-source-map@^1.7.0: +convert-source-map@^1.1.0, convert-source-map@^1.7.0: version "1.9.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== +core-js-compat@^3.31.0: + version "3.31.1" + resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.31.1.tgz#5084ad1a46858df50ff89ace152441a63ba7aae0" + integrity sha512-wIDWd2s5/5aJSdpOJHfSibxNODxoGoWOBHt8JSPB41NOE94M7kuTPZCYLOlTtuoXTsBPKobpJ6T+y0SSy5L9SA== + dependencies: + browserslist "^4.21.9" + cosmiconfig@^8.1.3: version "8.2.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.2.0.tgz#f7d17c56a590856cd1e7cee98734dca272b0d8fd" @@ -1985,16 +2924,16 @@ css-color-keywords@^1.0.0: resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" integrity sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg== -css-to-react-native@^3.0.0: +css-to-react-native@^3.2.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.2.0.tgz#cdd8099f71024e149e4f6fe17a7d46ecd55f1e32" + resolved "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz#cdd8099f71024e149e4f6fe17a7d46ecd55f1e32" integrity sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ== dependencies: camelize "^1.0.0" css-color-keywords "^1.0.0" postcss-value-parser "^4.0.2" -csstype@^3.0.2: +csstype@^3.0.2, csstype@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== @@ -2729,6 +3668,11 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" +fs-readdir-recursive@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" + integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -2831,7 +3775,7 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" -glob@^7.0.3, glob@^7.1.3: +glob@^7.0.3, glob@^7.1.3, glob@^7.2.0: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -2990,7 +3934,7 @@ hmac-drbg@^1.0.1: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.3.0: +hoist-non-react-statics@^3.3.0: version "3.3.2" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== @@ -3275,6 +4219,11 @@ jsesc@^2.5.1: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + json-parse-even-better-errors@^2.3.0: version "2.3.1" resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" @@ -3472,6 +4421,14 @@ magic-string@^0.30.1: dependencies: "@jridgewell/sourcemap-codec" "^1.4.15" +make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + make-dir@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" @@ -3855,6 +4812,11 @@ pify@^2.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" @@ -3888,6 +4850,15 @@ postcss-value-parser@^4.0.2: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== +postcss@^8.4.23: + version "8.4.26" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.26.tgz#1bc62ab19f8e1e5463d98cf74af39702a00a9e94" + integrity sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw== + dependencies: + nanoid "^3.3.6" + picocolors "^1.0.0" + source-map-js "^1.0.2" + postcss@^8.4.25: version "8.4.25" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.25.tgz#4a133f5e379eda7f61e906c3b1aaa9b81292726f" @@ -4087,11 +5058,30 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" +regenerate-unicode-properties@^10.1.0: + version "10.1.0" + resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" + integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + regenerator-runtime@^0.13.11: version "0.13.11" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== +regenerator-transform@^0.15.1: + version "0.15.1" + resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" + integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg== + dependencies: + "@babel/runtime" "^7.8.4" + regexp.prototype.flags@^1.4.3: version "1.5.0" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" @@ -4101,6 +5091,25 @@ regexp.prototype.flags@^1.4.3: define-properties "^1.2.0" functions-have-names "^1.2.3" +regexpu-core@^5.3.1: + version "5.3.2" + resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" + integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== + dependencies: + "@babel/regjsgen" "^0.8.0" + regenerate "^1.4.2" + regenerate-unicode-properties "^10.1.0" + regjsparser "^0.9.1" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" + +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== + dependencies: + jsesc "~0.5.0" + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -4116,7 +5125,7 @@ resolve-pkg-maps@^1.0.0: resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== -resolve@^1.22.1: +resolve@^1.14.2, resolve@^1.22.1: version "1.22.2" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== @@ -4248,11 +5257,21 @@ sdp@^2.12.0, sdp@^2.6.0: resolved "https://registry.yarnpkg.com/sdp/-/sdp-2.12.0.tgz#338a106af7560c86e4523f858349680350d53b22" integrity sha512-jhXqQAQVM+8Xj5EjJGVweuEzgtGWb3tmEEpl3CLP3cStInSbVHSg0QWOGQzNq8pSID4JkpeV2mPqlMDLrm0/Vw== +semver@^5.6.0: + version "5.7.2" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + semver@^6.0.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.5.0: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" @@ -4304,6 +5323,11 @@ signal-exit@^3.0.3, signal-exit@^3.0.7: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" @@ -4447,23 +5471,37 @@ strip-outer@^1.0.1: dependencies: escape-string-regexp "^1.0.2" -styled-components@^5.3.11: - version "5.3.11" - resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.3.11.tgz#9fda7bf1108e39bf3f3e612fcc18170dedcd57a8" - integrity sha512-uuzIIfnVkagcVHv9nE0VPlHPSCmXIUGKfJ42LNjxCCTDTL5sgnJ8Z7GZBq0EnLYGln77tPpEpExt2+qa+cZqSw== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/traverse" "^7.4.5" - "@emotion/is-prop-valid" "^1.1.0" - "@emotion/stylis" "^0.8.4" - "@emotion/unitless" "^0.7.4" - babel-plugin-styled-components ">= 1.12.0" - css-to-react-native "^3.0.0" - hoist-non-react-statics "^3.0.0" +styled-components@^6.0.0: + version "6.0.4" + resolved "https://registry.npmjs.org/styled-components/-/styled-components-6.0.4.tgz#55bb3a1197daf8075ae8b345b57eb03f2570d51e" + integrity sha512-lRJt4vg8hKJhlVG+VKz8QEqPCXKyTryZZ59odyK0UC0HHV3u/mshWTfSay8NpkN0Xijw1iN9r0Leld3dcCcp/w== + dependencies: + "@babel/cli" "^7.21.0" + "@babel/core" "^7.21.0" + "@babel/helper-module-imports" "^7.18.6" + "@babel/plugin-external-helpers" "^7.18.6" + "@babel/plugin-proposal-class-properties" "^7.18.6" + "@babel/plugin-proposal-object-rest-spread" "^7.20.7" + "@babel/preset-env" "^7.20.2" + "@babel/preset-react" "^7.18.6" + "@babel/preset-typescript" "^7.21.0" + "@babel/traverse" "^7.21.2" + "@emotion/is-prop-valid" "^1.2.1" + "@emotion/unitless" "^0.8.0" + "@types/stylis" "^4.0.2" + css-to-react-native "^3.2.0" + csstype "^3.1.2" + postcss "^8.4.23" shallowequal "^1.1.0" - supports-color "^5.5.0" + stylis "^4.3.0" + tslib "^2.5.0" -supports-color@^5.3.0, supports-color@^5.5.0: +stylis@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/stylis/-/stylis-4.3.0.tgz#abe305a669fc3d8777e10eefcfc73ad861c5588c" + integrity sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ== + +supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== @@ -4637,6 +5675,29 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" + integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" From 4f8c4f2a72b8861390039cde0ced7296958379b7 Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Mon, 17 Jul 2023 00:32:40 +0700 Subject: [PATCH 018/435] fix non-transient props --- src/library/SideMenu/Heading/Heading.tsx | 2 +- src/library/SideMenu/Heading/Wrapper.tsx | 6 +++--- src/library/SideMenu/Secondary/Wrappers.tsx | 6 +++--- src/library/SideMenu/Secondary/index.tsx | 2 +- src/library/StatusLabel/Wrapper.ts | 2 +- src/library/StatusLabel/index.tsx | 2 +- src/library/StatusLabel/types.ts | 2 +- src/library/SubscanButton/index.tsx | 8 ++++---- src/pages/Overview/StakeStatus/Tips/Syncing.tsx | 2 +- src/pages/Overview/StakeStatus/Tips/Wrappers.tsx | 2 +- 10 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/library/SideMenu/Heading/Heading.tsx b/src/library/SideMenu/Heading/Heading.tsx index e25404096b..7dd712c6e0 100644 --- a/src/library/SideMenu/Heading/Heading.tsx +++ b/src/library/SideMenu/Heading/Heading.tsx @@ -5,7 +5,7 @@ import type { HeadingProps } from '../types'; import { Wrapper } from './Wrapper'; export const Heading = ({ title, minimised }: HeadingProps) => ( - + {minimised ?
:
{title}
}
); diff --git a/src/library/SideMenu/Heading/Wrapper.tsx b/src/library/SideMenu/Heading/Wrapper.tsx index bb440838e4..82f61bff51 100644 --- a/src/library/SideMenu/Heading/Wrapper.tsx +++ b/src/library/SideMenu/Heading/Wrapper.tsx @@ -3,11 +3,11 @@ import styled from 'styled-components'; -export const Wrapper = styled.div<{ minimised: boolean }>` +export const Wrapper = styled.div<{ $minimised: boolean }>` display: flex; flex-flow: row wrap; - justify-content: ${(props) => (props.minimised ? 'center' : 'flex-start')}; - opacity: ${(props) => (props.minimised ? 0.5 : 1)}; + justify-content: ${(props) => (props.$minimised ? 'center' : 'flex-start')}; + opacity: ${(props) => (props.$minimised ? 0.5 : 1)}; align-items: center; h5 { diff --git a/src/library/SideMenu/Secondary/Wrappers.tsx b/src/library/SideMenu/Secondary/Wrappers.tsx index 48a2df93e6..45369fb874 100644 --- a/src/library/SideMenu/Secondary/Wrappers.tsx +++ b/src/library/SideMenu/Secondary/Wrappers.tsx @@ -92,9 +92,9 @@ export const MinimisedWrapper = styled(motion.button)` } `; -export const IconWrapper = styled.div<{ minimised: boolean }>` - margin-left: ${(props) => (props.minimised ? 0 : '0.25rem')}; - margin-right: ${(props) => (props.minimised ? 0 : '0.65rem')}; +export const IconWrapper = styled.div<{ $minimised: boolean }>` + margin-left: ${(props) => (props.$minimised ? 0 : '0.25rem')}; + margin-right: ${(props) => (props.$minimised ? 0 : '0.65rem')}; svg { .primary { diff --git a/src/library/SideMenu/Secondary/index.tsx b/src/library/SideMenu/Secondary/index.tsx index 7d0b98701e..fb5ef370ac 100644 --- a/src/library/SideMenu/Secondary/index.tsx +++ b/src/library/SideMenu/Secondary/index.tsx @@ -29,7 +29,7 @@ export const Secondary = ({ }} > diff --git a/src/library/StatusLabel/Wrapper.ts b/src/library/StatusLabel/Wrapper.ts index 81128a3ff4..21d2bf9f21 100644 --- a/src/library/StatusLabel/Wrapper.ts +++ b/src/library/StatusLabel/Wrapper.ts @@ -6,7 +6,7 @@ import type { WrapperProps } from './types'; export const Wrapper = styled.div` position: absolute; - top: ${(props) => (props.topOffset ? props.topOffset : '50%')}; + top: ${(props) => (props.$topOffset ? props.$topOffset : '50%')}; left: 0; width: 100%; display: flex; diff --git a/src/library/StatusLabel/index.tsx b/src/library/StatusLabel/index.tsx index 5385d11647..29807fc3a1 100644 --- a/src/library/StatusLabel/index.tsx +++ b/src/library/StatusLabel/index.tsx @@ -40,7 +40,7 @@ export const StatusLabel = ({ } return ( - +
{hideIcon !== true && }

diff --git a/src/library/StatusLabel/types.ts b/src/library/StatusLabel/types.ts index 3c9068d047..c6877a4452 100644 --- a/src/library/StatusLabel/types.ts +++ b/src/library/StatusLabel/types.ts @@ -11,5 +11,5 @@ export interface StatusLabelProps { } export interface WrapperProps { - topOffset?: string; + $topOffset?: string; } diff --git a/src/library/SubscanButton/index.tsx b/src/library/SubscanButton/index.tsx index 45162e30bc..f04e8f9cf5 100644 --- a/src/library/SubscanButton/index.tsx +++ b/src/library/SubscanButton/index.tsx @@ -6,7 +6,7 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { usePlugins } from 'contexts/Plugins'; import styled from 'styled-components'; -const Wrapper = styled.div<{ active: boolean }>` +const Wrapper = styled.div<{ $active: boolean }>` position: absolute; right: 10px; top: 10px; @@ -14,10 +14,10 @@ const Wrapper = styled.div<{ active: boolean }>` border-radius: 0.3rem; padding: 0.25rem 0.4rem; color: ${(props) => - props.active + props.$active ? 'var(--network-color-primary)' : 'var(--text-color-secondary)'}; - opacity: ${(props) => (props.active ? 1 : 0.5)}; + opacity: ${(props) => (props.$active ? 1 : 0.5)}; z-index: 2; `; @@ -25,7 +25,7 @@ export const SubscanButton = () => { const { plugins } = usePlugins(); return ( - + { }} > - +
` +export const ItemInnerWrapper = styled.div` display: flex; flex-flow: row wrap; align-items: center; From 0297d2886f30347048254e6c42b2f564cda0ac6d Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Mon, 17 Jul 2023 00:34:27 +0700 Subject: [PATCH 019/435] rm @types/styled-components --- package.json | 1 - yarn.lock | 26 +------------------------- 2 files changed, 1 insertion(+), 26 deletions(-) diff --git a/package.json b/package.json index 344bdb7c27..5de4978371 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,6 @@ "@types/react-helmet": "^6.1.6", "@types/react-qr-reader": "^2.1.4", "@types/react-scroll": "^1.8.6", - "@types/styled-components": "^5.1.26", "@typescript-eslint/eslint-plugin": "^5.62.0", "@typescript-eslint/parser": "^5.62.0", "@vitejs/plugin-react-swc": "^3.3.2", diff --git a/yarn.lock b/yarn.lock index 85ab4e6a71..e37996a020 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2107,14 +2107,6 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== -"@types/hoist-non-react-statics@*": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f" - integrity sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA== - dependencies: - "@types/react" "*" - hoist-non-react-statics "^3.3.0" - "@types/json-schema@*", "@types/json-schema@^7.0.9": version "7.0.12" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" @@ -2194,15 +2186,6 @@ resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== -"@types/styled-components@^5.1.26": - version "5.1.26" - resolved "https://registry.yarnpkg.com/@types/styled-components/-/styled-components-5.1.26.tgz#5627e6812ee96d755028a98dae61d28e57c233af" - integrity sha512-KuKJ9Z6xb93uJiIyxo/+ksS7yLjS1KzG6iv5i78dhVg/X3u5t1H7juRWqVmodIdz6wGVaIApo1u01kmFRdJHVw== - dependencies: - "@types/hoist-non-react-statics" "*" - "@types/react" "*" - csstype "^3.0.2" - "@types/stylis@^4.0.2": version "4.2.0" resolved "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.0.tgz#199a3f473f0c3a6f6e4e1b17cdbc967f274bdc6b" @@ -3934,13 +3917,6 @@ hmac-drbg@^1.0.1: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoist-non-react-statics@^3.3.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" - integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== - dependencies: - react-is "^16.7.0" - html-parse-stringify@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz#dfc1017347ce9f77c8141a507f233040c59c55d2" @@ -4988,7 +4964,7 @@ react-i18next@^13.0.2: "@babel/runtime" "^7.22.5" html-parse-stringify "^3.0.1" -react-is@^16.12.0, react-is@^16.13.1, react-is@^16.7.0: +react-is@^16.12.0, react-is@^16.13.1: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== From 58a3c2de152990b505f194d61cca808d0c7c15b1 Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Mon, 17 Jul 2023 00:49:19 +0700 Subject: [PATCH 020/435] rm unused dep --- package.json | 1 - yarn.lock | 5 ----- 2 files changed, 6 deletions(-) diff --git a/package.json b/package.json index 5de4978371..f8bbf6cec0 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,6 @@ }, "dependencies": { "@dotlottie/player-component": "^2.0.1", - "@esbuild-plugins/node-globals-polyfill": "^0.2.3", "@fortawesome/fontawesome-svg-core": "^6.4.0", "@fortawesome/free-brands-svg-icons": "^6.4.0", "@fortawesome/free-regular-svg-icons": "^6.4.0", diff --git a/yarn.lock b/yarn.lock index e37996a020..b330d0ef71 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1167,11 +1167,6 @@ resolved "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz#182b5a4704ef8ad91bde93f7a860a88fd92c79a3" integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ== -"@esbuild-plugins/node-globals-polyfill@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.2.3.tgz#0e4497a2b53c9e9485e149bc92ddb228438d6bcf" - integrity sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw== - "@esbuild/android-arm64@0.18.11": version "0.18.11" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.11.tgz#fa6f0cc7105367cb79cc0a8bf32bf50cb1673e45" From bc1206df3c0b3892e78bf00b541af9048852721c Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Mon, 17 Jul 2023 16:55:11 +0700 Subject: [PATCH 021/435] upgrade prettier 3 --- README.md | 3 +++ index.html | 2 +- package.json | 4 ++-- yarn.lock | 17 +++++++++-------- 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 7b65927f5f..b69f604fd2 100644 --- a/README.md +++ b/README.md @@ -101,12 +101,15 @@ staking.polkadot.network/#/overview?n=kusama&l=cn ## Using containers You may build a container using: + ``` ./scripts/build-container.sh ``` then run your container with: + ``` podman run --d -p 8080:80 localhost/polkadot-staking-dashboard ``` + and access the **Staking Dashboard** at http://localhost:8080/ diff --git a/index.html b/index.html index 13ab86e30e..09726b6ee2 100644 --- a/index.html +++ b/index.html @@ -1,4 +1,4 @@ - + diff --git a/package.json b/package.json index f8bbf6cec0..146c0f3823 100644 --- a/package.json +++ b/package.json @@ -77,11 +77,11 @@ "eslint-plugin-jsx-a11y": "^6.7.1", "eslint-plugin-prefer-arrow": "^1.2.3", "eslint-plugin-prefer-arrow-functions": "^3.1.4", - "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-prettier": "^5.0.0", "eslint-plugin-react": "^7.32.2", "eslint-plugin-unused-imports": "^3.0.0", "gh-pages": "^5.0.0", - "prettier": "2.8.8", + "prettier": "^3.0.0", "prettier-plugin-organize-imports": "^3.2.3", "sass": "^1.63.6", "typescript": "^5.1.6", diff --git a/yarn.lock b/yarn.lock index b330d0ef71..f5a513403f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3301,12 +3301,13 @@ eslint-plugin-prefer-arrow@^1.2.3: resolved "https://registry.yarnpkg.com/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.3.tgz#e7fbb3fa4cd84ff1015b9c51ad86550e55041041" integrity sha512-J9I5PKCOJretVuiZRGvPQxCbllxGAV/viI20JO3LYblAodofBxyMnZAJ+WGeClHgANnSJberTNoFWWjrWKBuXQ== -eslint-plugin-prettier@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" - integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== +eslint-plugin-prettier@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.0.tgz#6887780ed95f7708340ec79acfdf60c35b9be57a" + integrity sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w== dependencies: prettier-linter-helpers "^1.0.0" + synckit "^0.8.5" eslint-plugin-react@^7.32.2: version "7.32.2" @@ -4856,10 +4857,10 @@ prettier-plugin-organize-imports@^3.2.3: resolved "https://registry.yarnpkg.com/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-3.2.3.tgz#6b0141ac71f7ee9a673ce83e95456319e3a7cf0d" integrity sha512-KFvk8C/zGyvUaE3RvxN2MhCLwzV6OBbFSkwZ2OamCrs9ZY4i5L77jQ/w4UmUr+lqX8qbaqVq6bZZkApn+IgJSg== -prettier@2.8.8: - version "2.8.8" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" - integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== +prettier@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/prettier/-/prettier-3.0.0.tgz#e7b19f691245a21d618c68bc54dc06122f6105ae" + integrity sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g== pretty-format@^29.5.0: version "29.6.1" From b78c01082359aac744130bd97a45d7aa23176c1b Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Mon, 17 Jul 2023 16:57:54 +0700 Subject: [PATCH 022/435] project-wide lint --- src/contexts/Setup/index.tsx | 2 +- src/library/Help/index.tsx | 4 ++-- src/library/Hooks/index.tsx | 19 +++++++++++-------- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/contexts/Setup/index.tsx b/src/contexts/Setup/index.tsx index c141baefc4..8805463cb0 100644 --- a/src/contexts/Setup/index.tsx +++ b/src/contexts/Setup/index.tsx @@ -113,7 +113,7 @@ export const SetupProvider = ({ children }: { children: React.ReactNode }) => { // Utility to update the progress item of either a nominator setup or pool setup, const updateSetups = < T extends NominatorSetups | PoolSetups, - U extends NominatorProgress | PoolProgress + U extends NominatorProgress | PoolProgress, >( all: T, newSetup: U, diff --git a/src/library/Help/index.tsx b/src/library/Help/index.tsx index 0753ccb66c..3c37649dcf 100644 --- a/src/library/Help/index.tsx +++ b/src/library/Help/index.tsx @@ -62,8 +62,8 @@ export const Help = () => { if (definition) { // get items for active category - meta = Object.values(HelpConfig).find((c) => - c?.definitions?.find((d) => d === definition) + meta = Object.values(HelpConfig).find( + (c) => c?.definitions?.find((d) => d === definition) ); } else { // get all items diff --git a/src/library/Hooks/index.tsx b/src/library/Hooks/index.tsx index 568b9f1267..0a6f476717 100644 --- a/src/library/Hooks/index.tsx +++ b/src/library/Hooks/index.tsx @@ -36,12 +36,15 @@ export const withProviders = (...providers: any) => (WrappedComponent: any) => (props: any) => - providers.reduceRight((acc: any, prov: any) => { - let Provider = prov; - if (Array.isArray(prov)) { - Provider = prov[0]; - return {acc}; - } + providers.reduceRight( + (acc: any, prov: any) => { + let Provider = prov; + if (Array.isArray(prov)) { + Provider = prov[0]; + return {acc}; + } - return {acc}; - }, ); + return {acc}; + }, + + ); From 4251b9a41f965cfd9013b45ccfcbf770a7c1ee1c Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Mon, 17 Jul 2023 17:01:27 +0700 Subject: [PATCH 023/435] + node 20.x, - 16.x --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 78df6b8281..6b19a9322e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,7 +26,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: [16.x, 18.x, 19.x] + node-version: [18.x, 19.x, 20.x] steps: - uses: actions/checkout@v3 - name: Use Node.js ${{ matrix.node-version }} From c85c620c1de029288dba95de2a14e015bc33f24b Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Mon, 17 Jul 2023 18:20:26 +0700 Subject: [PATCH 024/435] transient prop fixes --- package.json | 2 +- src/library/List/index.ts | 4 ++-- src/library/List/types.ts | 2 +- src/library/ListItem/Labels/EraStatus.tsx | 2 +- src/library/ListItem/Labels/NominationStatus.tsx | 2 +- src/library/ListItem/Labels/PoolBonded.tsx | 2 +- src/library/ListItem/Labels/PoolMemberBonded.tsx | 6 +++--- src/library/ListItem/Wrappers.ts | 14 +++++++------- src/library/Pool/index.tsx | 2 +- src/library/PoolList/Default.tsx | 2 +- src/library/ValidatorList/Validator/Default.tsx | 2 +- src/library/ValidatorList/Validator/Nomination.tsx | 2 +- src/library/ValidatorList/index.tsx | 2 +- src/modals/ChooseLanguage/Wrapper.ts | 4 ++-- src/modals/ChooseLanguage/index.tsx | 2 +- src/modals/Networks/Wrapper.ts | 9 ++++----- src/modals/Networks/index.tsx | 6 +++--- src/pages/Payouts/PayoutList/index.tsx | 2 +- src/pages/Pools/Home/MembersList/Default.tsx | 2 +- src/pages/Pools/Home/MembersList/FetchPage.tsx | 2 +- src/pages/Pools/Home/MembersList/Member.tsx | 2 +- yarn.lock | 8 ++++---- 22 files changed, 40 insertions(+), 41 deletions(-) diff --git a/package.json b/package.json index f8bbf6cec0..fd6296d5c5 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "@polkadot/rpc-provider": "^10.9.1", "@polkadot/util": "^12.1.1", "@polkadot/util-crypto": "12.3.2", - "@polkadotcloud/core-ui": "^0.3.42", + "@polkadotcloud/core-ui": "^0.3.44", "@polkadotcloud/react-odometer": "^0.1.17", "@polkadotcloud/utils": "^0.2.22", "@substrate/connect": "^0.7.30", diff --git a/src/library/List/index.ts b/src/library/List/index.ts index ad7e4cda19..c6b8c4c79f 100644 --- a/src/library/List/index.ts +++ b/src/library/List/index.ts @@ -143,8 +143,8 @@ export const List = styled.div` max-width: 50%; } @media (min-width: 1500px) { - flex-basis: ${(props) => props.flexBasisLarge}; - max-width: ${(props) => props.flexBasisLarge}; + flex-basis: ${(props) => props.$flexBasisLarge}; + max-width: ${(props) => props.$flexBasisLarge}; } } } diff --git a/src/library/List/types.ts b/src/library/List/types.ts index 8843eb36dd..308c82d070 100644 --- a/src/library/List/types.ts +++ b/src/library/List/types.ts @@ -9,7 +9,7 @@ export interface PaginationWrapperProps { } export interface ListProps { - flexBasisLarge: string; + $flexBasisLarge: string; } export interface PaginationProps { diff --git a/src/library/ListItem/Labels/EraStatus.tsx b/src/library/ListItem/Labels/EraStatus.tsx index e7a1f508b0..24df9dacdd 100644 --- a/src/library/ListItem/Labels/EraStatus.tsx +++ b/src/library/ListItem/Labels/EraStatus.tsx @@ -48,7 +48,7 @@ export const EraStatus = ({ address }: { address: MaybeAccount }) => { const totalStake = planckToUnit(totalStakePlanck, units); return ( - +
{isSyncing || erasStakersSyncing ? t('syncing') diff --git a/src/library/ListItem/Labels/NominationStatus.tsx b/src/library/ListItem/Labels/NominationStatus.tsx index dd1e8672b9..608e11f32b 100644 --- a/src/library/ListItem/Labels/NominationStatus.tsx +++ b/src/library/ListItem/Labels/NominationStatus.tsx @@ -54,7 +54,7 @@ export const NominationStatus = ({ } return ( - +
{t(`${nominationStatus}`)} {greaterThanZero(stakedAmount) diff --git a/src/library/ListItem/Labels/PoolBonded.tsx b/src/library/ListItem/Labels/PoolBonded.tsx index c4439e86d1..ae0589a06e 100644 --- a/src/library/ListItem/Labels/PoolBonded.tsx +++ b/src/library/ListItem/Labels/PoolBonded.tsx @@ -78,7 +78,7 @@ export const PoolBonded = ({ return ( <> - +
{nominationStatus === null || !eraStakers.stakers.length ? `${t('syncing')}...` diff --git a/src/library/ListItem/Labels/PoolMemberBonded.tsx b/src/library/ListItem/Labels/PoolMemberBonded.tsx index 72cc05a86a..8430964679 100644 --- a/src/library/ListItem/Labels/PoolMemberBonded.tsx +++ b/src/library/ListItem/Labels/PoolMemberBonded.tsx @@ -36,13 +36,13 @@ export const PoolMemberBonded = ({ meta, batchKey, batchIndex }: any) => { return ( <> {!poolMember ? ( - +
{t('syncing')}...
) : ( <> {greaterThanZero(bonded) && ( - +
{t('bonded')}: {bonded.decimalPlaces(3).toFormat()} {unit}
@@ -52,7 +52,7 @@ export const PoolMemberBonded = ({ meta, batchKey, batchIndex }: any) => { )} {poolMember && greaterThanZero(totalUnbonding) && ( - +
{t('unbonding')} {totalUnbonding.decimalPlaces(3).toFormat()} {unit}
diff --git a/src/library/ListItem/Wrappers.ts b/src/library/ListItem/Wrappers.ts index 1332497ce4..9f62caf49f 100644 --- a/src/library/ListItem/Wrappers.ts +++ b/src/library/ListItem/Wrappers.ts @@ -5,22 +5,22 @@ import { SmallFontSizeMaxWidth } from 'consts'; import { motion } from 'framer-motion'; import styled from 'styled-components'; -export const Wrapper = styled.div<{ format?: string; inModal?: boolean }>` +export const Wrapper = styled.div<{ $format?: string; $inModal?: boolean }>` display: flex; flex-flow: row wrap; width: 100%; - height: ${(props) => (props.format === 'nomination' ? '6rem' : '3rem')}; + height: ${(props) => (props.$format === 'nomination' ? '6rem' : '3rem')}; position: relative; margin: 0.5rem; > .inner { background: ${(props) => - props.inModal + props.$inModal ? 'var(--background-modal-item)' : 'var(--background-list-item)'}; ${(props) => - props.inModal && + props.$inModal && ` box-shadow: none; border: none;`} @@ -180,16 +180,16 @@ export const IdentityWrapper = styled(motion.div)` } `; -export const ValidatorStatusWrapper = styled.div<{ status: string }>` +export const ValidatorStatusWrapper = styled.div<{ $status: string }>` margin-right: 0.35rem; padding: 0 0.5rem; h5 { color: ${(props) => - props.status === 'active' + props.$status === 'active' ? 'var(--status-success-color)' : 'var(--text-color-secondary)'}; - opacity: ${(props) => (props.status === 'active' ? 0.8 : 0.5)}; + opacity: ${(props) => (props.$status === 'active' ? 0.8 : 0.5)}; display: flex; overflow: hidden; text-overflow: ellipsis; diff --git a/src/library/Pool/index.tsx b/src/library/Pool/index.tsx index b4d99bd877..4cfe1dc295 100644 --- a/src/library/Pool/index.tsx +++ b/src/library/Pool/index.tsx @@ -113,7 +113,7 @@ export const Pool = ({ pool, batchKey, batchIndex }: PoolProps) => { }; return ( - +
diff --git a/src/library/PoolList/Default.tsx b/src/library/PoolList/Default.tsx index da3c473706..552f9a08ec 100644 --- a/src/library/PoolList/Default.tsx +++ b/src/library/PoolList/Default.tsx @@ -195,7 +195,7 @@ export const PoolList = ({
- + {allowSearch && poolsDefault.length > 0 && ( +
diff --git a/src/library/ValidatorList/Validator/Nomination.tsx b/src/library/ValidatorList/Validator/Nomination.tsx index ad3cdfd3ba..0d8c861efc 100644 --- a/src/library/ValidatorList/Validator/Nomination.tsx +++ b/src/library/ValidatorList/Validator/Nomination.tsx @@ -35,7 +35,7 @@ export const Nomination = ({ const commission = prefs?.commission ?? null; return ( - +
{selectActive && ) => handleChange(e) diff --git a/src/library/Headers/Connected.tsx b/src/library/Headers/Connected.tsx index a091b4fedd..356fbb912a 100644 --- a/src/library/Headers/Connected.tsx +++ b/src/library/Headers/Connected.tsx @@ -51,7 +51,7 @@ export const Connected = () => { {}} filled @@ -66,7 +66,7 @@ export const Connected = () => { canClick={false} value={activeProxy} readOnly={!accountHasSigner(activeProxy)} - label={`${t('proxy')}`} + label={t('proxy')} format="name" filled /> diff --git a/src/library/Help/Items/External.tsx b/src/library/Help/Items/External.tsx index 793de44ff4..1bd4e73c51 100644 --- a/src/library/Help/Items/External.tsx +++ b/src/library/Help/Items/External.tsx @@ -20,7 +20,7 @@ export const External = ({ }, [url]); return ( - + {
0} - title={`${t('nominate')}`} + title={t('nominate')} helpKey="Nominating" bondFor={bondFor} /> diff --git a/src/library/SideMenu/Primary/index.tsx b/src/library/SideMenu/Primary/index.tsx index 8b54b28ee2..0773fb7be4 100644 --- a/src/library/SideMenu/Primary/index.tsx +++ b/src/library/SideMenu/Primary/index.tsx @@ -28,7 +28,9 @@ export const Primary = ({ case 'text': Action = (
- {action?.text ?? ''} + + {action?.text ?? ''} +
); break; diff --git a/src/library/SubmitTx/Default.tsx b/src/library/SubmitTx/Default.tsx index 7fefe32548..0acdf12b10 100644 --- a/src/library/SubmitTx/Default.tsx +++ b/src/library/SubmitTx/Default.tsx @@ -31,7 +31,7 @@ export const Default = ({
{buttons} onSubmit()} diff --git a/src/library/SubmitTx/ManualSign/Ledger.tsx b/src/library/SubmitTx/ManualSign/Ledger.tsx index 9fcaa3062f..d967e8d06d 100644 --- a/src/library/SubmitTx/ManualSign/Ledger.tsx +++ b/src/library/SubmitTx/ManualSign/Ledger.tsx @@ -139,7 +139,7 @@ export const Ledger = ({ {buttons} {getTxSignature() !== null || submitting ? ( onSubmit()} diff --git a/src/library/SubmitTx/ManualSign/Vault/index.tsx b/src/library/SubmitTx/ManualSign/Vault/index.tsx index f6ebfd9539..bfed63412c 100644 --- a/src/library/SubmitTx/ManualSign/Vault/index.tsx +++ b/src/library/SubmitTx/ManualSign/Vault/index.tsx @@ -39,7 +39,7 @@ export const Vault = ({ {buttons} {getTxSignature() !== null || submitting ? ( onSubmit()} diff --git a/src/library/ValidatorList/Filters.tsx b/src/library/ValidatorList/Filters.tsx index 0be59aa062..5624f76be9 100644 --- a/src/library/ValidatorList/Filters.tsx +++ b/src/library/ValidatorList/Filters.tsx @@ -73,7 +73,7 @@ export const Filters = () => { } disabled /> - {!hasFilters && } + {!hasFilters && } {includes?.map((e, i) => ( { ) : null} diff --git a/src/modals/ManagePool/Forms/Commission.tsx b/src/modals/ManagePool/Forms/Commission.tsx index ca74ff5ced..78295644b0 100644 --- a/src/modals/ManagePool/Forms/Commission.tsx +++ b/src/modals/ManagePool/Forms/Commission.tsx @@ -491,7 +491,7 @@ export const Commission = ({ setSection, incrementCalculateHeight }: any) => { { setPayee(input); diff --git a/src/modals/ManagePool/Forms/SetMetadata.tsx b/src/modals/ManagePool/Forms/SetMetadata.tsx index dac8bc16c9..f879bd31e6 100644 --- a/src/modals/ManagePool/Forms/SetMetadata.tsx +++ b/src/modals/ManagePool/Forms/SetMetadata.tsx @@ -91,7 +91,7 @@ export const SetMetadata = ({ setSection, section }: any) => { ) => handleMetadataChange(e) diff --git a/src/modals/Networks/index.tsx b/src/modals/Networks/index.tsx index cc56dbde66..a3bce964ef 100644 --- a/src/modals/Networks/index.tsx +++ b/src/modals/Networks/index.tsx @@ -115,7 +115,7 @@ export const Networks = () => {
, i: }} />
diff --git a/src/modals/Unbond/index.tsx b/src/modals/Unbond/index.tsx index d9ef853feb..b5d3fcf513 100644 --- a/src/modals/Unbond/index.tsx +++ b/src/modals/Unbond/index.tsx @@ -177,7 +177,7 @@ export const Unbond = () => { <> -

{`${t('removeBond')}`}

+

{t('removeBond')}

{warnings.length > 0 ? ( {warnings.map((text, i) => ( diff --git a/src/pages/Community/index.tsx b/src/pages/Community/index.tsx index da3376b0df..077dda373d 100644 --- a/src/pages/Community/index.tsx +++ b/src/pages/Community/index.tsx @@ -17,7 +17,7 @@ export const CommunityInner = ({ page }: PageProps) => { return ( - + {activeSection === 0 && } {activeSection === 1 && } diff --git a/src/pages/Nominate/Active/index.tsx b/src/pages/Nominate/Active/index.tsx index 841e05bdb4..ce7381ff87 100644 --- a/src/pages/Nominate/Active/index.tsx +++ b/src/pages/Nominate/Active/index.tsx @@ -44,7 +44,7 @@ export const Active = () => { return ( <> - + diff --git a/src/pages/Nominate/Setup/Bond/index.tsx b/src/pages/Nominate/Setup/Bond/index.tsx index e81fed8216..7ccfdc6a25 100644 --- a/src/pages/Nominate/Setup/Bond/index.tsx +++ b/src/pages/Nominate/Setup/Bond/index.tsx @@ -61,7 +61,7 @@ export const Bond = ({ section }: SetupStepProps) => {
diff --git a/src/pages/Nominate/Setup/Payee/index.tsx b/src/pages/Nominate/Setup/Payee/index.tsx index 2c5497bd41..66f42b6c87 100644 --- a/src/pages/Nominate/Setup/Payee/index.tsx +++ b/src/pages/Nominate/Setup/Payee/index.tsx @@ -73,7 +73,7 @@ export const Payee = ({ section }: SetupStepProps) => {
diff --git a/src/pages/Nominate/Setup/Summary/index.tsx b/src/pages/Nominate/Setup/Summary/index.tsx index f18672e1c1..6908b330bc 100644 --- a/src/pages/Nominate/Setup/Summary/index.tsx +++ b/src/pages/Nominate/Setup/Summary/index.tsx @@ -79,7 +79,7 @@ export const Summary = ({ section }: SetupStepProps) => {
@@ -124,7 +124,7 @@ export const Summary = ({ section }: SetupStepProps) => { }} > { return ( <> - + diff --git a/src/pages/Overview/index.tsx b/src/pages/Overview/index.tsx index e8b163a27c..bcedf5c3e5 100644 --- a/src/pages/Overview/index.tsx +++ b/src/pages/Overview/index.tsx @@ -62,7 +62,7 @@ export const Overview = () => { return ( <> - + diff --git a/src/pages/Payouts/PayoutList/index.tsx b/src/pages/Payouts/PayoutList/index.tsx index 02d254aa20..8355af04df 100644 --- a/src/pages/Payouts/PayoutList/index.tsx +++ b/src/pages/Payouts/PayoutList/index.tsx @@ -191,7 +191,7 @@ export const PayoutListInner = ({
-

+

<> {p.event_id === 'Slashed' ? '-' : '+'} {planckToUnit( @@ -203,7 +203,7 @@ export const PayoutListInner = ({

-
{label}
+
{label}
diff --git a/src/pages/Payouts/index.tsx b/src/pages/Payouts/index.tsx index ad579bec49..e9cb650336 100644 --- a/src/pages/Payouts/index.tsx +++ b/src/pages/Payouts/index.tsx @@ -48,7 +48,7 @@ export const Payouts = ({ page }: PageProps) => { return ( <> - + diff --git a/src/pages/Pools/Create/Bond/index.tsx b/src/pages/Pools/Create/Bond/index.tsx index e5bcc5e283..d6ad9d405c 100644 --- a/src/pages/Pools/Create/Bond/index.tsx +++ b/src/pages/Pools/Create/Bond/index.tsx @@ -61,7 +61,7 @@ export const Bond = ({ section }: SetupStepProps) => {
diff --git a/src/pages/Pools/Create/PoolName/Input.tsx b/src/pages/Pools/Create/PoolName/Input.tsx index b1dc365891..6c3e7c741b 100644 --- a/src/pages/Pools/Create/PoolName/Input.tsx +++ b/src/pages/Pools/Create/PoolName/Input.tsx @@ -43,7 +43,7 @@ export const Input = ({ ) => handleChange(e)} value={metadata ?? ''} diff --git a/src/pages/Pools/Create/PoolName/index.tsx b/src/pages/Pools/Create/PoolName/index.tsx index c02a4e4ab3..eb0b31eb70 100644 --- a/src/pages/Pools/Create/PoolName/index.tsx +++ b/src/pages/Pools/Create/PoolName/index.tsx @@ -56,8 +56,7 @@ export const PoolName = ({ section }: SetupStepProps) => {
diff --git a/src/pages/Pools/Create/PoolRoles/index.tsx b/src/pages/Pools/Create/PoolRoles/index.tsx index f6ef7b01d7..f9c08c9614 100644 --- a/src/pages/Pools/Create/PoolRoles/index.tsx +++ b/src/pages/Pools/Create/PoolRoles/index.tsx @@ -63,20 +63,17 @@ export const PoolRoles = ({ section }: SetupStepProps) => {

- }} - /> + }} />

}} />

diff --git a/src/pages/Pools/Create/Summary/index.tsx b/src/pages/Pools/Create/Summary/index.tsx index 704f0b8eaf..fadc0ca42f 100644 --- a/src/pages/Pools/Create/Summary/index.tsx +++ b/src/pages/Pools/Create/Summary/index.tsx @@ -89,7 +89,7 @@ export const Summary = ({ section }: SetupStepProps) => {
@@ -137,7 +137,7 @@ export const Summary = ({ section }: SetupStepProps) => { }} > { return ( <> - + diff --git a/src/pages/Pools/Home/Status/MembershipStatus.tsx b/src/pages/Pools/Home/Status/MembershipStatus.tsx index 2d4bbf68d3..86ddac9fa1 100644 --- a/src/pages/Pools/Home/Status/MembershipStatus.tsx +++ b/src/pages/Pools/Home/Status/MembershipStatus.tsx @@ -86,7 +86,7 @@ export const MembershipStatus = ({ diff --git a/src/pages/Pools/Home/index.tsx b/src/pages/Pools/Home/index.tsx index 805f59bec8..e3a1a047dd 100644 --- a/src/pages/Pools/Home/index.tsx +++ b/src/pages/Pools/Home/index.tsx @@ -111,7 +111,7 @@ export const HomeInner = () => { return ( <> {
) => handleChange(e)} value={roleEdit?.newAddress ?? ''} diff --git a/src/pages/Validators/index.tsx b/src/pages/Validators/index.tsx index c029e28c79..8f405f94ea 100644 --- a/src/pages/Validators/index.tsx +++ b/src/pages/Validators/index.tsx @@ -35,7 +35,7 @@ export const ValidatorsInner = () => { return ( <> - + {activeTab === 0 && } {activeTab === 1 && } diff --git a/yarn.lock b/yarn.lock index 4e6946cf52..d3bba90615 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1827,10 +1827,10 @@ tslib "^2.5.3" ws "^8.13.0" -"@polkadotcloud/core-ui@^0.3.51": - version "0.3.51" - resolved "https://registry.npmjs.org/@polkadotcloud/core-ui/-/core-ui-0.3.51.tgz#452fa3d39771d55b7fa8bf25b1996c05d456326c" - integrity sha512-oMHwD5M+tb3cfF1BOv/rOlEBjSt05yj7I9MmItI4K2viV3NN6xSK1h+1yBKnW4qNNfmM5BnpwmwRic1ysXqT9A== +"@polkadotcloud/core-ui@^0.3.52": + version "0.3.52" + resolved "https://registry.npmjs.org/@polkadotcloud/core-ui/-/core-ui-0.3.52.tgz#e46b04860a3ffbd90a5ff85febe88a82930df434" + integrity sha512-w0Pvx2WlzUFnrfGki2x3xpAZIRPYNMFbX4bpJf3jh0bnnEMrdcNbT2eU80ktfIPdJcpT2htFnU8oOf5NYr5ePA== "@polkadotcloud/react-odometer@^0.1.17": version "0.1.17" @@ -3293,10 +3293,10 @@ eslint-plugin-prettier@^5.0.0: prettier-linter-helpers "^1.0.0" synckit "^0.8.5" -eslint-plugin-react@^7.32.2: - version "7.32.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz#e71f21c7c265ebce01bcbc9d0955170c55571f10" - integrity sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg== +eslint-plugin-react@^7.33.0: + version "7.33.0" + resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.0.tgz#6c356fb0862fec2cd1b04426c669ea746e9b6eb3" + integrity sha512-qewL/8P34WkY8jAqdQxsiL82pDUeT7nhs8IsuXgfgnsEloKCT4miAV9N9kGtx7/KM9NH/NCGUE7Edt9iGxLXFw== dependencies: array-includes "^3.1.6" array.prototype.flatmap "^1.3.1" @@ -3311,7 +3311,7 @@ eslint-plugin-react@^7.32.2: object.values "^1.1.6" prop-types "^15.8.1" resolve "^2.0.0-next.4" - semver "^6.3.0" + semver "^6.3.1" string.prototype.matchall "^4.0.8" eslint-plugin-unused-imports@^3.0.0: From f2f14640f349bc1836f1ec251e4c2bc32dfbcdbe Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Mon, 24 Jul 2023 13:04:22 +0700 Subject: [PATCH 046/435] add hook, test cases --- src/contexts/Pools/ActivePools/index.tsx | 5 +++-- .../Hooks/useEffectIgnoreInitial/index.tsx | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 src/library/Hooks/useEffectIgnoreInitial/index.tsx diff --git a/src/contexts/Pools/ActivePools/index.tsx b/src/contexts/Pools/ActivePools/index.tsx index f0e34fbf51..f5038065dc 100644 --- a/src/contexts/Pools/ActivePools/index.tsx +++ b/src/contexts/Pools/ActivePools/index.tsx @@ -11,6 +11,7 @@ import type { import { useStaking } from 'contexts/Staking'; import React, { useEffect, useMemo, useRef, useState } from 'react'; import type { AnyApi, AnyJson, Sync } from 'types'; +import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import { useApi } from '../../Api'; import { useConnect } from '../../Connect'; import { useBondedPools } from '../BondedPools'; @@ -470,7 +471,7 @@ export const ActivePoolsProvider = ({ ); // re-calculate pending rewards when membership changes - useEffect(() => { + useEffectIgnoreInitial(() => { updatePendingRewards(); }, [ network, @@ -482,7 +483,7 @@ export const ActivePoolsProvider = ({ // when we are subscribed to all active pools, syncing is considered // completed. - useEffect(() => { + useEffectIgnoreInitial(() => { if (unsubNominations.current.length === accountPools.length) { setStateWithRef('synced', setSynced, syncedRef); } diff --git a/src/library/Hooks/useEffectIgnoreInitial/index.tsx b/src/library/Hooks/useEffectIgnoreInitial/index.tsx new file mode 100644 index 0000000000..ba3a1aa97c --- /dev/null +++ b/src/library/Hooks/useEffectIgnoreInitial/index.tsx @@ -0,0 +1,19 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { useEffect, useRef } from 'react'; +import type { AnyApi, AnyFunction } from 'types'; + +export const useEffectIgnoreInitial = (fn: AnyFunction, deps: AnyApi[]) => { + const isInitial = useRef(true); + + useEffect( + () => { + if (!isInitial.current) { + fn(); + } + isInitial.current = false; + }, + deps ? [...deps] : undefined + ); +}; From dc34df964b05385ed46302251880deacb90325c4 Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Mon, 24 Jul 2023 13:22:22 +0700 Subject: [PATCH 047/435] use useEffectIgnoreInitial in contexts --- src/contexts/Api/index.tsx | 5 +-- src/contexts/Balances/index.tsx | 7 ++-- src/contexts/Bonded/index.tsx | 12 ++++--- src/contexts/Connect/index.tsx | 7 ++-- src/contexts/FastUnstake/index.tsx | 5 +-- src/contexts/Help/index.tsx | 5 +-- src/contexts/Migrate/index.tsx | 5 +-- src/contexts/Modal/index.tsx | 5 +-- src/contexts/Network/index.tsx | 7 ++-- src/contexts/Pools/ActivePools/index.tsx | 37 ++++++++++---------- src/contexts/Pools/BondedPools/index.tsx | 9 ++--- src/contexts/Pools/PoolMembers/index.tsx | 9 ++--- src/contexts/Pools/PoolMemberships/index.tsx | 3 +- src/contexts/Pools/PoolsConfig/index.tsx | 5 +-- src/contexts/Proxies/index.tsx | 11 +++--- src/contexts/Setup/index.tsx | 9 ++--- src/contexts/Staking/index.tsx | 11 +++--- src/contexts/Subscan/index.tsx | 11 +++--- src/contexts/TransferOptions/index.tsx | 5 +-- src/contexts/TxMeta/index.tsx | 5 +-- src/contexts/UI/index.tsx | 3 +- src/contexts/Validators/index.tsx | 21 +++++------ 22 files changed, 109 insertions(+), 88 deletions(-) diff --git a/src/contexts/Api/index.tsx b/src/contexts/Api/index.tsx index be87979fc5..9dff2bdf69 100644 --- a/src/contexts/Api/index.tsx +++ b/src/contexts/Api/index.tsx @@ -30,6 +30,7 @@ import type { } from 'contexts/Api/types'; import React, { useEffect, useState } from 'react'; import type { AnyApi, NetworkName } from 'types'; +import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import * as defaults from './defaults'; export const APIProvider = ({ children }: { children: React.ReactNode }) => { @@ -138,7 +139,7 @@ export const APIProvider = ({ children }: { children: React.ReactNode }) => { }; // Dynamically load `Sc` when user opts to use light client. - useEffect(() => { + useEffectIgnoreInitial(() => { if (isLightClient) { setApiStatus('connecting'); const { promise: ScPromise, cancel } = makeCancelable( @@ -154,7 +155,7 @@ export const APIProvider = ({ children }: { children: React.ReactNode }) => { }, [isLightClient, network.name]); // Initialise provider event handlers when provider is set. - useEffect(() => { + useEffectIgnoreInitial(() => { if (provider) { provider.on('connected', () => { setApiStatus('connected'); diff --git a/src/contexts/Balances/index.tsx b/src/contexts/Balances/index.tsx index b365c24928..8ba2ae456f 100644 --- a/src/contexts/Balances/index.tsx +++ b/src/contexts/Balances/index.tsx @@ -12,8 +12,9 @@ import { import BigNumber from 'bignumber.js'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; -import React, { useEffect, useRef, useState } from 'react'; +import React, { useRef, useState } from 'react'; import type { AnyApi, MaybeAccount } from 'types'; +import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import { getLedger } from './Utils'; import * as defaults from './defaults'; import type { @@ -173,14 +174,14 @@ export const BalancesProvider = ({ }; // fetch account balances & ledgers. Remove or add subscriptions - useEffect(() => { + useEffectIgnoreInitial(() => { if (isReady) { handleSyncAccounts(); } }, [accounts, network, isReady]); // Unsubscribe from subscriptions on network change & unmount. - useEffect(() => { + useEffectIgnoreInitial(() => { unsubAll(); return () => unsubAll(); }, [network]); diff --git a/src/contexts/Bonded/index.tsx b/src/contexts/Bonded/index.tsx index c173025d65..46ac651512 100644 --- a/src/contexts/Bonded/index.tsx +++ b/src/contexts/Bonded/index.tsx @@ -12,6 +12,7 @@ import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; import React, { useEffect, useRef, useState } from 'react'; import type { AnyApi, MaybeAccount } from 'types'; +import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import * as defaults from './defaults'; import type { BondedAccount, BondedContextInterface } from './types'; @@ -61,19 +62,20 @@ export const BondedProvider = ({ children }: { children: React.ReactNode }) => { }; // Handle accounts sync on connected accounts change. - useEffect(() => { + useEffectIgnoreInitial(() => { if (isReady) { handleSyncAccounts(); } }, [accounts, network, isReady]); // Unsubscribe from subscriptions on unmount. - useEffect(() => { - return () => + useEffect( + () => () => Object.values(unsubs.current).forEach((unsub) => { unsub(); - }); - }, []); + }), + [] + ); // Subscribe to account, get controller and nominations. const subscribeToBondedAccount = async (address: string) => { diff --git a/src/contexts/Connect/index.tsx b/src/contexts/Connect/index.tsx index c6506b138f..ffc161ba74 100644 --- a/src/contexts/Connect/index.tsx +++ b/src/contexts/Connect/index.tsx @@ -27,6 +27,7 @@ import { } from 'contexts/Hardware/Utils'; import React, { useEffect, useRef, useState } from 'react'; import type { AnyApi, MaybeAccount } from 'types'; +import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import { useImportExtension } from './Hooks/useImportExtension'; import { extensionIsLocal, @@ -139,7 +140,7 @@ export const ConnectProvider = ({ // once initialised extensions equal total extensions present in // `injectedWeb3`, mark extensions as fetched - useEffect(() => { + useEffectIgnoreInitial(() => { if (!checkingInjectedWeb3) { if (extensionsInitialisedRef.current.length === extensions?.length || 0) { setExtensionsFetched(true); @@ -149,7 +150,7 @@ export const ConnectProvider = ({ // once extensions are fully initialised, fetch any external accounts present // in localStorage. - useEffect(() => { + useEffectIgnoreInitial(() => { if (extensionsFetched) { importVaultAccounts(); importLedgerAccounts(); @@ -160,7 +161,7 @@ export const ConnectProvider = ({ }, [extensionsFetched]); // account fetching complete, mark accounts as initialised. - useEffect(() => { + useEffectIgnoreInitial(() => { if (extensionsFetched && hardwareInitialisedRef.current === true) { accountsInitialisedRef.current = true; } diff --git a/src/contexts/FastUnstake/index.tsx b/src/contexts/FastUnstake/index.tsx index de342b9180..09ff7d5770 100644 --- a/src/contexts/FastUnstake/index.tsx +++ b/src/contexts/FastUnstake/index.tsx @@ -12,9 +12,10 @@ import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; import { useNetworkMetrics } from 'contexts/Network'; import { useStaking } from 'contexts/Staking'; -import React, { useEffect, useRef, useState } from 'react'; +import React, { useRef, useState } from 'react'; import type { AnyApi, AnyJson, MaybeAccount } from 'types'; import Worker from 'workers/stakers?worker'; +import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import { defaultFastUnstakeContext, defaultMeta } from './defaults'; import type { FastUnstakeContextInterface, @@ -71,7 +72,7 @@ export const FastUnstakeProvider = ({ const checkToEra = activeEra.index.minus(bondDuration); // initiate fast unstake check for accounts that are nominating but not active. - useEffect(() => { + useEffectIgnoreInitial(() => { if ( isReady && activeAccount && diff --git a/src/contexts/Help/index.tsx b/src/contexts/Help/index.tsx index 6be91957a4..0ead2573fd 100644 --- a/src/contexts/Help/index.tsx +++ b/src/contexts/Help/index.tsx @@ -1,8 +1,9 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: Apache-2.0 -import React, { useEffect, useState } from 'react'; +import React, { useState } from 'react'; import type { MaybeString } from 'types'; +import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import * as defaults from './defaults'; import type { HelpContextInterface, @@ -18,7 +19,7 @@ export const HelpProvider = ({ children }: HelpContextProps) => { }); // when fade out completes, reset active definiton - useEffect(() => { + useEffectIgnoreInitial(() => { if (state.status === 0) { setState({ ...state, diff --git a/src/contexts/Migrate/index.tsx b/src/contexts/Migrate/index.tsx index ad2d0cd2dc..754a74d530 100644 --- a/src/contexts/Migrate/index.tsx +++ b/src/contexts/Migrate/index.tsx @@ -6,7 +6,8 @@ import { AppVersion } from 'consts'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; import { useUi } from 'contexts/UI'; -import React, { useEffect, useState } from 'react'; +import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import React, { useState } from 'react'; export const MigrateProvider = ({ children, @@ -43,7 +44,7 @@ export const MigrateProvider = ({ localStorage.removeItem(`${n.name}_active_proxy`); }); - useEffect(() => { + useEffectIgnoreInitial(() => { if (isReady && !isNetworkSyncing && !done) { // Carry out migrations if local version is different to current version. if (localAppVersion !== AppVersion) { diff --git a/src/contexts/Modal/index.tsx b/src/contexts/Modal/index.tsx index 5c43eafa6b..bd7132953d 100644 --- a/src/contexts/Modal/index.tsx +++ b/src/contexts/Modal/index.tsx @@ -3,7 +3,8 @@ import { setStateWithRef } from '@polkadotcloud/utils'; import { useTxMeta } from 'contexts/TxMeta'; -import React, { useEffect, useRef, useState } from 'react'; +import React, { useRef, useState } from 'react'; +import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import { defaultModalContext } from './defaults'; import type { ModalConfig, ModalContextInterface, ModalOptions } from './types'; @@ -28,7 +29,7 @@ export const ModalProvider = ({ children }: { children: React.ReactNode }) => { // Store the modal's resize counter. const [resize, setModalResize] = useState(0); - useEffect(() => { + useEffectIgnoreInitial(() => { setResize(); }, [statusRef.current, notEnoughFunds]); diff --git a/src/contexts/Network/index.tsx b/src/contexts/Network/index.tsx index c70e86ff0a..dbbb537cb9 100644 --- a/src/contexts/Network/index.tsx +++ b/src/contexts/Network/index.tsx @@ -3,8 +3,9 @@ import { setStateWithRef } from '@polkadotcloud/utils'; import BigNumber from 'bignumber.js'; -import React, { useEffect, useRef, useState } from 'react'; +import React, { useRef, useState } from 'react'; import type { AnyApi, AnyJson } from 'types'; +import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import { useApi } from '../Api'; import * as defaults from './defaults'; import type { @@ -121,7 +122,7 @@ export const NetworkMetricsProvider = ({ }; // manage unsubscribe - useEffect(() => { + useEffectIgnoreInitial(() => { initialiseSubscriptions(); return () => { unsubscribe(); @@ -129,7 +130,7 @@ export const NetworkMetricsProvider = ({ }, [isReady]); // Reset active era and metrics on network change. - useEffect(() => { + useEffectIgnoreInitial(() => { handleResetMetrics(); }, [network]); diff --git a/src/contexts/Pools/ActivePools/index.tsx b/src/contexts/Pools/ActivePools/index.tsx index f5038065dc..185b52cda4 100644 --- a/src/contexts/Pools/ActivePools/index.tsx +++ b/src/contexts/Pools/ActivePools/index.tsx @@ -72,25 +72,6 @@ export const ActivePoolsProvider = ({ // Should default to the membership pool (if present). const [selectedPoolId, setSelectedPoolId] = useState(null); - // re-sync when number of accountRoles change. - // this can happen when bondedPools sync, when roles - // are edited within the dashboard, or when pool - // membership changes. - useEffect(() => { - unsubscribeActivePools(); - unsubscribePoolNominations(); - - setStateWithRef('unsynced', setSynced, syncedRef); - }, [activeAccount, accountPools.length]); - - // subscribe to pool that the active account is a member of. - useEffect(() => { - if (isReady && syncedRef.current === 'unsynced') { - setStateWithRef('syncing', setSynced, syncedRef); - handlePoolSubscriptions(); - } - }, [network, isReady, syncedRef.current]); - const getActivePoolMembership = () => // get the activePool that the active account activePoolsRef.current.find((a) => { @@ -461,6 +442,24 @@ export const ActivePoolsProvider = ({ ); }; + // re-sync when number of accountRoles change. + // this can happen when bondedPools sync, when roles + // are edited within the dashboard, or when pool + // membership changes. + useEffectIgnoreInitial(() => { + unsubscribeActivePools(); + unsubscribePoolNominations(); + setStateWithRef('unsynced', setSynced, syncedRef); + }, [activeAccount, accountPools.length]); + + // subscribe to pool that the active account is a member of. + useEffectIgnoreInitial(() => { + if (isReady && syncedRef.current === 'unsynced') { + setStateWithRef('syncing', setSynced, syncedRef); + handlePoolSubscriptions(); + } + }, [network, isReady, syncedRef.current]); + // unsubscribe all on component unmount useEffect( () => () => { diff --git a/src/contexts/Pools/BondedPools/index.tsx b/src/contexts/Pools/BondedPools/index.tsx index 78d0ae2337..4b16dd6da1 100644 --- a/src/contexts/Pools/BondedPools/index.tsx +++ b/src/contexts/Pools/BondedPools/index.tsx @@ -10,8 +10,9 @@ import type { NominationStatuses, } from 'contexts/Pools/types'; import { useStaking } from 'contexts/Staking'; -import React, { useEffect, useRef, useState } from 'react'; +import React, { useRef, useState } from 'react'; import type { AnyApi, AnyMetaBatch, Fn, MaybeAccount } from 'types'; +import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import { useApi } from '../../Api'; import { usePoolsConfig } from '../PoolsConfig'; import { defaultBondedPoolsContext } from './defaults'; @@ -37,13 +38,13 @@ export const BondedPoolsProvider = ({ const [bondedPools, setBondedPools] = useState([]); // clear existing state for network refresh - useEffect(() => { + useEffectIgnoreInitial(() => { setBondedPools([]); setStateWithRef({}, setPoolMetaBatch, poolMetaBatchesRef); }, [network]); // initial setup for fetching bonded pools - useEffect(() => { + useEffectIgnoreInitial(() => { if (isReady) { // fetch bonded pools fetchBondedPools(); @@ -54,7 +55,7 @@ export const BondedPoolsProvider = ({ }, [network, isReady, lastPoolId]); // after bonded pools have synced, fetch metabatch - useEffect(() => { + useEffectIgnoreInitial(() => { if (bondedPools.length) { fetchPoolsMetaBatch('bonded_pools', bondedPools, true); } diff --git a/src/contexts/Pools/PoolMembers/index.tsx b/src/contexts/Pools/PoolMembers/index.tsx index 0b685830dd..38817d11ba 100644 --- a/src/contexts/Pools/PoolMembers/index.tsx +++ b/src/contexts/Pools/PoolMembers/index.tsx @@ -5,8 +5,9 @@ import { setStateWithRef } from '@polkadotcloud/utils'; import { useConnect } from 'contexts/Connect'; import { usePlugins } from 'contexts/Plugins'; import type { PoolMember, PoolMemberContext } from 'contexts/Pools/types'; -import React, { useEffect, useRef, useState } from 'react'; +import React, { useRef, useState } from 'react'; import type { AnyApi, AnyMetaBatch, Fn, MaybeAccount, Sync } from 'types'; +import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import { useApi } from '../../Api'; import { defaultPoolMembers } from './defaults'; @@ -42,19 +43,19 @@ export const PoolMembersProvider = ({ }; // Clear existing state for network refresh - useEffect(() => { + useEffectIgnoreInitial(() => { setPoolMembersNode([]); unsubscribeAndResetMeta(); }, [network]); // Clear meta state when activeAccount changes - useEffect(() => { + useEffectIgnoreInitial(() => { unsubscribeAndResetMeta(); }, [activeAccount]); // Initial setup for fetching members if Subscan is not enabled. Ensure poolMembers are reset if // subscan is disabled. - useEffect(() => { + useEffectIgnoreInitial(() => { if (!pluginEnabled('subscan')) { if (isReady) fetchPoolMembers(); } else { diff --git a/src/contexts/Pools/PoolMemberships/index.tsx b/src/contexts/Pools/PoolMemberships/index.tsx index 35f75b21ec..2f6257c224 100644 --- a/src/contexts/Pools/PoolMemberships/index.tsx +++ b/src/contexts/Pools/PoolMemberships/index.tsx @@ -11,6 +11,7 @@ import type { import React, { useEffect, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; import type { AnyApi, Fn } from 'types'; +import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import { useApi } from '../../Api'; import { useConnect } from '../../Connect'; import * as defaults from './defaults'; @@ -31,7 +32,7 @@ export const PoolMembershipsProvider = ({ // stores pool subscription objects const poolMembershipUnsubs = useRef([]); - useEffect(() => { + useEffectIgnoreInitial(() => { if (isReady) { (() => { setStateWithRef([], setPoolMemberships, poolMembershipsRef); diff --git a/src/contexts/Pools/PoolsConfig/index.tsx b/src/contexts/Pools/PoolsConfig/index.tsx index 9f02edfab9..90d73e3c35 100644 --- a/src/contexts/Pools/PoolsConfig/index.tsx +++ b/src/contexts/Pools/PoolsConfig/index.tsx @@ -10,8 +10,9 @@ import type { PoolConfigState, PoolsConfigContextState, } from 'contexts/Pools/types'; -import React, { useEffect, useRef, useState } from 'react'; +import React, { useRef, useState } from 'react'; import type { AnyApi } from 'types'; +import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import { useApi } from '../../Api'; import * as defaults from './defaults'; @@ -41,7 +42,7 @@ export const PoolsConfigProvider = ({ // stores the user's favorite pools const [favorites, setFavorites] = useState(getLocalFavorites()); - useEffect(() => { + useEffectIgnoreInitial(() => { if (isReady) { subscribeToPoolConfig(); } diff --git a/src/contexts/Proxies/index.tsx b/src/contexts/Proxies/index.tsx index c855c2c511..33fb8049ab 100644 --- a/src/contexts/Proxies/index.tsx +++ b/src/contexts/Proxies/index.tsx @@ -15,8 +15,9 @@ import BigNumber from 'bignumber.js'; import { isSupportedProxy } from 'config/proxies'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; -import React, { useEffect, useRef, useState } from 'react'; +import React, { useRef, useState } from 'react'; import type { AnyApi, MaybeAccount } from 'types'; +import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import * as defaults from './defaults'; import type { Delegates, @@ -166,7 +167,7 @@ export const ProxiesProvider = ({ ?.delegates.find((d) => d.delegate === delegate) ?? null; // Subscribe new accounts to proxies, and remove accounts that are no longer imported. - useEffect(() => { + useEffectIgnoreInitial(() => { if (isReady) { handleSyncAccounts(); } @@ -174,7 +175,7 @@ export const ProxiesProvider = ({ // If active proxy has not yet been set, check local storage `activeProxy` & set it as active // proxy if it is the delegate of `activeAccount`. - useEffect(() => { + useEffectIgnoreInitial(() => { const localActiveProxy = localStorageOrDefault( `${network.name}_active_proxy`, null @@ -211,7 +212,7 @@ export const ProxiesProvider = ({ }, [accounts, activeAccount, proxiesRef.current, network]); // Reset active proxy state, unsubscribe from subscriptions on network change & unmount. - useEffect(() => { + useEffectIgnoreInitial(() => { setActiveProxy(null, false); unsubAll(); return () => unsubAll(); @@ -225,7 +226,7 @@ export const ProxiesProvider = ({ }; // Listens to `proxies` state updates and reformats the data into a list of delegates. - useEffect(() => { + useEffectIgnoreInitial(() => { // Reformat proxiesRef.current into a list of delegates. const newDelegates: Delegates = {}; for (const proxy of proxiesRef.current) { diff --git a/src/contexts/Setup/index.tsx b/src/contexts/Setup/index.tsx index 8805463cb0..f80066bfa3 100644 --- a/src/contexts/Setup/index.tsx +++ b/src/contexts/Setup/index.tsx @@ -7,8 +7,9 @@ import { unitToPlanck, } from '@polkadotcloud/utils'; import { usePoolMemberships } from 'contexts/Pools/PoolMemberships'; -import React, { useEffect, useState } from 'react'; +import React, { useState } from 'react'; import type { BondFor, MaybeAccount } from 'types'; +import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import { useApi } from '../Api'; import { useConnect } from '../Connect'; import { useStaking } from '../Staking'; @@ -206,7 +207,7 @@ export const SetupProvider = ({ children }: { children: React.ReactNode }) => { }; // Move away from setup pages on completion / network change. - useEffect(() => { + useEffectIgnoreInitial(() => { if (!inSetup()) { setOnNominatorSetup(false); } @@ -215,8 +216,8 @@ export const SetupProvider = ({ children }: { children: React.ReactNode }) => { } }, [inSetup(), network, poolMembership]); - // update setup state when activeAccount changes - useEffect(() => { + // Update setup state when activeAccount changes + useEffectIgnoreInitial(() => { if (accounts.length) refreshSetups(); }, [activeAccount, network, accounts]); diff --git a/src/contexts/Staking/index.tsx b/src/contexts/Staking/index.tsx index b2858dc78b..2e3a021ca9 100644 --- a/src/contexts/Staking/index.tsx +++ b/src/contexts/Staking/index.tsx @@ -20,10 +20,11 @@ import type { StakingMetrics, StakingTargets, } from 'contexts/Staking/types'; -import React, { useEffect, useRef, useState } from 'react'; +import React, { useRef, useState } from 'react'; import type { AnyApi, AnyJson, MaybeAccount } from 'types'; import Worker from 'workers/stakers?worker'; import type { ResponseInitialiseExposures } from 'workers/types'; +import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import { useApi } from '../Api'; import { useBonded } from '../Bonded'; import { useConnect } from '../Connect'; @@ -79,7 +80,7 @@ export const StakingProvider = ({ ) as StakingTargets ); - useEffect(() => { + useEffectIgnoreInitial(() => { if (apiStatus === 'connecting') { setStateWithRef(defaultEraStakers, setEraStakers, eraStakersRef); setStakingMetrics(stakingMetrics); @@ -87,7 +88,7 @@ export const StakingProvider = ({ }, [apiStatus]); // handle staking metrics subscription - useEffect(() => { + useEffectIgnoreInitial(() => { if (isReady) { unsubscribeMetrics(); subscribeToStakingkMetrics(); @@ -106,13 +107,13 @@ export const StakingProvider = ({ }; // handle syncing with eraStakers - useEffect(() => { + useEffectIgnoreInitial(() => { if (isReady) { fetchEraStakers(); } }, [isReady, activeEra.index, activeAccount]); - useEffect(() => { + useEffectIgnoreInitial(() => { if (activeAccount) { // set account's targets setTargetsState( diff --git a/src/contexts/Subscan/index.tsx b/src/contexts/Subscan/index.tsx index 4fb3b56af2..000ffcdee9 100644 --- a/src/contexts/Subscan/index.tsx +++ b/src/contexts/Subscan/index.tsx @@ -13,9 +13,10 @@ import { format, fromUnixTime } from 'date-fns'; import { sortNonZeroPayouts } from 'library/Graphs/Utils'; import { useErasToTimeLeft } from 'library/Hooks/useErasToTimeLeft'; import { locales } from 'locale'; -import React, { useEffect, useState } from 'react'; +import React, { useState } from 'react'; import { useTranslation } from 'react-i18next'; import type { AnyApi, AnySubscan } from 'types'; +import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import { useApi } from '../Api'; import { useConnect } from '../Connect'; import { usePlugins } from '../Plugins'; @@ -73,26 +74,26 @@ export const SubscanProvider = ({ }; // Fetch payouts on plugins toggle. - useEffect(() => { + useEffectIgnoreInitial(() => { if (isNotZero(activeEra.index)) { handleFetchPayouts(); } }, [plugins, activeEra]); // Reset payouts on network switch. - useEffect(() => { + useEffectIgnoreInitial(() => { resetPayouts(); }, [network]); // Fetch payouts as soon as network is ready. - useEffect(() => { + useEffectIgnoreInitial(() => { if (isReady && isNotZero(activeEra.index)) { handleFetchPayouts(); } }, [isReady, network, activeAccount, activeEra]); // Store start and end date of fetched payouts. - useEffect(() => { + useEffectIgnoreInitial(() => { const filteredPayouts = sortNonZeroPayouts(payouts, poolClaims, true); if (filteredPayouts.length) { setPayoutsFromDate( diff --git a/src/contexts/TransferOptions/index.tsx b/src/contexts/TransferOptions/index.tsx index ca1676aa31..4c21cf8048 100644 --- a/src/contexts/TransferOptions/index.tsx +++ b/src/contexts/TransferOptions/index.tsx @@ -9,8 +9,9 @@ import { useBonded } from 'contexts/Bonded'; import { useConnect } from 'contexts/Connect'; import { useNetworkMetrics } from 'contexts/Network'; import { usePoolMemberships } from 'contexts/Pools/PoolMemberships'; -import React, { useEffect, useState } from 'react'; +import React, { useState } from 'react'; import type { MaybeAccount } from 'types'; +import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import * as defaults from './defaults'; import type { TransferOptions, TransferOptionsContextInterface } from './types'; @@ -47,7 +48,7 @@ export const TransferOptionsProvider = ({ ); // Update an account's reserve amount on account or network change. - useEffect(() => { + useEffectIgnoreInitial(() => { setFeeReserve(getFeeReserveLocalStorage(activeAccount)); }, [activeAccount, name]); diff --git a/src/contexts/TxMeta/index.tsx b/src/contexts/TxMeta/index.tsx index 0fb356674f..951066d27d 100644 --- a/src/contexts/TxMeta/index.tsx +++ b/src/contexts/TxMeta/index.tsx @@ -7,8 +7,9 @@ import { useBonded } from 'contexts/Bonded'; import { useConnect } from 'contexts/Connect'; import { useStaking } from 'contexts/Staking'; import { useTransferOptions } from 'contexts/TransferOptions'; -import React, { useEffect, useState } from 'react'; +import React, { useState } from 'react'; import type { AnyJson, MaybeAccount } from 'types'; +import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import * as defaults from './defaults'; import type { TxMetaContextInterface } from './types'; @@ -41,7 +42,7 @@ export const TxMetaProvider = ({ children }: { children: React.ReactNode }) => { const [txSignature, setTxSignatureState] = useState(null); const txSignatureRef = React.useRef(txSignature); - useEffect(() => { + useEffectIgnoreInitial(() => { const { freeBalance } = getTransferOptions(sender); setNotEnoughFunds(freeBalance.minus(txFees).isLessThan(0)); }, [txFees, sender]); diff --git a/src/contexts/UI/index.tsx b/src/contexts/UI/index.tsx index 36cf7e6a3c..75de52c573 100644 --- a/src/contexts/UI/index.tsx +++ b/src/contexts/UI/index.tsx @@ -8,6 +8,7 @@ import { useBalances } from 'contexts/Balances'; import type { ImportedAccount } from 'contexts/Connect/types'; import { useActivePools } from 'contexts/Pools/ActivePools'; import React, { useEffect, useRef, useState } from 'react'; +import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import { useApi } from '../Api'; import { useConnect } from '../Connect'; import { useNetworkMetrics } from '../Network'; @@ -117,7 +118,7 @@ export const UIProvider = ({ children }: { children: React.ReactNode }) => { }, []); // re-configure minimised on user change - useEffect(() => { + useEffectIgnoreInitial(() => { resizeCallback(); }, [userSideMenuMinimised]); diff --git a/src/contexts/Validators/index.tsx b/src/contexts/Validators/index.tsx index 0f93bbd5f4..f1e2b777e8 100644 --- a/src/contexts/Validators/index.tsx +++ b/src/contexts/Validators/index.tsx @@ -17,8 +17,9 @@ import type { ValidatorAddresses, ValidatorsContextInterface, } from 'contexts/Validators/types'; -import React, { useEffect, useRef, useState } from 'react'; +import React, { useRef, useState } from 'react'; import type { AnyApi, AnyMetaBatch, Fn } from 'types'; +import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import { useApi } from '../Api'; import { useBonded } from '../Bonded'; import { useConnect } from '../Connect'; @@ -96,7 +97,7 @@ export const ValidatorsProvider = ({ const [validatorCommunity] = useState([...shuffle(ValidatorCommunity)]); // reset validators list on network change - useEffect(() => { + useEffectIgnoreInitial(() => { setFetchedValidators(0); setSessionValidators(defaultSessionValidators); setSessionParachainValidators(defaultSessionParachainValidators); @@ -106,7 +107,7 @@ export const ValidatorsProvider = ({ }, [network]); // fetch validators and session validators when activeEra ready - useEffect(() => { + useEffectIgnoreInitial(() => { if (isReady) { fetchValidators(); subscribeSessionValidators(); @@ -120,22 +121,22 @@ export const ValidatorsProvider = ({ }; }, [isReady, activeEra]); - // fetch parachain session validators when earliestStoredSession ready - useEffect(() => { + // fetch parachain session validators when `earliestStoredSession` ready + useEffectIgnoreInitial(() => { if (isReady && greaterThanZero(earliestStoredSession)) { subscribeParachainValidators(); } }, [isReady, earliestStoredSession]); // pre-populating validator meta batches. Needed for generating nominations - useEffect(() => { + useEffectIgnoreInitial(() => { if (validators.length > 0) { fetchValidatorMetaBatch('validators_browse', validators, true); } }, [isReady, validators]); // fetch active account's nominations in validator list format - useEffect(() => { + useEffectIgnoreInitial(() => { if (isReady && activeAccount) { fetchNominatedList(); } @@ -162,7 +163,7 @@ export const ValidatorsProvider = ({ }; // fetch active account's pool nominations in validator list format - useEffect(() => { + useEffectIgnoreInitial(() => { if (isReady && poolNominations) { fetchPoolNominatedList(); } @@ -183,12 +184,12 @@ export const ValidatorsProvider = ({ }; // re-fetch favorites on network change - useEffect(() => { + useEffectIgnoreInitial(() => { setFavorites(getFavorites()); }, [network]); // fetch favorites in validator list format - useEffect(() => { + useEffectIgnoreInitial(() => { if (isReady) { fetchFavoriteList(); } From f40c6d666929215487df64a003e0bca07dec357d Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Mon, 24 Jul 2023 14:06:15 +0700 Subject: [PATCH 048/435] fix part 1 --- src/config/validators/index.ts | 6 +++--- src/config/validators/thumbnails/DOZENODES.tsx | 14 -------------- 2 files changed, 3 insertions(+), 17 deletions(-) delete mode 100644 src/config/validators/thumbnails/DOZENODES.tsx diff --git a/src/config/validators/index.ts b/src/config/validators/index.ts index 88f23e38c0..6491c2e1cc 100644 --- a/src/config/validators/index.ts +++ b/src/config/validators/index.ts @@ -152,9 +152,9 @@ export const ValidatorCommunity = [ ], }, }, - { - name: 'DOZENODES', - thumbnail: 'DOZENODES', + { + name: 'Dozenodes', + thumbnail: 'Dozenodes', bio: 'Independent Polkadot and Kusama Validator. We are running secure and reliable nodes based in central europe operated by experienced engineers.', email: 'contact@dozenodes.com', website: 'https://dozenodes.com', diff --git a/src/config/validators/thumbnails/DOZENODES.tsx b/src/config/validators/thumbnails/DOZENODES.tsx deleted file mode 100644 index 3664fa9c41..0000000000 --- a/src/config/validators/thumbnails/DOZENODES.tsx +++ /dev/null @@ -1,14 +0,0 @@ -const DOZENODES = () => ( - - - - -); - -export default DOZENODES; \ No newline at end of file From e219f834dc576f92e9a6134c3a4935f2cedfaebd Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Mon, 24 Jul 2023 14:06:32 +0700 Subject: [PATCH 049/435] fix part 2 --- src/config/validators/thumbnails/Dozenodes.tsx | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 src/config/validators/thumbnails/Dozenodes.tsx diff --git a/src/config/validators/thumbnails/Dozenodes.tsx b/src/config/validators/thumbnails/Dozenodes.tsx new file mode 100644 index 0000000000..0e9c481aae --- /dev/null +++ b/src/config/validators/thumbnails/Dozenodes.tsx @@ -0,0 +1,8 @@ +const Dozenodes = () => ( + + + + +); + +export default Dozenodes; From f842cfdd349132afd894c4b13c3e1d1bcb03573a Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Mon, 24 Jul 2023 17:02:21 +0700 Subject: [PATCH 050/435] linting --- package.json | 2 +- src/types/index.ts | 1 + yarn.lock | 130 ++++++++++++++++++++++++++++----------------- 3 files changed, 83 insertions(+), 50 deletions(-) diff --git a/package.json b/package.json index 53005f249a..e738788760 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "@types/react-helmet": "^6.1.6", "@types/react-qr-reader": "^2.1.4", "@types/react-scroll": "^1.8.6", - "@typescript-eslint/eslint-plugin": "^5.62.0", + "@typescript-eslint/eslint-plugin": "^6.1.0", "@typescript-eslint/parser": "^5.62.0", "@vitejs/plugin-react-swc": "^3.3.2", "eslint": "^8.45.0", diff --git a/src/types/index.ts b/src/types/index.ts index 679a934e6c..44db0867f0 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -23,6 +23,7 @@ export interface Network { lightClient: AnyApi; }; namespace: string; + // eslint-disable-next-line @typescript-eslint/no-unused-vars colors: Record; subscanEndpoint: string; unit: string; diff --git a/yarn.lock b/yarn.lock index d3bba90615..e8988db00e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1256,7 +1256,7 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.11.tgz#6526c7e1b40d5b9f0a222c6b767c22f6fb97aa57" integrity sha512-rQI4cjLHd2hGsM1LqgDI7oOCYbQ6IBOVsX9ejuRMSze0GqXUG2ekwiKkiBU1pRGSeCqFFHxTrcEydB2Hyoz9CA== -"@eslint-community/eslint-utils@^4.2.0": +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== @@ -1268,6 +1268,11 @@ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== +"@eslint-community/regexpp@^4.5.1": + version "4.6.0" + resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.0.tgz#5b63f0df5528a44e28aa8578d393de908cc3d4d0" + integrity sha512-uiPeRISaglZnaZk8vwrjQZ1CxogZeY/4IYft6gBOTqu1WhVXWmCmZMWxUv2Q/pxSvPdp1JPaO62kLOcOkMqWrw== + "@eslint/eslintrc@^2.1.0": version "2.1.0" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.0.tgz#82256f164cc9e0b59669efc19d57f8092706841d" @@ -2086,7 +2091,7 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== -"@types/json-schema@*", "@types/json-schema@^7.0.9": +"@types/json-schema@*", "@types/json-schema@^7.0.12": version "7.0.12" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== @@ -2160,9 +2165,9 @@ resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== -"@types/semver@^7.3.12": +"@types/semver@^7.5.0": version "7.5.0" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" + resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== "@types/stylis@^4.0.2": @@ -2175,21 +2180,23 @@ resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.3.tgz#a136f83b0758698df454e328759dbd3d44555311" integrity sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g== -"@typescript-eslint/eslint-plugin@^5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz#aeef0328d172b9e37d9bab6dbc13b87ed88977db" - integrity sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag== - dependencies: - "@eslint-community/regexpp" "^4.4.0" - "@typescript-eslint/scope-manager" "5.62.0" - "@typescript-eslint/type-utils" "5.62.0" - "@typescript-eslint/utils" "5.62.0" +"@typescript-eslint/eslint-plugin@^6.1.0": + version "6.1.0" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.1.0.tgz#96f3ca6615717659d06c9f7161a1d14ab0c49c66" + integrity sha512-qg7Bm5TyP/I7iilGyp6DRqqkt8na00lI6HbjWZObgk3FFSzH5ypRwAHXJhJkwiRtTcfn+xYQIMOR5kJgpo6upw== + dependencies: + "@eslint-community/regexpp" "^4.5.1" + "@typescript-eslint/scope-manager" "6.1.0" + "@typescript-eslint/type-utils" "6.1.0" + "@typescript-eslint/utils" "6.1.0" + "@typescript-eslint/visitor-keys" "6.1.0" debug "^4.3.4" graphemer "^1.4.0" - ignore "^5.2.0" + ignore "^5.2.4" + natural-compare "^1.4.0" natural-compare-lite "^1.4.0" - semver "^7.3.7" - tsutils "^3.21.0" + semver "^7.5.4" + ts-api-utils "^1.0.1" "@typescript-eslint/parser@^5.62.0": version "5.62.0" @@ -2209,21 +2216,34 @@ "@typescript-eslint/types" "5.62.0" "@typescript-eslint/visitor-keys" "5.62.0" -"@typescript-eslint/type-utils@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz#286f0389c41681376cdad96b309cedd17d70346a" - integrity sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew== +"@typescript-eslint/scope-manager@6.1.0": + version "6.1.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.1.0.tgz#a6cdbe11630614f8c04867858a42dd56590796ed" + integrity sha512-AxjgxDn27hgPpe2rQe19k0tXw84YCOsjDJ2r61cIebq1t+AIxbgiXKvD4999Wk49GVaAcdJ/d49FYel+Pp3jjw== dependencies: - "@typescript-eslint/typescript-estree" "5.62.0" - "@typescript-eslint/utils" "5.62.0" + "@typescript-eslint/types" "6.1.0" + "@typescript-eslint/visitor-keys" "6.1.0" + +"@typescript-eslint/type-utils@6.1.0": + version "6.1.0" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.1.0.tgz#21cc6c3bc1980b03f9eb4e64580d0c5be6f08215" + integrity sha512-kFXBx6QWS1ZZ5Ni89TyT1X9Ag6RXVIVhqDs0vZE/jUeWlBv/ixq2diua6G7ece6+fXw3TvNRxP77/5mOMusx2w== + dependencies: + "@typescript-eslint/typescript-estree" "6.1.0" + "@typescript-eslint/utils" "6.1.0" debug "^4.3.4" - tsutils "^3.21.0" + ts-api-utils "^1.0.1" "@typescript-eslint/types@5.62.0": version "5.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== +"@typescript-eslint/types@6.1.0": + version "6.1.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.1.0.tgz#2d607c62827bb416ada5c96ebfa2ef84e45a8dfa" + integrity sha512-+Gfd5NHCpDoHDOaU/yIF3WWRI2PcBRKKpP91ZcVbL0t5tQpqYWBs3z/GGhvU+EV1D0262g9XCnyqQh19prU0JQ== + "@typescript-eslint/typescript-estree@5.62.0": version "5.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b" @@ -2237,19 +2257,31 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86" - integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== +"@typescript-eslint/typescript-estree@6.1.0": + version "6.1.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.1.0.tgz#ea382f6482ba698d7e993a88ce5391ea7a66c33d" + integrity sha512-nUKAPWOaP/tQjU1IQw9sOPCDavs/iU5iYLiY/6u7gxS7oKQoi4aUxXS1nrrVGTyBBaGesjkcwwHkbkiD5eBvcg== dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.62.0" - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/typescript-estree" "5.62.0" - eslint-scope "^5.1.1" - semver "^7.3.7" + "@typescript-eslint/types" "6.1.0" + "@typescript-eslint/visitor-keys" "6.1.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/utils@6.1.0": + version "6.1.0" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.1.0.tgz#1641843792b4e3451cc692e2c73055df8b26f453" + integrity sha512-wp652EogZlKmQoMS5hAvWqRKplXvkuOnNzZSE0PVvsKjpexd/XznRVHAtrfHFYmqaJz0DFkjlDsGYC9OXw+OhQ== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@types/json-schema" "^7.0.12" + "@types/semver" "^7.5.0" + "@typescript-eslint/scope-manager" "6.1.0" + "@typescript-eslint/types" "6.1.0" + "@typescript-eslint/typescript-estree" "6.1.0" + semver "^7.5.4" "@typescript-eslint/visitor-keys@5.62.0": version "5.62.0" @@ -2259,6 +2291,14 @@ "@typescript-eslint/types" "5.62.0" eslint-visitor-keys "^3.3.0" +"@typescript-eslint/visitor-keys@6.1.0": + version "6.1.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.1.0.tgz#d2b84dff6b58944d3257ea03687e269a788c73be" + integrity sha512-yQeh+EXhquh119Eis4k0kYhj9vmFzNpbhM3LftWQVwqVjipCkwHBQOZutcYW+JVkjtTG9k8nrZU1UoNedPDd1A== + dependencies: + "@typescript-eslint/types" "6.1.0" + eslint-visitor-keys "^3.4.1" + "@vitejs/plugin-react-swc@^3.3.2": version "3.3.2" resolved "https://registry.yarnpkg.com/@vitejs/plugin-react-swc/-/plugin-react-swc-3.3.2.tgz#34a82c1728066f48a86dfecb2f15df60f89207fb" @@ -3326,14 +3366,6 @@ eslint-rule-composer@^0.3.0: resolved "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz#79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9" integrity sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg== -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - eslint-scope@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" @@ -3413,11 +3445,6 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" @@ -5219,7 +5246,7 @@ semver@^6.3.1: resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.5.0: +semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.5.0, semver@^7.5.4: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -5534,6 +5561,11 @@ trim-repeated@^1.0.0: dependencies: escape-string-regexp "^1.0.2" +ts-api-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.1.tgz#8144e811d44c749cd65b2da305a032510774452d" + integrity sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A== + tsconfck@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/tsconfck/-/tsconfck-2.1.1.tgz#9b51603d2712d1f4740fa14748ca886a2e1893e5" From e548104e71c8f7e419f3c75221c7c4fd51f3ece4 Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Mon, 24 Jul 2023 17:03:41 +0700 Subject: [PATCH 051/435] bump core-ui --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index e738788760..e88fcde6bd 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "@polkadot/rpc-provider": "^10.9.1", "@polkadot/util": "^12.1.1", "@polkadot/util-crypto": "12.3.2", - "@polkadotcloud/core-ui": "^0.3.52", + "@polkadotcloud/core-ui": "^0.3.53", "@polkadotcloud/react-odometer": "^0.1.17", "@polkadotcloud/themes": "^0.1.0", "@polkadotcloud/utils": "^0.2.22", diff --git a/yarn.lock b/yarn.lock index e8988db00e..4438110ed3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1832,10 +1832,10 @@ tslib "^2.5.3" ws "^8.13.0" -"@polkadotcloud/core-ui@^0.3.52": - version "0.3.52" - resolved "https://registry.npmjs.org/@polkadotcloud/core-ui/-/core-ui-0.3.52.tgz#e46b04860a3ffbd90a5ff85febe88a82930df434" - integrity sha512-w0Pvx2WlzUFnrfGki2x3xpAZIRPYNMFbX4bpJf3jh0bnnEMrdcNbT2eU80ktfIPdJcpT2htFnU8oOf5NYr5ePA== +"@polkadotcloud/core-ui@^0.3.53": + version "0.3.53" + resolved "https://registry.npmjs.org/@polkadotcloud/core-ui/-/core-ui-0.3.53.tgz#784cc8b4800b3a3e1b3bc23d3ce6e7c8eef7acde" + integrity sha512-ktKXAqb2yeMyZlaeNumg+jBu/We0IjWju5B/jEfLf+bsOrBFRQrp8g/dL2Oyb5xeybXTKlD5QoIYC1YcI4XMvA== "@polkadotcloud/react-odometer@^0.1.17": version "0.1.17" From 981795c54886dda2fd66f0b3d3ef718d4f302e07 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jul 2023 21:18:10 +0000 Subject: [PATCH 052/435] Bump vite from 4.4.6 to 4.4.7 Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.4.6 to 4.4.7. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v4.4.7/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index e88fcde6bd..2143bd8f3c 100644 --- a/package.json +++ b/package.json @@ -86,7 +86,7 @@ "prettier-plugin-organize-imports": "^3.2.3", "sass": "^1.64.0", "typescript": "^5.1.6", - "vite": "^4.4.6", + "vite": "^4.4.7", "vite-bundle-visualizer": "^0.8.1", "vite-plugin-checker": "^0.6.1", "vite-plugin-eslint": "^1.8.1", diff --git a/yarn.lock b/yarn.lock index 4438110ed3..cfb5b75222 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5782,10 +5782,10 @@ vite-tsconfig-paths@^4.2.0: globrex "^0.1.2" tsconfck "^2.1.0" -"vite@^3.0.0 || ^4.0.0", vite@^4.4.6: - version "4.4.6" - resolved "https://registry.yarnpkg.com/vite/-/vite-4.4.6.tgz#97a0a43868ec773fd88980d7c323c80233521cf1" - integrity sha512-EY6Mm8vJ++S3D4tNAckaZfw3JwG3wa794Vt70M6cNJ6NxT87yhq7EC8Rcap3ahyHdo8AhCmV9PTk+vG1HiYn1A== +"vite@^3.0.0 || ^4.0.0", vite@^4.4.7: + version "4.4.7" + resolved "https://registry.yarnpkg.com/vite/-/vite-4.4.7.tgz#71b8a37abaf8d50561aca084dbb77fa342824154" + integrity sha512-6pYf9QJ1mHylfVh39HpuSfMPojPSKVxZvnclX1K1FyZ1PXDOcLBibdq5t1qxJSnL63ca8Wf4zts6mD8u8oc9Fw== dependencies: esbuild "^0.18.10" postcss "^8.4.26" From 08d5c2348a8ea580b174ca0e68625696a558bb8e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jul 2023 21:18:35 +0000 Subject: [PATCH 053/435] Bump @polkadotcloud/core-ui from 0.3.53 to 0.3.55 Bumps [@polkadotcloud/core-ui](https://github.com/paritytech/polkadot-dashboard-ui) from 0.3.53 to 0.3.55. - [Release notes](https://github.com/paritytech/polkadot-dashboard-ui/releases) - [Commits](https://github.com/paritytech/polkadot-dashboard-ui/commits) --- updated-dependencies: - dependency-name: "@polkadotcloud/core-ui" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 2143bd8f3c..af05713b88 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "@polkadot/rpc-provider": "^10.9.1", "@polkadot/util": "^12.1.1", "@polkadot/util-crypto": "12.3.2", - "@polkadotcloud/core-ui": "^0.3.53", + "@polkadotcloud/core-ui": "^0.3.55", "@polkadotcloud/react-odometer": "^0.1.17", "@polkadotcloud/themes": "^0.1.0", "@polkadotcloud/utils": "^0.2.22", diff --git a/yarn.lock b/yarn.lock index cfb5b75222..14de43eeaf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1832,10 +1832,10 @@ tslib "^2.5.3" ws "^8.13.0" -"@polkadotcloud/core-ui@^0.3.53": - version "0.3.53" - resolved "https://registry.npmjs.org/@polkadotcloud/core-ui/-/core-ui-0.3.53.tgz#784cc8b4800b3a3e1b3bc23d3ce6e7c8eef7acde" - integrity sha512-ktKXAqb2yeMyZlaeNumg+jBu/We0IjWju5B/jEfLf+bsOrBFRQrp8g/dL2Oyb5xeybXTKlD5QoIYC1YcI4XMvA== +"@polkadotcloud/core-ui@^0.3.55": + version "0.3.55" + resolved "https://registry.yarnpkg.com/@polkadotcloud/core-ui/-/core-ui-0.3.55.tgz#5ac8ed497ea3ba3fdf04f238b2bc06a2269d5eef" + integrity sha512-rqwIjmmmjHFNITQ+Q2mv/FB0tzj7+uzxgf8ACM8G6vsi0wtv0xr+LFa26cfpp5BXsZQGiQUPQwMuaZp2UcPpnw== "@polkadotcloud/react-odometer@^0.1.17": version "0.1.17" From c9cc0cd125075adbb53a407814f4e3b6a189bdc3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jul 2023 21:18:49 +0000 Subject: [PATCH 054/435] Bump chart.js from 4.3.0 to 4.3.1 Bumps [chart.js](https://github.com/chartjs/Chart.js) from 4.3.0 to 4.3.1. - [Release notes](https://github.com/chartjs/Chart.js/releases) - [Commits](https://github.com/chartjs/Chart.js/compare/v4.3.0...v4.3.1) --- updated-dependencies: - dependency-name: chart.js dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index af05713b88..9da559866a 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "bignumber.js": "^9.1.1", "bn.js": "^5.2.1", "buffer": "^6.0.3", - "chart.js": "^4.3.0", + "chart.js": "^4.3.1", "date-fns": "^2.29.3", "framer-motion": "^10.13.0", "i18next": "^23.2.11", diff --git a/yarn.lock b/yarn.lock index 14de43eeaf..9f83a99156 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2776,10 +2776,10 @@ chalk@^4.0.0, chalk@^4.1.1: ansi-styles "^4.1.0" supports-color "^7.1.0" -chart.js@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-4.3.0.tgz#ac363030ab3fec572850d2d872956f32a46326a1" - integrity sha512-ynG0E79xGfMaV2xAHdbhwiPLczxnNNnasrmPEXriXsPJGjmhOBYzFVEsB65w2qMDz+CaBJJuJD0inE/ab/h36g== +chart.js@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-4.3.1.tgz#b83ea014ff9f45e43bfd98ef2bdaba2a9aed8a16" + integrity sha512-QHuISG3hTJ0ftq0I0f5jqH9mNVO9bqG8P+zvMOVslgKajQVvFEX7QAhYNJ+QEmw+uYTwo8XpTimaB82oeTWjxw== dependencies: "@kurkle/color" "^0.3.0" From 95f3daccd54d4f7c84a66df729e1cc78f7983294 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jul 2023 21:19:22 +0000 Subject: [PATCH 055/435] Bump framer-motion from 10.13.0 to 10.13.1 Bumps [framer-motion](https://github.com/framer/motion) from 10.13.0 to 10.13.1. - [Changelog](https://github.com/framer/motion/blob/main/CHANGELOG.md) - [Commits](https://github.com/framer/motion/compare/v10.13.0...v10.13.1) --- updated-dependencies: - dependency-name: framer-motion dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 9da559866a..e6828c360b 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "buffer": "^6.0.3", "chart.js": "^4.3.1", "date-fns": "^2.29.3", - "framer-motion": "^10.13.0", + "framer-motion": "^10.13.1", "i18next": "^23.2.11", "i18next-browser-languagedetector": "^7.1.0", "lodash.throttle": "^4.1.1", diff --git a/yarn.lock b/yarn.lock index 9f83a99156..4d6cd0cd7c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3631,10 +3631,10 @@ formdata-polyfill@^4.0.10: dependencies: fetch-blob "^3.1.2" -framer-motion@^10.13.0: - version "10.13.0" - resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-10.13.0.tgz#0e0d45f693e21d23443317db12cd14c4f8d99cd2" - integrity sha512-xKhw9VCizmwEHbopOfluaoVunGHSZyMztGbTvsgOYqCjaKu6qtlwWY1J+6GhL41NY1P157JgEikjDm67XCFnvQ== +framer-motion@^10.13.1: + version "10.13.1" + resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-10.13.1.tgz#f717c924ce9a8927264b41692a870d1366fe296c" + integrity sha512-uiKsaLEoySeln3eOPy8wUB3FkNtRRiVga5xJOkgs7C0sHVyvpJajXJFSoabt+emBojgnMQY0epnjl0ppoYPxkQ== dependencies: tslib "^2.4.0" optionalDependencies: From 2a346b1515cf0d808163992a33be5ca819e718e6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jul 2023 21:19:52 +0000 Subject: [PATCH 056/435] Bump @typescript-eslint/eslint-plugin from 6.1.0 to 6.2.0 Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 6.1.0 to 6.2.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.2.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 98 +++++++++++++++++++++++----------------------------- 2 files changed, 45 insertions(+), 55 deletions(-) diff --git a/package.json b/package.json index e6828c360b..aa9a1f82c2 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "@types/react-helmet": "^6.1.6", "@types/react-qr-reader": "^2.1.4", "@types/react-scroll": "^1.8.6", - "@typescript-eslint/eslint-plugin": "^6.1.0", + "@typescript-eslint/eslint-plugin": "^6.2.0", "@typescript-eslint/parser": "^5.62.0", "@vitejs/plugin-react-swc": "^3.3.2", "eslint": "^8.45.0", diff --git a/yarn.lock b/yarn.lock index 4d6cd0cd7c..f880865166 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1263,12 +1263,7 @@ dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.4.0": - version "4.5.1" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" - integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== - -"@eslint-community/regexpp@^4.5.1": +"@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.5.1": version "4.6.0" resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.0.tgz#5b63f0df5528a44e28aa8578d393de908cc3d4d0" integrity sha512-uiPeRISaglZnaZk8vwrjQZ1CxogZeY/4IYft6gBOTqu1WhVXWmCmZMWxUv2Q/pxSvPdp1JPaO62kLOcOkMqWrw== @@ -2180,16 +2175,16 @@ resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.3.tgz#a136f83b0758698df454e328759dbd3d44555311" integrity sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g== -"@typescript-eslint/eslint-plugin@^6.1.0": - version "6.1.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.1.0.tgz#96f3ca6615717659d06c9f7161a1d14ab0c49c66" - integrity sha512-qg7Bm5TyP/I7iilGyp6DRqqkt8na00lI6HbjWZObgk3FFSzH5ypRwAHXJhJkwiRtTcfn+xYQIMOR5kJgpo6upw== +"@typescript-eslint/eslint-plugin@^6.2.0": + version "6.2.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.2.0.tgz#57047c400be0632d4797ac081af8d399db3ebc3b" + integrity sha512-rClGrMuyS/3j0ETa1Ui7s6GkLhfZGKZL3ZrChLeAiACBE/tRc1wq8SNZESUuluxhLj9FkUefRs2l6bCIArWBiQ== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.1.0" - "@typescript-eslint/type-utils" "6.1.0" - "@typescript-eslint/utils" "6.1.0" - "@typescript-eslint/visitor-keys" "6.1.0" + "@typescript-eslint/scope-manager" "6.2.0" + "@typescript-eslint/type-utils" "6.2.0" + "@typescript-eslint/utils" "6.2.0" + "@typescript-eslint/visitor-keys" "6.2.0" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" @@ -2216,21 +2211,21 @@ "@typescript-eslint/types" "5.62.0" "@typescript-eslint/visitor-keys" "5.62.0" -"@typescript-eslint/scope-manager@6.1.0": - version "6.1.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.1.0.tgz#a6cdbe11630614f8c04867858a42dd56590796ed" - integrity sha512-AxjgxDn27hgPpe2rQe19k0tXw84YCOsjDJ2r61cIebq1t+AIxbgiXKvD4999Wk49GVaAcdJ/d49FYel+Pp3jjw== +"@typescript-eslint/scope-manager@6.2.0": + version "6.2.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.2.0.tgz#412a710d8fa20bc045533b3b19f423810b24f87a" + integrity sha512-1ZMNVgm5nnHURU8ZSJ3snsHzpFeNK84rdZjluEVBGNu7jDymfqceB3kdIZ6A4xCfEFFhRIB6rF8q/JIqJd2R0Q== dependencies: - "@typescript-eslint/types" "6.1.0" - "@typescript-eslint/visitor-keys" "6.1.0" + "@typescript-eslint/types" "6.2.0" + "@typescript-eslint/visitor-keys" "6.2.0" -"@typescript-eslint/type-utils@6.1.0": - version "6.1.0" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.1.0.tgz#21cc6c3bc1980b03f9eb4e64580d0c5be6f08215" - integrity sha512-kFXBx6QWS1ZZ5Ni89TyT1X9Ag6RXVIVhqDs0vZE/jUeWlBv/ixq2diua6G7ece6+fXw3TvNRxP77/5mOMusx2w== +"@typescript-eslint/type-utils@6.2.0": + version "6.2.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.2.0.tgz#02b27a3eeb41aa5460d6275d12cce5dd72e1c9fc" + integrity sha512-DnGZuNU2JN3AYwddYIqrVkYW0uUQdv0AY+kz2M25euVNlujcN2u+rJgfJsBFlUEzBB6OQkUqSZPyuTLf2bP5mw== dependencies: - "@typescript-eslint/typescript-estree" "6.1.0" - "@typescript-eslint/utils" "6.1.0" + "@typescript-eslint/typescript-estree" "6.2.0" + "@typescript-eslint/utils" "6.2.0" debug "^4.3.4" ts-api-utils "^1.0.1" @@ -2239,10 +2234,10 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== -"@typescript-eslint/types@6.1.0": - version "6.1.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.1.0.tgz#2d607c62827bb416ada5c96ebfa2ef84e45a8dfa" - integrity sha512-+Gfd5NHCpDoHDOaU/yIF3WWRI2PcBRKKpP91ZcVbL0t5tQpqYWBs3z/GGhvU+EV1D0262g9XCnyqQh19prU0JQ== +"@typescript-eslint/types@6.2.0": + version "6.2.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.2.0.tgz#b341a4e6d5f609267306b07afc6f62bcf92b1495" + integrity sha512-1nRRaDlp/XYJQLvkQJG5F3uBTno5SHPT7XVcJ5n1/k2WfNI28nJsvLakxwZRNY5spuatEKO7d5nZWsQpkqXwBA== "@typescript-eslint/typescript-estree@5.62.0": version "5.62.0" @@ -2257,30 +2252,30 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@6.1.0": - version "6.1.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.1.0.tgz#ea382f6482ba698d7e993a88ce5391ea7a66c33d" - integrity sha512-nUKAPWOaP/tQjU1IQw9sOPCDavs/iU5iYLiY/6u7gxS7oKQoi4aUxXS1nrrVGTyBBaGesjkcwwHkbkiD5eBvcg== +"@typescript-eslint/typescript-estree@6.2.0": + version "6.2.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.2.0.tgz#4969944b831b481996aa4fbd73c7164ca683b8ef" + integrity sha512-Mts6+3HQMSM+LZCglsc2yMIny37IhUgp1Qe8yJUYVyO6rHP7/vN0vajKu3JvHCBIy8TSiKddJ/Zwu80jhnGj1w== dependencies: - "@typescript-eslint/types" "6.1.0" - "@typescript-eslint/visitor-keys" "6.1.0" + "@typescript-eslint/types" "6.2.0" + "@typescript-eslint/visitor-keys" "6.2.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.1.0": - version "6.1.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.1.0.tgz#1641843792b4e3451cc692e2c73055df8b26f453" - integrity sha512-wp652EogZlKmQoMS5hAvWqRKplXvkuOnNzZSE0PVvsKjpexd/XznRVHAtrfHFYmqaJz0DFkjlDsGYC9OXw+OhQ== +"@typescript-eslint/utils@6.2.0": + version "6.2.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.2.0.tgz#606a20e5c13883c2d2bd0538ddc4b96b8d410979" + integrity sha512-RCFrC1lXiX1qEZN8LmLrxYRhOkElEsPKTVSNout8DMzf8PeWoQG7Rxz2SadpJa3VSh5oYKGwt7j7X/VRg+Y3OQ== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.1.0" - "@typescript-eslint/types" "6.1.0" - "@typescript-eslint/typescript-estree" "6.1.0" + "@typescript-eslint/scope-manager" "6.2.0" + "@typescript-eslint/types" "6.2.0" + "@typescript-eslint/typescript-estree" "6.2.0" semver "^7.5.4" "@typescript-eslint/visitor-keys@5.62.0": @@ -2291,12 +2286,12 @@ "@typescript-eslint/types" "5.62.0" eslint-visitor-keys "^3.3.0" -"@typescript-eslint/visitor-keys@6.1.0": - version "6.1.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.1.0.tgz#d2b84dff6b58944d3257ea03687e269a788c73be" - integrity sha512-yQeh+EXhquh119Eis4k0kYhj9vmFzNpbhM3LftWQVwqVjipCkwHBQOZutcYW+JVkjtTG9k8nrZU1UoNedPDd1A== +"@typescript-eslint/visitor-keys@6.2.0": + version "6.2.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.2.0.tgz#71943f42fdaa2ec86dc3222091f41761a49ae71a" + integrity sha512-QbaYUQVKKo9bgCzpjz45llCfwakyoxHetIy8CAvYCtd16Zu1KrpzNHofwF8kGkpPOxZB2o6kz+0nqH8ZkIzuoQ== dependencies: - "@typescript-eslint/types" "6.1.0" + "@typescript-eslint/types" "6.2.0" eslint-visitor-keys "^3.4.1" "@vitejs/plugin-react-swc@^3.3.2": @@ -5236,12 +5231,7 @@ semver@^5.6.0: resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@^6.0.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^6.3.1: +semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== From 90f7cca4a09b9eb34ac56d1572f4bbf159017642 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jul 2023 21:19:10 +0000 Subject: [PATCH 057/435] Bump @dotlottie/player-component from 2.1.0 to 2.2.0 Bumps [@dotlottie/player-component](https://github.com/dotlottie/player-component) from 2.1.0 to 2.2.0. - [Release notes](https://github.com/dotlottie/player-component/releases) - [Commits](https://github.com/dotlottie/player-component/compare/@dotlottie/player-component@2.1.0...@dotlottie/player-component@2.2.0) --- updated-dependencies: - dependency-name: "@dotlottie/player-component" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index aa9a1f82c2..c8a1a1b0b4 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "visualizer": "vite-bundle-visualizer" }, "dependencies": { - "@dotlottie/player-component": "^2.1.0", + "@dotlottie/player-component": "^2.2.0", "@fortawesome/fontawesome-svg-core": "^6.4.0", "@fortawesome/free-brands-svg-icons": "^6.4.0", "@fortawesome/free-regular-svg-icons": "^6.4.0", diff --git a/yarn.lock b/yarn.lock index f880865166..17b800eb5e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1110,10 +1110,10 @@ "@babel/helper-validator-identifier" "^7.22.5" to-fast-properties "^2.0.0" -"@dotlottie/player-component@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@dotlottie/player-component/-/player-component-2.1.0.tgz#7330adc581e3847ecb1f824d9051b8321750b445" - integrity sha512-Zj835StOc7kHQeFeJJJRhyzQFxQ+169QH0amvK/tkRTxCEmnlwZaDNk6wY38coogaPOw0qjYLK54ZyEbfdFYXg== +"@dotlottie/player-component@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@dotlottie/player-component/-/player-component-2.2.0.tgz#43b48b522ee55560ba9efc835594bc39d1b21d9a" + integrity sha512-mKBHDZYjkhV7g79FxBCmlhYZkK6CwIPCePw6ExhY2432KbsdReS+ZiiIL59mqK8dC5IYcNURccR+8v3SYiL5Qw== dependencies: lit "^2.7.5" From a44c43d41624e9f70caed2db1180956e42b33d98 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jul 2023 21:26:54 +0000 Subject: [PATCH 058/435] Bump @typescript-eslint/parser from 5.62.0 to 6.2.0 Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.62.0 to 6.2.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.2.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 62 ++++++++++------------------------------------------ 2 files changed, 12 insertions(+), 52 deletions(-) diff --git a/package.json b/package.json index c8a1a1b0b4..9649581fe8 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "@types/react-qr-reader": "^2.1.4", "@types/react-scroll": "^1.8.6", "@typescript-eslint/eslint-plugin": "^6.2.0", - "@typescript-eslint/parser": "^5.62.0", + "@typescript-eslint/parser": "^6.2.0", "@vitejs/plugin-react-swc": "^3.3.2", "eslint": "^8.45.0", "eslint-config-airbnb": "^19.0.4", diff --git a/yarn.lock b/yarn.lock index 17b800eb5e..f04d3b5d21 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2193,23 +2193,16 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/parser@^5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.62.0.tgz#1b63d082d849a2fcae8a569248fbe2ee1b8a56c7" - integrity sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA== - dependencies: - "@typescript-eslint/scope-manager" "5.62.0" - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/typescript-estree" "5.62.0" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c" - integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== +"@typescript-eslint/parser@^6.2.0": + version "6.2.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.2.0.tgz#d37c30b0f459c6f39455335d8f4f085919a1c644" + integrity sha512-igVYOqtiK/UsvKAmmloQAruAdUHihsOCvplJpplPZ+3h4aDkC/UKZZNKgB6h93ayuYLuEymU3h8nF1xMRbh37g== dependencies: - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/visitor-keys" "5.62.0" + "@typescript-eslint/scope-manager" "6.2.0" + "@typescript-eslint/types" "6.2.0" + "@typescript-eslint/typescript-estree" "6.2.0" + "@typescript-eslint/visitor-keys" "6.2.0" + debug "^4.3.4" "@typescript-eslint/scope-manager@6.2.0": version "6.2.0" @@ -2229,29 +2222,11 @@ debug "^4.3.4" ts-api-utils "^1.0.1" -"@typescript-eslint/types@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" - integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== - "@typescript-eslint/types@6.2.0": version "6.2.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.2.0.tgz#b341a4e6d5f609267306b07afc6f62bcf92b1495" integrity sha512-1nRRaDlp/XYJQLvkQJG5F3uBTno5SHPT7XVcJ5n1/k2WfNI28nJsvLakxwZRNY5spuatEKO7d5nZWsQpkqXwBA== -"@typescript-eslint/typescript-estree@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b" - integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA== - dependencies: - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/visitor-keys" "5.62.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - "@typescript-eslint/typescript-estree@6.2.0": version "6.2.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.2.0.tgz#4969944b831b481996aa4fbd73c7164ca683b8ef" @@ -2278,14 +2253,6 @@ "@typescript-eslint/typescript-estree" "6.2.0" semver "^7.5.4" -"@typescript-eslint/visitor-keys@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e" - integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== - dependencies: - "@typescript-eslint/types" "5.62.0" - eslint-visitor-keys "^3.3.0" - "@typescript-eslint/visitor-keys@6.2.0": version "6.2.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.2.0.tgz#71943f42fdaa2ec86dc3222091f41761a49ae71a" @@ -5236,7 +5203,7 @@ semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.5.0, semver@^7.5.4: +semver@^7.3.4, semver@^7.3.5, semver@^7.5.0, semver@^7.5.4: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -5571,7 +5538,7 @@ tsconfig-paths@^3.14.1: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@^1.8.1, tslib@^1.9.0: +tslib@^1.9.0: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== @@ -5581,13 +5548,6 @@ tslib@^2.1.0, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.5.3, tslib@^2.6.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.0.tgz#b295854684dbda164e181d259a22cd779dcd7bc3" integrity sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA== -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" From d65af634e95b20d3a4366df62296746c6c215883 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jul 2023 21:25:17 +0000 Subject: [PATCH 059/435] Bump sass from 1.64.0 to 1.64.1 Bumps [sass](https://github.com/sass/dart-sass) from 1.64.0 to 1.64.1. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.64.0...1.64.1) --- updated-dependencies: - dependency-name: sass dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index c8a1a1b0b4..0e322e722b 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "gh-pages": "^5.0.0", "prettier": "^3.0.0", "prettier-plugin-organize-imports": "^3.2.3", - "sass": "^1.64.0", + "sass": "^1.64.1", "typescript": "^5.1.6", "vite": "^4.4.7", "vite-bundle-visualizer": "^0.8.1", diff --git a/yarn.lock b/yarn.lock index 17b800eb5e..3fc270bf12 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5205,10 +5205,10 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.1.3" is-regex "^1.1.4" -sass@^1.64.0: - version "1.64.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.64.0.tgz#9ca8d0acb1a704b86b7f1197dc310f568fb34638" - integrity sha512-m7YtAGmQta9uANIUJwXesAJMSncqH+3INc8kdVXs6eV6GUC8Qu2IYKQSN8PRLgiQfpca697G94klm2leYMxSHw== +sass@^1.64.1: + version "1.64.1" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.64.1.tgz#6a46f6d68e0fa5ad90aa59ce025673ddaa8441cf" + integrity sha512-16rRACSOFEE8VN7SCgBu1MpYCyN7urj9At898tyzdXFhC+a+yOX5dXwAR7L8/IdPJ1NB8OYoXmD55DM30B2kEQ== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" From a49d3dd557f4fda8f364c63fc6cb412018b4ea2c Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Tue, 25 Jul 2023 12:18:49 +0700 Subject: [PATCH 060/435] commission display --- src/library/Pool/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/library/Pool/index.tsx b/src/library/Pool/index.tsx index 4cfe1dc295..c4f28d90ae 100644 --- a/src/library/Pool/index.tsx +++ b/src/library/Pool/index.tsx @@ -124,7 +124,7 @@ export const Pool = ({ pool, batchKey, batchIndex }: PoolProps) => { />
- {currentCommission && ( + {currentCommission > 0 && ( )} From 5fdc8ee2129dee3748bd4433314354c7637a98e3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Jul 2023 21:12:01 +0000 Subject: [PATCH 061/435] Bump @substrate/connect from 0.7.30 to 0.7.31 Bumps [@substrate/connect](https://github.com/paritytech/substrate-connect) from 0.7.30 to 0.7.31. - [Changelog](https://github.com/paritytech/substrate-connect/blob/main/DEPLOY-RELEASE.md) - [Commits](https://github.com/paritytech/substrate-connect/commits) --- updated-dependencies: - dependency-name: "@substrate/connect" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 0e322e722b..f391e89d00 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "@polkadotcloud/react-odometer": "^0.1.17", "@polkadotcloud/themes": "^0.1.0", "@polkadotcloud/utils": "^0.2.22", - "@substrate/connect": "^0.7.30", + "@substrate/connect": "^0.7.31", "@zondax/ledger-substrate": "^0.41.1", "bignumber.js": "^9.1.1", "bn.js": "^5.2.1", diff --git a/yarn.lock b/yarn.lock index 3fc270bf12..d12431c08e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1893,13 +1893,13 @@ eventemitter3 "^4.0.7" smoldot "1.0.4" -"@substrate/connect@^0.7.30": - version "0.7.30" - resolved "https://registry.yarnpkg.com/@substrate/connect/-/connect-0.7.30.tgz#bc633d869e47efb32dc6b7b39f716b5d8d83646c" - integrity sha512-njt7lVc3GsoLWfynAh3VhOgjBRQYdT3Cd4N+QPANhHk3GTLQmfxvDUU4zQm1O3pYORY/lZOHlBtR0HoJklte0Q== +"@substrate/connect@^0.7.31": + version "0.7.31" + resolved "https://registry.yarnpkg.com/@substrate/connect/-/connect-0.7.31.tgz#a815acdf727e1e49815c7faee5acf049743aa339" + integrity sha512-a6D1Yjk5b2D5QJn1HZEN/6J9Kk5YROO0AxfY7apFamkYJCePfKkCsBrergOFAk1ZC3x1FhGdSxUvfYyqPq8knw== dependencies: "@substrate/connect-extension-protocol" "^1.0.1" - smoldot "1.0.11" + smoldot "1.0.13" "@substrate/ss58-registry@^1.40.0": version "1.41.0" @@ -5302,10 +5302,10 @@ slash@^4.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== -smoldot@1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/smoldot/-/smoldot-1.0.11.tgz#cd3fa68be0c51bd4d312772d4e9b8835d05d759d" - integrity sha512-sDp8oo6RWFPId59nuNKxKzBP9wu0czfFDW7WHMqxwopo12ffpijOo3aTL1PVcNFVo6lZhXxOKFCudhQCfhrZ7w== +smoldot@1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/smoldot/-/smoldot-1.0.13.tgz#582276d94159a3ddace3c4979cc3000141852d2c" + integrity sha512-IxOBMzsPles/8JlFM7Sm1ckunul3e6mYWBopf+Kg7zHmxtRwpox4nnEfaGxmhhHC8JgQVwsVPHa14AeQxtk6vA== dependencies: ws "^8.8.1" From d03b8956650c062b927cef9c03cc77bf75a7f749 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Jul 2023 21:11:40 +0000 Subject: [PATCH 062/435] Bump @types/react from 18.2.15 to 18.2.16 Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.2.15 to 18.2.16. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) --- updated-dependencies: - dependency-name: "@types/react" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index f391e89d00..14dce58244 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "devDependencies": { "@ledgerhq/logs": "^6.10.1", "@types/lodash.throttle": "^4.1.7", - "@types/react": "^18.2.15", + "@types/react": "^18.2.16", "@types/react-dom": "^18.2.7", "@types/react-helmet": "^6.1.6", "@types/react-qr-reader": "^2.1.4", diff --git a/yarn.lock b/yarn.lock index d12431c08e..cba56fd12f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2146,10 +2146,10 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^18.2.15": - version "18.2.15" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.15.tgz#14792b35df676c20ec3cf595b262f8c615a73066" - integrity sha512-oEjE7TQt1fFTFSbf8kkNuc798ahTUzn3Le67/PWjE8MAfYAD/qB7O8hSTcromLFqHCt9bcdOg5GXMokzTjJ5SA== +"@types/react@*", "@types/react@^18.2.16": + version "18.2.16" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.16.tgz#403dda0e933caccac9efde569923239ac426786c" + integrity sha512-LLFWr12ZhBJ4YVw7neWLe6Pk7Ey5R9OCydfuMsz1L8bZxzaawJj2p06Q8/EFEHDeTBQNFLF62X+CG7B2zIyu0Q== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" From 416a15f0bcbb31060177125a270b628cbcaf3b42 Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Wed, 26 Jul 2023 14:04:18 +0700 Subject: [PATCH 063/435] bump --- yarn.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yarn.lock b/yarn.lock index 3fc270bf12..b1f9f030ea 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1829,7 +1829,7 @@ "@polkadotcloud/core-ui@^0.3.55": version "0.3.55" - resolved "https://registry.yarnpkg.com/@polkadotcloud/core-ui/-/core-ui-0.3.55.tgz#5ac8ed497ea3ba3fdf04f238b2bc06a2269d5eef" + resolved "https://registry.npmjs.org/@polkadotcloud/core-ui/-/core-ui-0.3.55.tgz#5ac8ed497ea3ba3fdf04f238b2bc06a2269d5eef" integrity sha512-rqwIjmmmjHFNITQ+Q2mv/FB0tzj7+uzxgf8ACM8G6vsi0wtv0xr+LFa26cfpp5BXsZQGiQUPQwMuaZp2UcPpnw== "@polkadotcloud/react-odometer@^0.1.17": From c5c6c0b5e3a270bb692be04677ca1e53b4d2969b Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Wed, 26 Jul 2023 14:12:05 +0700 Subject: [PATCH 064/435] bump themes --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 14dce58244..e462b2c55d 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "@polkadot/util-crypto": "12.3.2", "@polkadotcloud/core-ui": "^0.3.55", "@polkadotcloud/react-odometer": "^0.1.17", - "@polkadotcloud/themes": "^0.1.0", + "@polkadotcloud/themes": "^0.1.2", "@polkadotcloud/utils": "^0.2.22", "@substrate/connect": "^0.7.31", "@zondax/ledger-substrate": "^0.41.1", diff --git a/yarn.lock b/yarn.lock index d4a40efcbb..f2da50a990 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1837,10 +1837,10 @@ resolved "https://registry.yarnpkg.com/@polkadotcloud/react-odometer/-/react-odometer-0.1.17.tgz#0c4465581c4155ee45b2a99a7b8cbacc36d485b0" integrity sha512-60VSsLJva6oSGidtem2oF43i04zNqg2Hxm3OT/UvUamuIIoY0QJKI+hnWl643mGTk5Ooz13hDLxpt5Sf9IXmfw== -"@polkadotcloud/themes@^0.1.0": - version "0.1.0" - resolved "https://registry.npmjs.org/@polkadotcloud/themes/-/themes-0.1.0.tgz#4c6e91d9ed71b4107a16fc2af328c803a95c5ed1" - integrity sha512-0BEjOIcIZ83u1aigMrLQTZ1Bi1d+7v72Rou/Gk70giXh7i11XPKjGddT3JkXQLk6toWy+AbFSy29BIja5qri1w== +"@polkadotcloud/themes@^0.1.2": + version "0.1.2" + resolved "https://registry.npmjs.org/@polkadotcloud/themes/-/themes-0.1.2.tgz#341c0f64480b85d2ae96fed3fd449a4fc598ae04" + integrity sha512-D8Bvp2b4W7pFYy7gPXWQIiXzf96DHd2oVfGwbm04GevZwOS0qwdMKOJKkvOlgT9bQmEbLXuaKeU5ZV7llMs4sg== "@polkadotcloud/utils@^0.2.22": version "0.2.22" From c2df1f26b8f9a212e97ecab6dea045d37c9a8d7a Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Wed, 26 Jul 2023 16:28:06 +0700 Subject: [PATCH 065/435] rm border --- src/library/Graphs/StatBoxPie.tsx | 7 ++----- src/styles/graphs.ts | 6 +----- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/src/library/Graphs/StatBoxPie.tsx b/src/library/Graphs/StatBoxPie.tsx index a2f2bed4d9..b532544b36 100644 --- a/src/library/Graphs/StatBoxPie.tsx +++ b/src/library/Graphs/StatBoxPie.tsx @@ -19,16 +19,13 @@ export const StatPie = ({ value, value2 }: StatPieProps) => { value = 1; value2 = 0; } - const borderColor = isZero - ? graphColors.inactive[mode] - : [colors.primary[mode], graphColors.border[mode]]; - const backgroundColor = isZero ? graphColors.inactive[mode] : colors.primary[mode]; const options = { - borderColor, + borderColor: graphColors.inactive[mode], + hoverBorderColor: graphColors.inactive[mode], backgroundColor, hoverBackgroundColor: [backgroundColor, graphColors.inactive[mode]], responsive: true, diff --git a/src/styles/graphs.ts b/src/styles/graphs.ts index 02790ee89c..95020b030a 100644 --- a/src/styles/graphs.ts +++ b/src/styles/graphs.ts @@ -4,12 +4,8 @@ import type { AnyJson } from 'types'; export const graphColors: Record = { - border: { - light: '#ccc', - dark: '#555', - }, inactive: { - light: '#f2f1f0', + light: '#eee', dark: 'rgb(39,35,39)', }, tooltip: { From a4a22fd58871895ecdd1aa39d9f81079ecb2c1d0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Jul 2023 21:47:30 +0000 Subject: [PATCH 066/435] Bump @polkadotcloud/core-ui from 0.3.55 to 0.3.59 Bumps [@polkadotcloud/core-ui](https://github.com/paritytech/polkadot-dashboard-ui) from 0.3.55 to 0.3.59. - [Release notes](https://github.com/paritytech/polkadot-dashboard-ui/releases) - [Commits](https://github.com/paritytech/polkadot-dashboard-ui/commits) --- updated-dependencies: - dependency-name: "@polkadotcloud/core-ui" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 75fc3aa6ad..3bdec7b7c3 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "@polkadot/rpc-provider": "^10.9.1", "@polkadot/util": "^12.1.1", "@polkadot/util-crypto": "12.3.2", - "@polkadotcloud/core-ui": "^0.3.55", + "@polkadotcloud/core-ui": "^0.3.59", "@polkadotcloud/react-odometer": "^0.1.17", "@polkadotcloud/themes": "^0.1.2", "@polkadotcloud/utils": "^0.2.22", diff --git a/yarn.lock b/yarn.lock index 50c1eb52ef..3b77c04e68 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1827,10 +1827,10 @@ tslib "^2.5.3" ws "^8.13.0" -"@polkadotcloud/core-ui@^0.3.55": - version "0.3.55" - resolved "https://registry.npmjs.org/@polkadotcloud/core-ui/-/core-ui-0.3.55.tgz#5ac8ed497ea3ba3fdf04f238b2bc06a2269d5eef" - integrity sha512-rqwIjmmmjHFNITQ+Q2mv/FB0tzj7+uzxgf8ACM8G6vsi0wtv0xr+LFa26cfpp5BXsZQGiQUPQwMuaZp2UcPpnw== +"@polkadotcloud/core-ui@^0.3.59": + version "0.3.59" + resolved "https://registry.yarnpkg.com/@polkadotcloud/core-ui/-/core-ui-0.3.59.tgz#3791d0af45326692aa13012543b08e1778235bbb" + integrity sha512-tNaYTRWlKPISpsq51WPvm/DFpgwC1DRPH13U6BTWUC0b13fgepYvO/doBfg3AzmroOe7Q/eytrZAMY+dYuFQ8w== "@polkadotcloud/react-odometer@^0.1.17": version "0.1.17" From e3c03b443fd89e15b2b74938ecb5f4b713d72b7e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Jul 2023 21:47:46 +0000 Subject: [PATCH 067/435] Bump @types/react from 18.2.16 to 18.2.17 Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.2.16 to 18.2.17. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) --- updated-dependencies: - dependency-name: "@types/react" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 3bdec7b7c3..5601c7ca5d 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "devDependencies": { "@ledgerhq/logs": "^6.10.1", "@types/lodash.throttle": "^4.1.7", - "@types/react": "^18.2.16", + "@types/react": "^18.2.17", "@types/react-dom": "^18.2.7", "@types/react-helmet": "^6.1.6", "@types/react-qr-reader": "^2.1.4", diff --git a/yarn.lock b/yarn.lock index 3b77c04e68..954e7bf21d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2146,10 +2146,10 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^18.2.16": - version "18.2.16" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.16.tgz#403dda0e933caccac9efde569923239ac426786c" - integrity sha512-LLFWr12ZhBJ4YVw7neWLe6Pk7Ey5R9OCydfuMsz1L8bZxzaawJj2p06Q8/EFEHDeTBQNFLF62X+CG7B2zIyu0Q== +"@types/react@*", "@types/react@^18.2.17": + version "18.2.17" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.17.tgz#baa565b17ddb649c2dac85b5eaf9e9a1fe0f3b4e" + integrity sha512-u+e7OlgPPh+aryjOm5UJMX32OvB2E3QASOAqVMY6Ahs90djagxwv2ya0IctglNbNTexC12qCSMZG47KPfy1hAA== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" From 59a401374fd3bd93300b43a0f2a94036c3ef800d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Jul 2023 21:48:30 +0000 Subject: [PATCH 068/435] Bump chart.js from 4.3.1 to 4.3.2 Bumps [chart.js](https://github.com/chartjs/Chart.js) from 4.3.1 to 4.3.2. - [Release notes](https://github.com/chartjs/Chart.js/releases) - [Commits](https://github.com/chartjs/Chart.js/compare/v4.3.1...v4.3.2) --- updated-dependencies: - dependency-name: chart.js dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 5601c7ca5d..21ebbe4a81 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "bignumber.js": "^9.1.1", "bn.js": "^5.2.1", "buffer": "^6.0.3", - "chart.js": "^4.3.1", + "chart.js": "^4.3.2", "date-fns": "^2.29.3", "framer-motion": "^10.13.1", "i18next": "^23.2.11", diff --git a/yarn.lock b/yarn.lock index 954e7bf21d..8077f584b2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2738,10 +2738,10 @@ chalk@^4.0.0, chalk@^4.1.1: ansi-styles "^4.1.0" supports-color "^7.1.0" -chart.js@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-4.3.1.tgz#b83ea014ff9f45e43bfd98ef2bdaba2a9aed8a16" - integrity sha512-QHuISG3hTJ0ftq0I0f5jqH9mNVO9bqG8P+zvMOVslgKajQVvFEX7QAhYNJ+QEmw+uYTwo8XpTimaB82oeTWjxw== +chart.js@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-4.3.2.tgz#904ebe0376eb368a659a92d2050df47336847e4c" + integrity sha512-pvQNyFOY1QmbmIr8oDORL16/FFivfxj8V26VFpFilMo4cNvkV5WXLJetDio365pd9gKUHGdirUTbqJfw8tr+Dg== dependencies: "@kurkle/color" "^0.3.0" From 18fe0575173f6219f249d334f347d766ac5aea20 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Jul 2023 21:48:16 +0000 Subject: [PATCH 069/435] Bump i18next from 23.2.11 to 23.3.0 Bumps [i18next](https://github.com/i18next/i18next) from 23.2.11 to 23.3.0. - [Release notes](https://github.com/i18next/i18next/releases) - [Changelog](https://github.com/i18next/i18next/blob/master/CHANGELOG.md) - [Commits](https://github.com/i18next/i18next/compare/v23.2.11...v23.3.0) --- updated-dependencies: - dependency-name: i18next dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 21ebbe4a81..d83261d195 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "chart.js": "^4.3.2", "date-fns": "^2.29.3", "framer-motion": "^10.13.1", - "i18next": "^23.2.11", + "i18next": "^23.3.0", "i18next-browser-languagedetector": "^7.1.0", "lodash.throttle": "^4.1.1", "qrcode-generator": "1.4.4", diff --git a/yarn.lock b/yarn.lock index 8077f584b2..fedad84511 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3910,10 +3910,10 @@ i18next-browser-languagedetector@^7.1.0: dependencies: "@babel/runtime" "^7.19.4" -i18next@^23.2.11: - version "23.2.11" - resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.2.11.tgz#0c6f3a637fa87d3243e64b78ad285b7f77d41353" - integrity sha512-MA4FsxOjyCaOZtRDB4yuwjCvqYEioD4G4LlXOn7SO3rnQUlxTufyLsOqfL9MKakeLRBkefe8bqcs0D6Z/xFk1w== +i18next@^23.3.0: + version "23.3.0" + resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.3.0.tgz#88528a735bb3e61019093899867b9fdb26436508" + integrity sha512-xd/UzWT71zYudCT7qVn6tB4yUVuXAhgCorsowYgM2EOdc14WqQBp5P2wEsxgfiDgdLN5XwJvTbzxrMfoY/nxnw== dependencies: "@babel/runtime" "^7.22.5" From 4c5cf5b00cac1a86034798d1406ee899a205598f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 27 Jul 2023 21:52:12 +0000 Subject: [PATCH 070/435] Bump eslint-config-prettier from 8.8.0 to 8.9.0 Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 8.8.0 to 8.9.0. - [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/eslint-config-prettier/compare/v8.8.0...v8.9.0) --- updated-dependencies: - dependency-name: eslint-config-prettier dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index d83261d195..b83c921a7b 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,7 @@ "eslint": "^8.45.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb-typescript": "^17.1.0", - "eslint-config-prettier": "^8.8.0", + "eslint-config-prettier": "^8.9.0", "eslint-import-resolver-typescript": "^3.5.5", "eslint-plugin-import": "^2.27.5", "eslint-plugin-jsx-a11y": "^6.7.1", diff --git a/yarn.lock b/yarn.lock index fedad84511..90b61dbc53 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3199,10 +3199,10 @@ eslint-config-airbnb@^19.0.4: object.assign "^4.1.2" object.entries "^1.1.5" -eslint-config-prettier@^8.8.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" - integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== +eslint-config-prettier@^8.9.0: + version "8.9.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.9.0.tgz#094b6254b2804b0544f7cee535f802b6d29ee10b" + integrity sha512-+sbni7NfVXnOpnRadUA8S28AUlsZt9GjgFvABIRL9Hkn8KqNzOp+7Lw4QWtrwn20KzU3wqu1QoOj2m+7rKRqkA== eslint-import-resolver-node@^0.3.7: version "0.3.7" From 33124517ef6ceaf899a99ec13fa294290558b895 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 27 Jul 2023 21:52:55 +0000 Subject: [PATCH 071/435] Bump vite-bundle-visualizer from 0.8.1 to 0.10.0 Bumps [vite-bundle-visualizer](https://github.com/KusStar/vite-bundle-visualizer) from 0.8.1 to 0.10.0. - [Commits](https://github.com/KusStar/vite-bundle-visualizer/compare/v0.8.1...v0.10.0) --- updated-dependencies: - dependency-name: vite-bundle-visualizer dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index d83261d195..eb644538f1 100644 --- a/package.json +++ b/package.json @@ -87,7 +87,7 @@ "sass": "^1.64.1", "typescript": "^5.1.6", "vite": "^4.4.7", - "vite-bundle-visualizer": "^0.8.1", + "vite-bundle-visualizer": "^0.10.0", "vite-plugin-checker": "^0.6.1", "vite-plugin-eslint": "^1.8.1", "vite-plugin-svgr": "^3.2.0", diff --git a/yarn.lock b/yarn.lock index fedad84511..e436598026 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5099,7 +5099,7 @@ ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" -rollup-plugin-visualizer@^5.9.0: +rollup-plugin-visualizer@^5.9.2: version "5.9.2" resolved "https://registry.yarnpkg.com/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.9.2.tgz#f1aa2d9b1be8ebd6869223c742324897464d8891" integrity sha512-waHktD5mlWrYFrhOLbti4YgQCn1uR24nYsNuXxg7LkPH8KdTXVWR9DNY1WU0QqokyMixVXJS4J04HNrVTMP01A== @@ -5662,13 +5662,13 @@ util-deprecate@^1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -vite-bundle-visualizer@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/vite-bundle-visualizer/-/vite-bundle-visualizer-0.8.1.tgz#a982f040898808f4f854b271032b6892eed0c623" - integrity sha512-CLNRfxjdVi6lMC0/FJCKqJ06LMvizGuoCJRHBPWcVHMhUZ04O3O4ACcaMoOjcJMaB8+QexfmaWKUcmyX3iOwOA== +vite-bundle-visualizer@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/vite-bundle-visualizer/-/vite-bundle-visualizer-0.10.0.tgz#bdeafe5f8e69eb4c157174ae8d852279272e3010" + integrity sha512-11AwKlkhvw6jjiGbTiCZqBSGg/FQDLc0mVcoLWVov2jU/Ban67l+Sk4Fa0Iyctb5sObqg/dA28HkKCEmSRjw9g== dependencies: cac "^6.7.14" - rollup-plugin-visualizer "^5.9.0" + rollup-plugin-visualizer "^5.9.2" vite-node@0.33.0: version "0.33.0" From 64ee8dd7aea1ab3abde83a12221a041510ef9102 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 27 Jul 2023 21:54:01 +0000 Subject: [PATCH 072/435] Bump framer-motion from 10.13.1 to 10.14.0 Bumps [framer-motion](https://github.com/framer/motion) from 10.13.1 to 10.14.0. - [Changelog](https://github.com/framer/motion/blob/main/CHANGELOG.md) - [Commits](https://github.com/framer/motion/compare/v10.13.1...v10.14.0) --- updated-dependencies: - dependency-name: framer-motion dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index eb644538f1..5c61b2f24b 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "buffer": "^6.0.3", "chart.js": "^4.3.2", "date-fns": "^2.29.3", - "framer-motion": "^10.13.1", + "framer-motion": "^10.14.0", "i18next": "^23.3.0", "i18next-browser-languagedetector": "^7.1.0", "lodash.throttle": "^4.1.1", diff --git a/yarn.lock b/yarn.lock index e436598026..bc9b597c0a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3593,10 +3593,10 @@ formdata-polyfill@^4.0.10: dependencies: fetch-blob "^3.1.2" -framer-motion@^10.13.1: - version "10.13.1" - resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-10.13.1.tgz#f717c924ce9a8927264b41692a870d1366fe296c" - integrity sha512-uiKsaLEoySeln3eOPy8wUB3FkNtRRiVga5xJOkgs7C0sHVyvpJajXJFSoabt+emBojgnMQY0epnjl0ppoYPxkQ== +framer-motion@^10.14.0: + version "10.14.0" + resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-10.14.0.tgz#e5da187dcead0ffdb21310098924fefbaf566d78" + integrity sha512-XMZCbki8+9+D9of6P0cFtGrSGItNvXUJqvGI8O5v5aSvprA3PNlcpgfLEfTIZ9woNuZtYv56dprktuQ+S2welw== dependencies: tslib "^2.4.0" optionalDependencies: From 487dc7272d4534223e60ffa18dda7872db7dedf1 Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Fri, 28 Jul 2023 20:31:32 +0700 Subject: [PATCH 073/435] deprecate config/extensions --- .eslintrc.json | 1 + package.json | 1 + src/config/extensions/icons/enkrypt.svg | 9 --- src/config/extensions/icons/fearless.svg | 1 - src/config/extensions/icons/novawallet.svg | 1 - src/config/extensions/icons/polkadotjs.svg | 1 - src/config/extensions/icons/polkagate.svg | 1 - src/config/extensions/icons/subwallet.svg | 82 ---------------------- src/config/extensions/icons/talisman.svg | 1 - src/config/extensions/index.ts | 56 --------------- src/contexts/Extensions/index.tsx | 4 +- src/contexts/Validators/index.tsx | 2 +- src/modals/Accounts/Account.tsx | 11 +-- src/modals/Accounts/Wrappers.ts | 5 ++ src/modals/Connect/Extension.tsx | 10 +-- src/modals/Connect/Wrappers.ts | 5 ++ src/modals/Connect/index.tsx | 8 ++- src/modals/Connect/types.ts | 9 ++- yarn.lock | 5 ++ 19 files changed, 41 insertions(+), 172 deletions(-) delete mode 100644 src/config/extensions/icons/enkrypt.svg delete mode 100644 src/config/extensions/icons/fearless.svg delete mode 100644 src/config/extensions/icons/novawallet.svg delete mode 100644 src/config/extensions/icons/polkadotjs.svg delete mode 100644 src/config/extensions/icons/polkagate.svg delete mode 100644 src/config/extensions/icons/subwallet.svg delete mode 100644 src/config/extensions/icons/talisman.svg delete mode 100644 src/config/extensions/index.ts diff --git a/.eslintrc.json b/.eslintrc.json index f1d743b8f1..173e870ea3 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -29,6 +29,7 @@ "unused-imports" ], "rules": { + "import/no-extraneous-dependencies": "off", // NOTE: Remove when ready to merge. "react/require-default-props": "off", "react/no-access-state-in-setstate": "off", "react/destructuring-assignment": "off", diff --git a/package.json b/package.json index 5c61b2f24b..eb23239be6 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "@polkadot/rpc-provider": "^10.9.1", "@polkadot/util": "^12.1.1", "@polkadot/util-crypto": "12.3.2", + "@polkadotcloud/community": "^0.1.1", "@polkadotcloud/core-ui": "^0.3.59", "@polkadotcloud/react-odometer": "^0.1.17", "@polkadotcloud/themes": "^0.1.2", diff --git a/src/config/extensions/icons/enkrypt.svg b/src/config/extensions/icons/enkrypt.svg deleted file mode 100644 index 418f99ddef..0000000000 --- a/src/config/extensions/icons/enkrypt.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/src/config/extensions/icons/fearless.svg b/src/config/extensions/icons/fearless.svg deleted file mode 100644 index 638852a437..0000000000 --- a/src/config/extensions/icons/fearless.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/config/extensions/icons/novawallet.svg b/src/config/extensions/icons/novawallet.svg deleted file mode 100644 index a69cb93776..0000000000 --- a/src/config/extensions/icons/novawallet.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/config/extensions/icons/polkadotjs.svg b/src/config/extensions/icons/polkadotjs.svg deleted file mode 100644 index f2d53e64ea..0000000000 --- a/src/config/extensions/icons/polkadotjs.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/config/extensions/icons/polkagate.svg b/src/config/extensions/icons/polkagate.svg deleted file mode 100644 index b0ed9800f6..0000000000 --- a/src/config/extensions/icons/polkagate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/config/extensions/icons/subwallet.svg b/src/config/extensions/icons/subwallet.svg deleted file mode 100644 index 69d0334c9f..0000000000 --- a/src/config/extensions/icons/subwallet.svg +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/config/extensions/icons/talisman.svg b/src/config/extensions/icons/talisman.svg deleted file mode 100644 index c8893a2a2a..0000000000 --- a/src/config/extensions/icons/talisman.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/config/extensions/index.ts b/src/config/extensions/index.ts deleted file mode 100644 index 807afe0569..0000000000 --- a/src/config/extensions/index.ts +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import type { ExtensionConfig } from 'contexts/Extensions/types'; -import { ReactComponent as EnkryptSVG } from './icons/enkrypt.svg'; -import { ReactComponent as FearlessSVG } from './icons/fearless.svg'; -import { ReactComponent as NovaWalletSVG } from './icons/novawallet.svg'; -import { ReactComponent as PolkadotJSSVG } from './icons/polkadotjs.svg'; -import { ReactComponent as PolkaGateSVG } from './icons/polkagate.svg'; -import { ReactComponent as SubwalletSVG } from './icons/subwallet.svg'; -import { ReactComponent as TalismanSVG } from './icons/talisman.svg'; - -export const Extensions: ExtensionConfig[] = [ - { - id: 'polkadot-js', - title: (window as any)?.walletExtension?.isNovaWallet - ? 'Nova Wallet' - : 'Polkadot JS', - icon: (window as any)?.walletExtension?.isNovaWallet - ? NovaWalletSVG - : PolkadotJSSVG, - url: (window as any)?.walletExtension?.isNovaWallet - ? 'novawallet.io' - : 'polkadot.js.org/extension', - }, - { - id: 'enkrypt', - title: 'Enkrypt', - icon: EnkryptSVG, - url: 'enkrypt.com', - }, - { - id: 'fearless-wallet', - title: 'Fearless Wallet', - icon: FearlessSVG, - url: 'fearlesswallet.io', - }, - { - id: 'polkagate', - title: 'PolkaGate', - icon: PolkaGateSVG, - url: 'polkagate.xyz', - }, - { - id: 'subwallet-js', - title: 'SubWallet', - icon: SubwalletSVG, - url: 'subwallet.app', - }, - { - id: 'talisman', - title: 'Talisman', - icon: TalismanSVG, - url: 'talisman.xyz', - }, -]; diff --git a/src/contexts/Extensions/index.tsx b/src/contexts/Extensions/index.tsx index 5655c51396..2c7922b77c 100644 --- a/src/contexts/Extensions/index.tsx +++ b/src/contexts/Extensions/index.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 import { setStateWithRef } from '@polkadotcloud/utils'; -import { Extensions } from 'config/extensions'; +import { ExtensionsArray } from '@polkadotcloud/community/extensions'; import type { ExtensionInjected, ExtensionsContextInterface, @@ -92,7 +92,7 @@ export const ExtensionsProvider = ({ const getInstalledExtensions = () => { const { injectedWeb3 }: AnyApi = window; const installed: ExtensionInjected[] = []; - Extensions.forEach((e) => { + ExtensionsArray.forEach((e) => { if (injectedWeb3[e.id] !== undefined) { installed.push({ ...e, diff --git a/src/contexts/Validators/index.tsx b/src/contexts/Validators/index.tsx index f1e2b777e8..5b57adf9f8 100644 --- a/src/contexts/Validators/index.tsx +++ b/src/contexts/Validators/index.tsx @@ -9,7 +9,7 @@ import { shuffle, } from '@polkadotcloud/utils'; import BigNumber from 'bignumber.js'; -import { ValidatorCommunity } from 'config/validators'; +import { ValidatorCommunity } from '@polkadotcloud/community/validators'; import type { SessionParachainValidators, SessionValidators, diff --git a/src/modals/Accounts/Account.tsx b/src/modals/Accounts/Account.tsx index f0b9f4df81..6a55bc17e3 100644 --- a/src/modals/Accounts/Account.tsx +++ b/src/modals/Accounts/Account.tsx @@ -5,7 +5,6 @@ import { faGlasses } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { clipAddress, planckToUnit } from '@polkadotcloud/utils'; import { useConnect } from 'contexts/Connect'; -import { useExtensions } from 'contexts/Extensions'; import { useModal } from 'contexts/Modal'; import { ReactComponent as LedgerIconSVG } from 'img/ledgerIcon.svg'; import { ReactComponent as PolkadotVaultIconSVG } from 'img/polkadotVault.svg'; @@ -13,6 +12,7 @@ import { Identicon } from 'library/Identicon'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useTransferOptions } from 'contexts/TransferOptions'; +import { Extensions } from '@polkadotcloud/community/extensions'; import { AccountWrapper } from './Wrappers'; import type { AccountItemProps } from './types'; @@ -33,7 +33,6 @@ export const AccountButton = ({ connectToAccount, } = useConnect(); const { setStatus } = useModal(); - const { extensions } = useExtensions(); const { units, unit } = useApi().network; const { getTransferOptions } = useTransferOptions(); const { freeBalance } = getTransferOptions(address || ''); @@ -51,7 +50,7 @@ export const AccountButton = ({ ? LedgerIconSVG : meta?.source === 'vault' ? PolkadotVaultIconSVG - : extensions.find(({ id }) => id === meta?.source)?.icon ?? undefined; + : Extensions[meta?.source || '']?.Icon ?? undefined; // Determine if this account is active (active account or proxy). const isActive = @@ -107,7 +106,11 @@ export const AccountButton = ({ )}
{label !== undefined ?
{label[1]}
: null} - {Icon !== undefined ? : null} + {Icon !== undefined ? ( + + + + ) : null} {meta?.source === 'external' && ( { const { extensions, extensionsStatus } = useExtensions(); const { connectExtensionAccounts } = useConnect(); const { addNotification } = useNotifications(); - const { title, icon: Icon, url } = meta; + const { title, Icon, website } = meta; const { id } = meta; const extension = extensions.find((e) => e.id === id); @@ -83,8 +83,8 @@ export const Extension = ({ meta, size, flag }: ExtensionProps) => { ) : null} -
- +
+
{flag && flag} @@ -97,11 +97,11 @@ export const Extension = ({ meta, size, flag }: ExtensionProps) => { diff --git a/src/modals/Connect/Wrappers.ts b/src/modals/Connect/Wrappers.ts index 3a8b1a3b8d..6aa36835f7 100644 --- a/src/modals/Connect/Wrappers.ts +++ b/src/modals/Connect/Wrappers.ts @@ -75,6 +75,11 @@ export const ExtensionInner = styled.div` .icon { width: 2.6rem; height: 2.6rem; + + svg { + width: inherit; + height: inherit; + } } svg { .light { diff --git a/src/modals/Connect/index.tsx b/src/modals/Connect/index.tsx index b74e279e22..853dc2e1bf 100644 --- a/src/modals/Connect/index.tsx +++ b/src/modals/Connect/index.tsx @@ -12,7 +12,7 @@ import { ModalPadding, ModalSection, } from '@polkadotcloud/core-ui'; -import { Extensions } from 'config/extensions'; +import { ExtensionsArray } from '@polkadotcloud/community/extensions'; import { useExtensions } from 'contexts/Extensions'; import { useModal } from 'contexts/Modal'; import { Close } from 'library/Modal/Close'; @@ -32,11 +32,13 @@ export const Connect = () => { const { extensions } = useExtensions(); const { replaceModalWith, setModalHeight, modalMaxHeight } = useModal(); - const installed = Extensions.filter((a) => + const installed = ExtensionsArray.filter((a) => extensions.find((b) => b.id === a.id) ); - const other = Extensions.filter((a) => !installed.find((b) => b.id === a.id)); + const other = ExtensionsArray.filter( + (a) => !installed.find((b) => b.id === a.id) + ); // toggle read only management const [readOnlyOpen, setReadOnlyOpen] = useState(false); diff --git a/src/modals/Connect/types.ts b/src/modals/Connect/types.ts index 19e6cb8761..6fda6c2fbd 100644 --- a/src/modals/Connect/types.ts +++ b/src/modals/Connect/types.ts @@ -1,7 +1,8 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: Apache-2.0 -import type { FunctionComponent, SVGProps } from 'react'; +import type React from 'react'; +import type { AnyJson } from 'types'; export interface ExtensionProps { meta: ExtensionMetaProps; @@ -15,11 +16,9 @@ export interface ExtensionProps { export interface ExtensionMetaProps { id: string; title: string; - icon: FunctionComponent< - SVGProps & { title?: string | undefined } - >; + Icon: React.FC; status?: string; - url: string; + website: string; } export interface ListWithInputProps { diff --git a/yarn.lock b/yarn.lock index bc9b597c0a..471f659bd4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1827,6 +1827,11 @@ tslib "^2.5.3" ws "^8.13.0" +"@polkadotcloud/community@^0.1.1": + version "0.1.1" + resolved "https://registry.npmjs.org/@polkadotcloud/community/-/community-0.1.1.tgz#c56d9bd79149c05e780c223954dd6feb78ce6703" + integrity sha512-MINO9q05syGLPtWOfagfx0WYMDW+/MXmnAi/Wy858HfCOgNyWiMHUyfGdE9Ku8k1QDLyT4REa2TpNseIwirOtA== + "@polkadotcloud/core-ui@^0.3.59": version "0.3.59" resolved "https://registry.yarnpkg.com/@polkadotcloud/core-ui/-/core-ui-0.3.59.tgz#3791d0af45326692aa13012543b08e1778235bbb" From e78be8e55828d13b4c6aa1c6b1d9a4ab3b3a9183 Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Fri, 28 Jul 2023 20:36:40 +0700 Subject: [PATCH 074/435] reformat validator thumbnails --- .../validators/{thumbnails => }/Amforc.tsx | 0 .../{thumbnails => }/ApertureMining.tsx | 0 .../{thumbnails => }/Blockseeker.tsx | 0 .../{thumbnails => }/Blockshard.tsx | 0 .../{thumbnails => }/CoinbaseCloud.tsx | 0 .../{thumbnails => }/Crifferent.tsx | 0 .../{thumbnails => }/Decentradot.tsx | 0 .../validators/{thumbnails => }/Dionysus.tsx | 0 .../validators/{thumbnails => }/Dozenodes.tsx | 0 .../{thumbnails => }/DragonStake.tsx | 0 .../validators/{thumbnails => }/Gatotech.tsx | 0 .../validators/{thumbnails => }/Gdot.tsx | 0 .../{thumbnails => }/GenericChain.tsx | 0 .../validators/{thumbnails => }/GoOpen.tsx | 0 .../validators/{thumbnails => }/Helikon.tsx | 0 .../validators/{thumbnails => }/Highstake.tsx | 0 .../validators/{thumbnails => }/Metaspan.tsx | 0 .../validators/{thumbnails => }/PDP.tsx | 0 .../validators/{thumbnails => }/Paranodes.tsx | 0 .../{thumbnails => }/PioneerStake.tsx | 0 .../validators/{thumbnails => }/Polkachu.tsx | 0 .../{thumbnails => }/Polkadotters.tsx | 0 .../PythagorasCapitalInvestment.tsx | 0 .../{thumbnails => }/SekoyaLabs.tsx | 0 .../{thumbnails => }/StakeWorld.tsx | 0 .../validators/{thumbnails => }/Stakely.tsx | 0 .../validators/{thumbnails => }/Stakenode.tsx | 0 .../validators/{thumbnails => }/Stakepile.tsx | 0 .../validators/{thumbnails => }/Stakeplus.tsx | 0 .../{thumbnails => }/StakerSpace.tsx | 0 .../{thumbnails => }/Staking4All.tsx | 0 .../{thumbnails => }/StakingFacilities.tsx | 0 .../{thumbnails => }/TurboFlakes.tsx | 0 .../{thumbnails => }/VFValidierung.tsx | 0 .../validators/{thumbnails => }/Wojdot.tsx | 0 .../validators/{thumbnails => }/bLdNodes.tsx | 0 src/config/validators/index.ts | 605 ------------------ src/pages/Community/Item.tsx | 3 +- 38 files changed, 1 insertion(+), 607 deletions(-) rename src/config/validators/{thumbnails => }/Amforc.tsx (100%) rename src/config/validators/{thumbnails => }/ApertureMining.tsx (100%) rename src/config/validators/{thumbnails => }/Blockseeker.tsx (100%) rename src/config/validators/{thumbnails => }/Blockshard.tsx (100%) rename src/config/validators/{thumbnails => }/CoinbaseCloud.tsx (100%) rename src/config/validators/{thumbnails => }/Crifferent.tsx (100%) rename src/config/validators/{thumbnails => }/Decentradot.tsx (100%) rename src/config/validators/{thumbnails => }/Dionysus.tsx (100%) rename src/config/validators/{thumbnails => }/Dozenodes.tsx (100%) rename src/config/validators/{thumbnails => }/DragonStake.tsx (100%) rename src/config/validators/{thumbnails => }/Gatotech.tsx (100%) rename src/config/validators/{thumbnails => }/Gdot.tsx (100%) rename src/config/validators/{thumbnails => }/GenericChain.tsx (100%) rename src/config/validators/{thumbnails => }/GoOpen.tsx (100%) rename src/config/validators/{thumbnails => }/Helikon.tsx (100%) rename src/config/validators/{thumbnails => }/Highstake.tsx (100%) rename src/config/validators/{thumbnails => }/Metaspan.tsx (100%) rename src/config/validators/{thumbnails => }/PDP.tsx (100%) rename src/config/validators/{thumbnails => }/Paranodes.tsx (100%) rename src/config/validators/{thumbnails => }/PioneerStake.tsx (100%) rename src/config/validators/{thumbnails => }/Polkachu.tsx (100%) rename src/config/validators/{thumbnails => }/Polkadotters.tsx (100%) rename src/config/validators/{thumbnails => }/PythagorasCapitalInvestment.tsx (100%) rename src/config/validators/{thumbnails => }/SekoyaLabs.tsx (100%) rename src/config/validators/{thumbnails => }/StakeWorld.tsx (100%) rename src/config/validators/{thumbnails => }/Stakely.tsx (100%) rename src/config/validators/{thumbnails => }/Stakenode.tsx (100%) rename src/config/validators/{thumbnails => }/Stakepile.tsx (100%) rename src/config/validators/{thumbnails => }/Stakeplus.tsx (100%) rename src/config/validators/{thumbnails => }/StakerSpace.tsx (100%) rename src/config/validators/{thumbnails => }/Staking4All.tsx (100%) rename src/config/validators/{thumbnails => }/StakingFacilities.tsx (100%) rename src/config/validators/{thumbnails => }/TurboFlakes.tsx (100%) rename src/config/validators/{thumbnails => }/VFValidierung.tsx (100%) rename src/config/validators/{thumbnails => }/Wojdot.tsx (100%) rename src/config/validators/{thumbnails => }/bLdNodes.tsx (100%) delete mode 100644 src/config/validators/index.ts diff --git a/src/config/validators/thumbnails/Amforc.tsx b/src/config/validators/Amforc.tsx similarity index 100% rename from src/config/validators/thumbnails/Amforc.tsx rename to src/config/validators/Amforc.tsx diff --git a/src/config/validators/thumbnails/ApertureMining.tsx b/src/config/validators/ApertureMining.tsx similarity index 100% rename from src/config/validators/thumbnails/ApertureMining.tsx rename to src/config/validators/ApertureMining.tsx diff --git a/src/config/validators/thumbnails/Blockseeker.tsx b/src/config/validators/Blockseeker.tsx similarity index 100% rename from src/config/validators/thumbnails/Blockseeker.tsx rename to src/config/validators/Blockseeker.tsx diff --git a/src/config/validators/thumbnails/Blockshard.tsx b/src/config/validators/Blockshard.tsx similarity index 100% rename from src/config/validators/thumbnails/Blockshard.tsx rename to src/config/validators/Blockshard.tsx diff --git a/src/config/validators/thumbnails/CoinbaseCloud.tsx b/src/config/validators/CoinbaseCloud.tsx similarity index 100% rename from src/config/validators/thumbnails/CoinbaseCloud.tsx rename to src/config/validators/CoinbaseCloud.tsx diff --git a/src/config/validators/thumbnails/Crifferent.tsx b/src/config/validators/Crifferent.tsx similarity index 100% rename from src/config/validators/thumbnails/Crifferent.tsx rename to src/config/validators/Crifferent.tsx diff --git a/src/config/validators/thumbnails/Decentradot.tsx b/src/config/validators/Decentradot.tsx similarity index 100% rename from src/config/validators/thumbnails/Decentradot.tsx rename to src/config/validators/Decentradot.tsx diff --git a/src/config/validators/thumbnails/Dionysus.tsx b/src/config/validators/Dionysus.tsx similarity index 100% rename from src/config/validators/thumbnails/Dionysus.tsx rename to src/config/validators/Dionysus.tsx diff --git a/src/config/validators/thumbnails/Dozenodes.tsx b/src/config/validators/Dozenodes.tsx similarity index 100% rename from src/config/validators/thumbnails/Dozenodes.tsx rename to src/config/validators/Dozenodes.tsx diff --git a/src/config/validators/thumbnails/DragonStake.tsx b/src/config/validators/DragonStake.tsx similarity index 100% rename from src/config/validators/thumbnails/DragonStake.tsx rename to src/config/validators/DragonStake.tsx diff --git a/src/config/validators/thumbnails/Gatotech.tsx b/src/config/validators/Gatotech.tsx similarity index 100% rename from src/config/validators/thumbnails/Gatotech.tsx rename to src/config/validators/Gatotech.tsx diff --git a/src/config/validators/thumbnails/Gdot.tsx b/src/config/validators/Gdot.tsx similarity index 100% rename from src/config/validators/thumbnails/Gdot.tsx rename to src/config/validators/Gdot.tsx diff --git a/src/config/validators/thumbnails/GenericChain.tsx b/src/config/validators/GenericChain.tsx similarity index 100% rename from src/config/validators/thumbnails/GenericChain.tsx rename to src/config/validators/GenericChain.tsx diff --git a/src/config/validators/thumbnails/GoOpen.tsx b/src/config/validators/GoOpen.tsx similarity index 100% rename from src/config/validators/thumbnails/GoOpen.tsx rename to src/config/validators/GoOpen.tsx diff --git a/src/config/validators/thumbnails/Helikon.tsx b/src/config/validators/Helikon.tsx similarity index 100% rename from src/config/validators/thumbnails/Helikon.tsx rename to src/config/validators/Helikon.tsx diff --git a/src/config/validators/thumbnails/Highstake.tsx b/src/config/validators/Highstake.tsx similarity index 100% rename from src/config/validators/thumbnails/Highstake.tsx rename to src/config/validators/Highstake.tsx diff --git a/src/config/validators/thumbnails/Metaspan.tsx b/src/config/validators/Metaspan.tsx similarity index 100% rename from src/config/validators/thumbnails/Metaspan.tsx rename to src/config/validators/Metaspan.tsx diff --git a/src/config/validators/thumbnails/PDP.tsx b/src/config/validators/PDP.tsx similarity index 100% rename from src/config/validators/thumbnails/PDP.tsx rename to src/config/validators/PDP.tsx diff --git a/src/config/validators/thumbnails/Paranodes.tsx b/src/config/validators/Paranodes.tsx similarity index 100% rename from src/config/validators/thumbnails/Paranodes.tsx rename to src/config/validators/Paranodes.tsx diff --git a/src/config/validators/thumbnails/PioneerStake.tsx b/src/config/validators/PioneerStake.tsx similarity index 100% rename from src/config/validators/thumbnails/PioneerStake.tsx rename to src/config/validators/PioneerStake.tsx diff --git a/src/config/validators/thumbnails/Polkachu.tsx b/src/config/validators/Polkachu.tsx similarity index 100% rename from src/config/validators/thumbnails/Polkachu.tsx rename to src/config/validators/Polkachu.tsx diff --git a/src/config/validators/thumbnails/Polkadotters.tsx b/src/config/validators/Polkadotters.tsx similarity index 100% rename from src/config/validators/thumbnails/Polkadotters.tsx rename to src/config/validators/Polkadotters.tsx diff --git a/src/config/validators/thumbnails/PythagorasCapitalInvestment.tsx b/src/config/validators/PythagorasCapitalInvestment.tsx similarity index 100% rename from src/config/validators/thumbnails/PythagorasCapitalInvestment.tsx rename to src/config/validators/PythagorasCapitalInvestment.tsx diff --git a/src/config/validators/thumbnails/SekoyaLabs.tsx b/src/config/validators/SekoyaLabs.tsx similarity index 100% rename from src/config/validators/thumbnails/SekoyaLabs.tsx rename to src/config/validators/SekoyaLabs.tsx diff --git a/src/config/validators/thumbnails/StakeWorld.tsx b/src/config/validators/StakeWorld.tsx similarity index 100% rename from src/config/validators/thumbnails/StakeWorld.tsx rename to src/config/validators/StakeWorld.tsx diff --git a/src/config/validators/thumbnails/Stakely.tsx b/src/config/validators/Stakely.tsx similarity index 100% rename from src/config/validators/thumbnails/Stakely.tsx rename to src/config/validators/Stakely.tsx diff --git a/src/config/validators/thumbnails/Stakenode.tsx b/src/config/validators/Stakenode.tsx similarity index 100% rename from src/config/validators/thumbnails/Stakenode.tsx rename to src/config/validators/Stakenode.tsx diff --git a/src/config/validators/thumbnails/Stakepile.tsx b/src/config/validators/Stakepile.tsx similarity index 100% rename from src/config/validators/thumbnails/Stakepile.tsx rename to src/config/validators/Stakepile.tsx diff --git a/src/config/validators/thumbnails/Stakeplus.tsx b/src/config/validators/Stakeplus.tsx similarity index 100% rename from src/config/validators/thumbnails/Stakeplus.tsx rename to src/config/validators/Stakeplus.tsx diff --git a/src/config/validators/thumbnails/StakerSpace.tsx b/src/config/validators/StakerSpace.tsx similarity index 100% rename from src/config/validators/thumbnails/StakerSpace.tsx rename to src/config/validators/StakerSpace.tsx diff --git a/src/config/validators/thumbnails/Staking4All.tsx b/src/config/validators/Staking4All.tsx similarity index 100% rename from src/config/validators/thumbnails/Staking4All.tsx rename to src/config/validators/Staking4All.tsx diff --git a/src/config/validators/thumbnails/StakingFacilities.tsx b/src/config/validators/StakingFacilities.tsx similarity index 100% rename from src/config/validators/thumbnails/StakingFacilities.tsx rename to src/config/validators/StakingFacilities.tsx diff --git a/src/config/validators/thumbnails/TurboFlakes.tsx b/src/config/validators/TurboFlakes.tsx similarity index 100% rename from src/config/validators/thumbnails/TurboFlakes.tsx rename to src/config/validators/TurboFlakes.tsx diff --git a/src/config/validators/thumbnails/VFValidierung.tsx b/src/config/validators/VFValidierung.tsx similarity index 100% rename from src/config/validators/thumbnails/VFValidierung.tsx rename to src/config/validators/VFValidierung.tsx diff --git a/src/config/validators/thumbnails/Wojdot.tsx b/src/config/validators/Wojdot.tsx similarity index 100% rename from src/config/validators/thumbnails/Wojdot.tsx rename to src/config/validators/Wojdot.tsx diff --git a/src/config/validators/thumbnails/bLdNodes.tsx b/src/config/validators/bLdNodes.tsx similarity index 100% rename from src/config/validators/thumbnails/bLdNodes.tsx rename to src/config/validators/bLdNodes.tsx diff --git a/src/config/validators/index.ts b/src/config/validators/index.ts deleted file mode 100644 index 6491c2e1cc..0000000000 --- a/src/config/validators/index.ts +++ /dev/null @@ -1,605 +0,0 @@ -// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -export const ValidatorCommunity = [ - { - name: '🍁 HIGH/STAKE 🥩', - thumbnail: 'Highstake', - bio: 'We came for the memes, we stay for the tech. Located in Switzerland with 15+ years of experience in running reliable online services. We are exclusively running our validators on dedicated hardware in datacenters across Europe.', - email: 'highstake@nexus-informatik.ch', - website: 'https://highstake.tech/', - validators: { - polkadot: [ - '12bget8jJWnyjqYPiCwkXZjDh5tDBkta1WUcDYyndbXVDmQ1', - '12Dw4SzhsxX3fpDiLUYXm9oGbfxcbg1Peq67gc5jkkEo1TKr', - ], - kusama: [ - 'DbRgw96nMQcFEFZWTLd6LSPNdh8u3NBuUDfAhDmB6UU8cJC', - 'HQuPha82sRy91zZn73XRGJVV3ernBh5HZKftUcoDT8CSUwK', - ], - }, - }, - { - name: 'Amforc', - thumbnail: 'Amforc', - bio: 'We are a independent and experienced staking provider from Switzerland. We run our validators in a hybrid cloud setup across multiple geographical locations. Our validators run significantly above average and close to no blocks are missed as para-validator.', - email: 'staking@amforc.com', - twitter: '@amforcag', - website: 'https://amforc.com/', - validators: { - polkadot: [ - '1y6CPLgccsysCEii3M7jQF834GZsz9A3HMcZz3w7RjGPpBL', - '1gBKvQ9vbraAfhxEroBnxoGp9687Hu5wR7NYSwgJeAsw4x8', - '12Ftq9EM1qc3persmD9NFrzFZqF5CALsP7oKDUsGTBe7FBDm', - '13N2JTpk5hhLczQRqxJRmfuCbxTusvDgXYfzkjVoEbaHtpZV', - '13avpNYE4rTxhN2EfJv8zcX1U52JLNgiTtgqrpEDoLZwZxd', - '15xzmgiDUyguYSqZjhi4dGPiUbsW4Z6b3cYALgbUjhE5pKpT', - ], - kusama: [ - 'DVUNoinHdSNfismcrFaBwdJfysxc7A48QkNvTDnTSPXPw3q', - 'DpLatoXXBiSAPooF17bzUZGo7huNB7USfRqd2SgL6RBy2zr', - 'E8zY6KdAH1vuKKMaPdHYLAziht32v2BLqXk6qBw7WtiV2Dv', - 'Ff3xdNrXA47svhiTJHj9uNhxLo29PYjYcJ9cUseAd9FK6iQ', - 'EyQ1wV8jQdKYEWh7FiN2mnkFzAepfq6LfKbWLy7qQkLynGg', - 'J9KLy6nouPoj5rA2RWX8C9wrmrg84Mv3hpB7mZTN7Jvww7C', - 'Czy1KnZV1DqSPcHd6k1WL6fe4nsyhAuiJ9ALZtVvyomdc8y', - ], - }, - }, - { - name: 'Aperture Mining 🎂', - thumbnail: 'ApertureMining', - bio: 'Self-hosted / Decentralized Nodes. Low commission and high reliability. We host our own hardware in our own facility right here in Philadelphia PA, USA. Aperture Mining has been offering cryptocurrency staking and mining solutions since 2018.', - email: 'validator@aperturemining.com', - website: 'https://aperturemining.com', - twitter: '@ApertureMining', - validators: { - polkadot: ['145SvVXoAwR5ufJynYWDeNXzfyxbf5VkCqkHu3Jt7FSdYBE2'], - kusama: [ - 'FJcnsNkMjY8tgJrDVeq5CKoB1b4Au2xGQjaMv8Ax5QAiV6p', - 'Cad3MXUdmKLPyosPJ67ZhkQh7CjKjBFvb4hyjuNwnfaAGG5', - 'Hcbo6hyfVgExCKrjmJic9bg4gLWgYy6HLrjcXUYy2VgLG7a', - ], - }, - }, - { - name: 'bLd Nodes | ChadStakeKing', - thumbnail: 'bLdNodes', - bio: 'Independant validator, professionnal Web3 Devops engineer, bLd Nodes is focusing on providing small scale validators and collators with low commission. Proud co-founder of the DOT Validator Alliance', - email: 'gm@bldnodes.org', - website: 'https://bldnodes.org', - validators: { - polkadot: ['12bLdVAgWiKHgFHtAaQstasMUWVq35oG9iwHCwsKoFFNoNrk'], - kusama: ['Hf8C626KBAjitMV7w8AhQWDCiPgUU47htEwbomq5mDMKeyL'], - }, - }, - { - name: 'Blockseeker.io', - thumbnail: 'Blockseeker', - bio: 'Independant validator, software engineer and web3 enthusiast, focusing on providing tools and building for web3 running bare metal/dedicated nodes to help decentralize the network. Only charges a small fee to help maintain nodes and effort in running them.', - email: 'dev@blockseeker.io', - twitter: '@blockseeker_io', - website: 'https://blockseeker.io', - validators: { - polkadot: ['131Qzz7SvHUn7zdDAt2jFZmzVsP2KkoiDWLZa9N7FivGTXpB'], - kusama: [ - 'HPuireorhWdSCQg5dG1zeGk7XCuAfkb21BtDyLqRuN62k67', - 'J6if9c47o81JsMeB75VwkXtx1nVEaMPvQxuMRYhBR8H6ULU', - ], - }, - }, - { - name: 'Coinbase Cloud', - thumbnail: 'CoinbaseCloud', - bio: 'Our staking infrastructure powers the leading crypto products and exchanges. We offer the same infrastructure in our public validators and make it available to you.', - email: 'cloud-support@coinbase.com', - twitter: '@CoinbaseCloud', - website: 'https://www.coinbase.com/cloud', - validators: { - polkadot: [ - '1VrKDfXunzstY5uxPpjArUbZekirGXcpMDYvCBJmjV1KdEm', - '16Dgcx1qJzp8kme1CWsySDf3JWd1oKtbChYVm2yAYqM44woY', - '12Yz9HPcF66pAGpwEW5cyFZ59TFeXFGVnkuxTphC3Lrap29z', - '12e1tkDgfF3GYdiTkRq1vunXrvvhpKq3BQZYbJ1haXHApQTn', - '12eKZbGJKVyHfTPkUs9MrJeGkbFrZRqzhKBBeRJ3G3YoWPun', - '12q76RYkETZ6UACiiznBicXgcXZ8EMFAuPv8QtfSrc6KSLYo', - '1A2ATy1FEu5yQ9ZzghPLsRckPQ7XLmq5MJQYcTvGnxGvCho', - '15V6NjwmKkZihe644Tyr8GVLxjEzBAHktf6ZcJCTx7RPCoYS', - '124YFXA3XoRs9Epcx3aRUSk3EKYaznocqMWfrMKtGjx8TJ2W', - '12ECDEb18Wiy4MoLn3NTM5zhJfDfpS4mLNvjHpcEr8ogGrMZ', - '12HFymxpDmi4XXPHaEMp74CNpRhkqwG5qxnrgikkhon1XMrj', - '12WmM98h4Ar6y7ZyyMKPXwSyuP5GSZvXTbEkDXm1tirbZFW4', - '13BN4WksoyexwDWhGsMMUbU5okehD19GzdyqL4DMPR2KkQpP', - '14XefeqDxiaVQEo7Xv7WBs3Wz8GZPes7DBjQxsNuxu683B9o', - '1486kNkPxvF7Pmgfr4MskGnn4p4KXCigMejv5Q7szMowioKK', - '14wFkAiTSxhUUdpkN37QMhZv6dYcURJVgSGwqDRd4TK2qhrL', - ], - kusama: [ - 'EFjHdypk8xLf3ocDEFPaKFWVcfamH8mpvfUeXHvRWpSBk2M', - 'DXrJrPLLBHuapmYJ6tfuUStKubhykWmpgLckJpgFgjp2JvV', - ], - }, - }, - { - name: '🌐 decentraDOT.com 🌐', - thumbnail: 'Decentradot', - bio: 'decentraDOT is a high-quality Polkadot validator run by blockchain enthusiasts in the Netherlands. In addition to staking services we provide free of charge software such as our validator dashboard.', - email: 'admin@decentradot.com', - website: 'https://decentradot.com', - validators: { - polkadot: ['15wznkm7fMaJLFaw7B8KrJWkNcWsDziyTKVjrpPhRLMyXsr5'], - kusama: [ - 'GRSWBC1kCuNVp8KTgGyK7Bo3bP7CdLDPwfnx2L5JJLQ41Qj', - 'Em4HYqVrWX3uCvrC8NWoabfKpV9z8stdRKkXYXcZdWGxdXT', - ], - }, - }, - { - name: 'Dionysus🍇', - thumbnail: 'Dionysus', - bio: 'Independent secure rigorously monitored validation service for Polkadot and Kusama Networks operated by Web3 researchers and engineers with a proven record in running reliable secure infrastructure.', - email: 'hi@dionysus.network', - website: 'https://dionysus.network', - validators: { - polkadot: ['12CJw9KNkC7FzVVg3dvny4PWHjjkvdyM17mmNfXyfucp8JfM'], - kusama: [ - 'FWz717J6ATaYSNy2tRHAskEC9SP4uKHNJYC9mvfvimkB8GT', - 'DrymfiuRSkpVCqy3tFxAsYEUUiXVNeghCkhcsWor6RA1K7c', - 'DYLJXVDuT3wNfnYZ1nQoTXcpguX4hk2y93q4RnCEMuU9jTr', - 'GjndRb4VKJatuFpxgSVULRGRULFcwxNHubrnoGZzGwfK4YT', - 'FFAatME5P5gMazo9AywhqmeqVLTNMPrDtJsT9saxuy2BYpE', - 'FyL5TJXFEWDHC1yuBGwtngo3LRg4nEQ4ua47p1szMQdh8HR', - ], - }, - }, - { - name: 'Dozenodes', - thumbnail: 'Dozenodes', - bio: 'Independent Polkadot and Kusama Validator. We are running secure and reliable nodes based in central europe operated by experienced engineers.', - email: 'contact@dozenodes.com', - website: 'https://dozenodes.com', - validators: { - polkadot: ['167ShbHu769mP5jbtt7AHayJhzEied6s8M5kN5nBSAQewnRz'], - kusama: [ - 'DDhVgn62SE2riWjS6U4AaYtfLNKuFxqTU32EnqAtAuxqM58', - 'JA9TjkzZzsJnBC8igbnLZ2WYvgsYHd6fu54QJAViqnADoZq', - 'HnGgDUuyT97UcSpHhPaxY1h2MPFAjE1qiS9oKRMx5md6464', - ], - }, - }, - { - name: 'GATOTECH 😸', - thumbnail: 'Gatotech', - bio: 'Gatotech Ltd is a Scottish IT company focused on the adoption of decentralised ledger technologies (DLT) for the benefit of humankind.', - email: 'info@gatotech.uk', - twitter: '@gatotech_uk', - website: 'https://gatotech.uk', - validators: { - polkadot: [ - '15iA5hpjUecWBbf38Nfegwmtyux25o3LrGaNodfZDxq5nXXE', - '14KHzXAZ5admFLXdgbEGpSjCGxiePniHRDM6t5r4o8kbYV7P', - ], - kusama: [ - 'DrRBkx2Qx4sXRGZDXz6d44QCXqV2eJhn8Rq79V88FpSqAr8', - 'EeFYYF8zrLXRpfFXLn2T5bMmgiFpDpmAhVzoh9hA3188wTc', - ], - }, - }, - { - name: 'GoOpen', - thumbnail: 'GoOpen', - bio: 'Independent Polkadot Validator. Polkadot teacher on Moralis academy. With strong knowledge of Linux, making sure that the validator is running on a secure and up-to-date system with optimal hardware.', - validators: { - polkadot: ['16VVNbc4m6aUxwaVwgRra6Ue7fMNGcRQHTFo1TqxmnCyuwwn'], - kusama: ['JJiV1xrj1814BVDDG2pFCsgzdbR7K29VcyXQGXEUhn7LWhK'], - }, - }, - { - name: 'Helikon', - thumbnail: 'Helikon', - bio: 'We are an independent blockchain software, infrastructre and staking services company from Istanbul. We run our validators on state-of-the-art owned hardware in a Tier III colocation data center just outside Istanbul. Please visit our website for more information about our products and services.', - email: 'info@helikon.io', - twitter: '@helikonlabs', - website: 'https://www.helikon.io', - validators: { - polkadot: ['123kFHVth2udmM79sn3RPQ81HukrQWCxA1vmTWkGHSvkR4k1'], - kusama: [ - 'GC8fuEZG4E5epGf5KGXtcDfvrc6HXE7GJ5YnbiqSpqdQYLg', - 'GougF9o6LNGrAMb1ZtH9XWePVCz1PBAvwatjvCtw75M6M3q', - ], - }, - }, - { - name: 'Jimmy Tudeski | Stakenode ʕ •ᴥ•ʔ', - thumbnail: 'Stakenode', - bio: 'Stakenode provides validation and staking services for Polkadot and Kusama relay chains and parachain networks. We are independent node operators, experienced Dotsama ambassadors, focused on community, decentralisation and ecosystem development. Come stake and build with us.', - email: 'jimmytudeski@stakenode.dev', - twitter: '@stakenode_dev', - website: 'https://stakenode.medium.com/', - validators: { - kusama: [ - 'FvdwMNP57nRWEsNZZsrHWKqnbmduy4jBAC8MeLmgi9Yp8sA', - 'D3Sr3PozgPypkBzKBheGSJbqu8m4idenBPaWtZUXLWPtjJT', - ], - }, - }, - { - name: 'Blockshard', - thumbnail: 'Blockshard', - bio: 'Non-custodial staking made in Switzerland. At your service since 2018. Previously known as LetzBake!', - email: 'hello@blockshard.io', - twitter: '@blockshard1', - website: 'https://blockshard.io', - validators: { - kusama: ['Cp4U5UYg2FaVUpyEtQgfBm9aqge6EEPkJxEFVZFYy7L1AZF'], - }, - }, - { - name: 'METASPAN', - thumbnail: 'Metaspan', - bio: 'End-to-end blockchain solutions, building on Polkadot and Kusama.', - email: 'hello@metaspan.com', - twitter: '@metaspan_io', - website: 'https://metaspan.com/', - validators: { - polkadot: ['16ce9zrmiuAtdi9qv1tuiQ1RC1xR6y6NgnBcRtMoQeAobqpZ'], - kusama: ['HyLisujX7Cr6D7xzb6qadFdedLt8hmArB6ZVGJ6xsCUHqmx'], - }, - }, - { - name: 'G-dot Tech', - thumbnail: 'Gdot', - bio: 'G-dot Tech is providing professional staking services on well-maintained bare metal machines with locations across Europe. Our goal is to contribute to the decentralization of Polkadot and Kusama by staying independent with a small share among the active validators. Feel free to reach out any time if you have questions.', - email: 'g-dot.tech@protonmail.com', - website: 'https://g-dot.tech/', - validators: { - polkadot: ['153Fz22gxQP8HM8RbnvEt9XWsXu9nR8jxZC2MbQFmuKhN62f'], - kusama: [ - 'G9zJwPviHn5qRHCRX4Gm75XtUob9Cagyu4fdrhrzwsbqUwX', - 'HHvov74Rs8S9zGJifq7HKw4Ua14medsxokDyyCwjSSDfSj7', - 'DPdkDRzUV56F5R8fNjZwFx2Uctn173c1UJJXjxQMVMZuCqS', - ], - }, - }, - { - name: 'Generic-Chain', - thumbnail: 'GenericChain', - bio: 'Generic-Chain validation servers, by TwoPebbles Ventures, have an outstanding operations team that provides professionally managed infrastructure, maximizing returns with ultra-reliable and secure validation services.', - email: 'info@generic-chain.io', - twitter: '@generic_chain', - validators: { - polkadot: ['13pZskDR7Pt67NtcChSr4uFRBf9ZS52nQeyrceSykq8MDrMe'], - kusama: [ - 'EiMA69PZWju1jmisAU3ubN4wJQgBexnFXZpWb7aMtftP5rV', - 'J6HHWeSmt5PjoDCRzVvB5oJnQMMvCM5iNBd5W42S8L3BbVK', - 'EffRLTpaDPBa6G6UUhXCVdn2SNyeMxPJttucrtppEjnHkST', - ], - }, - }, - { - name: 'ParaNodes.io', - thumbnail: 'Paranodes', - bio: 'ParaNodes offers nominators high returns through low commissions and high reliability. ParaNodes is a team of three (3) individuals over two timezones to ensure adequate coverage. We take a knowledge and process based approach to ensuring security and stablility of operations.', - email: 'support@paranodes.io', - twitter: '@paranodes', - website: 'https://paranodes.io/', - validators: { - polkadot: ['14hM4oLJCK6wtS7gNfwTDhthRjy5QJ1t3NAcoPjEepo9AH67'], - kusama: [ - 'H3DL157HL7DkvV2kXocanmKaGXNyQphUDVW33Fnfk8KNhsv', - 'HtYny8Eker9VBEKQrtBd6Y5PTkaHQFSvyMFy2bkd66wGBan', - 'FkWky3r2bryP3aaAwVWykYrKesAwkDyKZWsDyBvck7YawSi', - 'EsNZHmG4bQMGzQNK4Z2CR7Hdhu4or7p2vsLRChUEJcjJAeU', - 'EriYFJuqCeBF6SFkKxyQWwaTvT9tcoF9ZGDQ4LX3a1iBsYr', - 'ESzw1JdRfoBNUKo12qjqu4RMgro3exrit1Tr1GGFjVhyHZf', - 'DtrDM8ZZpBhTSwptMCgYEzJqbPUFArScxikZfbd9tHA47PZ', - 'EWxmJtdmRUtpgLiHzFbtQc3E2jDx9j3VYZPmjWCEaSUnCZG', - 'HyZUEZw5G18KtisetKL274g2Kh6i2XHKtFoheyKJW9vBwXu', - 'Gu6Jt8TJQ3LF7dJgVLCr1JfoxKTcWhMAoaXr8ATczMAE9vm', - 'ECLwZzFusnTr6hdztrkVaTKeQoWxKZBh9e8EzdG92QX7PAy', - 'EjHrXpRHyo1WpWEmFKTYT8wEtTXKnzZDQAth1MErwDmabmq', - 'GpZgakHH3wR1vCvYFgy8Q1iJWYqxyQiRPyeXhGKWxX88uXP', - 'CecU9j1rpC6CDSzFjtrUmNqonzVk5n1BNFiTiN9vadA1rMs', - 'FYiswPLWbZAJSBJ3AcGcXpQYxCJW3eE56QQvnshGUEKJexW', - ], - }, - }, - { - name: 'PDP_Validator', - thumbnail: 'PDP', - bio: 'Our service has its own infrastructure and a team of administrators. The beneficiaries of our service are investment professionals. We validate in projects from the top 10. We will help you earn!', - email: 'pavel.butenko@yahoo.com', - twitter: '@PaulBAciD', - website: 'https://t.me/go300info', - validators: { - polkadot: ['16Y3FmTiJ3ZYAUZrf5rZtxrQJzcHsDBdscpu2zgMD2xN6NY7'], - kusama: [ - 'J7MmkYX4dJzUbNnU9ccemPFbxtsyaSgFVwAGMxx8k9Lf5cu', - 'HCogweijHTm85qf9cSUqjNmyZZvu61r4SsTcsAT7S7pgpem', - ], - }, - }, - { - name: 'PIONEER STAKE', - thumbnail: 'PioneerStake', - bio: 'We have been active validators since 2019 on the Kusama and Polkadot networks. Service is working on warranty and investment prospects ', - email: 'pioneer.validator@gmail.com', - twitter: '@Ihor07054865', - validators: { - polkadot: [ - '129LBt5T1eYtnGHbPYeiiMdmWfokCiiq7z6JBfjnYifiombz', - '13mjnUDrHwYGATFB1FkFkZ1U3kYFsAQfHYTdcc8p3HP1xzZA', - '15MUBwP6dyVw5CXF9PjSSv7SdXQuDSwjX86v1kBodCSWVR7c', - ], - kusama: [ - 'EQF693vsen6WxMdoYgf2cypvH4saFJWFzDupoFUT79MffeW', - 'CaVLqgMmajk7ySYjo4SPqauXwsZu8Y5tP9vVDvJvcecbp3n', - 'G543pxmwKNAbW2WepZW7Ss9Wgx9wuDQWcPyhk4eEzpzcibG', - 'F7c6ocWu397zYewAHBxqTwHgXhXDebgYSVjRX9oQM42hkpn', - 'Cm6QfCvV3vud3X6Zfg3yMBEnG6JFNsn6EzcZv6UyqTefkR1', - ], - }, - }, - { - name: 'polkachu.com', - thumbnail: 'Polkachu', - bio: 'Polkachu Validators helps investors compound their crypto investments with low commission and advanced support.', - email: 'hello@polkachu.com', - twitter: '@polka_chu', - website: 'https://polkachu.com/', - validators: { - polkadot: ['15ym3MDSG4WPABNoEtx2rAzBB1EYWJDWbWYpNg1BwuWRAQcY'], - kusama: [ - 'CsKvJ4fdesaRALc5swo5iknFDpop7YUwKPJHdmUvBsUcMGb', - 'GpyTMuLmG3ADWRxhZpHQh5rqMgNpFoNUyxA1DJAXfvsQ2Ly', - 'CeD8Kk3QLzp2HDRSciF6YQAc2xYAPurMsHAQUGwEJgCWAf2', - 'GZmbAW7rRi2qkMrHYzmeG2a3fS7nTaAZpjdum8QZ7CvmM7H', - 'G1qbViqnm6yCZwEbfB4oE38ro8VqJx21zyvW7QN8zAJC2B7', - ], - }, - }, - { - name: 'Polkadotters', - thumbnail: 'Polkadotters', - bio: 'We are Polkadot focused node operators and community builders from Czechia.', - email: 'polkadotters@protonmail.com', - twitter: '@Polkadotters1', - website: 'https://polkadotters.com/', - validators: { - polkadot: [ - '16A4n4UQqgxw5ndeehPjUAobDNmuX2bBoPXVKj4xTe16ktRN', - '12L5m9htNsUP58mBHFXcsABDSCohhX2J4nMuY9TrJHNLCssQ', - ], - kusama: ['FVAFUJhJy9tj1X4PaEXX3tDzjaBEVsVunABAdsDMD4ZYmWA'], - }, - }, - { - name: '🍀ARISTOPHANES🍀', - thumbnail: 'PythagorasCapitalInvestment', - bio: 'Our motto is responsibility and transparency. We never go offline willfully or negligently, or impose exorbitant commission rates. Our record proves the trust people have placed on us. Being a Tokyo-based node, staking at us strengthens geological resistance of the network to disruptions.', - email: 'subscr3zp@tutanota.com', - twitter: '@PythagorasCI', - website: 'https://pythagoras-capital.net/', - validators: { - polkadot: ['128iAScPNNZcoSXQuFp1VkgW376KqvZs61g9Y36MuUX78ZZ6'], - kusama: [ - 'HU6TSsvA84GKrTiyArBHiFDVBSLHNr5Ki3qPV7T8WKyVJaz', - 'JHbMAHJw6nnQPD3Zth13DGoPxLjYUPWC71AMbErt817nK9y', - ], - }, - }, - { - name: 'Sekoya Labs', - thumbnail: 'SekoyaLabs', - bio: 'Focused on improving blockchain decentralization, Sekoya Labs runs world class validators that return the best product for our nominators.', - email: 'tom@sekoyalabs.com', - twitter: '@sekoyalabs', - website: 'http://sekoyalabs.com', - validators: { - polkadot: ['15PeEsbJeU2BZDgoCmo6xdzsuRaZv1PxLaCUyFmfWPwkZPJ4'], - kusama: ['Dtf5sKpKrQ3mc9SK1WmRTR3oaKyAS3p27LEeWCLPF6gsDuU'], - }, - }, - { - name: 'Stakely', - thumbnail: 'Stakely', - bio: '🔥 Professional validator highly experienced in PoS 🔥 Slashing protection & Eligible for airdrops | Learn with our staking guides, video tutorials and FAQs | Part of the commission of our nodes will go to our Multicoin Faucet funds and other tools 🌱 Carbon Neutral 🌱', - email: 'nodes@stakely.io', - twitter: '@stakely_io', - website: 'https://stakely.io', - validators: { - polkadot: ['15R1Th3ULXAq81QPGeEDfE1ywbw19AjZiARxH7czm83wS2w2'], - kusama: ['EfcQCKZJaNu2vcrpnJDCoh1ub4mGWcHVzeU8ghUH7Co9rui'], - }, - }, - { - name: 'Stakepile.com', - thumbnail: 'Stakepile', - bio: 'Reliable, independent staking service with low fees to help you earn better yields. We actively participate in all community on-chain governance. Our nodes are geographically distributed across several regions for better redundancy and decentralization.', - email: 'stake@stakepile.com', - twitter: '@stakepile', - website: 'https://stakepile.com', - validators: { - polkadot: ['124X3VPduasSodAjS6MPd5nEqM8SUdKN5taMUUPtkWqF1fVf'], - kusama: [ - 'J6TTn21p46c1XzXAZPVTGuQwBxFG2JfTwRnAFwgcdE2SWdz', - 'EAChfSL6tQfjy7vD8YgYB8DCn7A9c1aAsERP9Hx8cj1tqxL', - ], - }, - }, - { - name: 'Sik | crifferent.de', - thumbnail: 'Crifferent', - bio: 'Crifferent offers reliable and secure staking services made in Germany. Combining professionals from IT, marketing, and finance, they evaluate the best projects and offer services to its full extent.', - email: 'simon.kraus@crifferent.de', - twitter: '@dev0_sik', - website: 'https://crifferent.de/', - validators: { - polkadot: ['15wepZh1jWNqxBjsgErm8HmYiE21n79c5krQJeTsYAjHddeM'], - kusama: [ - 'HWyLYmpW68JGJYoVJcot6JQ1CJbtUQeTdxfY1kUTsvGCB1r', - 'GLSikJaXTVWvWtUhzB3Bj6xb5TcnhTUp6EuAkxaCohT9UBv', - ], - }, - }, - { - name: 'Stake Plus', - thumbnail: 'Stakeplus', - bio: 'Providing high quality renewable powered crypto services to blockchain ecosystems.', - email: 'contact@stake.plus', - twitter: '@StakePlusCrypto', - website: 'https://stake.plus', - validators: { - polkadot: ['152QidDC4QrtMCyRGiQmvrNyjntvMg2XouCSdoPSeqUNTvsq'], - kusama: [ - 'FLiadJNdXvLi8TJ62XzrQVxmZaT8z5hAr1YXQg437r8o4G6', - 'CibcGcwnThunMNYrStEWHYdr5WDuy8QnMgT3Vr39JeWCcQs', - 'Hhgs6hgUeAkAd2c3SbphWxAvm9hSoqRxnoarZgrB2pJYPJT', - 'FPVebvd7u2TtyU2magxZVvRqzAHpGZ9aJ9rHXewpHqMGuzr', - 'F8FswEGD1quEyNciuR9KwsragUmqnk7mFLqmAdRdnY9Sdwx', - 'DqsZ7nrch8Ro9HqP1ZX7CbbpZFWy2V4bWjWWjNA2PAehZsW', - ], - }, - }, - { - name: 'Staker Space', - thumbnail: 'StakerSpace', - bio: 'Hi! We are an independent and experienced staking provider. Our homebase is the Netherlands, but we have a run across multiple geographical locations dedicated hardware for our validators. We have been running Kusama and Polkadot validators since the start of the network are highly experienced in doing so. If you have any questions, please get in touch with us.', - email: 'hello@staker.space', - twitter: '@stakerspace', - website: 'https://staker.space', - validators: { - polkadot: [ - '16SpacegeUTft9v3ts27CEC3tJaxgvE4uZeCctThFH3Vb24p', - '14N5nJ4oR4Wj36DsBcPLh1JqjvrM2Uf23No2yc2ojjCvSC24', - '1NqVmUJCyaj5yZ9jp7ZZa58hbUx2QaBZ4eSCu9bqAdZXgAm', - ], - kusama: [ - 'FcjmeNzPk3vgdENm1rHeiMCxFK96beUoi2kb59FmCoZtkGF', - 'Eksma7JmWh8DenpNKi2uCavwaKJ9QrJJbtcnmwJr3hbHSmC', - 'Dm64aaAUyy5dvYCSmyzz3njGrWrVaki9F6BvUDSYjDDoqR2', - 'DfHkfoKa6xzNMWTNGL8SH8VyY69gajen4ijgmegeU4cZm1H', - ], - }, - }, - { - name: 'Stakeworld', - thumbnail: 'StakeWorld', - bio: 'Stakeworld is based in the Netherlands and provides highly reliable, low commission Polkadot and Kusama validator services with nodes hosted on dedicated (bare metal) hardware.', - email: 'info@stakeworld.io', - website: 'https://stakeworld.io', - validators: { - polkadot: [ - '14kpNbU4XjEHfYdqp95Gq3NkBWbgFd6J8Yjd2SneWNzvf1Yp', - '14ebRSbCJepTp2X3YwDsyE3wRRQ1RZYa8nEFnLxLe19qdHna', - ], - kusama: [ - 'CtEni6wrP7Kz2KWus9Y6vQWuhLqJpd9mQFTmTvw8T7FLui8', - 'FZ1GFKR6tYx9gNGHV67h5aV6bfhAbh7ZRdU9ypVvXfseyfg', - 'Dh2ZNKbQMdusURjfZZj7Bczb57PGEoCVmDHdq8hjnH5PZ4E', - 'FNPCfXrsrA8775HGuRvK9seULKpcnxNTTKTGUL4h267YHvw', - 'Hqk9zDKr84PF84ScDQJ29FHyGnKyQsXZPmLuAWFBgKZUybi', - 'Et9ptsqCeSoxNrUuMjg7NBy38jvtsWptQ8WB7WipYouwEz4', - 'JK6wyhbU3sX6jt7yHfZ5QvVb41vXbrhDLahwom9rdDzggjQ', - 'HaGoMnbQGSXgN3SP5g25ALxjJ51yQYCNRiwYALzwAbgpSVY', - 'JK6dqUUj8ySSCjAXs4f2tfgS9amdrpz7eU29n4UDDwtLEfp', - ], - }, - }, - { - name: 'Staking4All', - thumbnail: 'Staking4All', - bio: 'We want to make staking on blockchain projects clear and transparent so everyone can stake and receive returns on their crypto holdings. Stake with us!', - email: 'staking4all@gmail.com', - twitter: '@staking4all', - website: 'https://www.staking4all.org/', - validators: { - polkadot: [ - '14cxMDpBNLsNEXWyCzked3zghzaYWXwoqGT4h12GqQXdVhmn', - '16g43B7VPfTmpXQujSz3aKbqY9twSrDreHFWtwp4P7bLkQPp', - ], - kusama: ['GTUi6r2LEsf71zEQDnBvBvKskQcWvK66KRqcRbdmcczaadr'], - }, - }, - { - name: 'Staking Facilities', - thumbnail: 'StakingFacilities', - bio: "Staking Facilities is your trusted staking provider. Our international team operates highly secure, physical infrastructure with guaranteed uptimes in certified data centers based in Germany. We offer you non-custodial staking services, personal support, and tools for a variety of hand-selected public Proof-of-Stake blockchains for which we always put down a substantial self-bond in order to best align everybody's incentives.", - email: 'info@stakingfacilities.com', - twitter: '@StakingFac', - website: 'https://stakingfacilities.com/', - validators: { - polkadot: [ - '15Sf82YbMQjtpgnExXFxzrwTsAXJKHVU9tzQV6WizAPo1dfL', - '165JpxmCRi28GwbFAjjrD74FTfGdLfHi1LUGMaYLjziDvi4r', - ], - kusama: [ - 'H1ye1dQ7zVM8obAmb21kfUKA8otRekWXn6fiToKusamaJK9', - 'HedLwr1CHmab4QAyoVtxub6kdZDT2YkPDaXawpwfhuCVFjN', - ], - }, - }, - { - name: 'TurboFlakes', - thumbnail: 'TurboFlakes', - bio: 'TurboFlakes provides validators with character running on top of dedicated and high performance servers. Raiden, Coco, Momo, Toto and Dodo are our named validators serving non-stop Polkadot and Kusama. We also provide end-user tooling to help you to interact with substrate blockchain networks. Feel free to reach out.', - email: 'hey@turboflakes.io', - twitter: '@turboflakes', - website: 'https://turboflakes.io', - validators: { - polkadot: ['12gPFmRqnsDhc9C5DuXyXBFA23io5fSGtKTSAimQtAWgueD2'], - kusama: [ - 'FZsMKYHoQG1dAVhXBMyC7aYFYpASoBrrMYsAn1gJJUAueZX', - 'GA7j1FHWXpEU4kavowEte6LWR3NgZ8bkv4spWa9joiQF5R2', - 'GwJweN3Q8VjBMkd2wWLQsgMXrwmFLD6ihfS146GkmiYg5gw', - 'FUu6iSzpfStHnbtbzFy2gsnBLttwNgNSULSCQCgMjPfkYwF', - ], - }, - }, - { - name: 'VF Validierung', - thumbnail: 'VFValidierung', - bio: 'We are crypto enthusiasts from Germany and offer independent and reliable validation and staking returns.', - email: 'contact@validierung.cc', - twitter: '@validierungcc', - website: 'https://www.validierung.cc', - validators: { - polkadot: ['15x643ScnbVQM3zGcyRw3qVtaCoddmAfDv5LZVfU8fNxkVaR'], - kusama: [ - 'HhBer1indmu4m1A1fMKRsCEQ8pfWGHUMskWjD2HLpspJTuW', - 'JHamburgTPv9fRKwTPeBEjyVHmbQK2ayRBpBujb4rx2sHzJ', - 'GHd1brgDS29LhSUMYSorgEWFb2n1M3H4EMz6mcpt8TTdHho', - 'FDAugsNraejDeJHt8n4MSc5Gvn9zuAibNQ9qFQdGNVWYvtx', - ], - }, - }, - { - name: 'WOJDOT ʕ •ᴥ•ʔ', - thumbnail: 'Wojdot', - bio: 'Independent Polkadot Validator. We run our service on bare metal machines via a cloud service with the ability to spin up validator nodes in different regions within a matter of minutes.', - email: 'wojdot@wojdot.com', - twitter: '@wojdot', - validators: { - polkadot: ['13kz33kotYa3M75u5avMS367zJY3Fx2y5ZYASEPunqfEeCjD'], - }, - }, - { - name: '🐲 DragonStake 🐲', - thumbnail: 'DragonStake', - bio: 'Genesis block and Community focused Validator. We run industrial grade staking infrastructure on main proof of stake networks from their earliest testnets. We offer high yields, low commissions and high reliability', - email: 'hello@dragonstake.io', - twitter: '@DragonStake', - website: 'https://dragonstake.io', - validators: { - polkadot: [ - '1dGsgLgFez7gt5WjX2FYzNCJtaCjGG6W9dA42d9cHngDYGg', - '12dGS1zjyiUqj7GuxDDwv9i72RMye1mT7tSWNaSx7QVeJ32H', - ], - kusama: [ - 'DSpbbk6HKKyS78c4KDLSxCetqbwnsemv2iocVXwNe2FAvWC', - 'DSA55HQ9uGHE5MyMouE8Geasi2tsDcu3oHR4aFkJ3VBjZG5', - 'J4XkgJjMP6c1pqneV5KogJvJLM1qReXP9SAMJt33prnDdwB', - ], - }, - }, -]; diff --git a/src/pages/Community/Item.tsx b/src/pages/Community/Item.tsx index d52e68ea32..72bffcb683 100644 --- a/src/pages/Community/Item.tsx +++ b/src/pages/Community/Item.tsx @@ -55,8 +55,7 @@ export const Item = ({ item, actionable }: ItemProps) => { }; const Thumbnail = useMemo( - () => - lazy(() => import(`../../config/validators/thumbnails/${thumbnail}.tsx`)), + () => lazy(() => import(`../../config/validators/${thumbnail}`)), [] ); From 8622f0cbef44da879edc8f3460f609bc389ac4c8 Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Fri, 28 Jul 2023 20:59:12 +0700 Subject: [PATCH 075/435] bump --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index eb23239be6..99d049eca8 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "@polkadot/rpc-provider": "^10.9.1", "@polkadot/util": "^12.1.1", "@polkadot/util-crypto": "12.3.2", - "@polkadotcloud/community": "^0.1.1", + "@polkadotcloud/community": "^0.1.2", "@polkadotcloud/core-ui": "^0.3.59", "@polkadotcloud/react-odometer": "^0.1.17", "@polkadotcloud/themes": "^0.1.2", diff --git a/yarn.lock b/yarn.lock index 471f659bd4..1460b50d86 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1827,10 +1827,10 @@ tslib "^2.5.3" ws "^8.13.0" -"@polkadotcloud/community@^0.1.1": - version "0.1.1" - resolved "https://registry.npmjs.org/@polkadotcloud/community/-/community-0.1.1.tgz#c56d9bd79149c05e780c223954dd6feb78ce6703" - integrity sha512-MINO9q05syGLPtWOfagfx0WYMDW+/MXmnAi/Wy858HfCOgNyWiMHUyfGdE9Ku8k1QDLyT4REa2TpNseIwirOtA== +"@polkadotcloud/community@^0.1.2": + version "0.1.2" + resolved "https://registry.npmjs.org/@polkadotcloud/community/-/community-0.1.2.tgz#d693b89d42ba4ac70abf1c61cfb6b0667ad8130f" + integrity sha512-vKJXcCTonXolrd3tN8lbta4Qp69XR6yzU/BM1FOMfiA6C2Q2oGDVYBiTL2BOi8XLXWzsu3SaagG4WulO9ZlPSg== "@polkadotcloud/core-ui@^0.3.59": version "0.3.59" From ec5b3361ef4e4e68f6d044e5b70eb9f3d3d95e2c Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Fri, 28 Jul 2023 22:29:18 +0700 Subject: [PATCH 076/435] . --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 99d049eca8..b641e0745f 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "@polkadot/rpc-provider": "^10.9.1", "@polkadot/util": "^12.1.1", "@polkadot/util-crypto": "12.3.2", - "@polkadotcloud/community": "^0.1.2", + "@polkadotcloud/community": "0.1.2", "@polkadotcloud/core-ui": "^0.3.59", "@polkadotcloud/react-odometer": "^0.1.17", "@polkadotcloud/themes": "^0.1.2", From 119724be02c86bed8bffa8a048b23b996694cb5b Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Fri, 28 Jul 2023 22:50:57 +0700 Subject: [PATCH 077/435] Update README --- README.md | 78 ++++++++----------------------------------------------- 1 file changed, 11 insertions(+), 67 deletions(-) diff --git a/README.md b/README.md index b69f604fd2..f38c2703ed 100644 --- a/README.md +++ b/README.md @@ -4,69 +4,12 @@ Screenshot 2023-06-16 at 01 23 08 -## Validator Operator Setup Guide +## Contributing Community Assets -Validator operators can add their contact information, icon, and which validators they operate, to the dashboard’s Community section. The Community feature is designed to give non-biased exposure to validator operators, and to host a fully-featured validator browser just for that operator's validators. +The Polkadot Staking Dashboard is a community-driven project, and we welcome contributions to bolster the dashboard's functionality and features. +* **Web Extensions**: Submit PR to the [Polkadot Cloud repository](https://github.com/paritytech/polkadot-cloud) to add a web extension. The extension will then be available in the `@polkadotcloud/community` NPM package. Full instructions can be found [here](https://github.com/paritytech/polkadot-cloud/tree/main/packages/community#adding-web-extension-wallets). -To add an operator, submit a PR with the following changes: - -- **Thumbnail:** Add your operator's thumbnail as an SVG Component in [this folder](https://github.com/paritytech/polkadot-staking-dashboard/tree/main/src/config/validators/thumbnails). -- **Operator details:** Add your operator details to the `VALIDATORS_COMMUNITY`JSON object in [this file](https://github.com/paritytech/polkadot-staking-dashboard/blob/main/src/config/validators/index.ts). - -### Operator Structure - -The following table outlines the structure of a `ValidatorCommunity` entry: - -| Element | Key | Required | Notes | Example | -| -------------- | ------------ | -------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------- | -| Operator Name | `name` | Yes | The chosen name of the operator. | `Validator Central` | -| Thumbnail Name | `thumbnail` | Yes | The name of your SVG component representing your thumbnail. | _See Below_ | -| Bio | `bio` | No | A short description of your entity. Maximum 300 characters. | `Summing up my validator identity in a sentence or so.` | -| Email Address | `email` | No | A public email address representing the operator. | `validatorcentral@parity.io` | -| Twitter Handle | `twitter` | No | The Twitter handle representing the operator. | `@ParityTech` | -| Website URL | `website` | No | A live and vlid secure URL to your website. | `https://parity.io` | -| Validator List | `validators` | Yes | A list of validators grouped by network. At least 1 validator in 1 network must be defined. | _See Below_ | - -### Example Operator - -Upload your SVG icon as a React component. Look at the existing icons as examples, or use the [SVGR Playground](https://react-svgr.com/playground/) to convert your raw SVG file into a component. - -Next, add your operator details to the `ValidatorCommunity` object. Only provide the validator(s) for the particular network(s) you are operating in. If you have no operating validators on Kusama, for example, the `kusama` key can be omitted. - -The following example defines 2 validators on the Polkadot network, and 1 on Kusama: - -``` -export const ValidatorCommunity = [ - ... - { - name: 'Validator Central', - thumbnail: 'ValidatorCentral', - bio: 'Summing up my validator identity in a sentence or so. Maximum 300 characters.', - email: 'validatorcentral@parity.io', - twitter: '@ParityTech', - website: 'https://parity.io', - validators: { - polkadot: [ - '1hYiMW8KSfUYChzCQSPGXvMSyKVqmyvMXqohjKr3oU5PCXF', - '14QSBoJMHF2Zn2XEoLNSeWgqBRr8XoKPy4BxToD6yLSeFFYe' - ], - kusama: ['FykhnPA3pn269LAcQ8VQKDgUQ8ieAaSLwJDhAVhu3dcokVR'], - }, - }, - ... -]; - -``` - -### General Requirements - -| Requirement | Notes | -| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Accuracy | Operator contact details must be working and valid. | -| Liveness | All submitted validator addresses must be discoverable as a validator on the network in question - whether Polkadot or Kusama. | -| Ordering | Please place your operator in alphabetical order within `ValidatorCommunity`. Operators are shuffled before being displayed in the dashboard, removing any bias associated with ordering methods. | - -Please submit an issue for any queries around adding your operator details. +* **Validator Operators**: Submit PR to the [Polkadot Cloud repository](https://github.com/paritytech/polkadot-cloud) to add a validator operator. The operator will then be available in the `@polkadotcloud/community` NPM package. Full instructions can be found [here](https://github.com/paritytech/polkadot-cloud/tree/main/packages/community#adding-validator-operators). ## URL Variables Support @@ -94,10 +37,6 @@ The following URL will load Kusama and use the Chinese localisation resource: staking.polkadot.network/#/overview?n=kusama&l=cn ``` -## Presentations - -- 30/06/2022: [[Video] Polkadot Decoded 2022: Polkadot Staking Dashboard Demo](https://youtu.be/H1WGu6mf1Ls) - ## Using containers You may build a container using: @@ -106,10 +45,15 @@ You may build a container using: ./scripts/build-container.sh ``` -then run your container with: +Then run your container with: ``` podman run --d -p 8080:80 localhost/polkadot-staking-dashboard ``` -and access the **Staking Dashboard** at http://localhost:8080/ +And access the **Staking Dashboard** at http://localhost:8080/. + +## Presentations + +- 29/06/2023: [[Video] Polkadot Decoded 2023: The Next Step of the Polkadot UX Journey](https://www.youtube.com/watch?v=s78SZZ_ZA64) +- 30/06/2022: [[Video] Polkadot Decoded 2022: Polkadot Staking Dashboard Demo](https://youtu.be/H1WGu6mf1Ls) From 4e44f05dd2485cf8b9fd112aaa663f2ed5f6d1a4 Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Fri, 28 Jul 2023 23:00:34 +0700 Subject: [PATCH 078/435] fixes --- .eslintrc.json | 1 - src/pages/Community/Item.tsx | 2 +- yarn.lock | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 173e870ea3..f1d743b8f1 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -29,7 +29,6 @@ "unused-imports" ], "rules": { - "import/no-extraneous-dependencies": "off", // NOTE: Remove when ready to merge. "react/require-default-props": "off", "react/no-access-state-in-setstate": "off", "react/destructuring-assignment": "off", diff --git a/src/pages/Community/Item.tsx b/src/pages/Community/Item.tsx index 72bffcb683..b85f99965a 100644 --- a/src/pages/Community/Item.tsx +++ b/src/pages/Community/Item.tsx @@ -55,7 +55,7 @@ export const Item = ({ item, actionable }: ItemProps) => { }; const Thumbnail = useMemo( - () => lazy(() => import(`../../config/validators/${thumbnail}`)), + () => lazy(() => import(`../../config/validators/${thumbnail}.tsx`)), [] ); diff --git a/yarn.lock b/yarn.lock index 1460b50d86..d388dd907b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1827,7 +1827,7 @@ tslib "^2.5.3" ws "^8.13.0" -"@polkadotcloud/community@^0.1.2": +"@polkadotcloud/community@0.1.2": version "0.1.2" resolved "https://registry.npmjs.org/@polkadotcloud/community/-/community-0.1.2.tgz#d693b89d42ba4ac70abf1c61cfb6b0667ad8130f" integrity sha512-vKJXcCTonXolrd3tN8lbta4Qp69XR6yzU/BM1FOMfiA6C2Q2oGDVYBiTL2BOi8XLXWzsu3SaagG4WulO9ZlPSg== From 6d90d3bf2e2d734ffd2ddca7d0c6e821b92c8af1 Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Fri, 28 Jul 2023 17:21:17 +0100 Subject: [PATCH 079/435] Update README.md --- README.md | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index f38c2703ed..bd8981fa3e 100644 --- a/README.md +++ b/README.md @@ -11,21 +11,15 @@ The Polkadot Staking Dashboard is a community-driven project, and we welcome con * **Validator Operators**: Submit PR to the [Polkadot Cloud repository](https://github.com/paritytech/polkadot-cloud) to add a validator operator. The operator will then be available in the `@polkadotcloud/community` NPM package. Full instructions can be found [here](https://github.com/paritytech/polkadot-cloud/tree/main/packages/community#adding-validator-operators). -## URL Variables Support +## URL Variable Support -Polkadot Staking Dashboard supports URL variables that can be used to direct users to specific configurations of the app, such as landing on a specific language or on a specific network. - -Variables are added at the end of the hash portion of URL: - -``` -staking.polkadot.network/#/overview?n=polkadot&l=en -``` +Polkadot Staking Dashboard supports URL variables that can be used to direct users to specific configurations of the app, such as landing on a specific language or on a specific network. Variables are added at the end of the hash portion of URL. The currently supported URL variables are as follows: -- `n`: Controls the network to default to upon visiting the dashboard. Supported values are `polkadot`, `kusama` and `westend`. -- `l`: Controls the language to default to upon visiting the dashboard. Supported values are `en` and `cn`. -- `a`: Controls the account to connect to upon visiting the dashboard. Ignored if the account is not present in the initial imported accounts. +- **n**: Controls the default network to connect to upon visiting the dashboard. Supported values are `polkadot`, `kusama` and `westend`. +- **l**: Controls the default to use upon visiting the dashboard. Supported values are `en` and `cn`. +- **a**: Controls the account to connect to upon visiting the dashboard. Ignored if the account is not present in the initial imported accounts. URL variables take precedence over saved values in local storage, and will overwrite current configurations. URL variables will update (if present) as a user switches configurations in-app, such as changing the network or language. @@ -37,7 +31,7 @@ The following URL will load Kusama and use the Chinese localisation resource: staking.polkadot.network/#/overview?n=kusama&l=cn ``` -## Using containers +## Using Containers You may build a container using: From 291438e114bb86c6d1297752bab592b3eff172bf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 28 Jul 2023 21:26:55 +0000 Subject: [PATCH 080/435] Bump eslint-plugin-import from 2.27.5 to 2.28.0 Bumps [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) from 2.27.5 to 2.28.0. - [Release notes](https://github.com/import-js/eslint-plugin-import/releases) - [Changelog](https://github.com/import-js/eslint-plugin-import/blob/main/CHANGELOG.md) - [Commits](https://github.com/import-js/eslint-plugin-import/compare/v2.27.5...v2.28.0) --- updated-dependencies: - dependency-name: eslint-plugin-import dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 175 +++++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 157 insertions(+), 20 deletions(-) diff --git a/package.json b/package.json index 141bacef96..74c833b2b3 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "eslint-config-airbnb-typescript": "^17.1.0", "eslint-config-prettier": "^8.9.0", "eslint-import-resolver-typescript": "^3.5.5", - "eslint-plugin-import": "^2.27.5", + "eslint-plugin-import": "^2.28.0", "eslint-plugin-jsx-a11y": "^6.7.1", "eslint-plugin-prefer-arrow": "^1.2.3", "eslint-plugin-prefer-arrow-functions": "^3.1.4", diff --git a/yarn.lock b/yarn.lock index c8ba3b8858..d7511b061c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2441,6 +2441,17 @@ array-uniq@^1.0.1: resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== +array.prototype.findlastindex@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.2.tgz#bc229aef98f6bd0533a2bc61ff95209875526c9b" + integrity sha512-tb5thFFlUcp7NdNF6/MpDk/1r/4awWG1FIz3YqDf+/zJSTezBb+/5WViH41obXULHVpDzoiCLpJ/ZO9YbJMsdw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + get-intrinsic "^1.1.3" + array.prototype.flat@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" @@ -2472,6 +2483,18 @@ array.prototype.tosorted@^1.1.1: es-shim-unscopables "^1.0.0" get-intrinsic "^1.1.3" +arraybuffer.prototype.slice@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz#9b5ea3868a6eebc30273da577eb888381c0044bb" + integrity sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.2" + define-properties "^1.2.0" + get-intrinsic "^1.2.1" + is-array-buffer "^3.0.2" + is-shared-array-buffer "^1.0.2" + assertion-error@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" @@ -3110,6 +3133,51 @@ es-abstract@^1.19.0, es-abstract@^1.20.4: unbox-primitive "^1.0.2" which-typed-array "^1.1.9" +es-abstract@^1.21.2: + version "1.22.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.1.tgz#8b4e5fc5cefd7f1660f0f8e1a52900dfbc9d9ccc" + integrity sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw== + dependencies: + array-buffer-byte-length "^1.0.0" + arraybuffer.prototype.slice "^1.0.1" + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-set-tostringtag "^2.0.1" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.2.1" + get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.5" + is-array-buffer "^3.0.2" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-typed-array "^1.1.10" + is-weakref "^1.0.2" + object-inspect "^1.12.3" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.5.0" + safe-array-concat "^1.0.0" + safe-regex-test "^1.0.0" + string.prototype.trim "^1.2.7" + string.prototype.trimend "^1.0.6" + string.prototype.trimstart "^1.0.6" + typed-array-buffer "^1.0.0" + typed-array-byte-length "^1.0.0" + typed-array-byte-offset "^1.0.0" + typed-array-length "^1.0.4" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.10" + es-set-tostringtag@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" @@ -3232,33 +3300,36 @@ eslint-import-resolver-typescript@^3.5.5: is-glob "^4.0.3" synckit "^0.8.5" -eslint-module-utils@^2.7.4: +eslint-module-utils@^2.7.4, eslint-module-utils@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== dependencies: debug "^3.2.7" -eslint-plugin-import@^2.27.5: - version "2.27.5" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" - integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== +eslint-plugin-import@^2.28.0: + version "2.28.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.28.0.tgz#8d66d6925117b06c4018d491ae84469eb3cb1005" + integrity sha512-B8s/n+ZluN7sxj9eUf7/pRFERX0r5bnFA2dCaLHy2ZeaQEAz0k+ZZkFWRFHJAqxfxQDx6KLv9LeIki7cFdwW+Q== dependencies: array-includes "^3.1.6" + array.prototype.findlastindex "^1.2.2" array.prototype.flat "^1.3.1" array.prototype.flatmap "^1.3.1" debug "^3.2.7" doctrine "^2.1.0" eslint-import-resolver-node "^0.3.7" - eslint-module-utils "^2.7.4" + eslint-module-utils "^2.8.0" has "^1.0.3" - is-core-module "^2.11.0" + is-core-module "^2.12.1" is-glob "^4.0.3" minimatch "^3.1.2" + object.fromentries "^2.0.6" + object.groupby "^1.0.0" object.values "^1.1.6" - resolve "^1.22.1" - semver "^6.3.0" - tsconfig-paths "^3.14.1" + resolve "^1.22.3" + semver "^6.3.1" + tsconfig-paths "^3.14.2" eslint-plugin-jsx-a11y@^6.7.1: version "6.7.1" @@ -3675,7 +3746,7 @@ get-func-name@^2.0.0: resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== @@ -4013,7 +4084,7 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.11.0, is-core-module@^2.9.0: +is-core-module@^2.11.0, is-core-module@^2.12.0, is-core-module@^2.12.1, is-core-module@^2.9.0: version "2.12.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== @@ -4147,6 +4218,11 @@ is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" +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== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -4576,6 +4652,16 @@ object.fromentries@^2.0.6: define-properties "^1.1.4" es-abstract "^1.20.4" +object.groupby@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.0.tgz#cb29259cf90f37e7bac6437686c1ea8c916d12a9" + integrity sha512-70MWG6NfRH9GnbZOikuhPPYzpUpof9iW2J9E4dW7FXTqPNb6rllE6u39SKwwiNh8lCwX3DDb5OgcKGiEBrTTyw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.21.2" + get-intrinsic "^1.2.1" + object.hasown@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92" @@ -5023,7 +5109,7 @@ regenerator-transform@^0.15.1: dependencies: "@babel/runtime" "^7.8.4" -regexp.prototype.flags@^1.4.3: +regexp.prototype.flags@^1.4.3, regexp.prototype.flags@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== @@ -5066,12 +5152,12 @@ resolve-pkg-maps@^1.0.0: resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== -resolve@^1.14.2, resolve@^1.22.1: - version "1.22.2" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" - integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== +resolve@^1.14.2, resolve@^1.22.1, resolve@^1.22.3: + version "1.22.3" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.3.tgz#4b4055349ffb962600972da1fdc33c46a4eb3283" + integrity sha512-P8ur/gp/AmbEzjr729bZnLjXK5Z+4P0zhIJgBgzqRih7hL7BOukHGtSTA3ACMY467GRFz3duQsi0bDZdR7DKdw== dependencies: - is-core-module "^2.11.0" + is-core-module "^2.12.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -5163,6 +5249,16 @@ rxjs@^7.8.1: dependencies: tslib "^2.1.0" +safe-array-concat@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.0.tgz#2064223cba3c08d2ee05148eedbc563cd6d84060" + integrity sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + has-symbols "^1.0.3" + isarray "^2.0.5" + safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" @@ -5533,7 +5629,7 @@ tsconfck@^2.1.0: resolved "https://registry.yarnpkg.com/tsconfck/-/tsconfck-2.1.1.tgz#9b51603d2712d1f4740fa14748ca886a2e1893e5" integrity sha512-ZPCkJBKASZBmBUNqGHmRhdhM8pJYDdOXp4nRgj/O0JwUwsMq50lCDRQP/M5GBNAA0elPrq4gAeu4dkaVCuKWww== -tsconfig-paths@^3.14.1: +tsconfig-paths@^3.14.2: version "3.14.2" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== @@ -5575,6 +5671,36 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== +typed-array-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" + integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + is-typed-array "^1.1.10" + +typed-array-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" + integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" + integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + typed-array-length@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" @@ -5851,6 +5977,17 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" +which-typed-array@^1.1.10: + version "1.1.11" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.11.tgz#99d691f23c72aab6768680805a271b69761ed61a" + integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + which-typed-array@^1.1.9: version "1.1.9" resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" From c7151f2745a1e033b56b781093335404ce93be2c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 28 Jul 2023 21:24:36 +0000 Subject: [PATCH 081/435] Bump eslint from 8.45.0 to 8.46.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.45.0 to 8.46.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.45.0...v8.46.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 72 ++++++++++++++++++++++++++-------------------------- 2 files changed, 37 insertions(+), 37 deletions(-) diff --git a/package.json b/package.json index 141bacef96..0bdf9880cd 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,7 @@ "@typescript-eslint/eslint-plugin": "^6.2.0", "@typescript-eslint/parser": "^6.2.0", "@vitejs/plugin-react-swc": "^3.3.2", - "eslint": "^8.45.0", + "eslint": "^8.46.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb-typescript": "^17.1.0", "eslint-config-prettier": "^8.9.0", diff --git a/yarn.lock b/yarn.lock index c8ba3b8858..99d5b2ce98 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1263,15 +1263,15 @@ dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.5.1": - version "4.6.0" - resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.0.tgz#5b63f0df5528a44e28aa8578d393de908cc3d4d0" - integrity sha512-uiPeRISaglZnaZk8vwrjQZ1CxogZeY/4IYft6gBOTqu1WhVXWmCmZMWxUv2Q/pxSvPdp1JPaO62kLOcOkMqWrw== +"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": + version "4.6.2" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.6.2.tgz#1816b5f6948029c5eaacb0703b850ee0cb37d8f8" + integrity sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw== -"@eslint/eslintrc@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.0.tgz#82256f164cc9e0b59669efc19d57f8092706841d" - integrity sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A== +"@eslint/eslintrc@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.1.tgz#18d635e24ad35f7276e8a49d135c7d3ca6a46f93" + integrity sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -1283,10 +1283,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.44.0": - version "8.44.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.44.0.tgz#961a5903c74139390478bdc808bcde3fc45ab7af" - integrity sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw== +"@eslint/js@^8.46.0": + version "8.46.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.46.0.tgz#3f7802972e8b6fe3f88ed1aabc74ec596c456db6" + integrity sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA== "@fortawesome/fontawesome-common-types@6.4.0": version "6.4.0" @@ -2344,7 +2344,7 @@ acorn@^8.8.2, acorn@^8.9.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== -ajv@^6.10.0, ajv@^6.12.4: +ajv@^6.12.4: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -3333,40 +3333,40 @@ eslint-rule-composer@^0.3.0: resolved "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz#79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9" integrity sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg== -eslint-scope@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" - integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" - integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.2: + version "3.4.2" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.2.tgz#8c2095440eca8c933bedcadf16fefa44dbe9ba5f" + integrity sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw== -eslint@^8.45.0: - version "8.45.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.45.0.tgz#bab660f90d18e1364352c0a6b7c6db8edb458b78" - integrity sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw== +eslint@^8.46.0: + version "8.46.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.46.0.tgz#a06a0ff6974e53e643acc42d1dcf2e7f797b3552" + integrity sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg== dependencies: "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.4.0" - "@eslint/eslintrc" "^2.1.0" - "@eslint/js" "8.44.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.1" + "@eslint/js" "^8.46.0" "@humanwhocodes/config-array" "^0.11.10" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" - ajv "^6.10.0" + ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.3.2" doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.2.0" - eslint-visitor-keys "^3.4.1" - espree "^9.6.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.2" + espree "^9.6.1" esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -3389,10 +3389,10 @@ eslint@^8.45.0: strip-ansi "^6.0.1" text-table "^0.2.0" -espree@^9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.0.tgz#80869754b1c6560f32e3b6929194a3fe07c5b82f" - integrity sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A== +espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: acorn "^8.9.0" acorn-jsx "^5.3.2" From 2b320b4254e85d35b1a458929792c013fd33f4ca Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 28 Jul 2023 21:25:37 +0000 Subject: [PATCH 082/435] Bump framer-motion from 10.14.0 to 10.15.0 Bumps [framer-motion](https://github.com/framer/motion) from 10.14.0 to 10.15.0. - [Changelog](https://github.com/framer/motion/blob/main/CHANGELOG.md) - [Commits](https://github.com/framer/motion/compare/v10.14.0...v10.15.0) --- updated-dependencies: - dependency-name: framer-motion dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 0bdf9880cd..a199af0d8c 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "buffer": "^6.0.3", "chart.js": "^4.3.2", "date-fns": "^2.29.3", - "framer-motion": "^10.14.0", + "framer-motion": "^10.15.0", "i18next": "^23.3.0", "i18next-browser-languagedetector": "^7.1.0", "lodash.throttle": "^4.1.1", diff --git a/yarn.lock b/yarn.lock index 99d5b2ce98..b50fece286 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3598,10 +3598,10 @@ formdata-polyfill@^4.0.10: dependencies: fetch-blob "^3.1.2" -framer-motion@^10.14.0: - version "10.14.0" - resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-10.14.0.tgz#e5da187dcead0ffdb21310098924fefbaf566d78" - integrity sha512-XMZCbki8+9+D9of6P0cFtGrSGItNvXUJqvGI8O5v5aSvprA3PNlcpgfLEfTIZ9woNuZtYv56dprktuQ+S2welw== +framer-motion@^10.15.0: + version "10.15.0" + resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-10.15.0.tgz#5f043fdd4edb2c29a0a5e86cce1f67b88dcdc768" + integrity sha512-HDjWrYWgbO5orKuhnXETLFzk7UUvwWur2HFs2elAZ8lVpI49ClHql31DNTVvVBcOrSHfAOS4eBDBedIvOx634w== dependencies: tslib "^2.4.0" optionalDependencies: From 8aa0bc7672e42c121bfc3b8b2c67fc472cc2945e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Jul 2023 21:31:08 +0000 Subject: [PATCH 083/435] Bump @types/react from 18.2.17 to 18.2.18 Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.2.17 to 18.2.18. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) --- updated-dependencies: - dependency-name: "@types/react" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index a199af0d8c..48e8cf95d6 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "devDependencies": { "@ledgerhq/logs": "^6.10.1", "@types/lodash.throttle": "^4.1.7", - "@types/react": "^18.2.17", + "@types/react": "^18.2.18", "@types/react-dom": "^18.2.7", "@types/react-helmet": "^6.1.6", "@types/react-qr-reader": "^2.1.4", diff --git a/yarn.lock b/yarn.lock index b50fece286..7536a5a6d0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2151,10 +2151,10 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^18.2.17": - version "18.2.17" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.17.tgz#baa565b17ddb649c2dac85b5eaf9e9a1fe0f3b4e" - integrity sha512-u+e7OlgPPh+aryjOm5UJMX32OvB2E3QASOAqVMY6Ahs90djagxwv2ya0IctglNbNTexC12qCSMZG47KPfy1hAA== +"@types/react@*", "@types/react@^18.2.18": + version "18.2.18" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.18.tgz#c8b233919eef1bdc294f6f34b37f9727ad677516" + integrity sha512-da4NTSeBv/P34xoZPhtcLkmZuJ+oYaCxHmyHzwaDQo9RQPBeXV+06gEk2FpqEcsX9XrnNLvRpVh6bdavDSjtiQ== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" From 8e3312da02e40f58f7918aaac1eea6014c15f437 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Jul 2023 21:30:51 +0000 Subject: [PATCH 084/435] Bump eslint-plugin-react from 7.33.0 to 7.33.1 Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.33.0 to 7.33.1. - [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases) - [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md) - [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.33.0...v7.33.1) --- updated-dependencies: - dependency-name: eslint-plugin-react dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 48e8cf95d6..5e602200c4 100644 --- a/package.json +++ b/package.json @@ -80,7 +80,7 @@ "eslint-plugin-prefer-arrow": "^1.2.3", "eslint-plugin-prefer-arrow-functions": "^3.1.4", "eslint-plugin-prettier": "^5.0.0", - "eslint-plugin-react": "^7.33.0", + "eslint-plugin-react": "^7.33.1", "eslint-plugin-unused-imports": "^3.0.0", "gh-pages": "^5.0.0", "prettier": "^3.0.0", diff --git a/yarn.lock b/yarn.lock index 7536a5a6d0..588f1d3e36 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3300,10 +3300,10 @@ eslint-plugin-prettier@^5.0.0: prettier-linter-helpers "^1.0.0" synckit "^0.8.5" -eslint-plugin-react@^7.33.0: - version "7.33.0" - resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.0.tgz#6c356fb0862fec2cd1b04426c669ea746e9b6eb3" - integrity sha512-qewL/8P34WkY8jAqdQxsiL82pDUeT7nhs8IsuXgfgnsEloKCT4miAV9N9kGtx7/KM9NH/NCGUE7Edt9iGxLXFw== +eslint-plugin-react@^7.33.1: + version "7.33.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.33.1.tgz#bc27cccf860ae45413a4a4150bf0977345c1ceab" + integrity sha512-L093k0WAMvr6VhNwReB8VgOq5s2LesZmrpPdKz/kZElQDzqS7G7+DnKoqT+w4JwuiGeAhAvHO0fvy0Eyk4ejDA== dependencies: array-includes "^3.1.6" array.prototype.flatmap "^1.3.1" From c78de98931dae54a93312004e4dcbeb978981640 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Jul 2023 21:31:31 +0000 Subject: [PATCH 085/435] Bump i18next from 23.3.0 to 23.4.1 Bumps [i18next](https://github.com/i18next/i18next) from 23.3.0 to 23.4.1. - [Release notes](https://github.com/i18next/i18next/releases) - [Changelog](https://github.com/i18next/i18next/blob/master/CHANGELOG.md) - [Commits](https://github.com/i18next/i18next/compare/v23.3.0...v23.4.1) --- updated-dependencies: - dependency-name: i18next dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 5e602200c4..d5ed6d8cd9 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "chart.js": "^4.3.2", "date-fns": "^2.29.3", "framer-motion": "^10.15.0", - "i18next": "^23.3.0", + "i18next": "^23.4.1", "i18next-browser-languagedetector": "^7.1.0", "lodash.throttle": "^4.1.1", "qrcode-generator": "1.4.4", diff --git a/yarn.lock b/yarn.lock index 588f1d3e36..2bf8d55317 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3915,10 +3915,10 @@ i18next-browser-languagedetector@^7.1.0: dependencies: "@babel/runtime" "^7.19.4" -i18next@^23.3.0: - version "23.3.0" - resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.3.0.tgz#88528a735bb3e61019093899867b9fdb26436508" - integrity sha512-xd/UzWT71zYudCT7qVn6tB4yUVuXAhgCorsowYgM2EOdc14WqQBp5P2wEsxgfiDgdLN5XwJvTbzxrMfoY/nxnw== +i18next@^23.4.1: + version "23.4.1" + resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.4.1.tgz#11fe0db92ac8a4125934960ebccf6a5f8ed6b9fc" + integrity sha512-07ekE7hbUrbxTYj97VnBzyhKcGURTJC9p4iWTwCVC8t63T+YrgqQmb/n1LBQMivZYwR61pqS+PC0G2rtENycyQ== dependencies: "@babel/runtime" "^7.22.5" From 47bce6c206792bb2f502d6d8c2ecb41d27bf5ea4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Jul 2023 21:32:24 +0000 Subject: [PATCH 086/435] Bump @typescript-eslint/parser from 6.2.0 to 6.2.1 Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 6.2.0 to 6.2.1. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.2.1/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 52 +++++++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 44 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index d5ed6d8cd9..0a160bc2a5 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ "@types/react-qr-reader": "^2.1.4", "@types/react-scroll": "^1.8.6", "@typescript-eslint/eslint-plugin": "^6.2.0", - "@typescript-eslint/parser": "^6.2.0", + "@typescript-eslint/parser": "^6.2.1", "@vitejs/plugin-react-swc": "^3.3.2", "eslint": "^8.46.0", "eslint-config-airbnb": "^19.0.4", diff --git a/yarn.lock b/yarn.lock index 2bf8d55317..443f5f6c32 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2198,15 +2198,15 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/parser@^6.2.0": - version "6.2.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.2.0.tgz#d37c30b0f459c6f39455335d8f4f085919a1c644" - integrity sha512-igVYOqtiK/UsvKAmmloQAruAdUHihsOCvplJpplPZ+3h4aDkC/UKZZNKgB6h93ayuYLuEymU3h8nF1xMRbh37g== - dependencies: - "@typescript-eslint/scope-manager" "6.2.0" - "@typescript-eslint/types" "6.2.0" - "@typescript-eslint/typescript-estree" "6.2.0" - "@typescript-eslint/visitor-keys" "6.2.0" +"@typescript-eslint/parser@^6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.2.1.tgz#e18a31eea1cca8841a565f1701960c8123ed07f9" + integrity sha512-Ld+uL1kYFU8e6btqBFpsHkwQ35rw30IWpdQxgOqOh4NfxSDH6uCkah1ks8R/RgQqI5hHPXMaLy9fbFseIe+dIg== + dependencies: + "@typescript-eslint/scope-manager" "6.2.1" + "@typescript-eslint/types" "6.2.1" + "@typescript-eslint/typescript-estree" "6.2.1" + "@typescript-eslint/visitor-keys" "6.2.1" debug "^4.3.4" "@typescript-eslint/scope-manager@6.2.0": @@ -2217,6 +2217,14 @@ "@typescript-eslint/types" "6.2.0" "@typescript-eslint/visitor-keys" "6.2.0" +"@typescript-eslint/scope-manager@6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.2.1.tgz#b6f43a867b84e5671fe531f2b762e0b68f7cf0c4" + integrity sha512-UCqBF9WFqv64xNsIEPfBtenbfodPXsJ3nPAr55mGPkQIkiQvgoWNo+astj9ZUfJfVKiYgAZDMnM6dIpsxUMp3Q== + dependencies: + "@typescript-eslint/types" "6.2.1" + "@typescript-eslint/visitor-keys" "6.2.1" + "@typescript-eslint/type-utils@6.2.0": version "6.2.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.2.0.tgz#02b27a3eeb41aa5460d6275d12cce5dd72e1c9fc" @@ -2232,6 +2240,11 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.2.0.tgz#b341a4e6d5f609267306b07afc6f62bcf92b1495" integrity sha512-1nRRaDlp/XYJQLvkQJG5F3uBTno5SHPT7XVcJ5n1/k2WfNI28nJsvLakxwZRNY5spuatEKO7d5nZWsQpkqXwBA== +"@typescript-eslint/types@6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.2.1.tgz#7fcdeceb503aab601274bf5e210207050d88c8ab" + integrity sha512-528bGcoelrpw+sETlyM91k51Arl2ajbNT9L4JwoXE2dvRe1yd8Q64E4OL7vHYw31mlnVsf+BeeLyAZUEQtqahQ== + "@typescript-eslint/typescript-estree@6.2.0": version "6.2.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.2.0.tgz#4969944b831b481996aa4fbd73c7164ca683b8ef" @@ -2245,6 +2258,19 @@ semver "^7.5.4" ts-api-utils "^1.0.1" +"@typescript-eslint/typescript-estree@6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.2.1.tgz#2af6e90c1e91cb725a5fe1682841a3f74549389e" + integrity sha512-G+UJeQx9AKBHRQBpmvr8T/3K5bJa485eu+4tQBxFq0KoT22+jJyzo1B50JDT9QdC1DEmWQfdKsa8ybiNWYsi0Q== + dependencies: + "@typescript-eslint/types" "6.2.1" + "@typescript-eslint/visitor-keys" "6.2.1" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.5.4" + ts-api-utils "^1.0.1" + "@typescript-eslint/utils@6.2.0": version "6.2.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.2.0.tgz#606a20e5c13883c2d2bd0538ddc4b96b8d410979" @@ -2266,6 +2292,14 @@ "@typescript-eslint/types" "6.2.0" eslint-visitor-keys "^3.4.1" +"@typescript-eslint/visitor-keys@6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.2.1.tgz#442e7c09fe94b715a54ebe30e967987c3c41fbf4" + integrity sha512-iTN6w3k2JEZ7cyVdZJTVJx2Lv7t6zFA8DCrJEHD2mwfc16AEvvBWVhbFh34XyG2NORCd0viIgQY1+u7kPI0WpA== + dependencies: + "@typescript-eslint/types" "6.2.1" + eslint-visitor-keys "^3.4.1" + "@vitejs/plugin-react-swc@^3.3.2": version "3.3.2" resolved "https://registry.yarnpkg.com/@vitejs/plugin-react-swc/-/plugin-react-swc-3.3.2.tgz#34a82c1728066f48a86dfecb2f15df60f89207fb" From 2a350495d3551a6fca0d1fc45dd19d444d9ff9a3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Jul 2023 21:32:37 +0000 Subject: [PATCH 087/435] Bump react-i18next from 13.0.2 to 13.0.3 Bumps [react-i18next](https://github.com/i18next/react-i18next) from 13.0.2 to 13.0.3. - [Changelog](https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md) - [Commits](https://github.com/i18next/react-i18next/compare/v13.0.2...v13.0.3) --- updated-dependencies: - dependency-name: react-i18next dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 0a160bc2a5..d1c4190f8e 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "react-dom": "^18.2.0", "react-error-boundary": "^4.0.10", "react-helmet": "^6.1.0", - "react-i18next": "^13.0.2", + "react-i18next": "^13.0.3", "react-qr-reader": "^2.2.1", "react-router-dom": "^6.14.2", "react-scroll": "^1.8.9", diff --git a/yarn.lock b/yarn.lock index 443f5f6c32..d6dec4045a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4955,10 +4955,10 @@ react-helmet@^6.1.0: react-fast-compare "^3.1.1" react-side-effect "^2.1.0" -react-i18next@^13.0.2: - version "13.0.2" - resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-13.0.2.tgz#1708a9bdabc1fe1dd4a8534f4c3a80ab784b01e9" - integrity sha512-NEVxC32v0oR4egwYM0QM0WE93AiJG5r0NTXTL8mhQfAhsMfDS2fSO6jpluyfsfypP988KzUQrAXncspcJ7+GHA== +react-i18next@^13.0.3: + version "13.0.3" + resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-13.0.3.tgz#8eedc5c2ab57f4641540778cc7373c8ed891523c" + integrity sha512-/t4kt4Y2o+21hbvx+o9zpVnmoiud7KLDncyZFGN0U6TGAWYaXdTsp/ytAHFcKKSAODg4noIMaOO3X7bMgCqLHw== dependencies: "@babel/runtime" "^7.22.5" html-parse-stringify "^3.0.1" From 05559f848cbe2540a6da9994897c87b9948d9f83 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Jul 2023 21:41:50 +0000 Subject: [PATCH 088/435] Bump @typescript-eslint/eslint-plugin from 6.2.0 to 6.2.1 Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 6.2.0 to 6.2.1. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.2.1/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 76 +++++++++++++++------------------------------------- 2 files changed, 22 insertions(+), 56 deletions(-) diff --git a/package.json b/package.json index d1c4190f8e..4bf2f90f35 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "@types/react-helmet": "^6.1.6", "@types/react-qr-reader": "^2.1.4", "@types/react-scroll": "^1.8.6", - "@typescript-eslint/eslint-plugin": "^6.2.0", + "@typescript-eslint/eslint-plugin": "^6.2.1", "@typescript-eslint/parser": "^6.2.1", "@vitejs/plugin-react-swc": "^3.3.2", "eslint": "^8.46.0", diff --git a/yarn.lock b/yarn.lock index d6dec4045a..ddafc0470e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2180,16 +2180,16 @@ resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.3.tgz#a136f83b0758698df454e328759dbd3d44555311" integrity sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g== -"@typescript-eslint/eslint-plugin@^6.2.0": - version "6.2.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.2.0.tgz#57047c400be0632d4797ac081af8d399db3ebc3b" - integrity sha512-rClGrMuyS/3j0ETa1Ui7s6GkLhfZGKZL3ZrChLeAiACBE/tRc1wq8SNZESUuluxhLj9FkUefRs2l6bCIArWBiQ== +"@typescript-eslint/eslint-plugin@^6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.2.1.tgz#41b79923fee46a745a3a50cba1c33c622aa3c79a" + integrity sha512-iZVM/ALid9kO0+I81pnp1xmYiFyqibAHzrqX4q5YvvVEyJqY+e6rfTXSCsc2jUxGNqJqTfFSSij/NFkZBiBzLw== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.2.0" - "@typescript-eslint/type-utils" "6.2.0" - "@typescript-eslint/utils" "6.2.0" - "@typescript-eslint/visitor-keys" "6.2.0" + "@typescript-eslint/scope-manager" "6.2.1" + "@typescript-eslint/type-utils" "6.2.1" + "@typescript-eslint/utils" "6.2.1" + "@typescript-eslint/visitor-keys" "6.2.1" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" @@ -2209,14 +2209,6 @@ "@typescript-eslint/visitor-keys" "6.2.1" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.2.0": - version "6.2.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.2.0.tgz#412a710d8fa20bc045533b3b19f423810b24f87a" - integrity sha512-1ZMNVgm5nnHURU8ZSJ3snsHzpFeNK84rdZjluEVBGNu7jDymfqceB3kdIZ6A4xCfEFFhRIB6rF8q/JIqJd2R0Q== - dependencies: - "@typescript-eslint/types" "6.2.0" - "@typescript-eslint/visitor-keys" "6.2.0" - "@typescript-eslint/scope-manager@6.2.1": version "6.2.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.2.1.tgz#b6f43a867b84e5671fe531f2b762e0b68f7cf0c4" @@ -2225,39 +2217,21 @@ "@typescript-eslint/types" "6.2.1" "@typescript-eslint/visitor-keys" "6.2.1" -"@typescript-eslint/type-utils@6.2.0": - version "6.2.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.2.0.tgz#02b27a3eeb41aa5460d6275d12cce5dd72e1c9fc" - integrity sha512-DnGZuNU2JN3AYwddYIqrVkYW0uUQdv0AY+kz2M25euVNlujcN2u+rJgfJsBFlUEzBB6OQkUqSZPyuTLf2bP5mw== +"@typescript-eslint/type-utils@6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.2.1.tgz#8eb8a2cccdf39cd7cf93e02bd2c3782dc90b0525" + integrity sha512-fTfCgomBMIgu2Dh2Or3gMYgoNAnQm3RLtRp+jP7A8fY+LJ2+9PNpi5p6QB5C4RSP+U3cjI0vDlI3mspAkpPVbQ== dependencies: - "@typescript-eslint/typescript-estree" "6.2.0" - "@typescript-eslint/utils" "6.2.0" + "@typescript-eslint/typescript-estree" "6.2.1" + "@typescript-eslint/utils" "6.2.1" debug "^4.3.4" ts-api-utils "^1.0.1" -"@typescript-eslint/types@6.2.0": - version "6.2.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.2.0.tgz#b341a4e6d5f609267306b07afc6f62bcf92b1495" - integrity sha512-1nRRaDlp/XYJQLvkQJG5F3uBTno5SHPT7XVcJ5n1/k2WfNI28nJsvLakxwZRNY5spuatEKO7d5nZWsQpkqXwBA== - "@typescript-eslint/types@6.2.1": version "6.2.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.2.1.tgz#7fcdeceb503aab601274bf5e210207050d88c8ab" integrity sha512-528bGcoelrpw+sETlyM91k51Arl2ajbNT9L4JwoXE2dvRe1yd8Q64E4OL7vHYw31mlnVsf+BeeLyAZUEQtqahQ== -"@typescript-eslint/typescript-estree@6.2.0": - version "6.2.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.2.0.tgz#4969944b831b481996aa4fbd73c7164ca683b8ef" - integrity sha512-Mts6+3HQMSM+LZCglsc2yMIny37IhUgp1Qe8yJUYVyO6rHP7/vN0vajKu3JvHCBIy8TSiKddJ/Zwu80jhnGj1w== - dependencies: - "@typescript-eslint/types" "6.2.0" - "@typescript-eslint/visitor-keys" "6.2.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" - "@typescript-eslint/typescript-estree@6.2.1": version "6.2.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.2.1.tgz#2af6e90c1e91cb725a5fe1682841a3f74549389e" @@ -2271,27 +2245,19 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.2.0": - version "6.2.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.2.0.tgz#606a20e5c13883c2d2bd0538ddc4b96b8d410979" - integrity sha512-RCFrC1lXiX1qEZN8LmLrxYRhOkElEsPKTVSNout8DMzf8PeWoQG7Rxz2SadpJa3VSh5oYKGwt7j7X/VRg+Y3OQ== +"@typescript-eslint/utils@6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.2.1.tgz#2aa4279ec13053d05615bcbde2398e1e8f08c334" + integrity sha512-eBIXQeupYmxVB6S7x+B9SdBeB6qIdXKjgQBge2J+Ouv8h9Cxm5dHf/gfAZA6dkMaag+03HdbVInuXMmqFB/lKQ== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.2.0" - "@typescript-eslint/types" "6.2.0" - "@typescript-eslint/typescript-estree" "6.2.0" + "@typescript-eslint/scope-manager" "6.2.1" + "@typescript-eslint/types" "6.2.1" + "@typescript-eslint/typescript-estree" "6.2.1" semver "^7.5.4" -"@typescript-eslint/visitor-keys@6.2.0": - version "6.2.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.2.0.tgz#71943f42fdaa2ec86dc3222091f41761a49ae71a" - integrity sha512-QbaYUQVKKo9bgCzpjz45llCfwakyoxHetIy8CAvYCtd16Zu1KrpzNHofwF8kGkpPOxZB2o6kz+0nqH8ZkIzuoQ== - dependencies: - "@typescript-eslint/types" "6.2.0" - eslint-visitor-keys "^3.4.1" - "@typescript-eslint/visitor-keys@6.2.1": version "6.2.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.2.1.tgz#442e7c09fe94b715a54ebe30e967987c3c41fbf4" From 071928a57aa740b7f3dccd3e490972f5507f14f4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Aug 2023 22:00:13 +0000 Subject: [PATCH 089/435] Bump sass from 1.64.1 to 1.64.2 Bumps [sass](https://github.com/sass/dart-sass) from 1.64.1 to 1.64.2. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.64.1...1.64.2) --- updated-dependencies: - dependency-name: sass dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 4bf2f90f35..aa2f5b5fb9 100644 --- a/package.json +++ b/package.json @@ -85,7 +85,7 @@ "gh-pages": "^5.0.0", "prettier": "^3.0.0", "prettier-plugin-organize-imports": "^3.2.3", - "sass": "^1.64.1", + "sass": "^1.64.2", "typescript": "^5.1.6", "vite": "^4.4.7", "vite-bundle-visualizer": "^0.10.0", diff --git a/yarn.lock b/yarn.lock index ddafc0470e..9ce04e378a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5177,10 +5177,10 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.1.3" is-regex "^1.1.4" -sass@^1.64.1: - version "1.64.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.64.1.tgz#6a46f6d68e0fa5ad90aa59ce025673ddaa8441cf" - integrity sha512-16rRACSOFEE8VN7SCgBu1MpYCyN7urj9At898tyzdXFhC+a+yOX5dXwAR7L8/IdPJ1NB8OYoXmD55DM30B2kEQ== +sass@^1.64.2: + version "1.64.2" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.64.2.tgz#0d9805ad6acf31c59c3acc725fcfb91b7fcc6909" + integrity sha512-TnDlfc+CRnUAgLO9D8cQLFu/GIjJIzJCGkE7o4ekIGQOH7T3GetiRR/PsTWJUHhkzcSPrARkPI+gNWn5alCzDg== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" From ea76da54d7cdbd73e00e45de9927ce2eedcaf242 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Aug 2023 22:02:35 +0000 Subject: [PATCH 090/435] Bump vitest from 0.33.0 to 0.34.1 Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 0.33.0 to 0.34.1. - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Commits](https://github.com/vitest-dev/vitest/commits/v0.34.1/packages/vitest) --- updated-dependencies: - dependency-name: vitest dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 84 ++++++++++++++++++++++++++-------------------------- 2 files changed, 43 insertions(+), 43 deletions(-) diff --git a/package.json b/package.json index aa2f5b5fb9..503e51a7da 100644 --- a/package.json +++ b/package.json @@ -93,6 +93,6 @@ "vite-plugin-eslint": "^1.8.1", "vite-plugin-svgr": "^3.2.0", "vite-tsconfig-paths": "^4.2.0", - "vitest": "^0.33.0" + "vitest": "^0.34.1" } } diff --git a/yarn.lock b/yarn.lock index 9ce04e378a..6bdc7560eb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2273,44 +2273,44 @@ dependencies: "@swc/core" "^1.3.61" -"@vitest/expect@0.33.0": - version "0.33.0" - resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-0.33.0.tgz#f48652591f3573ad6c2db828ad358d5c078845d3" - integrity sha512-sVNf+Gla3mhTCxNJx+wJLDPp/WcstOe0Ksqz4Vec51MmgMth/ia0MGFEkIZmVGeTL5HtjYR4Wl/ZxBxBXZJTzQ== +"@vitest/expect@0.34.1": + version "0.34.1" + resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-0.34.1.tgz#2ba6cb96695f4b4388c6d955423a81afc79b8da0" + integrity sha512-q2CD8+XIsQ+tHwypnoCk8Mnv5e6afLFvinVGCq3/BOT4kQdVQmY6rRfyKkwcg635lbliLPqbunXZr+L1ssUWiQ== dependencies: - "@vitest/spy" "0.33.0" - "@vitest/utils" "0.33.0" + "@vitest/spy" "0.34.1" + "@vitest/utils" "0.34.1" chai "^4.3.7" -"@vitest/runner@0.33.0": - version "0.33.0" - resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-0.33.0.tgz#0b1a4d04ff8bc5cdad73920eac019d99550edf9d" - integrity sha512-UPfACnmCB6HKRHTlcgCoBh6ppl6fDn+J/xR8dTufWiKt/74Y9bHci5CKB8tESSV82zKYtkBJo9whU3mNvfaisg== +"@vitest/runner@0.34.1": + version "0.34.1" + resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-0.34.1.tgz#23c21ba1db8bff610988c72744db590d0fb6c4ba" + integrity sha512-YfQMpYzDsYB7yqgmlxZ06NI4LurHWfrH7Wy3Pvf/z/vwUSgq1zLAb1lWcItCzQG+NVox+VvzlKQrYEXb47645g== dependencies: - "@vitest/utils" "0.33.0" + "@vitest/utils" "0.34.1" p-limit "^4.0.0" pathe "^1.1.1" -"@vitest/snapshot@0.33.0": - version "0.33.0" - resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-0.33.0.tgz#4400a90c48907808122b573053a2112a832b3698" - integrity sha512-tJjrl//qAHbyHajpFvr8Wsk8DIOODEebTu7pgBrP07iOepR5jYkLFiqLq2Ltxv+r0uptUb4izv1J8XBOwKkVYA== +"@vitest/snapshot@0.34.1": + version "0.34.1" + resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-0.34.1.tgz#814c65f8e714eaf255f47838541004b2a2ba28e6" + integrity sha512-0O9LfLU0114OqdF8lENlrLsnn024Tb1CsS9UwG0YMWY2oGTQfPtkW+B/7ieyv0X9R2Oijhi3caB1xgGgEgclSQ== dependencies: magic-string "^0.30.1" pathe "^1.1.1" pretty-format "^29.5.0" -"@vitest/spy@0.33.0": - version "0.33.0" - resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-0.33.0.tgz#366074d3cf9cf1ed8aeaa76e50e78c799fb242eb" - integrity sha512-Kv+yZ4hnH1WdiAkPUQTpRxW8kGtH8VRTnus7ZTGovFYM1ZezJpvGtb9nPIjPnptHbsyIAxYZsEpVPYgtpjGnrg== +"@vitest/spy@0.34.1": + version "0.34.1" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-0.34.1.tgz#2f77234a3d554c5dea664943f2caaab92d304f3c" + integrity sha512-UT4WcI3EAPUNO8n6y9QoEqynGGEPmmRxC+cLzneFFXpmacivjHZsNbiKD88KUScv5DCHVDgdBsLD7O7s1enFcQ== dependencies: tinyspy "^2.1.1" -"@vitest/utils@0.33.0": - version "0.33.0" - resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-0.33.0.tgz#6b9820cb8f128d649da6f78ecaa9b73d6222b277" - integrity sha512-pF1w22ic965sv+EN6uoePkAOTkAPWM03Ri/jXNyMIKBb/XHLDPfhLvf/Fa9g0YECevAIz56oVYXhodLvLQ/awA== +"@vitest/utils@0.34.1": + version "0.34.1" + resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-0.34.1.tgz#e5545c6618775fb9a2dae2a80d94fc2f35222233" + integrity sha512-/ql9dsFi4iuEbiNcjNHQWXBum7aL8pyhxvfnD9gNtbjR9fUKAjxhj4AA3yfLXg6gJpMGGecvtF8Au2G9y3q47Q== dependencies: diff-sequences "^29.4.3" loupe "^2.3.6" @@ -5489,10 +5489,10 @@ tinybench@^2.5.0: resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.5.0.tgz#4711c99bbf6f3e986f67eb722fed9cddb3a68ba5" integrity sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA== -tinypool@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.6.0.tgz#c3640b851940abe2168497bb6e43b49fafb3ba7b" - integrity sha512-FdswUUo5SxRizcBc6b1GSuLpLjisa8N8qMyYoP3rl+bym+QauhtJP5bvZY1ytt8krKGmMLYIRl36HBZfeAoqhQ== +tinypool@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.7.0.tgz#88053cc99b4a594382af23190c609d93fddf8021" + integrity sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww== tinyspy@^2.1.1: version "2.1.1" @@ -5675,10 +5675,10 @@ vite-bundle-visualizer@^0.10.0: cac "^6.7.14" rollup-plugin-visualizer "^5.9.2" -vite-node@0.33.0: - version "0.33.0" - resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.33.0.tgz#c6a3a527e0b8090da7436241bc875760ae0eef28" - integrity sha512-19FpHYbwWWxDr73ruNahC+vtEdza52kA90Qb3La98yZ0xULqV8A5JLNPUff0f5zID4984tW7l3DH2przTJUZSw== +vite-node@0.34.1: + version "0.34.1" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.34.1.tgz#144900ca4bd54cc419c501d671350bcbc07eb1ee" + integrity sha512-odAZAL9xFMuAg8aWd7nSPT+hU8u2r9gU3LRm9QKjxBEF2rRdWpMuqkrkjvyVQEdNFiBctqr2Gg4uJYizm5Le6w== dependencies: cac "^6.7.14" debug "^4.3.4" @@ -5748,19 +5748,19 @@ vite-tsconfig-paths@^4.2.0: optionalDependencies: fsevents "~2.3.2" -vitest@^0.33.0: - version "0.33.0" - resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.33.0.tgz#e2be6153aec1d30e3460ac6d64265bf72da2551c" - integrity sha512-1CxaugJ50xskkQ0e969R/hW47za4YXDUfWJDxip1hwbnhUjYolpfUn2AMOulqG/Dtd9WYAtkHmM/m3yKVrEejQ== +vitest@^0.34.1: + version "0.34.1" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.34.1.tgz#3ad7f845e7a9fb0d72ab703cae832a54b8469e1e" + integrity sha512-G1PzuBEq9A75XSU88yO5G4vPT20UovbC/2osB2KEuV/FisSIIsw7m5y2xMdB7RsAGHAfg2lPmp2qKr3KWliVlQ== dependencies: "@types/chai" "^4.3.5" "@types/chai-subset" "^1.3.3" "@types/node" "*" - "@vitest/expect" "0.33.0" - "@vitest/runner" "0.33.0" - "@vitest/snapshot" "0.33.0" - "@vitest/spy" "0.33.0" - "@vitest/utils" "0.33.0" + "@vitest/expect" "0.34.1" + "@vitest/runner" "0.34.1" + "@vitest/snapshot" "0.34.1" + "@vitest/spy" "0.34.1" + "@vitest/utils" "0.34.1" acorn "^8.9.0" acorn-walk "^8.2.0" cac "^6.7.14" @@ -5773,9 +5773,9 @@ vitest@^0.33.0: std-env "^3.3.3" strip-literal "^1.0.1" tinybench "^2.5.0" - tinypool "^0.6.0" + tinypool "^0.7.0" vite "^3.0.0 || ^4.0.0" - vite-node "0.33.0" + vite-node "0.34.1" why-is-node-running "^2.2.2" void-elements@3.1.0: From 1f9a3e8675992d7277bb5c8b2bb12ffbbe6da15a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Aug 2023 22:07:46 +0000 Subject: [PATCH 091/435] Bump vite from 4.4.7 to 4.4.8 Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.4.7 to 4.4.8. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v4.4.8/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 503e51a7da..5a2ea15a86 100644 --- a/package.json +++ b/package.json @@ -87,7 +87,7 @@ "prettier-plugin-organize-imports": "^3.2.3", "sass": "^1.64.2", "typescript": "^5.1.6", - "vite": "^4.4.7", + "vite": "^4.4.8", "vite-bundle-visualizer": "^0.10.0", "vite-plugin-checker": "^0.6.1", "vite-plugin-eslint": "^1.8.1", diff --git a/yarn.lock b/yarn.lock index 6bdc7560eb..c69992ea01 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5737,10 +5737,10 @@ vite-tsconfig-paths@^4.2.0: globrex "^0.1.2" tsconfck "^2.1.0" -"vite@^3.0.0 || ^4.0.0", vite@^4.4.7: - version "4.4.7" - resolved "https://registry.yarnpkg.com/vite/-/vite-4.4.7.tgz#71b8a37abaf8d50561aca084dbb77fa342824154" - integrity sha512-6pYf9QJ1mHylfVh39HpuSfMPojPSKVxZvnclX1K1FyZ1PXDOcLBibdq5t1qxJSnL63ca8Wf4zts6mD8u8oc9Fw== +"vite@^3.0.0 || ^4.0.0", vite@^4.4.8: + version "4.4.8" + resolved "https://registry.yarnpkg.com/vite/-/vite-4.4.8.tgz#31e4a438f8748695c68bd57ffd262ba93540fdf7" + integrity sha512-LONawOUUjxQridNWGQlNizfKH89qPigK36XhMI7COMGztz8KNY0JHim7/xDd71CZwGT4HtSRgI7Hy+RlhG0Gvg== dependencies: esbuild "^0.18.10" postcss "^8.4.26" From 16a5ef1206b7e1dbe4de1ce97f578af9a201aebb Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Wed, 2 Aug 2023 14:12:28 +0700 Subject: [PATCH 092/435] re-org some wrappers --- src/library/Help/Wrappers.ts | 103 ++++------------------------------- src/library/Help/index.tsx | 22 +++++--- src/modals/index.tsx | 6 +- yarn.lock | 2 +- 4 files changed, 29 insertions(+), 104 deletions(-) diff --git a/src/library/Help/Wrappers.ts b/src/library/Help/Wrappers.ts index 44aaccb264..1a290ba84c 100644 --- a/src/library/Help/Wrappers.ts +++ b/src/library/Help/Wrappers.ts @@ -4,87 +4,6 @@ import { motion } from 'framer-motion'; import styled from 'styled-components'; -// Blurred background modal wrapper -export const Wrapper = styled(motion.div)` - background: var(--modal-background-color); - position: fixed; - width: 100%; - height: 100%; - z-index: 10; - backdrop-filter: blur(14px); - - > div { - height: 100%; - display: flex; - flex-flow: row wrap; - justify-content: center; - align-items: center; - padding: 0 2rem; - - /* click anywhere behind modal content to close */ - .close { - position: fixed; - width: 100%; - height: 100%; - z-index: 8; - cursor: default; - } - } -`; - -export const HeightWrapper = styled.div` - width: 100%; - height: 100%; - max-width: 800px; - z-index: 9; - position: relative; - overflow: scroll; - - /* Hide scrollbar for Chrome, Safari and Opera */ - &::-webkit-scrollbar { - display: none; - } - -ms-overflow-style: none; - scrollbar-width: none; -`; - -export const ContentWrapper = styled.div` - width: 100%; - height: auto; - overflow: hidden; - position: relative; - padding: 5rem 0; - - > .buttons { - width: 100%; - display: flex; - flex-flow: row wrap; - margin-bottom: 2rem; - position: relative; - - > button { - > svg { - margin-right: 0.5rem; - } - color: var(--network-color-primary); - border: 1px solid var(--network-color-primary); - border-radius: 1.5rem; - padding: 0.4rem 0.8rem; - margin-right: 1.25rem; - margin-left: 0; - } - } - - h1 { - font-family: 'Unbounded', 'sans-serif', sans-serif; - margin-bottom: 1.75rem; - } - - h3 { - margin: 2rem 0.5rem 1rem 0.5rem; - } -`; - export const ListWrapper = styled(motion.div)` display: flex; flex-flow: row wrap; @@ -118,16 +37,17 @@ export const ListWrapper = styled(motion.div)` export const DefinitionWrapper = styled(motion.div)` background: var(--background-floating-card); - width: 100%; - display: flex; border-radius: 1.5rem; - margin-bottom: 1.25rem; - padding: 1.5rem 1.5rem 0 1.5rem; + display: flex; flex-flow: row wrap; align-items: center; + flex: 1; position: relative; overflow: hidden; - flex: 1; + margin-bottom: 1.25rem; + padding: 1.5rem 1.5rem 0 1.5rem; + transition: all 0.2s; + width: 100%; button { padding: 0; @@ -147,7 +67,8 @@ export const DefinitionWrapper = styled(motion.div)` } h4 { - margin-bottom: 1.25rem; + font-family: InterSemiBold, sans-serif; + margin-bottom: 1.15rem; } p { @@ -178,16 +99,16 @@ export const ItemWrapper = styled(motion.div)` margin-bottom: 1.5rem; position: relative; + > h2 { + color: var(--text-color-primary); + text-align: left; + } > h4 { color: var(--text-color-primary); margin: 0.65rem 0; text-transform: uppercase; font-size: 0.7rem; } - > h2 { - color: var(--text-color-primary); - text-align: left; - } > p { color: var(--text-color-primary); diff --git a/src/library/Help/index.tsx b/src/library/Help/index.tsx index 3c37649dcf..f6b18cd3a6 100644 --- a/src/library/Help/index.tsx +++ b/src/library/Help/index.tsx @@ -2,7 +2,12 @@ // SPDX-License-Identifier: Apache-2.0 import { faChevronLeft, faTimes } from '@fortawesome/free-solid-svg-icons'; -import { ButtonPrimaryInvert } from '@polkadotcloud/core-ui'; +import { + ButtonPrimaryInvert, + ModalCanvas, + ModalContent, + ModalScroll, +} from '@polkadotcloud/core-ui'; import { camelize } from '@polkadotcloud/utils'; import { HelpConfig } from 'config/help'; import { DefaultLocale } from 'consts'; @@ -18,7 +23,6 @@ import { useCallback, useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { Definition } from './Items/Definition'; import { External } from './Items/External'; -import { ContentWrapper, HeightWrapper, Wrapper } from './Wrappers'; export const Help = () => { const { t, i18n } = useTranslation('help'); @@ -140,7 +144,7 @@ export const Help = () => { }); return ( - { }} variants={variants} > -
- - +
+ +
{definition && ( { ))} )} - - + +
- + ); }; diff --git a/src/modals/index.tsx b/src/modals/index.tsx index 35f166550a..48c5a35ff0 100644 --- a/src/modals/index.tsx +++ b/src/modals/index.tsx @@ -4,7 +4,7 @@ import { ModalBackground, ModalContainer, - ModalContent, + ModalCard, ModalHeight, } from '@polkadotcloud/core-ui'; import { useModal } from 'contexts/Modal'; @@ -153,7 +153,7 @@ export const Modal = () => { : 'hidden', }} > - + {modal === 'AccountPoolRoles' && } {modal === 'Bio' && } @@ -189,7 +189,7 @@ export const Modal = () => { {modal === 'UpdateReserve' && } {modal === 'WithdrawPoolMember' && } - + - {mode === 'light' ? ( + {mode === 'dark' ? ( From 281db1c3329e6512ed31e765304f4f8cb602f5df Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Thu, 3 Aug 2023 12:33:23 +0700 Subject: [PATCH 103/435] modal background to separate component --- src/Router.tsx | 4 +++ src/library/Background/index.tsx | 54 ++++++++++++++++++++++++++++ src/modals/index.tsx | 60 ++++++++++++-------------------- 3 files changed, 81 insertions(+), 37 deletions(-) create mode 100644 src/library/Background/index.tsx diff --git a/src/Router.tsx b/src/Router.tsx index 87aa400f2b..ddc0018747 100644 --- a/src/Router.tsx +++ b/src/Router.tsx @@ -30,6 +30,7 @@ import { Overlay } from 'library/Overlay'; import { SideMenu } from 'library/SideMenu'; import { Tooltip } from 'library/Tooltip'; import { Modal } from 'modals'; +import { Background } from 'library/Background'; export const RouterInner = () => { const { t } = useTranslation(); @@ -77,6 +78,9 @@ export const RouterInner = () => { return ( + {/* Overlaying background: closed by default */} + + {/* Modal: closed by default */} {/* Help: closed by default */} diff --git a/src/library/Background/index.tsx b/src/library/Background/index.tsx new file mode 100644 index 0000000000..8f92c31a18 --- /dev/null +++ b/src/library/Background/index.tsx @@ -0,0 +1,54 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { ModalBackground } from '@polkadotcloud/core-ui'; +import { useAnimation } from 'framer-motion'; +import { useEffect } from 'react'; +import { useModal } from 'contexts/Modal'; + +export const Background = () => { + const controls = useAnimation(); + const { status: modalStatus } = useModal(); + + const onFadeIn = async () => { + await controls.start('visible'); + }; + const onFadeOut = async () => { + await controls.start('hidden'); + }; + + useEffect(() => { + // modal has been opened - fade in. + if (modalStatus === 1) { + onFadeIn(); + } + // modal closure triggered - fade out. + if (modalStatus === 2) { + onFadeOut(); + } + }, [modalStatus]); + + if (modalStatus === 0) { + return <>; + } + + return ( + + ); +}; diff --git a/src/modals/index.tsx b/src/modals/index.tsx index c1e9b17e51..902038fb5a 100644 --- a/src/modals/index.tsx +++ b/src/modals/index.tsx @@ -1,12 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: Apache-2.0 -import { - ModalBackground, - ModalContainer, - ModalCard, - ModalHeight, -} from '@polkadotcloud/core-ui'; +import { ModalContainer, ModalCard, ModalHeight } from '@polkadotcloud/core-ui'; import { useAnimation } from 'framer-motion'; import { useEffect, useRef } from 'react'; import { ErrorBoundary } from 'react-error-boundary'; @@ -46,67 +41,64 @@ import { WithdrawPoolMember } from './WithdrawPoolMember'; export const Modal = () => { const { - setModalHeight, - setStatus, - status, - modal, size, + modal, + status, height, resize, config, + setStatus, modalMaxHeight, + setModalHeight, } = useModal(); const controls = useAnimation(); - const maxHeight = modalMaxHeight(); + const modalRef = useRef(null); const onFadeIn = async () => { await controls.start('visible'); }; - const onFadeOut = async () => { await controls.start('hidden'); setStatus(0); }; - useEffect(() => { - windowResize(); - return () => { - window.removeEventListener('resize', handleResize); - }; - }); - const windowResize = () => { if (!config?.disableWindowResize) { window.addEventListener('resize', handleResize); } }; + const handleResize = () => { + if (status !== 1 || config?.disableWindowResize) return; + + let h = modalRef.current?.clientHeight ?? 0; + h = h > maxHeight ? maxHeight : h; + setModalHeight(h); + }; + useEffect(() => { - // modal has been opened - fade in + // modal has been opened - fade in. if (status === 1) { onFadeIn(); } - // an external component triggered modal closure - fade out + // modal closure triggered - fade out. if (status === 2) { onFadeOut(); } }, [status]); - const modalRef = useRef(null); - // resize modal on status or resize change useEffect(() => { handleResize(); }, [resize]); - const handleResize = () => { - if (status !== 1 || config?.disableWindowResize) return; - - let h = modalRef.current?.clientHeight ?? 0; - h = h > maxHeight ? maxHeight : h; - setModalHeight(h); - }; + useEffect(() => { + windowResize(); + return () => { + window.removeEventListener('resize', handleResize); + }; + }); if (status === 0) { return <>; @@ -129,12 +121,6 @@ export const Modal = () => { return ( <> - {status !== 3 ? ( { type="button" className="close" onClick={() => { - onFadeOut(); + setStatus(2); }} >   From d73328645a0ea35fcec599fb8457c1069a056307 Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Thu, 3 Aug 2023 13:25:46 +0700 Subject: [PATCH 104/435] Help background to Background --- package.json | 2 +- src/Router.tsx | 1 + src/library/Background/index.tsx | 19 ++-- src/library/Help/index.tsx | 148 +++++++++++++++---------------- yarn.lock | 8 +- 5 files changed, 89 insertions(+), 89 deletions(-) diff --git a/package.json b/package.json index 8cca3e6346..9d8d9862f6 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "@polkadot/util": "^12.1.1", "@polkadot/util-crypto": "12.3.2", "@polkadotcloud/community": "0.1.2", - "@polkadotcloud/core-ui": "^0.3.60", + "@polkadotcloud/core-ui": "^0.3.64", "@polkadotcloud/react-odometer": "^0.1.17", "@polkadotcloud/themes": "^0.1.2", "@polkadotcloud/utils": "^0.2.22", diff --git a/src/Router.tsx b/src/Router.tsx index ddc0018747..7227273458 100644 --- a/src/Router.tsx +++ b/src/Router.tsx @@ -83,6 +83,7 @@ export const RouterInner = () => { {/* Modal: closed by default */} + {/* Help: closed by default */} diff --git a/src/library/Background/index.tsx b/src/library/Background/index.tsx index 8f92c31a18..2eb4fcce11 100644 --- a/src/library/Background/index.tsx +++ b/src/library/Background/index.tsx @@ -5,9 +5,11 @@ import { ModalBackground } from '@polkadotcloud/core-ui'; import { useAnimation } from 'framer-motion'; import { useEffect } from 'react'; import { useModal } from 'contexts/Modal'; +import { useHelp } from 'contexts/Help'; export const Background = () => { const controls = useAnimation(); + const { status: helpStatus } = useHelp(); const { status: modalStatus } = useModal(); const onFadeIn = async () => { @@ -18,17 +20,16 @@ export const Background = () => { }; useEffect(() => { - // modal has been opened - fade in. - if (modalStatus === 1) { - onFadeIn(); - } - // modal closure triggered - fade out. - if (modalStatus === 2) { - onFadeOut(); - } + if (modalStatus === 1) onFadeIn(); + if (modalStatus === 2) onFadeOut(); }, [modalStatus]); - if (modalStatus === 0) { + useEffect(() => { + if (helpStatus === 1) onFadeIn(); + if (helpStatus === 2) onFadeOut(); + }, [helpStatus]); + + if (modalStatus === 0 && helpStatus === 0) { return <>; } diff --git a/src/library/Help/index.tsx b/src/library/Help/index.tsx index a1d6e13f35..79203a9c94 100644 --- a/src/library/Help/index.tsx +++ b/src/library/Help/index.tsx @@ -26,9 +26,9 @@ import { External } from './Items/External'; export const Help = () => { const { t, i18n } = useTranslation('help'); - const { setStatus, status, definition, closeHelp, setDefinition } = useHelp(); const controls = useAnimation(); const { fillVariables } = useFillVariables(); + const { setStatus, status, definition, closeHelp, setDefinition } = useHelp(); const onFadeIn = useCallback(async () => { await controls.start('visible'); @@ -150,89 +150,87 @@ export const Help = () => { }} animate={controls} transition={{ - duration: 0.25, + duration: 0.15, }} variants={variants} > -
- - -
- {definition && ( - setDefinition(null)} - /> - )} + + +
+ {definition && ( closeHelp()} + text={t('modal.allResources')} + iconLeft={faChevronLeft} + onClick={() => setDefinition(null)} /> -
-

- {activeDefinition - ? `${activeDefinition.title}` - : `${t('modal.helpResources')}`} -

- - {activeDefinition !== null && ( - <> + )} + closeHelp()} + /> +
+

+ {activeDefinition + ? `${activeDefinition.title}` + : `${t('modal.helpResources')}`} +

+ + {activeDefinition !== null && ( + <> + {}} + title={activeDefinition?.title} + description={activeDefinition?.description} + /> + + )} + + {definitions.length > 0 && ( + <> +

+ {activeDefinition ? `${t('modal.related')} ` : ''} + {t('modal.definitions')} +

+ {activeDefinitions.map((item, index: number) => ( {}} - title={activeDefinition?.title} - description={activeDefinition?.description} + title={item.title} + description={item.description} /> - - )} - - {definitions.length > 0 && ( - <> -

- {activeDefinition ? `${t('modal.related')} ` : ''} - {t('modal.definitions')} -

- {activeDefinitions.map((item, index: number) => ( - {}} - title={item.title} - description={item.description} - /> - ))} - - )} - - {activeExternals.length > 0 && ( - <> -

{t('modal.articles')}

- {activeExternals.map((item, index: number) => ( - - ))} - - )} -
-
- -
+ ))} + + )} + + {activeExternals.length > 0 && ( + <> +

{t('modal.articles')}

+ {activeExternals.map((item, index: number) => ( + + ))} + + )} +
+
+ ); }; diff --git a/yarn.lock b/yarn.lock index c39aacc414..cbbb0b6cf0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1832,10 +1832,10 @@ resolved "https://registry.npmjs.org/@polkadotcloud/community/-/community-0.1.2.tgz#d693b89d42ba4ac70abf1c61cfb6b0667ad8130f" integrity sha512-vKJXcCTonXolrd3tN8lbta4Qp69XR6yzU/BM1FOMfiA6C2Q2oGDVYBiTL2BOi8XLXWzsu3SaagG4WulO9ZlPSg== -"@polkadotcloud/core-ui@^0.3.60": - version "0.3.60" - resolved "https://registry.npmjs.org/@polkadotcloud/core-ui/-/core-ui-0.3.60.tgz#e0cd0e7f527a819cabbe2acbd60feebd9ced519e" - integrity sha512-pJgK/gUmT+LSQgYBRT7yd7aZO3bUCTK6e8ji0RWdj/P+YtKNYkSqXKUJogHgk4a9YRjGhCeylniLAreHg4FyRQ== +"@polkadotcloud/core-ui@^0.3.64": + version "0.3.64" + resolved "https://registry.npmjs.org/@polkadotcloud/core-ui/-/core-ui-0.3.64.tgz#b7ad9b279a6902a7b4413ab8487506b23914e0f3" + integrity sha512-355N+AulIYOzzwz5vJ6ZEAPjqKgkrQbFXqexwH/RcgX0LmXpwE3xdBxKe1z0lZn/T91Y2SHuLKZXAc2M5bOLMQ== "@polkadotcloud/react-odometer@^0.1.17": version "0.1.17" From d7b0628305aa64118bbadae9b675e8263b2cbf56 Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Thu, 3 Aug 2023 13:27:52 +0700 Subject: [PATCH 105/435] tidy up --- src/library/Help/index.tsx | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/src/library/Help/index.tsx b/src/library/Help/index.tsx index 79203a9c94..1f0061b594 100644 --- a/src/library/Help/index.tsx +++ b/src/library/Help/index.tsx @@ -39,24 +39,10 @@ export const Help = () => { setStatus(0); }, []); - const variants = { - hidden: { - opacity: 0, - }, - visible: { - opacity: 1, - }, - }; - + // control canvas fade. useEffect(() => { - // help has been opened - fade in - if (status === 1) { - onFadeIn(); - } - // an external component triggered closure - fade out - if (status === 2) { - onFadeOut(); - } + if (status === 1) onFadeIn(); + if (status === 2) onFadeOut(); }, [status]); // render early if help not open @@ -152,7 +138,14 @@ export const Help = () => { transition={{ duration: 0.15, }} - variants={variants} + variants={{ + hidden: { + opacity: 0, + }, + visible: { + opacity: 1, + }, + }} > From a6070d5d675f63fff985da39f659245985fe3230 Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Thu, 3 Aug 2023 13:36:43 +0700 Subject: [PATCH 106/435] rename Overlay to Prompt --- src/Providers.tsx | 4 +- src/Router.tsx | 8 +-- src/contexts/Overlay/index.tsx | 72 ------------------- src/contexts/{Overlay => Prompt}/defaults.tsx | 12 ++-- src/contexts/Prompt/index.tsx | 67 +++++++++++++++++ src/contexts/{Overlay => Prompt}/types.ts | 10 +-- src/library/Import/Confirm.tsx | 4 +- src/library/Import/Remove.tsx | 4 +- src/library/{Overlay => Prompt}/Title.tsx | 9 +-- src/library/{Overlay => Prompt}/Wrappers.tsx | 2 +- src/library/{Overlay => Prompt}/index.tsx | 16 ++--- .../Vault/{SignOverlay.tsx => SignPrompt.tsx} | 12 ++-- .../SubmitTx/ManualSign/Vault/index.tsx | 18 ++--- src/library/SubmitTx/types.ts | 2 +- src/library/Tips/Tip.tsx | 10 +-- .../ValidatorList/FilterValidators.tsx | 4 +- src/library/ValidatorList/Filters.tsx | 8 +-- src/library/ValidatorList/OrderValidators.tsx | 4 +- src/modals/ImportLedger/Addresses.tsx | 8 +-- src/modals/ImportLedger/Manage.tsx | 6 +- src/modals/ImportLedger/Reset.tsx | 4 +- src/modals/ImportVault/Reader.tsx | 8 +-- src/modals/ImportVault/index.tsx | 16 ++--- src/pages/Overview/StakeStatus/Tips/Items.tsx | 6 +- 24 files changed, 153 insertions(+), 161 deletions(-) delete mode 100644 src/contexts/Overlay/index.tsx rename src/contexts/{Overlay => Prompt}/defaults.tsx (54%) create mode 100644 src/contexts/Prompt/index.tsx rename src/contexts/{Overlay => Prompt}/types.ts (55%) rename src/library/{Overlay => Prompt}/Title.tsx (86%) rename src/library/{Overlay => Prompt}/Wrappers.tsx (98%) rename src/library/{Overlay => Prompt}/index.tsx (51%) rename src/library/SubmitTx/ManualSign/Vault/{SignOverlay.tsx => SignPrompt.tsx} (89%) diff --git a/src/Providers.tsx b/src/Providers.tsx index 4e6542b461..ffc4c62896 100644 --- a/src/Providers.tsx +++ b/src/Providers.tsx @@ -21,7 +21,7 @@ import { MigrateProvider } from 'contexts/Migrate'; import { ModalProvider } from 'contexts/Modal'; import { NetworkMetricsProvider } from 'contexts/Network'; import { NotificationsProvider } from 'contexts/Notifications'; -import { OverlayProvider } from 'contexts/Overlay'; +import { PromptProvider } from 'contexts/Prompt'; import { PluginsProvider } from 'contexts/Plugins'; import { ActivePoolsProvider } from 'contexts/Pools/ActivePools'; import { BondedPoolsProvider } from 'contexts/Pools/BondedPools'; @@ -86,6 +86,6 @@ export const Providers = withProviders( TxMetaProvider, ExtrinsicsProvider, ModalProvider, - OverlayProvider, + PromptProvider, MigrateProvider )(ThemedRouter); diff --git a/src/Router.tsx b/src/Router.tsx index 7227273458..391baaf361 100644 --- a/src/Router.tsx +++ b/src/Router.tsx @@ -15,6 +15,7 @@ import { Routes, useLocation, } from 'react-router-dom'; +import { Prompt } from 'library/Prompt'; import { PagesConfig } from 'config/pages'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; @@ -26,7 +27,6 @@ import { Help } from 'library/Help'; import { Menu } from 'library/Menu'; import { NetworkBar } from 'library/NetworkBar'; import { Notifications } from 'library/Notifications'; -import { Overlay } from 'library/Overlay'; import { SideMenu } from 'library/SideMenu'; import { Tooltip } from 'library/Tooltip'; import { Modal } from 'modals'; @@ -78,7 +78,7 @@ export const RouterInner = () => { return ( - {/* Overlaying background: closed by default */} + {/* Prompting background: closed by default */} {/* Modal: closed by default */} @@ -93,8 +93,8 @@ export const RouterInner = () => { {/* Tooltip: invisible by default */} - {/* Overlay: closed by default */} - + {/* Prompt: closed by default */} + {/* Left side menu */} diff --git a/src/contexts/Overlay/index.tsx b/src/contexts/Overlay/index.tsx deleted file mode 100644 index e1db9a2d07..0000000000 --- a/src/contexts/Overlay/index.tsx +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import React, { useState } from 'react'; -import { defaultOverlayContext } from './defaults'; -import type { OverlayContextInterface } from './types'; - -export const OverlayProvider = ({ - children, -}: { - children: React.ReactNode; -}) => { - const [state, setState] = useState({ - size: 'large', - status: 0, - Overlay: null, - }); - - const setOverlay = (Overlay: any) => { - setState({ - ...state, - Overlay, - }); - }; - - const setStatus = (status: number) => { - setState({ - ...state, - status, - dismissOpen: status !== 0, - }); - }; - - const openOverlayWith = (Overlay: any, size = 'small') => { - setState({ - ...state, - size, - Overlay, - status: 1, - }); - }; - - const closeOverlay = () => { - setState({ - ...state, - status: 0, - Overlay: null, - }); - }; - - return ( - - {children} - - ); -}; - -export const OverlayContext = React.createContext( - defaultOverlayContext -); - -export const useOverlay = () => React.useContext(OverlayContext); diff --git a/src/contexts/Overlay/defaults.tsx b/src/contexts/Prompt/defaults.tsx similarity index 54% rename from src/contexts/Overlay/defaults.tsx rename to src/contexts/Prompt/defaults.tsx index b9d34642df..4eacbc0eab 100644 --- a/src/contexts/Overlay/defaults.tsx +++ b/src/contexts/Prompt/defaults.tsx @@ -1,17 +1,17 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: Apache-2.0 -import type { OverlayContextInterface } from './types'; +import type { PromptContextInterface } from './types'; -export const defaultOverlayContext: OverlayContextInterface = { +export const defaultPromptContext: PromptContextInterface = { // eslint-disable-next-line - openOverlayWith: (o, s) => {}, - closeOverlay: () => {}, + openPromptWith: (o, s) => {}, + closePrompt: () => {}, // eslint-disable-next-line setStatus: (s) => {}, // eslint-disable-next-line - setOverlay: (d) => {}, + setPrompt: (d) => {}, size: 'small', status: 0, - Overlay: null, + Prompt: null, }; diff --git a/src/contexts/Prompt/index.tsx b/src/contexts/Prompt/index.tsx new file mode 100644 index 0000000000..745bbd9d44 --- /dev/null +++ b/src/contexts/Prompt/index.tsx @@ -0,0 +1,67 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import React, { useState } from 'react'; +import { defaultPromptContext } from './defaults'; +import type { PromptContextInterface } from './types'; + +export const PromptProvider = ({ children }: { children: React.ReactNode }) => { + const [state, setState] = useState({ + size: 'large', + status: 0, + Prompt: null, + }); + + const setPrompt = (Prompt: any) => { + setState({ + ...state, + Prompt, + }); + }; + + const setStatus = (status: number) => { + setState({ + ...state, + status, + dismissOpen: status !== 0, + }); + }; + + const openPromptWith = (Prompt: any, size = 'small') => { + setState({ + ...state, + size, + Prompt, + status: 1, + }); + }; + + const closePrompt = () => { + setState({ + ...state, + status: 0, + Prompt: null, + }); + }; + + return ( + + {children} + + ); +}; + +export const PromptContext = + React.createContext(defaultPromptContext); + +export const usePrompt = () => React.useContext(PromptContext); diff --git a/src/contexts/Overlay/types.ts b/src/contexts/Prompt/types.ts similarity index 55% rename from src/contexts/Overlay/types.ts rename to src/contexts/Prompt/types.ts index f36b8b4efc..6dea2da7e9 100644 --- a/src/contexts/Overlay/types.ts +++ b/src/contexts/Prompt/types.ts @@ -4,12 +4,12 @@ import type React from 'react'; import type { MaybeString } from 'types'; -export interface OverlayContextInterface { - openOverlayWith: (o: React.ReactNode | null, s?: string) => void; - closeOverlay: () => void; +export interface PromptContextInterface { + openPromptWith: (o: React.ReactNode | null, s?: string) => void; + closePrompt: () => void; setStatus: (s: number) => void; - setOverlay: (d: MaybeString) => void; + setPrompt: (d: MaybeString) => void; size: string; status: number; - Overlay: React.ReactNode | null; + Prompt: React.ReactNode | null; } diff --git a/src/library/Import/Confirm.tsx b/src/library/Import/Confirm.tsx index 46ac6c6285..d7a53ef2f5 100644 --- a/src/library/Import/Confirm.tsx +++ b/src/library/Import/Confirm.tsx @@ -4,7 +4,7 @@ import { ButtonMono, ButtonMonoInvert } from '@polkadotcloud/core-ui'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; -import { useOverlay } from 'contexts/Overlay'; +import { usePrompt } from 'contexts/Prompt'; import { Identicon } from 'library/Identicon'; import { ConfirmWrapper } from 'library/Import/Wrappers'; import type { ConfirmProps } from './types'; @@ -12,7 +12,7 @@ import type { ConfirmProps } from './types'; export const Confirm = ({ address, index, addHandler }: ConfirmProps) => { const { t } = useTranslation('modals'); const { addToAccounts } = useConnect(); - const { setStatus } = useOverlay(); + const { setStatus } = usePrompt(); return ( diff --git a/src/library/Import/Remove.tsx b/src/library/Import/Remove.tsx index 72638e4410..1374292836 100644 --- a/src/library/Import/Remove.tsx +++ b/src/library/Import/Remove.tsx @@ -4,7 +4,7 @@ import { ButtonMono, ButtonMonoInvert } from '@polkadotcloud/core-ui'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; -import { useOverlay } from 'contexts/Overlay'; +import { usePrompt } from 'contexts/Prompt'; import { Identicon } from 'library/Identicon'; import { ConfirmWrapper } from 'library/Import/Wrappers'; import type { RemoveProps } from './types'; @@ -12,7 +12,7 @@ import type { RemoveProps } from './types'; export const Remove = ({ address, getHandler, removeHandler }: RemoveProps) => { const { t } = useTranslation('modals'); const { forgetAccounts } = useConnect(); - const { setStatus } = useOverlay(); + const { setStatus } = usePrompt(); return ( diff --git a/src/library/Overlay/Title.tsx b/src/library/Prompt/Title.tsx similarity index 86% rename from src/library/Overlay/Title.tsx rename to src/library/Prompt/Title.tsx index 746186565a..807af649f8 100644 --- a/src/library/Overlay/Title.tsx +++ b/src/library/Prompt/Title.tsx @@ -7,7 +7,7 @@ import { ButtonHelp, ButtonPrimaryInvert } from '@polkadotcloud/core-ui'; import type { FunctionComponent } from 'react'; import { useTranslation } from 'react-i18next'; import { useHelp } from 'contexts/Help'; -import { useOverlay } from 'contexts/Overlay'; +import { usePrompt } from 'contexts/Prompt'; import { TitleWrapper } from './Wrappers'; interface TitleProps { @@ -20,7 +20,7 @@ interface TitleProps { export const Title = ({ helpKey, title, icon, Svg, hideDone }: TitleProps) => { const { t } = useTranslation('library'); - const { closeOverlay } = useOverlay(); + const { closePrompt } = usePrompt(); const { openHelp } = useHelp(); const graphic = Svg ? ( @@ -40,10 +40,7 @@ export const Title = ({ helpKey, title, icon, Svg, hideDone }: TitleProps) => {
{hideDone !== true ? (
- closeOverlay()} - /> + closePrompt()} />
) : null} diff --git a/src/library/Overlay/Wrappers.tsx b/src/library/Prompt/Wrappers.tsx similarity index 98% rename from src/library/Overlay/Wrappers.tsx rename to src/library/Prompt/Wrappers.tsx index 62a58f83a2..edc547a221 100644 --- a/src/library/Overlay/Wrappers.tsx +++ b/src/library/Prompt/Wrappers.tsx @@ -3,7 +3,7 @@ import styled from 'styled-components'; -export const OverlayWrapper = styled.div` +export const PromptWrapper = styled.div` background: var(--overlay-background-color); position: fixed; width: 100%; diff --git a/src/library/Overlay/index.tsx b/src/library/Prompt/index.tsx similarity index 51% rename from src/library/Overlay/index.tsx rename to src/library/Prompt/index.tsx index 2417fea138..a663ec143a 100644 --- a/src/library/Overlay/index.tsx +++ b/src/library/Prompt/index.tsx @@ -1,26 +1,26 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: Apache-2.0 -import { useOverlay } from 'contexts/Overlay'; -import { ContentWrapper, HeightWrapper, OverlayWrapper } from './Wrappers'; +import { usePrompt } from 'contexts/Prompt'; +import { ContentWrapper, HeightWrapper, PromptWrapper } from './Wrappers'; -export const Overlay = () => { - const { closeOverlay, size, status, Overlay: OverlayInner } = useOverlay(); +export const Prompt = () => { + const { closePrompt, size, status, Prompt: PromptInner } = usePrompt(); if (status === 0) { return <>; } return ( - +
- {OverlayInner} + {PromptInner} -
-
+ ); }; diff --git a/src/library/SubmitTx/ManualSign/Vault/SignOverlay.tsx b/src/library/SubmitTx/ManualSign/Vault/SignPrompt.tsx similarity index 89% rename from src/library/SubmitTx/ManualSign/Vault/SignOverlay.tsx rename to src/library/SubmitTx/ManualSign/Vault/SignPrompt.tsx index 6fce922c20..af7998b0a9 100644 --- a/src/library/SubmitTx/ManualSign/Vault/SignOverlay.tsx +++ b/src/library/SubmitTx/ManualSign/Vault/SignPrompt.tsx @@ -9,20 +9,20 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { ButtonPrimary, ButtonSecondary } from '@polkadotcloud/core-ui'; import { useState } from 'react'; import { useTranslation } from 'react-i18next'; -import { useOverlay } from 'contexts/Overlay'; +import { usePrompt } from 'contexts/Prompt'; import { useTxMeta } from 'contexts/TxMeta'; import { QRViewerWrapper } from 'library/Import/Wrappers'; import { QrDisplayPayload } from 'library/QRCode/DisplayPayload'; import { QrScanSignature } from 'library/QRCode/ScanSignature'; -import type { SignerOverlayProps } from 'library/SubmitTx/types'; +import type { SignerPromptProps } from 'library/SubmitTx/types'; import type { AnyJson } from 'types'; -export const SignOverlay = ({ submitAddress }: SignerOverlayProps) => { +export const SignPrompt = ({ submitAddress }: SignerPromptProps) => { const { t } = useTranslation('library'); const { getTxPayload, setTxSignature } = useTxMeta(); const payload = getTxPayload(); const payloadU8a = payload?.toU8a(); - const { setStatus: setOverlayStatus } = useOverlay(); + const { setStatus: setPromptStatus } = usePrompt(); // Whether user is on sign or submit stage. const [stage, setStage] = useState(1); @@ -57,7 +57,7 @@ export const SignOverlay = ({ submitAddress }: SignerOverlayProps) => { { - setOverlayStatus(0); + setPromptStatus(0); setTxSignature(signature); }} /> @@ -89,7 +89,7 @@ export const SignOverlay = ({ submitAddress }: SignerOverlayProps) => { text={t('cancel')} lg marginLeft - onClick={() => setOverlayStatus(0)} + onClick={() => setPromptStatus(0)} />
diff --git a/src/library/SubmitTx/ManualSign/Vault/index.tsx b/src/library/SubmitTx/ManualSign/Vault/index.tsx index 2c586035c9..e1a18fd111 100644 --- a/src/library/SubmitTx/ManualSign/Vault/index.tsx +++ b/src/library/SubmitTx/ManualSign/Vault/index.tsx @@ -6,11 +6,11 @@ import { ButtonSubmit } from '@polkadotcloud/core-ui'; import React from 'react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; -import { useOverlay } from 'contexts/Overlay'; +import { usePrompt } from 'contexts/Prompt'; import { useTxMeta } from 'contexts/TxMeta'; import { EstimatedTxFee } from 'library/EstimatedTxFee'; import type { SubmitProps } from '../../types'; -import { SignOverlay } from './SignOverlay'; +import { SignPrompt } from './SignPrompt'; export const Vault = ({ onSubmit, @@ -23,7 +23,7 @@ export const Vault = ({ const { t } = useTranslation('library'); const { accountHasSigner } = useConnect(); const { txFeesValid, getTxSignature } = useTxMeta(); - const { openOverlayWith, status: overlayStatus } = useOverlay(); + const { openPromptWith, status: promptStatus } = usePrompt(); // The state under which submission is disabled. const disabled = @@ -44,21 +44,21 @@ export const Vault = ({ iconTransform="grow-2" onClick={() => onSubmit()} disabled={disabled} - pulse={!(!valid || overlayStatus !== 0)} + pulse={!(!valid || promptStatus !== 0)} /> ) : ( { - openOverlayWith( - , + openPromptWith( + , 'small' ); }} - disabled={disabled || overlayStatus !== 0} - pulse={!disabled || overlayStatus === 0} + disabled={disabled || promptStatus !== 0} + pulse={!disabled || promptStatus === 0} /> )}
diff --git a/src/library/SubmitTx/types.ts b/src/library/SubmitTx/types.ts index 29420e2c03..d671a98a84 100644 --- a/src/library/SubmitTx/types.ts +++ b/src/library/SubmitTx/types.ts @@ -21,6 +21,6 @@ export interface SubmitProps { submitAddress: MaybeAccount; } -export interface SignerOverlayProps { +export interface SignerPromptProps { submitAddress: MaybeAccount; } diff --git a/src/library/Tips/Tip.tsx b/src/library/Tips/Tip.tsx index bd9c883051..221ac1cfb0 100644 --- a/src/library/Tips/Tip.tsx +++ b/src/library/Tips/Tip.tsx @@ -10,15 +10,15 @@ import { import { useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useNavigate } from 'react-router-dom'; -import { useOverlay } from 'contexts/Overlay'; +import { Title } from 'library/Prompt/Title'; +import { usePrompt } from 'contexts/Prompt'; import { usePlugins } from 'contexts/Plugins'; -import { Title } from 'library/Overlay/Title'; export const Tip = ({ title, description, page }: any) => { const { t } = useTranslation(); const navigate = useNavigate(); const { togglePlugin } = usePlugins(); - const { closeOverlay } = useOverlay(); + const { closePrompt } = usePrompt(); const [disabling, setDisabling] = useState(false); @@ -37,7 +37,7 @@ export const Tip = ({ title, description, page }: any) => { text={t('module.disableTips', { ns: 'tips' })} onClick={() => { togglePlugin('tips'); - closeOverlay(); + closePrompt(); }} /> { ns: 'base', })}`} onClick={() => { - closeOverlay(); + closePrompt(); navigate(`/${page}`); }} iconRight={faAngleRight} diff --git a/src/library/ValidatorList/FilterValidators.tsx b/src/library/ValidatorList/FilterValidators.tsx index 6b676191e5..1ae0366bdb 100644 --- a/src/library/ValidatorList/FilterValidators.tsx +++ b/src/library/ValidatorList/FilterValidators.tsx @@ -4,9 +4,9 @@ import { faCheckCircle, faCircle } from '@fortawesome/free-regular-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { useTranslation } from 'react-i18next'; +import { Title } from 'library/Prompt/Title'; +import { FilterListButton, FilterListWrapper } from 'library/Prompt/Wrappers'; import { useFilters } from 'contexts/Filters'; -import { Title } from 'library/Overlay/Title'; -import { FilterListButton, FilterListWrapper } from 'library/Overlay/Wrappers'; import { useValidatorFilters } from '../Hooks/useValidatorFilters'; export const FilterValidators = () => { diff --git a/src/library/ValidatorList/Filters.tsx b/src/library/ValidatorList/Filters.tsx index b990200bc6..c6a74a0502 100644 --- a/src/library/ValidatorList/Filters.tsx +++ b/src/library/ValidatorList/Filters.tsx @@ -11,7 +11,7 @@ import { ButtonPrimaryInvert, ButtonSecondary } from '@polkadotcloud/core-ui'; import { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { useFilters } from 'contexts/Filters'; -import { useOverlay } from 'contexts/Overlay'; +import { usePrompt } from 'contexts/Prompt'; import { Container } from 'library/Filter/Container'; import { Item } from 'library/Filter/Item'; import { useValidatorFilters } from '../Hooks/useValidatorFilters'; @@ -20,7 +20,7 @@ import { OrderValidators } from './OrderValidators'; export const Filters = () => { const { t } = useTranslation('library'); - const { openOverlayWith } = useOverlay(); + const { openPromptWith } = usePrompt(); const { resetFilters, getFilters, getOrder, toggleFilter } = useFilters(); const { includesToLabels, excludesToLabels, ordersToLabels } = useValidatorFilters(); @@ -43,7 +43,7 @@ export const Filters = () => { marginRight iconLeft={faArrowDownWideShort} onClick={() => { - openOverlayWith(); + openPromptWith(); }} /> { marginRight iconLeft={faFilterCircleXmark} onClick={() => { - openOverlayWith(); + openPromptWith(); }} /> { diff --git a/src/modals/ImportLedger/Addresses.tsx b/src/modals/ImportLedger/Addresses.tsx index 9f40ee639b..61ff47c359 100644 --- a/src/modals/ImportLedger/Addresses.tsx +++ b/src/modals/ImportLedger/Addresses.tsx @@ -9,7 +9,7 @@ import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; import { useLedgerHardware } from 'contexts/Hardware/Ledger'; import { getLocalLedgerAddresses } from 'contexts/Hardware/Utils'; -import { useOverlay } from 'contexts/Overlay'; +import { usePrompt } from 'contexts/Prompt'; import { Identicon } from 'library/Identicon'; import { Confirm } from 'library/Import/Confirm'; import { Remove } from 'library/Import/Remove'; @@ -29,7 +29,7 @@ export const Addresess = ({ addresses, handleLedgerLoop }: AnyJson) => { getLedgerAccount, pairDevice, } = useLedgerHardware(); - const { openOverlayWith } = useOverlay(); + const { openPromptWith } = usePrompt(); const { renameImportedAccount } = useConnect(); const isExecuting = getIsExecuting(); @@ -39,14 +39,14 @@ export const Addresess = ({ addresses, handleLedgerLoop }: AnyJson) => { }; const openConfirmHandler = (address: string, index: number) => { - openOverlayWith( + openPromptWith( , 'small' ); }; const openRemoveHandler = (address: string) => { - openOverlayWith( + openPromptWith( { - openOverlayWith( + openPromptWith( , 'small' ); diff --git a/src/modals/ImportLedger/Reset.tsx b/src/modals/ImportLedger/Reset.tsx index acfa0b4762..d73649296b 100644 --- a/src/modals/ImportLedger/Reset.tsx +++ b/src/modals/ImportLedger/Reset.tsx @@ -9,14 +9,14 @@ import { useLedgerHardware } from 'contexts/Hardware/Ledger'; import { getLocalLedgerAddresses } from 'contexts/Hardware/Utils'; import type { LedgerAddress } from 'contexts/Hardware/types'; import { useModal } from 'contexts/Modal'; -import { useOverlay } from 'contexts/Overlay'; +import { usePrompt } from 'contexts/Prompt'; import { ConfirmWrapper } from 'library/Import/Wrappers'; import type { AnyJson } from 'types'; export const Reset = ({ removeLedgerAddress }: AnyJson) => { const { t } = useTranslation('modals'); const { forgetAccounts } = useConnect(); - const { setStatus } = useOverlay(); + const { setStatus } = usePrompt(); const { replaceModalWith } = useModal(); const { ledgerAccounts, removeLedgerAccount } = useLedgerHardware(); diff --git a/src/modals/ImportVault/Reader.tsx b/src/modals/ImportVault/Reader.tsx index d891d4233a..aa7a62613c 100644 --- a/src/modals/ImportVault/Reader.tsx +++ b/src/modals/ImportVault/Reader.tsx @@ -7,14 +7,14 @@ import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; import { useVaultHardware } from 'contexts/Hardware/Vault'; -import { useOverlay } from 'contexts/Overlay'; +import { usePrompt } from 'contexts/Prompt'; import { QRViewerWrapper } from 'library/Import/Wrappers'; import { QrScanSignature } from 'library/QRCode/ScanSignature'; export const Reader = () => { const { t } = useTranslation('modals'); const { addToAccounts, formatAccountSs58 } = useConnect(); - const { setStatus: setOverlayStatus } = useOverlay(); + const { setStatus: setPromptStatus } = usePrompt(); const { addVaultAccount, vaultAccountExists, vaultAccounts } = useVaultHardware(); @@ -45,7 +45,7 @@ export const Reader = () => { if (account) { addToAccounts([account]); } - setOverlayStatus(0); + setPromptStatus(0); } // Display feedback. @@ -79,7 +79,7 @@ export const Reader = () => { setOverlayStatus(0)} + onClick={() => setPromptStatus(0)} />
diff --git a/src/modals/ImportVault/index.tsx b/src/modals/ImportVault/index.tsx index 2bfb0f22f2..d20975e79a 100644 --- a/src/modals/ImportVault/index.tsx +++ b/src/modals/ImportVault/index.tsx @@ -13,7 +13,7 @@ import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; import { useVaultHardware } from 'contexts/Hardware/Vault'; import { useModal } from 'contexts/Modal'; -import { useOverlay } from 'contexts/Overlay'; +import { usePrompt } from 'contexts/Prompt'; import { ReactComponent as Icon } from 'img/polkadotVault.svg'; import { Identicon } from 'library/Identicon'; import { Confirm } from 'library/Import/Confirm'; @@ -28,7 +28,7 @@ export const ImportVault = () => { const { t } = useTranslation(); const { replaceModalWith } = useModal(); const { renameImportedAccount } = useConnect(); - const { openOverlayWith, status: overlayStatus } = useOverlay(); + const { openPromptWith, status: promptStatus } = usePrompt(); const { vaultAccounts, @@ -46,14 +46,14 @@ export const ImportVault = () => { }; const openConfirmHandler = (address: string, index: number) => { - openOverlayWith( + openPromptWith( , 'small' ); }; const openRemoveHandler = (address: string) => { - openOverlayWith( + openPromptWith( { lg iconLeft={faQrcode} text={t('importAccount', { ns: 'modals' })} - disabled={overlayStatus !== 0} + disabled={promptStatus !== 0} onClick={() => { - openOverlayWith(, 'small'); + openPromptWith(, 'small'); }} />
@@ -113,9 +113,9 @@ export const ImportVault = () => { { - openOverlayWith(, 'small'); + openPromptWith(, 'small'); }} />
diff --git a/src/pages/Overview/StakeStatus/Tips/Items.tsx b/src/pages/Overview/StakeStatus/Tips/Items.tsx index 865cae02a8..3b49cbc78e 100644 --- a/src/pages/Overview/StakeStatus/Tips/Items.tsx +++ b/src/pages/Overview/StakeStatus/Tips/Items.tsx @@ -5,7 +5,7 @@ import { faExternalLinkAlt } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { useAnimationControls } from 'framer-motion'; import React, { useEffect, useState } from 'react'; -import { useOverlay } from 'contexts/Overlay'; +import { usePrompt } from 'contexts/Prompt'; import { Tip } from 'library/Tips/Tip'; import { ItemInnerWrapper, ItemWrapper, ItemsWrapper } from './Wrappers'; @@ -62,7 +62,7 @@ const Item = ({ initial, page, }: any) => { - const { openOverlayWith } = useOverlay(); + const { openPromptWith } = usePrompt(); const [isStopped, setIsStopped] = useState(true); useEffect(() => { @@ -102,7 +102,7 @@ const Item = ({
-

+

Date: Thu, 3 Aug 2023 22:06:25 +0000 Subject: [PATCH 108/435] Bump styled-components from 6.0.6 to 6.0.7 Bumps [styled-components](https://github.com/styled-components/styled-components) from 6.0.6 to 6.0.7. - [Release notes](https://github.com/styled-components/styled-components/releases) - [Commits](https://github.com/styled-components/styled-components/compare/v6.0.6...v6.0.7) --- updated-dependencies: - dependency-name: styled-components dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 48a67e3803..1b589b43d1 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,7 @@ "react-qr-reader": "^2.2.1", "react-router-dom": "^6.14.2", "react-scroll": "^1.8.9", - "styled-components": "^6.0.6" + "styled-components": "^6.0.7" }, "devDependencies": { "@ledgerhq/logs": "^6.10.1", diff --git a/yarn.lock b/yarn.lock index 3d5c01beb1..23e4539160 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5503,10 +5503,10 @@ strip-outer@^1.0.1: dependencies: escape-string-regexp "^1.0.2" -styled-components@^6.0.6: - version "6.0.6" - resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-6.0.6.tgz#cfead4b7d8cab393e0c73f6e3d5d34c8961d1387" - integrity sha512-gkToLizJyiaRLGlPzfzvBY4DoC/fAKnRulstNXv/zXyvqKVaIQNHFbufjM1sspwqd77azcpnWuoZBL4O+oqxVw== +styled-components@^6.0.7: + version "6.0.7" + resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-6.0.7.tgz#1cf4a5e6b6181b29f941934df54af19b7ef05ab0" + integrity sha512-xIwWuiRMYR43mskVsW9MGTRjSo7ol4bcVjT595fGUp3OLBJOlOgaiKaxsHdC4a2HqWKqKnh0CmcRbk5ogyDjTg== dependencies: "@babel/cli" "^7.21.0" "@babel/core" "^7.21.0" From 8c5cbd4f8f27a13710b5b6f4d0f8be18cb380620 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 3 Aug 2023 22:07:05 +0000 Subject: [PATCH 109/435] Bump prettier from 3.0.0 to 3.0.1 Bumps [prettier](https://github.com/prettier/prettier) from 3.0.0 to 3.0.1. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/3.0.0...3.0.1) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 1b589b43d1..576a891b73 100644 --- a/package.json +++ b/package.json @@ -83,7 +83,7 @@ "eslint-plugin-react": "^7.33.1", "eslint-plugin-unused-imports": "^3.0.0", "gh-pages": "^5.0.0", - "prettier": "^3.0.0", + "prettier": "^3.0.1", "prettier-plugin-organize-imports": "^3.2.3", "sass": "^1.64.2", "typescript": "^5.1.6", diff --git a/yarn.lock b/yarn.lock index 23e4539160..08deb9a0f5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4912,10 +4912,10 @@ prettier-plugin-organize-imports@^3.2.3: resolved "https://registry.yarnpkg.com/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-3.2.3.tgz#6b0141ac71f7ee9a673ce83e95456319e3a7cf0d" integrity sha512-KFvk8C/zGyvUaE3RvxN2MhCLwzV6OBbFSkwZ2OamCrs9ZY4i5L77jQ/w4UmUr+lqX8qbaqVq6bZZkApn+IgJSg== -prettier@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/prettier/-/prettier-3.0.0.tgz#e7b19f691245a21d618c68bc54dc06122f6105ae" - integrity sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g== +prettier@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.1.tgz#65271fc9320ce4913c57747a70ce635b30beaa40" + integrity sha512-fcOWSnnpCrovBsmFZIGIy9UqK2FaI7Hqax+DIO0A9UxeVoY4iweyaFjS5TavZN97Hfehph0nhsZnjlVKzEQSrQ== pretty-format@^29.5.0: version "29.6.1" From daa9988454467ee5d3982889a8f64e6702386165 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 3 Aug 2023 22:07:46 +0000 Subject: [PATCH 110/435] Bump chart.js from 4.3.2 to 4.3.3 Bumps [chart.js](https://github.com/chartjs/Chart.js) from 4.3.2 to 4.3.3. - [Release notes](https://github.com/chartjs/Chart.js/releases) - [Commits](https://github.com/chartjs/Chart.js/compare/v4.3.2...v4.3.3) --- updated-dependencies: - dependency-name: chart.js dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 576a891b73..16cd09436d 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "bignumber.js": "^9.1.1", "bn.js": "^5.2.1", "buffer": "^6.0.3", - "chart.js": "^4.3.2", + "chart.js": "^4.3.3", "date-fns": "^2.29.3", "framer-motion": "^10.15.0", "i18next": "^23.4.1", diff --git a/yarn.lock b/yarn.lock index 08deb9a0f5..943d4d8ff1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2766,10 +2766,10 @@ chalk@^4.0.0, chalk@^4.1.1: ansi-styles "^4.1.0" supports-color "^7.1.0" -chart.js@^4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-4.3.2.tgz#904ebe0376eb368a659a92d2050df47336847e4c" - integrity sha512-pvQNyFOY1QmbmIr8oDORL16/FFivfxj8V26VFpFilMo4cNvkV5WXLJetDio365pd9gKUHGdirUTbqJfw8tr+Dg== +chart.js@^4.3.3: + version "4.3.3" + resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-4.3.3.tgz#dcd98afadf9fcfa5219e72ace5912092ea48fd36" + integrity sha512-aTk7pBw+x6sQYhon/NR3ikfUJuym/LdgpTlgZRe2PaEhjUMKBKyNaFCMVRAyTEWYFNO7qRu7iQVqOw/OqzxZxQ== dependencies: "@kurkle/color" "^0.3.0" From f3d42293a9bbd038e2f2a179beb3f4544618647e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 3 Aug 2023 22:08:34 +0000 Subject: [PATCH 111/435] Bump eslint-config-prettier from 8.9.0 to 8.10.0 Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 8.9.0 to 8.10.0. - [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/eslint-config-prettier/compare/v8.9.0...v8.10.0) --- updated-dependencies: - dependency-name: eslint-config-prettier dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 16cd09436d..edc6b5a1e1 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "eslint": "^8.46.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb-typescript": "^17.1.0", - "eslint-config-prettier": "^8.9.0", + "eslint-config-prettier": "^8.10.0", "eslint-import-resolver-typescript": "^3.5.5", "eslint-plugin-import": "^2.28.0", "eslint-plugin-jsx-a11y": "^6.7.1", diff --git a/yarn.lock b/yarn.lock index 943d4d8ff1..e8a0c06871 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3272,10 +3272,10 @@ eslint-config-airbnb@^19.0.4: object.assign "^4.1.2" object.entries "^1.1.5" -eslint-config-prettier@^8.9.0: - version "8.9.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.9.0.tgz#094b6254b2804b0544f7cee535f802b6d29ee10b" - integrity sha512-+sbni7NfVXnOpnRadUA8S28AUlsZt9GjgFvABIRL9Hkn8KqNzOp+7Lw4QWtrwn20KzU3wqu1QoOj2m+7rKRqkA== +eslint-config-prettier@^8.10.0: + version "8.10.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz#3a06a662130807e2502fc3ff8b4143d8a0658e11" + integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg== eslint-import-resolver-node@^0.3.7: version "0.3.7" From c9d681375d6bfb052c97f2f8c2a80a16aa30c7b4 Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Fri, 4 Aug 2023 14:20:04 +0700 Subject: [PATCH 112/435] dim modal on help open --- package.json | 2 +- src/library/Overlay/index.tsx | 5 +++-- src/modals/index.tsx | 7 ++++++- yarn.lock | 8 ++++---- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 48a67e3803..08545a2da5 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "@polkadot/util": "^12.1.1", "@polkadot/util-crypto": "12.3.2", "@polkadotcloud/community": "0.1.2", - "@polkadotcloud/core-ui": "^0.3.66", + "@polkadotcloud/core-ui": "^0.3.69", "@polkadotcloud/react-odometer": "^0.1.17", "@polkadotcloud/themes": "^0.1.2", "@polkadotcloud/utils": "^0.2.22", diff --git a/src/library/Overlay/index.tsx b/src/library/Overlay/index.tsx index 80a93335d3..73d0eec72d 100644 --- a/src/library/Overlay/index.tsx +++ b/src/library/Overlay/index.tsx @@ -24,9 +24,10 @@ export const Overlay = () => { if (modalStatus === 2) onFadeOut(); }, [modalStatus]); + // Do not fade in/out if help is open. (help can be opened in a modal). useEffect(() => { - if (helpStatus === 1) onFadeIn(); - if (helpStatus === 2) onFadeOut(); + if (helpStatus === 1 && modalStatus !== 1) onFadeIn(); + if (helpStatus === 2 && modalStatus !== 1) onFadeOut(); }, [helpStatus]); if (modalStatus === 0 && helpStatus === 0) { diff --git a/src/modals/index.tsx b/src/modals/index.tsx index 902038fb5a..65210ea09f 100644 --- a/src/modals/index.tsx +++ b/src/modals/index.tsx @@ -7,6 +7,7 @@ import { useEffect, useRef } from 'react'; import { ErrorBoundary } from 'react-error-boundary'; import { ErrorFallbackModal } from 'library/ErrorBoundary'; import { useModal } from 'contexts/Modal'; +import { useHelp } from 'contexts/Help'; import { AccountPoolRoles } from './AccountPoolRoles'; import { Accounts } from './Accounts'; import { Bio } from './Bio'; @@ -53,6 +54,7 @@ export const Modal = () => { } = useModal(); const controls = useAnimation(); const maxHeight = modalMaxHeight(); + const { status: helpStatus } = useHelp(); const modalRef = useRef(null); const onFadeIn = async () => { @@ -139,7 +141,10 @@ export const Modal = () => { : 'hidden', }} > - + {modal === 'AccountPoolRoles' && } {modal === 'Bio' && } diff --git a/yarn.lock b/yarn.lock index 3d5c01beb1..ce41ce77ba 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1832,10 +1832,10 @@ resolved "https://registry.npmjs.org/@polkadotcloud/community/-/community-0.1.2.tgz#d693b89d42ba4ac70abf1c61cfb6b0667ad8130f" integrity sha512-vKJXcCTonXolrd3tN8lbta4Qp69XR6yzU/BM1FOMfiA6C2Q2oGDVYBiTL2BOi8XLXWzsu3SaagG4WulO9ZlPSg== -"@polkadotcloud/core-ui@^0.3.66": - version "0.3.66" - resolved "https://registry.npmjs.org/@polkadotcloud/core-ui/-/core-ui-0.3.66.tgz#92e76fec47c19d5c9342ba241cf47402db6d036b" - integrity sha512-3loXbVgZEfvxLI4eGBbZhVfsUbCie3mFQy7ZjBwAja+t6TgIaeXCFMKjbunvXaHfxyq9kuNJpcOfsT9DcGdA+w== +"@polkadotcloud/core-ui@^0.3.69": + version "0.3.69" + resolved "https://registry.npmjs.org/@polkadotcloud/core-ui/-/core-ui-0.3.69.tgz#27f2c1b3946a04253decc2601273fb746aaa6ef4" + integrity sha512-1GeK3Vzkvpbulqj61DctJNCCJUw4b4OjXncLyRvEcsnbZ286HkdJBcGMgx/X4ts6FycZXVOMqfKH17Tkn2FD9g== "@polkadotcloud/react-odometer@^0.1.17": version "0.1.17" From d5fc5d955950a10238182cccc96082e0405b5ac8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 4 Aug 2023 21:26:44 +0000 Subject: [PATCH 113/435] Bump @polkadotcloud/core-ui from 0.3.69 to 0.3.73 Bumps [@polkadotcloud/core-ui](https://github.com/paritytech/polkadot-dashboard-ui) from 0.3.69 to 0.3.73. - [Release notes](https://github.com/paritytech/polkadot-dashboard-ui/releases) - [Commits](https://github.com/paritytech/polkadot-dashboard-ui/commits) --- updated-dependencies: - dependency-name: "@polkadotcloud/core-ui" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index d70d6ba472..2ae2176e82 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "@polkadot/util": "^12.1.1", "@polkadot/util-crypto": "12.3.2", "@polkadotcloud/community": "0.1.2", - "@polkadotcloud/core-ui": "^0.3.69", + "@polkadotcloud/core-ui": "^0.3.73", "@polkadotcloud/react-odometer": "^0.1.17", "@polkadotcloud/themes": "^0.1.2", "@polkadotcloud/utils": "^0.2.22", diff --git a/yarn.lock b/yarn.lock index 20fe1ea988..8de83eb43d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1832,10 +1832,10 @@ resolved "https://registry.npmjs.org/@polkadotcloud/community/-/community-0.1.2.tgz#d693b89d42ba4ac70abf1c61cfb6b0667ad8130f" integrity sha512-vKJXcCTonXolrd3tN8lbta4Qp69XR6yzU/BM1FOMfiA6C2Q2oGDVYBiTL2BOi8XLXWzsu3SaagG4WulO9ZlPSg== -"@polkadotcloud/core-ui@^0.3.69": - version "0.3.69" - resolved "https://registry.npmjs.org/@polkadotcloud/core-ui/-/core-ui-0.3.69.tgz#27f2c1b3946a04253decc2601273fb746aaa6ef4" - integrity sha512-1GeK3Vzkvpbulqj61DctJNCCJUw4b4OjXncLyRvEcsnbZ286HkdJBcGMgx/X4ts6FycZXVOMqfKH17Tkn2FD9g== +"@polkadotcloud/core-ui@^0.3.73": + version "0.3.73" + resolved "https://registry.yarnpkg.com/@polkadotcloud/core-ui/-/core-ui-0.3.73.tgz#2ec6f7d9b0140a5354f6ed6594a10728091d64b8" + integrity sha512-FNsnqBNkx/cSnCvGnTgVjLSQMM67OwQ4/qzd6OMKCwjqUp4EH3WEwqY22W5OI4jLkVva06baBTCxPv+C87dKbg== "@polkadotcloud/react-odometer@^0.1.17": version "0.1.17" From d79257fe790d912365f8aab0968bdc64c3629070 Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Sun, 6 Aug 2023 00:17:51 +0700 Subject: [PATCH 114/435] amend pool tabs, remove pool list stats --- package.json | 2 +- src/pages/Pools/Home/Favorites/index.tsx | 8 +++--- src/pages/Pools/Home/Stats/PoolMembership.tsx | 26 ------------------- src/pages/Pools/Home/index.tsx | 23 +++++++++------- yarn.lock | 8 +++--- 5 files changed, 21 insertions(+), 46 deletions(-) delete mode 100644 src/pages/Pools/Home/Stats/PoolMembership.tsx diff --git a/package.json b/package.json index d70d6ba472..4c1c09ac0f 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "@polkadot/util": "^12.1.1", "@polkadot/util-crypto": "12.3.2", "@polkadotcloud/community": "0.1.2", - "@polkadotcloud/core-ui": "^0.3.69", + "@polkadotcloud/core-ui": "^0.3.78", "@polkadotcloud/react-odometer": "^0.1.17", "@polkadotcloud/themes": "^0.1.2", "@polkadotcloud/utils": "^0.2.22", diff --git a/src/pages/Pools/Home/Favorites/index.tsx b/src/pages/Pools/Home/Favorites/index.tsx index 958786f0d5..88b983afd4 100644 --- a/src/pages/Pools/Home/Favorites/index.tsx +++ b/src/pages/Pools/Home/Favorites/index.tsx @@ -23,11 +23,9 @@ export const PoolFavorites = () => { useEffect(() => { // map favorites to bonded pools - let _favoritesList = favorites.map((f: any) => { - const pool = bondedPools.find((b: any) => b.addresses.stash === f); - if (!pool) { - removeFavorite(f); - } + let _favoritesList = favorites.map((f) => { + const pool = !bondedPools.find((b) => b.addresses.stash === f); + if (!pool) removeFavorite(f); return pool; }); diff --git a/src/pages/Pools/Home/Stats/PoolMembership.tsx b/src/pages/Pools/Home/Stats/PoolMembership.tsx deleted file mode 100644 index a667c30e61..0000000000 --- a/src/pages/Pools/Home/Stats/PoolMembership.tsx +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import { useTranslation } from 'react-i18next'; -import { useActivePools } from 'contexts/Pools/ActivePools'; -import { usePoolMemberships } from 'contexts/Pools/PoolMemberships'; -import { Text } from 'library/StatBoxList/Text'; - -export const PoolMembershipStat = () => { - const { t } = useTranslation('pages'); - const { membership } = usePoolMemberships(); - const { isOwner } = useActivePools(); - - const params = { - label: t('pools.poolMembership'), - value: - membership === null - ? t('pools.notInPool') - : isOwner() - ? `${t('pools.ownerOfPool')} ${membership.poolId}` - : `${t('pools.inPool')} ${membership.poolId}`, - unit: '', - helpKey: 'Pool Membership', - }; - return ; -}; diff --git a/src/pages/Pools/Home/index.tsx b/src/pages/Pools/Home/index.tsx index 3f9ffdb1cb..3b8292ad10 100644 --- a/src/pages/Pools/Home/index.tsx +++ b/src/pages/Pools/Home/index.tsx @@ -4,6 +4,7 @@ import { PageRow, PageTitle, RowSection } from '@polkadotcloud/core-ui'; import { useEffect, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; +import type { PageTitleTabProps } from '@polkadotcloud/core-ui/core/types'; import { useConnect } from 'contexts/Connect'; import { useModal } from 'contexts/Modal'; import { usePlugins } from 'contexts/Plugins'; @@ -15,6 +16,7 @@ import { useSubscan } from 'contexts/Subscan'; import { CardWrapper } from 'library/Card/Wrappers'; import { PoolList } from 'library/PoolList/Default'; import { StatBoxList } from 'library/StatBoxList'; +import { usePoolsConfig } from 'contexts/Pools/PoolsConfig'; import { Roles } from '../Roles'; import { ClosurePrompts } from './ClosurePrompts'; import { PoolFavorites } from './Favorites'; @@ -25,7 +27,6 @@ import { PoolStats } from './PoolStats'; import { ActivePoolsStat } from './Stats/ActivePools'; import { MinCreateBondStat } from './Stats/MinCreateBond'; import { MinJoinBondStat } from './Stats/MinJoinBond'; -import { PoolMembershipStat } from './Stats/PoolMembership'; import { Status } from './Status'; import { PoolsTabsProvider, usePoolsTabs } from './context'; @@ -34,6 +35,10 @@ export const HomeInner = () => { const { pluginEnabled } = usePlugins(); const { openModalWith } = useModal(); const { activeAccount } = useConnect(); + const { + favorites, + stats: { counterForBondedPools }, + } = usePoolsConfig(); const { fetchPoolDetails } = useSubscan(); const { membership } = usePoolMemberships(); const { activeTab, setActiveTab } = usePoolsTabs(); @@ -61,7 +66,10 @@ export const HomeInner = () => { ); }; - let tabs = [ + // Store the pool member count. + const [memberCount, setMemberCount] = useState(0); + + let tabs: PageTitleTabProps[] = [ { title: t('pools.overview'), active: activeTab === 0, @@ -74,6 +82,7 @@ export const HomeInner = () => { title: t('pools.members'), active: activeTab === 1, onClick: () => setActiveTab(1), + badge: String(memberCount), }); } @@ -82,17 +91,16 @@ export const HomeInner = () => { title: t('pools.allPools'), active: activeTab === 2, onClick: () => setActiveTab(2), + badge: String(counterForBondedPools.toString()), }, { title: t('pools.favorites'), active: activeTab === 3, onClick: () => setActiveTab(3), + badge: String(favorites.length), } ); - // Store the pool member count. - const [memberCount, setMemberCount] = useState(0); - // Back to tab 0 if not in a pool & on members tab. useEffect(() => { if (!selectedActivePool && [1].includes(activeTab)) { @@ -164,11 +172,6 @@ export const HomeInner = () => { {activeTab === 1 && } {activeTab === 2 && ( <> - - - - - Date: Sun, 6 Aug 2023 00:30:36 +0700 Subject: [PATCH 115/435] bump themes --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 4c1c09ac0f..d14544fc76 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "@polkadotcloud/community": "0.1.2", "@polkadotcloud/core-ui": "^0.3.78", "@polkadotcloud/react-odometer": "^0.1.17", - "@polkadotcloud/themes": "^0.1.2", + "@polkadotcloud/themes": "^0.1.3", "@polkadotcloud/utils": "^0.2.22", "@substrate/connect": "^0.7.31", "@zondax/ledger-substrate": "^0.41.1", diff --git a/yarn.lock b/yarn.lock index 86b5f0812a..8a0c0f0286 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1842,10 +1842,10 @@ resolved "https://registry.yarnpkg.com/@polkadotcloud/react-odometer/-/react-odometer-0.1.17.tgz#0c4465581c4155ee45b2a99a7b8cbacc36d485b0" integrity sha512-60VSsLJva6oSGidtem2oF43i04zNqg2Hxm3OT/UvUamuIIoY0QJKI+hnWl643mGTk5Ooz13hDLxpt5Sf9IXmfw== -"@polkadotcloud/themes@^0.1.2": - version "0.1.2" - resolved "https://registry.npmjs.org/@polkadotcloud/themes/-/themes-0.1.2.tgz#341c0f64480b85d2ae96fed3fd449a4fc598ae04" - integrity sha512-D8Bvp2b4W7pFYy7gPXWQIiXzf96DHd2oVfGwbm04GevZwOS0qwdMKOJKkvOlgT9bQmEbLXuaKeU5ZV7llMs4sg== +"@polkadotcloud/themes@^0.1.3": + version "0.1.3" + resolved "https://registry.npmjs.org/@polkadotcloud/themes/-/themes-0.1.3.tgz#2764465bba7e5bcfc8824e05fb32bf1c320ef41a" + integrity sha512-SAppE61Fuis+KbT7sTtwTZXxby2JVAW6WuZYTY9YrRjx1C7tHaz+6L2IQo85NdDo+eaZLSChFceOZCcE0u54Ug== "@polkadotcloud/utils@^0.2.22": version "0.2.22" From 090ec74f37f43afefde54150f951afab5fb16021 Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Sun, 6 Aug 2023 12:03:21 +0700 Subject: [PATCH 116/435] amend styling --- src/modals/Accounts/Account.tsx | 4 ++-- src/modals/Accounts/Wrappers.ts | 9 ++++----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/modals/Accounts/Account.tsx b/src/modals/Accounts/Account.tsx index 91edb76afd..ab59a5d196 100644 --- a/src/modals/Accounts/Account.tsx +++ b/src/modals/Accounts/Account.tsx @@ -80,11 +80,11 @@ export const AccountButton = ({ > {delegator && (
- +
)}
- +
{delegator && ( diff --git a/src/modals/Accounts/Wrappers.ts b/src/modals/Accounts/Wrappers.ts index 2121289c01..999e2b022e 100644 --- a/src/modals/Accounts/Wrappers.ts +++ b/src/modals/Accounts/Wrappers.ts @@ -50,7 +50,7 @@ export const AccountWrapper = styled.div` align-items: center; justify-content: flex-start; flex-shrink: 1; - padding: 0.4rem 0.75rem; + padding: 0.5rem 0.75rem; font-size: 1.05rem; width: 100%; transition: background var(--transition-duration); @@ -145,13 +145,12 @@ export const AccountWrapper = styled.div` /* Bottom half of the button, account metadata */ &.foot { border-top: 1px solid var(--border-primary-color); - min-height: 3rem; - padding: 0.5rem 1rem; + padding: 0.7rem 1rem; > .balance { color: var(--text-color-secondary); - font-size: 1rem; - opacity: 0.65; + font-size: 0.9rem; + opacity: 0.6; } } } From e59b74ad6d303ed5de3efa23ad98b5c13db7405f Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Sun, 6 Aug 2023 12:06:37 +0700 Subject: [PATCH 117/435] clean up UI --- src/contexts/UI/defaults.ts | 10 ------- src/contexts/UI/index.tsx | 60 +++---------------------------------- src/contexts/UI/types.ts | 11 ------- 3 files changed, 4 insertions(+), 77 deletions(-) diff --git a/src/contexts/UI/defaults.ts b/src/contexts/UI/defaults.ts index 961e109962..24389eb77d 100644 --- a/src/contexts/UI/defaults.ts +++ b/src/contexts/UI/defaults.ts @@ -9,17 +9,7 @@ export const defaultUIContext: UIContextInterface = { // eslint-disable-next-line setUserSideMenuMinimised: (v) => {}, // eslint-disable-next-line - getSyncById: (id) => null, - // eslint-disable-next-line setContainerRefs: (v) => {}, - // eslint-disable-next-line - getSyncStart: (i) => 0, - // eslint-disable-next-line - setSyncStart: (i, s) => {}, - // eslint-disable-next-line - getSyncSynced: (id: string) => true, - // eslint-disable-next-line - setSyncSynced: (i) => {}, sideMenuOpen: false, userSideMenuMinimised: false, sideMenuMinimised: false, diff --git a/src/contexts/UI/index.tsx b/src/contexts/UI/index.tsx index 36325c5e37..eaff894659 100644 --- a/src/contexts/UI/index.tsx +++ b/src/contexts/UI/index.tsx @@ -14,14 +14,14 @@ import { useConnect } from '../Connect'; import { useNetworkMetrics } from '../Network'; import { useStaking } from '../Staking'; import * as defaults from './defaults'; -import type { SyncStart, UIContextInterface } from './types'; +import type { UIContextInterface } from './types'; export const UIProvider = ({ children }: { children: React.ReactNode }) => { const { isReady } = useApi(); - const { accounts: connectAccounts } = useConnect(); + const { balances } = useBalances(); const { staking, eraStakers } = useStaking(); const { activeEra, metrics } = useNetworkMetrics(); - const { balances } = useBalances(); + const { accounts: connectAccounts } = useConnect(); const { synced: activePoolsSynced } = useActivePools(); // set whether the network has been synced. @@ -30,56 +30,9 @@ export const UIProvider = ({ children }: { children: React.ReactNode }) => { // set whether pools are being synced. const [isPoolSyncing, setIsPoolSyncing] = useState(false); - // set whether app is syncing.ncludes workers (active nominations). + // set whether app is syncing. Includes workers (active nominations). const [isSyncing, setIsSyncing] = useState(false); - // store sync start times. - const [syncStarts, setSyncStarts] = useState([]); - - // gets the id of a sync - const getSyncById = (id: string) => { - const existing = syncStarts.find((s) => s.id === id); - return existing?.start || null; - }; - - // get a sync start for an id - const getSyncStart = (id: string) => { - const existing = syncStarts.find((s) => s.id === id); - return existing?.start || 0; - }; - - // set a sync start time for an id. - const setSyncStart = (id: string, start: number | null) => { - setSyncStarts([ - { - id, - start, - synced: false, - }, - ]); - }; - - // get whether a syncStart has been synced. Fall back to true if not existing. - const getSyncSynced = (id: string) => { - const existing = [...syncStarts].find((s: SyncStart) => s.id === id); - return existing?.synced || false; - }; - - // set whether a syncStart has been synced. - const setSyncSynced = (id: string) => { - const existing = [...syncStarts].find((s: SyncStart) => s.id === id); - if (existing) { - setSyncStarts( - [...syncStarts] - .filter((s: SyncStart) => s.id !== id) - .concat({ - ...existing, - synced: true, - }) - ); - } - }; - // side menu control const [sideMenuOpen, setSideMenuOpen] = useState(false); @@ -189,11 +142,6 @@ export const UIProvider = ({ children }: { children: React.ReactNode }) => { value={{ setSideMenu, setUserSideMenuMinimised, - getSyncById, - getSyncStart, - setSyncStart, - getSyncSynced, - setSyncSynced, setContainerRefs, sideMenuOpen, userSideMenuMinimised: userSideMenuMinimisedRef.current, diff --git a/src/contexts/UI/types.ts b/src/contexts/UI/types.ts index 46a2bbc5c3..087acf8958 100644 --- a/src/contexts/UI/types.ts +++ b/src/contexts/UI/types.ts @@ -5,11 +5,6 @@ export interface UIContextInterface { setSideMenu: (v: boolean) => void; setUserSideMenuMinimised: (v: boolean) => void; setContainerRefs: (v: any) => void; - getSyncById: (id: string) => number | null; - getSyncStart: (id: string) => number; - setSyncStart: (id: string, start: number) => void; - getSyncSynced: (id: string) => boolean; - setSyncSynced: (id: string) => void; sideMenuOpen: boolean; userSideMenuMinimised: boolean; sideMenuMinimised: boolean; @@ -18,9 +13,3 @@ export interface UIContextInterface { isNetworkSyncing: boolean; isPoolSyncing: boolean; } - -export interface SyncStart { - id: string; - start: number | null; - synced: boolean; -} From fba42c2a65a904d0937377c1c8deeb4fc335a124 Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Sun, 6 Aug 2023 12:08:16 +0700 Subject: [PATCH 118/435] fix locale script --- .scripts/localeOrderKeys.cjs | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/.scripts/localeOrderKeys.cjs b/.scripts/localeOrderKeys.cjs index 24cdf65d07..cf3d9977d6 100644 --- a/.scripts/localeOrderKeys.cjs +++ b/.scripts/localeOrderKeys.cjs @@ -16,26 +16,27 @@ for (const lng of languages) { fs.readdir(pathToLanguage, (error, files) => { if (error) return; - files.forEach((file) => { + files.forEach(async (file) => { const pathToFile = path.join(pathToLanguage, file); const json = JSON.parse(fs.readFileSync(pathToFile).toString()); // order json object alphabetically. const orderedJson = orderJsonByKeys(json); - fs.writeFile( - pathToFile, - prettier.format(JSON.stringify(orderedJson), { parser: 'json' }), - (err) => { - if (err) { - console.err(err); - } else { - console.log( - `----------Keys In ${pathToLanguage}/${file} Are Ordered Alphabetically-------------` - ); - } + // format json object. + const formatted = await prettier.format(JSON.stringify(orderedJson), { + parser: 'json', + }); + + fs.writeFile(pathToFile, formatted, (err) => { + if (err) { + console.err(err); + } else { + console.log( + `----------Keys In ${pathToLanguage}/${file} Are Ordered Alphabetically-------------` + ); } - ); + }); }); }); -} +} \ No newline at end of file From 53c6db9f4fe2c25accb1bdee14d67e115dc8eec9 Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Sun, 6 Aug 2023 12:20:11 +0700 Subject: [PATCH 119/435] fix unused imports --- .eslintrc.json | 1 + 1 file changed, 1 insertion(+) diff --git a/.eslintrc.json b/.eslintrc.json index f1d743b8f1..a0e6607957 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -56,6 +56,7 @@ "@typescript-eslint/ban-ts-comment": "off", "no-nested-ternary": "off", "no-shadow": "off", + "unused-imports/no-unused-imports": "error", "@typescript-eslint/consistent-type-imports": [ "error", { From 57448dcaa45185b2575a30fdfcdad71913a11144 Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Sun, 6 Aug 2023 12:20:32 +0700 Subject: [PATCH 120/435] amend tooltip styling --- src/library/Tooltip/Wrapper.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/library/Tooltip/Wrapper.ts b/src/library/Tooltip/Wrapper.ts index 618d26e490..70a394ed25 100644 --- a/src/library/Tooltip/Wrapper.ts +++ b/src/library/Tooltip/Wrapper.ts @@ -9,8 +9,8 @@ export const Wrapper = styled.div` display: flex; flex-flow: column wrap; border-radius: 0.5rem; - padding: 0.25rem 0.5rem; - min-width: 100px; + padding: 0.25rem 0.75rem; + width: max-content; max-width: 200px; h3 { From 1c65865f125358a2a57dd11ef05831c23ee253db Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Sun, 6 Aug 2023 12:21:16 +0700 Subject: [PATCH 121/435] add canvas context --- src/Providers.tsx | 24 +++--------- src/Router.tsx | 12 ++++-- src/Themes.tsx | 25 +++++++++++++ src/contexts/Canvas/defaults.ts | 13 +++++++ src/contexts/Canvas/index.tsx | 66 +++++++++++++++++++++++++++++++++ src/contexts/Canvas/types.ts | 37 ++++++++++++++++++ src/library/Canvas/Wrappers.ts | 47 +++++++++++++++++++++++ src/library/Canvas/index.tsx | 61 ++++++++++++++++++++++++++++++ src/modals/index.tsx | 6 ++- 9 files changed, 267 insertions(+), 24 deletions(-) create mode 100644 src/Themes.tsx create mode 100644 src/contexts/Canvas/defaults.ts create mode 100644 src/contexts/Canvas/index.tsx create mode 100644 src/contexts/Canvas/types.ts create mode 100644 src/library/Canvas/Wrappers.ts create mode 100644 src/library/Canvas/index.tsx diff --git a/src/Providers.tsx b/src/Providers.tsx index ffc4c62896..fda7724af2 100644 --- a/src/Providers.tsx +++ b/src/Providers.tsx @@ -1,10 +1,8 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: Apache-2.0 -import { Entry } from '@polkadotcloud/core-ui'; -import { ThemeProvider } from 'styled-components'; -import { Router } from 'Router'; -import { APIProvider, useApi } from 'contexts/Api'; +import { ThemedRouter } from 'Themes'; +import { APIProvider } from 'contexts/Api'; import { BalancesProvider } from 'contexts/Balances'; import { BondedProvider } from 'contexts/Bonded'; import { ConnectProvider } from 'contexts/Connect'; @@ -32,28 +30,15 @@ import { ProxiesProvider } from 'contexts/Proxies'; import { SetupProvider } from 'contexts/Setup'; import { StakingProvider } from 'contexts/Staking'; import { SubscanProvider } from 'contexts/Subscan'; -import { useTheme } from 'contexts/Themes'; import { TooltipProvider } from 'contexts/Tooltip'; import { TransferOptionsProvider } from 'contexts/TransferOptions'; import { TxMetaProvider } from 'contexts/TxMeta'; import { UIProvider } from 'contexts/UI'; import { ValidatorsProvider } from 'contexts/Validators'; import { withProviders } from 'library/Hooks'; +import { CanvasProvider } from 'contexts/Canvas'; -// App theme classes and `@polkadotcloud/core-ui` theme classes are inserted here. -export const ThemedRouter = () => { - const { mode } = useTheme(); - const { network } = useApi(); - - return ( - - - - - - ); -}; - +// !! Provider order matters. export const Providers = withProviders( FiltersProvider, NotificationsProvider, @@ -86,6 +71,7 @@ export const Providers = withProviders( TxMetaProvider, ExtrinsicsProvider, ModalProvider, + CanvasProvider, PromptProvider, MigrateProvider )(ThemedRouter); diff --git a/src/Router.tsx b/src/Router.tsx index 966b95095a..aa630b6a3b 100644 --- a/src/Router.tsx +++ b/src/Router.tsx @@ -15,6 +15,7 @@ import { Routes, useLocation, } from 'react-router-dom'; +import { Canvas } from 'library/Canvas'; import { Prompt } from 'library/Prompt'; import { PagesConfig } from 'config/pages'; import { useApi } from 'contexts/Api'; @@ -41,19 +42,19 @@ export const RouterInner = () => { useConnect(); const { sideMenuOpen, sideMenuMinimised, setContainerRefs } = useUi(); - // scroll to top of the window on every page change or network change. + // Scroll to top of the window on every page change or network change. useEffect(() => { window.scrollTo(0, 0); }, [pathname, network]); - // set references to UI context and make available throughout app. + // Set references to UI context and make available throughout app. useEffect(() => { setContainerRefs({ mainInterface: mainInterfaceRef, }); }, []); - // open default account modal if url var present and accounts initialised. + // Open default account modal if url var present and accounts initialised. useEffect(() => { if (accountsInitialised) { const aUrl = extractUrlValue('a'); @@ -72,7 +73,7 @@ export const RouterInner = () => { } }, [accountsInitialised]); - // references to outer containers + // References to outer containers const mainInterfaceRef = useRef(null); return ( @@ -87,6 +88,9 @@ export const RouterInner = () => { {/* Help: closed by default */} + {/* Canvas: closed by default */} + + {/* Menu: closed by default */} diff --git a/src/Themes.tsx b/src/Themes.tsx new file mode 100644 index 0000000000..7082b03260 --- /dev/null +++ b/src/Themes.tsx @@ -0,0 +1,25 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { ThemeProvider } from 'styled-components'; +import { Entry } from '@polkadotcloud/core-ui'; +import { Router } from 'Router'; +import { useApi } from 'contexts/Api'; +import { useTheme } from 'contexts/Themes'; + +// App-wide theme classes are inserted here. +// +// App-specific theming is added to `ThemeProvider`. +// `@polkadotcloud/core-ui` themes are added to `Entry`. +export const ThemedRouter = () => { + const { mode } = useTheme(); + const { network } = useApi(); + + return ( + + + + + + ); +}; diff --git a/src/contexts/Canvas/defaults.ts b/src/contexts/Canvas/defaults.ts new file mode 100644 index 0000000000..319913ad46 --- /dev/null +++ b/src/contexts/Canvas/defaults.ts @@ -0,0 +1,13 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { CanvasContextInterface } from './types'; + +export const defaultCanvasContext: CanvasContextInterface = { + // eslint-disable-next-line + openCanvas: () => {}, + closeCanvas: () => {}, + // eslint-disable-next-line + setStatus: (s) => {}, + status: 0, +}; diff --git a/src/contexts/Canvas/index.tsx b/src/contexts/Canvas/index.tsx new file mode 100644 index 0000000000..6cd5f13235 --- /dev/null +++ b/src/contexts/Canvas/index.tsx @@ -0,0 +1,66 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import React, { useState } from 'react'; +import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import * as defaults from './defaults'; +import type { + CanvasContextInterface, + CanvasContextProps, + CanvasContextState, +} from './types'; + +export const CanvasProvider = ({ children }: CanvasContextProps) => { + const [state, setState] = useState({ + status: 0, + }); + + // when fade out completes, reset active definiton. + useEffectIgnoreInitial(() => { + if (state.status === 0) { + setState({ + ...state, + }); + } + }, [state.status]); + + const setStatus = (newStatus: number) => { + setState({ + ...state, + status: newStatus, + }); + }; + + const openCanvas = () => { + setState({ + ...state, + status: 1, + }); + }; + + const closeCanvas = () => { + setState({ + ...state, + status: 2, + }); + }; + + return ( + + {children} + + ); +}; + +export const CanvasContext = React.createContext( + defaults.defaultCanvasContext +); + +export const useCanvas = () => React.useContext(CanvasContext); diff --git a/src/contexts/Canvas/types.ts b/src/contexts/Canvas/types.ts new file mode 100644 index 0000000000..4bc9543c9f --- /dev/null +++ b/src/contexts/Canvas/types.ts @@ -0,0 +1,37 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ReactNode } from 'react'; + +export type CanvasItems = CanvasItem[]; + +export interface CanvasItem { + key?: string; + external?: ExternalItems; +} + +export type ExternalItems = ExternalItem[]; +export type ExternalItem = [string, string, string]; + +export interface ExternalWithKeys { + title: string; + url: string; + website?: string; +} + +export interface CanvasContextInterface { + openCanvas: () => void; + closeCanvas: () => void; + setStatus: (s: number) => void; + status: number; +} + +export interface CanvasContextState { + status: number; +} + +export interface CanvasContextProps { + children: ReactNode; +} + +export type CanvasConfig = Record; diff --git a/src/library/Canvas/Wrappers.ts b/src/library/Canvas/Wrappers.ts new file mode 100644 index 0000000000..49d409d19c --- /dev/null +++ b/src/library/Canvas/Wrappers.ts @@ -0,0 +1,47 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { motion } from 'framer-motion'; +import styled from 'styled-components'; + +export const CanvasWrapper = styled(motion.div)` + width: 100%; + width: 100%; + display: flex; + flex-direction: column; + align-items: center; + + > div { + width: inherit; + } + + .header { + display: flex; + flex-direction: column; + width: 100%; + + > div { + margin-bottom: 1.75rem; + } + } +`; + +export const CanvasCardWrapper = styled(motion.div)` + background: var(--background-floating-card); + border-radius: 1.5rem; + display: flex; + flex-flow: row wrap; + align-items: center; + position: relative; + overflow: hidden; + margin-bottom: 1.25rem; + padding: 1rem; + width: 100%; + + h2 { + color: var(--text-color-primary); + padding: 0 0.75rem; + margin: 0.5rem 0; + width: 100%; + } +`; diff --git a/src/library/Canvas/index.tsx b/src/library/Canvas/index.tsx new file mode 100644 index 0000000000..d1d7afd909 --- /dev/null +++ b/src/library/Canvas/index.tsx @@ -0,0 +1,61 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { useAnimation } from 'framer-motion'; +import { ModalCanvas, ModalContent, ModalScroll } from '@polkadotcloud/core-ui'; +import { useCanvas } from 'contexts/Canvas'; +import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import { CanvasWrapper } from './Wrappers'; + +export const Canvas = () => { + const controls = useAnimation(); + const { status, setStatus } = useCanvas(); + + const onFadeIn = async () => { + await controls.start('visible'); + }; + const onFadeOut = async () => { + await controls.start('hidden'); + setStatus(0); + }; + useEffectIgnoreInitial(() => { + // canvas has been opened - fade in. + if (status === 1) { + onFadeIn(); + } + // canvas closure triggered - fade out. + if (status === 2) { + onFadeOut(); + } + }, [status]); + + if (status === 0) { + return <>; + } + + return ( + + + + {/* TODO: Canvas Content */} + + + + ); +}; diff --git a/src/modals/index.tsx b/src/modals/index.tsx index 65210ea09f..ebab957aec 100644 --- a/src/modals/index.tsx +++ b/src/modals/index.tsx @@ -8,6 +8,7 @@ import { ErrorBoundary } from 'react-error-boundary'; import { ErrorFallbackModal } from 'library/ErrorBoundary'; import { useModal } from 'contexts/Modal'; import { useHelp } from 'contexts/Help'; +import { useCanvas } from 'contexts/Canvas'; import { AccountPoolRoles } from './AccountPoolRoles'; import { Accounts } from './Accounts'; import { Bio } from './Bio'; @@ -55,6 +56,7 @@ export const Modal = () => { const controls = useAnimation(); const maxHeight = modalMaxHeight(); const { status: helpStatus } = useHelp(); + const { status: canvasStatus } = useCanvas(); const modalRef = useRef(null); const onFadeIn = async () => { @@ -143,7 +145,9 @@ export const Modal = () => { > {modal === 'AccountPoolRoles' && } From 5985bc9d1e20780abfa32d8c6269b4b9c17db0db Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Sun, 6 Aug 2023 12:21:28 +0700 Subject: [PATCH 122/435] factor canvas to overlay --- src/library/Overlay/index.tsx | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/library/Overlay/index.tsx b/src/library/Overlay/index.tsx index 73d0eec72d..61a4828509 100644 --- a/src/library/Overlay/index.tsx +++ b/src/library/Overlay/index.tsx @@ -6,11 +6,13 @@ import { useAnimation } from 'framer-motion'; import { useEffect } from 'react'; import { useModal } from 'contexts/Modal'; import { useHelp } from 'contexts/Help'; +import { useCanvas } from 'contexts/Canvas'; export const Overlay = () => { const controls = useAnimation(); const { status: helpStatus } = useHelp(); const { status: modalStatus } = useModal(); + const { status: canvasStatus } = useCanvas(); const onFadeIn = async () => { await controls.start('visible'); @@ -24,18 +26,27 @@ export const Overlay = () => { if (modalStatus === 2) onFadeOut(); }, [modalStatus]); - // Do not fade in/out if help is open. (help can be opened in a modal). useEffect(() => { - if (helpStatus === 1 && modalStatus !== 1) onFadeIn(); - if (helpStatus === 2 && modalStatus !== 1) onFadeOut(); + if (canvasStatus === 1 && modalStatus !== 1) onFadeIn(); + if (canvasStatus === 2 && modalStatus !== 1) onFadeOut(); + }, [canvasStatus]); + + // Managing fade is more complex with help, as it can overlay modal and canvas. Do not fade in/out + // if modal or canvas is open. (help can be opened in a modal, canvas can be summoned in an open + // modal). + useEffect(() => { + if (helpStatus === 1 && modalStatus !== 1 && canvasStatus !== 1) onFadeIn(); + if (helpStatus === 2 && modalStatus !== 1 && canvasStatus !== 1) + onFadeOut(); }, [helpStatus]); - if (modalStatus === 0 && helpStatus === 0) { + if (modalStatus === 0 && helpStatus === 0 && canvasStatus === 0) { return <>; } return ( Date: Sun, 6 Aug 2023 12:21:59 +0700 Subject: [PATCH 123/435] Wrapper files tsx -> ts --- src/library/EstimatedTxFee/{Wrapper.tsx => Wrapper.ts} | 0 src/library/Modal/{Wrappers.tsx => Wrappers.ts} | 0 src/library/Prompt/{Wrappers.tsx => Wrappers.ts} | 0 src/library/SideMenu/Heading/{Wrapper.tsx => Wrapper.ts} | 0 src/library/SideMenu/Primary/{Wrappers.tsx => Wrappers.ts} | 0 src/library/SideMenu/Secondary/{Wrappers.tsx => Wrappers.ts} | 0 src/pages/Nominate/Active/Nominations/{Wrapper.tsx => Wrapper.ts} | 0 src/pages/Nominate/Setup/Summary/{Wrapper.tsx => Wrapper.ts} | 0 src/pages/Nominate/{Wrappers.tsx => Wrappers.ts} | 0 src/pages/Overview/StakeStatus/Tips/{Wrappers.tsx => Wrappers.ts} | 0 src/pages/Overview/StakeStatus/{Wrappers.tsx => Wrappers.ts} | 0 src/pages/Pools/Home/ManagePool/{Wrappers.tsx => Wrappers.ts} | 0 src/pages/Pools/PoolAccount/{Wrapper.tsx => Wrapper.ts} | 0 13 files changed, 0 insertions(+), 0 deletions(-) rename src/library/EstimatedTxFee/{Wrapper.tsx => Wrapper.ts} (100%) rename src/library/Modal/{Wrappers.tsx => Wrappers.ts} (100%) rename src/library/Prompt/{Wrappers.tsx => Wrappers.ts} (100%) rename src/library/SideMenu/Heading/{Wrapper.tsx => Wrapper.ts} (100%) rename src/library/SideMenu/Primary/{Wrappers.tsx => Wrappers.ts} (100%) rename src/library/SideMenu/Secondary/{Wrappers.tsx => Wrappers.ts} (100%) rename src/pages/Nominate/Active/Nominations/{Wrapper.tsx => Wrapper.ts} (100%) rename src/pages/Nominate/Setup/Summary/{Wrapper.tsx => Wrapper.ts} (100%) rename src/pages/Nominate/{Wrappers.tsx => Wrappers.ts} (100%) rename src/pages/Overview/StakeStatus/Tips/{Wrappers.tsx => Wrappers.ts} (100%) rename src/pages/Overview/StakeStatus/{Wrappers.tsx => Wrappers.ts} (100%) rename src/pages/Pools/Home/ManagePool/{Wrappers.tsx => Wrappers.ts} (100%) rename src/pages/Pools/PoolAccount/{Wrapper.tsx => Wrapper.ts} (100%) diff --git a/src/library/EstimatedTxFee/Wrapper.tsx b/src/library/EstimatedTxFee/Wrapper.ts similarity index 100% rename from src/library/EstimatedTxFee/Wrapper.tsx rename to src/library/EstimatedTxFee/Wrapper.ts diff --git a/src/library/Modal/Wrappers.tsx b/src/library/Modal/Wrappers.ts similarity index 100% rename from src/library/Modal/Wrappers.tsx rename to src/library/Modal/Wrappers.ts diff --git a/src/library/Prompt/Wrappers.tsx b/src/library/Prompt/Wrappers.ts similarity index 100% rename from src/library/Prompt/Wrappers.tsx rename to src/library/Prompt/Wrappers.ts diff --git a/src/library/SideMenu/Heading/Wrapper.tsx b/src/library/SideMenu/Heading/Wrapper.ts similarity index 100% rename from src/library/SideMenu/Heading/Wrapper.tsx rename to src/library/SideMenu/Heading/Wrapper.ts diff --git a/src/library/SideMenu/Primary/Wrappers.tsx b/src/library/SideMenu/Primary/Wrappers.ts similarity index 100% rename from src/library/SideMenu/Primary/Wrappers.tsx rename to src/library/SideMenu/Primary/Wrappers.ts diff --git a/src/library/SideMenu/Secondary/Wrappers.tsx b/src/library/SideMenu/Secondary/Wrappers.ts similarity index 100% rename from src/library/SideMenu/Secondary/Wrappers.tsx rename to src/library/SideMenu/Secondary/Wrappers.ts diff --git a/src/pages/Nominate/Active/Nominations/Wrapper.tsx b/src/pages/Nominate/Active/Nominations/Wrapper.ts similarity index 100% rename from src/pages/Nominate/Active/Nominations/Wrapper.tsx rename to src/pages/Nominate/Active/Nominations/Wrapper.ts diff --git a/src/pages/Nominate/Setup/Summary/Wrapper.tsx b/src/pages/Nominate/Setup/Summary/Wrapper.ts similarity index 100% rename from src/pages/Nominate/Setup/Summary/Wrapper.tsx rename to src/pages/Nominate/Setup/Summary/Wrapper.ts diff --git a/src/pages/Nominate/Wrappers.tsx b/src/pages/Nominate/Wrappers.ts similarity index 100% rename from src/pages/Nominate/Wrappers.tsx rename to src/pages/Nominate/Wrappers.ts diff --git a/src/pages/Overview/StakeStatus/Tips/Wrappers.tsx b/src/pages/Overview/StakeStatus/Tips/Wrappers.ts similarity index 100% rename from src/pages/Overview/StakeStatus/Tips/Wrappers.tsx rename to src/pages/Overview/StakeStatus/Tips/Wrappers.ts diff --git a/src/pages/Overview/StakeStatus/Wrappers.tsx b/src/pages/Overview/StakeStatus/Wrappers.ts similarity index 100% rename from src/pages/Overview/StakeStatus/Wrappers.tsx rename to src/pages/Overview/StakeStatus/Wrappers.ts diff --git a/src/pages/Pools/Home/ManagePool/Wrappers.tsx b/src/pages/Pools/Home/ManagePool/Wrappers.ts similarity index 100% rename from src/pages/Pools/Home/ManagePool/Wrappers.tsx rename to src/pages/Pools/Home/ManagePool/Wrappers.ts diff --git a/src/pages/Pools/PoolAccount/Wrapper.tsx b/src/pages/Pools/PoolAccount/Wrapper.ts similarity index 100% rename from src/pages/Pools/PoolAccount/Wrapper.tsx rename to src/pages/Pools/PoolAccount/Wrapper.ts From 262754f940f39776c4ac4633bbfa3ff815256654 Mon Sep 17 00:00:00 2001 From: Ross Bulat Date: Sun, 6 Aug 2023 12:30:58 +0700 Subject: [PATCH 124/435] add staggerChildren as prop --- src/library/List/MotionContainer.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/library/List/MotionContainer.tsx b/src/library/List/MotionContainer.tsx index 1fbfef4c7d..4fac91e3a0 100644 --- a/src/library/List/MotionContainer.tsx +++ b/src/library/List/MotionContainer.tsx @@ -6,7 +6,9 @@ import React from 'react'; export const MotionContainer = ({ children, + staggerChildren = 0.01, }: { + staggerChildren?: number; children: React.ReactNode; }) => ( Date: Sun, 6 Aug 2023 12:34:30 +0700 Subject: [PATCH 125/435] move reserve button --- src/library/BarChart/LegendItem.tsx | 8 +++++- src/library/BarChart/Wrappers.ts | 13 +++++++++- src/library/BarChart/types.ts | 4 +++ src/library/Modal/Title.tsx | 13 ++++++++-- src/modals/UpdateReserve/index.tsx | 10 +++++--- src/pages/Overview/BalanceChart.tsx | 40 ++++++++++++++++++++++++----- src/pages/Overview/BalanceLinks.tsx | 36 ++------------------------ 7 files changed, 76 insertions(+), 48 deletions(-) diff --git a/src/library/BarChart/LegendItem.tsx b/src/library/BarChart/LegendItem.tsx index d5834f4bd1..9684d42b17 100644 --- a/src/library/BarChart/LegendItem.tsx +++ b/src/library/BarChart/LegendItem.tsx @@ -5,7 +5,12 @@ import { ButtonHelp } from '@polkadotcloud/core-ui'; import { useHelp } from 'contexts/Help'; import type { LegendItemProps } from './types'; -export const LegendItem = ({ dataClass, label, helpKey }: LegendItemProps) => { +export const LegendItem = ({ + dataClass, + label, + helpKey, + button, +}: LegendItemProps) => { const { openHelp } = useHelp(); return ( @@ -14,6 +19,7 @@ export const LegendItem = ({ dataClass, label, helpKey }: LegendItemProps) => { {helpKey ? ( openHelp(helpKey)} /> ) : null} + {button && button}

); }; diff --git a/src/library/BarChart/Wrappers.ts b/src/library/BarChart/Wrappers.ts index 02548f9467..26e0938f5f 100644 --- a/src/library/BarChart/Wrappers.ts +++ b/src/library/BarChart/Wrappers.ts @@ -46,14 +46,25 @@ export const Legend = styled.div` width: 100%; margin-bottom: 0.4rem; display: flex; + align-items: flex-end; + height: 2.5rem; + + &.end { + > h4 { + flex-direction: row; + flex-grow: 1; + justify-content: flex-end; + padding-right: 0; + } + } > h4 { font-family: InterSemiBold, sans-serif; display: flex; align-items: center; - padding: 0.5rem 1rem; font-size: 1.1rem; margin: 0; + padding: 0.5rem 1rem 0.25rem 1rem; &:first-child { padding-left: 0; diff --git a/src/library/BarChart/types.ts b/src/library/BarChart/types.ts index a8e741a2f4..d2390b226c 100644 --- a/src/library/BarChart/types.ts +++ b/src/library/BarChart/types.ts @@ -1,4 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type React from 'react'; export type DataClass = 'd1' | 'd2' | 'd3' | 'd4'; @@ -6,6 +9,7 @@ export interface LegendItemProps { dataClass?: DataClass; label: string; helpKey?: string; + button?: React.ReactNode; } export interface BarSegmentProps { diff --git a/src/library/Modal/Title.tsx b/src/library/Modal/Title.tsx index 35d898efb5..73893a12b4 100644 --- a/src/library/Modal/Title.tsx +++ b/src/library/Modal/Title.tsx @@ -5,6 +5,7 @@ import type { IconProp } from '@fortawesome/fontawesome-svg-core'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { ButtonHelp } from '@polkadotcloud/core-ui'; import type { FunctionComponent } from 'react'; +import React from 'react'; import { useHelp } from 'contexts/Help'; import { useModal } from 'contexts/Modal'; import { ReactComponent as CrossSVG } from 'img/cross.svg'; @@ -16,9 +17,17 @@ interface TitleProps { Svg?: FunctionComponent; fixed?: boolean; helpKey?: string; + style?: React.CSSProperties; } -export const Title = ({ helpKey, title, icon, fixed, Svg }: TitleProps) => { +export const Title = ({ + helpKey, + title, + icon, + fixed, + Svg, + style, +}: TitleProps) => { const { setStatus } = useModal(); const { openHelp } = useHelp(); @@ -29,7 +38,7 @@ export const Title = ({ helpKey, title, icon, fixed, Svg }: TitleProps) => { ) : null; return ( - +
{graphic}

diff --git a/src/modals/UpdateReserve/index.tsx b/src/modals/UpdateReserve/index.tsx index 3814534cd5..0a13a27124 100644 --- a/src/modals/UpdateReserve/index.tsx +++ b/src/modals/UpdateReserve/index.tsx @@ -20,6 +20,7 @@ import { useModal } from 'contexts/Modal'; import { useTransferOptions } from 'contexts/TransferOptions'; import { CardHeaderWrapper } from 'library/Card/Wrappers'; import { Close } from 'library/Modal/Close'; +import { Title } from 'library/Modal/Title'; import { SliderWrapper } from 'modals/ManagePool/Wrappers'; import 'rc-slider/assets/index.css'; @@ -69,10 +70,11 @@ export const UpdateReserve = () => { <> -

- {t('reserveBalance')} -

- + <SliderWrapper style={{ marginTop: '1rem' }}> <p>{t('reserveText', { unit })}</p> <div> diff --git a/src/pages/Overview/BalanceChart.tsx b/src/pages/Overview/BalanceChart.tsx index 53c27092cd..081bdcb091 100644 --- a/src/pages/Overview/BalanceChart.tsx +++ b/src/pages/Overview/BalanceChart.tsx @@ -1,14 +1,18 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: Apache-2.0 +import { faCheck, faCheckDouble } from '@fortawesome/free-solid-svg-icons'; +import { ButtonTertiary } from '@polkadotcloud/core-ui'; import { greaterThanZero, planckToUnit } from '@polkadotcloud/utils'; import BigNumber from 'bignumber.js'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useBalances } from 'contexts/Balances'; import { useConnect } from 'contexts/Connect'; +import { useModal } from 'contexts/Modal'; import { usePlugins } from 'contexts/Plugins'; import { useTransferOptions } from 'contexts/TransferOptions'; +import { useUi } from 'contexts/UI'; import { BarSegment } from 'library/BarChart/BarSegment'; import { LegendItem } from 'library/BarChart/LegendItem'; import { Bar, BarChartWrapper, Legend } from 'library/BarChart/Wrappers'; @@ -22,8 +26,10 @@ export const BalanceChart = () => { } = useApi(); const prices = usePrices(); const { plugins } = usePlugins(); - const { activeAccount } = useConnect(); + const { isNetworkSyncing } = useUi(); + const { openModalWith } = useModal(); const { getBalance, getLocks } = useBalances(); + const { activeAccount, accountHasSigner } = useConnect(); const { feeReserve, getTransferOptions } = useTransferOptions(); const balance = getBalance(activeAccount); const allTransferOptions = getTransferOptions(activeAccount); @@ -216,15 +222,37 @@ export const BalanceChart = () => { <div style={{ flex: 0, - minWidth: '8.5rem', - maxWidth: '8.5rem', + minWidth: '12.5rem', + maxWidth: '12.5rem', flexBasis: '50%', }} > - <Legend> + <Legend className="end"> <LegendItem - label={t('overview.reserve')} - helpKey="Reserve Balance" + label="" + button={ + <ButtonTertiary + text="Reserve Balance" + onClick={() => + openModalWith('UpdateReserve', {}, 'small') + } + iconRight={ + isNetworkSyncing + ? undefined + : !feeReserve.isZero() && !edReserved.isZero() + ? faCheckDouble + : feeReserve.isZero() && edReserved.isZero() + ? undefined + : faCheck + } + iconTransform="shrink-1" + disabled={ + !activeAccount || + isNetworkSyncing || + !accountHasSigner(activeAccount) + } + /> + } /> </Legend> <Bar> diff --git a/src/pages/Overview/BalanceLinks.tsx b/src/pages/Overview/BalanceLinks.tsx index 01f2cf868a..d0dba1c228 100644 --- a/src/pages/Overview/BalanceLinks.tsx +++ b/src/pages/Overview/BalanceLinks.tsx @@ -1,28 +1,17 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: Apache-2.0 -import { - faCheck, - faCheckDouble, - faExternalLinkAlt, -} from '@fortawesome/free-solid-svg-icons'; +import { faExternalLinkAlt } from '@fortawesome/free-solid-svg-icons'; import { ButtonPrimaryInvert, Separator } from '@polkadotcloud/core-ui'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; -import { useTransferOptions } from 'contexts/TransferOptions'; -import { useUi } from 'contexts/UI'; import { MoreWrapper } from './Wrappers'; export const BalanceLinks = () => { const { t } = useTranslation('pages'); const { name } = useApi().network; - const { openModalWith } = useModal(); - const { isNetworkSyncing } = useUi(); - const { activeAccount, accountHasSigner } = useConnect(); - const { feeReserve, getTransferOptions } = useTransferOptions(); - const { edReserved } = getTransferOptions(activeAccount); + const { activeAccount } = useConnect(); return ( <MoreWrapper> @@ -42,27 +31,6 @@ export const BalanceLinks = () => { text="Subscan" disabled={!activeAccount} /> - <ButtonPrimaryInvert - lg - marginLeft - disabled={ - isNetworkSyncing || - !activeAccount || - !accountHasSigner(activeAccount) - } - iconTransform="grow-1" - onClick={() => openModalWith('UpdateReserve', {}, 'small')} - iconRight={ - isNetworkSyncing - ? undefined - : !feeReserve.isZero() && !edReserved.isZero() - ? faCheckDouble - : feeReserve.isZero() && edReserved.isZero() - ? undefined - : faCheck - } - text={t('overview.updateReserve')} - /> </section> </MoreWrapper> ); From 10ef8fccfa97617a94d720476e13460f73b6e527 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sun, 6 Aug 2023 12:50:56 +0700 Subject: [PATCH 126/435] use --text-color-tertiary --- src/pages/Overview/ActiveAccounts/Wrappers.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/Overview/ActiveAccounts/Wrappers.ts b/src/pages/Overview/ActiveAccounts/Wrappers.ts index 96136d9cee..e5bd455ccd 100644 --- a/src/pages/Overview/ActiveAccounts/Wrappers.ts +++ b/src/pages/Overview/ActiveAccounts/Wrappers.ts @@ -55,15 +55,15 @@ export const ItemWrapper = styled.div` position: relative; .name { + color: var(--text-color-tertiary); position: absolute; left: 0; bottom: 0; - max-width: 100%; display: inline; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; - opacity: 0.75; + max-width: 100%; } } From bb61bad8671d9c969f550f679c6cf595f88031d3 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sun, 6 Aug 2023 22:52:37 +0700 Subject: [PATCH 127/435] enhance overlays --- src/contexts/Modal/defaults.ts | 4 + src/contexts/Modal/index.tsx | 59 ++++++++++--- src/contexts/Modal/types.ts | 3 + src/library/Help/index.tsx | 13 ++- src/modals/Accounts/index.tsx | 153 ++++++++++++++------------------- src/modals/Connect/index.tsx | 3 +- src/modals/index.tsx | 64 ++++++++++---- 7 files changed, 171 insertions(+), 128 deletions(-) diff --git a/src/contexts/Modal/defaults.ts b/src/contexts/Modal/defaults.ts index 1744e4de06..91726f276c 100644 --- a/src/contexts/Modal/defaults.ts +++ b/src/contexts/Modal/defaults.ts @@ -13,6 +13,10 @@ export const defaultModalContext: ModalContextInterface = { replaceModalWith: (m, c, s) => {}, // eslint-disable-next-line setModalHeight: (v) => {}, + // eslint-disable-next-line + setModalRef: (v) => {}, + // eslint-disable-next-line + setHeightRef: (v) => {}, setResize: () => {}, modalMaxHeight: () => 0, modal: '', diff --git a/src/contexts/Modal/index.tsx b/src/contexts/Modal/index.tsx index 834cf24e46..f3881ceb57 100644 --- a/src/contexts/Modal/index.tsx +++ b/src/contexts/Modal/index.tsx @@ -2,6 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 import { setStateWithRef } from '@polkadotcloud/utils'; +import type { RefObject } from 'react'; import React, { useRef, useState } from 'react'; import { useTxMeta } from 'contexts/TxMeta'; import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; @@ -29,18 +30,32 @@ export const ModalProvider = ({ children }: { children: React.ReactNode }) => { // Store the modal's resize counter. const [resize, setModalResize] = useState<number>(0); + // Store the ref to the modal height container. Used for controlling whether height is transitionable. + const [modalRef, setModalRef] = useState<RefObject<HTMLDivElement>>(); + + // Store the ref to the modal height container. Used for controlling whether height is transitionable. + const [heightRef, setHeightRef] = useState<RefObject<HTMLDivElement>>(); + useEffectIgnoreInitial(() => { setResize(); - }, [statusRef.current, notEnoughFunds]); + }, [notEnoughFunds]); + + useEffectIgnoreInitial(() => { + const h = modalRef?.current?.clientHeight || 0; + if (statusRef.current === 3) { + setModalHeight(h, false); + if (h > 0) { + setStatus(1); + } + } + }, [statusRef.current, modalRef?.current]); const setOptions = (o: ModalOptions) => { setStateWithRef(o, setOptionsState, optionsRef); }; const setStatus = (newStatus: number) => { - setHeight(newStatus === 0 ? 0 : height); setStateWithRef(newStatus, setStatusState, statusRef); - setResize(); }; const openModalWith = ( @@ -48,43 +63,63 @@ export const ModalProvider = ({ children }: { children: React.ReactNode }) => { config: ModalConfig = {}, size = 'large' ) => { - setStateWithRef(1, setStatusState, statusRef); - setResize(); setOptions({ modal, config, size, }); + setStatus(3); }; - const setModalHeight = (h: number) => { + const setModalHeight = (h: number, transition: boolean = true) => { if (statusRef.current === 0) return; - // set maximum height to 80% of window height + + // Ensrue transition class is removed if not transitioning. Otherwise, ensure class exists. + if (transition) transitionOn(); + else transitionOff(); + + // If transitioning, ensure the class exists. + if (transition) transitionOn(); + + // Limit maximum height to 80% of window height, and set. const maxHeight = window.innerHeight * 0.8; h = h > maxHeight ? maxHeight : h; setHeight(h); + + // If transitioning, remove after enough time to finish transition. + if (transition) setTimeout(() => transitionOff(), 500); }; - // increments resize to trigger a height transition. + // Increments resize to trigger a height transition. const setResize = () => { + transitionOn(); setModalResize(resize + 1); + setTimeout(() => transitionOff(), 500); }; - // closes one modal and opens another. + // Closes one modal and opens another. const replaceModalWith = ( modal: string, config: ModalConfig = {}, size = 'large' ) => { - setStatus(3); - setHeight(0); + setStatus(4); setTimeout(() => { openModalWith(modal, config, size); }, 10); }; + // Helper to calculate the maximum height of the modal. const modalMaxHeight = () => window.innerHeight * 0.8; + // helper to set the transition height class of the modal. + const transitionOn = () => + heightRef?.current?.classList.add('transition-height'); + + // helper to remove the transition height class of the modal. + const transitionOff = () => + heightRef?.current?.classList.remove('transition-height'); + return ( <ModalContext.Provider value={{ @@ -97,6 +132,8 @@ export const ModalProvider = ({ children }: { children: React.ReactNode }) => { height, resize, modalMaxHeight, + setModalRef, + setHeightRef, modal: optionsRef.current.modal, config: optionsRef.current.config, size: optionsRef.current.size, diff --git a/src/contexts/Modal/types.ts b/src/contexts/Modal/types.ts index ab9708a4ad..2454a58383 100644 --- a/src/contexts/Modal/types.ts +++ b/src/contexts/Modal/types.ts @@ -1,6 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: Apache-2.0 +import type { RefObject } from 'react'; import type { AnyJson } from 'types'; export type ModalSize = 'small' | 'large' | 'xl'; @@ -15,6 +16,8 @@ export interface ModalContextInterface { setModalHeight: (v: number) => void; setResize: () => void; modalMaxHeight: () => number; + setModalRef: (v: RefObject<HTMLDivElement>) => void; + setHeightRef: (v: RefObject<HTMLDivElement>) => void; status: number; modal: string; config: AnyJson; diff --git a/src/library/Help/index.tsx b/src/library/Help/index.tsx index 1f0061b594..0a32d21216 100644 --- a/src/library/Help/index.tsx +++ b/src/library/Help/index.tsx @@ -133,17 +133,20 @@ export const Help = () => { <ModalCanvas initial={{ opacity: 0, + scale: 1.05, }} animate={controls} transition={{ - duration: 0.15, + duration: 0.2, }} variants={{ hidden: { opacity: 0, + scale: 1.05, }, visible: { opacity: 1, + scale: 1, }, }} > @@ -215,13 +218,7 @@ export const Help = () => { )} </ModalContent> </ModalScroll> - <button - type="button" - className="close" - onClick={() => { - closeHelp(); - }} - > + <button type="button" className="close" onClick={() => closeHelp()}>   </button> </ModalCanvas> diff --git a/src/modals/Accounts/index.tsx b/src/modals/Accounts/index.tsx index 2ae6bc149c..575fdf3e87 100644 --- a/src/modals/Accounts/index.tsx +++ b/src/modals/Accounts/index.tsx @@ -11,7 +11,6 @@ import { } from '@polkadotcloud/core-ui'; import React, { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; -import { useApi } from 'contexts/Api'; import { useBalances } from 'contexts/Balances'; import { useBonded } from 'contexts/Bonded'; import { useConnect } from 'contexts/Connect'; @@ -19,6 +18,7 @@ import { useExtensions } from 'contexts/Extensions'; import { useModal } from 'contexts/Modal'; import { usePoolMemberships } from 'contexts/Pools/PoolMemberships'; import { useProxies } from 'contexts/Proxies'; +import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import { AccountButton } from './Account'; import { Delegates } from './Delegates'; import { AccountSeparator, AccountWrapper } from './Wrappers'; @@ -31,118 +31,93 @@ import type { export const Accounts = () => { const { t } = useTranslation('modals'); - const { isReady } = useApi(); const { balances } = useBalances(); const { getDelegates } = useProxies(); const { extensions } = useExtensions(); const { bondedAccounts } = useBonded(); const { ledgers, getLocks } = useBalances(); const { memberships } = usePoolMemberships(); - const { replaceModalWith, setResize } = useModal(); + const { replaceModalWith, status: modalStatus, setResize } = useModal(); const { activeAccount, disconnectFromAccount, setActiveProxy, accounts } = useConnect(); // Store local copy of accounts. const [localAccounts, setLocalAccounts] = useState(accounts); - // Store accounts that are both nominating and in a pool. - const [nominatingAndPool, setNominatingAndPool] = useState< - AccountNominatingAndInPool[] - >([]); + const stashes: string[] = []; + // accumulate imported stash accounts + for (const { address } of localAccounts) { + const locks = getLocks(address); - // Store accounts that are actively nominating. - const [nominating, setNominating] = useState<AccountNominating[]>([]); - - // Store accounts that are in a pool. - const [inPool, setInPool] = useState<AccountInPool[]>([]); - - // Store accounts that are not staking. - const [notStaking, setNotStaking] = useState<AccountNotStaking[]>([]); - - const getAccountsStatus = () => { - const stashes: string[] = []; - - // accumulate imported stash accounts - for (const { address } of localAccounts) { - const locks = getLocks(address); - - // account is a stash if they have an active `staking` lock - if (locks.find(({ id }) => id === 'staking')) { - stashes.push(address); - } + // account is a stash if they have an active `staking` lock + if (locks.find(({ id }) => id === 'staking')) { + stashes.push(address); + } + } + + // construct account groupings + const nominating: AccountNominating[] = []; + const inPool: AccountInPool[] = []; + const nominatingAndPool: AccountNominatingAndInPool[] = []; + const notStaking: AccountNotStaking[] = []; + + for (const { address } of localAccounts) { + let isNominating = false; + let isInPool = false; + const isStash = stashes[stashes.indexOf(address)] ?? null; + const delegates = getDelegates(address); + + const poolMember = memberships.find((m) => m.address === address) ?? null; + + // If stash exists, add address to nominating list. + if ( + isStash && + nominating.find((a) => a.address === address) === undefined + ) { + isNominating = true; } - // construct account groupings - const newNominating: AccountNominating[] = []; - const newInPool: AccountInPool[] = []; - const newNominatingAndInPool: AccountNominatingAndInPool[] = []; - const newNotStaking: AccountNotStaking[] = []; - - for (const { address } of localAccounts) { - let isNominating = false; - let isInPool = false; - const isStash = stashes[stashes.indexOf(address)] ?? null; - const delegates = getDelegates(address); - - const poolMember = memberships.find((m) => m.address === address) ?? null; - - // If stash exists, add address to nominating list. - if ( - isStash && - newNominating.find((a) => a.address === address) === undefined - ) { - isNominating = true; - } - - // if pooling, add address to active pooling. - if (poolMember) { - if (!newInPool.find((n) => n.address === address)) { - isInPool = true; - } - } - - // If not doing anything, add address to `notStaking`. - if ( - !isStash && - !poolMember && - !newNotStaking.find((n) => n.address === address) - ) { - newNotStaking.push({ address, delegates }); + // if pooling, add address to active pooling. + if (poolMember) { + if (!inPool.find((n) => n.address === address)) { + isInPool = true; } + } - if (isNominating && isInPool && poolMember) { - newNominatingAndInPool.push({ - ...poolMember, - address, - stashImported: true, - delegates, - }); - } + // If not doing anything, add address to `notStaking`. + if ( + !isStash && + !poolMember && + !notStaking.find((n) => n.address === address) + ) { + notStaking.push({ address, delegates }); + } - if (isNominating && !isInPool) { - newNominating.push({ address, stashImported: true, delegates }); - } - if (!isNominating && isInPool && poolMember) { - newInPool.push({ ...poolMember, delegates }); - } + if (isNominating && isInPool && poolMember) { + nominatingAndPool.push({ + ...poolMember, + address, + stashImported: true, + delegates, + }); } - setNominatingAndPool(newNominatingAndInPool); - setNominating(newNominating); - setInPool(newInPool); - setNotStaking(newNotStaking); - }; + if (isNominating && !isInPool) { + nominating.push({ address, stashImported: true, delegates }); + } + if (!isNominating && isInPool && poolMember) { + inPool.push({ ...poolMember, delegates }); + } + } useEffect(() => { setLocalAccounts(accounts); - }, [isReady, accounts]); - - useEffect(() => { - getAccountsStatus(); - }, [localAccounts, bondedAccounts, balances, ledgers, accounts, memberships]); + }, [accounts]); - useEffect(() => { - setResize(); + useEffectIgnoreInitial(() => { + if (modalStatus === 1) { + setResize(); + } }, [activeAccount, accounts, bondedAccounts, balances, ledgers, extensions]); return ( diff --git a/src/modals/Connect/index.tsx b/src/modals/Connect/index.tsx index 69e477455c..2180dc988d 100644 --- a/src/modals/Connect/index.tsx +++ b/src/modals/Connect/index.tsx @@ -20,6 +20,7 @@ import { useModal } from 'contexts/Modal'; import { Close } from 'library/Modal/Close'; import { SelectItems } from 'library/SelectItems'; import type { AnyFunction } from 'types'; +import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import { Extension } from './Extension'; import { Ledger } from './Ledger'; import { Proxies } from './Proxies'; @@ -67,7 +68,7 @@ export const Connect = () => { }; // Resize modal on state change. - useEffect(() => { + useEffectIgnoreInitial(() => { refreshModalHeight(); }, [section, readOnlyOpen, newProxyOpen, extensions]); diff --git a/src/modals/index.tsx b/src/modals/index.tsx index ebab957aec..529ceceb6c 100644 --- a/src/modals/index.tsx +++ b/src/modals/index.tsx @@ -40,6 +40,7 @@ import { UpdatePayee } from './UpdatePayee'; import { UpdateReserve } from './UpdateReserve'; import { ValidatorMetrics } from './ValidatorMetrics'; import { WithdrawPoolMember } from './WithdrawPoolMember'; +import { OtherBalances } from './OtherBalances'; export const Modal = () => { const { @@ -50,6 +51,8 @@ export const Modal = () => { resize, config, setStatus, + setModalRef, + setHeightRef, modalMaxHeight, setModalHeight, } = useModal(); @@ -58,14 +61,18 @@ export const Modal = () => { const { status: helpStatus } = useHelp(); const { status: canvasStatus } = useCanvas(); const modalRef = useRef<HTMLDivElement>(null); + const heightRef = useRef<HTMLDivElement>(null); - const onFadeIn = async () => { - await controls.start('visible'); - }; - const onFadeOut = async () => { - await controls.start('hidden'); + const onOutClose = async () => { + await controls.start('out'); setStatus(0); }; + const onIn = async () => { + await controls.start('in'); + }; + const onOut = async () => { + await controls.start('out'); + }; const windowResize = () => { if (!config?.disableWindowResize) { @@ -81,17 +88,24 @@ export const Modal = () => { setModalHeight(h); }; + // Control on modal status change. useEffect(() => { - // modal has been opened - fade in. - if (status === 1) { - onFadeIn(); - } - // modal closure triggered - fade out. - if (status === 2) { - onFadeOut(); - } + if (status === 1) onIn(); + if (status === 2) onOutClose(); }, [status]); + // Control on canvas status change. + useEffect(() => { + if (canvasStatus === 1) if (status === 1) onOut(); + if (canvasStatus === 2) if (status === 1) onIn(); + }, [canvasStatus]); + + // Control dim help status change. + useEffect(() => { + if (helpStatus === 1) if (status === 1) onOut(); + if (helpStatus === 2) if (status === 1) onIn(); + }, [helpStatus]); + // resize modal on status or resize change useEffect(() => { handleResize(); @@ -104,36 +118,47 @@ export const Modal = () => { }; }); + // store the modal's content ref. + useEffect(() => { + setModalRef(modalRef); + setHeightRef(heightRef); + }, [modalRef?.current, heightRef?.current]); + if (status === 0) { return <></>; } const variants = { - hidden: { - opacity: 0, - }, - visible: { + in: { opacity: 1, + scale: 1, + }, + out: { + opacity: 0, + scale: 0.9, }, }; const transition = { - duration: 0.15, + duration: 0.2, }; const initial = { opacity: 0, + scale: 0.9, }; return ( <> - {status !== 3 ? ( + {status !== 4 ? ( <ModalContainer initial={initial} animate={controls} transition={transition} variants={variants} + style={{ opacity: status === 3 ? 0 : 1 }} > <div> <ModalHeight + ref={heightRef} size={size} style={{ height, @@ -171,6 +196,7 @@ export const Modal = () => { <NominateFromFavorites /> )} {modal === 'NominatePool' && <NominatePool />} + {modal === 'OtherBalances' && <OtherBalances />} {modal === 'PoolNominations' && <PoolNominations />} {modal === 'SelectFavorites' && <SelectFavorites />} {modal === 'Settings' && <Settings />} From 2863764d95dbb994366a1e6ab3ebd268339434bd Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sun, 6 Aug 2023 22:53:28 +0700 Subject: [PATCH 128/435] fix --- src/modals/index.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/modals/index.tsx b/src/modals/index.tsx index 529ceceb6c..e29f4b5f95 100644 --- a/src/modals/index.tsx +++ b/src/modals/index.tsx @@ -40,7 +40,6 @@ import { UpdatePayee } from './UpdatePayee'; import { UpdateReserve } from './UpdateReserve'; import { ValidatorMetrics } from './ValidatorMetrics'; import { WithdrawPoolMember } from './WithdrawPoolMember'; -import { OtherBalances } from './OtherBalances'; export const Modal = () => { const { @@ -196,7 +195,6 @@ export const Modal = () => { <NominateFromFavorites /> )} {modal === 'NominatePool' && <NominatePool />} - {modal === 'OtherBalances' && <OtherBalances />} {modal === 'PoolNominations' && <PoolNominations />} {modal === 'SelectFavorites' && <SelectFavorites />} {modal === 'Settings' && <Settings />} From 9892a5885a29a12859ca572200890ae5852b6090 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sun, 6 Aug 2023 23:10:15 +0700 Subject: [PATCH 129/435] ModalStatus to stirng literals --- src/contexts/Modal/defaults.ts | 2 +- src/contexts/Modal/index.tsx | 21 +++++++++------- src/contexts/Modal/types.ts | 12 ++++++++-- src/library/Help/index.tsx | 12 ++-------- src/library/Modal/Close.tsx | 2 +- src/library/Modal/Title.tsx | 2 +- src/library/Overlay/index.tsx | 15 ++++++------ src/locale/cn/help.json | 1 - src/locale/en/help.json | 1 - src/modals/AccountPoolRoles/index.tsx | 2 +- src/modals/Accounts/Account.tsx | 2 +- src/modals/Accounts/index.tsx | 2 +- src/modals/BalanceTest/index.tsx | 2 +- src/modals/Bond/index.tsx | 2 +- src/modals/ChangeNominations/index.tsx | 2 +- src/modals/ChangePoolRoles/index.tsx | 2 +- src/modals/ChooseLanguage/index.tsx | 2 +- src/modals/ClaimReward/index.tsx | 2 +- src/modals/DismissTips/index.tsx | 2 +- src/modals/JoinPool/index.tsx | 2 +- src/modals/ManageFastUnstake/index.tsx | 2 +- .../ManagePool/Forms/ClaimCommission.tsx | 2 +- src/modals/ManagePool/Forms/Commission.tsx | 2 +- src/modals/ManagePool/Forms/LeavePool.tsx | 2 +- .../ManagePool/Forms/SetClaimPermission.tsx | 2 +- src/modals/ManagePool/Forms/SetMetadata.tsx | 2 +- src/modals/ManagePool/Forms/SetState.tsx | 2 +- src/modals/Networks/index.tsx | 6 ++--- src/modals/Nominate/index.tsx | 2 +- src/modals/NominateFromFavorites/index.tsx | 2 +- src/modals/NominatePool/index.tsx | 2 +- src/modals/SelectFavorites/index.tsx | 2 +- src/modals/Unbond/index.tsx | 2 +- src/modals/UnbondPoolMember/index.tsx | 2 +- src/modals/UnlockChunks/Forms.tsx | 2 +- src/modals/Unstake/index.tsx | 2 +- src/modals/UpdateController/index.tsx | 2 +- src/modals/UpdatePayee/index.tsx | 2 +- src/modals/UpdateReserve/index.tsx | 2 +- src/modals/WithdrawPoolMember/index.tsx | 2 +- src/modals/index.tsx | 24 +++++++++---------- 41 files changed, 81 insertions(+), 77 deletions(-) diff --git a/src/contexts/Modal/defaults.ts b/src/contexts/Modal/defaults.ts index 91726f276c..e804b4ad46 100644 --- a/src/contexts/Modal/defaults.ts +++ b/src/contexts/Modal/defaults.ts @@ -4,7 +4,7 @@ import type { ModalContextInterface } from './types'; export const defaultModalContext: ModalContextInterface = { - status: 0, + status: 'closed', // eslint-disable-next-line setStatus: (status) => {}, // eslint-disable-next-line diff --git a/src/contexts/Modal/index.tsx b/src/contexts/Modal/index.tsx index f3881ceb57..76f55e5918 100644 --- a/src/contexts/Modal/index.tsx +++ b/src/contexts/Modal/index.tsx @@ -7,7 +7,12 @@ import React, { useRef, useState } from 'react'; import { useTxMeta } from 'contexts/TxMeta'; import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import { defaultModalContext } from './defaults'; -import type { ModalConfig, ModalContextInterface, ModalOptions } from './types'; +import type { + ModalConfig, + ModalContextInterface, + ModalOptions, + ModalStatus, +} from './types'; export const ModalProvider = ({ children }: { children: React.ReactNode }) => { const { notEnoughFunds } = useTxMeta(); @@ -24,7 +29,7 @@ export const ModalProvider = ({ children }: { children: React.ReactNode }) => { const [height, setHeight] = useState<number>(0); // Store the modal status. - const [status, setStatusState] = useState<number>(0); + const [status, setStatusState] = useState<ModalStatus>('closed'); const statusRef = useRef(status); // Store the modal's resize counter. @@ -42,10 +47,10 @@ export const ModalProvider = ({ children }: { children: React.ReactNode }) => { useEffectIgnoreInitial(() => { const h = modalRef?.current?.clientHeight || 0; - if (statusRef.current === 3) { + if (statusRef.current === 'opening') { setModalHeight(h, false); if (h > 0) { - setStatus(1); + setStatus('open'); } } }, [statusRef.current, modalRef?.current]); @@ -54,7 +59,7 @@ export const ModalProvider = ({ children }: { children: React.ReactNode }) => { setStateWithRef(o, setOptionsState, optionsRef); }; - const setStatus = (newStatus: number) => { + const setStatus = (newStatus: ModalStatus) => { setStateWithRef(newStatus, setStatusState, statusRef); }; @@ -68,11 +73,11 @@ export const ModalProvider = ({ children }: { children: React.ReactNode }) => { config, size, }); - setStatus(3); + setStatus('opening'); }; const setModalHeight = (h: number, transition: boolean = true) => { - if (statusRef.current === 0) return; + if (statusRef.current === 'closed') return; // Ensrue transition class is removed if not transitioning. Otherwise, ensure class exists. if (transition) transitionOn(); @@ -103,7 +108,7 @@ export const ModalProvider = ({ children }: { children: React.ReactNode }) => { config: ModalConfig = {}, size = 'large' ) => { - setStatus(4); + setStatus('replacing'); setTimeout(() => { openModalWith(modal, config, size); }, 10); diff --git a/src/contexts/Modal/types.ts b/src/contexts/Modal/types.ts index 2454a58383..15e0252bba 100644 --- a/src/contexts/Modal/types.ts +++ b/src/contexts/Modal/types.ts @@ -5,8 +5,16 @@ import type { RefObject } from 'react'; import type { AnyJson } from 'types'; export type ModalSize = 'small' | 'large' | 'xl'; + +export type ModalStatus = + | 'closed' + | 'opening' + | 'open' + | 'closing' + | 'replacing'; + export interface ModalContextInterface { - setStatus: (status: number) => void; + setStatus: (status: ModalStatus) => void; openModalWith: (modal: string, options?: ModalConfig, size?: string) => void; replaceModalWith: ( modal: string, @@ -18,7 +26,7 @@ export interface ModalContextInterface { modalMaxHeight: () => number; setModalRef: (v: RefObject<HTMLDivElement>) => void; setHeightRef: (v: RefObject<HTMLDivElement>) => void; - status: number; + status: ModalStatus; modal: string; config: AnyJson; size: string; diff --git a/src/library/Help/index.tsx b/src/library/Help/index.tsx index 0a32d21216..466dd199b8 100644 --- a/src/library/Help/index.tsx +++ b/src/library/Help/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: Apache-2.0 -import { faChevronLeft, faTimes } from '@fortawesome/free-solid-svg-icons'; +import { faTimes } from '@fortawesome/free-solid-svg-icons'; import { ButtonPrimaryInvert, ModalCanvas, @@ -28,7 +28,7 @@ export const Help = () => { const { t, i18n } = useTranslation('help'); const controls = useAnimation(); const { fillVariables } = useFillVariables(); - const { setStatus, status, definition, closeHelp, setDefinition } = useHelp(); + const { setStatus, status, definition, closeHelp } = useHelp(); const onFadeIn = useCallback(async () => { await controls.start('visible'); @@ -153,14 +153,6 @@ export const Help = () => { <ModalScroll> <ModalContent> <div className="buttons"> - {definition && ( - <ButtonPrimaryInvert - lg - text={t('modal.allResources')} - iconLeft={faChevronLeft} - onClick={() => setDefinition(null)} - /> - )} <ButtonPrimaryInvert lg text={t('modal.close')} diff --git a/src/library/Modal/Close.tsx b/src/library/Modal/Close.tsx index fb17e761b5..e3c0baae36 100644 --- a/src/library/Modal/Close.tsx +++ b/src/library/Modal/Close.tsx @@ -10,7 +10,7 @@ export const Close = () => { return ( <CloseWrapper> - <button type="button" onClick={() => setStatus(2)}> + <button type="button" onClick={() => setStatus('closing')}> <CrossSVG style={{ width: '1.25rem', height: '1.25rem' }} /> </button> </CloseWrapper> diff --git a/src/library/Modal/Title.tsx b/src/library/Modal/Title.tsx index 73893a12b4..5144a33b48 100644 --- a/src/library/Modal/Title.tsx +++ b/src/library/Modal/Title.tsx @@ -49,7 +49,7 @@ export const Title = ({ </h2> </div> <div> - <button type="button" onClick={() => setStatus(2)}> + <button type="button" onClick={() => setStatus('closing')}> <CrossSVG style={{ width: '1.25rem', height: '1.25rem' }} /> </button> </div> diff --git a/src/library/Overlay/index.tsx b/src/library/Overlay/index.tsx index 61a4828509..e0ffe8134c 100644 --- a/src/library/Overlay/index.tsx +++ b/src/library/Overlay/index.tsx @@ -22,25 +22,26 @@ export const Overlay = () => { }; useEffect(() => { - if (modalStatus === 1) onFadeIn(); - if (modalStatus === 2) onFadeOut(); + if (modalStatus === 'open') onFadeIn(); + if (modalStatus === 'closing') onFadeOut(); }, [modalStatus]); useEffect(() => { - if (canvasStatus === 1 && modalStatus !== 1) onFadeIn(); - if (canvasStatus === 2 && modalStatus !== 1) onFadeOut(); + if (canvasStatus === 1 && modalStatus !== 'open') onFadeIn(); + if (canvasStatus === 2 && modalStatus !== 'open') onFadeOut(); }, [canvasStatus]); // Managing fade is more complex with help, as it can overlay modal and canvas. Do not fade in/out // if modal or canvas is open. (help can be opened in a modal, canvas can be summoned in an open // modal). useEffect(() => { - if (helpStatus === 1 && modalStatus !== 1 && canvasStatus !== 1) onFadeIn(); - if (helpStatus === 2 && modalStatus !== 1 && canvasStatus !== 1) + if (helpStatus === 1 && modalStatus !== 'open' && canvasStatus !== 1) + onFadeIn(); + if (helpStatus === 2 && modalStatus !== 'open' && canvasStatus !== 1) onFadeOut(); }, [helpStatus]); - if (modalStatus === 0 && helpStatus === 0 && canvasStatus === 0) { + if (modalStatus === 'closed' && helpStatus === 0 && canvasStatus === 0) { return <></>; } diff --git a/src/locale/cn/help.json b/src/locale/cn/help.json index 7a7eff2aad..d62a214799 100644 --- a/src/locale/cn/help.json +++ b/src/locale/cn/help.json @@ -400,7 +400,6 @@ "unbondingTokens": "解除您的质押" }, "modal": { - "allResources": "所有信息", "articles": "文章", "close": "关闭", "definitions": "定义", diff --git a/src/locale/en/help.json b/src/locale/en/help.json index ab1900b053..90871240c2 100644 --- a/src/locale/en/help.json +++ b/src/locale/en/help.json @@ -412,7 +412,6 @@ "unbondingTokens": "Unbonding Your Tokens" }, "modal": { - "allResources": "All Resources", "articles": "Articles", "close": "Close", "definitions": "Definitions", diff --git a/src/modals/AccountPoolRoles/index.tsx b/src/modals/AccountPoolRoles/index.tsx index 22cdd64eda..fbf17f055a 100644 --- a/src/modals/AccountPoolRoles/index.tsx +++ b/src/modals/AccountPoolRoles/index.tsx @@ -66,7 +66,7 @@ const Button = ({ item, poolId }: { item: string[]; poolId: string }) => { disabled={false} onClick={() => { setSelectedPoolId(poolId); - setStatus(2); + setStatus('closing'); }} > <div className="icon"> diff --git a/src/modals/Accounts/Account.tsx b/src/modals/Accounts/Account.tsx index ab59a5d196..d872cbe230 100644 --- a/src/modals/Accounts/Account.tsx +++ b/src/modals/Accounts/Account.tsx @@ -66,7 +66,7 @@ export const AccountButton = ({ if (!imported) return; connectToAccount(getAccount(connectTo)); setActiveProxy(proxyType ? { address: connectProxy, proxyType } : null); - setStatus(2); + setStatus('closing'); }; return ( diff --git a/src/modals/Accounts/index.tsx b/src/modals/Accounts/index.tsx index 575fdf3e87..b32732778a 100644 --- a/src/modals/Accounts/index.tsx +++ b/src/modals/Accounts/index.tsx @@ -115,7 +115,7 @@ export const Accounts = () => { }, [accounts]); useEffectIgnoreInitial(() => { - if (modalStatus === 1) { + if (modalStatus === 'open') { setResize(); } }, [activeAccount, accounts, bondedAccounts, balances, ledgers, extensions]); diff --git a/src/modals/BalanceTest/index.tsx b/src/modals/BalanceTest/index.tsx index c35d7b787d..998f263b1c 100644 --- a/src/modals/BalanceTest/index.tsx +++ b/src/modals/BalanceTest/index.tsx @@ -49,7 +49,7 @@ export const BalanceTest = () => { from: activeAccount, shouldSubmit: true, callbackSubmit: () => { - setModalStatus(2); + setModalStatus('closing'); }, callbackInBlock: () => {}, }); diff --git a/src/modals/Bond/index.tsx b/src/modals/Bond/index.tsx index d47765954f..759cfe4543 100644 --- a/src/modals/Bond/index.tsx +++ b/src/modals/Bond/index.tsx @@ -112,7 +112,7 @@ export const Bond = () => { from: activeAccount, shouldSubmit: bondValid, callbackSubmit: () => { - setModalStatus(2); + setModalStatus('closing'); }, callbackInBlock: () => {}, }); diff --git a/src/modals/ChangeNominations/index.tsx b/src/modals/ChangeNominations/index.tsx index 82122148c6..2c53f600b8 100644 --- a/src/modals/ChangeNominations/index.tsx +++ b/src/modals/ChangeNominations/index.tsx @@ -102,7 +102,7 @@ export const ChangeNominations = () => { from: signingAccount, shouldSubmit: valid, callbackSubmit: () => { - setModalStatus(2); + setModalStatus('closing'); // if removing a subset of nominations, reset selected list if (provider) { diff --git a/src/modals/ChangePoolRoles/index.tsx b/src/modals/ChangePoolRoles/index.tsx index 1cf6587f7e..aecda7eec0 100644 --- a/src/modals/ChangePoolRoles/index.tsx +++ b/src/modals/ChangePoolRoles/index.tsx @@ -45,7 +45,7 @@ export const ChangePoolRoles = () => { from: activeAccount, shouldSubmit: true, callbackSubmit: () => { - setModalStatus(2); + setModalStatus('closing'); }, callbackInBlock: () => { // manually update bondedPools with new pool roles diff --git a/src/modals/ChooseLanguage/index.tsx b/src/modals/ChooseLanguage/index.tsx index 2807e894cb..4f3a425ceb 100644 --- a/src/modals/ChooseLanguage/index.tsx +++ b/src/modals/ChooseLanguage/index.tsx @@ -31,7 +31,7 @@ export const ChooseLanguage = () => { type="button" onClick={() => { changeLanguage(code, i18n); - setStatus(2); + setStatus('closing'); }} > {label} diff --git a/src/modals/ClaimReward/index.tsx b/src/modals/ClaimReward/index.tsx index a8c3e7c6a2..3a210ed176 100644 --- a/src/modals/ClaimReward/index.tsx +++ b/src/modals/ClaimReward/index.tsx @@ -65,7 +65,7 @@ export const ClaimReward = () => { from: activeAccount, shouldSubmit: valid, callbackSubmit: () => { - setModalStatus(2); + setModalStatus('closing'); }, callbackInBlock: () => {}, }); diff --git a/src/modals/DismissTips/index.tsx b/src/modals/DismissTips/index.tsx index d91ad204c4..18518acf9d 100644 --- a/src/modals/DismissTips/index.tsx +++ b/src/modals/DismissTips/index.tsx @@ -32,7 +32,7 @@ export const DismissTips = () => { text={t('module.disableTips')} onClick={() => { togglePlugin('tips'); - setStatus(2); + setStatus('closing'); }} /> </div> diff --git a/src/modals/JoinPool/index.tsx b/src/modals/JoinPool/index.tsx index e9db97042f..986647e194 100644 --- a/src/modals/JoinPool/index.tsx +++ b/src/modals/JoinPool/index.tsx @@ -91,7 +91,7 @@ export const JoinPool = () => { from: activeAccount, shouldSubmit: bondValid, callbackSubmit: () => { - setModalStatus(2); + setModalStatus('closing'); setActiveTab(0); }, callbackInBlock: async () => { diff --git a/src/modals/ManageFastUnstake/index.tsx b/src/modals/ManageFastUnstake/index.tsx index a8c31bf833..1e721c49f9 100644 --- a/src/modals/ManageFastUnstake/index.tsx +++ b/src/modals/ManageFastUnstake/index.tsx @@ -95,7 +95,7 @@ export const ManageFastUnstake = () => { shouldSubmit: valid, callbackSubmit: () => {}, callbackInBlock: () => { - setStatus(2); + setStatus('closing'); }, }); diff --git a/src/modals/ManagePool/Forms/ClaimCommission.tsx b/src/modals/ManagePool/Forms/ClaimCommission.tsx index 78c58a2f07..9764554df5 100644 --- a/src/modals/ManagePool/Forms/ClaimCommission.tsx +++ b/src/modals/ManagePool/Forms/ClaimCommission.tsx @@ -53,7 +53,7 @@ export const ClaimCommission = ({ setSection }: any) => { from: activeAccount, shouldSubmit: true, callbackSubmit: () => { - setModalStatus(2); + setModalStatus('closing'); }, callbackInBlock: () => {}, }); diff --git a/src/modals/ManagePool/Forms/Commission.tsx b/src/modals/ManagePool/Forms/Commission.tsx index 6ca4eb3520..bdf10c20fe 100644 --- a/src/modals/ManagePool/Forms/Commission.tsx +++ b/src/modals/ManagePool/Forms/Commission.tsx @@ -314,7 +314,7 @@ export const Commission = ({ setSection, incrementCalculateHeight }: any) => { from: activeAccount, shouldSubmit: true, callbackSubmit: () => { - setModalStatus(2); + setModalStatus('closing'); }, callbackInBlock: () => { const pool = getBondedPool(poolId); diff --git a/src/modals/ManagePool/Forms/LeavePool.tsx b/src/modals/ManagePool/Forms/LeavePool.tsx index b4adf168cc..2761879ac4 100644 --- a/src/modals/ManagePool/Forms/LeavePool.tsx +++ b/src/modals/ManagePool/Forms/LeavePool.tsx @@ -98,7 +98,7 @@ export const LeavePool = ({ setSection }: any) => { from: activeAccount, shouldSubmit: bondValid, callbackSubmit: () => { - setModalStatus(2); + setModalStatus('closing'); }, callbackInBlock: () => {}, }); diff --git a/src/modals/ManagePool/Forms/SetClaimPermission.tsx b/src/modals/ManagePool/Forms/SetClaimPermission.tsx index 7e4495c63d..916acdc9c3 100644 --- a/src/modals/ManagePool/Forms/SetClaimPermission.tsx +++ b/src/modals/ManagePool/Forms/SetClaimPermission.tsx @@ -59,7 +59,7 @@ export const SetClaimPermission = ({ setSection, section }: any) => { from: activeAccount, shouldSubmit: true, callbackSubmit: () => { - setModalStatus(2); + setModalStatus('closing'); }, callbackInBlock: () => {}, }); diff --git a/src/modals/ManagePool/Forms/SetMetadata.tsx b/src/modals/ManagePool/Forms/SetMetadata.tsx index 565eb4ec25..a119971ac6 100644 --- a/src/modals/ManagePool/Forms/SetMetadata.tsx +++ b/src/modals/ManagePool/Forms/SetMetadata.tsx @@ -62,7 +62,7 @@ export const SetMetadata = ({ setSection, section }: any) => { from: activeAccount, shouldSubmit: true, callbackSubmit: () => { - setModalStatus(2); + setModalStatus('closing'); }, callbackInBlock: () => {}, }); diff --git a/src/modals/ManagePool/Forms/SetState.tsx b/src/modals/ManagePool/Forms/SetState.tsx index d048b31f3e..092f215588 100644 --- a/src/modals/ManagePool/Forms/SetState.tsx +++ b/src/modals/ManagePool/Forms/SetState.tsx @@ -100,7 +100,7 @@ export const SetState = ({ setSection, task }: any) => { from: activeAccount, shouldSubmit: true, callbackSubmit: () => { - setModalStatus(2); + setModalStatus('closing'); }, callbackInBlock: () => { // reflect updated state in `bondedPools` list. diff --git a/src/modals/Networks/index.tsx b/src/modals/Networks/index.tsx index f05c194ce7..e2494a0341 100644 --- a/src/modals/Networks/index.tsx +++ b/src/modals/Networks/index.tsx @@ -57,7 +57,7 @@ export const Networks = () => { onClick={() => { if (networkKey !== key) { switchNetwork(key, isLightClient); - setStatus(0); + setStatus('closing'); } }} > @@ -90,7 +90,7 @@ export const Networks = () => { type="button" onClick={() => { switchNetwork(networkKey as NetworkName, false); - setStatus(0); + setStatus('closing'); }} > <h3>RPC</h3> @@ -102,7 +102,7 @@ export const Networks = () => { type="button" onClick={() => { switchNetwork(networkKey as NetworkName, true); - setStatus(0); + setStatus('closing'); }} > <h3>{t('lightClient')}</h3> diff --git a/src/modals/Nominate/index.tsx b/src/modals/Nominate/index.tsx index 17fe3f80ef..f6b12317f0 100644 --- a/src/modals/Nominate/index.tsx +++ b/src/modals/Nominate/index.tsx @@ -70,7 +70,7 @@ export const Nominate = () => { from: controller, shouldSubmit: valid, callbackSubmit: () => { - setModalStatus(2); + setModalStatus('closing'); }, callbackInBlock: () => {}, }); diff --git a/src/modals/NominateFromFavorites/index.tsx b/src/modals/NominateFromFavorites/index.tsx index 24e76e87e8..bc05f4ea62 100644 --- a/src/modals/NominateFromFavorites/index.tsx +++ b/src/modals/NominateFromFavorites/index.tsx @@ -119,7 +119,7 @@ export const NominateFromFavorites = () => { from: signingAccount, shouldSubmit: valid, callbackSubmit: () => { - setModalStatus(2); + setModalStatus('closing'); }, callbackInBlock: () => {}, }); diff --git a/src/modals/NominatePool/index.tsx b/src/modals/NominatePool/index.tsx index 0d80fb1046..cc51f70032 100644 --- a/src/modals/NominatePool/index.tsx +++ b/src/modals/NominatePool/index.tsx @@ -57,7 +57,7 @@ export const NominatePool = () => { from: activeAccount, shouldSubmit: valid, callbackSubmit: () => { - setModalStatus(2); + setModalStatus('closing'); }, callbackInBlock: () => {}, }); diff --git a/src/modals/SelectFavorites/index.tsx b/src/modals/SelectFavorites/index.tsx index 0cc79f2a53..2c60b7fbff 100644 --- a/src/modals/SelectFavorites/index.tsx +++ b/src/modals/SelectFavorites/index.tsx @@ -54,7 +54,7 @@ export const SelectFavorites = () => { if (!selectedFavorites.length) return; const newNominations = [...nominations].concat(...selectedFavorites); generateNominationsCallback(newNominations); - setStatus(0); + setStatus('closing'); }; const totalAfterSelection = nominations.length + selectedFavorites.length; diff --git a/src/modals/Unbond/index.tsx b/src/modals/Unbond/index.tsx index 0e19d382af..e1bf7da799 100644 --- a/src/modals/Unbond/index.tsx +++ b/src/modals/Unbond/index.tsx @@ -122,7 +122,7 @@ export const Unbond = () => { from: signingAccount, shouldSubmit: bondValid, callbackSubmit: () => { - setModalStatus(2); + setModalStatus('closing'); }, callbackInBlock: () => {}, }); diff --git a/src/modals/UnbondPoolMember/index.tsx b/src/modals/UnbondPoolMember/index.tsx index 4db8892ab2..890e33f8e6 100644 --- a/src/modals/UnbondPoolMember/index.tsx +++ b/src/modals/UnbondPoolMember/index.tsx @@ -89,7 +89,7 @@ export const UnbondPoolMember = () => { from: activeAccount, shouldSubmit: bondValid, callbackSubmit: () => { - setModalStatus(2); + setModalStatus('closing'); }, callbackInBlock: () => {}, }); diff --git a/src/modals/UnlockChunks/Forms.tsx b/src/modals/UnlockChunks/Forms.tsx index 9df7fd63fa..4830ea9e1a 100644 --- a/src/modals/UnlockChunks/Forms.tsx +++ b/src/modals/UnlockChunks/Forms.tsx @@ -83,7 +83,7 @@ export const Forms = forwardRef( from: signingAccount, shouldSubmit: valid, callbackSubmit: () => { - setModalStatus(2); + setModalStatus('closing'); }, callbackInBlock: () => { // if pool is being closed, remove from static lists diff --git a/src/modals/Unstake/index.tsx b/src/modals/Unstake/index.tsx index b03cadddcc..321945f9df 100644 --- a/src/modals/Unstake/index.tsx +++ b/src/modals/Unstake/index.tsx @@ -104,7 +104,7 @@ export const Unstake = () => { from: controller, shouldSubmit: bondValid, callbackSubmit: () => { - setModalStatus(2); + setModalStatus('closing'); }, callbackInBlock: () => {}, }); diff --git a/src/modals/UpdateController/index.tsx b/src/modals/UpdateController/index.tsx index 20142608af..a6c538102c 100644 --- a/src/modals/UpdateController/index.tsx +++ b/src/modals/UpdateController/index.tsx @@ -42,7 +42,7 @@ export const UpdateController = () => { from: activeAccount, shouldSubmit: true, callbackSubmit: () => { - setModalStatus(2); + setModalStatus('closing'); }, callbackInBlock: () => {}, }); diff --git a/src/modals/UpdatePayee/index.tsx b/src/modals/UpdatePayee/index.tsx index dd56fe06bf..7ae8610629 100644 --- a/src/modals/UpdatePayee/index.tsx +++ b/src/modals/UpdatePayee/index.tsx @@ -90,7 +90,7 @@ export const UpdatePayee = () => { from: controller, shouldSubmit: isComplete(), callbackSubmit: () => { - setModalStatus(2); + setModalStatus('closing'); }, callbackInBlock: () => {}, }); diff --git a/src/modals/UpdateReserve/index.tsx b/src/modals/UpdateReserve/index.tsx index 0a13a27124..fba9e554d9 100644 --- a/src/modals/UpdateReserve/index.tsx +++ b/src/modals/UpdateReserve/index.tsx @@ -141,7 +141,7 @@ export const UpdateReserve = () => { <ButtonPrimaryInvert text={t('done')} onClick={() => { - setStatus(2); + setStatus('closing'); }} disabled={!accountHasSigner(activeAccount)} /> diff --git a/src/modals/WithdrawPoolMember/index.tsx b/src/modals/WithdrawPoolMember/index.tsx index e8da946418..466b460b36 100644 --- a/src/modals/WithdrawPoolMember/index.tsx +++ b/src/modals/WithdrawPoolMember/index.tsx @@ -70,7 +70,7 @@ export const WithdrawPoolMember = () => { from: activeAccount, shouldSubmit: valid, callbackSubmit: () => { - setModalStatus(2); + setModalStatus('closing'); }, callbackInBlock: () => { // remove the pool member from context if no more funds bonded diff --git a/src/modals/index.tsx b/src/modals/index.tsx index e29f4b5f95..95e4d04905 100644 --- a/src/modals/index.tsx +++ b/src/modals/index.tsx @@ -64,7 +64,7 @@ export const Modal = () => { const onOutClose = async () => { await controls.start('out'); - setStatus(0); + setStatus('closed'); }; const onIn = async () => { await controls.start('in'); @@ -80,7 +80,7 @@ export const Modal = () => { }; const handleResize = () => { - if (status !== 1 || config?.disableWindowResize) return; + if (status !== 'open' || config?.disableWindowResize) return; let h = modalRef.current?.clientHeight ?? 0; h = h > maxHeight ? maxHeight : h; @@ -89,20 +89,20 @@ export const Modal = () => { // Control on modal status change. useEffect(() => { - if (status === 1) onIn(); - if (status === 2) onOutClose(); + if (status === 'open') onIn(); + if (status === 'closing') onOutClose(); }, [status]); // Control on canvas status change. useEffect(() => { - if (canvasStatus === 1) if (status === 1) onOut(); - if (canvasStatus === 2) if (status === 1) onIn(); + if (canvasStatus === 1) if (status === 'open') onOut(); + if (canvasStatus === 2) if (status === 'open') onIn(); }, [canvasStatus]); // Control dim help status change. useEffect(() => { - if (helpStatus === 1) if (status === 1) onOut(); - if (helpStatus === 2) if (status === 1) onIn(); + if (helpStatus === 1) if (status === 'open') onOut(); + if (helpStatus === 2) if (status === 'open') onIn(); }, [helpStatus]); // resize modal on status or resize change @@ -123,7 +123,7 @@ export const Modal = () => { setHeightRef(heightRef); }, [modalRef?.current, heightRef?.current]); - if (status === 0) { + if (status === 'closed') { return <></>; } @@ -147,13 +147,13 @@ export const Modal = () => { return ( <> - {status !== 4 ? ( + {status !== 'replacing' ? ( <ModalContainer initial={initial} animate={controls} transition={transition} variants={variants} - style={{ opacity: status === 3 ? 0 : 1 }} + style={{ opacity: status === 'opening' ? 0 : 1 }} > <div> <ModalHeight @@ -214,7 +214,7 @@ export const Modal = () => { type="button" className="close" onClick={() => { - setStatus(2); + setStatus('closing'); }} >   From aaa0a7ff015265d82e3d7295f8692ec03de1a568 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sun, 6 Aug 2023 23:14:15 +0700 Subject: [PATCH 130/435] transition help definition height --- src/library/Help/Items/ActiveDefinition.tsx | 22 ++++++++ src/library/Help/Items/Definition.tsx | 56 ++++++++++++-------- src/library/Help/Wrappers.ts | 57 ++++++++++++--------- src/library/Help/index.tsx | 10 +--- 4 files changed, 91 insertions(+), 54 deletions(-) create mode 100644 src/library/Help/Items/ActiveDefinition.tsx diff --git a/src/library/Help/Items/ActiveDefinition.tsx b/src/library/Help/Items/ActiveDefinition.tsx new file mode 100644 index 0000000000..9373befae0 --- /dev/null +++ b/src/library/Help/Items/ActiveDefinition.tsx @@ -0,0 +1,22 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { DefinitionWrapper } from '../Wrappers'; + +export const ActiveDefinition = ({ + description, +}: { + description: string[]; +}) => { + return ( + <DefinitionWrapper> + <div> + {description.map((item: any, index: number) => ( + <h4 key={`inner_def_${index}`} className="definition"> + {item} + </h4> + ))} + </div> + </DefinitionWrapper> + ); +}; diff --git a/src/library/Help/Items/Definition.tsx b/src/library/Help/Items/Definition.tsx index ccc06b120a..5741064ff3 100644 --- a/src/library/Help/Items/Definition.tsx +++ b/src/library/Help/Items/Definition.tsx @@ -1,32 +1,46 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: Apache-2.0 -import { useState } from 'react'; +import type { RefObject } from 'react'; +import { useEffect, useRef, useState } from 'react'; import { DefinitionWrapper } from '../Wrappers'; -export const Definition = ({ title, description, open: _open }: any) => { - const [open, setOpen] = useState(_open || false); +export const Definition = ({ title, description, open: o }: any) => { + // Store whether the definition is open or not. + const [open, setOpen] = useState(o || false); + + // Store the current height of the definition content. + const [height, setHeight] = useState<number>(0); + + const contentRef: RefObject<HTMLDivElement> = useRef(null); + + useEffect(() => { + const h = contentRef?.current?.clientHeight || 0; + setHeight(h); + }, [open]); return ( <DefinitionWrapper> - <div> - {!_open ? ( - <button onClick={() => setOpen(!open)} type="button"> - <h2> - {title} - <span>{open ? '-' : '+'}</span> - </h2> - </button> - ) : null} - {open ? ( - <> - {description.map((item: any, index: number) => ( - <h4 key={`inner_def_${index}`} className="definition"> - {item} - </h4> - ))} - </> - ) : null} + {!o ? ( + <button onClick={() => setOpen(!open)} type="button"> + <h2> + {title} + <span>{open ? '-' : '+'}</span> + </h2> + </button> + ) : null} + <div style={{ height }}> + <div className="content" ref={contentRef}> + {open ? ( + <> + {description.map((item: any, index: number) => ( + <h4 key={`inner_def_${index}`} className="definition"> + {item} + </h4> + ))} + </> + ) : null} + </div> </div> </DefinitionWrapper> ); diff --git a/src/library/Help/Wrappers.ts b/src/library/Help/Wrappers.ts index 1a290ba84c..6ea644af23 100644 --- a/src/library/Help/Wrappers.ts +++ b/src/library/Help/Wrappers.ts @@ -40,45 +40,52 @@ export const DefinitionWrapper = styled(motion.div)` border-radius: 1.5rem; display: flex; flex-flow: row wrap; - align-items: center; flex: 1; - position: relative; overflow: hidden; margin-bottom: 1.25rem; padding: 1.5rem 1.5rem 0 1.5rem; - transition: all 0.2s; width: 100%; button { padding: 0; - } + h2 { + margin: 0 0 1.5rem 0; + display: flex; + flex-flow: row wrap; + align-items: center; - h2 { - margin: 0 0 1.5rem 0; - display: flex; - flex-flow: row wrap; - align-items: center; - > span { - color: var(--text-color-secondary); - margin-left: 0.75rem; - opacity: 0.75; - font-size: 1.1rem; + > span { + color: var(--text-color-secondary); + margin-left: 0.75rem; + opacity: 0.75; + font-size: 1.1rem; + } } } - h4 { - font-family: InterSemiBold, sans-serif; - margin-bottom: 1.15rem; - } + > div { + position: relative; + transition: height 0.4s cubic-bezier(0.1, 1, 0.2, 1); + width: 100%; - p { - color: var(--text-color-primary); - margin: 0.5rem 0 0 0; - text-align: left; - } + > .content { + position: absolute; + } + + h4 { + font-family: InterSemiBold, sans-serif; + margin-bottom: 1.15rem; + } - p.icon { - opacity: 0.5; + p { + color: var(--text-color-primary); + margin: 0.5rem 0 0 0; + text-align: left; + } + + p.icon { + opacity: 0.5; + } } `; diff --git a/src/library/Help/index.tsx b/src/library/Help/index.tsx index 466dd199b8..b28fa045e3 100644 --- a/src/library/Help/index.tsx +++ b/src/library/Help/index.tsx @@ -23,6 +23,7 @@ import type { import { useFillVariables } from 'library/Hooks/useFillVariables'; import { Definition } from './Items/Definition'; import { External } from './Items/External'; +import { ActiveDefinition } from './Items/ActiveDefinition'; export const Help = () => { const { t, i18n } = useTranslation('help'); @@ -167,14 +168,7 @@ export const Help = () => { </h1> {activeDefinition !== null && ( - <> - <Definition - open - onClick={() => {}} - title={activeDefinition?.title} - description={activeDefinition?.description} - /> - </> + <ActiveDefinition description={activeDefinition?.description} /> )} {definitions.length > 0 && ( From 80255c9b7c46ee7cea57606ee96f89c928d8a406 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sun, 6 Aug 2023 23:15:50 +0700 Subject: [PATCH 131/435] lint --- .scripts/localeOrderKeys.cjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.scripts/localeOrderKeys.cjs b/.scripts/localeOrderKeys.cjs index cf3d9977d6..5367a080c5 100644 --- a/.scripts/localeOrderKeys.cjs +++ b/.scripts/localeOrderKeys.cjs @@ -39,4 +39,4 @@ for (const lng of languages) { }); }); }); -} \ No newline at end of file +} From 1341f15935ff634b2d0fca0deee73dea92c3da56 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Mon, 7 Aug 2023 10:22:40 +0700 Subject: [PATCH 132/435] bump core-ui --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index d14544fc76..a7104faf78 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "@polkadot/util": "^12.1.1", "@polkadot/util-crypto": "12.3.2", "@polkadotcloud/community": "0.1.2", - "@polkadotcloud/core-ui": "^0.3.78", + "@polkadotcloud/core-ui": "^0.3.79", "@polkadotcloud/react-odometer": "^0.1.17", "@polkadotcloud/themes": "^0.1.3", "@polkadotcloud/utils": "^0.2.22", diff --git a/yarn.lock b/yarn.lock index 8a0c0f0286..a0694b09ab 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1832,10 +1832,10 @@ resolved "https://registry.npmjs.org/@polkadotcloud/community/-/community-0.1.2.tgz#d693b89d42ba4ac70abf1c61cfb6b0667ad8130f" integrity sha512-vKJXcCTonXolrd3tN8lbta4Qp69XR6yzU/BM1FOMfiA6C2Q2oGDVYBiTL2BOi8XLXWzsu3SaagG4WulO9ZlPSg== -"@polkadotcloud/core-ui@^0.3.78": - version "0.3.78" - resolved "https://registry.npmjs.org/@polkadotcloud/core-ui/-/core-ui-0.3.78.tgz#20b646311763153f18ca04e849838397a1babdae" - integrity sha512-muPp/Su8BdV3kGBz4Zmo0GI12AfnRkCHqy8tCm+VOMXzLbY/uHVkLuwq/RsDX5qM602Z8WrIa1a1u8jN6JHgvg== +"@polkadotcloud/core-ui@^0.3.79": + version "0.3.79" + resolved "https://registry.npmjs.org/@polkadotcloud/core-ui/-/core-ui-0.3.79.tgz#6d791d168cc93629f92dde34b165a6de40e2250d" + integrity sha512-ru4fBMVRDUGkbxZvo4FutPmjHfKcPev/JLLSycn3o8I7gDuFZEuZUCq1OacFB5GLNNthPND0KUU2t4GmrKyWLg== "@polkadotcloud/react-odometer@^0.1.17": version "0.1.17" From de9a6ac5a93a95fc31bfdd61e15140150f64236e Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Mon, 7 Aug 2023 10:58:20 +0700 Subject: [PATCH 133/435] no-underscore-dangle --- .eslintrc.json | 1 - src/contexts/Connect/Utils.ts | 11 +-- src/contexts/Identities/index.tsx | 40 ++++---- src/contexts/Notifications/index.tsx | 14 +-- src/contexts/Pools/BondedPools/index.tsx | 55 +++++------ src/contexts/Pools/PoolMembers/index.tsx | 42 ++++---- src/contexts/Validators/index.tsx | 14 +-- src/library/Form/Unbond/UnbondFeedback.tsx | 7 +- src/library/GenerateNominations/index.tsx | 6 +- .../GenerateNominations/useFetchMethods.tsx | 95 +++++++++---------- src/library/Help/index.tsx | 10 +- src/library/Hooks/usePrices/index.tsx | 6 +- src/library/ListItem/Labels/PoolBonded.tsx | 6 +- src/library/QRCode/Scan.tsx | 11 ++- src/library/QRCode/ScanSignature.tsx | 4 +- src/library/SideMenu/Main.tsx | 22 ++--- src/modals/NominateFromFavorites/index.tsx | 13 +-- src/modals/SelectFavorites/index.tsx | 13 +-- src/modals/UnlockChunks/Overview.tsx | 4 +- src/modals/ValidatorMetrics/index.tsx | 3 +- .../Nominate/Active/Nominations/index.tsx | 7 +- src/pages/Overview/StakeStatus/Tips/index.tsx | 13 ++- src/pages/Pools/Home/Favorites/index.tsx | 6 +- 23 files changed, 185 insertions(+), 218 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index a0e6607957..30e4ee2c52 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -43,7 +43,6 @@ "no-param-reassign": "off", "no-plusplus": "off", "no-continue": "off", - "no-underscore-dangle": "off", "no-restricted-syntax": "off", "@typescript-eslint/no-empty-function": "off", "no-use-before-define": "off", diff --git a/src/contexts/Connect/Utils.ts b/src/contexts/Connect/Utils.ts index 92e439d5fa..d90f28145a 100644 --- a/src/contexts/Connect/Utils.ts +++ b/src/contexts/Connect/Utils.ts @@ -63,14 +63,11 @@ export const extensionIsLocal = (id: string) => { export const getActiveAccountLocal = (network: Network) => { const keyring = new Keyring(); keyring.setSS58Format(network.ss58); - let _activeAccount = localStorageOrDefault( - `${network.name}_active_account`, - null - ); - if (_activeAccount !== null) { - _activeAccount = keyring.addFromAddress(_activeAccount).address; + let account = localStorageOrDefault(`${network.name}_active_account`, null); + if (account !== null) { + account = keyring.addFromAddress(account).address; } - return _activeAccount; + return account; }; // gets local external accounts, formatting their addresses diff --git a/src/contexts/Identities/index.tsx b/src/contexts/Identities/index.tsx index dfbeedc491..1a65e4d9ae 100644 --- a/src/contexts/Identities/index.tsx +++ b/src/contexts/Identities/index.tsx @@ -102,12 +102,10 @@ export const IdentitiesProvider = ({ for (let i = 0; i < _identities.length; i++) { identities.push(_identities[i].toHuman()); } - const _batchesUpdated = Object.assign( - identitiesMetaBatchesRef.current - ); - _batchesUpdated[key].identities = identities; + const updated = Object.assign(identitiesMetaBatchesRef.current); + updated[key].identities = identities; setStateWithRef( - { ..._batchesUpdated }, + { ...updated }, setIdentitiesMetaBatch, identitiesMetaBatchesRef ); @@ -119,15 +117,15 @@ export const IdentitiesProvider = ({ const subscribeToSuperIdentities = async (addr: string[]) => { const unsub = await api.query.identity.superOf.multi<AnyApi>( addr, - async (_supers) => { + async (result) => { // determine where supers exist const supers: AnyApi = []; const supersWithIdentity: AnyApi = []; - for (let i = 0; i < _supers.length; i++) { - const _super = _supers[i].toHuman(); - supers.push(_super); - if (_super !== null) { + for (let i = 0; i < result.length; i++) { + const item = result[i].toHuman(); + supers.push(item); + if (item !== null) { supersWithIdentity.push(i); } } @@ -142,20 +140,18 @@ export const IdentitiesProvider = ({ query, (_identities) => { for (let j = 0; j < _identities.length; j++) { - const _identity = _identities[j].toHuman(); + const identity = _identities[j].toHuman(); // inject identity into super array - supers[supersWithIdentity[j]].identity = _identity; + supers[supersWithIdentity[j]].identity = identity; } } ) )(); - const _batchesUpdated = Object.assign( - identitiesMetaBatchesRef.current - ); - _batchesUpdated[key].supers = supers; + const updated = Object.assign(identitiesMetaBatchesRef.current); + updated[key].supers = supers; setStateWithRef( - { ..._batchesUpdated }, + { ...updated }, setIdentitiesMetaBatch, identitiesMetaBatchesRef ); @@ -176,12 +172,12 @@ export const IdentitiesProvider = ({ * Helper function to add mataBatch unsubs by key. */ const addMetaBatchUnsubs = (key: string, unsubs: AnyApi) => { - const _unsubs = identitiesSubsRef.current; - const _keyUnsubs = _unsubs[key] ?? []; + const identityUnsubs = identitiesSubsRef.current; + const keyUnsubs = identityUnsubs[key] ?? []; - _keyUnsubs.push(...unsubs); - _unsubs[key] = _keyUnsubs; - identitiesSubsRef.current = _unsubs; + keyUnsubs.push(...unsubs); + identityUnsubs[key] = keyUnsubs; + identitiesSubsRef.current = identityUnsubs; }; return ( diff --git a/src/contexts/Notifications/index.tsx b/src/contexts/Notifications/index.tsx index 809b54889a..570b9d5d17 100644 --- a/src/contexts/Notifications/index.tsx +++ b/src/contexts/Notifications/index.tsx @@ -28,23 +28,23 @@ export const NotificationsProvider = ({ _setIndex(_index); }; - const addNotification = (_n: NotificationItem) => { - const _notifications: NotificationInterface[] = [ + const addNotification = (n: NotificationItem) => { + const newNotifications: NotificationInterface[] = [ ...notificationsRef.current, ]; const newIndex: number = indexRef.current + 1; - _notifications.push({ + newNotifications.push({ index: newIndex, item: { - ..._n, + ...n, index: newIndex, }, }); setIndex(newIndex); - setStateWithRef(_notifications, setNotifications, notificationsRef); + setStateWithRef(newNotifications, setNotifications, notificationsRef); setTimeout(() => { removeNotification(newIndex); }, 3000); @@ -53,10 +53,10 @@ export const NotificationsProvider = ({ }; const removeNotification = (_index: number) => { - const _notifications = notificationsRef.current.filter( + const newNotifications = notificationsRef.current.filter( (item: NotificationInterface) => item.index !== _index ); - setStateWithRef(_notifications, setNotifications, notificationsRef); + setStateWithRef(newNotifications, setNotifications, notificationsRef); }; return ( diff --git a/src/contexts/Pools/BondedPools/index.tsx b/src/contexts/Pools/BondedPools/index.tsx index e5ec19c020..ab80a236a0 100644 --- a/src/contexts/Pools/BondedPools/index.tsx +++ b/src/contexts/Pools/BondedPools/index.tsx @@ -72,8 +72,8 @@ export const BondedPoolsProvider = ({ const fetchBondedPools = async () => { if (!api) return; - const _exposures = await api.query.nominationPools.bondedPools.entries(); - let exposures = _exposures.map(([_keys, _val]: AnyApi) => { + const result = await api.query.nominationPools.bondedPools.entries(); + let exposures = result.map(([_keys, _val]: AnyApi) => { const id = _keys.toHuman()[0]; const pool = _val.toHuman(); return getPoolWithAddresses(id, pool); @@ -153,11 +153,11 @@ export const BondedPoolsProvider = ({ // aggregate pool ids and addresses const ids = []; const addresses = []; - for (const _p of p) { - ids.push(Number(_p.id)); + for (const pool of p) { + ids.push(Number(pool.id)); - if (_p?.addresses?.stash) { - addresses.push(_p.addresses.stash); + if (pool?.addresses?.stash) { + addresses.push(pool.addresses.stash); } } @@ -179,14 +179,10 @@ export const BondedPoolsProvider = ({ for (let i = 0; i < _metadata.length; i++) { metadata.push(_metadata[i].toHuman()); } - const _batchesUpdated = Object.assign(poolMetaBatchesRef.current); - _batchesUpdated[key].metadata = metadata; - - setStateWithRef( - { ..._batchesUpdated }, - setPoolMetaBatch, - poolMetaBatchesRef - ); + const updated = Object.assign(poolMetaBatchesRef.current); + updated[key].metadata = metadata; + + setStateWithRef({ ...updated }, setPoolMetaBatch, poolMetaBatchesRef); } ); return unsub; @@ -200,13 +196,9 @@ export const BondedPoolsProvider = ({ for (let i = 0; i < _nominations.length; i++) { nominations.push(_nominations[i].toHuman()); } - const _batchesUpdated = Object.assign(poolMetaBatchesRef.current); - _batchesUpdated[key].nominations = nominations; - setStateWithRef( - { ..._batchesUpdated }, - setPoolMetaBatch, - poolMetaBatchesRef - ); + const updated = Object.assign(poolMetaBatchesRef.current); + updated[key].nominations = nominations; + setStateWithRef({ ...updated }, setPoolMetaBatch, poolMetaBatchesRef); } ); return unsub; @@ -254,12 +246,12 @@ export const BondedPoolsProvider = ({ let status = 'waiting'; if (statuses) { - for (const _status of Object.values(statuses)) { - if (_status === 'active') { + for (const childStatus of Object.values(statuses)) { + if (childStatus === 'active') { status = 'active'; break; } - if (_status === 'inactive') { + if (childStatus === 'inactive') { status = 'inactive'; } } @@ -353,16 +345,16 @@ export const BondedPoolsProvider = ({ if (!updatedPools) { return; } - const _bondedPools = bondedPools.map( - (original) => - updatedPools.find((updated) => updated.id === original.id) || original + setBondedPools( + bondedPools.map( + (original) => + updatedPools.find((updated) => updated.id === original.id) || original + ) ); - setBondedPools(_bondedPools); }; const removeFromBondedPools = (id: number) => { - const _bondedPools = bondedPools.filter((b: BondedPool) => b.id !== id); - setBondedPools(_bondedPools); + setBondedPools(bondedPools.filter((b: BondedPool) => b.id !== id)); }; // adds a record to bondedPools. @@ -372,8 +364,7 @@ export const BondedPoolsProvider = ({ const exists = bondedPools.find((b) => b.id === pool.id); if (!exists) { - const _bondedPools = bondedPools.concat(pool); - setBondedPools(_bondedPools); + setBondedPools(bondedPools.concat(pool)); } }; diff --git a/src/contexts/Pools/PoolMembers/index.tsx b/src/contexts/Pools/PoolMembers/index.tsx index 22f5cd04ce..aedc928333 100644 --- a/src/contexts/Pools/PoolMembers/index.tsx +++ b/src/contexts/Pools/PoolMembers/index.tsx @@ -169,8 +169,8 @@ export const PoolMembersProvider = ({ // aggregate member addresses const addresses = []; - for (const _p of p) { - addresses.push(_p.who); + for (const { who } of p) { + addresses.push(who); } // store batch addresses @@ -191,12 +191,10 @@ export const PoolMembersProvider = ({ for (let i = 0; i < _pools.length; i++) { pools.push(_pools[i].toHuman()); } - const _batchesUpdated = Object.assign( - poolMembersMetaBatchesRef.current - ); - _batchesUpdated[key].poolMembers = pools; + const updated = Object.assign(poolMembersMetaBatchesRef.current); + updated[key].poolMembers = pools; setStateWithRef( - { ..._batchesUpdated }, + { ...updated }, setPoolMembersMetaBatch, poolMembersMetaBatchesRef ); @@ -213,12 +211,10 @@ export const PoolMembersProvider = ({ for (let i = 0; i < _identities.length; i++) { identities.push(_identities[i].toHuman()); } - const _batchesUpdated = Object.assign( - poolMembersMetaBatchesRef.current - ); - _batchesUpdated[key].identities = identities; + const updated = Object.assign(poolMembersMetaBatchesRef.current); + updated[key].identities = identities; setStateWithRef( - { ..._batchesUpdated }, + { ...updated }, setPoolMembersMetaBatch, poolMembersMetaBatchesRef ); @@ -230,15 +226,15 @@ export const PoolMembersProvider = ({ const subscribeToSuperIdentities = async (addr: string[]) => { const unsub = await api.query.identity.superOf.multi<AnyApi>( addr, - async (_supers) => { + async (result) => { // determine where supers exist const supers: AnyApi = []; const supersWithIdentity: AnyApi = []; - for (let i = 0; i < _supers.length; i++) { - const _super = _supers[i].toHuman(); - supers.push(_super); - if (_super !== null) { + for (let i = 0; i < result.length; i++) { + const item = result[i].toHuman(); + supers.push(item); + if (item !== null) { supersWithIdentity.push(i); } } @@ -252,20 +248,18 @@ export const PoolMembersProvider = ({ query, (_identities) => { for (let j = 0; j < _identities.length; j++) { - const _identity = _identities[j].toHuman(); + const identity = _identities[j].toHuman(); // inject identity into super array - supers[supersWithIdentity[j]].identity = _identity; + supers[supersWithIdentity[j]].identity = identity; } } ); temp(); - const _batchesUpdated = Object.assign( - poolMembersMetaBatchesRef.current - ); - _batchesUpdated[key].supers = supers; + const updated = Object.assign(poolMembersMetaBatchesRef.current); + updated[key].supers = supers; setStateWithRef( - { ..._batchesUpdated }, + { ...updated }, setPoolMembersMetaBatch, poolMembersMetaBatchesRef ); diff --git a/src/contexts/Validators/index.tsx b/src/contexts/Validators/index.tsx index 518cb1ab00..baa56b3b03 100644 --- a/src/contexts/Validators/index.tsx +++ b/src/contexts/Validators/index.tsx @@ -450,9 +450,9 @@ export const ValidatorsProvider = ({ query, (_identities) => { for (let j = 0; j < _identities.length; j++) { - const _identity = _identities[j].toHuman(); + const identity = _identities[j].toHuman(); // inject identity into super array - supers[supersWithIdentity[j]].identity = _identity; + supers[supersWithIdentity[j]].identity = identity; } } ); @@ -496,9 +496,9 @@ export const ValidatorsProvider = ({ (result) => { const stake = []; - for (let _validator of result) { - _validator = _validator.toHuman(); - let others = _validator.others ?? []; + for (let validator of result) { + validator = validator.toHuman(); + let others = validator.others ?? []; // account for yourself being an additional nominator. const totalNominations = others.length + 1; @@ -528,8 +528,8 @@ export const ValidatorsProvider = ({ : 0; stake.push({ - total: _validator.total, - own: _validator.own, + total: validator.total, + own: validator.own, total_nominations: totalNominations, lowestReward, }); diff --git a/src/library/Form/Unbond/UnbondFeedback.tsx b/src/library/Form/Unbond/UnbondFeedback.tsx index 6108b6a67b..265795841b 100644 --- a/src/library/Form/Unbond/UnbondFeedback.tsx +++ b/src/library/Form/Unbond/UnbondFeedback.tsx @@ -108,8 +108,7 @@ export const UnbondFeedback = ({ // handle error updates const handleErrors = () => { const newErrors = parentErrors; - const _bond = bond.bond; - const _decimals = bond.bond.toString().split('.')[1]?.length ?? 0; + const decimals = bond.bond.toString().split('.')[1]?.length ?? 0; if (bondBn.isGreaterThan(active)) { newErrors.push(t('unbondAmount')); @@ -119,7 +118,7 @@ export const UnbondFeedback = ({ newErrors.push(t('valueTooSmall')); } - if (_decimals > units) { + if (decimals > units) { newErrors.push(`${t('bondAmountDecimals', { unit })}`); } @@ -140,7 +139,7 @@ export const UnbondFeedback = ({ newErrors.push(err); } - listenIsValid(!newErrors.length && _bond !== ''); + listenIsValid(!newErrors.length && bond.bond !== ''); setErrors(newErrors); }; diff --git a/src/library/GenerateNominations/index.tsx b/src/library/GenerateNominations/index.tsx index 3452d5382e..8d5710f7e1 100644 --- a/src/library/GenerateNominations/index.tsx +++ b/src/library/GenerateNominations/index.tsx @@ -175,11 +175,11 @@ export const GenerateNominations = ({ setSelectActive, }: any) => { removeValidatorMetaBatch(batchKey); - const _nominations = [...nominations].filter( + const newNominations = [...nominations].filter( (n: any) => !selected.map((_s: any) => _s.address).includes(n.address) ); - setNominations([..._nominations]); - updateSetters([..._nominations]); + setNominations([...newNominations]); + updateSetters([...newNominations]); setSelectActive(false); resetSelected(); }; diff --git a/src/library/GenerateNominations/useFetchMethods.tsx b/src/library/GenerateNominations/useFetchMethods.tsx index 4f4fd21678..374a91967d 100644 --- a/src/library/GenerateNominations/useFetchMethods.tsx +++ b/src/library/GenerateNominations/useFetchMethods.tsx @@ -52,100 +52,93 @@ export const useFetchMehods = () => { }; const fetchFavorites = () => { - let _favs: Validator[] = []; + let favs: Validator[] = []; if (!favoritesList) { - return _favs; + return favs; } if (favoritesList.length) { // take subset of up to 16 favorites - _favs = favoritesList.slice(0, 16); + favs = favoritesList.slice(0, 16); } - return _favs; + return favs; }; const fetchLowCommission = () => { - let _nominations = Object.assign(validators); + let filtered = Object.assign(validators); // filter validators to find active candidates - _nominations = applyFilter( + filtered = applyFilter( ['active'], - ['all_commission', 'blocked_nominations', 'missing_identity'], - _nominations, + ['all_commission', 'blockedall', 'missing_identity'], + filtered, rawBatchKey ); // order validators to find profitable candidates - _nominations = applyOrder('low_commission', _nominations); + filtered = applyOrder('low_commission', filtered); // choose shuffled subset of validators - if (_nominations.length) { - _nominations = shuffle( - _nominations.slice(0, _nominations.length * 0.5) - ).slice(0, 16); + if (filtered.length) { + filtered = shuffle(filtered.slice(0, filtered.length * 0.5)).slice(0, 16); } - return _nominations; + return filtered; }; const fetchOptimal = () => { - let _nominationsActive = Object.assign(validators); - let _nominationsWaiting = Object.assign(validators); + let active = Object.assign(validators); + let waiting = Object.assign(validators); // filter validators to find waiting candidates - _nominationsWaiting = applyFilter( + waiting = applyFilter( null, - [ - 'all_commission', - 'blocked_nominations', - 'missing_identity', - 'in_session', - ], - _nominationsWaiting, + ['all_commission', 'blockedall', 'missing_identity', 'in_session'], + waiting, rawBatchKey ); // filter validators to find active candidates - _nominationsActive = applyFilter( + active = applyFilter( ['active'], - ['all_commission', 'blocked_nominations', 'missing_identity'], - _nominationsActive, + ['all_commission', 'blockedall', 'missing_identity'], + active, rawBatchKey ); // choose shuffled subset of waiting - if (_nominationsWaiting.length) { - _nominationsWaiting = shuffle(_nominationsWaiting).slice(0, 4); + if (waiting.length) { + waiting = shuffle(waiting).slice(0, 4); } // choose shuffled subset of active - if (_nominationsWaiting.length) { - _nominationsActive = shuffle(_nominationsActive).slice(0, 12); + if (waiting.length) { + active = shuffle(active).slice(0, 12); } - return shuffle(_nominationsWaiting.concat(_nominationsActive)); + return shuffle(waiting.concat(active)); }; const available = (nominations: any) => { - const _nominations = Object.assign(validators); + const all = Object.assign(validators); - const _parachainValidators = applyFilter( + const parachainActive = applyFilter( ['active'], [ 'all_commission', - 'blocked_nominations', + 'blockedall', 'missing_identity', 'not_parachain_validator', ], - _nominations, + all, rawBatchKey ).filter( (n: any) => !nominations.find((o: any) => o.address === n.address) ); - const _activeValidators = applyFilter( + const active = applyFilter( ['active'], - ['all_commission', 'blocked_nominations', 'missing_identity'], - _nominations, + ['all_commission', 'blockedall', 'missing_identity'], + all, rawBatchKey ) .filter( @@ -153,27 +146,27 @@ export const useFetchMehods = () => { ) .filter((n: any) => !sessionParachain?.includes(n.address) || false); - const _randomValidator = applyFilter( + const random = applyFilter( null, - ['all_commission', 'blocked_nominations', 'missing_identity'], - _nominations, + ['all_commission', 'blockedall', 'missing_identity'], + all, rawBatchKey ).filter( (n: any) => !nominations.find((o: any) => o.address === n.address) ); return { - parachainValidators: _parachainValidators, - activeValidators: _activeValidators, - randomValidators: _randomValidator, + parachainValidators: parachainActive, + activeValidators: active, + randomValidators: random, }; }; const addActiveValidator = (nominations: any) => { - const _nominations = available(nominations).activeValidators; + const all = available(nominations).activeValidators; // take one validator - const validator = shuffle(_nominations).slice(0, 1)[0] || null; + const validator = shuffle(all).slice(0, 1)[0] || null; if (validator) { nominations.push(validator); } @@ -181,10 +174,10 @@ export const useFetchMehods = () => { }; const addParachainValidator = (nominations: any) => { - const _nominations = available(nominations).parachainValidators; + const all = available(nominations).parachainValidators; // take one validator - const validator = shuffle(_nominations).slice(0, 1)[0] || null; + const validator = shuffle(all).slice(0, 1)[0] || null; if (validator) { nominations.push(validator); } @@ -192,10 +185,10 @@ export const useFetchMehods = () => { }; const addRandomValidator = (nominations: any) => { - const _nominations = available(nominations).randomValidators; + const all = available(nominations).randomValidators; // take one validator - const validator = shuffle(_nominations).slice(0, 1)[0] || null; + const validator = shuffle(all).slice(0, 1)[0] || null; if (validator) { nominations.push(validator); diff --git a/src/library/Help/index.tsx b/src/library/Help/index.tsx index b28fa045e3..a8e246844f 100644 --- a/src/library/Help/index.tsx +++ b/src/library/Help/index.tsx @@ -58,14 +58,14 @@ export const Help = () => { ); } else { // get all items - let _definitions: string[] = []; - let _external: ExternalItems = []; + let definitions: string[] = []; + let external: ExternalItems = []; Object.values(HelpConfig).forEach((c) => { - _definitions = _definitions.concat([...(c.definitions || [])]); - _external = _external.concat([...(c.external || [])]); + definitions = definitions.concat([...(c.definitions || [])]); + external = external.concat([...(c.external || [])]); }); - meta = { definitions: _definitions, external: _external }; + meta = { definitions, external }; } let definitions = meta?.definitions ?? []; diff --git a/src/library/Hooks/usePrices/index.tsx b/src/library/Hooks/usePrices/index.tsx index 742bedd575..dd8a9b94fd 100644 --- a/src/library/Hooks/usePrices/index.tsx +++ b/src/library/Hooks/usePrices/index.tsx @@ -37,8 +37,7 @@ export const usePrices = () => { }; const initiatePriceInterval = async () => { - const _prices = await fetchUnitPrice(); - setPrices(_prices); + setPrices(await fetchUnitPrice()); if (priceHandle === null) { setPriceInterval(); } @@ -47,8 +46,7 @@ export const usePrices = () => { let priceHandle: any = null; const setPriceInterval = async () => { priceHandle = setInterval(async () => { - const _prices = await fetchUnitPrice(); - setPrices(_prices); + setPrices(await fetchUnitPrice()); }, 1000 * 30); }; diff --git a/src/library/ListItem/Labels/PoolBonded.tsx b/src/library/ListItem/Labels/PoolBonded.tsx index 2d2731a2a3..a3a79222d5 100644 --- a/src/library/ListItem/Labels/PoolBonded.tsx +++ b/src/library/ListItem/Labels/PoolBonded.tsx @@ -43,11 +43,9 @@ export const PoolBonded = ({ // we cannot add effect dependencies here as this needs to trigger // as soon as the component displays. (upon tab change). const handleNominationsStatus = () => { - const _nominationStatus = getNominationsStatusFromTargets( - addresses.stash, - targets + setNominationsStatus( + getNominationsStatusFromTargets(addresses.stash, targets) ); - setNominationsStatus(_nominationStatus); }; // recalculate nominations status as app syncs diff --git a/src/library/QRCode/Scan.tsx b/src/library/QRCode/Scan.tsx index cf0239c957..b2c18f1a14 100644 --- a/src/library/QRCode/Scan.tsx +++ b/src/library/QRCode/Scan.tsx @@ -23,9 +23,12 @@ const Scan = ({ }: ScanProps): React.ReactElement<ScanProps> => { const containerStyle = useMemo(() => createImgSize(size), [size]); - const _onError = useCallback((error: Error) => onError(error), [onError]); + const onErrorCallback = useCallback( + (error: Error) => onError(error), + [onError] + ); - const _onScan = useCallback( + const onScanCallback = useCallback( (data: string | null) => data && onScan(data), [onScan] ); @@ -35,8 +38,8 @@ const Scan = ({ <Reader className="ui--qr-Scan" delay={delay} - onError={_onError} - onScan={_onScan} + onError={onErrorCallback} + onScan={onScanCallback} style={style} /> </ScanWrapper> diff --git a/src/library/QRCode/ScanSignature.tsx b/src/library/QRCode/ScanSignature.tsx index 007bcacf08..4cb4f4454f 100644 --- a/src/library/QRCode/ScanSignature.tsx +++ b/src/library/QRCode/ScanSignature.tsx @@ -12,7 +12,7 @@ const ScanSignature = ({ size, style, }: ScanSignatureProps): React.ReactElement<ScanSignatureProps> => { - const _onScan = useCallback( + const onScanCallback = useCallback( (signature: string | null) => signature && onScan({ signature: `0x${signature}` }), [onScan] @@ -22,7 +22,7 @@ const ScanSignature = ({ <QrScan className={className} onError={onError} - onScan={_onScan} + onScan={onScanCallback} size={size} style={style} /> diff --git a/src/library/SideMenu/Main.tsx b/src/library/SideMenu/Main.tsx index ad628941a0..84594afea3 100644 --- a/src/library/SideMenu/Main.tsx +++ b/src/library/SideMenu/Main.tsx @@ -47,16 +47,16 @@ export const Main = () => { if (!accounts.length) return; // inject actions into menu items - const _pages = Object.assign(pageConfig.pages); - for (let i = 0; i < _pages.length; i++) { - const { uri } = _pages[i]; + const pages = Object.assign(pageConfig.pages); + for (let i = 0; i < pages.length; i++) { + const { uri } = pages[i]; // set undefined action as default - _pages[i].action = undefined; + pages[i].action = undefined; if (uri === `${BaseURL}/`) { const warning = !isSyncing && controllerDifferentToStash; if (warning) { - _pages[i].action = { + pages[i].action = { type: 'bullet', status: 'warning', }; @@ -70,20 +70,20 @@ export const Main = () => { const setupPercent = getNominatorSetupPercent(activeAccount); if (staking) { - _pages[i].action = { + pages[i].action = { type: 'text', status: 'success', text: t('active'), }; } if (warning) { - _pages[i].action = { + pages[i].action = { type: 'bullet', status: 'warning', }; } if (!staking && (onNominatorSetup || setupPercent > 0)) { - _pages[i].action = { + pages[i].action = { type: 'text', status: 'warning', text: `${setupPercent}%`, @@ -97,14 +97,14 @@ export const Main = () => { const setupPercent = getPoolSetupPercent(activeAccount); if (inPool) { - _pages[i].action = { + pages[i].action = { type: 'text', status: 'success', text: t('active'), }; } if (!inPool && (setupPercent > 0 || onPoolSetup)) { - _pages[i].action = { + pages[i].action = { type: 'text', status: 'warning', text: `${setupPercent}%`, @@ -114,7 +114,7 @@ export const Main = () => { } setPageConfig({ categories: pageConfig.categories, - pages: _pages, + pages, }); }, [ network, diff --git a/src/modals/NominateFromFavorites/index.tsx b/src/modals/NominateFromFavorites/index.tsx index bc05f4ea62..7c5dba73e7 100644 --- a/src/modals/NominateFromFavorites/index.tsx +++ b/src/modals/NominateFromFavorites/index.tsx @@ -47,13 +47,14 @@ export const NominateFromFavorites = () => { // store filtered favorites useEffect(() => { if (favoritesList) { - const _availableFavorites = favoritesList.filter( - (favorite) => - !nominations.find( - (nomination: string) => nomination === favorite.address - ) && !favorite.prefs.blocked + setAvailableFavorites( + favoritesList.filter( + (favorite) => + !nominations.find( + (nomination: string) => nomination === favorite.address + ) && !favorite.prefs.blocked + ) ); - setAvailableFavorites(_availableFavorites); } }, []); diff --git a/src/modals/SelectFavorites/index.tsx b/src/modals/SelectFavorites/index.tsx index 2c60b7fbff..27d6c3451c 100644 --- a/src/modals/SelectFavorites/index.tsx +++ b/src/modals/SelectFavorites/index.tsx @@ -29,13 +29,14 @@ export const SelectFavorites = () => { // store filtered favorites useEffect(() => { if (favoritesList) { - const _availableFavorites = favoritesList.filter( - (favorite) => - !nominations.find( - (nomination: Validator) => nomination.address === favorite.address - ) && !favorite.prefs.blocked + setAvailableFavorites( + favoritesList.filter( + (favorite) => + !nominations.find( + (nomination: Validator) => nomination.address === favorite.address + ) && !favorite.prefs.blocked + ) ); - setAvailableFavorites(_availableFavorites); } }, []); diff --git a/src/modals/UnlockChunks/Overview.tsx b/src/modals/UnlockChunks/Overview.tsx index abaa943418..8e18eb246e 100644 --- a/src/modals/UnlockChunks/Overview.tsx +++ b/src/modals/UnlockChunks/Overview.tsx @@ -41,8 +41,8 @@ export const Overview = forwardRef( let withdrawAvailable = new BigNumber(0); let totalUnbonding = new BigNumber(0); - for (const _chunk of unlocking) { - const { era, value } = _chunk; + for (const c of unlocking) { + const { era, value } = c; const left = new BigNumber(era).minus(activeEra.index); totalUnbonding = totalUnbonding.plus(value); diff --git a/src/modals/ValidatorMetrics/index.tsx b/src/modals/ValidatorMetrics/index.tsx index 9699f3b063..c371b8d84c 100644 --- a/src/modals/ValidatorMetrics/index.tsx +++ b/src/modals/ValidatorMetrics/index.tsx @@ -59,8 +59,7 @@ export const ValidatorMetrics = () => { const { width, height, minHeight } = formatSize(size, 300); const handleEraPoints = async () => { - const _list = await fetchEraPoints(address, activeEra.index); - setList(_list); + setList(await fetchEraPoints(address, activeEra.index)); }; useEffect(() => { diff --git a/src/pages/Nominate/Active/Nominations/index.tsx b/src/pages/Nominate/Active/Nominations/index.tsx index e062cccc26..aaa3297253 100644 --- a/src/pages/Nominate/Active/Nominations/index.tsx +++ b/src/pages/Nominate/Active/Nominations/index.tsx @@ -58,13 +58,12 @@ export const Nominations = ({ // callback function to stop nominating selected validators const cbStopNominatingSelected = (provider: any) => { const { selected } = provider; - const _nominations = [...nominations].filter( - (n) => !selected.map((_s: any) => _s.address).includes(n) - ); openModalWith( 'ChangeNominations', { - nominations: _nominations, + nominations: [...nominations].filter( + (n) => !selected.map((_s: any) => _s.address).includes(n) + ), provider, bondFor, }, diff --git a/src/pages/Overview/StakeStatus/Tips/index.tsx b/src/pages/Overview/StakeStatus/Tips/index.tsx index 3626046c0b..83f16ff9c2 100644 --- a/src/pages/Overview/StakeStatus/Tips/index.tsx +++ b/src/pages/Overview/StakeStatus/Tips/index.tsx @@ -73,7 +73,7 @@ export const Tips = () => { // resize callback const resizeCallback = () => { setStateWithRef(getPage(), setPage, pageRef); - setStateWithRef(getItemsPerPage(), setItemsPerPage, itemsPerPageRef); + setStateWithRef(getItemsPerPage(), setItemsPerPageState, itemsPerPageRef); }; // throttle resize callback @@ -96,16 +96,15 @@ export const Tips = () => { }, []); // store the current amount of allowed items on display - const [itemsPerPage, setItemsPerPage] = useState<number>(getItemsPerPage()); + const [itemsPerPage, setItemsPerPageState] = useState<number>( + getItemsPerPage() + ); const itemsPerPageRef = useRef(itemsPerPage); // store the current page const [page, setPage] = useState<number>(1); const pageRef = useRef(page); - const _itemsPerPage = itemsPerPageRef.current; - const _page = pageRef.current; - // accumulate segments to include in tips const segments: AnyJson = []; if (!activeAccount) { @@ -159,10 +158,10 @@ export const Tips = () => { // determine items to be displayed const end = isNetworkSyncing ? 1 - : Math.min(_page * _itemsPerPage, items.length); + : Math.min(pageRef.current * itemsPerPageRef.current, items.length); const start = isNetworkSyncing ? 1 - : _page * _itemsPerPage - (_itemsPerPage - 1); + : pageRef.current * itemsPerPageRef.current - (itemsPerPageRef.current - 1); const itemsDisplay = items.slice(start - 1, end); diff --git a/src/pages/Pools/Home/Favorites/index.tsx b/src/pages/Pools/Home/Favorites/index.tsx index 88b983afd4..e1c25d2a9a 100644 --- a/src/pages/Pools/Home/Favorites/index.tsx +++ b/src/pages/Pools/Home/Favorites/index.tsx @@ -23,16 +23,16 @@ export const PoolFavorites = () => { useEffect(() => { // map favorites to bonded pools - let _favoritesList = favorites.map((f) => { + let newFavoritesList = favorites.map((f) => { const pool = !bondedPools.find((b) => b.addresses.stash === f); if (!pool) removeFavorite(f); return pool; }); // filter not found bonded pools - _favoritesList = _favoritesList.filter((f: any) => f !== undefined); + newFavoritesList = newFavoritesList.filter((f: any) => f !== undefined); - setFavoritesList(_favoritesList); + setFavoritesList(newFavoritesList); }, [favorites]); return ( From e8a2f019db7c47e16dd3bbefd63473a4961dec84 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Mon, 7 Aug 2023 11:03:09 +0700 Subject: [PATCH 134/435] rm duplicated rule --- .eslintrc.json | 1 - 1 file changed, 1 deletion(-) diff --git a/.eslintrc.json b/.eslintrc.json index 30e4ee2c52..d4768994ea 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -47,7 +47,6 @@ "@typescript-eslint/no-empty-function": "off", "no-use-before-define": "off", "@typescript-eslint/no-explicit-any": "off", - "@typescript-eslint/no-use-before-define": "off", "import/prefer-default-export": "off", "consistent-return": "off", "no-promise-executor-return": "off", From ed7597f3a1b657a6716867445d36ceb642fe74d2 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Mon, 7 Aug 2023 11:35:22 +0700 Subject: [PATCH 135/435] activate some eslint rules, fix codebase --- .eslintrc.json | 16 +++++++----- src/contexts/Api/index.tsx | 16 +++++++----- src/contexts/Balances/index.tsx | 2 +- src/contexts/Bonded/index.tsx | 2 +- src/contexts/Extensions/index.tsx | 27 ++++++++++---------- src/contexts/Extensions/types.ts | 2 +- src/contexts/Hardware/Ledger.tsx | 2 ++ src/contexts/Pools/PoolMemberships/index.tsx | 2 +- src/contexts/Proxies/index.tsx | 2 +- src/library/Hooks/useBlockNumber/index.tsx | 7 +++-- src/library/ValidatorList/index.tsx | 9 ++++--- src/modals/Networks/index.tsx | 6 ++--- src/pages/Pools/Home/index.tsx | 2 +- 13 files changed, 52 insertions(+), 43 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index d4768994ea..0a2c0477a4 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -29,6 +29,8 @@ "unused-imports" ], "rules": { + // NOTE: These rules are being reviewed and comments justifying their deactivation will be + // added. "react/require-default-props": "off", "react/no-access-state-in-setstate": "off", "react/destructuring-assignment": "off", @@ -41,19 +43,21 @@ "react/static-property-placement": "off", "no-unused-vars": "off", "no-param-reassign": "off", - "no-plusplus": "off", - "no-continue": "off", "no-restricted-syntax": "off", "@typescript-eslint/no-empty-function": "off", "no-use-before-define": "off", "@typescript-eslint/no-explicit-any": "off", - "import/prefer-default-export": "off", - "consistent-return": "off", "no-promise-executor-return": "off", "prefer-destructuring": "off", - "@typescript-eslint/ban-ts-comment": "off", "no-nested-ternary": "off", - "no-shadow": "off", + // `continue` statements cut down on conditional nesting and improve readability where it is + // used in this project. Conditionals would further bloat the code. + "no-continue": "off", + // Unary operators are not impacting code as semi-colons are currently enforced. + "no-plusplus": "off", + // Default imports cause naming inconsistencies to imports when component names are changed. + "import/prefer-default-export": "off", + "unused-imports/no-unused-imports": "error", "@typescript-eslint/consistent-type-imports": [ "error", diff --git a/src/contexts/Api/index.tsx b/src/contexts/Api/index.tsx index e3e6f2aa4a..9a7e80aea5 100644 --- a/src/contexts/Api/index.tsx +++ b/src/contexts/Api/index.tsx @@ -140,18 +140,20 @@ export const APIProvider = ({ children }: { children: React.ReactNode }) => { // Dynamically load `Sc` when user opts to use light client. useEffectIgnoreInitial(() => { + let cancel: () => void | undefined; + if (isLightClient) { setApiStatus('connecting'); - const { promise: ScPromise, cancel } = makeCancelable( - import('@substrate/connect') - ); - ScPromise.then((Sc) => { + + const ScPromise = makeCancelable(import('@substrate/connect')); + cancel = ScPromise.cancel; + ScPromise.promise.then((Sc) => { handleLightClientConnection(Sc); }); - return () => { - cancel?.(); - }; } + return () => { + cancel?.(); + }; }, [isLightClient, network.name]); // Initialise provider event handlers when provider is set. diff --git a/src/contexts/Balances/index.tsx b/src/contexts/Balances/index.tsx index 6b3ce0eaf4..6d214e8b2e 100644 --- a/src/contexts/Balances/index.tsx +++ b/src/contexts/Balances/index.tsx @@ -80,7 +80,7 @@ export const BalancesProvider = ({ }; const handleSubscriptions = async (address: string) => { - if (!api) return; + if (!api) return undefined; const unsub = await api.queryMulti<AnyApi>( [ diff --git a/src/contexts/Bonded/index.tsx b/src/contexts/Bonded/index.tsx index b5355c4716..6aa55b4739 100644 --- a/src/contexts/Bonded/index.tsx +++ b/src/contexts/Bonded/index.tsx @@ -79,7 +79,7 @@ export const BondedProvider = ({ children }: { children: React.ReactNode }) => { // Subscribe to account, get controller and nominations. const subscribeToBondedAccount = async (address: string) => { - if (!api) return; + if (!api) return undefined; const unsub = await api.queryMulti<AnyApi>( [ diff --git a/src/contexts/Extensions/index.tsx b/src/contexts/Extensions/index.tsx index abc87c0ec6..1d88a604e0 100644 --- a/src/contexts/Extensions/index.tsx +++ b/src/contexts/Extensions/index.tsx @@ -60,20 +60,21 @@ export const ExtensionsProvider = ({ // sets an interval to listen to `window` until the // `injectedWeb3` property is present. useEffect(() => { - if (intervalInitialisedRef.current) return; - intervalInitialisedRef.current = true; - - injectedWeb3Interval = setInterval(() => { - if (++injectCounter === 10) { - handleClearInterval(false); - } else { - // if injected is present - const injectedWeb3 = (window as AnyApi)?.injectedWeb3 || null; - if (injectedWeb3 !== null) { - handleClearInterval(true); + if (!intervalInitialisedRef.current) { + intervalInitialisedRef.current = true; + + injectedWeb3Interval = setInterval(() => { + if (++injectCounter === 10) { + handleClearInterval(false); + } else { + // if injected is present + const injectedWeb3 = (window as AnyApi)?.injectedWeb3 || null; + if (injectedWeb3 !== null) { + handleClearInterval(true); + } } - } - }, 500); + }, 500); + } return () => { clearInterval(injectedWeb3Interval); }; diff --git a/src/contexts/Extensions/types.ts b/src/contexts/Extensions/types.ts index 699e4a486d..f2867d3f35 100644 --- a/src/contexts/Extensions/types.ts +++ b/src/contexts/Extensions/types.ts @@ -15,7 +15,7 @@ export interface ExtensionInjected extends ExtensionConfig { export interface ExtensionInterface { accounts: { subscribe: { - (a: { (a: ExtensionAccount[]): void }): void; + (a: { (b: ExtensionAccount[]): void }): void; }; }; provider: AnyApi; diff --git a/src/contexts/Hardware/Ledger.tsx b/src/contexts/Hardware/Ledger.tsx index 78aae3a531..3556ec6ea1 100644 --- a/src/contexts/Hardware/Ledger.tsx +++ b/src/contexts/Hardware/Ledger.tsx @@ -277,6 +277,7 @@ export const LedgerHardwareProvider = ({ body: [result], }; } + return undefined; }; // Signs a payload on device. @@ -328,6 +329,7 @@ export const LedgerHardwareProvider = ({ }, }; } + return undefined; }; // Handle an incoming new status code and persist to state. diff --git a/src/contexts/Pools/PoolMemberships/index.tsx b/src/contexts/Pools/PoolMemberships/index.tsx index 94527ecb46..db05ca4d49 100644 --- a/src/contexts/Pools/PoolMemberships/index.tsx +++ b/src/contexts/Pools/PoolMemberships/index.tsx @@ -64,7 +64,7 @@ export const PoolMembershipsProvider = ({ // subscribe to an account's pool membership const subscribeToPoolMembership = async (address: string) => { - if (!api) return; + if (!api) return undefined; const unsub = await api.queryMulti<AnyApi>( [ diff --git a/src/contexts/Proxies/index.tsx b/src/contexts/Proxies/index.tsx index f7defb94a9..4d3d6a7061 100644 --- a/src/contexts/Proxies/index.tsx +++ b/src/contexts/Proxies/index.tsx @@ -94,7 +94,7 @@ export const ProxiesProvider = ({ const delegatesRef = useRef(delegates); const subscribeToProxies = async (address: string) => { - if (!api) return; + if (!api) return undefined; const unsub = await api.queryMulti<AnyApi>( [[api.query.proxy.proxies, address]], diff --git a/src/library/Hooks/useBlockNumber/index.tsx b/src/library/Hooks/useBlockNumber/index.tsx index b375ccfd00..c2a39a03bc 100644 --- a/src/library/Hooks/useBlockNumber/index.tsx +++ b/src/library/Hooks/useBlockNumber/index.tsx @@ -17,10 +17,9 @@ export const useBlockNumber = () => { const unsub = useRef<AnyApi>(); useEffect(() => { - if (!isReady) return; - - subscribeBlockNumber(); - + if (isReady) { + subscribeBlockNumber(); + } return () => { if (unsub.current) unsub.current(); }; diff --git a/src/library/ValidatorList/index.tsx b/src/library/ValidatorList/index.tsx index 82cac4e312..c2e54e932a 100644 --- a/src/library/ValidatorList/index.tsx +++ b/src/library/ValidatorList/index.tsx @@ -159,14 +159,15 @@ export const ValidatorListInner = ({ false ); } - - return () => { + } + return () => { + if (allowFilters) { resetFilters('exclude', 'validators'); resetFilters('include', 'validators'); resetOrder('validators'); clearSearchTerm('validators'); - }; - } + } + }; }, []); // configure validator list when network is ready to fetch diff --git a/src/modals/Networks/index.tsx b/src/modals/Networks/index.tsx index e2494a0341..63b7c00668 100644 --- a/src/modals/Networks/index.tsx +++ b/src/modals/Networks/index.tsx @@ -11,7 +11,7 @@ import { NetworkList } from 'config/networks'; import { useApi } from 'contexts/Api'; import { useModal } from 'contexts/Modal'; import { Title } from 'library/Modal/Title'; -import type { NetworkName } from 'types'; +import type { AnyJson, NetworkName } from 'types'; import { ReactComponent as BraveIconSVG } from '../../img/brave-logo.svg'; import { BraveWarning, @@ -30,8 +30,8 @@ export const Networks = () => { const [braveBrowser, setBraveBrowser] = useState<boolean>(false); useEffect(() => { - // @ts-ignore - window.navigator?.brave?.isBrave().then(async (isBrave: boolean) => { + const navigator: AnyJson = window.navigator; + navigator?.brave?.isBrave().then(async (isBrave: boolean) => { setBraveBrowser(isBrave); }); }); diff --git a/src/pages/Pools/Home/index.tsx b/src/pages/Pools/Home/index.tsx index 3b8292ad10..4c89c4f766 100644 --- a/src/pages/Pools/Home/index.tsx +++ b/src/pages/Pools/Home/index.tsx @@ -59,7 +59,7 @@ export const HomeInner = () => { fetchingMemberCount.current = true; const poolDetails = await fetchPoolDetails(selectedActivePool.id); fetchingMemberCount.current = false; - return setMemberCount(poolDetails?.member_count || 0); + setMemberCount(poolDetails?.member_count || 0); } setMemberCount( getMembersOfPoolFromNode(selectedActivePool?.id ?? 0).length From 2d1913a593e27fe6afc0a7a60fd3350a6fe7c4f3 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Mon, 7 Aug 2023 11:59:39 +0700 Subject: [PATCH 136/435] unused translations --- src/locale/cn/modals.json | 1 - src/locale/en/modals.json | 1 - 2 files changed, 2 deletions(-) diff --git a/src/locale/cn/modals.json b/src/locale/cn/modals.json index a5b3d01c18..b203494bab 100644 --- a/src/locale/cn/modals.json +++ b/src/locale/cn/modals.json @@ -131,7 +131,6 @@ "noEnough": "您没有足够的可使用余额做快速解除抵押。快速解除抵押需要余额", "noFavoritesAvailable": "无收藏夹", "noFavoritesSelected": "无选中收藏夹", - "noFreeToBond": "您没有可用的 {{unit}} 可质押", "noNominationsSet": "没有提名任何人", "noNominatorRole": "您未参与任何提名池活动", "noProxyAccountsDeclared": "尚未添加任何代理帐户", diff --git a/src/locale/en/modals.json b/src/locale/en/modals.json index 06806c4d1a..4ed6210c11 100644 --- a/src/locale/en/modals.json +++ b/src/locale/en/modals.json @@ -139,7 +139,6 @@ "noEnough": "You do not have enough free balance to register for fast unstake. Fast unstake requires a deposit of", "noFavoritesAvailable": "No Favorites Available.", "noFavoritesSelected": "No Favorites Selected", - "noFreeToBond": "You have no free {{unit}} to bond.", "noNominationsSet": "You have no nominations set.", "noNominatorRole": "You do not have a nominator role in any pools.", "noProxyAccountsDeclared": "No proxy accounts have been declared.", From b1a88fec2f1508be550fbe22a95615d4285b6245 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Mon, 7 Aug 2023 11:59:57 +0700 Subject: [PATCH 137/435] resize bond / unbond modals on error length change --- src/library/Form/Bond/BondFeedback.tsx | 2 +- src/library/Form/Unbond/UnbondFeedback.tsx | 2 +- src/library/Form/types.ts | 4 ++-- src/modals/Bond/index.tsx | 10 ++++++++-- src/modals/JoinPool/index.tsx | 10 ++++++++-- src/modals/Unbond/index.tsx | 10 ++++++++-- src/pages/Nominate/Setup/Bond/index.tsx | 2 +- 7 files changed, 29 insertions(+), 11 deletions(-) diff --git a/src/library/Form/Bond/BondFeedback.tsx b/src/library/Form/Bond/BondFeedback.tsx index 3308d1baee..ba7169f07a 100644 --- a/src/library/Form/Bond/BondFeedback.tsx +++ b/src/library/Form/Bond/BondFeedback.tsx @@ -161,7 +161,7 @@ export const BondFeedback = ({ const bondValid = !newErrors.length && bond.bond !== ''; setBondDisabled(disabled); - listenIsValid(bondValid); + listenIsValid(bondValid, newErrors); setErrors(newErrors); }; diff --git a/src/library/Form/Unbond/UnbondFeedback.tsx b/src/library/Form/Unbond/UnbondFeedback.tsx index 265795841b..6b898ff155 100644 --- a/src/library/Form/Unbond/UnbondFeedback.tsx +++ b/src/library/Form/Unbond/UnbondFeedback.tsx @@ -139,7 +139,7 @@ export const UnbondFeedback = ({ newErrors.push(err); } - listenIsValid(!newErrors.length && bond.bond !== ''); + listenIsValid(!newErrors.length && bond.bond !== '', newErrors); setErrors(newErrors); }; diff --git a/src/library/Form/types.ts b/src/library/Form/types.ts index 581a8c8f54..a3621f657a 100644 --- a/src/library/Form/types.ts +++ b/src/library/Form/types.ts @@ -38,7 +38,7 @@ export interface BondFeedbackProps { defaultBond: number | null; inSetup?: boolean; joiningPool?: boolean; - listenIsValid: { (v: boolean): void } | { (): void }; + listenIsValid: { (valid: boolean, errors: string[]): void } | { (): void }; parentErrors?: string[]; disableTxFeeUpdate?: boolean; setLocalResize?: () => void; @@ -61,7 +61,7 @@ export interface UnbondFeedbackProps { bondFor: BondFor; defaultBond?: number; inSetup?: boolean; - listenIsValid: { (v: boolean): void } | { (): void }; + listenIsValid: { (valid: boolean, errors: string[]): void } | { (): void }; parentErrors?: string[]; setLocalResize?: () => void; txFees: BigNumber; diff --git a/src/modals/Bond/index.tsx b/src/modals/Bond/index.tsx index 759cfe4543..bdfa93754c 100644 --- a/src/modals/Bond/index.tsx +++ b/src/modals/Bond/index.tsx @@ -54,6 +54,9 @@ export const Bond = () => { // bond valid. const [bondValid, setBondValid] = useState<boolean>(false); + // feedback errors to trigger modal resize + const [feedbackErrors, setFeedbackErrors] = useState<string[]>([]); + // bond minus tx fees. const enoughToCoverTxFees: boolean = freeBalance .minus(bond.bond) @@ -126,7 +129,7 @@ export const Bond = () => { // modal resize on form update useEffect(() => { setResize(); - }, [bond, warnings.length]); + }, [bond, bondValid, feedbackErrors.length, warnings.length]); return ( <> @@ -145,7 +148,10 @@ export const Bond = () => { <BondFeedback syncing={largestTxFee.isZero()} bondFor={bondFor} - listenIsValid={setBondValid} + listenIsValid={(valid, errors) => { + setBondValid(valid); + setFeedbackErrors(errors); + }} defaultBond={null} setters={[ { diff --git a/src/modals/JoinPool/index.tsx b/src/modals/JoinPool/index.tsx index 986647e194..227a6be54d 100644 --- a/src/modals/JoinPool/index.tsx +++ b/src/modals/JoinPool/index.tsx @@ -59,10 +59,13 @@ export const JoinPool = () => { // bond valid const [bondValid, setBondValid] = useState<boolean>(false); + // feedback errors to trigger modal resize + const [feedbackErrors, setFeedbackErrors] = useState<string[]>([]); + // modal resize on form update useEffect(() => { setResize(); - }, [bond]); + }, [bond, feedbackErrors.length]); // tx to submit const getTx = () => { @@ -119,7 +122,10 @@ export const JoinPool = () => { syncing={largestTxFee.isZero()} joiningPool bondFor="pool" - listenIsValid={setBondValid} + listenIsValid={(valid, errors) => { + setBondValid(valid); + setFeedbackErrors(errors); + }} defaultBond={null} setters={[ { diff --git a/src/modals/Unbond/index.tsx b/src/modals/Unbond/index.tsx index e1bf7da799..a0a655b49f 100644 --- a/src/modals/Unbond/index.tsx +++ b/src/modals/Unbond/index.tsx @@ -84,6 +84,9 @@ export const Unbond = () => { // bond valid const [bondValid, setBondValid] = useState<boolean>(false); + // feedback errors to trigger modal resize + const [feedbackErrors, setFeedbackErrors] = useState<string[]>([]); + // get the max amount available to unbond const unbondToMin = isPooling ? isDepositor() @@ -171,7 +174,7 @@ export const Unbond = () => { // modal resize on form update useEffect(() => { setResize(); - }, [bond, warnings.length]); + }, [bond, feedbackErrors.length, warnings.length]); return ( <> @@ -187,7 +190,10 @@ export const Unbond = () => { ) : null} <UnbondFeedback bondFor={bondFor} - listenIsValid={setBondValid} + listenIsValid={(valid, errors) => { + setBondValid(valid); + setFeedbackErrors(errors); + }} setters={[ { set: setBond, diff --git a/src/pages/Nominate/Setup/Bond/index.tsx b/src/pages/Nominate/Setup/Bond/index.tsx index ec1f3db8fe..2085c98653 100644 --- a/src/pages/Nominate/Setup/Bond/index.tsx +++ b/src/pages/Nominate/Setup/Bond/index.tsx @@ -70,7 +70,7 @@ export const Bond = ({ section }: SetupStepProps) => { syncing={txFees.isZero()} bondFor="nominator" inSetup - listenIsValid={setBondValid} + listenIsValid={(valid) => setBondValid(valid)} defaultBond={initialBondValue} setters={[ { From bf1e8656fb3ed9f23fd8c740e6ede4d97404e708 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Mon, 7 Aug 2023 12:02:45 +0700 Subject: [PATCH 138/435] consistent `listenIsValid` --- src/pages/Pools/Create/Bond/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/Pools/Create/Bond/index.tsx b/src/pages/Pools/Create/Bond/index.tsx index 78e56ae24e..68ee625e6e 100644 --- a/src/pages/Pools/Create/Bond/index.tsx +++ b/src/pages/Pools/Create/Bond/index.tsx @@ -70,7 +70,7 @@ export const Bond = ({ section }: SetupStepProps) => { syncing={txFees.isZero()} bondFor="pool" inSetup - listenIsValid={setBondValid} + listenIsValid={(valid) => setBondValid(valid)} defaultBond={initialBondValue} setters={[ { From 79543e369d7e1e0b22d32c5422d55d9bccd31788 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Mon, 7 Aug 2023 13:11:47 +0700 Subject: [PATCH 139/435] amend dir --- {scripts => .shell}/build-container.sh | 0 README.md | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename {scripts => .shell}/build-container.sh (100%) diff --git a/scripts/build-container.sh b/.shell/build-container.sh similarity index 100% rename from scripts/build-container.sh rename to .shell/build-container.sh diff --git a/README.md b/README.md index 9e797c9922..f54c0f8328 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ staking.polkadot.network/#/overview?n=kusama&l=cn You may build a container using: ``` -./scripts/build-container.sh +./shell/build-container.sh ``` Then run your container with: From bb83e4c05e4d4516443b1689c2e10f20ef4a8a7a Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Mon, 7 Aug 2023 14:46:07 +0700 Subject: [PATCH 140/435] misc fixes --- src/consts.ts | 2 +- src/contexts/Help/defaults.ts | 6 +++--- src/env.d.ts | 4 ---- src/library/Headers/Dropdown.tsx | 23 ----------------------- src/library/Headers/types.ts | 7 ------- src/locale/{utils.tsx => utils.ts} | 0 src/pages/Community/index.tsx | 2 +- src/pages/Payouts/index.tsx | 3 +-- src/pages/types.ts | 10 ---------- src/types/index.ts | 9 ++++++++- src/vite-env.d.ts | 1 + 11 files changed, 15 insertions(+), 52 deletions(-) delete mode 100644 src/env.d.ts delete mode 100644 src/library/Headers/Dropdown.tsx delete mode 100644 src/library/Headers/types.ts rename src/locale/{utils.tsx => utils.ts} (100%) delete mode 100644 src/pages/types.ts diff --git a/src/consts.ts b/src/consts.ts index 37fda4385f..096e4e1d7c 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -10,7 +10,7 @@ import BigNumber from 'bignumber.js'; export const AppVersion = '1.0.8'; export const BaseURL = ''; export const DappName = 'Polkadot Staking Dashboard'; -export const PolkadotUrl = 'https://polkadot.network/staking/'; +export const PolkadotUrl = 'https://polkadot.network/features/staking/'; export const DefaultNetwork = 'polkadot'; /* diff --git a/src/contexts/Help/defaults.ts b/src/contexts/Help/defaults.ts index cb20b78ac7..7c81cc68a6 100644 --- a/src/contexts/Help/defaults.ts +++ b/src/contexts/Help/defaults.ts @@ -5,12 +5,12 @@ import type { HelpContextInterface } from './types'; export const defaultHelpContext: HelpContextInterface = { // eslint-disable-next-line - openHelp: (k) => {}, + openHelp: (key) => {}, closeHelp: () => {}, // eslint-disable-next-line - setStatus: (s) => {}, + setStatus: (status) => {}, // eslint-disable-next-line - setDefinition: (d) => {}, + setDefinition: (definition) => {}, status: 0, definition: null, }; diff --git a/src/env.d.ts b/src/env.d.ts deleted file mode 100644 index f188629fb0..0000000000 --- a/src/env.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -/// <reference types="vite-plugin-svgr/client" /> diff --git a/src/library/Headers/Dropdown.tsx b/src/library/Headers/Dropdown.tsx deleted file mode 100644 index 80a52ac313..0000000000 --- a/src/library/Headers/Dropdown.tsx +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import { useRef } from 'react'; -import { useOutsideAlerter } from 'library/Hooks'; -import type { DropdownProps } from './types'; - -export const Dropdown = ({ toggleMenu, items }: DropdownProps) => { - const ref = useRef(null); - useOutsideAlerter( - ref, - () => { - toggleMenu(false); - }, - ['dropdown-toggle'] - ); - - return ( - <ul className="accounts" ref={ref}> - {items} - </ul> - ); -}; diff --git a/src/library/Headers/types.ts b/src/library/Headers/types.ts deleted file mode 100644 index 17087c9031..0000000000 --- a/src/library/Headers/types.ts +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -export interface DropdownProps { - toggleMenu: any; - items: string[]; -} diff --git a/src/locale/utils.tsx b/src/locale/utils.ts similarity index 100% rename from src/locale/utils.tsx rename to src/locale/utils.ts diff --git a/src/pages/Community/index.tsx b/src/pages/Community/index.tsx index 077dda373d..182d246f1b 100644 --- a/src/pages/Community/index.tsx +++ b/src/pages/Community/index.tsx @@ -3,7 +3,7 @@ import { PageTitle } from '@polkadotcloud/core-ui'; import { useTranslation } from 'react-i18next'; -import type { PageProps } from '../types'; +import type { PageProps } from 'types'; import { Entity } from './Entity'; import { List } from './List'; import { Wrapper } from './Wrappers'; diff --git a/src/pages/Payouts/index.tsx b/src/pages/Payouts/index.tsx index ab9990971d..10a3eda1f8 100644 --- a/src/pages/Payouts/index.tsx +++ b/src/pages/Payouts/index.tsx @@ -19,8 +19,7 @@ import { useSize } from 'library/Hooks/useSize'; import { StatBoxList } from 'library/StatBoxList'; import { StatusLabel } from 'library/StatusLabel'; import { SubscanButton } from 'library/SubscanButton'; -import type { AnySubscan } from 'types'; -import type { PageProps } from '../types'; +import type { AnySubscan, PageProps } from 'types'; import { PayoutList } from './PayoutList'; import { LastEraPayoutStat } from './Stats/LastEraPayout'; diff --git a/src/pages/types.ts b/src/pages/types.ts deleted file mode 100644 index 414b5b9bf4..0000000000 --- a/src/pages/types.ts +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -export interface PageProps { - page: PageProp; -} - -interface PageProp { - key: string; -} diff --git a/src/types/index.ts b/src/types/index.ts index a4b35d741e..6745d804c9 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -4,7 +4,6 @@ import type React from 'react'; import type { FunctionComponent, SVGProps } from 'react'; import type { Theme } from 'contexts/Themes/types'; -import type { PageProps } from 'pages/types'; export type NetworkName = 'polkadot' | 'kusama' | 'westend'; @@ -77,6 +76,14 @@ export interface PageItem { export type PagesConfigItems = PageItem[]; +export interface PageProps { + page: PageProp; +} + +interface PageProp { + key: string; +} + export type MaybeAccount = string | null; export type MaybeString = string | null; diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts index 3acb5adc8b..5eeb1139ed 100644 --- a/src/vite-env.d.ts +++ b/src/vite-env.d.ts @@ -1,4 +1,5 @@ /// <reference types="vite/client" /> +/// <reference types="vite-plugin-svgr/client" /> declare namespace JSX { interface IntrinsicElements { From 16e140318186456595326cf692bff03a58ab88f4 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Mon, 7 Aug 2023 17:10:10 +0700 Subject: [PATCH 141/435] update license --- .licenserc.json | 4 +- .scripts/localeOrderKeys.cjs | 2 +- .scripts/localeValidate.cjs | 2 +- .scripts/utils.cjs | 2 +- LICENSE | 875 ++++++++++++++---- README.md | 2 +- package.json | 2 +- src/App.tsx | 2 +- src/Providers.tsx | 2 +- src/Router.tsx | 2 +- src/Themes.tsx | 2 +- src/config/help.ts | 2 +- src/config/ledger.ts | 2 +- src/config/networks.ts | 2 +- src/config/pages.ts | 2 +- src/config/proxies.ts | 2 +- src/config/tips.ts | 2 +- src/consts.ts | 2 +- src/contexts/Api/defaults.ts | 2 +- src/contexts/Api/index.tsx | 2 +- src/contexts/Api/types.ts | 2 +- src/contexts/Balances/Utils.ts | 2 +- src/contexts/Balances/defaults.ts | 2 +- src/contexts/Balances/index.tsx | 2 +- src/contexts/Balances/types.ts | 2 +- src/contexts/Bonded/defaults.ts | 2 +- src/contexts/Bonded/index.tsx | 2 +- src/contexts/Bonded/types.ts | 2 +- src/contexts/Canvas/defaults.ts | 2 +- src/contexts/Canvas/index.tsx | 2 +- src/contexts/Canvas/types.ts | 2 +- .../Connect/Hooks/useImportExtension.tsx | 2 +- src/contexts/Connect/Utils.ts | 2 +- src/contexts/Connect/defaults.ts | 2 +- src/contexts/Connect/index.tsx | 2 +- src/contexts/Connect/types.ts | 2 +- src/contexts/Extensions/defaults.ts | 2 +- src/contexts/Extensions/index.tsx | 2 +- src/contexts/Extensions/types.ts | 2 +- src/contexts/Extrinsics/defaults.ts | 2 +- src/contexts/Extrinsics/index.tsx | 2 +- src/contexts/Extrinsics/types.ts | 2 +- src/contexts/FastUnstake/defaults.ts | 2 +- src/contexts/FastUnstake/index.tsx | 2 +- src/contexts/FastUnstake/types.ts | 2 +- src/contexts/Filters/defaults.ts | 2 +- src/contexts/Filters/index.tsx | 2 +- src/contexts/Filters/types.ts | 2 +- src/contexts/Hardware/Ledger.tsx | 2 +- src/contexts/Hardware/Utils.tsx | 2 +- src/contexts/Hardware/Vault.tsx | 2 +- src/contexts/Hardware/defaults.ts | 2 +- src/contexts/Hardware/types.ts | 2 +- src/contexts/Help/defaults.ts | 2 +- src/contexts/Help/index.tsx | 2 +- src/contexts/Help/types.ts | 2 +- src/contexts/Identities/defaults.ts | 2 +- src/contexts/Identities/index.tsx | 2 +- src/contexts/Identities/types.ts | 2 +- src/contexts/Menu/defaults.ts | 2 +- src/contexts/Menu/index.tsx | 2 +- src/contexts/Menu/types.ts | 2 +- src/contexts/Migrate/index.tsx | 2 +- src/contexts/Modal/defaults.ts | 2 +- src/contexts/Modal/index.tsx | 2 +- src/contexts/Modal/types.ts | 2 +- src/contexts/Network/defaults.ts | 2 +- src/contexts/Network/index.tsx | 2 +- src/contexts/Network/types.ts | 2 +- src/contexts/Notifications/defaults.ts | 2 +- src/contexts/Notifications/index.tsx | 2 +- src/contexts/Notifications/types.ts | 2 +- src/contexts/Plugins/defaults.ts | 2 +- src/contexts/Plugins/index.tsx | 2 +- src/contexts/Plugins/types.ts | 2 +- src/contexts/Pools/ActivePools/defaults.ts | 2 +- src/contexts/Pools/ActivePools/index.tsx | 2 +- src/contexts/Pools/BondedPools/defaults.ts | 2 +- src/contexts/Pools/BondedPools/index.tsx | 2 +- src/contexts/Pools/PoolMembers/defaults.ts | 2 +- src/contexts/Pools/PoolMembers/index.tsx | 2 +- .../Pools/PoolMemberships/defaults.ts | 2 +- src/contexts/Pools/PoolMemberships/index.tsx | 2 +- src/contexts/Pools/PoolsConfig/defaults.ts | 2 +- src/contexts/Pools/PoolsConfig/index.tsx | 2 +- src/contexts/Pools/types.ts | 2 +- src/contexts/Prompt/defaults.tsx | 2 +- src/contexts/Prompt/index.tsx | 2 +- src/contexts/Prompt/types.ts | 2 +- src/contexts/Proxies/defaults.ts | 2 +- src/contexts/Proxies/index.tsx | 2 +- src/contexts/Proxies/type.ts | 2 +- src/contexts/Setup/defaults.ts | 2 +- src/contexts/Setup/index.tsx | 2 +- src/contexts/Setup/types.ts | 2 +- src/contexts/Staking/defaults.ts | 2 +- src/contexts/Staking/index.tsx | 2 +- src/contexts/Staking/types.ts | 2 +- src/contexts/Subscan/defaults.ts | 2 +- src/contexts/Subscan/index.tsx | 2 +- src/contexts/Subscan/types.ts | 2 +- src/contexts/Themes/defaults.ts | 2 +- src/contexts/Themes/index.tsx | 2 +- src/contexts/Themes/types.ts | 2 +- src/contexts/Tooltip/defaults.ts | 2 +- src/contexts/Tooltip/index.tsx | 2 +- src/contexts/Tooltip/types.ts | 2 +- src/contexts/TransferOptions/defaults.ts | 2 +- src/contexts/TransferOptions/index.tsx | 2 +- src/contexts/TransferOptions/types.ts | 2 +- src/contexts/TxMeta/defaults.ts | 2 +- src/contexts/TxMeta/index.tsx | 2 +- src/contexts/TxMeta/types.ts | 2 +- src/contexts/UI/defaults.ts | 2 +- src/contexts/UI/index.tsx | 2 +- src/contexts/UI/types.ts | 2 +- src/contexts/Validators/defaults.ts | 2 +- src/contexts/Validators/index.tsx | 2 +- src/contexts/Validators/types.ts | 2 +- src/library/Account/Wrapper.ts | 2 +- src/library/Account/index.tsx | 2 +- src/library/Account/types.ts | 2 +- src/library/AccountInput/Wrapper.ts | 2 +- src/library/AccountInput/index.tsx | 2 +- src/library/AccountInput/types.ts | 2 +- src/library/BarChart/BarSegment.tsx | 2 +- src/library/BarChart/BondedChart.tsx | 2 +- src/library/BarChart/LegendItem.tsx | 2 +- src/library/BarChart/Wrappers.ts | 2 +- src/library/BarChart/defaults.ts | 2 +- src/library/BarChart/types.ts | 2 +- src/library/Canvas/Wrappers.ts | 2 +- src/library/Canvas/index.tsx | 2 +- src/library/Card/Wrappers.ts | 2 +- src/library/Countdown/index.tsx | 2 +- src/library/Countdown/types.ts | 2 +- src/library/ErrorBoundary/Wrapper.ts | 2 +- src/library/ErrorBoundary/index.tsx | 2 +- src/library/EstimatedTxFee/Wrapper.ts | 2 +- src/library/EstimatedTxFee/index.tsx | 2 +- src/library/EstimatedTxFee/types.ts | 2 +- src/library/Filter/Container.tsx | 2 +- src/library/Filter/Item.tsx | 2 +- src/library/Filter/LargeItem.tsx | 2 +- src/library/Filter/Tabs.tsx | 2 +- src/library/Filter/Wrappers.ts | 2 +- src/library/Filter/defaults.ts | 2 +- src/library/Filter/types.ts | 2 +- src/library/Form/Bond/BondFeedback.tsx | 2 +- src/library/Form/Bond/BondInput.tsx | 2 +- .../Form/ClaimPermissionInput/index.tsx | 2 +- .../Form/CreatePoolStatusBar/Wrapper.ts | 2 +- .../Form/CreatePoolStatusBar/index.tsx | 2 +- src/library/Form/MinDelayInput/Wrapper.ts | 2 +- src/library/Form/MinDelayInput/index.tsx | 2 +- src/library/Form/MinDelayInput/types.ts | 2 +- src/library/Form/NominateStatusBar/Wrapper.ts | 2 +- src/library/Form/NominateStatusBar/index.tsx | 2 +- src/library/Form/Unbond/UnbondFeedback.tsx | 2 +- src/library/Form/Unbond/UnbondInput.tsx | 2 +- src/library/Form/Warning/Wrapper.ts | 2 +- src/library/Form/Warning/index.tsx | 2 +- src/library/Form/Wrappers.ts | 2 +- src/library/Form/types.ts | 2 +- src/library/GenerateNominations/index.tsx | 2 +- .../GenerateNominations/useFetchMethods.tsx | 2 +- src/library/Graphs/EraPoints.tsx | 2 +- src/library/Graphs/PayoutBar.tsx | 2 +- src/library/Graphs/PayoutLine.tsx | 2 +- src/library/Graphs/StatBoxPie.tsx | 2 +- src/library/Graphs/Utils.ts | 2 +- src/library/Graphs/Wrapper.ts | 2 +- src/library/Graphs/types.ts | 2 +- src/library/Headers/Connect.tsx | 2 +- src/library/Headers/Connected.tsx | 2 +- src/library/Headers/SideMenuToggle.tsx | 2 +- src/library/Headers/Spinner.tsx | 2 +- src/library/Headers/Wrappers.ts | 2 +- src/library/Headers/index.tsx | 2 +- src/library/Help/Items/ActiveDefinition.tsx | 2 +- src/library/Help/Items/Definition.tsx | 2 +- src/library/Help/Items/External.tsx | 2 +- src/library/Help/Wrappers.ts | 2 +- src/library/Help/index.tsx | 2 +- src/library/Hooks/index.tsx | 2 +- src/library/Hooks/useBatchCall/index.tsx | 2 +- src/library/Hooks/useBlockNumber/index.tsx | 2 +- .../Hooks/useBondGreatestFee/index.tsx | 2 +- src/library/Hooks/useBuildPayload/index.tsx | 2 +- .../Hooks/useDotLottieButton/index.tsx | 2 +- .../Hooks/useEffectIgnoreInitial/index.tsx | 2 +- src/library/Hooks/useEraTimeLeft/index.tsx | 2 +- src/library/Hooks/useErasToTimeLeft/index.tsx | 2 +- src/library/Hooks/useFillVariables/index.tsx | 2 +- src/library/Hooks/useFillVariables/types.ts | 2 +- src/library/Hooks/useInflation/index.tsx | 2 +- src/library/Hooks/useLedgerLoop/index.tsx | 2 +- src/library/Hooks/useLedgerLoop/types.ts | 2 +- .../Hooks/useNominationStatus/index.tsx | 2 +- src/library/Hooks/usePayeeConfig/index.tsx | 2 +- src/library/Hooks/usePoolCommission/index.tsx | 2 +- src/library/Hooks/usePrices/index.tsx | 2 +- src/library/Hooks/useProxySupported/index.tsx | 2 +- src/library/Hooks/useSignerWarnings/index.tsx | 2 +- src/library/Hooks/useSize/index.tsx | 2 +- .../Hooks/useSubmitExtrinsic/index.tsx | 2 +- src/library/Hooks/useSubmitExtrinsic/types.ts | 2 +- src/library/Hooks/useTimeLeft/defaults.ts | 2 +- src/library/Hooks/useTimeLeft/index.tsx | 2 +- src/library/Hooks/useTimeLeft/utils.ts | 2 +- src/library/Hooks/useUnitPrice/index.tsx | 2 +- src/library/Hooks/useUnstaking/index.tsx | 2 +- .../Hooks/useValidatorFilters/index.tsx | 2 +- src/library/Identicon/Wrapper.ts | 2 +- src/library/Identicon/circles.tsx | 2 +- src/library/Identicon/colors.ts | 2 +- src/library/Identicon/index.tsx | 2 +- src/library/Identicon/scheme.ts | 2 +- src/library/Identicon/types.ts | 2 +- src/library/Import/Confirm.tsx | 2 +- src/library/Import/Heading.tsx | 2 +- src/library/Import/NoAccounts.tsx | 2 +- src/library/Import/Remove.tsx | 2 +- src/library/Import/Wrappers.ts | 2 +- src/library/List/MotionContainer.tsx | 2 +- src/library/List/Pagination.tsx | 2 +- src/library/List/SearchInput.tsx | 2 +- src/library/List/Selectable.tsx | 2 +- src/library/List/context.tsx | 2 +- src/library/List/defaults.ts | 2 +- src/library/List/index.ts | 2 +- src/library/List/types.ts | 2 +- src/library/ListItem/Labels/Blocked.tsx | 2 +- src/library/ListItem/Labels/Commission.tsx | 2 +- src/library/ListItem/Labels/CopyAddress.tsx | 2 +- src/library/ListItem/Labels/EraStatus.tsx | 2 +- src/library/ListItem/Labels/FavoritePool.tsx | 2 +- .../ListItem/Labels/FavoriteValidator.tsx | 2 +- src/library/ListItem/Labels/Identity.tsx | 2 +- src/library/ListItem/Labels/JoinPool.tsx | 2 +- src/library/ListItem/Labels/Members.tsx | 2 +- src/library/ListItem/Labels/Metrics.tsx | 2 +- .../ListItem/Labels/NominationStatus.tsx | 2 +- .../ListItem/Labels/Oversubscribed.tsx | 2 +- src/library/ListItem/Labels/ParaValidator.tsx | 2 +- src/library/ListItem/Labels/PoolBonded.tsx | 2 +- .../ListItem/Labels/PoolCommission.tsx | 2 +- src/library/ListItem/Labels/PoolId.tsx | 2 +- src/library/ListItem/Labels/PoolIdentity.tsx | 2 +- .../ListItem/Labels/PoolMemberBonded.tsx | 2 +- src/library/ListItem/Labels/Select.tsx | 2 +- src/library/ListItem/Wrappers.ts | 2 +- src/library/ListItem/types.ts | 2 +- src/library/Loader/Announcement.tsx | 2 +- src/library/Loader/Wrapper.ts | 2 +- src/library/Menu/Wrappers.ts | 2 +- src/library/Menu/index.tsx | 2 +- src/library/Modal/Close.tsx | 2 +- src/library/Modal/Title.tsx | 2 +- src/library/Modal/Wrappers.ts | 2 +- src/library/NetworkBar/Status.tsx | 2 +- src/library/NetworkBar/Wrappers.ts | 2 +- src/library/NetworkBar/index.tsx | 2 +- src/library/Notifications/Wrapper.ts | 2 +- src/library/Notifications/index.tsx | 2 +- src/library/Overlay/index.tsx | 2 +- src/library/PayeeInput/Wrapper.ts | 2 +- src/library/PayeeInput/index.tsx | 2 +- src/library/PayeeInput/types.ts | 2 +- src/library/Pool/index.tsx | 2 +- src/library/Pool/types.ts | 2 +- src/library/PoolAccount/Wrapper.ts | 2 +- src/library/PoolAccount/index.tsx | 2 +- src/library/PoolAccount/types.ts | 2 +- src/library/PoolList/Default.tsx | 2 +- src/library/PoolList/context.tsx | 2 +- src/library/PoolList/defaults.ts | 2 +- src/library/PoolList/types.ts | 2 +- src/library/Prompt/Title.tsx | 2 +- src/library/Prompt/Wrappers.ts | 2 +- src/library/Prompt/index.tsx | 2 +- src/library/QRCode/Display.tsx | 2 +- src/library/QRCode/DisplayPayload.tsx | 2 +- src/library/QRCode/Scan.tsx | 2 +- src/library/QRCode/ScanSignature.tsx | 2 +- src/library/QRCode/Wrappers.ts | 2 +- src/library/QRCode/constants.ts | 2 +- src/library/QRCode/qrcode.ts | 2 +- src/library/QRCode/types.ts | 2 +- src/library/QRCode/util.ts | 2 +- src/library/SelectItems/Item.tsx | 2 +- src/library/SelectItems/Wrapper.ts | 2 +- src/library/SelectItems/index.tsx | 2 +- src/library/SelectItems/types.ts | 2 +- src/library/SetupSteps/Footer/Wrapper.ts | 2 +- src/library/SetupSteps/Footer/index.tsx | 2 +- src/library/SetupSteps/Header/Wrapper.ts | 2 +- src/library/SetupSteps/Header/index.tsx | 2 +- src/library/SetupSteps/MotionContainer.tsx | 2 +- src/library/SetupSteps/Nominate.tsx | 2 +- src/library/SetupSteps/types.ts | 2 +- src/library/SideMenu/Heading/Heading.tsx | 2 +- src/library/SideMenu/Heading/Wrapper.ts | 2 +- src/library/SideMenu/Main.tsx | 2 +- src/library/SideMenu/Primary/Wrappers.ts | 2 +- src/library/SideMenu/Primary/index.tsx | 2 +- src/library/SideMenu/Secondary/Wrappers.ts | 2 +- src/library/SideMenu/Secondary/index.tsx | 2 +- src/library/SideMenu/Wrapper.ts | 2 +- src/library/SideMenu/index.tsx | 2 +- src/library/SideMenu/types.ts | 2 +- src/library/Stat/Wrapper.ts | 2 +- src/library/Stat/index.tsx | 2 +- src/library/Stat/types.ts | 2 +- src/library/StatBoxList/Item.tsx | 2 +- src/library/StatBoxList/Number.tsx | 2 +- src/library/StatBoxList/Pie.tsx | 2 +- src/library/StatBoxList/Text.tsx | 2 +- src/library/StatBoxList/Timeleft.tsx | 2 +- src/library/StatBoxList/Wrapper.ts | 2 +- src/library/StatBoxList/index.tsx | 2 +- src/library/StatBoxList/types.ts | 2 +- src/library/StatsHead/Wrapper.ts | 2 +- src/library/StatsHead/index.tsx | 2 +- src/library/StatsHead/types.ts | 2 +- src/library/StatusButton/Wrapper.ts | 2 +- src/library/StatusButton/index.tsx | 2 +- src/library/StatusButton/types.ts | 2 +- src/library/StatusLabel/Wrapper.ts | 2 +- src/library/StatusLabel/index.tsx | 2 +- src/library/StatusLabel/types.ts | 2 +- src/library/SubmitTx/Default.tsx | 2 +- src/library/SubmitTx/ManualSign/Ledger.tsx | 2 +- .../SubmitTx/ManualSign/Vault/SignPrompt.tsx | 2 +- .../SubmitTx/ManualSign/Vault/index.tsx | 2 +- src/library/SubmitTx/ManualSign/index.tsx | 2 +- src/library/SubmitTx/index.tsx | 2 +- src/library/SubmitTx/types.ts | 2 +- src/library/SubscanButton/index.tsx | 2 +- src/library/SubscanButton/types.ts | 2 +- src/library/Tips/Tip.tsx | 2 +- src/library/Tips/Wrappers.ts | 2 +- src/library/Tooltip/Wrapper.ts | 2 +- src/library/Tooltip/index.tsx | 2 +- src/library/UpdateHeader/Wrapper.ts | 2 +- src/library/UpdateHeader/index.tsx | 2 +- .../ValidatorList/FilterValidators.tsx | 2 +- src/library/ValidatorList/Filters.tsx | 2 +- src/library/ValidatorList/OrderValidators.tsx | 2 +- .../ValidatorList/Validator/Default.tsx | 2 +- .../ValidatorList/Validator/Nomination.tsx | 2 +- src/library/ValidatorList/Validator/Utils.tsx | 2 +- src/library/ValidatorList/Validator/index.tsx | 2 +- src/library/ValidatorList/Validator/types.ts | 2 +- src/library/ValidatorList/index.tsx | 2 +- src/locale/index.tsx | 2 +- src/locale/utils.ts | 2 +- src/main.tsx | 2 +- src/modals/AccountPoolRoles/Wrappers.ts | 2 +- src/modals/AccountPoolRoles/index.tsx | 2 +- src/modals/Accounts/Account.tsx | 2 +- src/modals/Accounts/Delegates/Wrapper.ts | 2 +- src/modals/Accounts/Delegates/index.tsx | 2 +- src/modals/Accounts/Wrappers.ts | 2 +- src/modals/Accounts/index.tsx | 2 +- src/modals/Accounts/types.ts | 2 +- src/modals/BalanceTest/index.tsx | 2 +- src/modals/Bio/Wrapper.ts | 2 +- src/modals/Bio/index.tsx | 2 +- src/modals/Bond/index.tsx | 2 +- src/modals/ChangeNominations/index.tsx | 2 +- src/modals/ChangePoolRoles/RoleChange.tsx | 2 +- src/modals/ChangePoolRoles/Wrapper.ts | 2 +- src/modals/ChangePoolRoles/index.tsx | 2 +- src/modals/ChooseLanguage/Wrapper.ts | 2 +- src/modals/ChooseLanguage/index.tsx | 2 +- src/modals/ClaimReward/index.tsx | 2 +- src/modals/Connect/Extension.tsx | 2 +- src/modals/Connect/Ledger.tsx | 2 +- src/modals/Connect/Proxies.tsx | 2 +- src/modals/Connect/ReadOnly.tsx | 2 +- src/modals/Connect/Vault.tsx | 2 +- src/modals/Connect/Wrappers.ts | 2 +- src/modals/Connect/index.tsx | 2 +- src/modals/Connect/types.ts | 2 +- src/modals/DismissTips/index.tsx | 2 +- src/modals/GoToFeedback/index.tsx | 2 +- src/modals/ImportLedger/Addresses.tsx | 2 +- src/modals/ImportLedger/Manage.tsx | 2 +- src/modals/ImportLedger/Reset.tsx | 2 +- src/modals/ImportLedger/Splash.tsx | 2 +- src/modals/ImportLedger/Wrappers.ts | 2 +- src/modals/ImportLedger/index.tsx | 2 +- src/modals/ImportVault/Reader.tsx | 2 +- src/modals/ImportVault/index.tsx | 2 +- src/modals/JoinPool/index.tsx | 2 +- src/modals/ManageFastUnstake/index.tsx | 2 +- .../ManagePool/Forms/ClaimCommission.tsx | 2 +- src/modals/ManagePool/Forms/Commission.tsx | 2 +- src/modals/ManagePool/Forms/LeavePool.tsx | 2 +- .../ManagePool/Forms/SetClaimPermission.tsx | 2 +- src/modals/ManagePool/Forms/SetMetadata.tsx | 2 +- src/modals/ManagePool/Forms/SetState.tsx | 2 +- src/modals/ManagePool/Forms/index.tsx | 2 +- src/modals/ManagePool/Forms/types.ts | 2 +- src/modals/ManagePool/Tasks.tsx | 2 +- src/modals/ManagePool/Wrappers.ts | 2 +- src/modals/ManagePool/index.tsx | 2 +- src/modals/Networks/Wrapper.ts | 2 +- src/modals/Networks/index.tsx | 2 +- src/modals/Networks/types.ts | 2 +- src/modals/Nominate/index.tsx | 2 +- src/modals/NominateFromFavorites/Wrappers.ts | 2 +- src/modals/NominateFromFavorites/index.tsx | 2 +- src/modals/NominatePool/index.tsx | 2 +- src/modals/PoolNominations/Wrappers.ts | 2 +- src/modals/PoolNominations/index.tsx | 2 +- src/modals/SelectFavorites/Wrappers.ts | 2 +- src/modals/SelectFavorites/index.tsx | 2 +- src/modals/Settings/index.tsx | 2 +- src/modals/Unbond/index.tsx | 2 +- src/modals/UnbondPoolMember/index.tsx | 2 +- src/modals/UnlockChunks/Chunk.tsx | 2 +- src/modals/UnlockChunks/Forms.tsx | 2 +- src/modals/UnlockChunks/Overview.tsx | 2 +- src/modals/UnlockChunks/Wrappers.ts | 2 +- src/modals/UnlockChunks/index.tsx | 2 +- src/modals/Unstake/index.tsx | 2 +- .../UpdateController/Switch/Wrappers.ts | 2 +- src/modals/UpdateController/Switch/index.tsx | 2 +- src/modals/UpdateController/Wrapper.ts | 2 +- src/modals/UpdateController/index.tsx | 2 +- src/modals/UpdatePayee/index.tsx | 2 +- src/modals/UpdateReserve/index.tsx | 2 +- src/modals/Utils/StaticNote.tsx | 2 +- src/modals/ValidatorMetrics/index.tsx | 2 +- src/modals/WithdrawPoolMember/index.tsx | 2 +- src/modals/index.tsx | 2 +- src/pages/Community/Entity.tsx | 2 +- src/pages/Community/Item.tsx | 2 +- src/pages/Community/List.tsx | 2 +- src/pages/Community/Wrappers.ts | 2 +- src/pages/Community/context.tsx | 2 +- src/pages/Community/defaults.ts | 2 +- src/pages/Community/index.tsx | 2 +- .../Nominate/Active/ControllerNotStash.tsx | 2 +- src/pages/Nominate/Active/ManageBond.tsx | 2 +- .../Nominate/Active/Nominations/Wrapper.ts | 2 +- .../Nominate/Active/Nominations/index.tsx | 2 +- .../Active/Stats/ActiveNominators.tsx | 2 +- .../Active/Stats/MinimumActiveStake.tsx | 2 +- .../Active/Stats/MinimumNominatorBond.tsx | 2 +- .../Active/Status/ControllerStatus.tsx | 2 +- .../Active/Status/NominationStatus.tsx | 2 +- .../Active/Status/PayoutDestinationStatus.tsx | 2 +- src/pages/Nominate/Active/Status/index.tsx | 2 +- src/pages/Nominate/Active/UnstakePrompts.tsx | 2 +- src/pages/Nominate/Active/index.tsx | 2 +- src/pages/Nominate/Active/types.ts | 2 +- src/pages/Nominate/Setup/Bond/index.tsx | 2 +- src/pages/Nominate/Setup/Payee/index.tsx | 2 +- src/pages/Nominate/Setup/Summary/Wrapper.ts | 2 +- src/pages/Nominate/Setup/Summary/index.tsx | 2 +- src/pages/Nominate/Setup/index.tsx | 2 +- src/pages/Nominate/Wrappers.ts | 2 +- src/pages/Nominate/index.tsx | 2 +- src/pages/Overview/ActiveAccounts/Item.tsx | 2 +- src/pages/Overview/ActiveAccounts/Wrappers.ts | 2 +- src/pages/Overview/ActiveAccounts/index.tsx | 2 +- src/pages/Overview/ActiveAccounts/types.ts | 2 +- src/pages/Overview/BalanceChart.tsx | 2 +- src/pages/Overview/BalanceLinks.tsx | 2 +- .../Overview/NetworkSats/Announcements.tsx | 2 +- src/pages/Overview/NetworkSats/Wrappers.ts | 2 +- src/pages/Overview/NetworkSats/index.tsx | 2 +- src/pages/Overview/Payouts.tsx | 2 +- src/pages/Overview/StakeStatus/Tips/Items.tsx | 2 +- .../Overview/StakeStatus/Tips/PageToggle.tsx | 2 +- .../Overview/StakeStatus/Tips/Syncing.tsx | 2 +- .../Overview/StakeStatus/Tips/Wrappers.ts | 2 +- src/pages/Overview/StakeStatus/Tips/index.tsx | 2 +- src/pages/Overview/StakeStatus/Tips/types.ts | 2 +- src/pages/Overview/StakeStatus/Wrappers.ts | 2 +- src/pages/Overview/StakeStatus/index.tsx | 2 +- .../Overview/Stats/ActiveEraTimeLeft.tsx | 2 +- .../Overview/Stats/HistoricalRewardsRate.tsx | 2 +- src/pages/Overview/Stats/SupplyStaked.tsx | 2 +- src/pages/Overview/Wrappers.ts | 2 +- src/pages/Overview/index.tsx | 2 +- src/pages/Payouts/PayoutList/context.tsx | 2 +- src/pages/Payouts/PayoutList/index.tsx | 2 +- src/pages/Payouts/Stats/LastEraPayout.tsx | 2 +- src/pages/Payouts/Wrappers.ts | 2 +- src/pages/Payouts/index.tsx | 2 +- src/pages/Payouts/types.ts | 2 +- src/pages/Pools/Create/Bond/index.tsx | 2 +- src/pages/Pools/Create/PoolName/Input.tsx | 2 +- src/pages/Pools/Create/PoolName/index.tsx | 2 +- src/pages/Pools/Create/PoolRoles/index.tsx | 2 +- src/pages/Pools/Create/Summary/Wrapper.ts | 2 +- src/pages/Pools/Create/Summary/index.tsx | 2 +- src/pages/Pools/Create/index.tsx | 2 +- src/pages/Pools/Home/ClosurePrompts.tsx | 2 +- src/pages/Pools/Home/Favorites/index.tsx | 2 +- src/pages/Pools/Home/ManageBond.tsx | 2 +- src/pages/Pools/Home/ManagePool/Wrappers.ts | 2 +- src/pages/Pools/Home/ManagePool/index.tsx | 2 +- src/pages/Pools/Home/Members.tsx | 2 +- src/pages/Pools/Home/MembersList/Default.tsx | 2 +- .../Pools/Home/MembersList/FetchPage.tsx | 2 +- src/pages/Pools/Home/MembersList/Member.tsx | 2 +- src/pages/Pools/Home/MembersList/types.ts | 2 +- .../Pools/Home/PoolStats/Announcements.tsx | 2 +- src/pages/Pools/Home/PoolStats/Wrappers.ts | 2 +- src/pages/Pools/Home/PoolStats/index.tsx | 2 +- src/pages/Pools/Home/Stats/ActivePools.tsx | 2 +- src/pages/Pools/Home/Stats/MinCreateBond.tsx | 2 +- src/pages/Pools/Home/Stats/MinJoinBond.tsx | 2 +- .../Pools/Home/Status/MembershipStatus.tsx | 2 +- src/pages/Pools/Home/Status/PoolStatus.tsx | 2 +- src/pages/Pools/Home/Status/RewardsStatus.tsx | 2 +- src/pages/Pools/Home/Status/index.tsx | 2 +- .../Pools/Home/Status/useStatusButtons.tsx | 2 +- src/pages/Pools/Home/context.tsx | 2 +- src/pages/Pools/Home/index.tsx | 2 +- src/pages/Pools/PoolAccount/Wrapper.ts | 2 +- src/pages/Pools/PoolAccount/index.tsx | 2 +- .../Pools/Roles/RoleEditInput/Wrapper.ts | 2 +- src/pages/Pools/Roles/RoleEditInput/index.tsx | 2 +- src/pages/Pools/Roles/index.tsx | 2 +- src/pages/Pools/Roles/types.ts | 2 +- src/pages/Pools/index.tsx | 2 +- src/pages/Pools/types.ts | 2 +- src/pages/Validators/AllValidators.tsx | 2 +- src/pages/Validators/Favorites.tsx | 2 +- .../Validators/Stats/ActiveValidators.tsx | 2 +- .../Validators/Stats/AverageCommission.tsx | 2 +- .../Validators/Stats/TotalValidators.tsx | 2 +- src/pages/Validators/context.tsx | 2 +- src/pages/Validators/index.tsx | 2 +- src/styles/graphs.ts | 2 +- src/styles/index.scss | 2 +- src/types/index.ts | 2 +- src/workers/stakers.ts | 2 +- src/workers/types.ts | 2 +- tests/graphs.test.ts | 2 +- vite.config.ts | 2 +- 547 files changed, 1221 insertions(+), 748 deletions(-) diff --git a/.licenserc.json b/.licenserc.json index 633f7463db..6fbe419ecc 100644 --- a/.licenserc.json +++ b/.licenserc.json @@ -1,7 +1,7 @@ { "**/*.{js, ts, tsx}": [ "// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors", - "// SPDX-License-Identifier: Apache-2.0" + "// SPDX-License-Identifier: GPL-3.0-only" ], "ignore": ["testdata", "npm", "public/", "Dockerfile"] -} +} \ No newline at end of file diff --git a/.scripts/localeOrderKeys.cjs b/.scripts/localeOrderKeys.cjs index 5367a080c5..62b1009a2a 100644 --- a/.scripts/localeOrderKeys.cjs +++ b/.scripts/localeOrderKeys.cjs @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only const fs = require('fs'); const path = require('path'); diff --git a/.scripts/localeValidate.cjs b/.scripts/localeValidate.cjs index 3168efb3d7..0a71147e74 100644 --- a/.scripts/localeValidate.cjs +++ b/.scripts/localeValidate.cjs @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only const fs = require('fs'); const { join } = require('path'); diff --git a/.scripts/utils.cjs b/.scripts/utils.cjs index c8a81b5cd5..83eb0209e5 100644 --- a/.scripts/utils.cjs +++ b/.scripts/utils.cjs @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only const fs = require('fs'); const { join } = require('path'); diff --git a/LICENSE b/LICENSE index 261eeb9e9f..bdfbac5031 100644 --- a/LICENSE +++ b/LICENSE @@ -1,201 +1,674 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Substrate Connect Copyright (C) 2020-2022 Parity Technologies Ltd + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +<http://www.gnu.org/licenses/>. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +<http://www.gnu.org/philosophy/why-not-lgpl.html>. diff --git a/README.md b/README.md index f54c0f8328..3f37779001 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Polkadot - App](https://img.shields.io/badge/Polkadot-App-E6007A?logo=polkadot&logoColor=E6007A)](https://staking.polkadot.network) ![ci](https://github.com/paritytech/polkadot-staking-dashboard/actions/workflows/ci.yml/badge.svg) [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) +[![Polkadot - App](https://img.shields.io/badge/Polkadot-App-E6007A?logo=polkadot&logoColor=E6007A)](https://staking.polkadot.network) ![ci](https://github.com/paritytech/polkadot-staking-dashboard/actions/workflows/ci.yml/badge.svg) [![License](https://img.shields.io/badge/License-GPL3.0-only-blue.svg)](https://opensource.org/licenses/GPL-3.0) # Polkadot Staking Dashboard diff --git a/package.json b/package.json index a7104faf78..8e80fa014a 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "polkadot-staking-dashboard", "version": "0.1.0", "type": "module", - "license": "Apache-2.0", + "license": "GPL-3.0-only", "private": false, "homepage": "/", "scripts": { diff --git a/src/App.tsx b/src/App.tsx index 6b30f0b196..3b86acd9d9 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import React from 'react'; import { I18nextProvider } from 'react-i18next'; diff --git a/src/Providers.tsx b/src/Providers.tsx index fda7724af2..8d7509ce1e 100644 --- a/src/Providers.tsx +++ b/src/Providers.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ThemedRouter } from 'Themes'; import { APIProvider } from 'contexts/Api'; diff --git a/src/Router.tsx b/src/Router.tsx index aa630b6a3b..eca4b41e46 100644 --- a/src/Router.tsx +++ b/src/Router.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { Body, Main, Page, Side } from '@polkadotcloud/core-ui'; import { extractUrlValue } from '@polkadotcloud/utils'; diff --git a/src/Themes.tsx b/src/Themes.tsx index 7082b03260..b78757a78e 100644 --- a/src/Themes.tsx +++ b/src/Themes.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ThemeProvider } from 'styled-components'; import { Entry } from '@polkadotcloud/core-ui'; diff --git a/src/config/help.ts b/src/config/help.ts index abffd919ac..cc515609c1 100644 --- a/src/config/help.ts +++ b/src/config/help.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { HelpItems } from 'contexts/Help/types'; diff --git a/src/config/ledger.ts b/src/config/ledger.ts index b4a39e587c..4f24502e98 100644 --- a/src/config/ledger.ts +++ b/src/config/ledger.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { LedgerApp } from 'contexts/Hardware/types'; import { ReactComponent as KusamaSVG } from 'img/appIcons/kusama.svg'; diff --git a/src/config/networks.ts b/src/config/networks.ts index a4fe5c2403..c7822ea506 100644 --- a/src/config/networks.ts +++ b/src/config/networks.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { WellKnownChain } from '@substrate/connect'; import { DefaultParams } from 'consts'; diff --git a/src/config/pages.ts b/src/config/pages.ts index 0d0394d9b4..28dd08d534 100644 --- a/src/config/pages.ts +++ b/src/config/pages.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { BaseURL } from 'consts'; import { Community } from 'pages/Community'; diff --git a/src/config/proxies.ts b/src/config/proxies.ts index b6376facec..addce1e24a 100644 --- a/src/config/proxies.ts +++ b/src/config/proxies.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only export const SupportedProxies: Record<string, string[]> = { Any: ['*'], diff --git a/src/config/tips.ts b/src/config/tips.ts index 1f365a9e4f..282ede798d 100644 --- a/src/config/tips.ts +++ b/src/config/tips.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only export const TipsConfig = [ { diff --git a/src/consts.ts b/src/consts.ts index 096e4e1d7c..2d023e7cea 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { stringToU8a } from '@polkadot/util'; import BigNumber from 'bignumber.js'; diff --git a/src/contexts/Api/defaults.ts b/src/contexts/Api/defaults.ts index f25114adf3..6891f6770b 100644 --- a/src/contexts/Api/defaults.ts +++ b/src/contexts/Api/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { stringToU8a } from '@polkadot/util'; import BigNumber from 'bignumber.js'; diff --git a/src/contexts/Api/index.tsx b/src/contexts/Api/index.tsx index 9a7e80aea5..0c8a7037ab 100644 --- a/src/contexts/Api/index.tsx +++ b/src/contexts/Api/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ApiPromise, WsProvider } from '@polkadot/api'; import { ScProvider } from '@polkadot/rpc-provider/substrate-connect'; diff --git a/src/contexts/Api/types.ts b/src/contexts/Api/types.ts index ddf9b995d8..912573d833 100644 --- a/src/contexts/Api/types.ts +++ b/src/contexts/Api/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { ApiPromise } from '@polkadot/api'; import type { U8aLike } from '@polkadot/util/types'; diff --git a/src/contexts/Balances/Utils.ts b/src/contexts/Balances/Utils.ts index 2d3ace28d3..6dd52796be 100644 --- a/src/contexts/Balances/Utils.ts +++ b/src/contexts/Balances/Utils.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { MaybeAccount } from 'types'; import { defaultLedger } from './defaults'; diff --git a/src/contexts/Balances/defaults.ts b/src/contexts/Balances/defaults.ts index d0919ddee6..723a4c2ed9 100644 --- a/src/contexts/Balances/defaults.ts +++ b/src/contexts/Balances/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import BigNumber from 'bignumber.js'; import type { Balance, BalancesContextInterface, Ledger } from './types'; diff --git a/src/contexts/Balances/index.tsx b/src/contexts/Balances/index.tsx index 6d214e8b2e..54cc448ce9 100644 --- a/src/contexts/Balances/index.tsx +++ b/src/contexts/Balances/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { VoidFn } from '@polkadot/api/types'; import { diff --git a/src/contexts/Balances/types.ts b/src/contexts/Balances/types.ts index fc2e237eaa..0dba4b6098 100644 --- a/src/contexts/Balances/types.ts +++ b/src/contexts/Balances/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type BigNumber from 'bignumber.js'; import type { MaybeAccount } from 'types'; diff --git a/src/contexts/Bonded/defaults.ts b/src/contexts/Bonded/defaults.ts index 8bf09a0e7a..a6b9affbe0 100644 --- a/src/contexts/Bonded/defaults.ts +++ b/src/contexts/Bonded/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { BondedContextInterface, diff --git a/src/contexts/Bonded/index.tsx b/src/contexts/Bonded/index.tsx index 6aa55b4739..efbffaf1b7 100644 --- a/src/contexts/Bonded/index.tsx +++ b/src/contexts/Bonded/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { VoidFn } from '@polkadot/api/types'; import { diff --git a/src/contexts/Bonded/types.ts b/src/contexts/Bonded/types.ts index 1f49462d12..041e5d98a8 100644 --- a/src/contexts/Bonded/types.ts +++ b/src/contexts/Bonded/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { MaybeAccount } from 'types'; diff --git a/src/contexts/Canvas/defaults.ts b/src/contexts/Canvas/defaults.ts index 319913ad46..65b7287305 100644 --- a/src/contexts/Canvas/defaults.ts +++ b/src/contexts/Canvas/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { CanvasContextInterface } from './types'; diff --git a/src/contexts/Canvas/index.tsx b/src/contexts/Canvas/index.tsx index 6cd5f13235..c48f4a3b39 100644 --- a/src/contexts/Canvas/index.tsx +++ b/src/contexts/Canvas/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import React, { useState } from 'react'; import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; diff --git a/src/contexts/Canvas/types.ts b/src/contexts/Canvas/types.ts index 4bc9543c9f..f4823ba917 100644 --- a/src/contexts/Canvas/types.ts +++ b/src/contexts/Canvas/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { ReactNode } from 'react'; diff --git a/src/contexts/Connect/Hooks/useImportExtension.tsx b/src/contexts/Connect/Hooks/useImportExtension.tsx index 8c85a50083..dd0e3b206f 100644 --- a/src/contexts/Connect/Hooks/useImportExtension.tsx +++ b/src/contexts/Connect/Hooks/useImportExtension.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import Keyring from '@polkadot/keyring'; import { isValidAddress } from '@polkadotcloud/utils'; diff --git a/src/contexts/Connect/Utils.ts b/src/contexts/Connect/Utils.ts index d90f28145a..530c7fe608 100644 --- a/src/contexts/Connect/Utils.ts +++ b/src/contexts/Connect/Utils.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import Keyring from '@polkadot/keyring'; import { localStorageOrDefault } from '@polkadotcloud/utils'; diff --git a/src/contexts/Connect/defaults.ts b/src/contexts/Connect/defaults.ts index a7c0f4897d..116edd66a8 100644 --- a/src/contexts/Connect/defaults.ts +++ b/src/contexts/Connect/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { ConnectContextInterface } from 'contexts/Connect/types'; diff --git a/src/contexts/Connect/index.tsx b/src/contexts/Connect/index.tsx index cf2c26d46d..79bd6e07cc 100644 --- a/src/contexts/Connect/index.tsx +++ b/src/contexts/Connect/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { VoidFn } from '@polkadot/api/types'; import Keyring from '@polkadot/keyring'; diff --git a/src/contexts/Connect/types.ts b/src/contexts/Connect/types.ts index 2fe34ed453..465c4c737d 100644 --- a/src/contexts/Connect/types.ts +++ b/src/contexts/Connect/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { ExtensionAccount, diff --git a/src/contexts/Extensions/defaults.ts b/src/contexts/Extensions/defaults.ts index 0b2472df55..d529f8bafb 100644 --- a/src/contexts/Extensions/defaults.ts +++ b/src/contexts/Extensions/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { ExtensionsContextInterface } from './types'; diff --git a/src/contexts/Extensions/index.tsx b/src/contexts/Extensions/index.tsx index 1d88a604e0..96c859c6ea 100644 --- a/src/contexts/Extensions/index.tsx +++ b/src/contexts/Extensions/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { setStateWithRef } from '@polkadotcloud/utils'; import { ExtensionsArray } from '@polkadotcloud/community/extensions'; diff --git a/src/contexts/Extensions/types.ts b/src/contexts/Extensions/types.ts index f2867d3f35..b95b726fcc 100644 --- a/src/contexts/Extensions/types.ts +++ b/src/contexts/Extensions/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { FunctionComponent, SVGProps } from 'react'; import type { AnyApi } from 'types'; diff --git a/src/contexts/Extrinsics/defaults.ts b/src/contexts/Extrinsics/defaults.ts index c9e50c2fa0..3266978c96 100644 --- a/src/contexts/Extrinsics/defaults.ts +++ b/src/contexts/Extrinsics/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { ExtrinsicsContextInterface } from './types'; diff --git a/src/contexts/Extrinsics/index.tsx b/src/contexts/Extrinsics/index.tsx index 14b7a69a9f..54b91e3fac 100644 --- a/src/contexts/Extrinsics/index.tsx +++ b/src/contexts/Extrinsics/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { setStateWithRef } from '@polkadotcloud/utils'; import React, { useRef, useState } from 'react'; diff --git a/src/contexts/Extrinsics/types.ts b/src/contexts/Extrinsics/types.ts index 0bc52031d8..5113f5bca9 100644 --- a/src/contexts/Extrinsics/types.ts +++ b/src/contexts/Extrinsics/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only export interface ExtrinsicsContextInterface { addPending: (n: string) => void; diff --git a/src/contexts/FastUnstake/defaults.ts b/src/contexts/FastUnstake/defaults.ts index ab9ce17d66..57712f3d3b 100644 --- a/src/contexts/FastUnstake/defaults.ts +++ b/src/contexts/FastUnstake/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { FastUnstakeContextInterface, MetaInterface } from './types'; diff --git a/src/contexts/FastUnstake/index.tsx b/src/contexts/FastUnstake/index.tsx index 27d8b923f3..097fcad729 100644 --- a/src/contexts/FastUnstake/index.tsx +++ b/src/contexts/FastUnstake/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { greaterThanZero, diff --git a/src/contexts/FastUnstake/types.ts b/src/contexts/FastUnstake/types.ts index 19795224f3..b903b23000 100644 --- a/src/contexts/FastUnstake/types.ts +++ b/src/contexts/FastUnstake/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type BigNumber from 'bignumber.js'; import type { AnyApi, MaybeAccount } from 'types'; diff --git a/src/contexts/Filters/defaults.ts b/src/contexts/Filters/defaults.ts index 7d9cf49bbd..d73d2a3bff 100644 --- a/src/contexts/Filters/defaults.ts +++ b/src/contexts/Filters/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { FiltersContextInterface } from './types'; diff --git a/src/contexts/Filters/index.tsx b/src/contexts/Filters/index.tsx index a8e020668d..c87e6f45d9 100644 --- a/src/contexts/Filters/index.tsx +++ b/src/contexts/Filters/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import React, { useState } from 'react'; import type { AnyFunction, AnyJson } from 'types'; diff --git a/src/contexts/Filters/types.ts b/src/contexts/Filters/types.ts index c862443276..fa9044c718 100644 --- a/src/contexts/Filters/types.ts +++ b/src/contexts/Filters/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { AnyFunction, AnyJson } from 'types'; diff --git a/src/contexts/Hardware/Ledger.tsx b/src/contexts/Hardware/Ledger.tsx index 3556ec6ea1..bb0c07cc36 100644 --- a/src/contexts/Hardware/Ledger.tsx +++ b/src/contexts/Hardware/Ledger.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import TransportWebHID from '@ledgerhq/hw-transport-webhid'; import { u8aToBuffer } from '@polkadot/util'; diff --git a/src/contexts/Hardware/Utils.tsx b/src/contexts/Hardware/Utils.tsx index 394886597b..13f4c2ce2b 100644 --- a/src/contexts/Hardware/Utils.tsx +++ b/src/contexts/Hardware/Utils.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { localStorageOrDefault } from '@polkadotcloud/utils'; import { LedgerApps } from 'config/ledger'; diff --git a/src/contexts/Hardware/Vault.tsx b/src/contexts/Hardware/Vault.tsx index e21178cee1..abe785beed 100644 --- a/src/contexts/Hardware/Vault.tsx +++ b/src/contexts/Hardware/Vault.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { clipAddress, setStateWithRef } from '@polkadotcloud/utils'; import React, { useEffect, useRef, useState } from 'react'; diff --git a/src/contexts/Hardware/defaults.ts b/src/contexts/Hardware/defaults.ts index d063d52b3e..0b5ba70ec2 100644 --- a/src/contexts/Hardware/defaults.ts +++ b/src/contexts/Hardware/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { LedgerHardwareContextInterface, diff --git a/src/contexts/Hardware/types.ts b/src/contexts/Hardware/types.ts index ae09932ed1..552bbb7f5b 100644 --- a/src/contexts/Hardware/types.ts +++ b/src/contexts/Hardware/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { FunctionComponent, SVGProps } from 'react'; import type { LedgerAccount, VaultAccount } from 'contexts/Connect/types'; diff --git a/src/contexts/Help/defaults.ts b/src/contexts/Help/defaults.ts index 7c81cc68a6..ba12df6873 100644 --- a/src/contexts/Help/defaults.ts +++ b/src/contexts/Help/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { HelpContextInterface } from './types'; diff --git a/src/contexts/Help/index.tsx b/src/contexts/Help/index.tsx index 0ead2573fd..122687d7d1 100644 --- a/src/contexts/Help/index.tsx +++ b/src/contexts/Help/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import React, { useState } from 'react'; import type { MaybeString } from 'types'; diff --git a/src/contexts/Help/types.ts b/src/contexts/Help/types.ts index c9802718f5..f9e1dd646b 100644 --- a/src/contexts/Help/types.ts +++ b/src/contexts/Help/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { ReactNode } from 'react'; import type { MaybeString } from 'types'; diff --git a/src/contexts/Identities/defaults.ts b/src/contexts/Identities/defaults.ts index 909a16ac4a..9b8fc349ff 100644 --- a/src/contexts/Identities/defaults.ts +++ b/src/contexts/Identities/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { IdentitiesContextInterface } from './types'; diff --git a/src/contexts/Identities/index.tsx b/src/contexts/Identities/index.tsx index 1a65e4d9ae..5202d1c3bb 100644 --- a/src/contexts/Identities/index.tsx +++ b/src/contexts/Identities/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { setStateWithRef } from '@polkadotcloud/utils'; import React, { useEffect, useRef, useState } from 'react'; diff --git a/src/contexts/Identities/types.ts b/src/contexts/Identities/types.ts index f9f7171c0e..4af71a55d9 100644 --- a/src/contexts/Identities/types.ts +++ b/src/contexts/Identities/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { AnyMetaBatch } from 'types'; diff --git a/src/contexts/Menu/defaults.ts b/src/contexts/Menu/defaults.ts index 0df004c571..f57f7798a6 100644 --- a/src/contexts/Menu/defaults.ts +++ b/src/contexts/Menu/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { MenuContextInterface } from './types'; diff --git a/src/contexts/Menu/index.tsx b/src/contexts/Menu/index.tsx index 97e4b73c4b..6c93cd6417 100644 --- a/src/contexts/Menu/index.tsx +++ b/src/contexts/Menu/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { RefObject } from 'react'; import React, { useState } from 'react'; diff --git a/src/contexts/Menu/types.ts b/src/contexts/Menu/types.ts index d72d284e6d..229e917b20 100644 --- a/src/contexts/Menu/types.ts +++ b/src/contexts/Menu/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type React from 'react'; import type { RefObject } from 'react'; diff --git a/src/contexts/Migrate/index.tsx b/src/contexts/Migrate/index.tsx index 25f1d873a6..17d7af1a12 100644 --- a/src/contexts/Migrate/index.tsx +++ b/src/contexts/Migrate/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import React, { useState } from 'react'; import { NetworkList } from 'config/networks'; diff --git a/src/contexts/Modal/defaults.ts b/src/contexts/Modal/defaults.ts index e804b4ad46..8fe881a5fd 100644 --- a/src/contexts/Modal/defaults.ts +++ b/src/contexts/Modal/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { ModalContextInterface } from './types'; diff --git a/src/contexts/Modal/index.tsx b/src/contexts/Modal/index.tsx index 76f55e5918..1770ba274b 100644 --- a/src/contexts/Modal/index.tsx +++ b/src/contexts/Modal/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { setStateWithRef } from '@polkadotcloud/utils'; import type { RefObject } from 'react'; diff --git a/src/contexts/Modal/types.ts b/src/contexts/Modal/types.ts index 15e0252bba..da18f764e0 100644 --- a/src/contexts/Modal/types.ts +++ b/src/contexts/Modal/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { RefObject } from 'react'; import type { AnyJson } from 'types'; diff --git a/src/contexts/Network/defaults.ts b/src/contexts/Network/defaults.ts index eecc08f5cb..02af14f760 100644 --- a/src/contexts/Network/defaults.ts +++ b/src/contexts/Network/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import BigNumber from 'bignumber.js'; import type { diff --git a/src/contexts/Network/index.tsx b/src/contexts/Network/index.tsx index dbbb537cb9..6ea16ff32e 100644 --- a/src/contexts/Network/index.tsx +++ b/src/contexts/Network/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { setStateWithRef } from '@polkadotcloud/utils'; import BigNumber from 'bignumber.js'; diff --git a/src/contexts/Network/types.ts b/src/contexts/Network/types.ts index 18da9f7cd5..b3c5dd7e4b 100644 --- a/src/contexts/Network/types.ts +++ b/src/contexts/Network/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type BigNumber from 'bignumber.js'; diff --git a/src/contexts/Notifications/defaults.ts b/src/contexts/Notifications/defaults.ts index 0f15f86eb8..25b5461cd9 100644 --- a/src/contexts/Notifications/defaults.ts +++ b/src/contexts/Notifications/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { NotificationsContextInterface } from './types'; diff --git a/src/contexts/Notifications/index.tsx b/src/contexts/Notifications/index.tsx index 570b9d5d17..70dc237de6 100644 --- a/src/contexts/Notifications/index.tsx +++ b/src/contexts/Notifications/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { setStateWithRef } from '@polkadotcloud/utils'; import React, { useRef, useState } from 'react'; diff --git a/src/contexts/Notifications/types.ts b/src/contexts/Notifications/types.ts index 158df970a5..8936af26cc 100644 --- a/src/contexts/Notifications/types.ts +++ b/src/contexts/Notifications/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only export interface NotificationsContextInterface { addNotification: (n: NotificationItem) => void; diff --git a/src/contexts/Plugins/defaults.ts b/src/contexts/Plugins/defaults.ts index 8daa14e3a9..acae736ecd 100644 --- a/src/contexts/Plugins/defaults.ts +++ b/src/contexts/Plugins/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { PluginsContextInterface } from './types'; diff --git a/src/contexts/Plugins/index.tsx b/src/contexts/Plugins/index.tsx index 91b1a76600..1b908e6770 100644 --- a/src/contexts/Plugins/index.tsx +++ b/src/contexts/Plugins/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { localStorageOrDefault, setStateWithRef } from '@polkadotcloud/utils'; import React, { useRef, useState } from 'react'; diff --git a/src/contexts/Plugins/types.ts b/src/contexts/Plugins/types.ts index 7a23b66922..2ee9ccf8fc 100644 --- a/src/contexts/Plugins/types.ts +++ b/src/contexts/Plugins/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only export interface PluginsContextInterface { togglePlugin: (k: string) => void; diff --git a/src/contexts/Pools/ActivePools/defaults.ts b/src/contexts/Pools/ActivePools/defaults.ts index 4ee4c489aa..3d96f937ec 100644 --- a/src/contexts/Pools/ActivePools/defaults.ts +++ b/src/contexts/Pools/ActivePools/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import BigNumber from 'bignumber.js'; import type { ActivePool, ActivePoolsContextState } from '../types'; diff --git a/src/contexts/Pools/ActivePools/index.tsx b/src/contexts/Pools/ActivePools/index.tsx index 1a92b807b5..067b4b92fe 100644 --- a/src/contexts/Pools/ActivePools/index.tsx +++ b/src/contexts/Pools/ActivePools/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { localStorageOrDefault, setStateWithRef } from '@polkadotcloud/utils'; import BigNumber from 'bignumber.js'; diff --git a/src/contexts/Pools/BondedPools/defaults.ts b/src/contexts/Pools/BondedPools/defaults.ts index cc07a32364..47c39bb932 100644 --- a/src/contexts/Pools/BondedPools/defaults.ts +++ b/src/contexts/Pools/BondedPools/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { BondedPoolsContextState } from '../types'; diff --git a/src/contexts/Pools/BondedPools/index.tsx b/src/contexts/Pools/BondedPools/index.tsx index ab80a236a0..f703a7d222 100644 --- a/src/contexts/Pools/BondedPools/index.tsx +++ b/src/contexts/Pools/BondedPools/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { u8aToString, u8aUnwrapBytes } from '@polkadot/util'; import { setStateWithRef, shuffle } from '@polkadotcloud/utils'; diff --git a/src/contexts/Pools/PoolMembers/defaults.ts b/src/contexts/Pools/PoolMembers/defaults.ts index 5d9f5fe062..6714957c0c 100644 --- a/src/contexts/Pools/PoolMembers/defaults.ts +++ b/src/contexts/Pools/PoolMembers/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { PoolMemberContext } from '../types'; diff --git a/src/contexts/Pools/PoolMembers/index.tsx b/src/contexts/Pools/PoolMembers/index.tsx index aedc928333..c13899f1aa 100644 --- a/src/contexts/Pools/PoolMembers/index.tsx +++ b/src/contexts/Pools/PoolMembers/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { setStateWithRef } from '@polkadotcloud/utils'; import React, { useRef, useState } from 'react'; diff --git a/src/contexts/Pools/PoolMemberships/defaults.ts b/src/contexts/Pools/PoolMemberships/defaults.ts index cc01b294b4..b708431b9a 100644 --- a/src/contexts/Pools/PoolMemberships/defaults.ts +++ b/src/contexts/Pools/PoolMemberships/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { PoolMembership, PoolMembershipsContextState } from '../types'; diff --git a/src/contexts/Pools/PoolMemberships/index.tsx b/src/contexts/Pools/PoolMemberships/index.tsx index db05ca4d49..3a5141e50e 100644 --- a/src/contexts/Pools/PoolMemberships/index.tsx +++ b/src/contexts/Pools/PoolMemberships/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { rmCommas, setStateWithRef } from '@polkadotcloud/utils'; import BigNumber from 'bignumber.js'; diff --git a/src/contexts/Pools/PoolsConfig/defaults.ts b/src/contexts/Pools/PoolsConfig/defaults.ts index c9e4624151..e726d5e388 100644 --- a/src/contexts/Pools/PoolsConfig/defaults.ts +++ b/src/contexts/Pools/PoolsConfig/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import BigNumber from 'bignumber.js'; import type { diff --git a/src/contexts/Pools/PoolsConfig/index.tsx b/src/contexts/Pools/PoolsConfig/index.tsx index c63df1f92c..6a2a0bd9b8 100644 --- a/src/contexts/Pools/PoolsConfig/index.tsx +++ b/src/contexts/Pools/PoolsConfig/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { bnToU8a, u8aConcat } from '@polkadot/util'; import { rmCommas, setStateWithRef } from '@polkadotcloud/utils'; diff --git a/src/contexts/Pools/types.ts b/src/contexts/Pools/types.ts index 81aa3aa5d0..9872747937 100644 --- a/src/contexts/Pools/types.ts +++ b/src/contexts/Pools/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type BigNumber from 'bignumber.js'; import type { AnyApi, AnyJson, AnyMetaBatch, MaybeAccount, Sync } from 'types'; diff --git a/src/contexts/Prompt/defaults.tsx b/src/contexts/Prompt/defaults.tsx index 4eacbc0eab..a841a51d64 100644 --- a/src/contexts/Prompt/defaults.tsx +++ b/src/contexts/Prompt/defaults.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { PromptContextInterface } from './types'; diff --git a/src/contexts/Prompt/index.tsx b/src/contexts/Prompt/index.tsx index 745bbd9d44..173947fb1f 100644 --- a/src/contexts/Prompt/index.tsx +++ b/src/contexts/Prompt/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import React, { useState } from 'react'; import { defaultPromptContext } from './defaults'; diff --git a/src/contexts/Prompt/types.ts b/src/contexts/Prompt/types.ts index 6dea2da7e9..8d79208511 100644 --- a/src/contexts/Prompt/types.ts +++ b/src/contexts/Prompt/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type React from 'react'; import type { MaybeString } from 'types'; diff --git a/src/contexts/Proxies/defaults.ts b/src/contexts/Proxies/defaults.ts index e2b5b02d41..14515443e5 100644 --- a/src/contexts/Proxies/defaults.ts +++ b/src/contexts/Proxies/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { ProxiesContextInterface } from './type'; diff --git a/src/contexts/Proxies/index.tsx b/src/contexts/Proxies/index.tsx index 4d3d6a7061..8afed6d22b 100644 --- a/src/contexts/Proxies/index.tsx +++ b/src/contexts/Proxies/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { VoidFn } from '@polkadot/api/types'; import { diff --git a/src/contexts/Proxies/type.ts b/src/contexts/Proxies/type.ts index a9691b2f4b..ef6ac4d167 100644 --- a/src/contexts/Proxies/type.ts +++ b/src/contexts/Proxies/type.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type BigNumber from 'bignumber.js'; import type { AnyJson, MaybeAccount } from 'types'; diff --git a/src/contexts/Setup/defaults.ts b/src/contexts/Setup/defaults.ts index 8b6cfcb601..a9dd516e14 100644 --- a/src/contexts/Setup/defaults.ts +++ b/src/contexts/Setup/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { NominatorProgress, diff --git a/src/contexts/Setup/index.tsx b/src/contexts/Setup/index.tsx index 36b77f9ab7..a732a406d9 100644 --- a/src/contexts/Setup/index.tsx +++ b/src/contexts/Setup/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { greaterThanZero, diff --git a/src/contexts/Setup/types.ts b/src/contexts/Setup/types.ts index 8c609d9292..a87fe73f13 100644 --- a/src/contexts/Setup/types.ts +++ b/src/contexts/Setup/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { PoolRoles } from 'contexts/Pools/types'; import type { ValidatorPrefs } from 'contexts/Validators/types'; diff --git a/src/contexts/Staking/defaults.ts b/src/contexts/Staking/defaults.ts index d2028c5d8b..d3fdb76df4 100644 --- a/src/contexts/Staking/defaults.ts +++ b/src/contexts/Staking/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import BigNumber from 'bignumber.js'; import type { diff --git a/src/contexts/Staking/index.tsx b/src/contexts/Staking/index.tsx index 31cab3f641..d1743cdcd3 100644 --- a/src/contexts/Staking/index.tsx +++ b/src/contexts/Staking/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { VoidFn } from '@polkadot/api/types'; import { diff --git a/src/contexts/Staking/types.ts b/src/contexts/Staking/types.ts index 7d5b4bbfef..4a3838a13b 100644 --- a/src/contexts/Staking/types.ts +++ b/src/contexts/Staking/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type BigNumber from 'bignumber.js'; import type { PayeeConfig } from 'contexts/Setup/types'; diff --git a/src/contexts/Subscan/defaults.ts b/src/contexts/Subscan/defaults.ts index 0820c41c2d..923fccc676 100644 --- a/src/contexts/Subscan/defaults.ts +++ b/src/contexts/Subscan/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { SubscanContextInterface } from './types'; diff --git a/src/contexts/Subscan/index.tsx b/src/contexts/Subscan/index.tsx index be0cccee5a..cc4d04a0fe 100644 --- a/src/contexts/Subscan/index.tsx +++ b/src/contexts/Subscan/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { isNotZero } from '@polkadotcloud/utils'; import { format, fromUnixTime } from 'date-fns'; diff --git a/src/contexts/Subscan/types.ts b/src/contexts/Subscan/types.ts index 322ab19c7a..c45f2424a5 100644 --- a/src/contexts/Subscan/types.ts +++ b/src/contexts/Subscan/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { AnySubscan } from 'types'; diff --git a/src/contexts/Themes/defaults.ts b/src/contexts/Themes/defaults.ts index 9350f21420..ce06faebb9 100644 --- a/src/contexts/Themes/defaults.ts +++ b/src/contexts/Themes/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { ThemeContextInterface } from './types'; diff --git a/src/contexts/Themes/index.tsx b/src/contexts/Themes/index.tsx index 2a11cded85..8f78a5a84b 100644 --- a/src/contexts/Themes/index.tsx +++ b/src/contexts/Themes/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { setStateWithRef } from '@polkadotcloud/utils'; import React, { useRef } from 'react'; diff --git a/src/contexts/Themes/types.ts b/src/contexts/Themes/types.ts index 4c7fe20aa8..c4e51cecc7 100644 --- a/src/contexts/Themes/types.ts +++ b/src/contexts/Themes/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only export type Theme = 'light' | 'dark'; diff --git a/src/contexts/Tooltip/defaults.ts b/src/contexts/Tooltip/defaults.ts index 414f41a018..2c8a0d0efd 100644 --- a/src/contexts/Tooltip/defaults.ts +++ b/src/contexts/Tooltip/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { TooltipContextInterface } from './types'; diff --git a/src/contexts/Tooltip/index.tsx b/src/contexts/Tooltip/index.tsx index 970d115d7d..a3cb5c2083 100644 --- a/src/contexts/Tooltip/index.tsx +++ b/src/contexts/Tooltip/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { setStateWithRef } from '@polkadotcloud/utils'; import React, { useState } from 'react'; diff --git a/src/contexts/Tooltip/types.ts b/src/contexts/Tooltip/types.ts index 307bdb3d09..f903b8e29c 100644 --- a/src/contexts/Tooltip/types.ts +++ b/src/contexts/Tooltip/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only export interface TooltipContextInterface { openTooltip: () => void; diff --git a/src/contexts/TransferOptions/defaults.ts b/src/contexts/TransferOptions/defaults.ts index 3e6ca76562..6e27a4e4b1 100644 --- a/src/contexts/TransferOptions/defaults.ts +++ b/src/contexts/TransferOptions/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import BigNumber from 'bignumber.js'; import type { TransferOptions, TransferOptionsContextInterface } from './types'; diff --git a/src/contexts/TransferOptions/index.tsx b/src/contexts/TransferOptions/index.tsx index cb9f14b116..1c161c1eae 100644 --- a/src/contexts/TransferOptions/index.tsx +++ b/src/contexts/TransferOptions/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { unitToPlanck } from '@polkadotcloud/utils'; import BigNumber from 'bignumber.js'; diff --git a/src/contexts/TransferOptions/types.ts b/src/contexts/TransferOptions/types.ts index 3ec99c0940..bdca8b64d1 100644 --- a/src/contexts/TransferOptions/types.ts +++ b/src/contexts/TransferOptions/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type BigNumber from 'bignumber.js'; import type { MaybeAccount } from 'types'; diff --git a/src/contexts/TxMeta/defaults.ts b/src/contexts/TxMeta/defaults.ts index 0f3f3a2663..f8fbd4ea42 100644 --- a/src/contexts/TxMeta/defaults.ts +++ b/src/contexts/TxMeta/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import BigNumber from 'bignumber.js'; import type { TxMetaContextInterface } from './types'; diff --git a/src/contexts/TxMeta/index.tsx b/src/contexts/TxMeta/index.tsx index 051eb7a80d..01bc6f14aa 100644 --- a/src/contexts/TxMeta/index.tsx +++ b/src/contexts/TxMeta/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { setStateWithRef } from '@polkadotcloud/utils'; import BigNumber from 'bignumber.js'; diff --git a/src/contexts/TxMeta/types.ts b/src/contexts/TxMeta/types.ts index 4969f1d87d..056bcc8ebd 100644 --- a/src/contexts/TxMeta/types.ts +++ b/src/contexts/TxMeta/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type BigNumber from 'bignumber.js'; import type { AnyJson, MaybeAccount } from 'types'; diff --git a/src/contexts/UI/defaults.ts b/src/contexts/UI/defaults.ts index 24389eb77d..03d7d1cbb3 100644 --- a/src/contexts/UI/defaults.ts +++ b/src/contexts/UI/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { UIContextInterface } from './types'; diff --git a/src/contexts/UI/index.tsx b/src/contexts/UI/index.tsx index eaff894659..c6dd95d738 100644 --- a/src/contexts/UI/index.tsx +++ b/src/contexts/UI/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { localStorageOrDefault, setStateWithRef } from '@polkadotcloud/utils'; import BigNumber from 'bignumber.js'; diff --git a/src/contexts/UI/types.ts b/src/contexts/UI/types.ts index 087acf8958..2615dd0c85 100644 --- a/src/contexts/UI/types.ts +++ b/src/contexts/UI/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only export interface UIContextInterface { setSideMenu: (v: boolean) => void; diff --git a/src/contexts/Validators/defaults.ts b/src/contexts/Validators/defaults.ts index 03a8b04698..37430d7d7c 100644 --- a/src/contexts/Validators/defaults.ts +++ b/src/contexts/Validators/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { ValidatorsContextInterface } from 'contexts/Validators/types'; diff --git a/src/contexts/Validators/index.tsx b/src/contexts/Validators/index.tsx index baa56b3b03..ff9b43e140 100644 --- a/src/contexts/Validators/index.tsx +++ b/src/contexts/Validators/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { greaterThanZero, diff --git a/src/contexts/Validators/types.ts b/src/contexts/Validators/types.ts index ee888430ed..6338738b36 100644 --- a/src/contexts/Validators/types.ts +++ b/src/contexts/Validators/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { AnyMetaBatch } from 'types'; diff --git a/src/library/Account/Wrapper.ts b/src/library/Account/Wrapper.ts index f51d77438b..e97d748a55 100644 --- a/src/library/Account/Wrapper.ts +++ b/src/library/Account/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; import type { WrapperProps } from './types'; diff --git a/src/library/Account/index.tsx b/src/library/Account/index.tsx index beb16a4f3f..320746325f 100644 --- a/src/library/Account/index.tsx +++ b/src/library/Account/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faGlasses } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/library/Account/types.ts b/src/library/Account/types.ts index 9ef3b8d750..0b73143352 100644 --- a/src/library/Account/types.ts +++ b/src/library/Account/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only export interface AccountProps { onClick?: () => void; diff --git a/src/library/AccountInput/Wrapper.ts b/src/library/AccountInput/Wrapper.ts index 5774ab45a9..e88a89a5d6 100644 --- a/src/library/AccountInput/Wrapper.ts +++ b/src/library/AccountInput/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/library/AccountInput/index.tsx b/src/library/AccountInput/index.tsx index 3ace4c39ac..6e9cb6359d 100644 --- a/src/library/AccountInput/index.tsx +++ b/src/library/AccountInput/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faCheck } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/library/AccountInput/types.ts b/src/library/AccountInput/types.ts index 8596c30380..f2a65abe8a 100644 --- a/src/library/AccountInput/types.ts +++ b/src/library/AccountInput/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { AnyApi, MaybeAccount } from 'types'; diff --git a/src/library/BarChart/BarSegment.tsx b/src/library/BarChart/BarSegment.tsx index f7590eb0a2..d2172519db 100644 --- a/src/library/BarChart/BarSegment.tsx +++ b/src/library/BarChart/BarSegment.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { BarSegmentShowLabelThreshold } from './defaults'; import type { BarSegmentProps } from './types'; diff --git a/src/library/BarChart/BondedChart.tsx b/src/library/BarChart/BondedChart.tsx index 99490e3af8..8eb9ac4033 100644 --- a/src/library/BarChart/BondedChart.tsx +++ b/src/library/BarChart/BondedChart.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { greaterThanZero } from '@polkadotcloud/utils'; import BigNumber from 'bignumber.js'; diff --git a/src/library/BarChart/LegendItem.tsx b/src/library/BarChart/LegendItem.tsx index 9684d42b17..f80f29749c 100644 --- a/src/library/BarChart/LegendItem.tsx +++ b/src/library/BarChart/LegendItem.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ButtonHelp } from '@polkadotcloud/core-ui'; import { useHelp } from 'contexts/Help'; diff --git a/src/library/BarChart/Wrappers.ts b/src/library/BarChart/Wrappers.ts index 26e0938f5f..c26a4fe8c0 100644 --- a/src/library/BarChart/Wrappers.ts +++ b/src/library/BarChart/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/library/BarChart/defaults.ts b/src/library/BarChart/defaults.ts index f70e523a7e..7d7eb7ce51 100644 --- a/src/library/BarChart/defaults.ts +++ b/src/library/BarChart/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only // Bar segment width threshold (as a percentage) to display graph labels. export const BarSegmentShowLabelThreshold = 9; diff --git a/src/library/BarChart/types.ts b/src/library/BarChart/types.ts index d2390b226c..84180f05a6 100644 --- a/src/library/BarChart/types.ts +++ b/src/library/BarChart/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type React from 'react'; diff --git a/src/library/Canvas/Wrappers.ts b/src/library/Canvas/Wrappers.ts index 49d409d19c..87c15c8c2a 100644 --- a/src/library/Canvas/Wrappers.ts +++ b/src/library/Canvas/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { motion } from 'framer-motion'; import styled from 'styled-components'; diff --git a/src/library/Canvas/index.tsx b/src/library/Canvas/index.tsx index d1d7afd909..607ea6df37 100644 --- a/src/library/Canvas/index.tsx +++ b/src/library/Canvas/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useAnimation } from 'framer-motion'; import { ModalCanvas, ModalContent, ModalScroll } from '@polkadotcloud/core-ui'; diff --git a/src/library/Card/Wrappers.ts b/src/library/Card/Wrappers.ts index 5686baf21a..b245a16a53 100644 --- a/src/library/Card/Wrappers.ts +++ b/src/library/Card/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; import { SideMenuStickyThreshold } from 'consts'; diff --git a/src/library/Countdown/index.tsx b/src/library/Countdown/index.tsx index c74d0f793c..dc8da539e2 100644 --- a/src/library/Countdown/index.tsx +++ b/src/library/Countdown/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useTranslation } from 'react-i18next'; import type { CountdownProps } from './types'; diff --git a/src/library/Countdown/types.ts b/src/library/Countdown/types.ts index 58b5701e3a..cf96ae2caa 100644 --- a/src/library/Countdown/types.ts +++ b/src/library/Countdown/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { TimeLeftFormatted } from 'library/Hooks/useTimeLeft/types'; diff --git a/src/library/ErrorBoundary/Wrapper.ts b/src/library/ErrorBoundary/Wrapper.ts index dd0534eaf8..412ff6f325 100644 --- a/src/library/ErrorBoundary/Wrapper.ts +++ b/src/library/ErrorBoundary/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/library/ErrorBoundary/index.tsx b/src/library/ErrorBoundary/index.tsx index 940ef1bc4f..ef03007d18 100644 --- a/src/library/ErrorBoundary/index.tsx +++ b/src/library/ErrorBoundary/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faBug } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/library/EstimatedTxFee/Wrapper.ts b/src/library/EstimatedTxFee/Wrapper.ts index b38597122b..ad43da3884 100644 --- a/src/library/EstimatedTxFee/Wrapper.ts +++ b/src/library/EstimatedTxFee/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/library/EstimatedTxFee/index.tsx b/src/library/EstimatedTxFee/index.tsx index 55bf79b5cf..04da783332 100644 --- a/src/library/EstimatedTxFee/index.tsx +++ b/src/library/EstimatedTxFee/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { planckToUnit } from '@polkadotcloud/utils'; import type { Context } from 'react'; diff --git a/src/library/EstimatedTxFee/types.ts b/src/library/EstimatedTxFee/types.ts index 75564a9dce..c139c49779 100644 --- a/src/library/EstimatedTxFee/types.ts +++ b/src/library/EstimatedTxFee/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only export interface EstimatedTxFeeProps { format?: string; diff --git a/src/library/Filter/Container.tsx b/src/library/Filter/Container.tsx index ccf43c15ba..8ebbff912f 100644 --- a/src/library/Filter/Container.tsx +++ b/src/library/Filter/Container.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import React from 'react'; import { Wrapper } from './Wrappers'; diff --git a/src/library/Filter/Item.tsx b/src/library/Filter/Item.tsx index e17091e7c3..999bcf1701 100644 --- a/src/library/Filter/Item.tsx +++ b/src/library/Filter/Item.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { motion } from 'framer-motion'; diff --git a/src/library/Filter/LargeItem.tsx b/src/library/Filter/LargeItem.tsx index 0b9df0d2cf..c6f3b57d54 100644 --- a/src/library/Filter/LargeItem.tsx +++ b/src/library/Filter/LargeItem.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { motion } from 'framer-motion'; diff --git a/src/library/Filter/Tabs.tsx b/src/library/Filter/Tabs.tsx index 597b1dae69..876f879fce 100644 --- a/src/library/Filter/Tabs.tsx +++ b/src/library/Filter/Tabs.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useState } from 'react'; import { useFilters } from 'contexts/Filters'; diff --git a/src/library/Filter/Wrappers.ts b/src/library/Filter/Wrappers.ts index 5ddc157b69..f9790eb847 100644 --- a/src/library/Filter/Wrappers.ts +++ b/src/library/Filter/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/library/Filter/defaults.ts b/src/library/Filter/defaults.ts index fb76870e25..1d92df4d75 100644 --- a/src/library/Filter/defaults.ts +++ b/src/library/Filter/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { ValidatorFilterContextInterface } from './types'; diff --git a/src/library/Filter/types.ts b/src/library/Filter/types.ts index c7ccf71a8a..07c6007394 100644 --- a/src/library/Filter/types.ts +++ b/src/library/Filter/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { IconProp } from '@fortawesome/fontawesome-svg-core'; import type React from 'react'; diff --git a/src/library/Form/Bond/BondFeedback.tsx b/src/library/Form/Bond/BondFeedback.tsx index ba7169f07a..db81423df0 100644 --- a/src/library/Form/Bond/BondFeedback.tsx +++ b/src/library/Form/Bond/BondFeedback.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { planckToUnit, unitToPlanck } from '@polkadotcloud/utils'; import BigNumber from 'bignumber.js'; diff --git a/src/library/Form/Bond/BondInput.tsx b/src/library/Form/Bond/BondInput.tsx index 00ab2c8f69..528489c9d3 100644 --- a/src/library/Form/Bond/BondInput.tsx +++ b/src/library/Form/Bond/BondInput.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ButtonSubmitInvert } from '@polkadotcloud/core-ui'; import BigNumber from 'bignumber.js'; diff --git a/src/library/Form/ClaimPermissionInput/index.tsx b/src/library/Form/ClaimPermissionInput/index.tsx index 8fdf1e32f6..a744de22cb 100644 --- a/src/library/Form/ClaimPermissionInput/index.tsx +++ b/src/library/Form/ClaimPermissionInput/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ActionItem } from '@polkadotcloud/core-ui'; import { useEffect, useState } from 'react'; diff --git a/src/library/Form/CreatePoolStatusBar/Wrapper.ts b/src/library/Form/CreatePoolStatusBar/Wrapper.ts index 0f3e632658..0240cea252 100644 --- a/src/library/Form/CreatePoolStatusBar/Wrapper.ts +++ b/src/library/Form/CreatePoolStatusBar/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/library/Form/CreatePoolStatusBar/index.tsx b/src/library/Form/CreatePoolStatusBar/index.tsx index 393e21b009..88d9d900ca 100644 --- a/src/library/Form/CreatePoolStatusBar/index.tsx +++ b/src/library/Form/CreatePoolStatusBar/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faFlag } from '@fortawesome/free-regular-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/library/Form/MinDelayInput/Wrapper.ts b/src/library/Form/MinDelayInput/Wrapper.ts index 1071c0d64d..c5af7b3c1f 100644 --- a/src/library/Form/MinDelayInput/Wrapper.ts +++ b/src/library/Form/MinDelayInput/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/library/Form/MinDelayInput/index.tsx b/src/library/Form/MinDelayInput/index.tsx index a3c9a2ce4a..f017393ec4 100644 --- a/src/library/Form/MinDelayInput/index.tsx +++ b/src/library/Form/MinDelayInput/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faCaretDown, faCaretUp } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/library/Form/MinDelayInput/types.ts b/src/library/Form/MinDelayInput/types.ts index dbeb80a153..f34b6d0395 100644 --- a/src/library/Form/MinDelayInput/types.ts +++ b/src/library/Form/MinDelayInput/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only export interface MinDelayProps { initial: number; diff --git a/src/library/Form/NominateStatusBar/Wrapper.ts b/src/library/Form/NominateStatusBar/Wrapper.ts index 19a32c4a24..f1481ad27b 100644 --- a/src/library/Form/NominateStatusBar/Wrapper.ts +++ b/src/library/Form/NominateStatusBar/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/library/Form/NominateStatusBar/index.tsx b/src/library/Form/NominateStatusBar/index.tsx index 08528ae649..c598ac8a2a 100644 --- a/src/library/Form/NominateStatusBar/index.tsx +++ b/src/library/Form/NominateStatusBar/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faFlag } from '@fortawesome/free-regular-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/library/Form/Unbond/UnbondFeedback.tsx b/src/library/Form/Unbond/UnbondFeedback.tsx index 6b898ff155..0c51081bff 100644 --- a/src/library/Form/Unbond/UnbondFeedback.tsx +++ b/src/library/Form/Unbond/UnbondFeedback.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { isNotZero, planckToUnit, unitToPlanck } from '@polkadotcloud/utils'; import BigNumber from 'bignumber.js'; diff --git a/src/library/Form/Unbond/UnbondInput.tsx b/src/library/Form/Unbond/UnbondInput.tsx index 5e07ff7ce1..9d3740d55b 100644 --- a/src/library/Form/Unbond/UnbondInput.tsx +++ b/src/library/Form/Unbond/UnbondInput.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ButtonSubmitInvert } from '@polkadotcloud/core-ui'; import { planckToUnit } from '@polkadotcloud/utils'; diff --git a/src/library/Form/Warning/Wrapper.ts b/src/library/Form/Warning/Wrapper.ts index a64d958400..cddd5e03b3 100644 --- a/src/library/Form/Warning/Wrapper.ts +++ b/src/library/Form/Warning/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/library/Form/Warning/index.tsx b/src/library/Form/Warning/index.tsx index 266199b84b..0af8518375 100644 --- a/src/library/Form/Warning/index.tsx +++ b/src/library/Form/Warning/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/library/Form/Wrappers.ts b/src/library/Form/Wrappers.ts index 79560b0c3f..1f80e5f3a7 100644 --- a/src/library/Form/Wrappers.ts +++ b/src/library/Form/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; import { SmallFontSizeMaxWidth } from 'consts'; diff --git a/src/library/Form/types.ts b/src/library/Form/types.ts index a3621f657a..e1efa830da 100644 --- a/src/library/Form/types.ts +++ b/src/library/Form/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type BigNumber from 'bignumber.js'; import type { Balance } from 'contexts/Balances/types'; diff --git a/src/library/GenerateNominations/index.tsx b/src/library/GenerateNominations/index.tsx index 8d5710f7e1..6543d7f683 100644 --- a/src/library/GenerateNominations/index.tsx +++ b/src/library/GenerateNominations/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faChartPie, diff --git a/src/library/GenerateNominations/useFetchMethods.tsx b/src/library/GenerateNominations/useFetchMethods.tsx index 374a91967d..d22877ee78 100644 --- a/src/library/GenerateNominations/useFetchMethods.tsx +++ b/src/library/GenerateNominations/useFetchMethods.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { shuffle } from '@polkadotcloud/utils'; import { useValidators } from 'contexts/Validators'; diff --git a/src/library/Graphs/EraPoints.tsx b/src/library/Graphs/EraPoints.tsx index 3719c8ab93..2f566293e4 100644 --- a/src/library/Graphs/EraPoints.tsx +++ b/src/library/Graphs/EraPoints.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { CategoryScale, diff --git a/src/library/Graphs/PayoutBar.tsx b/src/library/Graphs/PayoutBar.tsx index 07ba9746be..a3e2007210 100644 --- a/src/library/Graphs/PayoutBar.tsx +++ b/src/library/Graphs/PayoutBar.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import BigNumber from 'bignumber.js'; import { diff --git a/src/library/Graphs/PayoutLine.tsx b/src/library/Graphs/PayoutLine.tsx index 1d5550c8fa..021fa9c1b1 100644 --- a/src/library/Graphs/PayoutLine.tsx +++ b/src/library/Graphs/PayoutLine.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import BigNumber from 'bignumber.js'; import { diff --git a/src/library/Graphs/StatBoxPie.tsx b/src/library/Graphs/StatBoxPie.tsx index 64ceb84b86..3bc6902f4c 100644 --- a/src/library/Graphs/StatBoxPie.tsx +++ b/src/library/Graphs/StatBoxPie.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ArcElement, Chart as ChartJS, Tooltip } from 'chart.js'; import { Pie } from 'react-chartjs-2'; diff --git a/src/library/Graphs/Utils.ts b/src/library/Graphs/Utils.ts index 64b3aead5d..4374069c00 100644 --- a/src/library/Graphs/Utils.ts +++ b/src/library/Graphs/Utils.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { greaterThanZero, planckToUnit } from '@polkadotcloud/utils'; import BigNumber from 'bignumber.js'; diff --git a/src/library/Graphs/Wrapper.ts b/src/library/Graphs/Wrapper.ts index 126e63bce2..29ae05fea6 100644 --- a/src/library/Graphs/Wrapper.ts +++ b/src/library/Graphs/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/library/Graphs/types.ts b/src/library/Graphs/types.ts index 6f0462a15f..8354cdf790 100644 --- a/src/library/Graphs/types.ts +++ b/src/library/Graphs/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type BigNumber from 'bignumber.js'; import type { AnySubscan } from 'types'; diff --git a/src/library/Headers/Connect.tsx b/src/library/Headers/Connect.tsx index 57042587fd..a69b97379e 100644 --- a/src/library/Headers/Connect.tsx +++ b/src/library/Headers/Connect.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faPlug, faWallet } from '@fortawesome/free-solid-svg-icons'; import { ButtonText } from '@polkadotcloud/core-ui'; diff --git a/src/library/Headers/Connected.tsx b/src/library/Headers/Connected.tsx index 0e1f516496..fcd539a2be 100644 --- a/src/library/Headers/Connected.tsx +++ b/src/library/Headers/Connected.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; diff --git a/src/library/Headers/SideMenuToggle.tsx b/src/library/Headers/SideMenuToggle.tsx index e6e27aecfc..8a0d111466 100644 --- a/src/library/Headers/SideMenuToggle.tsx +++ b/src/library/Headers/SideMenuToggle.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faBars } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/library/Headers/Spinner.tsx b/src/library/Headers/Spinner.tsx index 1ac13eb1bd..6fa2969dfc 100644 --- a/src/library/Headers/Spinner.tsx +++ b/src/library/Headers/Spinner.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/library/Headers/Wrappers.ts b/src/library/Headers/Wrappers.ts index ddc2fc4e3f..8764a41a91 100644 --- a/src/library/Headers/Wrappers.ts +++ b/src/library/Headers/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { motion } from 'framer-motion'; import styled from 'styled-components'; diff --git a/src/library/Headers/index.tsx b/src/library/Headers/index.tsx index 15f9fa76fa..57e3f3e8ce 100644 --- a/src/library/Headers/index.tsx +++ b/src/library/Headers/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { pageFromUri } from '@polkadotcloud/utils'; import { useLocation } from 'react-router-dom'; diff --git a/src/library/Help/Items/ActiveDefinition.tsx b/src/library/Help/Items/ActiveDefinition.tsx index 9373befae0..b84857741b 100644 --- a/src/library/Help/Items/ActiveDefinition.tsx +++ b/src/library/Help/Items/ActiveDefinition.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { DefinitionWrapper } from '../Wrappers'; diff --git a/src/library/Help/Items/Definition.tsx b/src/library/Help/Items/Definition.tsx index 5741064ff3..5235b786d6 100644 --- a/src/library/Help/Items/Definition.tsx +++ b/src/library/Help/Items/Definition.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { RefObject } from 'react'; import { useEffect, useRef, useState } from 'react'; diff --git a/src/library/Help/Items/External.tsx b/src/library/Help/Items/External.tsx index 1bd4e73c51..30416e97c6 100644 --- a/src/library/Help/Items/External.tsx +++ b/src/library/Help/Items/External.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faExternalLinkAlt as faExt } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/library/Help/Wrappers.ts b/src/library/Help/Wrappers.ts index 6ea644af23..3dd3a0594e 100644 --- a/src/library/Help/Wrappers.ts +++ b/src/library/Help/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { motion } from 'framer-motion'; import styled from 'styled-components'; diff --git a/src/library/Help/index.tsx b/src/library/Help/index.tsx index a8e246844f..f3cbd1f483 100644 --- a/src/library/Help/index.tsx +++ b/src/library/Help/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faTimes } from '@fortawesome/free-solid-svg-icons'; import { diff --git a/src/library/Hooks/index.tsx b/src/library/Hooks/index.tsx index 0a6f476717..0884e89622 100644 --- a/src/library/Hooks/index.tsx +++ b/src/library/Hooks/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useEffect } from 'react'; diff --git a/src/library/Hooks/useBatchCall/index.tsx b/src/library/Hooks/useBatchCall/index.tsx index 34bbb3f786..cfe9bcb7ab 100644 --- a/src/library/Hooks/useBatchCall/index.tsx +++ b/src/library/Hooks/useBatchCall/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; diff --git a/src/library/Hooks/useBlockNumber/index.tsx b/src/library/Hooks/useBlockNumber/index.tsx index c2a39a03bc..651ce2cc00 100644 --- a/src/library/Hooks/useBlockNumber/index.tsx +++ b/src/library/Hooks/useBlockNumber/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { rmCommas } from '@polkadotcloud/utils'; import BigNumber from 'bignumber.js'; diff --git a/src/library/Hooks/useBondGreatestFee/index.tsx b/src/library/Hooks/useBondGreatestFee/index.tsx index ec42deb7a9..172bd44331 100644 --- a/src/library/Hooks/useBondGreatestFee/index.tsx +++ b/src/library/Hooks/useBondGreatestFee/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import BigNumber from 'bignumber.js'; import { useEffect, useMemo, useState } from 'react'; diff --git a/src/library/Hooks/useBuildPayload/index.tsx b/src/library/Hooks/useBuildPayload/index.tsx index 4e9cce7170..230e24e25c 100644 --- a/src/library/Hooks/useBuildPayload/index.tsx +++ b/src/library/Hooks/useBuildPayload/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useApi } from 'contexts/Api'; import { useBalances } from 'contexts/Balances'; diff --git a/src/library/Hooks/useDotLottieButton/index.tsx b/src/library/Hooks/useDotLottieButton/index.tsx index 5019d2052a..8b396163aa 100644 --- a/src/library/Hooks/useDotLottieButton/index.tsx +++ b/src/library/Hooks/useDotLottieButton/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useEffect, useRef, useState } from 'react'; import { BaseURL } from 'consts'; diff --git a/src/library/Hooks/useEffectIgnoreInitial/index.tsx b/src/library/Hooks/useEffectIgnoreInitial/index.tsx index ba3a1aa97c..73f7ecf1dc 100644 --- a/src/library/Hooks/useEffectIgnoreInitial/index.tsx +++ b/src/library/Hooks/useEffectIgnoreInitial/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useEffect, useRef } from 'react'; import type { AnyApi, AnyFunction } from 'types'; diff --git a/src/library/Hooks/useEraTimeLeft/index.tsx b/src/library/Hooks/useEraTimeLeft/index.tsx index 5ca6a36872..42623e58c3 100644 --- a/src/library/Hooks/useEraTimeLeft/index.tsx +++ b/src/library/Hooks/useEraTimeLeft/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import BigNumber from 'bignumber.js'; import { getUnixTime } from 'date-fns'; diff --git a/src/library/Hooks/useErasToTimeLeft/index.tsx b/src/library/Hooks/useErasToTimeLeft/index.tsx index 1743aad5e4..8ffc279298 100644 --- a/src/library/Hooks/useErasToTimeLeft/index.tsx +++ b/src/library/Hooks/useErasToTimeLeft/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { greaterThanZero } from '@polkadotcloud/utils'; import type BigNumber from 'bignumber.js'; diff --git a/src/library/Hooks/useFillVariables/index.tsx b/src/library/Hooks/useFillVariables/index.tsx index 216a762fd9..78baabc531 100644 --- a/src/library/Hooks/useFillVariables/index.tsx +++ b/src/library/Hooks/useFillVariables/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { capitalizeFirstLetter, planckToUnit } from '@polkadotcloud/utils'; import { useApi } from 'contexts/Api'; diff --git a/src/library/Hooks/useFillVariables/types.ts b/src/library/Hooks/useFillVariables/types.ts index 3d7c601370..0bd4de61e7 100644 --- a/src/library/Hooks/useFillVariables/types.ts +++ b/src/library/Hooks/useFillVariables/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only export interface FillVariableItem { title: string; diff --git a/src/library/Hooks/useInflation/index.tsx b/src/library/Hooks/useInflation/index.tsx index 15f81347c6..f8c1516672 100644 --- a/src/library/Hooks/useInflation/index.tsx +++ b/src/library/Hooks/useInflation/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import BigNumber from 'bignumber.js'; import { useApi } from 'contexts/Api'; diff --git a/src/library/Hooks/useLedgerLoop/index.tsx b/src/library/Hooks/useLedgerLoop/index.tsx index b2c212ec8a..5fcc08eed7 100644 --- a/src/library/Hooks/useLedgerLoop/index.tsx +++ b/src/library/Hooks/useLedgerLoop/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useApi } from 'contexts/Api'; import { useLedgerHardware } from 'contexts/Hardware/Ledger'; diff --git a/src/library/Hooks/useLedgerLoop/types.ts b/src/library/Hooks/useLedgerLoop/types.ts index ca4ee2e267..2e4b5aa817 100644 --- a/src/library/Hooks/useLedgerLoop/types.ts +++ b/src/library/Hooks/useLedgerLoop/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { LedgerTask } from 'contexts/Hardware/types'; import type { AnyJson } from 'types'; diff --git a/src/library/Hooks/useNominationStatus/index.tsx b/src/library/Hooks/useNominationStatus/index.tsx index bbd6aae1b5..e9c34ec4c1 100644 --- a/src/library/Hooks/useNominationStatus/index.tsx +++ b/src/library/Hooks/useNominationStatus/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { planckToUnit, rmCommas } from '@polkadotcloud/utils'; import BigNumber from 'bignumber.js'; diff --git a/src/library/Hooks/usePayeeConfig/index.tsx b/src/library/Hooks/usePayeeConfig/index.tsx index 5449f56812..b0749ce9fd 100644 --- a/src/library/Hooks/usePayeeConfig/index.tsx +++ b/src/library/Hooks/usePayeeConfig/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { IconProp } from '@fortawesome/fontawesome-svg-core'; import { diff --git a/src/library/Hooks/usePoolCommission/index.tsx b/src/library/Hooks/usePoolCommission/index.tsx index 4e5c217c83..7358421f84 100644 --- a/src/library/Hooks/usePoolCommission/index.tsx +++ b/src/library/Hooks/usePoolCommission/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useBondedPools } from 'contexts/Pools/BondedPools'; import { usePoolsConfig } from 'contexts/Pools/PoolsConfig'; diff --git a/src/library/Hooks/usePrices/index.tsx b/src/library/Hooks/usePrices/index.tsx index dd8a9b94fd..b43fda713a 100644 --- a/src/library/Hooks/usePrices/index.tsx +++ b/src/library/Hooks/usePrices/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useEffect, useRef, useState } from 'react'; import { useApi } from 'contexts/Api'; diff --git a/src/library/Hooks/useProxySupported/index.tsx b/src/library/Hooks/useProxySupported/index.tsx index e2218e2c52..5fea5d6728 100644 --- a/src/library/Hooks/useProxySupported/index.tsx +++ b/src/library/Hooks/useProxySupported/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { UnsupportedIfUniqueController, diff --git a/src/library/Hooks/useSignerWarnings/index.tsx b/src/library/Hooks/useSignerWarnings/index.tsx index 7c81cb12ec..47baff1490 100644 --- a/src/library/Hooks/useSignerWarnings/index.tsx +++ b/src/library/Hooks/useSignerWarnings/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; diff --git a/src/library/Hooks/useSize/index.tsx b/src/library/Hooks/useSize/index.tsx index 99e5970027..e6c07df999 100644 --- a/src/library/Hooks/useSize/index.tsx +++ b/src/library/Hooks/useSize/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import throttle from 'lodash.throttle'; import React from 'react'; diff --git a/src/library/Hooks/useSubmitExtrinsic/index.tsx b/src/library/Hooks/useSubmitExtrinsic/index.tsx index e89d756c85..f7be07bc33 100644 --- a/src/library/Hooks/useSubmitExtrinsic/index.tsx +++ b/src/library/Hooks/useSubmitExtrinsic/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import BigNumber from 'bignumber.js'; import { useEffect, useRef, useState } from 'react'; diff --git a/src/library/Hooks/useSubmitExtrinsic/types.ts b/src/library/Hooks/useSubmitExtrinsic/types.ts index 855dc95239..0cdb8f7f9e 100644 --- a/src/library/Hooks/useSubmitExtrinsic/types.ts +++ b/src/library/Hooks/useSubmitExtrinsic/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { AnyApi, MaybeAccount } from 'types'; diff --git a/src/library/Hooks/useTimeLeft/defaults.ts b/src/library/Hooks/useTimeLeft/defaults.ts index 7c9abe810b..3175e6e05d 100644 --- a/src/library/Hooks/useTimeLeft/defaults.ts +++ b/src/library/Hooks/useTimeLeft/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { TimeleftDuration } from './types'; diff --git a/src/library/Hooks/useTimeLeft/index.tsx b/src/library/Hooks/useTimeLeft/index.tsx index 3d9a850e48..5a17e63fdd 100644 --- a/src/library/Hooks/useTimeLeft/index.tsx +++ b/src/library/Hooks/useTimeLeft/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { setStateWithRef } from '@polkadotcloud/utils'; import { useEffect, useRef, useState } from 'react'; diff --git a/src/library/Hooks/useTimeLeft/utils.ts b/src/library/Hooks/useTimeLeft/utils.ts index b6c9cb2f2a..daf1e843ed 100644 --- a/src/library/Hooks/useTimeLeft/utils.ts +++ b/src/library/Hooks/useTimeLeft/utils.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { differenceInDays, diff --git a/src/library/Hooks/useUnitPrice/index.tsx b/src/library/Hooks/useUnitPrice/index.tsx index 57153ec9a8..c93e10a2ed 100644 --- a/src/library/Hooks/useUnitPrice/index.tsx +++ b/src/library/Hooks/useUnitPrice/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { NetworkList } from 'config/networks'; import { ApiEndpoints } from 'consts'; diff --git a/src/library/Hooks/useUnstaking/index.tsx b/src/library/Hooks/useUnstaking/index.tsx index d169ec5229..f93481d10a 100644 --- a/src/library/Hooks/useUnstaking/index.tsx +++ b/src/library/Hooks/useUnstaking/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/library/Hooks/useValidatorFilters/index.tsx b/src/library/Hooks/useValidatorFilters/index.tsx index 0bde49f067..33321130ce 100644 --- a/src/library/Hooks/useValidatorFilters/index.tsx +++ b/src/library/Hooks/useValidatorFilters/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { u8aToString, u8aUnwrapBytes } from '@polkadot/util'; import { useTranslation } from 'react-i18next'; diff --git a/src/library/Identicon/Wrapper.ts b/src/library/Identicon/Wrapper.ts index da808d4cf7..48cce5d70e 100644 --- a/src/library/Identicon/Wrapper.ts +++ b/src/library/Identicon/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/library/Identicon/circles.tsx b/src/library/Identicon/circles.tsx index 60caaad8fa..25716cc3c6 100644 --- a/src/library/Identicon/circles.tsx +++ b/src/library/Identicon/circles.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { Circle } from './types'; diff --git a/src/library/Identicon/colors.ts b/src/library/Identicon/colors.ts index 74bd43ca6b..31195f6516 100644 --- a/src/library/Identicon/colors.ts +++ b/src/library/Identicon/colors.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { blake2AsU8a, decodeAddress } from '@polkadot/util-crypto'; import { SCHEMA, findScheme } from './scheme'; diff --git a/src/library/Identicon/index.tsx b/src/library/Identicon/index.tsx index b487c51b5a..c34887f6af 100644 --- a/src/library/Identicon/index.tsx +++ b/src/library/Identicon/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useCallback } from 'react'; import { getCircleXY, OUTER_CIRCLE, renderCircle, Z } from './circles'; diff --git a/src/library/Identicon/scheme.ts b/src/library/Identicon/scheme.ts index 4115ca3fb3..b748c4a2b2 100644 --- a/src/library/Identicon/scheme.ts +++ b/src/library/Identicon/scheme.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { Scheme } from './types'; diff --git a/src/library/Identicon/types.ts b/src/library/Identicon/types.ts index 84c6f42148..a39450e49f 100644 --- a/src/library/Identicon/types.ts +++ b/src/library/Identicon/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only export interface Circle { cx: number; diff --git a/src/library/Import/Confirm.tsx b/src/library/Import/Confirm.tsx index d7a53ef2f5..d9324373bc 100644 --- a/src/library/Import/Confirm.tsx +++ b/src/library/Import/Confirm.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-live authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ButtonMono, ButtonMonoInvert } from '@polkadotcloud/core-ui'; import { useTranslation } from 'react-i18next'; diff --git a/src/library/Import/Heading.tsx b/src/library/Import/Heading.tsx index 953f5d30da..2b5c7613c2 100644 --- a/src/library/Import/Heading.tsx +++ b/src/library/Import/Heading.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-live authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faChevronRight, diff --git a/src/library/Import/NoAccounts.tsx b/src/library/Import/NoAccounts.tsx index 5a1068584e..093546f2b7 100644 --- a/src/library/Import/NoAccounts.tsx +++ b/src/library/Import/NoAccounts.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faChevronLeft } from '@fortawesome/free-solid-svg-icons'; import { ButtonSecondary } from '@polkadotcloud/core-ui'; diff --git a/src/library/Import/Remove.tsx b/src/library/Import/Remove.tsx index 1374292836..def133aef5 100644 --- a/src/library/Import/Remove.tsx +++ b/src/library/Import/Remove.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-live authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ButtonMono, ButtonMonoInvert } from '@polkadotcloud/core-ui'; import { useTranslation } from 'react-i18next'; diff --git a/src/library/Import/Wrappers.ts b/src/library/Import/Wrappers.ts index 2a3625a5f2..7c1290e0c7 100644 --- a/src/library/Import/Wrappers.ts +++ b/src/library/Import/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-live authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/library/List/MotionContainer.tsx b/src/library/List/MotionContainer.tsx index 4fac91e3a0..f7638b7fc9 100644 --- a/src/library/List/MotionContainer.tsx +++ b/src/library/List/MotionContainer.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { motion } from 'framer-motion'; import React from 'react'; diff --git a/src/library/List/Pagination.tsx b/src/library/List/Pagination.tsx index 16ed0752e5..64075eb952 100644 --- a/src/library/List/Pagination.tsx +++ b/src/library/List/Pagination.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/library/List/SearchInput.tsx b/src/library/List/SearchInput.tsx index a7b41bcb09..77c3969b30 100644 --- a/src/library/List/SearchInput.tsx +++ b/src/library/List/SearchInput.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import React from 'react'; import { SearchInputWrapper } from '.'; diff --git a/src/library/List/Selectable.tsx b/src/library/List/Selectable.tsx index 5c17958f7c..5891d5590e 100644 --- a/src/library/List/Selectable.tsx +++ b/src/library/List/Selectable.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { useTranslation } from 'react-i18next'; diff --git a/src/library/List/context.tsx b/src/library/List/context.tsx index 409403138e..928447146a 100644 --- a/src/library/List/context.tsx +++ b/src/library/List/context.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import React, { useState } from 'react'; import * as defaults from './defaults'; diff --git a/src/library/List/defaults.ts b/src/library/List/defaults.ts index 6fdf217cdb..72bf30b512 100644 --- a/src/library/List/defaults.ts +++ b/src/library/List/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only /* eslint-disable @typescript-eslint/no-unused-vars */ export const defaultContext = { diff --git a/src/library/List/index.ts b/src/library/List/index.ts index c6b8c4c79f..c3ca3cb781 100644 --- a/src/library/List/index.ts +++ b/src/library/List/index.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; import type { ListProps, PaginationWrapperProps } from './types'; diff --git a/src/library/List/types.ts b/src/library/List/types.ts index 308c82d070..443c9f2fbf 100644 --- a/src/library/List/types.ts +++ b/src/library/List/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type React from 'react'; diff --git a/src/library/ListItem/Labels/Blocked.tsx b/src/library/ListItem/Labels/Blocked.tsx index 75a84b2a2c..97d96ea768 100644 --- a/src/library/ListItem/Labels/Blocked.tsx +++ b/src/library/ListItem/Labels/Blocked.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faUserSlash } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/library/ListItem/Labels/Commission.tsx b/src/library/ListItem/Labels/Commission.tsx index e1a44983c2..984d288613 100644 --- a/src/library/ListItem/Labels/Commission.tsx +++ b/src/library/ListItem/Labels/Commission.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useTranslation } from 'react-i18next'; import { useTooltip } from 'contexts/Tooltip'; diff --git a/src/library/ListItem/Labels/CopyAddress.tsx b/src/library/ListItem/Labels/CopyAddress.tsx index 1ab609a964..06e148dda1 100644 --- a/src/library/ListItem/Labels/CopyAddress.tsx +++ b/src/library/ListItem/Labels/CopyAddress.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faCopy } from '@fortawesome/free-regular-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/library/ListItem/Labels/EraStatus.tsx b/src/library/ListItem/Labels/EraStatus.tsx index 542f2a792d..4d0e3eb0c2 100644 --- a/src/library/ListItem/Labels/EraStatus.tsx +++ b/src/library/ListItem/Labels/EraStatus.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { capitalizeFirstLetter, diff --git a/src/library/ListItem/Labels/FavoritePool.tsx b/src/library/ListItem/Labels/FavoritePool.tsx index 8ce0f7b0d2..8153365408 100644 --- a/src/library/ListItem/Labels/FavoritePool.tsx +++ b/src/library/ListItem/Labels/FavoritePool.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faHeart as faHeartRegular } from '@fortawesome/free-regular-svg-icons'; import { faHeart } from '@fortawesome/free-solid-svg-icons'; diff --git a/src/library/ListItem/Labels/FavoriteValidator.tsx b/src/library/ListItem/Labels/FavoriteValidator.tsx index dc1a34ee6d..7be27d77a5 100644 --- a/src/library/ListItem/Labels/FavoriteValidator.tsx +++ b/src/library/ListItem/Labels/FavoriteValidator.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faHeart as faHeartRegular } from '@fortawesome/free-regular-svg-icons'; import { faHeart } from '@fortawesome/free-solid-svg-icons'; diff --git a/src/library/ListItem/Labels/Identity.tsx b/src/library/ListItem/Labels/Identity.tsx index 31a8c8ac2b..7bc3ef3abf 100644 --- a/src/library/ListItem/Labels/Identity.tsx +++ b/src/library/ListItem/Labels/Identity.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { clipAddress } from '@polkadotcloud/utils'; import { useEffect, useState } from 'react'; diff --git a/src/library/ListItem/Labels/JoinPool.tsx b/src/library/ListItem/Labels/JoinPool.tsx index dead4fbcdd..2ff70308b3 100644 --- a/src/library/ListItem/Labels/JoinPool.tsx +++ b/src/library/ListItem/Labels/JoinPool.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faCaretRight } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/library/ListItem/Labels/Members.tsx b/src/library/ListItem/Labels/Members.tsx index 62901247f2..bf7d08db70 100644 --- a/src/library/ListItem/Labels/Members.tsx +++ b/src/library/ListItem/Labels/Members.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faUsers } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/library/ListItem/Labels/Metrics.tsx b/src/library/ListItem/Labels/Metrics.tsx index 41c6ebd12a..592816d287 100644 --- a/src/library/ListItem/Labels/Metrics.tsx +++ b/src/library/ListItem/Labels/Metrics.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faChartLine } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/library/ListItem/Labels/NominationStatus.tsx b/src/library/ListItem/Labels/NominationStatus.tsx index 4df6d8d198..89969c515f 100644 --- a/src/library/ListItem/Labels/NominationStatus.tsx +++ b/src/library/ListItem/Labels/NominationStatus.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { greaterThanZero, planckToUnit, rmCommas } from '@polkadotcloud/utils'; import BigNumber from 'bignumber.js'; diff --git a/src/library/ListItem/Labels/Oversubscribed.tsx b/src/library/ListItem/Labels/Oversubscribed.tsx index 5650178d7b..bd81fbf386 100644 --- a/src/library/ListItem/Labels/Oversubscribed.tsx +++ b/src/library/ListItem/Labels/Oversubscribed.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/library/ListItem/Labels/ParaValidator.tsx b/src/library/ListItem/Labels/ParaValidator.tsx index e008704190..51c413362a 100644 --- a/src/library/ListItem/Labels/ParaValidator.tsx +++ b/src/library/ListItem/Labels/ParaValidator.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faCubes } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/library/ListItem/Labels/PoolBonded.tsx b/src/library/ListItem/Labels/PoolBonded.tsx index a3a79222d5..138a1717d1 100644 --- a/src/library/ListItem/Labels/PoolBonded.tsx +++ b/src/library/ListItem/Labels/PoolBonded.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { capitalizeFirstLetter, diff --git a/src/library/ListItem/Labels/PoolCommission.tsx b/src/library/ListItem/Labels/PoolCommission.tsx index d412acd5d6..51b56b83c4 100644 --- a/src/library/ListItem/Labels/PoolCommission.tsx +++ b/src/library/ListItem/Labels/PoolCommission.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useTranslation } from 'react-i18next'; import { useTooltip } from 'contexts/Tooltip'; diff --git a/src/library/ListItem/Labels/PoolId.tsx b/src/library/ListItem/Labels/PoolId.tsx index 9373f23a24..97da6b9600 100644 --- a/src/library/ListItem/Labels/PoolId.tsx +++ b/src/library/ListItem/Labels/PoolId.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faHashtag } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/library/ListItem/Labels/PoolIdentity.tsx b/src/library/ListItem/Labels/PoolIdentity.tsx index c340af089c..df58cf01b9 100644 --- a/src/library/ListItem/Labels/PoolIdentity.tsx +++ b/src/library/ListItem/Labels/PoolIdentity.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { clipAddress, determinePoolDisplay } from '@polkadotcloud/utils'; import { useBondedPools } from 'contexts/Pools/BondedPools'; diff --git a/src/library/ListItem/Labels/PoolMemberBonded.tsx b/src/library/ListItem/Labels/PoolMemberBonded.tsx index 5e10eb02a6..6a08f8db0b 100644 --- a/src/library/ListItem/Labels/PoolMemberBonded.tsx +++ b/src/library/ListItem/Labels/PoolMemberBonded.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { greaterThanZero, planckToUnit, rmCommas } from '@polkadotcloud/utils'; import BigNumber from 'bignumber.js'; diff --git a/src/library/ListItem/Labels/Select.tsx b/src/library/ListItem/Labels/Select.tsx index 94c4674749..45e56f5722 100644 --- a/src/library/ListItem/Labels/Select.tsx +++ b/src/library/ListItem/Labels/Select.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faCheck } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/library/ListItem/Wrappers.ts b/src/library/ListItem/Wrappers.ts index b79164f85a..0188ce979b 100644 --- a/src/library/ListItem/Wrappers.ts +++ b/src/library/ListItem/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { motion } from 'framer-motion'; import styled from 'styled-components'; diff --git a/src/library/ListItem/types.ts b/src/library/ListItem/types.ts index 43c7b3c731..436b4ad3da 100644 --- a/src/library/ListItem/types.ts +++ b/src/library/ListItem/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type React from 'react'; import type { BondedPool } from 'contexts/Pools/types'; diff --git a/src/library/Loader/Announcement.tsx b/src/library/Loader/Announcement.tsx index 1b4017a001..3d78af0dac 100644 --- a/src/library/Loader/Announcement.tsx +++ b/src/library/Loader/Announcement.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { LoaderWrapper } from './Wrapper'; diff --git a/src/library/Loader/Wrapper.ts b/src/library/Loader/Wrapper.ts index b7d8329911..0ede1b1103 100644 --- a/src/library/Loader/Wrapper.ts +++ b/src/library/Loader/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/library/Menu/Wrappers.ts b/src/library/Menu/Wrappers.ts index 85e970fef6..02906fc2e5 100644 --- a/src/library/Menu/Wrappers.ts +++ b/src/library/Menu/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; import { FloatingMenuWidth } from 'consts'; diff --git a/src/library/Menu/index.tsx b/src/library/Menu/index.tsx index 9198f73777..d6149f4743 100644 --- a/src/library/Menu/index.tsx +++ b/src/library/Menu/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useEffect, useRef } from 'react'; import { useMenu } from 'contexts/Menu'; diff --git a/src/library/Modal/Close.tsx b/src/library/Modal/Close.tsx index e3c0baae36..0acb6ea222 100644 --- a/src/library/Modal/Close.tsx +++ b/src/library/Modal/Close.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useModal } from 'contexts/Modal'; import { ReactComponent as CrossSVG } from 'img/cross.svg'; diff --git a/src/library/Modal/Title.tsx b/src/library/Modal/Title.tsx index 5144a33b48..66e5f3eb97 100644 --- a/src/library/Modal/Title.tsx +++ b/src/library/Modal/Title.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { IconProp } from '@fortawesome/fontawesome-svg-core'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/library/Modal/Wrappers.ts b/src/library/Modal/Wrappers.ts index 31fe4257eb..198d793454 100644 --- a/src/library/Modal/Wrappers.ts +++ b/src/library/Modal/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/library/NetworkBar/Status.tsx b/src/library/NetworkBar/Status.tsx index adeb5cbd39..1a429847e7 100644 --- a/src/library/NetworkBar/Status.tsx +++ b/src/library/NetworkBar/Status.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { motion } from 'framer-motion'; import { useTranslation } from 'react-i18next'; diff --git a/src/library/NetworkBar/Wrappers.ts b/src/library/NetworkBar/Wrappers.ts index b888b8cbba..f40e82fb89 100644 --- a/src/library/NetworkBar/Wrappers.ts +++ b/src/library/NetworkBar/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; import { SideMenuStickyThreshold } from 'consts'; diff --git a/src/library/NetworkBar/index.tsx b/src/library/NetworkBar/index.tsx index d2093c4361..82d8341397 100644 --- a/src/library/NetworkBar/index.tsx +++ b/src/library/NetworkBar/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { capitalizeFirstLetter } from '@polkadotcloud/utils'; import { useEffect, useState } from 'react'; diff --git a/src/library/Notifications/Wrapper.ts b/src/library/Notifications/Wrapper.ts index dbdb828a35..28b7710e6b 100644 --- a/src/library/Notifications/Wrapper.ts +++ b/src/library/Notifications/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/library/Notifications/index.tsx b/src/library/Notifications/index.tsx index 79ceff100f..cb52cb1d0d 100644 --- a/src/library/Notifications/index.tsx +++ b/src/library/Notifications/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { AnimatePresence, motion } from 'framer-motion'; import { useNotifications } from 'contexts/Notifications'; diff --git a/src/library/Overlay/index.tsx b/src/library/Overlay/index.tsx index e0ffe8134c..dcbca81e4f 100644 --- a/src/library/Overlay/index.tsx +++ b/src/library/Overlay/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ModalOverlay } from '@polkadotcloud/core-ui'; import { useAnimation } from 'framer-motion'; diff --git a/src/library/PayeeInput/Wrapper.ts b/src/library/PayeeInput/Wrapper.ts index c91faf960c..75e563c9ba 100644 --- a/src/library/PayeeInput/Wrapper.ts +++ b/src/library/PayeeInput/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/library/PayeeInput/index.tsx b/src/library/PayeeInput/index.tsx index 5dc86a00f2..1e395e7dda 100644 --- a/src/library/PayeeInput/index.tsx +++ b/src/library/PayeeInput/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faCheck } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/library/PayeeInput/types.ts b/src/library/PayeeInput/types.ts index 28b84e6e48..fecdc67b01 100644 --- a/src/library/PayeeInput/types.ts +++ b/src/library/PayeeInput/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { Dispatch, SetStateAction } from 'react'; import type { PayeeConfig } from 'contexts/Setup/types'; diff --git a/src/library/Pool/index.tsx b/src/library/Pool/index.tsx index 82be5821e1..87fb10e158 100644 --- a/src/library/Pool/index.tsx +++ b/src/library/Pool/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faCopy } from '@fortawesome/free-regular-svg-icons'; import { faBars, faProjectDiagram } from '@fortawesome/free-solid-svg-icons'; diff --git a/src/library/Pool/types.ts b/src/library/Pool/types.ts index 12beded19f..6c463b447f 100644 --- a/src/library/Pool/types.ts +++ b/src/library/Pool/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { PoolAddresses, PoolRoles, PoolState } from 'contexts/Pools/types'; diff --git a/src/library/PoolAccount/Wrapper.ts b/src/library/PoolAccount/Wrapper.ts index ca5e18d110..95759ddb8e 100644 --- a/src/library/PoolAccount/Wrapper.ts +++ b/src/library/PoolAccount/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; import type { WrapperProps } from './types'; diff --git a/src/library/PoolAccount/index.tsx b/src/library/PoolAccount/index.tsx index 21b59a5020..bb996c1b03 100644 --- a/src/library/PoolAccount/index.tsx +++ b/src/library/PoolAccount/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { u8aToString, u8aUnwrapBytes } from '@polkadot/util'; import { clipAddress, remToUnit } from '@polkadotcloud/utils'; diff --git a/src/library/PoolAccount/types.ts b/src/library/PoolAccount/types.ts index f49ba20b40..c2af9a749f 100644 --- a/src/library/PoolAccount/types.ts +++ b/src/library/PoolAccount/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only export interface PoolAccountProps { label?: string; diff --git a/src/library/PoolList/Default.tsx b/src/library/PoolList/Default.tsx index 70a3df4275..6fea42c187 100644 --- a/src/library/PoolList/Default.tsx +++ b/src/library/PoolList/Default.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faBars, faGripVertical } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/library/PoolList/context.tsx b/src/library/PoolList/context.tsx index f505af5306..f441f39664 100644 --- a/src/library/PoolList/context.tsx +++ b/src/library/PoolList/context.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import React, { useState } from 'react'; import { defaultListFormat, defaultPoolList } from './defaults'; diff --git a/src/library/PoolList/defaults.ts b/src/library/PoolList/defaults.ts index 5e72357d35..118bb902a0 100644 --- a/src/library/PoolList/defaults.ts +++ b/src/library/PoolList/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { PoolListContextProps } from './types'; diff --git a/src/library/PoolList/types.ts b/src/library/PoolList/types.ts index 8ed19b1383..c2e23d1ae7 100644 --- a/src/library/PoolList/types.ts +++ b/src/library/PoolList/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only export type ListFormat = 'row' | 'col'; diff --git a/src/library/Prompt/Title.tsx b/src/library/Prompt/Title.tsx index 807af649f8..aca11a2a11 100644 --- a/src/library/Prompt/Title.tsx +++ b/src/library/Prompt/Title.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { IconProp } from '@fortawesome/fontawesome-svg-core'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/library/Prompt/Wrappers.ts b/src/library/Prompt/Wrappers.ts index edc547a221..60fc945a17 100644 --- a/src/library/Prompt/Wrappers.ts +++ b/src/library/Prompt/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/library/Prompt/index.tsx b/src/library/Prompt/index.tsx index a663ec143a..55c6842cdb 100644 --- a/src/library/Prompt/index.tsx +++ b/src/library/Prompt/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { usePrompt } from 'contexts/Prompt'; import { ContentWrapper, HeightWrapper, PromptWrapper } from './Wrappers'; diff --git a/src/library/QRCode/Display.tsx b/src/library/QRCode/Display.tsx index cf7abf4cf1..7563ca79fa 100644 --- a/src/library/QRCode/Display.tsx +++ b/src/library/QRCode/Display.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { objectSpread } from '@polkadot/util'; import { xxhashAsHex } from '@polkadot/util-crypto'; diff --git a/src/library/QRCode/DisplayPayload.tsx b/src/library/QRCode/DisplayPayload.tsx index e10d920863..583eeb2735 100644 --- a/src/library/QRCode/DisplayPayload.tsx +++ b/src/library/QRCode/DisplayPayload.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import React, { useMemo } from 'react'; import { QrDisplay } from './Display.js'; diff --git a/src/library/QRCode/Scan.tsx b/src/library/QRCode/Scan.tsx index b2c18f1a14..93ec11c64d 100644 --- a/src/library/QRCode/Scan.tsx +++ b/src/library/QRCode/Scan.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import React, { useCallback, useMemo } from 'react'; import Reader from 'react-qr-reader'; diff --git a/src/library/QRCode/ScanSignature.tsx b/src/library/QRCode/ScanSignature.tsx index 4cb4f4454f..1188a1d8f0 100644 --- a/src/library/QRCode/ScanSignature.tsx +++ b/src/library/QRCode/ScanSignature.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import React, { useCallback } from 'react'; import { QrScan } from './Scan.js'; diff --git a/src/library/QRCode/Wrappers.ts b/src/library/QRCode/Wrappers.ts index fb76eeb409..5b983bb502 100644 --- a/src/library/QRCode/Wrappers.ts +++ b/src/library/QRCode/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/library/QRCode/constants.ts b/src/library/QRCode/constants.ts index 712ecf4bdf..cc998ab00b 100644 --- a/src/library/QRCode/constants.ts +++ b/src/library/QRCode/constants.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only export const ADDRESS_PREFIX = 'substrate'; export const SEED_PREFIX = 'secret'; diff --git a/src/library/QRCode/qrcode.ts b/src/library/QRCode/qrcode.ts index eb134fe987..75cfb35df2 100644 --- a/src/library/QRCode/qrcode.ts +++ b/src/library/QRCode/qrcode.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import _qrcode from 'qrcode-generator'; diff --git a/src/library/QRCode/types.ts b/src/library/QRCode/types.ts index 284eed4090..5a8812a08f 100644 --- a/src/library/QRCode/types.ts +++ b/src/library/QRCode/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { HexString } from '@polkadot/util/types'; import type React from 'react'; diff --git a/src/library/QRCode/util.ts b/src/library/QRCode/util.ts index 6ef6b0c03b..b7d5577275 100644 --- a/src/library/QRCode/util.ts +++ b/src/library/QRCode/util.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { isString, u8aConcat, u8aToU8a } from '@polkadot/util'; import { decodeAddress } from '@polkadot/util-crypto'; diff --git a/src/library/SelectItems/Item.tsx b/src/library/SelectItems/Item.tsx index 9cc8cd6f67..d0231af0b8 100644 --- a/src/library/SelectItems/Item.tsx +++ b/src/library/SelectItems/Item.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faCircle } from '@fortawesome/free-regular-svg-icons'; import { faCircleCheck } from '@fortawesome/free-solid-svg-icons'; diff --git a/src/library/SelectItems/Wrapper.ts b/src/library/SelectItems/Wrapper.ts index 3198c6354e..d7aed436f9 100644 --- a/src/library/SelectItems/Wrapper.ts +++ b/src/library/SelectItems/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/library/SelectItems/index.tsx b/src/library/SelectItems/index.tsx index 3204eb74d4..53c980d31c 100644 --- a/src/library/SelectItems/index.tsx +++ b/src/library/SelectItems/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { MutableRefObject } from 'react'; import React, { useEffect, useLayoutEffect, useRef } from 'react'; diff --git a/src/library/SelectItems/types.ts b/src/library/SelectItems/types.ts index bcefe2fba4..c747c1f64c 100644 --- a/src/library/SelectItems/types.ts +++ b/src/library/SelectItems/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type React from 'react'; import type { Dispatch, SetStateAction } from 'react'; diff --git a/src/library/SetupSteps/Footer/Wrapper.ts b/src/library/SetupSteps/Footer/Wrapper.ts index 3564bdaddb..73a1fc7d57 100644 --- a/src/library/SetupSteps/Footer/Wrapper.ts +++ b/src/library/SetupSteps/Footer/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/library/SetupSteps/Footer/index.tsx b/src/library/SetupSteps/Footer/index.tsx index 5b3915e4d9..bc190c355e 100644 --- a/src/library/SetupSteps/Footer/index.tsx +++ b/src/library/SetupSteps/Footer/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ButtonPrimary } from '@polkadotcloud/core-ui'; import { useTranslation } from 'react-i18next'; diff --git a/src/library/SetupSteps/Header/Wrapper.ts b/src/library/SetupSteps/Header/Wrapper.ts index 0849f16a68..d6c32cec58 100644 --- a/src/library/SetupSteps/Header/Wrapper.ts +++ b/src/library/SetupSteps/Header/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/library/SetupSteps/Header/index.tsx b/src/library/SetupSteps/Header/index.tsx index 01038e5a1f..45bab59cd0 100644 --- a/src/library/SetupSteps/Header/index.tsx +++ b/src/library/SetupSteps/Header/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ButtonHelp, ButtonSecondary } from '@polkadotcloud/core-ui'; import { useTranslation } from 'react-i18next'; diff --git a/src/library/SetupSteps/MotionContainer.tsx b/src/library/SetupSteps/MotionContainer.tsx index 82486a0757..6a2d4dae7d 100644 --- a/src/library/SetupSteps/MotionContainer.tsx +++ b/src/library/SetupSteps/MotionContainer.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { motion } from 'framer-motion'; diff --git a/src/library/SetupSteps/Nominate.tsx b/src/library/SetupSteps/Nominate.tsx index 50bcbef3cb..f584768b66 100644 --- a/src/library/SetupSteps/Nominate.tsx +++ b/src/library/SetupSteps/Nominate.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/library/SetupSteps/types.ts b/src/library/SetupSteps/types.ts index e5e63661a5..0139907afb 100644 --- a/src/library/SetupSteps/types.ts +++ b/src/library/SetupSteps/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { BondFor } from 'types'; diff --git a/src/library/SideMenu/Heading/Heading.tsx b/src/library/SideMenu/Heading/Heading.tsx index 7dd712c6e0..816f6ff418 100644 --- a/src/library/SideMenu/Heading/Heading.tsx +++ b/src/library/SideMenu/Heading/Heading.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { HeadingProps } from '../types'; import { Wrapper } from './Wrapper'; diff --git a/src/library/SideMenu/Heading/Wrapper.ts b/src/library/SideMenu/Heading/Wrapper.ts index 82f61bff51..882efcc2d2 100644 --- a/src/library/SideMenu/Heading/Wrapper.ts +++ b/src/library/SideMenu/Heading/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/library/SideMenu/Main.tsx b/src/library/SideMenu/Main.tsx index 84594afea3..0cb2f0a09e 100644 --- a/src/library/SideMenu/Main.tsx +++ b/src/library/SideMenu/Main.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import React, { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/library/SideMenu/Primary/Wrappers.ts b/src/library/SideMenu/Primary/Wrappers.ts index f5dae2d95d..329892e13f 100644 --- a/src/library/SideMenu/Primary/Wrappers.ts +++ b/src/library/SideMenu/Primary/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { motion } from 'framer-motion'; import styled from 'styled-components'; diff --git a/src/library/SideMenu/Primary/index.tsx b/src/library/SideMenu/Primary/index.tsx index 0cd588043a..f7c825623e 100644 --- a/src/library/SideMenu/Primary/index.tsx +++ b/src/library/SideMenu/Primary/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faCircle } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/library/SideMenu/Secondary/Wrappers.ts b/src/library/SideMenu/Secondary/Wrappers.ts index 45369fb874..17ab5f51b0 100644 --- a/src/library/SideMenu/Secondary/Wrappers.ts +++ b/src/library/SideMenu/Secondary/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { motion } from 'framer-motion'; import styled from 'styled-components'; diff --git a/src/library/SideMenu/Secondary/index.tsx b/src/library/SideMenu/Secondary/index.tsx index fb5ef370ac..4cee45febf 100644 --- a/src/library/SideMenu/Secondary/index.tsx +++ b/src/library/SideMenu/Secondary/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { SecondaryProps } from '../types'; import { IconWrapper, MinimisedWrapper, Wrapper } from './Wrappers'; diff --git a/src/library/SideMenu/Wrapper.ts b/src/library/SideMenu/Wrapper.ts index 1f0990945d..4f006534e1 100644 --- a/src/library/SideMenu/Wrapper.ts +++ b/src/library/SideMenu/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; import { diff --git a/src/library/SideMenu/index.tsx b/src/library/SideMenu/index.tsx index 66d74779a8..74a670fdfe 100644 --- a/src/library/SideMenu/index.tsx +++ b/src/library/SideMenu/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faCompressAlt, faExpandAlt } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/library/SideMenu/types.ts b/src/library/SideMenu/types.ts index 4b4bed4c0e..18b8b0827f 100644 --- a/src/library/SideMenu/types.ts +++ b/src/library/SideMenu/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type React from 'react'; import type { FunctionComponent, SVGProps } from 'react'; diff --git a/src/library/Stat/Wrapper.ts b/src/library/Stat/Wrapper.ts index b40e0f051b..83f70f2ab5 100644 --- a/src/library/Stat/Wrapper.ts +++ b/src/library/Stat/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/library/Stat/index.tsx b/src/library/Stat/index.tsx index 09b8ef846a..f4a109d432 100644 --- a/src/library/Stat/index.tsx +++ b/src/library/Stat/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faCopy } from '@fortawesome/free-regular-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/library/Stat/types.ts b/src/library/Stat/types.ts index a72ba11216..c236652013 100644 --- a/src/library/Stat/types.ts +++ b/src/library/Stat/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { IconProp } from '@fortawesome/fontawesome-svg-core'; import type { MaybeAccount } from 'types'; diff --git a/src/library/StatBoxList/Item.tsx b/src/library/StatBoxList/Item.tsx index cf210cea45..5b3bc3bd3e 100644 --- a/src/library/StatBoxList/Item.tsx +++ b/src/library/StatBoxList/Item.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import React from 'react'; import { Number } from './Number'; diff --git a/src/library/StatBoxList/Number.tsx b/src/library/StatBoxList/Number.tsx index d5b1d8553d..23704e81f1 100644 --- a/src/library/StatBoxList/Number.tsx +++ b/src/library/StatBoxList/Number.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ButtonHelp } from '@polkadotcloud/core-ui'; import { ReactOdometer } from '@polkadotcloud/react-odometer'; diff --git a/src/library/StatBoxList/Pie.tsx b/src/library/StatBoxList/Pie.tsx index eddfed4263..5c8663a46d 100644 --- a/src/library/StatBoxList/Pie.tsx +++ b/src/library/StatBoxList/Pie.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ButtonHelp } from '@polkadotcloud/core-ui'; import { ReactOdometer } from '@polkadotcloud/react-odometer'; diff --git a/src/library/StatBoxList/Text.tsx b/src/library/StatBoxList/Text.tsx index aa4d9378f0..095016c1ae 100644 --- a/src/library/StatBoxList/Text.tsx +++ b/src/library/StatBoxList/Text.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ButtonHelp } from '@polkadotcloud/core-ui'; import { useHelp } from 'contexts/Help'; diff --git a/src/library/StatBoxList/Timeleft.tsx b/src/library/StatBoxList/Timeleft.tsx index 2663fb8157..adc9a54c28 100644 --- a/src/library/StatBoxList/Timeleft.tsx +++ b/src/library/StatBoxList/Timeleft.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ButtonHelp } from '@polkadotcloud/core-ui'; import { useHelp } from 'contexts/Help'; diff --git a/src/library/StatBoxList/Wrapper.ts b/src/library/StatBoxList/Wrapper.ts index 2646a381fb..49544ae567 100644 --- a/src/library/StatBoxList/Wrapper.ts +++ b/src/library/StatBoxList/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { motion } from 'framer-motion'; import styled from 'styled-components'; diff --git a/src/library/StatBoxList/index.tsx b/src/library/StatBoxList/index.tsx index d082fb9ff3..d405b5dd52 100644 --- a/src/library/StatBoxList/index.tsx +++ b/src/library/StatBoxList/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { StatBoxRow } from '@polkadotcloud/core-ui'; import React from 'react'; diff --git a/src/library/StatBoxList/types.ts b/src/library/StatBoxList/types.ts index 1306a03627..e20fb52591 100644 --- a/src/library/StatBoxList/types.ts +++ b/src/library/StatBoxList/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { TimeLeftFormatted } from 'library/Hooks/useTimeLeft/types'; diff --git a/src/library/StatsHead/Wrapper.ts b/src/library/StatsHead/Wrapper.ts index 6e73364126..a7d2a361f9 100644 --- a/src/library/StatsHead/Wrapper.ts +++ b/src/library/StatsHead/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; import { SmallFontSizeMaxWidth } from 'consts'; diff --git a/src/library/StatsHead/index.tsx b/src/library/StatsHead/index.tsx index a69070d718..cb2f879aa8 100644 --- a/src/library/StatsHead/index.tsx +++ b/src/library/StatsHead/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ButtonHelp } from '@polkadotcloud/core-ui'; import { useHelp } from 'contexts/Help'; diff --git a/src/library/StatsHead/types.ts b/src/library/StatsHead/types.ts index 34df5cba23..afc90c0f00 100644 --- a/src/library/StatsHead/types.ts +++ b/src/library/StatsHead/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only export interface StatsHeadProps { items: { diff --git a/src/library/StatusButton/Wrapper.ts b/src/library/StatusButton/Wrapper.ts index 0636be8236..9ed5e1dfe5 100644 --- a/src/library/StatusButton/Wrapper.ts +++ b/src/library/StatusButton/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/library/StatusButton/index.tsx b/src/library/StatusButton/index.tsx index 88f1a504c9..bb2f8d2cff 100644 --- a/src/library/StatusButton/index.tsx +++ b/src/library/StatusButton/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faCircle } from '@fortawesome/free-regular-svg-icons'; import { faCheck } from '@fortawesome/free-solid-svg-icons'; diff --git a/src/library/StatusButton/types.ts b/src/library/StatusButton/types.ts index c4584408e2..420b62f425 100644 --- a/src/library/StatusButton/types.ts +++ b/src/library/StatusButton/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only export interface StatusButtonProps { checked: boolean; diff --git a/src/library/StatusLabel/Wrapper.ts b/src/library/StatusLabel/Wrapper.ts index 21d2bf9f21..b073f88ed8 100644 --- a/src/library/StatusLabel/Wrapper.ts +++ b/src/library/StatusLabel/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; import type { WrapperProps } from './types'; diff --git a/src/library/StatusLabel/index.tsx b/src/library/StatusLabel/index.tsx index 29807fc3a1..a7130b37fb 100644 --- a/src/library/StatusLabel/index.tsx +++ b/src/library/StatusLabel/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/library/StatusLabel/types.ts b/src/library/StatusLabel/types.ts index c6877a4452..66463c94c4 100644 --- a/src/library/StatusLabel/types.ts +++ b/src/library/StatusLabel/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only export interface StatusLabelProps { hideIcon?: boolean; diff --git a/src/library/SubmitTx/Default.tsx b/src/library/SubmitTx/Default.tsx index 7c4f8e8050..21cb831c4a 100644 --- a/src/library/SubmitTx/Default.tsx +++ b/src/library/SubmitTx/Default.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faArrowAltCircleUp } from '@fortawesome/free-regular-svg-icons'; import { ButtonSubmit } from '@polkadotcloud/core-ui'; diff --git a/src/library/SubmitTx/ManualSign/Ledger.tsx b/src/library/SubmitTx/ManualSign/Ledger.tsx index 068d2cdbd9..8ead613b4b 100644 --- a/src/library/SubmitTx/ManualSign/Ledger.tsx +++ b/src/library/SubmitTx/ManualSign/Ledger.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faSquarePen } from '@fortawesome/free-solid-svg-icons'; import { ButtonHelp, ButtonSubmit } from '@polkadotcloud/core-ui'; diff --git a/src/library/SubmitTx/ManualSign/Vault/SignPrompt.tsx b/src/library/SubmitTx/ManualSign/Vault/SignPrompt.tsx index af7998b0a9..6932c19d99 100644 --- a/src/library/SubmitTx/ManualSign/Vault/SignPrompt.tsx +++ b/src/library/SubmitTx/ManualSign/Vault/SignPrompt.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faChevronLeft, diff --git a/src/library/SubmitTx/ManualSign/Vault/index.tsx b/src/library/SubmitTx/ManualSign/Vault/index.tsx index e1a18fd111..b093921b5c 100644 --- a/src/library/SubmitTx/ManualSign/Vault/index.tsx +++ b/src/library/SubmitTx/ManualSign/Vault/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faSquarePen } from '@fortawesome/free-solid-svg-icons'; import { ButtonSubmit } from '@polkadotcloud/core-ui'; diff --git a/src/library/SubmitTx/ManualSign/index.tsx b/src/library/SubmitTx/ManualSign/index.tsx index 1a98d37519..09e7baac77 100644 --- a/src/library/SubmitTx/ManualSign/index.tsx +++ b/src/library/SubmitTx/ManualSign/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import React, { useEffect } from 'react'; import { useConnect } from 'contexts/Connect'; diff --git a/src/library/SubmitTx/index.tsx b/src/library/SubmitTx/index.tsx index aead73df97..f8f3cf6820 100644 --- a/src/library/SubmitTx/index.tsx +++ b/src/library/SubmitTx/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { Tx } from '@polkadotcloud/core-ui'; import { useEffect } from 'react'; diff --git a/src/library/SubmitTx/types.ts b/src/library/SubmitTx/types.ts index d671a98a84..fd9197d9c9 100644 --- a/src/library/SubmitTx/types.ts +++ b/src/library/SubmitTx/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type React from 'react'; import type { MaybeAccount } from 'types'; diff --git a/src/library/SubscanButton/index.tsx b/src/library/SubscanButton/index.tsx index e2079f872c..ee6b00ce2b 100644 --- a/src/library/SubscanButton/index.tsx +++ b/src/library/SubscanButton/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faProjectDiagram } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/library/SubscanButton/types.ts b/src/library/SubscanButton/types.ts index 2116286078..5f0c5b477d 100644 --- a/src/library/SubscanButton/types.ts +++ b/src/library/SubscanButton/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only export interface StatusLabelProps { status: string; diff --git a/src/library/Tips/Tip.tsx b/src/library/Tips/Tip.tsx index 221ac1cfb0..44f7160c11 100644 --- a/src/library/Tips/Tip.tsx +++ b/src/library/Tips/Tip.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faAngleRight } from '@fortawesome/free-solid-svg-icons'; import { diff --git a/src/library/Tips/Wrappers.ts b/src/library/Tips/Wrappers.ts index ca79b186b1..5c4fcfb644 100644 --- a/src/library/Tips/Wrappers.ts +++ b/src/library/Tips/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { motion } from 'framer-motion'; import styled from 'styled-components'; diff --git a/src/library/Tooltip/Wrapper.ts b/src/library/Tooltip/Wrapper.ts index 70a394ed25..fdbc82d51c 100644 --- a/src/library/Tooltip/Wrapper.ts +++ b/src/library/Tooltip/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/library/Tooltip/index.tsx b/src/library/Tooltip/index.tsx index b429e7a46e..ad1e02fc04 100644 --- a/src/library/Tooltip/index.tsx +++ b/src/library/Tooltip/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useEffect, useRef } from 'react'; import { useTooltip } from 'contexts/Tooltip'; diff --git a/src/library/UpdateHeader/Wrapper.ts b/src/library/UpdateHeader/Wrapper.ts index c7091fcf7c..237ef47cbd 100644 --- a/src/library/UpdateHeader/Wrapper.ts +++ b/src/library/UpdateHeader/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/library/UpdateHeader/index.tsx b/src/library/UpdateHeader/index.tsx index f43359316a..3dbf180cad 100644 --- a/src/library/UpdateHeader/index.tsx +++ b/src/library/UpdateHeader/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faAnglesRight } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/library/ValidatorList/FilterValidators.tsx b/src/library/ValidatorList/FilterValidators.tsx index 1ae0366bdb..00cce3ab52 100644 --- a/src/library/ValidatorList/FilterValidators.tsx +++ b/src/library/ValidatorList/FilterValidators.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faCheckCircle, faCircle } from '@fortawesome/free-regular-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/library/ValidatorList/Filters.tsx b/src/library/ValidatorList/Filters.tsx index c6a74a0502..e3718fc45e 100644 --- a/src/library/ValidatorList/Filters.tsx +++ b/src/library/ValidatorList/Filters.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faArrowDownWideShort, diff --git a/src/library/ValidatorList/OrderValidators.tsx b/src/library/ValidatorList/OrderValidators.tsx index 78436d0693..46a5696310 100644 --- a/src/library/ValidatorList/OrderValidators.tsx +++ b/src/library/ValidatorList/OrderValidators.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faCheckCircle, faCircle } from '@fortawesome/free-regular-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/library/ValidatorList/Validator/Default.tsx b/src/library/ValidatorList/Validator/Default.tsx index 9d4a550f86..a448252414 100644 --- a/src/library/ValidatorList/Validator/Default.tsx +++ b/src/library/ValidatorList/Validator/Default.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faCopy } from '@fortawesome/free-regular-svg-icons'; import { faBars, faChartLine } from '@fortawesome/free-solid-svg-icons'; diff --git a/src/library/ValidatorList/Validator/Nomination.tsx b/src/library/ValidatorList/Validator/Nomination.tsx index 0d8c861efc..a1e23a0736 100644 --- a/src/library/ValidatorList/Validator/Nomination.tsx +++ b/src/library/ValidatorList/Validator/Nomination.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useValidators } from 'contexts/Validators'; import { ParaValidator } from 'library/ListItem/Labels/ParaValidator'; diff --git a/src/library/ValidatorList/Validator/Utils.tsx b/src/library/ValidatorList/Validator/Utils.tsx index ad2fc9d050..e750b469ed 100644 --- a/src/library/ValidatorList/Validator/Utils.tsx +++ b/src/library/ValidatorList/Validator/Utils.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { u8aToString, u8aUnwrapBytes } from '@polkadot/util'; diff --git a/src/library/ValidatorList/Validator/index.tsx b/src/library/ValidatorList/Validator/index.tsx index d96030bc0b..64f6bc48fb 100644 --- a/src/library/ValidatorList/Validator/index.tsx +++ b/src/library/ValidatorList/Validator/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import React from 'react'; import { Default } from './Default'; diff --git a/src/library/ValidatorList/Validator/types.ts b/src/library/ValidatorList/Validator/types.ts index 6d5278440d..c0792f6942 100644 --- a/src/library/ValidatorList/Validator/types.ts +++ b/src/library/ValidatorList/Validator/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { BondFor, MaybeAccount } from 'types'; diff --git a/src/library/ValidatorList/index.tsx b/src/library/ValidatorList/index.tsx index c2e54e932a..052495bafd 100644 --- a/src/library/ValidatorList/index.tsx +++ b/src/library/ValidatorList/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faBars, faGripVertical } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/locale/index.tsx b/src/locale/index.tsx index a2091be1c1..2699e028fb 100644 --- a/src/locale/index.tsx +++ b/src/locale/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { enGB, zhCN } from 'date-fns/locale'; import i18next from 'i18next'; diff --git a/src/locale/utils.ts b/src/locale/utils.ts index 287f6a3d20..41f8beed11 100644 --- a/src/locale/utils.ts +++ b/src/locale/utils.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { extractUrlValue, varToUrlHash } from '@polkadotcloud/utils'; import { DefaultLocale } from 'consts'; diff --git a/src/main.tsx b/src/main.tsx index 900036e1db..55fa442bf0 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only // Network classes. import '@polkadotcloud/themes/chain/polkadot-relay/index.css'; diff --git a/src/modals/AccountPoolRoles/Wrappers.ts b/src/modals/AccountPoolRoles/Wrappers.ts index 97189274ea..a974d6ad65 100644 --- a/src/modals/AccountPoolRoles/Wrappers.ts +++ b/src/modals/AccountPoolRoles/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/modals/AccountPoolRoles/index.tsx b/src/modals/AccountPoolRoles/index.tsx index fbf17f055a..c029e4bd2a 100644 --- a/src/modals/AccountPoolRoles/index.tsx +++ b/src/modals/AccountPoolRoles/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faBars } from '@fortawesome/free-solid-svg-icons'; import { ButtonOption, ModalPadding } from '@polkadotcloud/core-ui'; diff --git a/src/modals/Accounts/Account.tsx b/src/modals/Accounts/Account.tsx index d872cbe230..1a52c5bc69 100644 --- a/src/modals/Accounts/Account.tsx +++ b/src/modals/Accounts/Account.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faGlasses } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/modals/Accounts/Delegates/Wrapper.ts b/src/modals/Accounts/Delegates/Wrapper.ts index 2b2a4e5e41..698a5ff8c6 100644 --- a/src/modals/Accounts/Delegates/Wrapper.ts +++ b/src/modals/Accounts/Delegates/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { styled } from 'styled-components'; diff --git a/src/modals/Accounts/Delegates/index.tsx b/src/modals/Accounts/Delegates/index.tsx index 54ab7b9a3b..6e8a7bac3c 100644 --- a/src/modals/Accounts/Delegates/index.tsx +++ b/src/modals/Accounts/Delegates/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { isSupportedProxy } from 'config/proxies'; import { useConnect } from 'contexts/Connect'; diff --git a/src/modals/Accounts/Wrappers.ts b/src/modals/Accounts/Wrappers.ts index 999e2b022e..476234979c 100644 --- a/src/modals/Accounts/Wrappers.ts +++ b/src/modals/Accounts/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/modals/Accounts/index.tsx b/src/modals/Accounts/index.tsx index b32732778a..90cbbc3224 100644 --- a/src/modals/Accounts/index.tsx +++ b/src/modals/Accounts/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faChevronLeft, faLinkSlash } from '@fortawesome/free-solid-svg-icons'; import { diff --git a/src/modals/Accounts/types.ts b/src/modals/Accounts/types.ts index e00becc09d..bc3b694f09 100644 --- a/src/modals/Accounts/types.ts +++ b/src/modals/Accounts/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { PoolMembership } from 'contexts/Pools/types'; import type { Proxy } from 'contexts/Proxies/type'; diff --git a/src/modals/BalanceTest/index.tsx b/src/modals/BalanceTest/index.tsx index 998f263b1c..09331e1668 100644 --- a/src/modals/BalanceTest/index.tsx +++ b/src/modals/BalanceTest/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ModalPadding } from '@polkadotcloud/core-ui'; import { unitToPlanck } from '@polkadotcloud/utils'; diff --git a/src/modals/Bio/Wrapper.ts b/src/modals/Bio/Wrapper.ts index 84d975ba27..2c3566adcb 100644 --- a/src/modals/Bio/Wrapper.ts +++ b/src/modals/Bio/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/modals/Bio/index.tsx b/src/modals/Bio/index.tsx index 411b791ec0..3c8794a600 100644 --- a/src/modals/Bio/index.tsx +++ b/src/modals/Bio/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ModalPadding } from '@polkadotcloud/core-ui'; import { useModal } from 'contexts/Modal'; diff --git a/src/modals/Bond/index.tsx b/src/modals/Bond/index.tsx index bdfa93754c..ec29814098 100644 --- a/src/modals/Bond/index.tsx +++ b/src/modals/Bond/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ModalPadding, ModalWarnings } from '@polkadotcloud/core-ui'; import { planckToUnit, unitToPlanck } from '@polkadotcloud/utils'; diff --git a/src/modals/ChangeNominations/index.tsx b/src/modals/ChangeNominations/index.tsx index 2c53f600b8..8a5fa6db59 100644 --- a/src/modals/ChangeNominations/index.tsx +++ b/src/modals/ChangeNominations/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ModalPadding, diff --git a/src/modals/ChangePoolRoles/RoleChange.tsx b/src/modals/ChangePoolRoles/RoleChange.tsx index 243d5481a8..149164bc31 100644 --- a/src/modals/ChangePoolRoles/RoleChange.tsx +++ b/src/modals/ChangePoolRoles/RoleChange.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faAnglesRight } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/modals/ChangePoolRoles/Wrapper.ts b/src/modals/ChangePoolRoles/Wrapper.ts index 2fe543c38a..7ce538a0d5 100644 --- a/src/modals/ChangePoolRoles/Wrapper.ts +++ b/src/modals/ChangePoolRoles/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/modals/ChangePoolRoles/index.tsx b/src/modals/ChangePoolRoles/index.tsx index aecda7eec0..e5e567af00 100644 --- a/src/modals/ChangePoolRoles/index.tsx +++ b/src/modals/ChangePoolRoles/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ModalPadding } from '@polkadotcloud/core-ui'; import { useTranslation } from 'react-i18next'; diff --git a/src/modals/ChooseLanguage/Wrapper.ts b/src/modals/ChooseLanguage/Wrapper.ts index f0e8288c0c..06999dac0e 100644 --- a/src/modals/ChooseLanguage/Wrapper.ts +++ b/src/modals/ChooseLanguage/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/modals/ChooseLanguage/index.tsx b/src/modals/ChooseLanguage/index.tsx index 4f3a425ceb..295dfc8456 100644 --- a/src/modals/ChooseLanguage/index.tsx +++ b/src/modals/ChooseLanguage/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ModalPadding } from '@polkadotcloud/core-ui'; import { useTranslation } from 'react-i18next'; diff --git a/src/modals/ClaimReward/index.tsx b/src/modals/ClaimReward/index.tsx index 3a210ed176..9fd9361020 100644 --- a/src/modals/ClaimReward/index.tsx +++ b/src/modals/ClaimReward/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ActionItem, diff --git a/src/modals/Connect/Extension.tsx b/src/modals/Connect/Extension.tsx index b65b0a31d3..c5bbdddaae 100644 --- a/src/modals/Connect/Extension.tsx +++ b/src/modals/Connect/Extension.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faExternalLinkAlt, faPlus } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/modals/Connect/Ledger.tsx b/src/modals/Connect/Ledger.tsx index c05ab3effd..d31c281e6f 100644 --- a/src/modals/Connect/Ledger.tsx +++ b/src/modals/Connect/Ledger.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faChrome, faUsb } from '@fortawesome/free-brands-svg-icons'; import { diff --git a/src/modals/Connect/Proxies.tsx b/src/modals/Connect/Proxies.tsx index 3be2b9ca0c..066edf8c02 100644 --- a/src/modals/Connect/Proxies.tsx +++ b/src/modals/Connect/Proxies.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faChevronRight, diff --git a/src/modals/Connect/ReadOnly.tsx b/src/modals/Connect/ReadOnly.tsx index 6b209efbbc..62543d5867 100644 --- a/src/modals/Connect/ReadOnly.tsx +++ b/src/modals/Connect/ReadOnly.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faChevronRight, diff --git a/src/modals/Connect/Vault.tsx b/src/modals/Connect/Vault.tsx index 4ee823e8fa..89fbd39e08 100644 --- a/src/modals/Connect/Vault.tsx +++ b/src/modals/Connect/Vault.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faExternalLinkAlt, faQrcode } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/modals/Connect/Wrappers.ts b/src/modals/Connect/Wrappers.ts index dbc959491d..60c9f257a1 100644 --- a/src/modals/Connect/Wrappers.ts +++ b/src/modals/Connect/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; import { TwoThreshold } from 'library/SelectItems/Wrapper'; diff --git a/src/modals/Connect/index.tsx b/src/modals/Connect/index.tsx index 2180dc988d..a984b38953 100644 --- a/src/modals/Connect/index.tsx +++ b/src/modals/Connect/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faChevronRight } from '@fortawesome/free-solid-svg-icons'; import { diff --git a/src/modals/Connect/types.ts b/src/modals/Connect/types.ts index 6fda6c2fbd..fbe4a85559 100644 --- a/src/modals/Connect/types.ts +++ b/src/modals/Connect/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type React from 'react'; import type { AnyJson } from 'types'; diff --git a/src/modals/DismissTips/index.tsx b/src/modals/DismissTips/index.tsx index 18518acf9d..3c2dd53bd9 100644 --- a/src/modals/DismissTips/index.tsx +++ b/src/modals/DismissTips/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ButtonSubmit, ModalPadding } from '@polkadotcloud/core-ui'; import { useTranslation } from 'react-i18next'; diff --git a/src/modals/GoToFeedback/index.tsx b/src/modals/GoToFeedback/index.tsx index 8e8adca262..9c43f075cb 100644 --- a/src/modals/GoToFeedback/index.tsx +++ b/src/modals/GoToFeedback/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faExternalLinkAlt } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/modals/ImportLedger/Addresses.tsx b/src/modals/ImportLedger/Addresses.tsx index 61ff47c359..00a4da7ced 100644 --- a/src/modals/ImportLedger/Addresses.tsx +++ b/src/modals/ImportLedger/Addresses.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-live authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faArrowDown } from '@fortawesome/free-solid-svg-icons'; import { ButtonText, HardwareAddress } from '@polkadotcloud/core-ui'; diff --git a/src/modals/ImportLedger/Manage.tsx b/src/modals/ImportLedger/Manage.tsx index 90e866c889..bdbcc13376 100644 --- a/src/modals/ImportLedger/Manage.tsx +++ b/src/modals/ImportLedger/Manage.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-live authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { HardwareStatusBar } from '@polkadotcloud/core-ui'; import { useTranslation } from 'react-i18next'; diff --git a/src/modals/ImportLedger/Reset.tsx b/src/modals/ImportLedger/Reset.tsx index d73649296b..f51f037419 100644 --- a/src/modals/ImportLedger/Reset.tsx +++ b/src/modals/ImportLedger/Reset.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-live authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ButtonMono, ButtonMonoInvert } from '@polkadotcloud/core-ui'; import { useTranslation } from 'react-i18next'; diff --git a/src/modals/ImportLedger/Splash.tsx b/src/modals/ImportLedger/Splash.tsx index 156a79e443..a7dbfb92ba 100644 --- a/src/modals/ImportLedger/Splash.tsx +++ b/src/modals/ImportLedger/Splash.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faChevronLeft } from '@fortawesome/free-solid-svg-icons'; import { ButtonHelp, ButtonSecondary } from '@polkadotcloud/core-ui'; diff --git a/src/modals/ImportLedger/Wrappers.ts b/src/modals/ImportLedger/Wrappers.ts index 201e3c4285..2b25b3e7c3 100644 --- a/src/modals/ImportLedger/Wrappers.ts +++ b/src/modals/ImportLedger/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/modals/ImportLedger/index.tsx b/src/modals/ImportLedger/index.tsx index 941f01b4db..855ee352ec 100644 --- a/src/modals/ImportLedger/index.tsx +++ b/src/modals/ImportLedger/index.tsx @@ -1,5 +1,5 @@ // Copyright 2022 @paritytech/polkadot-native authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { clipAddress, setStateWithRef } from '@polkadotcloud/utils'; import React, { useEffect, useRef, useState } from 'react'; diff --git a/src/modals/ImportVault/Reader.tsx b/src/modals/ImportVault/Reader.tsx index aa7a62613c..c2bfa8587b 100644 --- a/src/modals/ImportVault/Reader.tsx +++ b/src/modals/ImportVault/Reader.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ButtonSecondary } from '@polkadotcloud/core-ui'; import { isValidAddress } from '@polkadotcloud/utils'; diff --git a/src/modals/ImportVault/index.tsx b/src/modals/ImportVault/index.tsx index d20975e79a..1b413da7e4 100644 --- a/src/modals/ImportVault/index.tsx +++ b/src/modals/ImportVault/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faQrcode } from '@fortawesome/free-solid-svg-icons'; import { diff --git a/src/modals/JoinPool/index.tsx b/src/modals/JoinPool/index.tsx index 227a6be54d..04923a8026 100644 --- a/src/modals/JoinPool/index.tsx +++ b/src/modals/JoinPool/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ModalPadding } from '@polkadotcloud/core-ui'; import { planckToUnit, unitToPlanck } from '@polkadotcloud/utils'; diff --git a/src/modals/ManageFastUnstake/index.tsx b/src/modals/ManageFastUnstake/index.tsx index 1e721c49f9..dec58cc41e 100644 --- a/src/modals/ManageFastUnstake/index.tsx +++ b/src/modals/ManageFastUnstake/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ActionItem, diff --git a/src/modals/ManagePool/Forms/ClaimCommission.tsx b/src/modals/ManagePool/Forms/ClaimCommission.tsx index 9764554df5..ceb8edba9f 100644 --- a/src/modals/ManagePool/Forms/ClaimCommission.tsx +++ b/src/modals/ManagePool/Forms/ClaimCommission.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faChevronLeft } from '@fortawesome/free-solid-svg-icons'; import { diff --git a/src/modals/ManagePool/Forms/Commission.tsx b/src/modals/ManagePool/Forms/Commission.tsx index bdf10c20fe..337cbe9314 100644 --- a/src/modals/ManagePool/Forms/Commission.tsx +++ b/src/modals/ManagePool/Forms/Commission.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faChevronLeft } from '@fortawesome/free-solid-svg-icons'; import { diff --git a/src/modals/ManagePool/Forms/LeavePool.tsx b/src/modals/ManagePool/Forms/LeavePool.tsx index 2761879ac4..6e01493bd5 100644 --- a/src/modals/ManagePool/Forms/LeavePool.tsx +++ b/src/modals/ManagePool/Forms/LeavePool.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faChevronLeft } from '@fortawesome/free-solid-svg-icons'; import { diff --git a/src/modals/ManagePool/Forms/SetClaimPermission.tsx b/src/modals/ManagePool/Forms/SetClaimPermission.tsx index 916acdc9c3..817c669f9f 100644 --- a/src/modals/ManagePool/Forms/SetClaimPermission.tsx +++ b/src/modals/ManagePool/Forms/SetClaimPermission.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faChevronLeft } from '@fortawesome/free-solid-svg-icons'; import { ButtonSubmitInvert, ModalWarnings } from '@polkadotcloud/core-ui'; diff --git a/src/modals/ManagePool/Forms/SetMetadata.tsx b/src/modals/ManagePool/Forms/SetMetadata.tsx index a119971ac6..39c34808b9 100644 --- a/src/modals/ManagePool/Forms/SetMetadata.tsx +++ b/src/modals/ManagePool/Forms/SetMetadata.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faChevronLeft } from '@fortawesome/free-solid-svg-icons'; import { u8aToString, u8aUnwrapBytes } from '@polkadot/util'; diff --git a/src/modals/ManagePool/Forms/SetState.tsx b/src/modals/ManagePool/Forms/SetState.tsx index 092f215588..765c904ae1 100644 --- a/src/modals/ManagePool/Forms/SetState.tsx +++ b/src/modals/ManagePool/Forms/SetState.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faChevronLeft } from '@fortawesome/free-solid-svg-icons'; import { diff --git a/src/modals/ManagePool/Forms/index.tsx b/src/modals/ManagePool/Forms/index.tsx index b7136a848a..cc790bac70 100644 --- a/src/modals/ManagePool/Forms/index.tsx +++ b/src/modals/ManagePool/Forms/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { forwardRef } from 'react'; import { ContentWrapper } from '../Wrappers'; diff --git a/src/modals/ManagePool/Forms/types.ts b/src/modals/ManagePool/Forms/types.ts index 68f91bea35..43560597b9 100644 --- a/src/modals/ManagePool/Forms/types.ts +++ b/src/modals/ManagePool/Forms/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only export interface ChangeRateInput { years: number; diff --git a/src/modals/ManagePool/Tasks.tsx b/src/modals/ManagePool/Tasks.tsx index 19f2ee37cd..98b340b320 100644 --- a/src/modals/ManagePool/Tasks.tsx +++ b/src/modals/ManagePool/Tasks.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ButtonOption } from '@polkadotcloud/core-ui'; import { forwardRef } from 'react'; diff --git a/src/modals/ManagePool/Wrappers.ts b/src/modals/ManagePool/Wrappers.ts index 209d0e9e52..f1ea849172 100644 --- a/src/modals/ManagePool/Wrappers.ts +++ b/src/modals/ManagePool/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/modals/ManagePool/index.tsx b/src/modals/ManagePool/index.tsx index fcf3abc40d..7fc55fc53c 100644 --- a/src/modals/ManagePool/index.tsx +++ b/src/modals/ManagePool/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ModalFixedTitle, diff --git a/src/modals/Networks/Wrapper.ts b/src/modals/Networks/Wrapper.ts index 06093ffd9a..75c8e477e7 100644 --- a/src/modals/Networks/Wrapper.ts +++ b/src/modals/Networks/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/modals/Networks/index.tsx b/src/modals/Networks/index.tsx index 63b7c00668..90d74bfe2b 100644 --- a/src/modals/Networks/index.tsx +++ b/src/modals/Networks/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faChevronRight, faGlobe } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/modals/Networks/types.ts b/src/modals/Networks/types.ts index 247f69da91..968cacbefd 100644 --- a/src/modals/Networks/types.ts +++ b/src/modals/Networks/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only export interface NetworkButtonProps { connected?: boolean; diff --git a/src/modals/Nominate/index.tsx b/src/modals/Nominate/index.tsx index f6b12317f0..f0df77f9ac 100644 --- a/src/modals/Nominate/index.tsx +++ b/src/modals/Nominate/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ActionItem, diff --git a/src/modals/NominateFromFavorites/Wrappers.ts b/src/modals/NominateFromFavorites/Wrappers.ts index a601f9a51f..e043f85937 100644 --- a/src/modals/NominateFromFavorites/Wrappers.ts +++ b/src/modals/NominateFromFavorites/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/modals/NominateFromFavorites/index.tsx b/src/modals/NominateFromFavorites/index.tsx index 7c5dba73e7..5e0fb4cdbd 100644 --- a/src/modals/NominateFromFavorites/index.tsx +++ b/src/modals/NominateFromFavorites/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ModalFooter, diff --git a/src/modals/NominatePool/index.tsx b/src/modals/NominatePool/index.tsx index cc51f70032..6ec466dd46 100644 --- a/src/modals/NominatePool/index.tsx +++ b/src/modals/NominatePool/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ActionItem, diff --git a/src/modals/PoolNominations/Wrappers.ts b/src/modals/PoolNominations/Wrappers.ts index a601f9a51f..e043f85937 100644 --- a/src/modals/PoolNominations/Wrappers.ts +++ b/src/modals/PoolNominations/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/modals/PoolNominations/index.tsx b/src/modals/PoolNominations/index.tsx index 6816c0e5cd..4d8d40378e 100644 --- a/src/modals/PoolNominations/index.tsx +++ b/src/modals/PoolNominations/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ModalPadding } from '@polkadotcloud/core-ui'; import { useTranslation } from 'react-i18next'; diff --git a/src/modals/SelectFavorites/Wrappers.ts b/src/modals/SelectFavorites/Wrappers.ts index e1dcd01353..48921d487b 100644 --- a/src/modals/SelectFavorites/Wrappers.ts +++ b/src/modals/SelectFavorites/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/modals/SelectFavorites/index.tsx b/src/modals/SelectFavorites/index.tsx index 27d6c3451c..d15eca0988 100644 --- a/src/modals/SelectFavorites/index.tsx +++ b/src/modals/SelectFavorites/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ModalPadding } from '@polkadotcloud/core-ui'; import { useEffect, useState } from 'react'; diff --git a/src/modals/Settings/index.tsx b/src/modals/Settings/index.tsx index 648cf4f89d..6ce8cfd8ce 100644 --- a/src/modals/Settings/index.tsx +++ b/src/modals/Settings/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ModalPadding } from '@polkadotcloud/core-ui'; import { useTranslation } from 'react-i18next'; diff --git a/src/modals/Unbond/index.tsx b/src/modals/Unbond/index.tsx index a0a655b49f..5a715f3ebf 100644 --- a/src/modals/Unbond/index.tsx +++ b/src/modals/Unbond/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ModalNotes, diff --git a/src/modals/UnbondPoolMember/index.tsx b/src/modals/UnbondPoolMember/index.tsx index 890e33f8e6..a0a9236c5f 100644 --- a/src/modals/UnbondPoolMember/index.tsx +++ b/src/modals/UnbondPoolMember/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ActionItem, diff --git a/src/modals/UnlockChunks/Chunk.tsx b/src/modals/UnlockChunks/Chunk.tsx index 418e0b0b3b..c86ffcd5ef 100644 --- a/src/modals/UnlockChunks/Chunk.tsx +++ b/src/modals/UnlockChunks/Chunk.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ButtonSubmit } from '@polkadotcloud/core-ui'; import { planckToUnit } from '@polkadotcloud/utils'; diff --git a/src/modals/UnlockChunks/Forms.tsx b/src/modals/UnlockChunks/Forms.tsx index 4830ea9e1a..aeb74c604e 100644 --- a/src/modals/UnlockChunks/Forms.tsx +++ b/src/modals/UnlockChunks/Forms.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faChevronLeft } from '@fortawesome/free-solid-svg-icons'; import { diff --git a/src/modals/UnlockChunks/Overview.tsx b/src/modals/UnlockChunks/Overview.tsx index 8e18eb246e..1647753c93 100644 --- a/src/modals/UnlockChunks/Overview.tsx +++ b/src/modals/UnlockChunks/Overview.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faCheckCircle, faClock } from '@fortawesome/free-regular-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/modals/UnlockChunks/Wrappers.ts b/src/modals/UnlockChunks/Wrappers.ts index 46bc490431..304d36900b 100644 --- a/src/modals/UnlockChunks/Wrappers.ts +++ b/src/modals/UnlockChunks/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/modals/UnlockChunks/index.tsx b/src/modals/UnlockChunks/index.tsx index c5ed328b45..460d09010c 100644 --- a/src/modals/UnlockChunks/index.tsx +++ b/src/modals/UnlockChunks/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ModalFixedTitle, diff --git a/src/modals/Unstake/index.tsx b/src/modals/Unstake/index.tsx index 321945f9df..46dab68d10 100644 --- a/src/modals/Unstake/index.tsx +++ b/src/modals/Unstake/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ActionItem, diff --git a/src/modals/UpdateController/Switch/Wrappers.ts b/src/modals/UpdateController/Switch/Wrappers.ts index 6fdc353b90..105de3bec6 100644 --- a/src/modals/UpdateController/Switch/Wrappers.ts +++ b/src/modals/UpdateController/Switch/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/modals/UpdateController/Switch/index.tsx b/src/modals/UpdateController/Switch/index.tsx index 56914084d8..e99fc50917 100644 --- a/src/modals/UpdateController/Switch/index.tsx +++ b/src/modals/UpdateController/Switch/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faAnglesRight } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/modals/UpdateController/Wrapper.ts b/src/modals/UpdateController/Wrapper.ts index 5f867495b2..48b0652194 100644 --- a/src/modals/UpdateController/Wrapper.ts +++ b/src/modals/UpdateController/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/modals/UpdateController/index.tsx b/src/modals/UpdateController/index.tsx index a6c538102c..50823d70d5 100644 --- a/src/modals/UpdateController/index.tsx +++ b/src/modals/UpdateController/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ModalPadding, ModalWarnings } from '@polkadotcloud/core-ui'; import { useTranslation } from 'react-i18next'; diff --git a/src/modals/UpdatePayee/index.tsx b/src/modals/UpdatePayee/index.tsx index 7ae8610629..8530bef49c 100644 --- a/src/modals/UpdatePayee/index.tsx +++ b/src/modals/UpdatePayee/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ModalPadding, ModalWarnings } from '@polkadotcloud/core-ui'; import { isValidAddress } from '@polkadotcloud/utils'; diff --git a/src/modals/UpdateReserve/index.tsx b/src/modals/UpdateReserve/index.tsx index fba9e554d9..b19de54bfa 100644 --- a/src/modals/UpdateReserve/index.tsx +++ b/src/modals/UpdateReserve/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faLock } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/modals/Utils/StaticNote.tsx b/src/modals/Utils/StaticNote.tsx index 80c29c9325..d63e7f227b 100644 --- a/src/modals/Utils/StaticNote.tsx +++ b/src/modals/Utils/StaticNote.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/modals/ValidatorMetrics/index.tsx b/src/modals/ValidatorMetrics/index.tsx index c371b8d84c..1e3101e39b 100644 --- a/src/modals/ValidatorMetrics/index.tsx +++ b/src/modals/ValidatorMetrics/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ButtonHelp, ModalPadding } from '@polkadotcloud/core-ui'; import { clipAddress, planckToUnit, rmCommas } from '@polkadotcloud/utils'; diff --git a/src/modals/WithdrawPoolMember/index.tsx b/src/modals/WithdrawPoolMember/index.tsx index 466b460b36..63a12091bc 100644 --- a/src/modals/WithdrawPoolMember/index.tsx +++ b/src/modals/WithdrawPoolMember/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ActionItem, diff --git a/src/modals/index.tsx b/src/modals/index.tsx index 95e4d04905..4792b168ed 100644 --- a/src/modals/index.tsx +++ b/src/modals/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ModalContainer, ModalCard, ModalHeight } from '@polkadotcloud/core-ui'; import { useAnimation } from 'framer-motion'; diff --git a/src/pages/Community/Entity.tsx b/src/pages/Community/Entity.tsx index b59e424bd0..a118ef9f62 100644 --- a/src/pages/Community/Entity.tsx +++ b/src/pages/Community/Entity.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faChevronLeft } from '@fortawesome/free-solid-svg-icons'; import { ButtonSecondary, PageHeading, PageRow } from '@polkadotcloud/core-ui'; diff --git a/src/pages/Community/Item.tsx b/src/pages/Community/Item.tsx index 254e1e11c3..a7639bf8b1 100644 --- a/src/pages/Community/Item.tsx +++ b/src/pages/Community/Item.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faTwitter } from '@fortawesome/free-brands-svg-icons'; import { diff --git a/src/pages/Community/List.tsx b/src/pages/Community/List.tsx index d4eb6e5676..8a59abdf87 100644 --- a/src/pages/Community/List.tsx +++ b/src/pages/Community/List.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { PageRow } from '@polkadotcloud/core-ui'; import { useEffect, useState } from 'react'; diff --git a/src/pages/Community/Wrappers.ts b/src/pages/Community/Wrappers.ts index df5f5bc20d..4281a46fe3 100644 --- a/src/pages/Community/Wrappers.ts +++ b/src/pages/Community/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { motion } from 'framer-motion'; import styled from 'styled-components'; diff --git a/src/pages/Community/context.tsx b/src/pages/Community/context.tsx index 16ffa33354..7d3597ec54 100644 --- a/src/pages/Community/context.tsx +++ b/src/pages/Community/context.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import React, { useEffect, useState } from 'react'; import { useApi } from 'contexts/Api'; diff --git a/src/pages/Community/defaults.ts b/src/pages/Community/defaults.ts index 75d61d0819..d151b5880e 100644 --- a/src/pages/Community/defaults.ts +++ b/src/pages/Community/defaults.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only export const item = { name: '', diff --git a/src/pages/Community/index.tsx b/src/pages/Community/index.tsx index 182d246f1b..33c226960a 100644 --- a/src/pages/Community/index.tsx +++ b/src/pages/Community/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { PageTitle } from '@polkadotcloud/core-ui'; import { useTranslation } from 'react-i18next'; diff --git a/src/pages/Nominate/Active/ControllerNotStash.tsx b/src/pages/Nominate/Active/ControllerNotStash.tsx index 69fb76425f..8c24dfb5e0 100644 --- a/src/pages/Nominate/Active/ControllerNotStash.tsx +++ b/src/pages/Nominate/Active/ControllerNotStash.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faCircleArrowRight, diff --git a/src/pages/Nominate/Active/ManageBond.tsx b/src/pages/Nominate/Active/ManageBond.tsx index c5d0410a5b..84fe6a4b69 100644 --- a/src/pages/Nominate/Active/ManageBond.tsx +++ b/src/pages/Nominate/Active/ManageBond.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faLockOpen } from '@fortawesome/free-solid-svg-icons'; import { ButtonHelp, ButtonPrimary, ButtonRow } from '@polkadotcloud/core-ui'; diff --git a/src/pages/Nominate/Active/Nominations/Wrapper.ts b/src/pages/Nominate/Active/Nominations/Wrapper.ts index 24164ba697..4b1e615e0f 100644 --- a/src/pages/Nominate/Active/Nominations/Wrapper.ts +++ b/src/pages/Nominate/Active/Nominations/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/pages/Nominate/Active/Nominations/index.tsx b/src/pages/Nominate/Active/Nominations/index.tsx index aaa3297253..73eef4a1e8 100644 --- a/src/pages/Nominate/Active/Nominations/index.tsx +++ b/src/pages/Nominate/Active/Nominations/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faStopCircle } from '@fortawesome/free-solid-svg-icons'; import { ButtonHelp, ButtonPrimary } from '@polkadotcloud/core-ui'; diff --git a/src/pages/Nominate/Active/Stats/ActiveNominators.tsx b/src/pages/Nominate/Active/Stats/ActiveNominators.tsx index e5634fff19..b1b3c318f3 100644 --- a/src/pages/Nominate/Active/Stats/ActiveNominators.tsx +++ b/src/pages/Nominate/Active/Stats/ActiveNominators.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import BigNumber from 'bignumber.js'; import { useTranslation } from 'react-i18next'; diff --git a/src/pages/Nominate/Active/Stats/MinimumActiveStake.tsx b/src/pages/Nominate/Active/Stats/MinimumActiveStake.tsx index f0d2cea88e..3de91d97ea 100644 --- a/src/pages/Nominate/Active/Stats/MinimumActiveStake.tsx +++ b/src/pages/Nominate/Active/Stats/MinimumActiveStake.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { planckToUnit } from '@polkadotcloud/utils'; import { useTranslation } from 'react-i18next'; diff --git a/src/pages/Nominate/Active/Stats/MinimumNominatorBond.tsx b/src/pages/Nominate/Active/Stats/MinimumNominatorBond.tsx index 6e09aa8e6e..a4b291bd87 100644 --- a/src/pages/Nominate/Active/Stats/MinimumNominatorBond.tsx +++ b/src/pages/Nominate/Active/Stats/MinimumNominatorBond.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { planckToUnit } from '@polkadotcloud/utils'; import { useTranslation } from 'react-i18next'; diff --git a/src/pages/Nominate/Active/Status/ControllerStatus.tsx b/src/pages/Nominate/Active/Status/ControllerStatus.tsx index d0a3d49bd1..b708ad06b2 100644 --- a/src/pages/Nominate/Active/Status/ControllerStatus.tsx +++ b/src/pages/Nominate/Active/Status/ControllerStatus.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { clipAddress } from '@polkadotcloud/utils'; import { useTranslation } from 'react-i18next'; diff --git a/src/pages/Nominate/Active/Status/NominationStatus.tsx b/src/pages/Nominate/Active/Status/NominationStatus.tsx index 2faa01c909..488f67b304 100644 --- a/src/pages/Nominate/Active/Status/NominationStatus.tsx +++ b/src/pages/Nominate/Active/Status/NominationStatus.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faBolt, diff --git a/src/pages/Nominate/Active/Status/PayoutDestinationStatus.tsx b/src/pages/Nominate/Active/Status/PayoutDestinationStatus.tsx index b8ab5faee4..746108053e 100644 --- a/src/pages/Nominate/Active/Status/PayoutDestinationStatus.tsx +++ b/src/pages/Nominate/Active/Status/PayoutDestinationStatus.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faGear, faWallet } from '@fortawesome/free-solid-svg-icons'; import { useTranslation } from 'react-i18next'; diff --git a/src/pages/Nominate/Active/Status/index.tsx b/src/pages/Nominate/Active/Status/index.tsx index 1ecd76aaf4..b6a2e888d5 100644 --- a/src/pages/Nominate/Active/Status/index.tsx +++ b/src/pages/Nominate/Active/Status/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { Separator } from '@polkadotcloud/core-ui'; import { CardWrapper } from 'library/Card/Wrappers'; diff --git a/src/pages/Nominate/Active/UnstakePrompts.tsx b/src/pages/Nominate/Active/UnstakePrompts.tsx index 098105b2de..564b5dff11 100644 --- a/src/pages/Nominate/Active/UnstakePrompts.tsx +++ b/src/pages/Nominate/Active/UnstakePrompts.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faBolt, faLockOpen } from '@fortawesome/free-solid-svg-icons'; import { ButtonPrimary, ButtonRow, PageRow } from '@polkadotcloud/core-ui'; diff --git a/src/pages/Nominate/Active/index.tsx b/src/pages/Nominate/Active/index.tsx index 0e9990bf18..ca0e329bf3 100644 --- a/src/pages/Nominate/Active/index.tsx +++ b/src/pages/Nominate/Active/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faChevronCircleRight } from '@fortawesome/free-solid-svg-icons'; import { diff --git a/src/pages/Nominate/Active/types.ts b/src/pages/Nominate/Active/types.ts index 1bae97232f..27c8ddc97d 100644 --- a/src/pages/Nominate/Active/types.ts +++ b/src/pages/Nominate/Active/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type BigNumber from 'bignumber.js'; diff --git a/src/pages/Nominate/Setup/Bond/index.tsx b/src/pages/Nominate/Setup/Bond/index.tsx index 2085c98653..10c344e844 100644 --- a/src/pages/Nominate/Setup/Bond/index.tsx +++ b/src/pages/Nominate/Setup/Bond/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import BigNumber from 'bignumber.js'; import { useEffect, useState } from 'react'; diff --git a/src/pages/Nominate/Setup/Payee/index.tsx b/src/pages/Nominate/Setup/Payee/index.tsx index 9cc01e6951..24ef2f0f36 100644 --- a/src/pages/Nominate/Setup/Payee/index.tsx +++ b/src/pages/Nominate/Setup/Payee/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/pages/Nominate/Setup/Summary/Wrapper.ts b/src/pages/Nominate/Setup/Summary/Wrapper.ts index 3de97c60ac..0ccd468d2a 100644 --- a/src/pages/Nominate/Setup/Summary/Wrapper.ts +++ b/src/pages/Nominate/Setup/Summary/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/pages/Nominate/Setup/Summary/index.tsx b/src/pages/Nominate/Setup/Summary/index.tsx index 73717bb8d0..6dc3353d1d 100644 --- a/src/pages/Nominate/Setup/Summary/index.tsx +++ b/src/pages/Nominate/Setup/Summary/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faCheckCircle } from '@fortawesome/free-regular-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/pages/Nominate/Setup/index.tsx b/src/pages/Nominate/Setup/index.tsx index 0932e49cb6..4292178e67 100644 --- a/src/pages/Nominate/Setup/index.tsx +++ b/src/pages/Nominate/Setup/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faChevronLeft, faTimes } from '@fortawesome/free-solid-svg-icons'; import { diff --git a/src/pages/Nominate/Wrappers.ts b/src/pages/Nominate/Wrappers.ts index 25aade8ad4..e061a55d24 100644 --- a/src/pages/Nominate/Wrappers.ts +++ b/src/pages/Nominate/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/pages/Nominate/index.tsx b/src/pages/Nominate/index.tsx index 40ecf75ac0..eaf2e2f04b 100644 --- a/src/pages/Nominate/index.tsx +++ b/src/pages/Nominate/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useSetup } from 'contexts/Setup'; import { Active } from './Active'; diff --git a/src/pages/Overview/ActiveAccounts/Item.tsx b/src/pages/Overview/ActiveAccounts/Item.tsx index ccced21469..a01ad53747 100644 --- a/src/pages/Overview/ActiveAccounts/Item.tsx +++ b/src/pages/Overview/ActiveAccounts/Item.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faCopy } from '@fortawesome/free-regular-svg-icons'; import { faArrowLeft } from '@fortawesome/free-solid-svg-icons'; diff --git a/src/pages/Overview/ActiveAccounts/Wrappers.ts b/src/pages/Overview/ActiveAccounts/Wrappers.ts index e5bd455ccd..8fdfec1d33 100644 --- a/src/pages/Overview/ActiveAccounts/Wrappers.ts +++ b/src/pages/Overview/ActiveAccounts/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/pages/Overview/ActiveAccounts/index.tsx b/src/pages/Overview/ActiveAccounts/index.tsx index ab00e8d401..8ffcf6eb2a 100644 --- a/src/pages/Overview/ActiveAccounts/index.tsx +++ b/src/pages/Overview/ActiveAccounts/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useConnect } from 'contexts/Connect'; import { Item } from './Item'; diff --git a/src/pages/Overview/ActiveAccounts/types.ts b/src/pages/Overview/ActiveAccounts/types.ts index 8cfed999e5..50b34510ae 100644 --- a/src/pages/Overview/ActiveAccounts/types.ts +++ b/src/pages/Overview/ActiveAccounts/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { MaybeAccount } from 'types'; diff --git a/src/pages/Overview/BalanceChart.tsx b/src/pages/Overview/BalanceChart.tsx index 081bdcb091..8db60ed713 100644 --- a/src/pages/Overview/BalanceChart.tsx +++ b/src/pages/Overview/BalanceChart.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faCheck, faCheckDouble } from '@fortawesome/free-solid-svg-icons'; import { ButtonTertiary } from '@polkadotcloud/core-ui'; diff --git a/src/pages/Overview/BalanceLinks.tsx b/src/pages/Overview/BalanceLinks.tsx index d0dba1c228..18446454d6 100644 --- a/src/pages/Overview/BalanceLinks.tsx +++ b/src/pages/Overview/BalanceLinks.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faExternalLinkAlt } from '@fortawesome/free-solid-svg-icons'; import { ButtonPrimaryInvert, Separator } from '@polkadotcloud/core-ui'; diff --git a/src/pages/Overview/NetworkSats/Announcements.tsx b/src/pages/Overview/NetworkSats/Announcements.tsx index 6010db898c..d0d5ea9317 100644 --- a/src/pages/Overview/NetworkSats/Announcements.tsx +++ b/src/pages/Overview/NetworkSats/Announcements.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faBullhorn as faBack } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/pages/Overview/NetworkSats/Wrappers.ts b/src/pages/Overview/NetworkSats/Wrappers.ts index 18b983a29a..98e3fb6bc1 100644 --- a/src/pages/Overview/NetworkSats/Wrappers.ts +++ b/src/pages/Overview/NetworkSats/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { motion } from 'framer-motion'; import styled from 'styled-components'; diff --git a/src/pages/Overview/NetworkSats/index.tsx b/src/pages/Overview/NetworkSats/index.tsx index 35009ac105..31b57f0eae 100644 --- a/src/pages/Overview/NetworkSats/index.tsx +++ b/src/pages/Overview/NetworkSats/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import BigNumber from 'bignumber.js'; import { useTranslation } from 'react-i18next'; diff --git a/src/pages/Overview/Payouts.tsx b/src/pages/Overview/Payouts.tsx index 1173e058af..f3c22e7ac6 100644 --- a/src/pages/Overview/Payouts.tsx +++ b/src/pages/Overview/Payouts.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import React from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/pages/Overview/StakeStatus/Tips/Items.tsx b/src/pages/Overview/StakeStatus/Tips/Items.tsx index 3b49cbc78e..e8bba5fb95 100644 --- a/src/pages/Overview/StakeStatus/Tips/Items.tsx +++ b/src/pages/Overview/StakeStatus/Tips/Items.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faExternalLinkAlt } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/pages/Overview/StakeStatus/Tips/PageToggle.tsx b/src/pages/Overview/StakeStatus/Tips/PageToggle.tsx index bbc502d63b..d77048f9e6 100644 --- a/src/pages/Overview/StakeStatus/Tips/PageToggle.tsx +++ b/src/pages/Overview/StakeStatus/Tips/PageToggle.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faChevronCircleLeft, diff --git a/src/pages/Overview/StakeStatus/Tips/Syncing.tsx b/src/pages/Overview/StakeStatus/Tips/Syncing.tsx index c5790356b2..7c9b5b1992 100644 --- a/src/pages/Overview/StakeStatus/Tips/Syncing.tsx +++ b/src/pages/Overview/StakeStatus/Tips/Syncing.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useTranslation } from 'react-i18next'; import { useDotLottieButton } from 'library/Hooks/useDotLottieButton'; diff --git a/src/pages/Overview/StakeStatus/Tips/Wrappers.ts b/src/pages/Overview/StakeStatus/Tips/Wrappers.ts index ffab824547..a4d4ba7734 100644 --- a/src/pages/Overview/StakeStatus/Tips/Wrappers.ts +++ b/src/pages/Overview/StakeStatus/Tips/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { motion } from 'framer-motion'; import styled from 'styled-components'; diff --git a/src/pages/Overview/StakeStatus/Tips/index.tsx b/src/pages/Overview/StakeStatus/Tips/index.tsx index 83f16ff9c2..c94baf8457 100644 --- a/src/pages/Overview/StakeStatus/Tips/index.tsx +++ b/src/pages/Overview/StakeStatus/Tips/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { setStateWithRef } from '@polkadotcloud/utils'; import throttle from 'lodash.throttle'; diff --git a/src/pages/Overview/StakeStatus/Tips/types.ts b/src/pages/Overview/StakeStatus/Tips/types.ts index 9a14076bda..1d53e35f20 100644 --- a/src/pages/Overview/StakeStatus/Tips/types.ts +++ b/src/pages/Overview/StakeStatus/Tips/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only export interface PageToggleProps { start: number; diff --git a/src/pages/Overview/StakeStatus/Wrappers.ts b/src/pages/Overview/StakeStatus/Wrappers.ts index 0f8df26fae..d345659ff2 100644 --- a/src/pages/Overview/StakeStatus/Wrappers.ts +++ b/src/pages/Overview/StakeStatus/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; import { SideMenuStickyThreshold } from 'consts'; diff --git a/src/pages/Overview/StakeStatus/index.tsx b/src/pages/Overview/StakeStatus/index.tsx index 6da7bc6ab8..459cedf3a6 100644 --- a/src/pages/Overview/StakeStatus/index.tsx +++ b/src/pages/Overview/StakeStatus/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { RowSection } from '@polkadotcloud/core-ui'; import { usePlugins } from 'contexts/Plugins'; diff --git a/src/pages/Overview/Stats/ActiveEraTimeLeft.tsx b/src/pages/Overview/Stats/ActiveEraTimeLeft.tsx index 899a5093c8..d5ca3a8e19 100644 --- a/src/pages/Overview/Stats/ActiveEraTimeLeft.tsx +++ b/src/pages/Overview/Stats/ActiveEraTimeLeft.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import BigNumber from 'bignumber.js'; import { fromUnixTime } from 'date-fns'; diff --git a/src/pages/Overview/Stats/HistoricalRewardsRate.tsx b/src/pages/Overview/Stats/HistoricalRewardsRate.tsx index 27d967d9d3..5312471590 100644 --- a/src/pages/Overview/Stats/HistoricalRewardsRate.tsx +++ b/src/pages/Overview/Stats/HistoricalRewardsRate.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import BigNumber from 'bignumber.js'; import { useTranslation } from 'react-i18next'; diff --git a/src/pages/Overview/Stats/SupplyStaked.tsx b/src/pages/Overview/Stats/SupplyStaked.tsx index 145741958d..0ee78ce557 100644 --- a/src/pages/Overview/Stats/SupplyStaked.tsx +++ b/src/pages/Overview/Stats/SupplyStaked.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { planckToUnit } from '@polkadotcloud/utils'; import BigNumber from 'bignumber.js'; diff --git a/src/pages/Overview/Wrappers.ts b/src/pages/Overview/Wrappers.ts index 857b5a8957..796faf2006 100644 --- a/src/pages/Overview/Wrappers.ts +++ b/src/pages/Overview/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; import { SectionFullWidthThreshold } from 'consts'; diff --git a/src/pages/Overview/index.tsx b/src/pages/Overview/index.tsx index 7e46ecdbd1..1c430d6c14 100644 --- a/src/pages/Overview/index.tsx +++ b/src/pages/Overview/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { PageHeading, diff --git a/src/pages/Payouts/PayoutList/context.tsx b/src/pages/Payouts/PayoutList/context.tsx index f3e418dc35..60de3a44f7 100644 --- a/src/pages/Payouts/PayoutList/context.tsx +++ b/src/pages/Payouts/PayoutList/context.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import React, { useState } from 'react'; import type { PayoutListContextInterface } from 'pages/Pools/types'; diff --git a/src/pages/Payouts/PayoutList/index.tsx b/src/pages/Payouts/PayoutList/index.tsx index 643d8a5315..8c300da30b 100644 --- a/src/pages/Payouts/PayoutList/index.tsx +++ b/src/pages/Payouts/PayoutList/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faBars, faGripVertical } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/pages/Payouts/Stats/LastEraPayout.tsx b/src/pages/Payouts/Stats/LastEraPayout.tsx index 75d7673258..212c3a8e2a 100644 --- a/src/pages/Payouts/Stats/LastEraPayout.tsx +++ b/src/pages/Payouts/Stats/LastEraPayout.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { planckToUnit } from '@polkadotcloud/utils'; import { useTranslation } from 'react-i18next'; diff --git a/src/pages/Payouts/Wrappers.ts b/src/pages/Payouts/Wrappers.ts index 7c7b897970..fe8e37d6af 100644 --- a/src/pages/Payouts/Wrappers.ts +++ b/src/pages/Payouts/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { motion } from 'framer-motion'; import styled from 'styled-components'; diff --git a/src/pages/Payouts/index.tsx b/src/pages/Payouts/index.tsx index 10a3eda1f8..05f2cab15c 100644 --- a/src/pages/Payouts/index.tsx +++ b/src/pages/Payouts/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { ButtonHelp, PageRow, PageTitle } from '@polkadotcloud/core-ui'; import { useEffect, useRef, useState } from 'react'; diff --git a/src/pages/Payouts/types.ts b/src/pages/Payouts/types.ts index e8ffc7c07c..f9c08440d0 100644 --- a/src/pages/Payouts/types.ts +++ b/src/pages/Payouts/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { AnySubscan } from 'types'; diff --git a/src/pages/Pools/Create/Bond/index.tsx b/src/pages/Pools/Create/Bond/index.tsx index 68ee625e6e..8fa9df36a1 100644 --- a/src/pages/Pools/Create/Bond/index.tsx +++ b/src/pages/Pools/Create/Bond/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import BigNumber from 'bignumber.js'; import { useEffect, useState } from 'react'; diff --git a/src/pages/Pools/Create/PoolName/Input.tsx b/src/pages/Pools/Create/PoolName/Input.tsx index 58fe960dc1..d0e8f452c2 100644 --- a/src/pages/Pools/Create/PoolName/Input.tsx +++ b/src/pages/Pools/Create/PoolName/Input.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import React, { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/pages/Pools/Create/PoolName/index.tsx b/src/pages/Pools/Create/PoolName/index.tsx index f75b2ef952..2db9aeb76b 100644 --- a/src/pages/Pools/Create/PoolName/index.tsx +++ b/src/pages/Pools/Create/PoolName/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/pages/Pools/Create/PoolRoles/index.tsx b/src/pages/Pools/Create/PoolRoles/index.tsx index bf694033f5..d769d1cd8a 100644 --- a/src/pages/Pools/Create/PoolRoles/index.tsx +++ b/src/pages/Pools/Create/PoolRoles/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useEffect, useState } from 'react'; import { Trans, useTranslation } from 'react-i18next'; diff --git a/src/pages/Pools/Create/Summary/Wrapper.ts b/src/pages/Pools/Create/Summary/Wrapper.ts index 259e491c8e..aba7c632d3 100644 --- a/src/pages/Pools/Create/Summary/Wrapper.ts +++ b/src/pages/Pools/Create/Summary/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/pages/Pools/Create/Summary/index.tsx b/src/pages/Pools/Create/Summary/index.tsx index e650be8eb8..5bbfe91314 100644 --- a/src/pages/Pools/Create/Summary/index.tsx +++ b/src/pages/Pools/Create/Summary/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faCheckCircle } from '@fortawesome/free-regular-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/pages/Pools/Create/index.tsx b/src/pages/Pools/Create/index.tsx index b44669bc25..3d0f8bb755 100644 --- a/src/pages/Pools/Create/index.tsx +++ b/src/pages/Pools/Create/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faChevronLeft } from '@fortawesome/free-solid-svg-icons'; import { diff --git a/src/pages/Pools/Home/ClosurePrompts.tsx b/src/pages/Pools/Home/ClosurePrompts.tsx index 5a6e70de73..b56a26a91d 100644 --- a/src/pages/Pools/Home/ClosurePrompts.tsx +++ b/src/pages/Pools/Home/ClosurePrompts.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faLockOpen } from '@fortawesome/free-solid-svg-icons'; import { ButtonPrimary, ButtonRow, PageRow } from '@polkadotcloud/core-ui'; diff --git a/src/pages/Pools/Home/Favorites/index.tsx b/src/pages/Pools/Home/Favorites/index.tsx index e1c25d2a9a..5f61883bb1 100644 --- a/src/pages/Pools/Home/Favorites/index.tsx +++ b/src/pages/Pools/Home/Favorites/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { PageRow } from '@polkadotcloud/core-ui'; import { useEffect, useState } from 'react'; diff --git a/src/pages/Pools/Home/ManageBond.tsx b/src/pages/Pools/Home/ManageBond.tsx index 80179055ae..7031007a24 100644 --- a/src/pages/Pools/Home/ManageBond.tsx +++ b/src/pages/Pools/Home/ManageBond.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faLockOpen } from '@fortawesome/free-solid-svg-icons'; import { ButtonHelp, ButtonPrimary, ButtonRow } from '@polkadotcloud/core-ui'; diff --git a/src/pages/Pools/Home/ManagePool/Wrappers.ts b/src/pages/Pools/Home/ManagePool/Wrappers.ts index 2dfcb10622..e6a5173994 100644 --- a/src/pages/Pools/Home/ManagePool/Wrappers.ts +++ b/src/pages/Pools/Home/ManagePool/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; import { SectionFullWidthThreshold } from 'consts'; diff --git a/src/pages/Pools/Home/ManagePool/index.tsx b/src/pages/Pools/Home/ManagePool/index.tsx index 121caaf0e0..2eaa6c810b 100644 --- a/src/pages/Pools/Home/ManagePool/index.tsx +++ b/src/pages/Pools/Home/ManagePool/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faChevronCircleRight } from '@fortawesome/free-solid-svg-icons'; import { ButtonHelp, ButtonPrimary, PageRow } from '@polkadotcloud/core-ui'; diff --git a/src/pages/Pools/Home/Members.tsx b/src/pages/Pools/Home/Members.tsx index 9c4f5b0131..55e2f7f700 100644 --- a/src/pages/Pools/Home/Members.tsx +++ b/src/pages/Pools/Home/Members.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faBars } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/pages/Pools/Home/MembersList/Default.tsx b/src/pages/Pools/Home/MembersList/Default.tsx index cf2be24838..8d61b807ae 100644 --- a/src/pages/Pools/Home/MembersList/Default.tsx +++ b/src/pages/Pools/Home/MembersList/Default.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faBars, faGripVertical } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/pages/Pools/Home/MembersList/FetchPage.tsx b/src/pages/Pools/Home/MembersList/FetchPage.tsx index 19a9b63990..1d3f792978 100644 --- a/src/pages/Pools/Home/MembersList/FetchPage.tsx +++ b/src/pages/Pools/Home/MembersList/FetchPage.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faBars, faGripVertical } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/pages/Pools/Home/MembersList/Member.tsx b/src/pages/Pools/Home/MembersList/Member.tsx index dda5fe1841..36f5edc3be 100644 --- a/src/pages/Pools/Home/MembersList/Member.tsx +++ b/src/pages/Pools/Home/MembersList/Member.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faBars, diff --git a/src/pages/Pools/Home/MembersList/types.ts b/src/pages/Pools/Home/MembersList/types.ts index fc20467b2e..63cfc8a80e 100644 --- a/src/pages/Pools/Home/MembersList/types.ts +++ b/src/pages/Pools/Home/MembersList/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only export interface MembersListProps { allowMoreCols: boolean; diff --git a/src/pages/Pools/Home/PoolStats/Announcements.tsx b/src/pages/Pools/Home/PoolStats/Announcements.tsx index 3334e33600..0ec878599b 100644 --- a/src/pages/Pools/Home/PoolStats/Announcements.tsx +++ b/src/pages/Pools/Home/PoolStats/Announcements.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faBullhorn as faBack } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/pages/Pools/Home/PoolStats/Wrappers.ts b/src/pages/Pools/Home/PoolStats/Wrappers.ts index 891f97cb27..e15dbbaa16 100644 --- a/src/pages/Pools/Home/PoolStats/Wrappers.ts +++ b/src/pages/Pools/Home/PoolStats/Wrappers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { motion } from 'framer-motion'; import styled from 'styled-components'; diff --git a/src/pages/Pools/Home/PoolStats/index.tsx b/src/pages/Pools/Home/PoolStats/index.tsx index 25b83e9d04..94996b3e3f 100644 --- a/src/pages/Pools/Home/PoolStats/index.tsx +++ b/src/pages/Pools/Home/PoolStats/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { planckToUnit, rmCommas } from '@polkadotcloud/utils'; import BigNumber from 'bignumber.js'; diff --git a/src/pages/Pools/Home/Stats/ActivePools.tsx b/src/pages/Pools/Home/Stats/ActivePools.tsx index 2533dff731..c02f994def 100644 --- a/src/pages/Pools/Home/Stats/ActivePools.tsx +++ b/src/pages/Pools/Home/Stats/ActivePools.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useTranslation } from 'react-i18next'; import { usePoolsConfig } from 'contexts/Pools/PoolsConfig'; diff --git a/src/pages/Pools/Home/Stats/MinCreateBond.tsx b/src/pages/Pools/Home/Stats/MinCreateBond.tsx index 73d6778ab7..731f7f2d45 100644 --- a/src/pages/Pools/Home/Stats/MinCreateBond.tsx +++ b/src/pages/Pools/Home/Stats/MinCreateBond.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { planckToUnit } from '@polkadotcloud/utils'; import { useTranslation } from 'react-i18next'; diff --git a/src/pages/Pools/Home/Stats/MinJoinBond.tsx b/src/pages/Pools/Home/Stats/MinJoinBond.tsx index d12aa2da10..b5e9d80a52 100644 --- a/src/pages/Pools/Home/Stats/MinJoinBond.tsx +++ b/src/pages/Pools/Home/Stats/MinJoinBond.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { planckToUnit } from '@polkadotcloud/utils'; import { useTranslation } from 'react-i18next'; diff --git a/src/pages/Pools/Home/Status/MembershipStatus.tsx b/src/pages/Pools/Home/Status/MembershipStatus.tsx index ed27e51d6c..93f7fd02fc 100644 --- a/src/pages/Pools/Home/Status/MembershipStatus.tsx +++ b/src/pages/Pools/Home/Status/MembershipStatus.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faCog } from '@fortawesome/free-solid-svg-icons'; import { determinePoolDisplay } from '@polkadotcloud/utils'; diff --git a/src/pages/Pools/Home/Status/PoolStatus.tsx b/src/pages/Pools/Home/Status/PoolStatus.tsx index 1d9a945bf1..5a1b618513 100644 --- a/src/pages/Pools/Home/Status/PoolStatus.tsx +++ b/src/pages/Pools/Home/Status/PoolStatus.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faExclamationTriangle, diff --git a/src/pages/Pools/Home/Status/RewardsStatus.tsx b/src/pages/Pools/Home/Status/RewardsStatus.tsx index 493fc8de43..480eb3c524 100644 --- a/src/pages/Pools/Home/Status/RewardsStatus.tsx +++ b/src/pages/Pools/Home/Status/RewardsStatus.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faPlus, faShare } from '@fortawesome/free-solid-svg-icons'; import { planckToUnit } from '@polkadotcloud/utils'; diff --git a/src/pages/Pools/Home/Status/index.tsx b/src/pages/Pools/Home/Status/index.tsx index 046b35a216..2feace7d3e 100644 --- a/src/pages/Pools/Home/Status/index.tsx +++ b/src/pages/Pools/Home/Status/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { Separator } from '@polkadotcloud/core-ui'; import { useActivePools } from 'contexts/Pools/ActivePools'; diff --git a/src/pages/Pools/Home/Status/useStatusButtons.tsx b/src/pages/Pools/Home/Status/useStatusButtons.tsx index 7f73eac4e6..45de533727 100644 --- a/src/pages/Pools/Home/Status/useStatusButtons.tsx +++ b/src/pages/Pools/Home/Status/useStatusButtons.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faPlusCircle, faUserPlus } from '@fortawesome/free-solid-svg-icons'; import { useTranslation } from 'react-i18next'; diff --git a/src/pages/Pools/Home/context.tsx b/src/pages/Pools/Home/context.tsx index 1ec80d0a38..60eaa87b35 100644 --- a/src/pages/Pools/Home/context.tsx +++ b/src/pages/Pools/Home/context.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { extractUrlValue } from '@polkadotcloud/utils'; import React, { useState } from 'react'; diff --git a/src/pages/Pools/Home/index.tsx b/src/pages/Pools/Home/index.tsx index 4c89c4f766..7a208253b6 100644 --- a/src/pages/Pools/Home/index.tsx +++ b/src/pages/Pools/Home/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { PageRow, PageTitle, RowSection } from '@polkadotcloud/core-ui'; import { useEffect, useRef, useState } from 'react'; diff --git a/src/pages/Pools/PoolAccount/Wrapper.ts b/src/pages/Pools/PoolAccount/Wrapper.ts index 21d52e61af..a5ba8ccd3c 100644 --- a/src/pages/Pools/PoolAccount/Wrapper.ts +++ b/src/pages/Pools/PoolAccount/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/pages/Pools/PoolAccount/index.tsx b/src/pages/Pools/PoolAccount/index.tsx index aa5e2b5667..7860eee44b 100644 --- a/src/pages/Pools/PoolAccount/index.tsx +++ b/src/pages/Pools/PoolAccount/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faCopy } from '@fortawesome/free-regular-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/src/pages/Pools/Roles/RoleEditInput/Wrapper.ts b/src/pages/Pools/Roles/RoleEditInput/Wrapper.ts index 077096c8b5..04d46482d3 100644 --- a/src/pages/Pools/Roles/RoleEditInput/Wrapper.ts +++ b/src/pages/Pools/Roles/RoleEditInput/Wrapper.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import styled from 'styled-components'; diff --git a/src/pages/Pools/Roles/RoleEditInput/index.tsx b/src/pages/Pools/Roles/RoleEditInput/index.tsx index c2fb7a6874..b1f76964ef 100644 --- a/src/pages/Pools/Roles/RoleEditInput/index.tsx +++ b/src/pages/Pools/Roles/RoleEditInput/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { isValidAddress } from '@polkadotcloud/utils'; import React from 'react'; diff --git a/src/pages/Pools/Roles/index.tsx b/src/pages/Pools/Roles/index.tsx index 9643c459ce..451fd1b1ef 100644 --- a/src/pages/Pools/Roles/index.tsx +++ b/src/pages/Pools/Roles/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { faCheckCircle, diff --git a/src/pages/Pools/Roles/types.ts b/src/pages/Pools/Roles/types.ts index 18ae60dbf7..c56a1ac78c 100644 --- a/src/pages/Pools/Roles/types.ts +++ b/src/pages/Pools/Roles/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { PoolRoles } from 'contexts/Pools/types'; diff --git a/src/pages/Pools/index.tsx b/src/pages/Pools/index.tsx index 8fab53f97e..129eb2ed3c 100644 --- a/src/pages/Pools/index.tsx +++ b/src/pages/Pools/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useSetup } from 'contexts/Setup'; import { Create } from './Create'; diff --git a/src/pages/Pools/types.ts b/src/pages/Pools/types.ts index 122e6dc285..0853c7dd1f 100644 --- a/src/pages/Pools/types.ts +++ b/src/pages/Pools/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only export interface PoolAccountProps { address: string | null; diff --git a/src/pages/Validators/AllValidators.tsx b/src/pages/Validators/AllValidators.tsx index b26d33b162..d13a3bf663 100644 --- a/src/pages/Validators/AllValidators.tsx +++ b/src/pages/Validators/AllValidators.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { PageRow } from '@polkadotcloud/core-ui'; import { useTranslation } from 'react-i18next'; diff --git a/src/pages/Validators/Favorites.tsx b/src/pages/Validators/Favorites.tsx index 65463595e7..a4ba1e1902 100644 --- a/src/pages/Validators/Favorites.tsx +++ b/src/pages/Validators/Favorites.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { PageRow } from '@polkadotcloud/core-ui'; import { useTranslation } from 'react-i18next'; diff --git a/src/pages/Validators/Stats/ActiveValidators.tsx b/src/pages/Validators/Stats/ActiveValidators.tsx index 5664cda577..2832f3b416 100644 --- a/src/pages/Validators/Stats/ActiveValidators.tsx +++ b/src/pages/Validators/Stats/ActiveValidators.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { greaterThanZero } from '@polkadotcloud/utils'; import BigNumber from 'bignumber.js'; diff --git a/src/pages/Validators/Stats/AverageCommission.tsx b/src/pages/Validators/Stats/AverageCommission.tsx index 602d875a79..00a2d4d211 100644 --- a/src/pages/Validators/Stats/AverageCommission.tsx +++ b/src/pages/Validators/Stats/AverageCommission.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { useTranslation } from 'react-i18next'; import { useValidators } from 'contexts/Validators'; diff --git a/src/pages/Validators/Stats/TotalValidators.tsx b/src/pages/Validators/Stats/TotalValidators.tsx index 2b5268c574..4fad6921e1 100644 --- a/src/pages/Validators/Stats/TotalValidators.tsx +++ b/src/pages/Validators/Stats/TotalValidators.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { greaterThanZero } from '@polkadotcloud/utils'; import BigNumber from 'bignumber.js'; diff --git a/src/pages/Validators/context.tsx b/src/pages/Validators/context.tsx index 13115cfe10..d28d6fed72 100644 --- a/src/pages/Validators/context.tsx +++ b/src/pages/Validators/context.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { extractUrlValue } from '@polkadotcloud/utils'; import React, { useState } from 'react'; diff --git a/src/pages/Validators/index.tsx b/src/pages/Validators/index.tsx index 8f405f94ea..88260ada99 100644 --- a/src/pages/Validators/index.tsx +++ b/src/pages/Validators/index.tsx @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { PageTitle } from '@polkadotcloud/core-ui'; import { useEffect } from 'react'; diff --git a/src/styles/graphs.ts b/src/styles/graphs.ts index 95020b030a..c50d52a722 100644 --- a/src/styles/graphs.ts +++ b/src/styles/graphs.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { AnyJson } from 'types'; diff --git a/src/styles/index.scss b/src/styles/index.scss index 206321d7a5..be4cabf696 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only html { font-size: 10.5px; diff --git a/src/types/index.ts b/src/types/index.ts index 6745d804c9..017ddc960d 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type React from 'react'; import type { FunctionComponent, SVGProps } from 'react'; diff --git a/src/workers/stakers.ts b/src/workers/stakers.ts index 85f98a1572..10b81a2a98 100644 --- a/src/workers/stakers.ts +++ b/src/workers/stakers.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import { planckToUnit, rmCommas } from '@polkadotcloud/utils'; import BigNumber from 'bignumber.js'; diff --git a/src/workers/types.ts b/src/workers/types.ts index 4a906401f6..bd04143660 100644 --- a/src/workers/types.ts +++ b/src/workers/types.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import type { ActiveAccountStaker, diff --git a/tests/graphs.test.ts b/tests/graphs.test.ts index 4a095c9eae..557d325c06 100644 --- a/tests/graphs.test.ts +++ b/tests/graphs.test.ts @@ -1,5 +1,5 @@ /* Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors - * SPDX-License-Identifier: Apache-2.0 */ + * SPDX-License-Identifier: GPL-3.0-only */ import { fromUnixTime, getUnixTime, startOfToday, subDays } from 'date-fns'; import { expect, test } from 'vitest'; diff --git a/vite.config.ts b/vite.config.ts index 4857686b01..d21a66f330 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,5 +1,5 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: Apache-2.0 +// SPDX-License-Identifier: GPL-3.0-only import react from '@vitejs/plugin-react-swc'; import { defineConfig } from 'vite'; From 607b91465196ffb06d9aaba2bdbeb66c3ff0cc54 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Mon, 7 Aug 2023 11:12:54 +0100 Subject: [PATCH 142/435] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3f37779001..73fec92a26 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Polkadot - App](https://img.shields.io/badge/Polkadot-App-E6007A?logo=polkadot&logoColor=E6007A)](https://staking.polkadot.network) ![ci](https://github.com/paritytech/polkadot-staking-dashboard/actions/workflows/ci.yml/badge.svg) [![License](https://img.shields.io/badge/License-GPL3.0-only-blue.svg)](https://opensource.org/licenses/GPL-3.0) +[![Polkadot - App](https://img.shields.io/badge/Polkadot-App-E6007A?logo=polkadot&logoColor=E6007A)](https://staking.polkadot.network) ![ci](https://github.com/paritytech/polkadot-staking-dashboard/actions/workflows/ci.yml/badge.svg) [![License](https://img.shields.io/badge/License-GPL3.0-blue.svg)](https://opensource.org/licenses/GPL-3.0) # Polkadot Staking Dashboard From 75245fe6b18e4829f8e851633b1491f60c9cba79 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Mon, 7 Aug 2023 20:12:07 +0700 Subject: [PATCH 143/435] rm homepage --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 8e80fa014a..4c65f6f813 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,6 @@ "type": "module", "license": "GPL-3.0-only", "private": false, - "homepage": "/", "scripts": { "dev": "vite", "build": "tsc && vite build", From 1714103bbf47e0fbd9b2c316a97755d85ec40436 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Aug 2023 21:21:38 +0000 Subject: [PATCH 144/435] Bump eslint-config-prettier from 8.10.0 to 9.0.0 Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 8.10.0 to 9.0.0. - [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/eslint-config-prettier/compare/v8.10.0...v9.0.0) --- updated-dependencies: - dependency-name: eslint-config-prettier dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 4c65f6f813..3ef061e863 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,7 @@ "eslint": "^8.46.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb-typescript": "^17.1.0", - "eslint-config-prettier": "^8.10.0", + "eslint-config-prettier": "^9.0.0", "eslint-import-resolver-typescript": "^3.5.5", "eslint-plugin-import": "^2.28.0", "eslint-plugin-jsx-a11y": "^6.7.1", diff --git a/yarn.lock b/yarn.lock index a0694b09ab..79655f8686 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3272,10 +3272,10 @@ eslint-config-airbnb@^19.0.4: object.assign "^4.1.2" object.entries "^1.1.5" -eslint-config-prettier@^8.10.0: - version "8.10.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz#3a06a662130807e2502fc3ff8b4143d8a0658e11" - integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg== +eslint-config-prettier@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz#eb25485946dd0c66cd216a46232dc05451518d1f" + integrity sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw== eslint-import-resolver-node@^0.3.7: version "0.3.7" From d5e986df909cf71efe8f5f60a2765ff64babb632 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Aug 2023 21:21:57 +0000 Subject: [PATCH 145/435] Bump @typescript-eslint/parser from 6.2.1 to 6.3.0 Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 6.2.1 to 6.3.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.3.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 50 ++++++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 43 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 4c65f6f813..f9941f6ff2 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "@types/react-qr-reader": "^2.1.4", "@types/react-scroll": "^1.8.6", "@typescript-eslint/eslint-plugin": "^6.2.1", - "@typescript-eslint/parser": "^6.2.1", + "@typescript-eslint/parser": "^6.3.0", "@vitejs/plugin-react-swc": "^3.3.2", "eslint": "^8.46.0", "eslint-config-airbnb": "^19.0.4", diff --git a/yarn.lock b/yarn.lock index a0694b09ab..93bd8824e5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2198,15 +2198,15 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/parser@^6.2.1": - version "6.2.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.2.1.tgz#e18a31eea1cca8841a565f1701960c8123ed07f9" - integrity sha512-Ld+uL1kYFU8e6btqBFpsHkwQ35rw30IWpdQxgOqOh4NfxSDH6uCkah1ks8R/RgQqI5hHPXMaLy9fbFseIe+dIg== +"@typescript-eslint/parser@^6.3.0": + version "6.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.3.0.tgz#359684c443f4f848db3c4f14674f544f169c8f46" + integrity sha512-ibP+y2Gr6p0qsUkhs7InMdXrwldjxZw66wpcQq9/PzAroM45wdwyu81T+7RibNCh8oc0AgrsyCwJByncY0Ongg== dependencies: - "@typescript-eslint/scope-manager" "6.2.1" - "@typescript-eslint/types" "6.2.1" - "@typescript-eslint/typescript-estree" "6.2.1" - "@typescript-eslint/visitor-keys" "6.2.1" + "@typescript-eslint/scope-manager" "6.3.0" + "@typescript-eslint/types" "6.3.0" + "@typescript-eslint/typescript-estree" "6.3.0" + "@typescript-eslint/visitor-keys" "6.3.0" debug "^4.3.4" "@typescript-eslint/scope-manager@6.2.1": @@ -2217,6 +2217,14 @@ "@typescript-eslint/types" "6.2.1" "@typescript-eslint/visitor-keys" "6.2.1" +"@typescript-eslint/scope-manager@6.3.0": + version "6.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.3.0.tgz#6b74e338c4b88d5e1dfc1a28c570dd5cf8c86b09" + integrity sha512-WlNFgBEuGu74ahrXzgefiz/QlVb+qg8KDTpknKwR7hMH+lQygWyx0CQFoUmMn1zDkQjTBBIn75IxtWss77iBIQ== + dependencies: + "@typescript-eslint/types" "6.3.0" + "@typescript-eslint/visitor-keys" "6.3.0" + "@typescript-eslint/type-utils@6.2.1": version "6.2.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.2.1.tgz#8eb8a2cccdf39cd7cf93e02bd2c3782dc90b0525" @@ -2232,6 +2240,11 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.2.1.tgz#7fcdeceb503aab601274bf5e210207050d88c8ab" integrity sha512-528bGcoelrpw+sETlyM91k51Arl2ajbNT9L4JwoXE2dvRe1yd8Q64E4OL7vHYw31mlnVsf+BeeLyAZUEQtqahQ== +"@typescript-eslint/types@6.3.0": + version "6.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.3.0.tgz#84517f1427923e714b8418981e493b6635ab4c9d" + integrity sha512-K6TZOvfVyc7MO9j60MkRNWyFSf86IbOatTKGrpTQnzarDZPYPVy0oe3myTMq7VjhfsUAbNUW8I5s+2lZvtx1gg== + "@typescript-eslint/typescript-estree@6.2.1": version "6.2.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.2.1.tgz#2af6e90c1e91cb725a5fe1682841a3f74549389e" @@ -2245,6 +2258,19 @@ semver "^7.5.4" ts-api-utils "^1.0.1" +"@typescript-eslint/typescript-estree@6.3.0": + version "6.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.3.0.tgz#20e1e10e2f51cdb9e19a2751215cac92c003643c" + integrity sha512-Xh4NVDaC4eYKY4O3QGPuQNp5NxBAlEvNQYOqJquR2MePNxO11E5K3t5x4M4Mx53IZvtpW+mBxIT0s274fLUocg== + dependencies: + "@typescript-eslint/types" "6.3.0" + "@typescript-eslint/visitor-keys" "6.3.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.5.4" + ts-api-utils "^1.0.1" + "@typescript-eslint/utils@6.2.1": version "6.2.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.2.1.tgz#2aa4279ec13053d05615bcbde2398e1e8f08c334" @@ -2266,6 +2292,14 @@ "@typescript-eslint/types" "6.2.1" eslint-visitor-keys "^3.4.1" +"@typescript-eslint/visitor-keys@6.3.0": + version "6.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.3.0.tgz#8d09aa3e389ae0971426124c155ac289afbe450a" + integrity sha512-kEhRRj7HnvaSjux1J9+7dBen15CdWmDnwrpyiHsFX6Qx2iW5LOBUgNefOFeh2PjWPlNwN8TOn6+4eBU3J/gupw== + dependencies: + "@typescript-eslint/types" "6.3.0" + eslint-visitor-keys "^3.4.1" + "@vitejs/plugin-react-swc@^3.3.2": version "3.3.2" resolved "https://registry.yarnpkg.com/@vitejs/plugin-react-swc/-/plugin-react-swc-3.3.2.tgz#34a82c1728066f48a86dfecb2f15df60f89207fb" From fdc3f3598826e0224c08f7fd9e6c6ba886c06154 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Aug 2023 21:20:33 +0000 Subject: [PATCH 146/435] Bump vite from 4.4.8 to 4.4.9 Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.4.8 to 4.4.9. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v4.4.9/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 4c65f6f813..a5cf8593e7 100644 --- a/package.json +++ b/package.json @@ -86,7 +86,7 @@ "prettier-plugin-organize-imports": "^3.2.3", "sass": "^1.64.2", "typescript": "^5.1.6", - "vite": "^4.4.8", + "vite": "^4.4.9", "vite-bundle-visualizer": "^0.10.0", "vite-plugin-checker": "^0.6.1", "vite-plugin-eslint": "^1.8.1", diff --git a/yarn.lock b/yarn.lock index a0694b09ab..dc892f73cd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4886,10 +4886,10 @@ postcss-value-parser@^4.0.2: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.4.23, postcss@^8.4.26: - version "8.4.26" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.26.tgz#1bc62ab19f8e1e5463d98cf74af39702a00a9e94" - integrity sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw== +postcss@^8.4.23, postcss@^8.4.27: + version "8.4.27" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.27.tgz#234d7e4b72e34ba5a92c29636734349e0d9c3057" + integrity sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ== dependencies: nanoid "^3.3.6" picocolors "^1.0.0" @@ -5207,10 +5207,10 @@ rollup@^2.77.2: optionalDependencies: fsevents "~2.3.2" -rollup@^3.25.2: - version "3.26.2" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.26.2.tgz#2e76a37606cb523fc9fef43e6f59c93f86d95e7c" - integrity sha512-6umBIGVz93er97pMgQO08LuH3m6PUb3jlDUUGFsNJB6VgTCUaDFpupf5JfU30529m/UKOgmiX+uY6Sx8cOYpLA== +rollup@^3.27.1: + version "3.27.2" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.27.2.tgz#59adc973504408289be89e5978e938ce852c9520" + integrity sha512-YGwmHf7h2oUHkVBT248x0yt6vZkYQ3/rvE5iQuVBh3WO8GcJ6BNeOkpoX1yMHIiBm18EMLjBPIoUDkhgnyxGOQ== optionalDependencies: fsevents "~2.3.2" @@ -5863,14 +5863,14 @@ vite-tsconfig-paths@^4.2.0: globrex "^0.1.2" tsconfck "^2.1.0" -"vite@^3.0.0 || ^4.0.0", vite@^4.4.8: - version "4.4.8" - resolved "https://registry.yarnpkg.com/vite/-/vite-4.4.8.tgz#31e4a438f8748695c68bd57ffd262ba93540fdf7" - integrity sha512-LONawOUUjxQridNWGQlNizfKH89qPigK36XhMI7COMGztz8KNY0JHim7/xDd71CZwGT4HtSRgI7Hy+RlhG0Gvg== +"vite@^3.0.0 || ^4.0.0", vite@^4.4.9: + version "4.4.9" + resolved "https://registry.yarnpkg.com/vite/-/vite-4.4.9.tgz#1402423f1a2f8d66fd8d15e351127c7236d29d3d" + integrity sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA== dependencies: esbuild "^0.18.10" - postcss "^8.4.26" - rollup "^3.25.2" + postcss "^8.4.27" + rollup "^3.27.1" optionalDependencies: fsevents "~2.3.2" From 2b8df9cbecd2e2078c00dc5f6edc4cbcd1b88040 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Aug 2023 21:20:16 +0000 Subject: [PATCH 147/435] Bump @ledgerhq/hw-transport-webhid from 6.27.17 to 6.27.18 Bumps [@ledgerhq/hw-transport-webhid](https://github.com/LedgerHQ/ledger-live) from 6.27.17 to 6.27.18. - [Release notes](https://github.com/LedgerHQ/ledger-live/releases) - [Commits](https://github.com/LedgerHQ/ledger-live/compare/@ledgerhq/hw-transport-webhid@6.27.17...@ledgerhq/hw-transport-webhid@6.27.18) --- updated-dependencies: - dependency-name: "@ledgerhq/hw-transport-webhid" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 44 ++++++++++++++++++++++---------------------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/package.json b/package.json index a5cf8593e7..92d752b107 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "@fortawesome/free-regular-svg-icons": "^6.4.2", "@fortawesome/free-solid-svg-icons": "^6.4.2", "@fortawesome/react-fontawesome": "^0.2.0", - "@ledgerhq/hw-transport-webhid": "^6.27.17", + "@ledgerhq/hw-transport-webhid": "^6.27.18", "@polkadot/api": "^10.9.1", "@polkadot/keyring": "^12.1.1", "@polkadot/rpc-provider": "^10.9.1", diff --git a/yarn.lock b/yarn.lock index dc892f73cd..d42387b015 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1396,38 +1396,38 @@ resolved "https://registry.yarnpkg.com/@kurkle/color/-/color-0.3.2.tgz#5acd38242e8bde4f9986e7913c8fdf49d3aa199f" integrity sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw== -"@ledgerhq/devices@^8.0.5": - version "8.0.5" - resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-8.0.5.tgz#2c9b7bb3f8497795851b24c7ffd08c1261cd0783" - integrity sha512-Cy4LOfcYhYGWLd2nRA/CY/AneJT+Q3RyNwzoRx28gqAN21vF3+IZtL0jqs1n78rZ2bTEHyBS1GMOX13s5Y+O4g== +"@ledgerhq/devices@^8.0.6": + version "8.0.6" + resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-8.0.6.tgz#c318a3d5c756e20065370539a395f3024f0fac43" + integrity sha512-KWA68krUD9pFp6bJAhTe2nurhku4HnS5LwtHnCXg8PB0DbzWt27PTKgVOCKO7TEdJ3wu4eVcgP5RQrap22pQHQ== dependencies: - "@ledgerhq/errors" "^6.13.0" + "@ledgerhq/errors" "^6.13.1" "@ledgerhq/logs" "^6.10.1" rxjs "6" semver "^7.3.5" -"@ledgerhq/errors@^6.13.0": - version "6.13.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.13.0.tgz#f6d335d6f5c4267a1a8b20668df956a99dfb23ad" - integrity sha512-cMFNX2AN6Gdj4RVIizI/7vWb+JYRu5na0rQSjybf7xGW5MSVdFVRcOg90VvqnDRsNfgFBbJzhpf7o4D7S3yFgg== +"@ledgerhq/errors@^6.13.1": + version "6.13.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.13.1.tgz#fd9570c1806824de734aed21df1a3d643ba8ed0c" + integrity sha512-y5qOFiX7ILACF7GvCAB67S5nCABEP5rm8lxK66qKIBRApcLlTplbjUACDRfKQbAIwf0SJPuR31rtTKB92ykwKQ== -"@ledgerhq/hw-transport-webhid@^6.27.17": - version "6.27.17" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-6.27.17.tgz#f112d24aea88b729398b34a5f3a2a1bdce480d6b" - integrity sha512-TFCl/WSsMYer6mNGTg381idpCGV1+D0xVccuD4CKIpqBYRyAjCOfeRbk6hnjj3LozsTbkaXmcJ29E7q8NoHz1w== +"@ledgerhq/hw-transport-webhid@^6.27.18": + version "6.27.18" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-6.27.18.tgz#7ad98017b883fca78a2389f1d6dc05762997c7bd" + integrity sha512-KhnQ4ETbY9y2nvJ/6JJI2dZzfvEcZacXGdTeL4eG29gJrZkOx45++q+L2TAhGPbLH2wYXKqsk63A061lrgSNSw== dependencies: - "@ledgerhq/devices" "^8.0.5" - "@ledgerhq/errors" "^6.13.0" - "@ledgerhq/hw-transport" "^6.28.6" + "@ledgerhq/devices" "^8.0.6" + "@ledgerhq/errors" "^6.13.1" + "@ledgerhq/hw-transport" "^6.28.7" "@ledgerhq/logs" "^6.10.1" -"@ledgerhq/hw-transport@^6.27.1", "@ledgerhq/hw-transport@^6.28.6": - version "6.28.6" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.28.6.tgz#bbbddbfc95b1bae874c4a5ef6498a7dfe68a9359" - integrity sha512-0VVB4jIG6ZTRtHusI5kO2jPcc1yFQ+iIcNKiTaaBHytsdGjTfhipje+W4vxo+nCdOKdrkOqB80GwykmKuNNXyA== +"@ledgerhq/hw-transport@^6.27.1", "@ledgerhq/hw-transport@^6.28.7": + version "6.28.7" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.28.7.tgz#17120f0ea8bdd34632010ed4e284a1c57f1bd41d" + integrity sha512-P6XWv/Blb3AvzNH/33ouqFvsUwjCsQN5iMTLuVJqxVKwj91QmdYZfYR9U9FB0gBKrIQ7BONUgTX/ko9EnDV6/g== dependencies: - "@ledgerhq/devices" "^8.0.5" - "@ledgerhq/errors" "^6.13.0" + "@ledgerhq/devices" "^8.0.6" + "@ledgerhq/errors" "^6.13.1" events "^3.3.0" "@ledgerhq/logs@^6.10.1": From 7f51d3de955be85cf0d1d3e63cb494a66260b5cd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Aug 2023 21:20:45 +0000 Subject: [PATCH 148/435] Bump @polkadotcloud/react-odometer from 0.1.17 to 0.1.18 Bumps @polkadotcloud/react-odometer from 0.1.17 to 0.1.18. --- updated-dependencies: - dependency-name: "@polkadotcloud/react-odometer" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 92d752b107..b2b7fc95ef 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "@polkadot/util-crypto": "12.3.2", "@polkadotcloud/community": "0.1.2", "@polkadotcloud/core-ui": "^0.3.79", - "@polkadotcloud/react-odometer": "^0.1.17", + "@polkadotcloud/react-odometer": "^0.1.18", "@polkadotcloud/themes": "^0.1.3", "@polkadotcloud/utils": "^0.2.22", "@substrate/connect": "^0.7.31", diff --git a/yarn.lock b/yarn.lock index d42387b015..797eab2b69 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1837,10 +1837,10 @@ resolved "https://registry.npmjs.org/@polkadotcloud/core-ui/-/core-ui-0.3.79.tgz#6d791d168cc93629f92dde34b165a6de40e2250d" integrity sha512-ru4fBMVRDUGkbxZvo4FutPmjHfKcPev/JLLSycn3o8I7gDuFZEuZUCq1OacFB5GLNNthPND0KUU2t4GmrKyWLg== -"@polkadotcloud/react-odometer@^0.1.17": - version "0.1.17" - resolved "https://registry.yarnpkg.com/@polkadotcloud/react-odometer/-/react-odometer-0.1.17.tgz#0c4465581c4155ee45b2a99a7b8cbacc36d485b0" - integrity sha512-60VSsLJva6oSGidtem2oF43i04zNqg2Hxm3OT/UvUamuIIoY0QJKI+hnWl643mGTk5Ooz13hDLxpt5Sf9IXmfw== +"@polkadotcloud/react-odometer@^0.1.18": + version "0.1.18" + resolved "https://registry.yarnpkg.com/@polkadotcloud/react-odometer/-/react-odometer-0.1.18.tgz#1a6c7ca8f960a6df63f903d02330e1e226de6301" + integrity sha512-SRsTIdx6HeuDUqssQ3UzGQUkT/B6Le2p4k6DcbwDiNPpuL9jga07UULaZ+aOn4Tb7RT92gLiOgGn1s/OI6WA1Q== "@polkadotcloud/themes@^0.1.3": version "0.1.3" From fc97f47d9b4796263a510a4b478c504f13a2126e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Aug 2023 21:21:30 +0000 Subject: [PATCH 149/435] Bump i18next from 23.4.1 to 23.4.2 Bumps [i18next](https://github.com/i18next/i18next) from 23.4.1 to 23.4.2. - [Release notes](https://github.com/i18next/i18next/releases) - [Changelog](https://github.com/i18next/i18next/blob/master/CHANGELOG.md) - [Commits](https://github.com/i18next/i18next/compare/v23.4.1...v23.4.2) --- updated-dependencies: - dependency-name: i18next dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index b2b7fc95ef..edf40f97f4 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "chart.js": "^4.3.3", "date-fns": "^2.29.3", "framer-motion": "^10.15.0", - "i18next": "^23.4.1", + "i18next": "^23.4.2", "i18next-browser-languagedetector": "^7.1.0", "lodash.throttle": "^4.1.1", "qrcode-generator": "1.4.4", diff --git a/yarn.lock b/yarn.lock index 797eab2b69..599a9d63e7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3986,10 +3986,10 @@ i18next-browser-languagedetector@^7.1.0: dependencies: "@babel/runtime" "^7.19.4" -i18next@^23.4.1: - version "23.4.1" - resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.4.1.tgz#11fe0db92ac8a4125934960ebccf6a5f8ed6b9fc" - integrity sha512-07ekE7hbUrbxTYj97VnBzyhKcGURTJC9p4iWTwCVC8t63T+YrgqQmb/n1LBQMivZYwR61pqS+PC0G2rtENycyQ== +i18next@^23.4.2: + version "23.4.2" + resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.4.2.tgz#e68108be82287114e027afc5402bb7830d7f45c9" + integrity sha512-hkVPHKFLtn9iewdqHDiU+MGVIBk+bVFn5usw7CIeCn/SBcVKGTItGdjNPm2B8Lnz42CeHUlnSOTgsr5vbITjhA== dependencies: "@babel/runtime" "^7.22.5" From 7abd7614cd5b39f134e6c68db0b9e25b0de5d9d3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Aug 2023 21:29:54 +0000 Subject: [PATCH 150/435] Bump framer-motion from 10.15.0 to 10.15.1 Bumps [framer-motion](https://github.com/framer/motion) from 10.15.0 to 10.15.1. - [Changelog](https://github.com/framer/motion/blob/main/CHANGELOG.md) - [Commits](https://github.com/framer/motion/compare/v10.15.0...v10.15.1) --- updated-dependencies: - dependency-name: framer-motion dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index edf40f97f4..b19536f5f3 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "buffer": "^6.0.3", "chart.js": "^4.3.3", "date-fns": "^2.29.3", - "framer-motion": "^10.15.0", + "framer-motion": "^10.15.1", "i18next": "^23.4.2", "i18next-browser-languagedetector": "^7.1.0", "lodash.throttle": "^4.1.1", diff --git a/yarn.lock b/yarn.lock index 599a9d63e7..f24cc15bdd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3669,10 +3669,10 @@ formdata-polyfill@^4.0.10: dependencies: fetch-blob "^3.1.2" -framer-motion@^10.15.0: - version "10.15.0" - resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-10.15.0.tgz#5f043fdd4edb2c29a0a5e86cce1f67b88dcdc768" - integrity sha512-HDjWrYWgbO5orKuhnXETLFzk7UUvwWur2HFs2elAZ8lVpI49ClHql31DNTVvVBcOrSHfAOS4eBDBedIvOx634w== +framer-motion@^10.15.1: + version "10.15.1" + resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-10.15.1.tgz#c80ba7afc90fa0d5ac2dad9a077cc1bf6e03692a" + integrity sha512-6avJj/Uftblw0fMmo6jDHkKRH4TBdkMX/FiyR3G/hFe3hQHE4BUNJCqlMPKg9EzfI5jyqDOwO5oDnU+bW5y0eg== dependencies: tslib "^2.4.0" optionalDependencies: From 75b633df94026b1ef682d64bb8d624c9c91ba9aa Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 8 Aug 2023 11:50:10 +0700 Subject: [PATCH 151/435] bump --- package.json | 2 +- yarn.lock | 76 +++++++++++++++------------------------------------- 2 files changed, 22 insertions(+), 56 deletions(-) diff --git a/package.json b/package.json index 688fe42d7a..8e6e623b60 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "@types/react-helmet": "^6.1.6", "@types/react-qr-reader": "^2.1.4", "@types/react-scroll": "^1.8.6", - "@typescript-eslint/eslint-plugin": "^6.2.1", + "@typescript-eslint/eslint-plugin": "^6.3.0", "@typescript-eslint/parser": "^6.3.0", "@vitejs/plugin-react-swc": "^3.3.2", "eslint": "^8.46.0", diff --git a/yarn.lock b/yarn.lock index b3edd6e310..f2257e1592 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2180,16 +2180,16 @@ resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.3.tgz#a136f83b0758698df454e328759dbd3d44555311" integrity sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g== -"@typescript-eslint/eslint-plugin@^6.2.1": - version "6.2.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.2.1.tgz#41b79923fee46a745a3a50cba1c33c622aa3c79a" - integrity sha512-iZVM/ALid9kO0+I81pnp1xmYiFyqibAHzrqX4q5YvvVEyJqY+e6rfTXSCsc2jUxGNqJqTfFSSij/NFkZBiBzLw== +"@typescript-eslint/eslint-plugin@^6.3.0": + version "6.3.0" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.3.0.tgz#e751e148aab7ccaf8a7bfd370f7ce9e6bdd1f3f4" + integrity sha512-IZYjYZ0ifGSLZbwMqIip/nOamFiWJ9AH+T/GYNZBWkVcyNQOFGtSMoWV7RvY4poYCMZ/4lHzNl796WOSNxmk8A== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.2.1" - "@typescript-eslint/type-utils" "6.2.1" - "@typescript-eslint/utils" "6.2.1" - "@typescript-eslint/visitor-keys" "6.2.1" + "@typescript-eslint/scope-manager" "6.3.0" + "@typescript-eslint/type-utils" "6.3.0" + "@typescript-eslint/utils" "6.3.0" + "@typescript-eslint/visitor-keys" "6.3.0" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" @@ -2209,14 +2209,6 @@ "@typescript-eslint/visitor-keys" "6.3.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.2.1": - version "6.2.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.2.1.tgz#b6f43a867b84e5671fe531f2b762e0b68f7cf0c4" - integrity sha512-UCqBF9WFqv64xNsIEPfBtenbfodPXsJ3nPAr55mGPkQIkiQvgoWNo+astj9ZUfJfVKiYgAZDMnM6dIpsxUMp3Q== - dependencies: - "@typescript-eslint/types" "6.2.1" - "@typescript-eslint/visitor-keys" "6.2.1" - "@typescript-eslint/scope-manager@6.3.0": version "6.3.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.3.0.tgz#6b74e338c4b88d5e1dfc1a28c570dd5cf8c86b09" @@ -2225,39 +2217,21 @@ "@typescript-eslint/types" "6.3.0" "@typescript-eslint/visitor-keys" "6.3.0" -"@typescript-eslint/type-utils@6.2.1": - version "6.2.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.2.1.tgz#8eb8a2cccdf39cd7cf93e02bd2c3782dc90b0525" - integrity sha512-fTfCgomBMIgu2Dh2Or3gMYgoNAnQm3RLtRp+jP7A8fY+LJ2+9PNpi5p6QB5C4RSP+U3cjI0vDlI3mspAkpPVbQ== +"@typescript-eslint/type-utils@6.3.0": + version "6.3.0" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.3.0.tgz#3bf89ccd36621ddec1b7f8246afe467c67adc247" + integrity sha512-7Oj+1ox1T2Yc8PKpBvOKWhoI/4rWFd1j7FA/rPE0lbBPXTKjdbtC+7Ev0SeBjEKkIhKWVeZSP+mR7y1Db1CdfQ== dependencies: - "@typescript-eslint/typescript-estree" "6.2.1" - "@typescript-eslint/utils" "6.2.1" + "@typescript-eslint/typescript-estree" "6.3.0" + "@typescript-eslint/utils" "6.3.0" debug "^4.3.4" ts-api-utils "^1.0.1" -"@typescript-eslint/types@6.2.1": - version "6.2.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.2.1.tgz#7fcdeceb503aab601274bf5e210207050d88c8ab" - integrity sha512-528bGcoelrpw+sETlyM91k51Arl2ajbNT9L4JwoXE2dvRe1yd8Q64E4OL7vHYw31mlnVsf+BeeLyAZUEQtqahQ== - "@typescript-eslint/types@6.3.0": version "6.3.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.3.0.tgz#84517f1427923e714b8418981e493b6635ab4c9d" integrity sha512-K6TZOvfVyc7MO9j60MkRNWyFSf86IbOatTKGrpTQnzarDZPYPVy0oe3myTMq7VjhfsUAbNUW8I5s+2lZvtx1gg== -"@typescript-eslint/typescript-estree@6.2.1": - version "6.2.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.2.1.tgz#2af6e90c1e91cb725a5fe1682841a3f74549389e" - integrity sha512-G+UJeQx9AKBHRQBpmvr8T/3K5bJa485eu+4tQBxFq0KoT22+jJyzo1B50JDT9QdC1DEmWQfdKsa8ybiNWYsi0Q== - dependencies: - "@typescript-eslint/types" "6.2.1" - "@typescript-eslint/visitor-keys" "6.2.1" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" - "@typescript-eslint/typescript-estree@6.3.0": version "6.3.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.3.0.tgz#20e1e10e2f51cdb9e19a2751215cac92c003643c" @@ -2271,27 +2245,19 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.2.1": - version "6.2.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.2.1.tgz#2aa4279ec13053d05615bcbde2398e1e8f08c334" - integrity sha512-eBIXQeupYmxVB6S7x+B9SdBeB6qIdXKjgQBge2J+Ouv8h9Cxm5dHf/gfAZA6dkMaag+03HdbVInuXMmqFB/lKQ== +"@typescript-eslint/utils@6.3.0": + version "6.3.0" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.3.0.tgz#0898c5e374372c2092ca1b979ea7ee9cc020ce84" + integrity sha512-hLLg3BZE07XHnpzglNBG8P/IXq/ZVXraEbgY7FM0Cnc1ehM8RMdn9mat3LubJ3KBeYXXPxV1nugWbQPjGeJk6Q== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.2.1" - "@typescript-eslint/types" "6.2.1" - "@typescript-eslint/typescript-estree" "6.2.1" + "@typescript-eslint/scope-manager" "6.3.0" + "@typescript-eslint/types" "6.3.0" + "@typescript-eslint/typescript-estree" "6.3.0" semver "^7.5.4" -"@typescript-eslint/visitor-keys@6.2.1": - version "6.2.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.2.1.tgz#442e7c09fe94b715a54ebe30e967987c3c41fbf4" - integrity sha512-iTN6w3k2JEZ7cyVdZJTVJx2Lv7t6zFA8DCrJEHD2mwfc16AEvvBWVhbFh34XyG2NORCd0viIgQY1+u7kPI0WpA== - dependencies: - "@typescript-eslint/types" "6.2.1" - eslint-visitor-keys "^3.4.1" - "@typescript-eslint/visitor-keys@6.3.0": version "6.3.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.3.0.tgz#8d09aa3e389ae0971426124c155ac289afbe450a" From aa8055f8283daeb04dc3ebd4d35e5cc1fa28cf63 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 8 Aug 2023 11:51:44 +0700 Subject: [PATCH 152/435] lint --- .licenserc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.licenserc.json b/.licenserc.json index 6fbe419ecc..c502a50c86 100644 --- a/.licenserc.json +++ b/.licenserc.json @@ -4,4 +4,4 @@ "// SPDX-License-Identifier: GPL-3.0-only" ], "ignore": ["testdata", "npm", "public/", "Dockerfile"] -} \ No newline at end of file +} From 1edddb71c16a069ea243b2c42dd63f2a133ebc53 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 8 Aug 2023 12:04:28 +0700 Subject: [PATCH 153/435] add VITE_BASE_URI --- .env | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/.env b/.env index 3c976c57d2..645c18f31f 100644 --- a/.env +++ b/.env @@ -1,20 +1,23 @@ -# disable all mentioning of fiat values and token prices +# The base url of the deployment. +VITE_BASE_URI=/ + +# Disable all mentioning of fiat values and token prices. # VITE_DISABLE_FIAT=1 -# display an organisation label in the network bar +# Display an organisation label in the network bar. # VITE_ORGANISATION="© Parity Technologies" -# provide a privacy policy url in the network bar +# Provide a privacy policy url in the network bar. # VITE_PRIVACY_URL=https://www.parity.io/privacy/ -# toggle i18n to be in debug mode. Not debug by default +# Toggle i18n to be in debug mode. Not debug by default. # VITE_DEBUG_I18N=1 -# provide a disclaimer url in the network bar +# Provide a disclaimer url in the network bar. # VITE_DISCLAIMER_URL=https://parity.io/disclaimer/ -# provide a legal disclosure url in the network bar +# Provide a legal disclosure url in the network bar. # VIET_LEGAL_DISCLOSURES_URL=https://polkadot.network/legal-disclosures/ -# disable all mentioning of fiat values and token prices +# Disable all mentioning of fiat values and token prices. #VITE_DISABLE_FIAT=1 \ No newline at end of file From 110e1605f6f7ebebadaf262f8c0c8d4dc8ba0828 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 8 Aug 2023 12:04:45 +0700 Subject: [PATCH 154/435] use VITE_BASE_URI --- package.json | 2 +- src/config/pages.ts | 14 +++++++------- src/consts.ts | 6 +++++- src/library/Hooks/useDotLottieButton/index.tsx | 6 +++--- src/library/SideMenu/Main.tsx | 8 ++++---- 5 files changed, 20 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index 8e6e623b60..895b88d768 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "private": false, "scripts": { "dev": "vite", - "build": "tsc && vite build", + "build": "VITE_BASE_URL=/polkadot-staking-dashboard tsc && vite build --base '/polkadot-staking-dashboard/", "preview": "vite preview", "deploy": "gh-pages -d build", "lint": "eslint . --fix && npx prettier --write .", diff --git a/src/config/pages.ts b/src/config/pages.ts index 28dd08d534..2352a08b27 100644 --- a/src/config/pages.ts +++ b/src/config/pages.ts @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { BaseURL } from 'consts'; +import { BaseURI } from 'consts'; import { Community } from 'pages/Community'; import { Nominate } from 'pages/Nominate'; import { Overview } from 'pages/Overview'; @@ -29,7 +29,7 @@ export const PagesConfig: PagesConfigItems = [ { category: 1, key: 'overview', - uri: `${BaseURL}/`, + uri: `${BaseURI}/`, hash: '/overview', Entry: Overview, lottie: 'globe', @@ -37,7 +37,7 @@ export const PagesConfig: PagesConfigItems = [ { category: 2, key: 'pools', - uri: `${BaseURL}/pools`, + uri: `${BaseURI}/pools`, hash: '/pools', Entry: Pools, lottie: 'groups', @@ -45,7 +45,7 @@ export const PagesConfig: PagesConfigItems = [ { category: 2, key: 'nominate', - uri: `${BaseURL}/nominate`, + uri: `${BaseURI}/nominate`, hash: '/nominate', Entry: Nominate, lottie: 'trending', @@ -53,7 +53,7 @@ export const PagesConfig: PagesConfigItems = [ { category: 2, key: 'payouts', - uri: `${BaseURL}/payouts`, + uri: `${BaseURI}/payouts`, hash: '/payouts', Entry: Payouts, lottie: 'analytics', @@ -61,7 +61,7 @@ export const PagesConfig: PagesConfigItems = [ { category: 3, key: 'validators', - uri: `${BaseURL}/validators`, + uri: `${BaseURI}/validators`, hash: '/validators', Entry: Validators, lottie: 'view', @@ -69,7 +69,7 @@ export const PagesConfig: PagesConfigItems = [ { category: 3, key: 'community', - uri: `${BaseURL}/community`, + uri: `${BaseURI}/community`, hash: '/community', Entry: Community, lottie: 'label', diff --git a/src/consts.ts b/src/consts.ts index 2d023e7cea..1b85cbf118 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -4,11 +4,15 @@ import { stringToU8a } from '@polkadot/util'; import BigNumber from 'bignumber.js'; +/* + * Environment variables and their fallbacks. + */ +export const BaseURI = import.meta.env.VITE_BASE_URI || '/'; + /* * Global Constants */ export const AppVersion = '1.0.8'; -export const BaseURL = ''; export const DappName = 'Polkadot Staking Dashboard'; export const PolkadotUrl = 'https://polkadot.network/features/staking/'; export const DefaultNetwork = 'polkadot'; diff --git a/src/library/Hooks/useDotLottieButton/index.tsx b/src/library/Hooks/useDotLottieButton/index.tsx index 8b396163aa..1fa2beada6 100644 --- a/src/library/Hooks/useDotLottieButton/index.tsx +++ b/src/library/Hooks/useDotLottieButton/index.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only import { useEffect, useRef, useState } from 'react'; -import { BaseURL } from 'consts'; +import { BaseURI } from 'consts'; import { useTheme } from 'contexts/Themes'; import type { Theme } from 'contexts/Themes/types'; import type { AnyJson } from 'types'; @@ -51,7 +51,7 @@ export const useDotLottieButton = (filename: string, options: AnyJson = {}) => { ref={refLight} loop autoPlay={autoPlay} - src={`${BaseURL}/lottie/${filename}-light.lottie`} + src={`${BaseURI}/lottie/${filename}-light.lottie`} style={{ height: 'inherit', width: 'inherit' }} /> ); @@ -61,7 +61,7 @@ export const useDotLottieButton = (filename: string, options: AnyJson = {}) => { ref={refDark} loop autoPlay={autoPlay} - src={`${BaseURL}/lottie/${filename}-dark.lottie`} + src={`${BaseURI}/lottie/${filename}-dark.lottie`} style={{ height: 'inherit', width: 'inherit' }} /> ); diff --git a/src/library/SideMenu/Main.tsx b/src/library/SideMenu/Main.tsx index 0cb2f0a09e..7dac6c9951 100644 --- a/src/library/SideMenu/Main.tsx +++ b/src/library/SideMenu/Main.tsx @@ -5,7 +5,7 @@ import React, { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useLocation } from 'react-router-dom'; import { PageCategories, PagesConfig } from 'config/pages'; -import { BaseURL, PolkadotUrl } from 'consts'; +import { BaseURI, PolkadotUrl } from 'consts'; import { useApi } from 'contexts/Api'; import { useBonded } from 'contexts/Bonded'; import { useConnect } from 'contexts/Connect'; @@ -53,7 +53,7 @@ export const Main = () => { // set undefined action as default pages[i].action = undefined; - if (uri === `${BaseURL}/`) { + if (uri === `${BaseURI}/`) { const warning = !isSyncing && controllerDifferentToStash; if (warning) { pages[i].action = { @@ -63,7 +63,7 @@ export const Main = () => { } } - if (uri === `${BaseURL}/nominate`) { + if (uri === `${BaseURI}/nominate`) { // configure Stake action const staking = !inNominatorSetup(); const warning = !isSyncing && controllerDifferentToStash; @@ -91,7 +91,7 @@ export const Main = () => { } } - if (uri === `${BaseURL}/pools`) { + if (uri === `${BaseURI}/pools`) { // configure Pools action const inPool = membership; const setupPercent = getPoolSetupPercent(activeAccount); From 3be04896a292dd710c1cbadb06c4520926f3bd37 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 8 Aug 2023 12:13:35 +0700 Subject: [PATCH 155/435] amend scripts --- package.json | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 895b88d768..2c4bb69d44 100644 --- a/package.json +++ b/package.json @@ -6,11 +6,10 @@ "private": false, "scripts": { "dev": "vite", - "build": "VITE_BASE_URL=/polkadot-staking-dashboard tsc && vite build --base '/polkadot-staking-dashboard/", + "build": "tsc && vite build", "preview": "vite preview", - "deploy": "gh-pages -d build", - "lint": "eslint . --fix && npx prettier --write .", - "lint:scripts": "npx prettier --write ./.scripts", + "deploy": "VITE_BASE_URL=/polkadot-staking-dashboard tsc && vite build --base '/polkadot-staking-dashboard/' && gh-pages -d build", + "lint": "eslint . --fix && npx prettier --write . && npx prettier --write ./.scripts && node ./.scripts/localeOrderKeys.cjs", "locale:order": "node ./.scripts/localeOrderKeys.cjs", "locale:validate": "node ./.scripts/localeValidate.cjs", "test": "vitest", From f77c5ed3914f6b91d43eca79af7aeae9c802f505 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 8 Aug 2023 12:14:22 +0700 Subject: [PATCH 156/435] base to cli --- package.json | 2 +- vite.config.ts | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index 2c4bb69d44..82295f80e2 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "private": false, "scripts": { "dev": "vite", - "build": "tsc && vite build", + "build": "tsc && vite build --base '/'", "preview": "vite preview", "deploy": "VITE_BASE_URL=/polkadot-staking-dashboard tsc && vite build --base '/polkadot-staking-dashboard/' && gh-pages -d build", "lint": "eslint . --fix && npx prettier --write . && npx prettier --write ./.scripts && node ./.scripts/localeOrderKeys.cjs", diff --git a/vite.config.ts b/vite.config.ts index d21a66f330..757145a379 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -10,7 +10,6 @@ import tsconfigPaths from 'vite-tsconfig-paths'; // https://vitejs.dev/config/ export default defineConfig({ - base: '/', plugins: [ eslint(), react(), From 23aa77711c6845d327cd0e5316b53b02a31d3fbb Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 8 Aug 2023 12:18:10 +0700 Subject: [PATCH 157/435] fix --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 82295f80e2..490624c3fa 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "dev": "vite", "build": "tsc && vite build --base '/'", "preview": "vite preview", - "deploy": "VITE_BASE_URL=/polkadot-staking-dashboard tsc && vite build --base '/polkadot-staking-dashboard/' && gh-pages -d build", + "deploy": "VITE_BASE_URI=/polkadot-staking-dashboard tsc && vite build --base '/polkadot-staking-dashboard/' && gh-pages -d build", "lint": "eslint . --fix && npx prettier --write . && npx prettier --write ./.scripts && node ./.scripts/localeOrderKeys.cjs", "locale:order": "node ./.scripts/localeOrderKeys.cjs", "locale:validate": "node ./.scripts/localeValidate.cjs", From 3698f0b302932e61d8696eaa5ef98c8f75668600 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 8 Aug 2023 12:26:19 +0700 Subject: [PATCH 158/435] simplify --- .env | 3 --- package.json | 2 +- src/config/pages.ts | 14 +++++++------- src/consts.ts | 5 ----- src/library/Hooks/useDotLottieButton/index.tsx | 5 ++--- src/library/SideMenu/Main.tsx | 8 ++++---- vite.config.ts | 6 ++++++ 7 files changed, 20 insertions(+), 23 deletions(-) diff --git a/.env b/.env index 645c18f31f..89899ad135 100644 --- a/.env +++ b/.env @@ -1,6 +1,3 @@ -# The base url of the deployment. -VITE_BASE_URI=/ - # Disable all mentioning of fiat values and token prices. # VITE_DISABLE_FIAT=1 diff --git a/package.json b/package.json index 490624c3fa..c1f1787d83 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "dev": "vite", "build": "tsc && vite build --base '/'", "preview": "vite preview", - "deploy": "VITE_BASE_URI=/polkadot-staking-dashboard tsc && vite build --base '/polkadot-staking-dashboard/' && gh-pages -d build", + "deploy": "tsc && vite build --base '/polkadot-staking-dashboard/' && gh-pages -d build", "lint": "eslint . --fix && npx prettier --write . && npx prettier --write ./.scripts && node ./.scripts/localeOrderKeys.cjs", "locale:order": "node ./.scripts/localeOrderKeys.cjs", "locale:validate": "node ./.scripts/localeValidate.cjs", diff --git a/src/config/pages.ts b/src/config/pages.ts index 2352a08b27..25e1c12d97 100644 --- a/src/config/pages.ts +++ b/src/config/pages.ts @@ -1,7 +1,6 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { BaseURI } from 'consts'; import { Community } from 'pages/Community'; import { Nominate } from 'pages/Nominate'; import { Overview } from 'pages/Overview'; @@ -10,6 +9,7 @@ import { Pools } from 'pages/Pools'; import { Validators } from 'pages/Validators'; import type { PageCategoryItems, PagesConfigItems } from 'types'; +const BASE_URL = import.meta.env.BASE_URL; export const PageCategories: PageCategoryItems = [ { id: 1, @@ -29,7 +29,7 @@ export const PagesConfig: PagesConfigItems = [ { category: 1, key: 'overview', - uri: `${BaseURI}/`, + uri: `${BASE_URL}`, hash: '/overview', Entry: Overview, lottie: 'globe', @@ -37,7 +37,7 @@ export const PagesConfig: PagesConfigItems = [ { category: 2, key: 'pools', - uri: `${BaseURI}/pools`, + uri: `${BASE_URL}pools`, hash: '/pools', Entry: Pools, lottie: 'groups', @@ -45,7 +45,7 @@ export const PagesConfig: PagesConfigItems = [ { category: 2, key: 'nominate', - uri: `${BaseURI}/nominate`, + uri: `${BASE_URL}nominate`, hash: '/nominate', Entry: Nominate, lottie: 'trending', @@ -53,7 +53,7 @@ export const PagesConfig: PagesConfigItems = [ { category: 2, key: 'payouts', - uri: `${BaseURI}/payouts`, + uri: `${BASE_URL}payouts`, hash: '/payouts', Entry: Payouts, lottie: 'analytics', @@ -61,7 +61,7 @@ export const PagesConfig: PagesConfigItems = [ { category: 3, key: 'validators', - uri: `${BaseURI}/validators`, + uri: `${BASE_URL}validators`, hash: '/validators', Entry: Validators, lottie: 'view', @@ -69,7 +69,7 @@ export const PagesConfig: PagesConfigItems = [ { category: 3, key: 'community', - uri: `${BaseURI}/community`, + uri: `${BASE_URL}community`, hash: '/community', Entry: Community, lottie: 'label', diff --git a/src/consts.ts b/src/consts.ts index 1b85cbf118..a04646cf65 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -4,11 +4,6 @@ import { stringToU8a } from '@polkadot/util'; import BigNumber from 'bignumber.js'; -/* - * Environment variables and their fallbacks. - */ -export const BaseURI = import.meta.env.VITE_BASE_URI || '/'; - /* * Global Constants */ diff --git a/src/library/Hooks/useDotLottieButton/index.tsx b/src/library/Hooks/useDotLottieButton/index.tsx index 1fa2beada6..3caf2c6d4d 100644 --- a/src/library/Hooks/useDotLottieButton/index.tsx +++ b/src/library/Hooks/useDotLottieButton/index.tsx @@ -2,7 +2,6 @@ // SPDX-License-Identifier: GPL-3.0-only import { useEffect, useRef, useState } from 'react'; -import { BaseURI } from 'consts'; import { useTheme } from 'contexts/Themes'; import type { Theme } from 'contexts/Themes/types'; import type { AnyJson } from 'types'; @@ -51,7 +50,7 @@ export const useDotLottieButton = (filename: string, options: AnyJson = {}) => { ref={refLight} loop autoPlay={autoPlay} - src={`${BaseURI}/lottie/${filename}-light.lottie`} + src={`${import.meta.env.BASE_URL}lottie/${filename}-light.lottie`} style={{ height: 'inherit', width: 'inherit' }} /> ); @@ -61,7 +60,7 @@ export const useDotLottieButton = (filename: string, options: AnyJson = {}) => { ref={refDark} loop autoPlay={autoPlay} - src={`${BaseURI}/lottie/${filename}-dark.lottie`} + src={`${import.meta.env.BASE_URL}lottie/${filename}-dark.lottie`} style={{ height: 'inherit', width: 'inherit' }} /> ); diff --git a/src/library/SideMenu/Main.tsx b/src/library/SideMenu/Main.tsx index 7dac6c9951..eb920d1428 100644 --- a/src/library/SideMenu/Main.tsx +++ b/src/library/SideMenu/Main.tsx @@ -5,7 +5,7 @@ import React, { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useLocation } from 'react-router-dom'; import { PageCategories, PagesConfig } from 'config/pages'; -import { BaseURI, PolkadotUrl } from 'consts'; +import { PolkadotUrl } from 'consts'; import { useApi } from 'contexts/Api'; import { useBonded } from 'contexts/Bonded'; import { useConnect } from 'contexts/Connect'; @@ -53,7 +53,7 @@ export const Main = () => { // set undefined action as default pages[i].action = undefined; - if (uri === `${BaseURI}/`) { + if (uri === `${import.meta.env.BASE_URL}`) { const warning = !isSyncing && controllerDifferentToStash; if (warning) { pages[i].action = { @@ -63,7 +63,7 @@ export const Main = () => { } } - if (uri === `${BaseURI}/nominate`) { + if (uri === `${import.meta.env.BASE_URL}nominate`) { // configure Stake action const staking = !inNominatorSetup(); const warning = !isSyncing && controllerDifferentToStash; @@ -91,7 +91,7 @@ export const Main = () => { } } - if (uri === `${BaseURI}/pools`) { + if (uri === `${import.meta.env.BASE_URL}pools`) { // configure Pools action const inPool = membership; const setupPercent = getPoolSetupPercent(activeAccount); diff --git a/vite.config.ts b/vite.config.ts index 757145a379..140517cb45 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -9,6 +9,12 @@ import svgr from 'vite-plugin-svgr'; import tsconfigPaths from 'vite-tsconfig-paths'; // https://vitejs.dev/config/ +// +// NOTES: +// - `base` is configured in `package.json` with the vite --base flag. In local dev it is `/`, +// whereas gh-pages always deploys to `/polkadot-staking-dashboard/`. Producution builds can also +// be configureed with the `--base` flag. +// - `BASE_URL`env variable is used in the codebase to refer to the supplied base. export default defineConfig({ plugins: [ eslint(), From 9431e954d85aabe1b52e6711f2ce30a00960d0db Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 8 Aug 2023 12:36:57 +0700 Subject: [PATCH 159/435] add gh-publish ci --- .github/workflows/gh-publish.yml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 .github/workflows/gh-publish.yml diff --git a/.github/workflows/gh-publish.yml b/.github/workflows/gh-publish.yml new file mode 100644 index 0000000000..4e7b8d49f5 --- /dev/null +++ b/.github/workflows/gh-publish.yml @@ -0,0 +1,28 @@ +name: GitHub Pages Publish + +on: + push: + branches: [auto-gh-deploy] # TODO: change to main before merging. + +jobs: + npm-publish: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3.5.0 + - run: yarn install + - uses: actions/setup-node@v3 + with: + node-version: 18 + registry-url: https://registry.npmjs.org + - name: New Version + id: app_version + uses: PostHog/check-package-version@v2 + with: + path: "." + + - name: Publish + if: steps.app_version.outputs.is-new-version == 'true' + working-directory: "." + run: yarn deploy + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} \ No newline at end of file From ef5eac580fac290c83f4d272599045c27b85dd54 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 8 Aug 2023 12:38:02 +0700 Subject: [PATCH 160/435] bump --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c1f1787d83..e3261cc912 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "polkadot-staking-dashboard", - "version": "0.1.0", + "version": "0.1.1", "type": "module", "license": "GPL-3.0-only", "private": false, From a12c4c75d66873f81e76a4e67d51e096385d2f51 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 8 Aug 2023 12:46:29 +0700 Subject: [PATCH 161/435] update CI --- .env | 5 +---- .github/workflows/gh-publish.yml | 11 +++++++---- package.json | 3 ++- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/.env b/.env index 89899ad135..540918ee79 100644 --- a/.env +++ b/.env @@ -14,7 +14,4 @@ # VITE_DISCLAIMER_URL=https://parity.io/disclaimer/ # Provide a legal disclosure url in the network bar. -# VIET_LEGAL_DISCLOSURES_URL=https://polkadot.network/legal-disclosures/ - -# Disable all mentioning of fiat values and token prices. -#VITE_DISABLE_FIAT=1 \ No newline at end of file +# VIET_LEGAL_DISCLOSURES_URL=https://polkadot.network/legal-disclosures/ \ No newline at end of file diff --git a/.github/workflows/gh-publish.yml b/.github/workflows/gh-publish.yml index 4e7b8d49f5..2dece82fab 100644 --- a/.github/workflows/gh-publish.yml +++ b/.github/workflows/gh-publish.yml @@ -20,9 +20,12 @@ jobs: with: path: "." - - name: Publish + - name: Build if: steps.app_version.outputs.is-new-version == 'true' working-directory: "." - run: yarn deploy - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} \ No newline at end of file + run: yarn build:pages + + - name: Deploy + uses: JamesIves/github-pages-deploy-action@v4 + with: + folder: build \ No newline at end of file diff --git a/package.json b/package.json index e3261cc912..1a87726911 100644 --- a/package.json +++ b/package.json @@ -7,8 +7,9 @@ "scripts": { "dev": "vite", "build": "tsc && vite build --base '/'", + "build:pages": "tsc && vite build --base '/polkadot-staking-dashboard/'", + "deploy:pages": "yarn build:pages && gh-pages -d build", "preview": "vite preview", - "deploy": "tsc && vite build --base '/polkadot-staking-dashboard/' && gh-pages -d build", "lint": "eslint . --fix && npx prettier --write . && npx prettier --write ./.scripts && node ./.scripts/localeOrderKeys.cjs", "locale:order": "node ./.scripts/localeOrderKeys.cjs", "locale:validate": "node ./.scripts/localeValidate.cjs", From 13aad67da12ef4c08eb6c3e268b728a3903d60b4 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 8 Aug 2023 12:53:00 +0700 Subject: [PATCH 162/435] test ci --- .github/workflows/gh-publish.yml | 10 ++++++---- src/pages/Overview/index.tsx | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/gh-publish.yml b/.github/workflows/gh-publish.yml index 2dece82fab..06d6ea4c1e 100644 --- a/.github/workflows/gh-publish.yml +++ b/.github/workflows/gh-publish.yml @@ -21,11 +21,13 @@ jobs: path: "." - name: Build - if: steps.app_version.outputs.is-new-version == 'true' working-directory: "." + if: steps.app_version.outputs.is-new-version == 'true' run: yarn build:pages - - - name: Deploy + + - name: Deploy 🚀 + if: steps.app_version.outputs.is-new-version == 'true' uses: JamesIves/github-pages-deploy-action@v4 with: - folder: build \ No newline at end of file + folder: build + ssh-key: ${{ secrets.DEPLOY_KEY }} \ No newline at end of file diff --git a/src/pages/Overview/index.tsx b/src/pages/Overview/index.tsx index 1c430d6c14..936c225a24 100644 --- a/src/pages/Overview/index.tsx +++ b/src/pages/Overview/index.tsx @@ -62,7 +62,7 @@ export const Overview = () => { return ( <> - <PageTitle title={t('overview.overview')} /> + <PageTitle title={`✅ ${t('overview.overview')}`} /> <PageRow> <PageHeading> <ActiveAccounts /> From 0a4cfe22a2f737378edaa2827154591c51d07102 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 8 Aug 2023 12:56:47 +0700 Subject: [PATCH 163/435] should not deploy --- .github/workflows/gh-publish.yml | 2 +- src/pages/Overview/index.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gh-publish.yml b/.github/workflows/gh-publish.yml index 06d6ea4c1e..56ca029404 100644 --- a/.github/workflows/gh-publish.yml +++ b/.github/workflows/gh-publish.yml @@ -25,7 +25,7 @@ jobs: if: steps.app_version.outputs.is-new-version == 'true' run: yarn build:pages - - name: Deploy 🚀 + - name: Deploy if: steps.app_version.outputs.is-new-version == 'true' uses: JamesIves/github-pages-deploy-action@v4 with: diff --git a/src/pages/Overview/index.tsx b/src/pages/Overview/index.tsx index 936c225a24..1c430d6c14 100644 --- a/src/pages/Overview/index.tsx +++ b/src/pages/Overview/index.tsx @@ -62,7 +62,7 @@ export const Overview = () => { return ( <> - <PageTitle title={`✅ ${t('overview.overview')}`} /> + <PageTitle title={t('overview.overview')} /> <PageRow> <PageHeading> <ActiveAccounts /> From b2bd83b0fcb59429e0ca682b609c78e7df32d929 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 8 Aug 2023 13:22:07 +0700 Subject: [PATCH 164/435] update CI - should not deploy --- .github/workflows/gh-publish.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/gh-publish.yml b/.github/workflows/gh-publish.yml index 56ca029404..bdeec46e56 100644 --- a/.github/workflows/gh-publish.yml +++ b/.github/workflows/gh-publish.yml @@ -19,14 +19,16 @@ jobs: uses: PostHog/check-package-version@v2 with: path: "." - + + gh-deploy: + runs-on: ubuntu-latest + needs: npm-publish + if: needs.npm-publish.steps.app_version.outputs.is-new-version == 'true' + steps: - name: Build working-directory: "." - if: steps.app_version.outputs.is-new-version == 'true' run: yarn build:pages - - name: Deploy - if: steps.app_version.outputs.is-new-version == 'true' uses: JamesIves/github-pages-deploy-action@v4 with: folder: build From c03a64a3e7067fbbdeb1b2d5e75140c483a23645 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 8 Aug 2023 13:23:34 +0700 Subject: [PATCH 165/435] should attempt deploy --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1a87726911..1989a33e0c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "polkadot-staking-dashboard", - "version": "0.1.1", + "version": "0.1.2", "type": "module", "license": "GPL-3.0-only", "private": false, From 95fcb6cdba2f55f6b26d311a9d7e7df5c7fe910b Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 8 Aug 2023 13:30:33 +0700 Subject: [PATCH 166/435] should deploy --- .github/workflows/gh-publish.yml | 4 +++- package.json | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gh-publish.yml b/.github/workflows/gh-publish.yml index bdeec46e56..870f8d0bed 100644 --- a/.github/workflows/gh-publish.yml +++ b/.github/workflows/gh-publish.yml @@ -7,6 +7,8 @@ on: jobs: npm-publish: runs-on: ubuntu-latest + outputs: + new-version: ${{ steps.app_version.outputs.is-new-version }} steps: - uses: actions/checkout@v3.5.0 - run: yarn install @@ -23,7 +25,7 @@ jobs: gh-deploy: runs-on: ubuntu-latest needs: npm-publish - if: needs.npm-publish.steps.app_version.outputs.is-new-version == 'true' + if: needs.npm-publish.outputs.new-version == 'true' steps: - name: Build working-directory: "." diff --git a/package.json b/package.json index 1989a33e0c..281017495a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "polkadot-staking-dashboard", - "version": "0.1.2", + "version": "0.1.3", "type": "module", "license": "GPL-3.0-only", "private": false, From 095bba573f7991dd2b16a0cb75992729fb73b427 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 8 Aug 2023 13:30:58 +0700 Subject: [PATCH 167/435] rm key --- .github/workflows/gh-publish.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/gh-publish.yml b/.github/workflows/gh-publish.yml index 870f8d0bed..068e7b6fd2 100644 --- a/.github/workflows/gh-publish.yml +++ b/.github/workflows/gh-publish.yml @@ -33,5 +33,4 @@ jobs: - name: Deploy uses: JamesIves/github-pages-deploy-action@v4 with: - folder: build - ssh-key: ${{ secrets.DEPLOY_KEY }} \ No newline at end of file + folder: build \ No newline at end of file From 0f93b39044f96c830c6a13c7d2a18899fb21ae09 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 8 Aug 2023 13:35:25 +0700 Subject: [PATCH 168/435] rm working-directory --- .github/workflows/gh-publish.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/gh-publish.yml b/.github/workflows/gh-publish.yml index 068e7b6fd2..c727ada82b 100644 --- a/.github/workflows/gh-publish.yml +++ b/.github/workflows/gh-publish.yml @@ -28,7 +28,6 @@ jobs: if: needs.npm-publish.outputs.new-version == 'true' steps: - name: Build - working-directory: "." run: yarn build:pages - name: Deploy uses: JamesIves/github-pages-deploy-action@v4 From 486e49e35db9308b86e1add0b765b95f851bc42f Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 8 Aug 2023 13:37:03 +0700 Subject: [PATCH 169/435] attempt fix --- .github/workflows/gh-publish.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/gh-publish.yml b/.github/workflows/gh-publish.yml index c727ada82b..bc2fd2b119 100644 --- a/.github/workflows/gh-publish.yml +++ b/.github/workflows/gh-publish.yml @@ -28,6 +28,7 @@ jobs: if: needs.npm-publish.outputs.new-version == 'true' steps: - name: Build + working-directory: "../" run: yarn build:pages - name: Deploy uses: JamesIves/github-pages-deploy-action@v4 From 84bef8998f78e9449c1cb8051638fe65df8820a1 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 8 Aug 2023 13:39:57 +0700 Subject: [PATCH 170/435] use checkout --- .github/workflows/gh-publish.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/gh-publish.yml b/.github/workflows/gh-publish.yml index bc2fd2b119..aeb12d4300 100644 --- a/.github/workflows/gh-publish.yml +++ b/.github/workflows/gh-publish.yml @@ -27,8 +27,9 @@ jobs: needs: npm-publish if: needs.npm-publish.outputs.new-version == 'true' steps: + - uses: actions/checkout@v3.5.0 - name: Build - working-directory: "../" + working-directory: "." run: yarn build:pages - name: Deploy uses: JamesIves/github-pages-deploy-action@v4 From 297c36c172da72849afca3a29072b7dbaa1367bc Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 8 Aug 2023 13:42:07 +0700 Subject: [PATCH 171/435] attempted fix --- .github/workflows/gh-publish.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/gh-publish.yml b/.github/workflows/gh-publish.yml index aeb12d4300..a71cae2783 100644 --- a/.github/workflows/gh-publish.yml +++ b/.github/workflows/gh-publish.yml @@ -10,12 +10,6 @@ jobs: outputs: new-version: ${{ steps.app_version.outputs.is-new-version }} steps: - - uses: actions/checkout@v3.5.0 - - run: yarn install - - uses: actions/setup-node@v3 - with: - node-version: 18 - registry-url: https://registry.npmjs.org - name: New Version id: app_version uses: PostHog/check-package-version@v2 @@ -27,7 +21,12 @@ jobs: needs: npm-publish if: needs.npm-publish.outputs.new-version == 'true' steps: + - uses: actions/setup-node@v3 + with: + node-version: 18 + registry-url: https://registry.npmjs.org - uses: actions/checkout@v3.5.0 + - run: yarn install - name: Build working-directory: "." run: yarn build:pages From f4002c464aef60ae7d3cfea653b4d064e9589610 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 8 Aug 2023 13:43:13 +0700 Subject: [PATCH 172/435] attempted fix --- .github/workflows/gh-publish.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/gh-publish.yml b/.github/workflows/gh-publish.yml index a71cae2783..c3c320d668 100644 --- a/.github/workflows/gh-publish.yml +++ b/.github/workflows/gh-publish.yml @@ -10,6 +10,7 @@ jobs: outputs: new-version: ${{ steps.app_version.outputs.is-new-version }} steps: + - uses: actions/checkout@v3.5.0 - name: New Version id: app_version uses: PostHog/check-package-version@v2 @@ -21,11 +22,11 @@ jobs: needs: npm-publish if: needs.npm-publish.outputs.new-version == 'true' steps: + - uses: actions/checkout@v3.5.0 - uses: actions/setup-node@v3 with: node-version: 18 registry-url: https://registry.npmjs.org - - uses: actions/checkout@v3.5.0 - run: yarn install - name: Build working-directory: "." From 4b4c3d116e0cb63865fd2a4e5a2b778920aa3b54 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 8 Aug 2023 13:46:53 +0700 Subject: [PATCH 173/435] should not be new version --- .github/workflows/gh-publish.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/gh-publish.yml b/.github/workflows/gh-publish.yml index c3c320d668..9c17846ee9 100644 --- a/.github/workflows/gh-publish.yml +++ b/.github/workflows/gh-publish.yml @@ -5,10 +5,10 @@ on: branches: [auto-gh-deploy] # TODO: change to main before merging. jobs: - npm-publish: + check-versions: runs-on: ubuntu-latest outputs: - new-version: ${{ steps.app_version.outputs.is-new-version }} + is-new-version: ${{ steps.app_version.outputs.is-new-version }} steps: - uses: actions/checkout@v3.5.0 - name: New Version @@ -19,8 +19,8 @@ jobs: gh-deploy: runs-on: ubuntu-latest - needs: npm-publish - if: needs.npm-publish.outputs.new-version == 'true' + needs: check-versions + if: needs.check-versions.outputs.is-new-version == 'true' steps: - uses: actions/checkout@v3.5.0 - uses: actions/setup-node@v3 From 5405cb95b41ad3cf2ba75a525f95a3c79d0c3b21 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 8 Aug 2023 13:50:04 +0700 Subject: [PATCH 174/435] use id --- .github/workflows/gh-publish.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/gh-publish.yml b/.github/workflows/gh-publish.yml index 9c17846ee9..ddf65a8a0e 100644 --- a/.github/workflows/gh-publish.yml +++ b/.github/workflows/gh-publish.yml @@ -11,8 +11,7 @@ jobs: is-new-version: ${{ steps.app_version.outputs.is-new-version }} steps: - uses: actions/checkout@v3.5.0 - - name: New Version - id: app_version + - id: app_version uses: PostHog/check-package-version@v2 with: path: "." From 9d1a5a98508ff0079b928138d319472f06222f7f Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 8 Aug 2023 13:55:29 +0700 Subject: [PATCH 175/435] scrap version check --- .github/workflows/gh-publish.yml | 17 ++--------------- package.json | 2 +- 2 files changed, 3 insertions(+), 16 deletions(-) diff --git a/.github/workflows/gh-publish.yml b/.github/workflows/gh-publish.yml index ddf65a8a0e..acf06df106 100644 --- a/.github/workflows/gh-publish.yml +++ b/.github/workflows/gh-publish.yml @@ -2,24 +2,11 @@ name: GitHub Pages Publish on: push: - branches: [auto-gh-deploy] # TODO: change to main before merging. + branches: [main] -jobs: - check-versions: - runs-on: ubuntu-latest - outputs: - is-new-version: ${{ steps.app_version.outputs.is-new-version }} - steps: - - uses: actions/checkout@v3.5.0 - - id: app_version - uses: PostHog/check-package-version@v2 - with: - path: "." - +jobs: gh-deploy: runs-on: ubuntu-latest - needs: check-versions - if: needs.check-versions.outputs.is-new-version == 'true' steps: - uses: actions/checkout@v3.5.0 - uses: actions/setup-node@v3 diff --git a/package.json b/package.json index 281017495a..94ebd71ec3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "polkadot-staking-dashboard", - "version": "0.1.3", + "version": "0.1.0", "type": "module", "license": "GPL-3.0-only", "private": false, From 5a4f0f02562a95183ea2e01ec20b0b09220eae84 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 8 Aug 2023 14:03:06 +0700 Subject: [PATCH 176/435] test publish --- src/pages/Overview/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/Overview/index.tsx b/src/pages/Overview/index.tsx index 1c430d6c14..b7e4900850 100644 --- a/src/pages/Overview/index.tsx +++ b/src/pages/Overview/index.tsx @@ -62,7 +62,7 @@ export const Overview = () => { return ( <> - <PageTitle title={t('overview.overview')} /> + <PageTitle title={`🧪${t('overview.overview')}`} /> <PageRow> <PageHeading> <ActiveAccounts /> From 1548263cb3e4dc0f83146337f7fe7f00f4afa19c Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 8 Aug 2023 14:06:53 +0700 Subject: [PATCH 177/435] revert publish test --- src/pages/Overview/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/Overview/index.tsx b/src/pages/Overview/index.tsx index b7e4900850..1c430d6c14 100644 --- a/src/pages/Overview/index.tsx +++ b/src/pages/Overview/index.tsx @@ -62,7 +62,7 @@ export const Overview = () => { return ( <> - <PageTitle title={`🧪${t('overview.overview')}`} /> + <PageTitle title={t('overview.overview')} /> <PageRow> <PageHeading> <ActiveAccounts /> From 5913e8a29188812d655e9abe0245b2497073bc9b Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 8 Aug 2023 21:04:28 +0700 Subject: [PATCH 178/435] update themes --- package.json | 4 ++-- src/Themes.tsx | 4 ++-- src/main.tsx | 10 +++++----- yarn.lock | 16 ++++++++-------- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/package.json b/package.json index 94ebd71ec3..8f4bc73804 100644 --- a/package.json +++ b/package.json @@ -30,9 +30,9 @@ "@polkadot/util": "^12.1.1", "@polkadot/util-crypto": "12.3.2", "@polkadotcloud/community": "0.1.2", - "@polkadotcloud/core-ui": "^0.3.79", + "@polkadotcloud/core-ui": "^0.3.80", "@polkadotcloud/react-odometer": "^0.1.18", - "@polkadotcloud/themes": "^0.1.3", + "@polkadotcloud/themes": "^0.1.4", "@polkadotcloud/utils": "^0.2.22", "@substrate/connect": "^0.7.31", "@zondax/ledger-substrate": "^0.41.1", diff --git a/src/Themes.tsx b/src/Themes.tsx index b78757a78e..f10bac3bc5 100644 --- a/src/Themes.tsx +++ b/src/Themes.tsx @@ -16,8 +16,8 @@ export const ThemedRouter = () => { const { network } = useApi(); return ( - <ThemeProvider theme={{ mode, network: `${network.name}-${mode}` }}> - <Entry mode={mode} chain={`${network.name}-relay`}> + <ThemeProvider theme={{ mode }}> + <Entry mode={mode} theme={`${network.name}-relay`}> <Router /> </Entry> </ThemeProvider> diff --git a/src/main.tsx b/src/main.tsx index 55fa442bf0..95bdc348e2 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -2,13 +2,13 @@ // SPDX-License-Identifier: GPL-3.0-only // Network classes. -import '@polkadotcloud/themes/chain/polkadot-relay/index.css'; -import '@polkadotcloud/themes/chain/kusama-relay/index.css'; -import '@polkadotcloud/themes/chain/westend-relay/index.css'; +import '@polkadotcloud/themes/theme/polkadot-relay/index.css'; +import '@polkadotcloud/themes/theme/kusama-relay/index.css'; +import '@polkadotcloud/themes/theme/westend-relay/index.css'; // Fonts with light and dark themes. -import '@polkadotcloud/themes/theme/default/fonts/index.css'; -import '@polkadotcloud/themes/theme/default/index.css'; +import '@polkadotcloud/themes/template/default/fonts/index.css'; +import '@polkadotcloud/themes/template/default/index.css'; // Core UI styles. import '@polkadotcloud/core-ui/index.css'; diff --git a/yarn.lock b/yarn.lock index f2257e1592..c7b55cf2e0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1832,20 +1832,20 @@ resolved "https://registry.npmjs.org/@polkadotcloud/community/-/community-0.1.2.tgz#d693b89d42ba4ac70abf1c61cfb6b0667ad8130f" integrity sha512-vKJXcCTonXolrd3tN8lbta4Qp69XR6yzU/BM1FOMfiA6C2Q2oGDVYBiTL2BOi8XLXWzsu3SaagG4WulO9ZlPSg== -"@polkadotcloud/core-ui@^0.3.79": - version "0.3.79" - resolved "https://registry.npmjs.org/@polkadotcloud/core-ui/-/core-ui-0.3.79.tgz#6d791d168cc93629f92dde34b165a6de40e2250d" - integrity sha512-ru4fBMVRDUGkbxZvo4FutPmjHfKcPev/JLLSycn3o8I7gDuFZEuZUCq1OacFB5GLNNthPND0KUU2t4GmrKyWLg== +"@polkadotcloud/core-ui@^0.3.80": + version "0.3.80" + resolved "https://registry.npmjs.org/@polkadotcloud/core-ui/-/core-ui-0.3.80.tgz#ce79cb36aa784b42ae89480fa0ab82afb1f6e105" + integrity sha512-xgetd8BRifzwUh520JlG9eiTKUQrvRYYEBGngkx/zEhk+YMs79Tkr+Qiqwa6vXAgVzEfhzk6yY6fno9sNWtwfg== "@polkadotcloud/react-odometer@^0.1.18": version "0.1.18" resolved "https://registry.yarnpkg.com/@polkadotcloud/react-odometer/-/react-odometer-0.1.18.tgz#1a6c7ca8f960a6df63f903d02330e1e226de6301" integrity sha512-SRsTIdx6HeuDUqssQ3UzGQUkT/B6Le2p4k6DcbwDiNPpuL9jga07UULaZ+aOn4Tb7RT92gLiOgGn1s/OI6WA1Q== -"@polkadotcloud/themes@^0.1.3": - version "0.1.3" - resolved "https://registry.npmjs.org/@polkadotcloud/themes/-/themes-0.1.3.tgz#2764465bba7e5bcfc8824e05fb32bf1c320ef41a" - integrity sha512-SAppE61Fuis+KbT7sTtwTZXxby2JVAW6WuZYTY9YrRjx1C7tHaz+6L2IQo85NdDo+eaZLSChFceOZCcE0u54Ug== +"@polkadotcloud/themes@^0.1.4": + version "0.1.4" + resolved "https://registry.npmjs.org/@polkadotcloud/themes/-/themes-0.1.4.tgz#399b2d02bd9c869c348da418c46e9e07f781ed68" + integrity sha512-N5WdeJgQELsKpthCXtsqjTqsYNtxH2Af2pmfv97xi1t+JzsUSPROG/IKvbLPDGN4Isz3bW7Sg16s1aJG19IUXQ== "@polkadotcloud/utils@^0.2.22": version "0.2.22" From 0d0980e13b9a443de56965ed94b55e3771460fb0 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 8 Aug 2023 21:07:02 +0700 Subject: [PATCH 179/435] comment --- src/main.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main.tsx b/src/main.tsx index 95bdc348e2..e4eb32c5bb 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,12 +1,11 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -// Network classes. +// Network themes with default template. import '@polkadotcloud/themes/theme/polkadot-relay/index.css'; import '@polkadotcloud/themes/theme/kusama-relay/index.css'; import '@polkadotcloud/themes/theme/westend-relay/index.css'; -// Fonts with light and dark themes. import '@polkadotcloud/themes/template/default/fonts/index.css'; import '@polkadotcloud/themes/template/default/index.css'; From 94e788af5e7792c2f4ca9d9233e8eb212ca68d5d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Aug 2023 22:03:35 +0000 Subject: [PATCH 180/435] Bump @polkadotcloud/core-ui from 0.3.80 to 0.3.81 Bumps [@polkadotcloud/core-ui](https://github.com/paritytech/polkadot-dashboard-ui) from 0.3.80 to 0.3.81. - [Release notes](https://github.com/paritytech/polkadot-dashboard-ui/releases) - [Commits](https://github.com/paritytech/polkadot-dashboard-ui/commits) --- updated-dependencies: - dependency-name: "@polkadotcloud/core-ui" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 8f4bc73804..0da3bae286 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "@polkadot/util": "^12.1.1", "@polkadot/util-crypto": "12.3.2", "@polkadotcloud/community": "0.1.2", - "@polkadotcloud/core-ui": "^0.3.80", + "@polkadotcloud/core-ui": "^0.3.81", "@polkadotcloud/react-odometer": "^0.1.18", "@polkadotcloud/themes": "^0.1.4", "@polkadotcloud/utils": "^0.2.22", diff --git a/yarn.lock b/yarn.lock index c7b55cf2e0..e0522d5004 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1832,10 +1832,10 @@ resolved "https://registry.npmjs.org/@polkadotcloud/community/-/community-0.1.2.tgz#d693b89d42ba4ac70abf1c61cfb6b0667ad8130f" integrity sha512-vKJXcCTonXolrd3tN8lbta4Qp69XR6yzU/BM1FOMfiA6C2Q2oGDVYBiTL2BOi8XLXWzsu3SaagG4WulO9ZlPSg== -"@polkadotcloud/core-ui@^0.3.80": - version "0.3.80" - resolved "https://registry.npmjs.org/@polkadotcloud/core-ui/-/core-ui-0.3.80.tgz#ce79cb36aa784b42ae89480fa0ab82afb1f6e105" - integrity sha512-xgetd8BRifzwUh520JlG9eiTKUQrvRYYEBGngkx/zEhk+YMs79Tkr+Qiqwa6vXAgVzEfhzk6yY6fno9sNWtwfg== +"@polkadotcloud/core-ui@^0.3.81": + version "0.3.81" + resolved "https://registry.yarnpkg.com/@polkadotcloud/core-ui/-/core-ui-0.3.81.tgz#ff5cf782ec01c1e5081c32edcbfcac2b07953dcf" + integrity sha512-t8NsVCUIyhRegMttdqlvgeh/Wvbqci1/hU7OJ2adYaRbJBRfmhfIyYWyWWlDrsa4yf9vhrLgov1ALzu6x7CtYw== "@polkadotcloud/react-odometer@^0.1.18": version "0.1.18" From 1e68c613419015924f284567b932d825a022f85e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Aug 2023 22:02:59 +0000 Subject: [PATCH 181/435] Bump i18next from 23.4.2 to 23.4.3 Bumps [i18next](https://github.com/i18next/i18next) from 23.4.2 to 23.4.3. - [Release notes](https://github.com/i18next/i18next/releases) - [Changelog](https://github.com/i18next/i18next/blob/master/CHANGELOG.md) - [Commits](https://github.com/i18next/i18next/compare/v23.4.2...v23.4.3) --- updated-dependencies: - dependency-name: i18next dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 0da3bae286..1793e3e4c1 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "chart.js": "^4.3.3", "date-fns": "^2.29.3", "framer-motion": "^10.15.1", - "i18next": "^23.4.2", + "i18next": "^23.4.3", "i18next-browser-languagedetector": "^7.1.0", "lodash.throttle": "^4.1.1", "qrcode-generator": "1.4.4", diff --git a/yarn.lock b/yarn.lock index e0522d5004..4d7b35b25f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3986,10 +3986,10 @@ i18next-browser-languagedetector@^7.1.0: dependencies: "@babel/runtime" "^7.19.4" -i18next@^23.4.2: - version "23.4.2" - resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.4.2.tgz#e68108be82287114e027afc5402bb7830d7f45c9" - integrity sha512-hkVPHKFLtn9iewdqHDiU+MGVIBk+bVFn5usw7CIeCn/SBcVKGTItGdjNPm2B8Lnz42CeHUlnSOTgsr5vbITjhA== +i18next@^23.4.3: + version "23.4.3" + resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.4.3.tgz#100205c2f9aed424b89058b512ee77c6805fa744" + integrity sha512-EgwHA+R+WIJ/eypepS6RWzyiPp3JR8c3W7vyvgRcY2q9a4PQQHY96jugVF5CBHm0MvK8XBYCGUgtjd4R6UTvwA== dependencies: "@babel/runtime" "^7.22.5" From 6ec0329dd15b119b152a93f851b49f395c78b1af Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Aug 2023 22:02:38 +0000 Subject: [PATCH 182/435] Bump @types/react from 18.2.18 to 18.2.19 Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.2.18 to 18.2.19. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) --- updated-dependencies: - dependency-name: "@types/react" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 1793e3e4c1..182998fc19 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "devDependencies": { "@ledgerhq/logs": "^6.10.1", "@types/lodash.throttle": "^4.1.7", - "@types/react": "^18.2.18", + "@types/react": "^18.2.19", "@types/react-dom": "^18.2.7", "@types/react-helmet": "^6.1.6", "@types/react-qr-reader": "^2.1.4", diff --git a/yarn.lock b/yarn.lock index 4d7b35b25f..cf355e8dfe 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2151,10 +2151,10 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^18.2.18": - version "18.2.18" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.18.tgz#c8b233919eef1bdc294f6f34b37f9727ad677516" - integrity sha512-da4NTSeBv/P34xoZPhtcLkmZuJ+oYaCxHmyHzwaDQo9RQPBeXV+06gEk2FpqEcsX9XrnNLvRpVh6bdavDSjtiQ== +"@types/react@*", "@types/react@^18.2.19": + version "18.2.19" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.19.tgz#f77cb2c8307368e624d464a25b9675fa35f95a8b" + integrity sha512-e2S8wmY1ePfM517PqCG80CcE48Xs5k0pwJzuDZsfE8IZRRBfOMCF+XqnFxu6mWtyivum1MQm4aco+WIt6Coimw== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" From bcdff46dcf41c8a456f4a782bea81c85173d7746 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Aug 2023 21:26:46 +0000 Subject: [PATCH 183/435] Bump @polkadotcloud/themes from 0.1.4 to 0.1.5 Bumps [@polkadotcloud/themes](https://github.com/paritytech/polkadot-cloud) from 0.1.4 to 0.1.5. - [Release notes](https://github.com/paritytech/polkadot-cloud/releases) - [Commits](https://github.com/paritytech/polkadot-cloud/commits) --- updated-dependencies: - dependency-name: "@polkadotcloud/themes" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 182998fc19..e9f5a35633 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "@polkadotcloud/community": "0.1.2", "@polkadotcloud/core-ui": "^0.3.81", "@polkadotcloud/react-odometer": "^0.1.18", - "@polkadotcloud/themes": "^0.1.4", + "@polkadotcloud/themes": "^0.1.5", "@polkadotcloud/utils": "^0.2.22", "@substrate/connect": "^0.7.31", "@zondax/ledger-substrate": "^0.41.1", diff --git a/yarn.lock b/yarn.lock index cf355e8dfe..011febcbc9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1842,10 +1842,10 @@ resolved "https://registry.yarnpkg.com/@polkadotcloud/react-odometer/-/react-odometer-0.1.18.tgz#1a6c7ca8f960a6df63f903d02330e1e226de6301" integrity sha512-SRsTIdx6HeuDUqssQ3UzGQUkT/B6Le2p4k6DcbwDiNPpuL9jga07UULaZ+aOn4Tb7RT92gLiOgGn1s/OI6WA1Q== -"@polkadotcloud/themes@^0.1.4": - version "0.1.4" - resolved "https://registry.npmjs.org/@polkadotcloud/themes/-/themes-0.1.4.tgz#399b2d02bd9c869c348da418c46e9e07f781ed68" - integrity sha512-N5WdeJgQELsKpthCXtsqjTqsYNtxH2Af2pmfv97xi1t+JzsUSPROG/IKvbLPDGN4Isz3bW7Sg16s1aJG19IUXQ== +"@polkadotcloud/themes@^0.1.5": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@polkadotcloud/themes/-/themes-0.1.5.tgz#20b68d0ba05c0147ee727754f98b6afa440df54b" + integrity sha512-yVCCitWwgph/x80QIAFGz3l/BiNN86cIou5IC9qtj9f2qLPYxcLd7NXzJ5ntoDdwpT+nDk0ewJRrRB34eJlDsA== "@polkadotcloud/utils@^0.2.22": version "0.2.22" From 3af5a92a2f6cb32500c36224423235ea8e33528b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Aug 2023 21:26:21 +0000 Subject: [PATCH 184/435] Bump i18next from 23.4.3 to 23.4.4 Bumps [i18next](https://github.com/i18next/i18next) from 23.4.3 to 23.4.4. - [Release notes](https://github.com/i18next/i18next/releases) - [Changelog](https://github.com/i18next/i18next/blob/master/CHANGELOG.md) - [Commits](https://github.com/i18next/i18next/compare/v23.4.3...v23.4.4) --- updated-dependencies: - dependency-name: i18next dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index e9f5a35633..ff1d410572 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "chart.js": "^4.3.3", "date-fns": "^2.29.3", "framer-motion": "^10.15.1", - "i18next": "^23.4.3", + "i18next": "^23.4.4", "i18next-browser-languagedetector": "^7.1.0", "lodash.throttle": "^4.1.1", "qrcode-generator": "1.4.4", diff --git a/yarn.lock b/yarn.lock index 011febcbc9..9d8afbc058 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3986,10 +3986,10 @@ i18next-browser-languagedetector@^7.1.0: dependencies: "@babel/runtime" "^7.19.4" -i18next@^23.4.3: - version "23.4.3" - resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.4.3.tgz#100205c2f9aed424b89058b512ee77c6805fa744" - integrity sha512-EgwHA+R+WIJ/eypepS6RWzyiPp3JR8c3W7vyvgRcY2q9a4PQQHY96jugVF5CBHm0MvK8XBYCGUgtjd4R6UTvwA== +i18next@^23.4.4: + version "23.4.4" + resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.4.4.tgz#ec8fb2b5f3c5d8e3bf3f8ab1b19e743be91300e0" + integrity sha512-+c9B0txp/x1m5zn+QlwHaCS9vyFtmIAEXbVSFzwCX7vupm5V7va8F9cJGNJZ46X9ZtoGzhIiRC7eTIIh93TxPA== dependencies: "@babel/runtime" "^7.22.5" From a5dd3ddd2dd6faebe024a0789e38de6e5bf1ad35 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Aug 2023 21:27:47 +0000 Subject: [PATCH 185/435] Bump @types/react from 18.2.19 to 18.2.20 Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.2.19 to 18.2.20. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) --- updated-dependencies: - dependency-name: "@types/react" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index ff1d410572..80f1cb0e86 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "devDependencies": { "@ledgerhq/logs": "^6.10.1", "@types/lodash.throttle": "^4.1.7", - "@types/react": "^18.2.19", + "@types/react": "^18.2.20", "@types/react-dom": "^18.2.7", "@types/react-helmet": "^6.1.6", "@types/react-qr-reader": "^2.1.4", diff --git a/yarn.lock b/yarn.lock index 9d8afbc058..2f48bfd803 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2151,10 +2151,10 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^18.2.19": - version "18.2.19" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.19.tgz#f77cb2c8307368e624d464a25b9675fa35f95a8b" - integrity sha512-e2S8wmY1ePfM517PqCG80CcE48Xs5k0pwJzuDZsfE8IZRRBfOMCF+XqnFxu6mWtyivum1MQm4aco+WIt6Coimw== +"@types/react@*", "@types/react@^18.2.20": + version "18.2.20" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.20.tgz#1605557a83df5c8a2cc4eeb743b3dfc0eb6aaeb2" + integrity sha512-WKNtmsLWJM/3D5mG4U84cysVY31ivmyw85dE84fOCk5Hx78wezB/XEjVPWl2JTZ5FkEeaTJf+VgUAUn3PE7Isw== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" From e20652eb97b6f44ade9e78ed4289e9fed816bfd5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Aug 2023 21:28:23 +0000 Subject: [PATCH 186/435] Bump eslint-import-resolver-typescript from 3.5.5 to 3.6.0 Bumps [eslint-import-resolver-typescript](https://github.com/import-js/eslint-import-resolver-typescript) from 3.5.5 to 3.6.0. - [Release notes](https://github.com/import-js/eslint-import-resolver-typescript/releases) - [Changelog](https://github.com/import-js/eslint-import-resolver-typescript/blob/master/CHANGELOG.md) - [Commits](https://github.com/import-js/eslint-import-resolver-typescript/compare/v3.5.5...v3.6.0) --- updated-dependencies: - dependency-name: eslint-import-resolver-typescript dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 35 +++++++++-------------------------- 2 files changed, 10 insertions(+), 27 deletions(-) diff --git a/package.json b/package.json index 80f1cb0e86..9cb16b1ab4 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb-typescript": "^17.1.0", "eslint-config-prettier": "^9.0.0", - "eslint-import-resolver-typescript": "^3.5.5", + "eslint-import-resolver-typescript": "^3.6.0", "eslint-plugin-import": "^2.28.0", "eslint-plugin-jsx-a11y": "^6.7.1", "eslint-plugin-prefer-arrow": "^1.2.3", diff --git a/yarn.lock b/yarn.lock index 2f48bfd803..5ede227335 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3286,19 +3286,18 @@ eslint-import-resolver-node@^0.3.7: is-core-module "^2.11.0" resolve "^1.22.1" -eslint-import-resolver-typescript@^3.5.5: - version "3.5.5" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.5.tgz#0a9034ae7ed94b254a360fbea89187b60ea7456d" - integrity sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw== +eslint-import-resolver-typescript@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.0.tgz#36f93e1eb65a635e688e16cae4bead54552e3bbd" + integrity sha512-QTHR9ddNnn35RTxlaEnx2gCxqFlF2SEN0SE2d17SqwyM7YOSI2GHWRYp5BiRkObTUNYPupC/3Fq2a0PpT+EKpg== dependencies: debug "^4.3.4" enhanced-resolve "^5.12.0" eslint-module-utils "^2.7.4" + fast-glob "^3.3.1" get-tsconfig "^4.5.0" - globby "^13.1.3" is-core-module "^2.11.0" is-glob "^4.0.3" - synckit "^0.8.5" eslint-module-utils@^2.7.4, eslint-module-utils@^2.8.0: version "2.8.0" @@ -3553,10 +3552,10 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== -fast-glob@^3.2.7, fast-glob@^3.2.9, fast-glob@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.0.tgz#7c40cb491e1e2ed5664749e87bfb516dbe8727c0" - integrity sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA== +fast-glob@^3.2.7, fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" + integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -3846,17 +3845,6 @@ globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -globby@^13.1.3: - version "13.2.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-13.2.2.tgz#63b90b1bf68619c2135475cbd4e71e66aa090592" - integrity sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w== - dependencies: - dir-glob "^3.0.1" - fast-glob "^3.3.0" - ignore "^5.2.4" - merge2 "^1.4.1" - slash "^4.0.0" - globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" @@ -5365,11 +5353,6 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -slash@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" - integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== - smoldot@1.0.13: version "1.0.13" resolved "https://registry.yarnpkg.com/smoldot/-/smoldot-1.0.13.tgz#582276d94159a3ddace3c4979cc3000141852d2c" From fe9acc6902c00e891d1b4f0b5cdb82d860a34a3d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Aug 2023 21:31:41 +0000 Subject: [PATCH 187/435] Bump @polkadotcloud/react-odometer from 0.1.18 to 0.1.19 Bumps @polkadotcloud/react-odometer from 0.1.18 to 0.1.19. --- updated-dependencies: - dependency-name: "@polkadotcloud/react-odometer" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 9cb16b1ab4..14a6013cba 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "@polkadot/util-crypto": "12.3.2", "@polkadotcloud/community": "0.1.2", "@polkadotcloud/core-ui": "^0.3.81", - "@polkadotcloud/react-odometer": "^0.1.18", + "@polkadotcloud/react-odometer": "^0.1.19", "@polkadotcloud/themes": "^0.1.5", "@polkadotcloud/utils": "^0.2.22", "@substrate/connect": "^0.7.31", diff --git a/yarn.lock b/yarn.lock index 5ede227335..37f067c875 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1837,10 +1837,10 @@ resolved "https://registry.yarnpkg.com/@polkadotcloud/core-ui/-/core-ui-0.3.81.tgz#ff5cf782ec01c1e5081c32edcbfcac2b07953dcf" integrity sha512-t8NsVCUIyhRegMttdqlvgeh/Wvbqci1/hU7OJ2adYaRbJBRfmhfIyYWyWWlDrsa4yf9vhrLgov1ALzu6x7CtYw== -"@polkadotcloud/react-odometer@^0.1.18": - version "0.1.18" - resolved "https://registry.yarnpkg.com/@polkadotcloud/react-odometer/-/react-odometer-0.1.18.tgz#1a6c7ca8f960a6df63f903d02330e1e226de6301" - integrity sha512-SRsTIdx6HeuDUqssQ3UzGQUkT/B6Le2p4k6DcbwDiNPpuL9jga07UULaZ+aOn4Tb7RT92gLiOgGn1s/OI6WA1Q== +"@polkadotcloud/react-odometer@^0.1.19": + version "0.1.19" + resolved "https://registry.yarnpkg.com/@polkadotcloud/react-odometer/-/react-odometer-0.1.19.tgz#3bd476c8d00fa011a14f7bc8b9b5227a26c9299a" + integrity sha512-s7JJIIP4ZR37J+r478TrE5yCuO2niT1ATscTm/0wVLq/nFvCrJ63JZbCLl13I17ZotId41kRUb3vGxIYn4giMQ== "@polkadotcloud/themes@^0.1.5": version "0.1.5" From a3290c78e0215bdfa4f03984a9601a72b5fedf44 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Aug 2023 21:36:56 +0000 Subject: [PATCH 188/435] Bump @polkadotcloud/community from 0.1.2 to 0.1.4 Bumps [@polkadotcloud/community](https://github.com/paritytech/polkadot-cloud) from 0.1.2 to 0.1.4. - [Release notes](https://github.com/paritytech/polkadot-cloud/releases) - [Commits](https://github.com/paritytech/polkadot-cloud/commits) --- updated-dependencies: - dependency-name: "@polkadotcloud/community" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 14a6013cba..fcb40e6073 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "@polkadot/rpc-provider": "^10.9.1", "@polkadot/util": "^12.1.1", "@polkadot/util-crypto": "12.3.2", - "@polkadotcloud/community": "0.1.2", + "@polkadotcloud/community": "0.1.4", "@polkadotcloud/core-ui": "^0.3.81", "@polkadotcloud/react-odometer": "^0.1.19", "@polkadotcloud/themes": "^0.1.5", diff --git a/yarn.lock b/yarn.lock index 37f067c875..8744738d1d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1827,10 +1827,10 @@ tslib "^2.5.3" ws "^8.13.0" -"@polkadotcloud/community@0.1.2": - version "0.1.2" - resolved "https://registry.npmjs.org/@polkadotcloud/community/-/community-0.1.2.tgz#d693b89d42ba4ac70abf1c61cfb6b0667ad8130f" - integrity sha512-vKJXcCTonXolrd3tN8lbta4Qp69XR6yzU/BM1FOMfiA6C2Q2oGDVYBiTL2BOi8XLXWzsu3SaagG4WulO9ZlPSg== +"@polkadotcloud/community@0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@polkadotcloud/community/-/community-0.1.4.tgz#8776843627da65ab9bd824f1966de572be49e593" + integrity sha512-kA3Q9XZ+uyYUzHQtfnd3ulZERf6Q3HK7/o9L/Yieax0dCdGazBi5MoCWEbOIo3OYC+9Mdb4T+AAJQ5fDf3tHGA== "@polkadotcloud/core-ui@^0.3.81": version "0.3.81" From 11fef0961021b8a6edbbc18cecadcb15d7448d2c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Aug 2023 21:40:18 +0000 Subject: [PATCH 189/435] Bump @polkadotcloud/utils from 0.2.22 to 0.2.23 Bumps [@polkadotcloud/utils](https://github.com/paritytech/polkadot-dashboard-ui) from 0.2.22 to 0.2.23. - [Release notes](https://github.com/paritytech/polkadot-dashboard-ui/releases) - [Commits](https://github.com/paritytech/polkadot-dashboard-ui/commits) --- updated-dependencies: - dependency-name: "@polkadotcloud/utils" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index fcb40e6073..a6720aa2c5 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "@polkadotcloud/core-ui": "^0.3.81", "@polkadotcloud/react-odometer": "^0.1.19", "@polkadotcloud/themes": "^0.1.5", - "@polkadotcloud/utils": "^0.2.22", + "@polkadotcloud/utils": "^0.2.23", "@substrate/connect": "^0.7.31", "@zondax/ledger-substrate": "^0.41.1", "bignumber.js": "^9.1.1", diff --git a/yarn.lock b/yarn.lock index 8744738d1d..63f2d2e6ba 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1847,10 +1847,10 @@ resolved "https://registry.yarnpkg.com/@polkadotcloud/themes/-/themes-0.1.5.tgz#20b68d0ba05c0147ee727754f98b6afa440df54b" integrity sha512-yVCCitWwgph/x80QIAFGz3l/BiNN86cIou5IC9qtj9f2qLPYxcLd7NXzJ5ntoDdwpT+nDk0ewJRrRB34eJlDsA== -"@polkadotcloud/utils@^0.2.22": - version "0.2.22" - resolved "https://registry.yarnpkg.com/@polkadotcloud/utils/-/utils-0.2.22.tgz#959b7de19352ce3cf75ba32b6c5bde19b3caee07" - integrity sha512-FtGOwEt1oiP1beC1y1VjeiYcVg0vmMts1qMkluHsptdsz7uPXPau4t2SxZvqVM9sKsJbaWmGe6Z+EfzV4I9Cow== +"@polkadotcloud/utils@^0.2.23": + version "0.2.23" + resolved "https://registry.yarnpkg.com/@polkadotcloud/utils/-/utils-0.2.23.tgz#8d4bfd81213b18a2ac66986da9169140a24a256e" + integrity sha512-J+YJwfNIqdU6mO9rN1ZFUvm1mBp7OIdybotePUZ4kRL/vxMKTPk3usNVzVv45PctRuNtve70MQdEmsbEiigafw== "@remix-run/router@1.7.2": version "1.7.2" From bf1d4576364789d4b4b27bb321d03db7035ecb5f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Aug 2023 21:42:48 +0000 Subject: [PATCH 190/435] Bump @polkadotcloud/core-ui from 0.3.81 to 0.3.85 Bumps [@polkadotcloud/core-ui](https://github.com/paritytech/polkadot-dashboard-ui) from 0.3.81 to 0.3.85. - [Release notes](https://github.com/paritytech/polkadot-dashboard-ui/releases) - [Commits](https://github.com/paritytech/polkadot-dashboard-ui/commits) --- updated-dependencies: - dependency-name: "@polkadotcloud/core-ui" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index a6720aa2c5..f1f03de72b 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "@polkadot/util": "^12.1.1", "@polkadot/util-crypto": "12.3.2", "@polkadotcloud/community": "0.1.4", - "@polkadotcloud/core-ui": "^0.3.81", + "@polkadotcloud/core-ui": "^0.3.85", "@polkadotcloud/react-odometer": "^0.1.19", "@polkadotcloud/themes": "^0.1.5", "@polkadotcloud/utils": "^0.2.23", diff --git a/yarn.lock b/yarn.lock index 63f2d2e6ba..aa88f34b46 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1832,10 +1832,10 @@ resolved "https://registry.yarnpkg.com/@polkadotcloud/community/-/community-0.1.4.tgz#8776843627da65ab9bd824f1966de572be49e593" integrity sha512-kA3Q9XZ+uyYUzHQtfnd3ulZERf6Q3HK7/o9L/Yieax0dCdGazBi5MoCWEbOIo3OYC+9Mdb4T+AAJQ5fDf3tHGA== -"@polkadotcloud/core-ui@^0.3.81": - version "0.3.81" - resolved "https://registry.yarnpkg.com/@polkadotcloud/core-ui/-/core-ui-0.3.81.tgz#ff5cf782ec01c1e5081c32edcbfcac2b07953dcf" - integrity sha512-t8NsVCUIyhRegMttdqlvgeh/Wvbqci1/hU7OJ2adYaRbJBRfmhfIyYWyWWlDrsa4yf9vhrLgov1ALzu6x7CtYw== +"@polkadotcloud/core-ui@^0.3.85": + version "0.3.85" + resolved "https://registry.yarnpkg.com/@polkadotcloud/core-ui/-/core-ui-0.3.85.tgz#f63252a41f1fc1e031659b5503fce926b7e8e0cf" + integrity sha512-xCrK1filaU7z+oN4Ezlfq5Ra27tm1FbD0Z6ENRVduTkWLtn8fpzGlZF9JkfDd/bH59ngRtItxJ0XijiUotY5aw== "@polkadotcloud/react-odometer@^0.1.19": version "0.1.19" From 7381433aafdcd90c6ebf19435d8af75aedb44cba Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Thu, 10 Aug 2023 14:24:59 +0700 Subject: [PATCH 191/435] fix resize --- src/modals/ClaimReward/index.tsx | 6 +++++- src/modals/Networks/index.tsx | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/modals/ClaimReward/index.tsx b/src/modals/ClaimReward/index.tsx index 9fd9361020..af5e096f61 100644 --- a/src/modals/ClaimReward/index.tsx +++ b/src/modals/ClaimReward/index.tsx @@ -24,7 +24,7 @@ export const ClaimReward = () => { const { t } = useTranslation('modals'); const { api, network } = useApi(); const { activeAccount } = useConnect(); - const { setStatus: setModalStatus, config } = useModal(); + const { setStatus: setModalStatus, config, setResize } = useModal(); const { selectedActivePool } = useActivePools(); const { getSignerWarnings } = useSignerWarnings(); @@ -80,6 +80,10 @@ export const ClaimReward = () => { warnings.push(`${t('noRewards')}`); } + useEffect(() => { + setResize(); + }, [warnings.length]); + return ( <> <Close /> diff --git a/src/modals/Networks/index.tsx b/src/modals/Networks/index.tsx index 90d74bfe2b..76e8217058 100644 --- a/src/modals/Networks/index.tsx +++ b/src/modals/Networks/index.tsx @@ -23,8 +23,8 @@ import { export const Networks = () => { const { t } = useTranslation('modals'); + const { setStatus, setResize } = useModal(); const { switchNetwork, network, isLightClient } = useApi(); - const { setStatus } = useModal(); const networkKey: string = network.name; const [braveBrowser, setBraveBrowser] = useState<boolean>(false); @@ -36,6 +36,10 @@ export const Networks = () => { }); }); + useEffect(() => { + setResize(); + }, [braveBrowser]); + return ( <> <Title title={t('networks')} icon={faGlobe} /> From b95cb20a2cfac37d702376004d77e3333a7ca5f8 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Thu, 10 Aug 2023 17:31:03 +0700 Subject: [PATCH 192/435] styling --- src/modals/Connect/Wrappers.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/modals/Connect/Wrappers.ts b/src/modals/Connect/Wrappers.ts index 60c9f257a1..86cd6aeb59 100644 --- a/src/modals/Connect/Wrappers.ts +++ b/src/modals/Connect/Wrappers.ts @@ -73,12 +73,12 @@ export const ExtensionInner = styled.div` } } .icon { - width: 2.6rem; - height: 2.6rem; + color: var(--text-color-primary); + width: 100%; svg { - width: inherit; - height: inherit; + max-width: 2.6rem; + max-height: 2.6rem; } } svg { From 3edcc5f92fc6afeded7261e92c423cbc97cfe003 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Aug 2023 21:45:36 +0000 Subject: [PATCH 193/435] Bump @polkadotcloud/community from 0.1.4 to 0.1.10 Bumps [@polkadotcloud/community](https://github.com/paritytech/polkadot-cloud) from 0.1.4 to 0.1.10. - [Release notes](https://github.com/paritytech/polkadot-cloud/releases) - [Commits](https://github.com/paritytech/polkadot-cloud/commits) --- updated-dependencies: - dependency-name: "@polkadotcloud/community" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index f1f03de72b..af6af1c3b8 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "@polkadot/rpc-provider": "^10.9.1", "@polkadot/util": "^12.1.1", "@polkadot/util-crypto": "12.3.2", - "@polkadotcloud/community": "0.1.4", + "@polkadotcloud/community": "0.1.10", "@polkadotcloud/core-ui": "^0.3.85", "@polkadotcloud/react-odometer": "^0.1.19", "@polkadotcloud/themes": "^0.1.5", diff --git a/yarn.lock b/yarn.lock index aa88f34b46..1c325add1f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1827,10 +1827,10 @@ tslib "^2.5.3" ws "^8.13.0" -"@polkadotcloud/community@0.1.4": - version "0.1.4" - resolved "https://registry.yarnpkg.com/@polkadotcloud/community/-/community-0.1.4.tgz#8776843627da65ab9bd824f1966de572be49e593" - integrity sha512-kA3Q9XZ+uyYUzHQtfnd3ulZERf6Q3HK7/o9L/Yieax0dCdGazBi5MoCWEbOIo3OYC+9Mdb4T+AAJQ5fDf3tHGA== +"@polkadotcloud/community@0.1.10": + version "0.1.10" + resolved "https://registry.yarnpkg.com/@polkadotcloud/community/-/community-0.1.10.tgz#8755d448098bfab6ff35e9fc7bad3d5c7a81e641" + integrity sha512-NKcm8+ZDnEk8TB27x3JSF7+vSC2wKDMmEFI6SyKIcHTS0WvY5uN8x6U5uwHQh/ESBNa824t+GYPLo7ZGTx3HWA== "@polkadotcloud/core-ui@^0.3.85": version "0.3.85" From a1484f1bcf2a3db71a046406d4ec29f054e6fe39 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Aug 2023 21:45:04 +0000 Subject: [PATCH 194/435] Bump react-error-boundary from 4.0.10 to 4.0.11 Bumps [react-error-boundary](https://github.com/bvaughn/react-error-boundary) from 4.0.10 to 4.0.11. - [Release notes](https://github.com/bvaughn/react-error-boundary/releases) - [Commits](https://github.com/bvaughn/react-error-boundary/compare/4.0.10...4.0.11) --- updated-dependencies: - dependency-name: react-error-boundary dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index af6af1c3b8..4d20896c23 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "react": "^18.2.0", "react-chartjs-2": "^5.2.0", "react-dom": "^18.2.0", - "react-error-boundary": "^4.0.10", + "react-error-boundary": "^4.0.11", "react-helmet": "^6.1.0", "react-i18next": "^13.0.3", "react-qr-reader": "^2.2.1", diff --git a/yarn.lock b/yarn.lock index 1c325add1f..22b6755e4d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4973,10 +4973,10 @@ react-dom@^18.2.0: loose-envify "^1.1.0" scheduler "^0.23.0" -react-error-boundary@^4.0.10: - version "4.0.10" - resolved "https://registry.yarnpkg.com/react-error-boundary/-/react-error-boundary-4.0.10.tgz#975cc298e93ab7760d1460b7ea5a7855621e355a" - integrity sha512-pvVKdi77j2OoPHo+p3rorgE43OjDWiqFkaqkJz8sJKK6uf/u8xtzuaVfj5qJ2JnDLIgF1De3zY5AJDijp+LVPA== +react-error-boundary@^4.0.11: + version "4.0.11" + resolved "https://registry.yarnpkg.com/react-error-boundary/-/react-error-boundary-4.0.11.tgz#36bf44de7746714725a814630282fee83a7c9a1c" + integrity sha512-U13ul67aP5DOSPNSCWQ/eO0AQEYzEFkVljULQIjMV0KlffTAhxuDoBKdO0pb/JZ8mDhMKFZ9NZi0BmLGUiNphw== dependencies: "@babel/runtime" "^7.12.5" From 02628abeba84ea7b940f36860d574541257c1c1f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Aug 2023 21:46:31 +0000 Subject: [PATCH 195/435] Bump sass from 1.64.2 to 1.65.1 Bumps [sass](https://github.com/sass/dart-sass) from 1.64.2 to 1.65.1. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.64.2...1.65.1) --- updated-dependencies: - dependency-name: sass dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 4d20896c23..c00d8c0035 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "gh-pages": "^5.0.0", "prettier": "^3.0.1", "prettier-plugin-organize-imports": "^3.2.3", - "sass": "^1.64.2", + "sass": "^1.65.1", "typescript": "^5.1.6", "vite": "^4.4.9", "vite-bundle-visualizer": "^0.10.0", diff --git a/yarn.lock b/yarn.lock index 22b6755e4d..bf77649b43 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5261,10 +5261,10 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.1.3" is-regex "^1.1.4" -sass@^1.64.2: - version "1.64.2" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.64.2.tgz#0d9805ad6acf31c59c3acc725fcfb91b7fcc6909" - integrity sha512-TnDlfc+CRnUAgLO9D8cQLFu/GIjJIzJCGkE7o4ekIGQOH7T3GetiRR/PsTWJUHhkzcSPrARkPI+gNWn5alCzDg== +sass@^1.65.1: + version "1.65.1" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.65.1.tgz#8f283b0c26335a88246a448d22e1342ba2ea1432" + integrity sha512-9DINwtHmA41SEd36eVPQ9BJKpn7eKDQmUHmpI0y5Zv2Rcorrh0zS+cFrt050hdNbmmCNKTW3hV5mWfuegNRsEA== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" From ec3a8d780a02fd1af292d619024eb6ebd11cb8ea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Aug 2023 21:45:59 +0000 Subject: [PATCH 196/435] Bump react-router-dom from 6.14.2 to 6.15.0 Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.14.2 to 6.15.0. - [Release notes](https://github.com/remix-run/react-router/releases) - [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md) - [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.15.0/packages/react-router-dom) --- updated-dependencies: - dependency-name: react-router-dom dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index c00d8c0035..212eb1802d 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "react-helmet": "^6.1.0", "react-i18next": "^13.0.3", "react-qr-reader": "^2.2.1", - "react-router-dom": "^6.14.2", + "react-router-dom": "^6.15.0", "react-scroll": "^1.8.9", "styled-components": "^6.0.7" }, diff --git a/yarn.lock b/yarn.lock index bf77649b43..47d2e9022b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1852,10 +1852,10 @@ resolved "https://registry.yarnpkg.com/@polkadotcloud/utils/-/utils-0.2.23.tgz#8d4bfd81213b18a2ac66986da9169140a24a256e" integrity sha512-J+YJwfNIqdU6mO9rN1ZFUvm1mBp7OIdybotePUZ4kRL/vxMKTPk3usNVzVv45PctRuNtve70MQdEmsbEiigafw== -"@remix-run/router@1.7.2": - version "1.7.2" - resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.7.2.tgz#cba1cf0a04bc04cb66027c51fa600e9cbc388bc8" - integrity sha512-7Lcn7IqGMV+vizMPoEl5F0XDshcdDYtMI6uJLQdQz5CfZAwy3vvGKYSUk789qndt5dEC4HfSjviSYlSoHGL2+A== +"@remix-run/router@1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.8.0.tgz#e848d2f669f601544df15ce2a313955e4bf0bafc" + integrity sha512-mrfKqIHnSZRyIzBcanNJmVQELTnX+qagEDlcKO90RgRBVOZGSGvZKeDihTRfWcqoDn5N/NkUcwWTccnpN18Tfg== "@rollup/pluginutils@^4.2.1": version "4.2.1" @@ -5022,20 +5022,20 @@ react-qr-reader@^2.2.1: prop-types "^15.7.2" webrtc-adapter "^7.2.1" -react-router-dom@^6.14.2: - version "6.14.2" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.14.2.tgz#88f520118b91aa60233bd08dbd3fdcaea3a68488" - integrity sha512-5pWX0jdKR48XFZBuJqHosX3AAHjRAzygouMTyimnBPOLdY3WjzUSKhus2FVMihUFWzeLebDgr4r8UeQFAct7Bg== +react-router-dom@^6.15.0: + version "6.15.0" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.15.0.tgz#6da7db61e56797266fbbef0d5e324d6ac443ee40" + integrity sha512-aR42t0fs7brintwBGAv2+mGlCtgtFQeOzK0BM1/OiqEzRejOZtpMZepvgkscpMUnKb8YO84G7s3LsHnnDNonbQ== dependencies: - "@remix-run/router" "1.7.2" - react-router "6.14.2" + "@remix-run/router" "1.8.0" + react-router "6.15.0" -react-router@6.14.2: - version "6.14.2" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.14.2.tgz#1f60994d8c369de7b8ba7a78d8f7ec23df76b300" - integrity sha512-09Zss2dE2z+T1D03IheqAFtK4UzQyX8nFPWx6jkwdYzGLXd5ie06A6ezS2fO6zJfEb/SpG6UocN2O1hfD+2urQ== +react-router@6.15.0: + version "6.15.0" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.15.0.tgz#bf2cb5a4a7ed57f074d4ea88db0d95033f39cac8" + integrity sha512-NIytlzvzLwJkCQj2HLefmeakxxWHWAP+02EGqWEZy+DgfHHKQMUoBBjUQLOtFInBMhWtb3hiUy6MfFgwLjXhqg== dependencies: - "@remix-run/router" "1.7.2" + "@remix-run/router" "1.8.0" react-scroll@^1.8.9: version "1.8.9" From c07e702c36b6d77dc41ad7a3b980224cd6e557b8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Aug 2023 21:52:43 +0000 Subject: [PATCH 197/435] Bump react-i18next from 13.0.3 to 13.1.1 Bumps [react-i18next](https://github.com/i18next/react-i18next) from 13.0.3 to 13.1.1. - [Changelog](https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md) - [Commits](https://github.com/i18next/react-i18next/compare/v13.0.3...v13.1.1) --- updated-dependencies: - dependency-name: react-i18next dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 212eb1802d..d7ac9e9bc8 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "react-dom": "^18.2.0", "react-error-boundary": "^4.0.11", "react-helmet": "^6.1.0", - "react-i18next": "^13.0.3", + "react-i18next": "^13.1.1", "react-qr-reader": "^2.2.1", "react-router-dom": "^6.15.0", "react-scroll": "^1.8.9", diff --git a/yarn.lock b/yarn.lock index 47d2e9022b..da2d66a43c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4995,10 +4995,10 @@ react-helmet@^6.1.0: react-fast-compare "^3.1.1" react-side-effect "^2.1.0" -react-i18next@^13.0.3: - version "13.0.3" - resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-13.0.3.tgz#8eedc5c2ab57f4641540778cc7373c8ed891523c" - integrity sha512-/t4kt4Y2o+21hbvx+o9zpVnmoiud7KLDncyZFGN0U6TGAWYaXdTsp/ytAHFcKKSAODg4noIMaOO3X7bMgCqLHw== +react-i18next@^13.1.1: + version "13.1.1" + resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-13.1.1.tgz#ab8105ff08f208f9e621064fd427c8c4cd1f74d5" + integrity sha512-V81cspLxZd37/ltd8Md5Lz99cfeqIn7vJCAUsCXuaTi1vRPKVr0dWq1DhVFUJBHpAi3PJsmFAR3/YstpP+CDYg== dependencies: "@babel/runtime" "^7.22.5" html-parse-stringify "^3.0.1" From a363ffed3a31009c4f8932726c2efdfe925878d3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Aug 2023 21:52:21 +0000 Subject: [PATCH 198/435] Bump @polkadotcloud/core-ui from 0.3.85 to 0.3.87 Bumps [@polkadotcloud/core-ui](https://github.com/paritytech/polkadot-dashboard-ui) from 0.3.85 to 0.3.87. - [Release notes](https://github.com/paritytech/polkadot-dashboard-ui/releases) - [Commits](https://github.com/paritytech/polkadot-dashboard-ui/commits) --- updated-dependencies: - dependency-name: "@polkadotcloud/core-ui" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index d7ac9e9bc8..d2aa3155dc 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "@polkadot/util": "^12.1.1", "@polkadot/util-crypto": "12.3.2", "@polkadotcloud/community": "0.1.10", - "@polkadotcloud/core-ui": "^0.3.85", + "@polkadotcloud/core-ui": "^0.3.87", "@polkadotcloud/react-odometer": "^0.1.19", "@polkadotcloud/themes": "^0.1.5", "@polkadotcloud/utils": "^0.2.23", diff --git a/yarn.lock b/yarn.lock index da2d66a43c..c231381b9e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1832,10 +1832,10 @@ resolved "https://registry.yarnpkg.com/@polkadotcloud/community/-/community-0.1.10.tgz#8755d448098bfab6ff35e9fc7bad3d5c7a81e641" integrity sha512-NKcm8+ZDnEk8TB27x3JSF7+vSC2wKDMmEFI6SyKIcHTS0WvY5uN8x6U5uwHQh/ESBNa824t+GYPLo7ZGTx3HWA== -"@polkadotcloud/core-ui@^0.3.85": - version "0.3.85" - resolved "https://registry.yarnpkg.com/@polkadotcloud/core-ui/-/core-ui-0.3.85.tgz#f63252a41f1fc1e031659b5503fce926b7e8e0cf" - integrity sha512-xCrK1filaU7z+oN4Ezlfq5Ra27tm1FbD0Z6ENRVduTkWLtn8fpzGlZF9JkfDd/bH59ngRtItxJ0XijiUotY5aw== +"@polkadotcloud/core-ui@^0.3.87": + version "0.3.87" + resolved "https://registry.yarnpkg.com/@polkadotcloud/core-ui/-/core-ui-0.3.87.tgz#6be227ef4821ed01e9d5a96f527fb082e979c0d6" + integrity sha512-0XGmkVZ33ej+CHBHddcg0i18ptR1SBLa7Id+w6Xr23qeCKsfl2D8fmVv8azxvVQeq6eJrYBHsMFGuopL5KXcwg== "@polkadotcloud/react-odometer@^0.1.19": version "0.1.19" From 80a3f3ea5a124ef43fd6b65eb0e9da61687f1da5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Aug 2023 21:58:36 +0000 Subject: [PATCH 199/435] Bump @polkadotcloud/themes from 0.1.5 to 0.1.6 Bumps [@polkadotcloud/themes](https://github.com/paritytech/polkadot-cloud) from 0.1.5 to 0.1.6. - [Release notes](https://github.com/paritytech/polkadot-cloud/releases) - [Commits](https://github.com/paritytech/polkadot-cloud/commits) --- updated-dependencies: - dependency-name: "@polkadotcloud/themes" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index d2aa3155dc..ded1b8be78 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "@polkadotcloud/community": "0.1.10", "@polkadotcloud/core-ui": "^0.3.87", "@polkadotcloud/react-odometer": "^0.1.19", - "@polkadotcloud/themes": "^0.1.5", + "@polkadotcloud/themes": "^0.1.6", "@polkadotcloud/utils": "^0.2.23", "@substrate/connect": "^0.7.31", "@zondax/ledger-substrate": "^0.41.1", diff --git a/yarn.lock b/yarn.lock index c231381b9e..5bfbf2eb6e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1842,10 +1842,10 @@ resolved "https://registry.yarnpkg.com/@polkadotcloud/react-odometer/-/react-odometer-0.1.19.tgz#3bd476c8d00fa011a14f7bc8b9b5227a26c9299a" integrity sha512-s7JJIIP4ZR37J+r478TrE5yCuO2niT1ATscTm/0wVLq/nFvCrJ63JZbCLl13I17ZotId41kRUb3vGxIYn4giMQ== -"@polkadotcloud/themes@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@polkadotcloud/themes/-/themes-0.1.5.tgz#20b68d0ba05c0147ee727754f98b6afa440df54b" - integrity sha512-yVCCitWwgph/x80QIAFGz3l/BiNN86cIou5IC9qtj9f2qLPYxcLd7NXzJ5ntoDdwpT+nDk0ewJRrRB34eJlDsA== +"@polkadotcloud/themes@^0.1.6": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@polkadotcloud/themes/-/themes-0.1.6.tgz#53d16a163a412111a43b82a2367f3a065a19eb7c" + integrity sha512-mC7tVtGt2iyXih8JsgKG9gr0XqvlkfgmdaoDKvRCxgTF/sbSgMJT32Rjk/H1jU2h6PlPYOhM/uGk6doeSSYEmQ== "@polkadotcloud/utils@^0.2.23": version "0.2.23" From d8c89c3f165addcad034fed58b5abc52756a0714 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Aug 2023 22:02:16 +0000 Subject: [PATCH 200/435] Bump gh-pages from 5.0.0 to 6.0.0 Bumps [gh-pages](https://github.com/tschaub/gh-pages) from 5.0.0 to 6.0.0. - [Release notes](https://github.com/tschaub/gh-pages/releases) - [Changelog](https://github.com/tschaub/gh-pages/blob/main/changelog.md) - [Commits](https://github.com/tschaub/gh-pages/compare/v5.0.0...v6.0.0) --- updated-dependencies: - dependency-name: gh-pages dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 43 +++++++++++-------------------------------- 2 files changed, 12 insertions(+), 33 deletions(-) diff --git a/package.json b/package.json index ded1b8be78..a0bad621bf 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ "eslint-plugin-prettier": "^5.0.0", "eslint-plugin-react": "^7.33.1", "eslint-plugin-unused-imports": "^3.0.0", - "gh-pages": "^5.0.0", + "gh-pages": "^6.0.0", "prettier": "^3.0.1", "prettier-plugin-organize-imports": "^3.2.3", "sass": "^1.65.1", diff --git a/yarn.lock b/yarn.lock index 5bfbf2eb6e..db843e35ac 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2839,10 +2839,10 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -commander@^2.18.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== +commander@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-11.0.0.tgz#43e19c25dbedc8256203538e8d7e9346877a6f67" + integrity sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ== commander@^4.0.1: version "4.1.1" @@ -3677,7 +3677,7 @@ framer-motion@^10.15.1: optionalDependencies: "@emotion/is-prop-valid" "^0.8.2" -fs-extra@^11.1.0: +fs-extra@^11.1.0, fs-extra@^11.1.1: version "11.1.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== @@ -3686,15 +3686,6 @@ fs-extra@^11.1.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - fs-readdir-recursive@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" @@ -3775,17 +3766,17 @@ get-tsconfig@^4.5.0: dependencies: resolve-pkg-maps "^1.0.0" -gh-pages@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/gh-pages/-/gh-pages-5.0.0.tgz#e0893272a0e33f0453e53a3c017c33b91ddd6394" - integrity sha512-Nqp1SjkPIB94Xw/3yYNTUL+G2dxlhjvv1zeN/4kMC1jfViTEqhtVz/Ba1zSXHuvXCN9ADNS1dN4r5/J/nZWEQQ== +gh-pages@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/gh-pages/-/gh-pages-6.0.0.tgz#3bb46ea13dc7cee306662db0d3f02bf05635cdc1" + integrity sha512-FXZWJRsvP/fK2HJGY+Di6FRNHvqFF6gOIELaopDjXXgjeOYSNURcuYwEO/6bwuq6koP5Lnkvnr5GViXzuOB89g== dependencies: async "^3.2.4" - commander "^2.18.0" + commander "^11.0.0" email-addresses "^5.0.0" filenamify "^4.3.0" find-cache-dir "^3.3.1" - fs-extra "^8.1.0" + fs-extra "^11.1.1" globby "^6.1.0" glob-parent@^5.1.2, glob-parent@~5.1.2: @@ -4275,13 +4266,6 @@ jsonc-parser@^3.2.0: resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== - optionalDependencies: - graceful-fs "^4.1.6" - jsonfile@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" @@ -5741,11 +5725,6 @@ unicode-property-aliases-ecmascript@^2.0.0: resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - universalify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" From 108ea46cf479eab8783c1ac1aec999587bd39c61 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Aug 2023 22:02:44 +0000 Subject: [PATCH 201/435] Bump eslint from 8.46.0 to 8.47.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.46.0 to 8.47.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.46.0...v8.47.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 38 +++++++++++++++++++------------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/package.json b/package.json index ded1b8be78..210d91a877 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "@typescript-eslint/eslint-plugin": "^6.3.0", "@typescript-eslint/parser": "^6.3.0", "@vitejs/plugin-react-swc": "^3.3.2", - "eslint": "^8.46.0", + "eslint": "^8.47.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb-typescript": "^17.1.0", "eslint-config-prettier": "^9.0.0", diff --git a/yarn.lock b/yarn.lock index 5bfbf2eb6e..cb3ce74b8a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1268,10 +1268,10 @@ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.6.2.tgz#1816b5f6948029c5eaacb0703b850ee0cb37d8f8" integrity sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw== -"@eslint/eslintrc@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.1.tgz#18d635e24ad35f7276e8a49d135c7d3ca6a46f93" - integrity sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA== +"@eslint/eslintrc@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.2.tgz#c6936b4b328c64496692f76944e755738be62396" + integrity sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -1283,10 +1283,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@^8.46.0": - version "8.46.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.46.0.tgz#3f7802972e8b6fe3f88ed1aabc74ec596c456db6" - integrity sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA== +"@eslint/js@^8.47.0": + version "8.47.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.47.0.tgz#5478fdf443ff8158f9de171c704ae45308696c7d" + integrity sha512-P6omY1zv5MItm93kLM8s2vr1HICJH8v0dvddDhysbIuZ+vcjOHg5Zbkf1mTkcmi2JA9oBG2anOkRnW8WJTS8Og== "@fortawesome/fontawesome-common-types@6.4.2": version "6.4.2" @@ -3411,20 +3411,20 @@ eslint-scope@^7.2.2: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.2: - version "3.4.2" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.2.tgz#8c2095440eca8c933bedcadf16fefa44dbe9ba5f" - integrity sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw== +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@^8.46.0: - version "8.46.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.46.0.tgz#a06a0ff6974e53e643acc42d1dcf2e7f797b3552" - integrity sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg== +eslint@^8.47.0: + version "8.47.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.47.0.tgz#c95f9b935463fb4fad7005e626c7621052e90806" + integrity sha512-spUQWrdPt+pRVP1TTJLmfRNJJHHZryFmptzcafwSvHsceV81djHOdnEeDmkdotZyLNjDhrOasNK8nikkoG1O8Q== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.1" - "@eslint/js" "^8.46.0" + "@eslint/eslintrc" "^2.1.2" + "@eslint/js" "^8.47.0" "@humanwhocodes/config-array" "^0.11.10" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" @@ -3435,7 +3435,7 @@ eslint@^8.46.0: doctrine "^3.0.0" escape-string-regexp "^4.0.0" eslint-scope "^7.2.2" - eslint-visitor-keys "^3.4.2" + eslint-visitor-keys "^3.4.3" espree "^9.6.1" esquery "^1.4.2" esutils "^2.0.2" From 8ae16541b48fac98c4a5a58cceed296d6994056e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Aug 2023 22:03:13 +0000 Subject: [PATCH 202/435] Bump react-i18next from 13.1.1 to 13.1.2 Bumps [react-i18next](https://github.com/i18next/react-i18next) from 13.1.1 to 13.1.2. - [Changelog](https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md) - [Commits](https://github.com/i18next/react-i18next/compare/v13.1.1...v13.1.2) --- updated-dependencies: - dependency-name: react-i18next dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 210d91a877..f00e68602d 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "react-dom": "^18.2.0", "react-error-boundary": "^4.0.11", "react-helmet": "^6.1.0", - "react-i18next": "^13.1.1", + "react-i18next": "^13.1.2", "react-qr-reader": "^2.2.1", "react-router-dom": "^6.15.0", "react-scroll": "^1.8.9", diff --git a/yarn.lock b/yarn.lock index cb3ce74b8a..d6cb883213 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4995,10 +4995,10 @@ react-helmet@^6.1.0: react-fast-compare "^3.1.1" react-side-effect "^2.1.0" -react-i18next@^13.1.1: - version "13.1.1" - resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-13.1.1.tgz#ab8105ff08f208f9e621064fd427c8c4cd1f74d5" - integrity sha512-V81cspLxZd37/ltd8Md5Lz99cfeqIn7vJCAUsCXuaTi1vRPKVr0dWq1DhVFUJBHpAi3PJsmFAR3/YstpP+CDYg== +react-i18next@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-13.1.2.tgz#dbb1b18c364295af2a9072333ee4e0b43cbc2da8" + integrity sha512-D/OJ/8ZQYscabsvbCAiOgvJq8W3feQF/VIV0to1w7V7UvrUE1IZ3hcalOckUYvKBd7BP3b8EPm+hop3J8sS+Mw== dependencies: "@babel/runtime" "^7.22.5" html-parse-stringify "^3.0.1" From 2366da406ac2ae73670134a4c315f0402e1a4c9b Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sat, 12 Aug 2023 10:26:56 +0700 Subject: [PATCH 203/435] styling fix --- src/library/ListItem/Wrappers.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/library/ListItem/Wrappers.ts b/src/library/ListItem/Wrappers.ts index 0188ce979b..520c492247 100644 --- a/src/library/ListItem/Wrappers.ts +++ b/src/library/ListItem/Wrappers.ts @@ -24,12 +24,12 @@ export const Wrapper = styled.div<{ $format?: string; $inModal?: boolean }>` ` box-shadow: none; border: none;`} + flex: 1; border-radius: 1rem; display: flex; flex-flow: row wrap; align-items: center; - flex: 1; overflow: hidden; position: absolute; top: 0px; @@ -37,6 +37,7 @@ export const Wrapper = styled.div<{ $format?: string; $inModal?: boolean }>` width: 100%; height: 100%; padding: 0; + .row { flex: 1 0 100%; height: 3.25rem; @@ -45,7 +46,7 @@ export const Wrapper = styled.div<{ $format?: string; $inModal?: boolean }>` padding: 0 0.5rem; &.status { - height: 2.75rem; + height: 2.5rem; } svg { margin: 0; @@ -60,9 +61,9 @@ export const Labels = styled.div` font-size: 0.85rem; align-items: center; overflow: hidden; - flex: 1 1 100%; + flex-grow: 1; padding: 0 0 0 0.25rem; - height: 2.75rem; + height: inherit; button { padding: 0 0.1rem; From 4eb4ae6f8b0141031524a378d3021c67424abfae Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sat, 12 Aug 2023 10:47:15 +0700 Subject: [PATCH 204/435] styling fix --- .../Overview/StakeStatus/Tips/Syncing.tsx | 4 +- .../Overview/StakeStatus/Tips/Wrappers.ts | 51 ++++++++++--------- 2 files changed, 30 insertions(+), 25 deletions(-) diff --git a/src/pages/Overview/StakeStatus/Tips/Syncing.tsx b/src/pages/Overview/StakeStatus/Tips/Syncing.tsx index 7c9b5b1992..810e8010de 100644 --- a/src/pages/Overview/StakeStatus/Tips/Syncing.tsx +++ b/src/pages/Overview/StakeStatus/Tips/Syncing.tsx @@ -33,7 +33,9 @@ export const Syncing = () => { </section> <section> <div className="desc"> - <h4>{t('module.oneMoment')}...</h4> + <button type="button" disabled> + <h4>{t('module.oneMoment')}...</h4> + </button> </div> </section> </ItemInnerWrapper> diff --git a/src/pages/Overview/StakeStatus/Tips/Wrappers.ts b/src/pages/Overview/StakeStatus/Tips/Wrappers.ts index a4d4ba7734..46a70ae664 100644 --- a/src/pages/Overview/StakeStatus/Tips/Wrappers.ts +++ b/src/pages/Overview/StakeStatus/Tips/Wrappers.ts @@ -74,35 +74,38 @@ export const ItemInnerWrapper = styled.div` } } - h4 { - color: var(--text-color-secondary); - transition: color var(--transition-duration); - font-family: InterSemiBold, sans-serif; + > button { position: absolute; top: 0; left: 0; - width: auto; height: 1.85rem; max-width: 100%; - padding: 0.15rem 1.75rem 0rem 0; - text-align: left; - font-size: 1.05rem; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - } - .more { - color: var(--text-color-secondary); - position: absolute; - right: 0.2rem; - top: 0.43rem; - display: flex; - align-items: center; - transition: all var(--transition-duration); - font-size: 1rem; - opacity: 0.5; - > svg { - margin-left: 0.4rem; + width: auto; + + > h4 { + color: var(--text-color-secondary); + transition: color var(--transition-duration); + font-family: InterSemiBold, sans-serif; + text-align: left; + font-size: 1.05rem; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + padding: 0.15rem 1.75rem 0rem 0; + width: 100%; + + > svg { + color: var(--text-color-secondary); + transition: all var(--transition-duration); + position: absolute; + right: 0.2rem; + top: 0.43rem; + display: flex; + align-items: center; + font-size: 1rem; + opacity: 0.5; + margin-left: 0.4rem; + } } } } From 13c0744514272bc2555f767da06f2caa86f9e321 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sat, 12 Aug 2023 10:47:31 +0700 Subject: [PATCH 205/435] rm className --- src/pages/Overview/StakeStatus/Tips/Items.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/pages/Overview/StakeStatus/Tips/Items.tsx b/src/pages/Overview/StakeStatus/Tips/Items.tsx index e8bba5fb95..ab14117221 100644 --- a/src/pages/Overview/StakeStatus/Tips/Items.tsx +++ b/src/pages/Overview/StakeStatus/Tips/Items.tsx @@ -114,7 +114,6 @@ const Item = ({ <FontAwesomeIcon icon={faExternalLinkAlt} transform="shrink-2" - className="more" /> </h4> </button> From 9abb457667b55b62b84e83090d792aebc04d9d5e Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sat, 12 Aug 2023 11:02:27 +0700 Subject: [PATCH 206/435] bump core-ui --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index b89d5f893c..078aca3327 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "@polkadot/util": "^12.1.1", "@polkadot/util-crypto": "12.3.2", "@polkadotcloud/community": "0.1.10", - "@polkadotcloud/core-ui": "^0.3.87", + "@polkadotcloud/core-ui": "^0.3.88", "@polkadotcloud/react-odometer": "^0.1.19", "@polkadotcloud/themes": "^0.1.6", "@polkadotcloud/utils": "^0.2.23", diff --git a/yarn.lock b/yarn.lock index 0468da3411..022bc3627f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1832,10 +1832,10 @@ resolved "https://registry.yarnpkg.com/@polkadotcloud/community/-/community-0.1.10.tgz#8755d448098bfab6ff35e9fc7bad3d5c7a81e641" integrity sha512-NKcm8+ZDnEk8TB27x3JSF7+vSC2wKDMmEFI6SyKIcHTS0WvY5uN8x6U5uwHQh/ESBNa824t+GYPLo7ZGTx3HWA== -"@polkadotcloud/core-ui@^0.3.87": - version "0.3.87" - resolved "https://registry.yarnpkg.com/@polkadotcloud/core-ui/-/core-ui-0.3.87.tgz#6be227ef4821ed01e9d5a96f527fb082e979c0d6" - integrity sha512-0XGmkVZ33ej+CHBHddcg0i18ptR1SBLa7Id+w6Xr23qeCKsfl2D8fmVv8azxvVQeq6eJrYBHsMFGuopL5KXcwg== +"@polkadotcloud/core-ui@^0.3.88": + version "0.3.88" + resolved "https://registry.npmjs.org/@polkadotcloud/core-ui/-/core-ui-0.3.88.tgz#d38eb1bdf2a6266500217b1a90633c6db9b49065" + integrity sha512-u29454xvss0GR0QRgeamqznBHpb0ZmhZVdchAF7T+SfVtU+SJ4NijFd/WD5gjxS13fIUQ6uqATFAkIncC1qz5A== "@polkadotcloud/react-odometer@^0.1.19": version "0.1.19" From b306196e4041517ef605bc118b76c078b21e5382 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Aug 2023 21:51:10 +0000 Subject: [PATCH 207/435] Bump @typescript-eslint/parser from 6.3.0 to 6.4.0 Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 6.3.0 to 6.4.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.4.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 52 +++++++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 44 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 078aca3327..d6f2c5c02b 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "@types/react-qr-reader": "^2.1.4", "@types/react-scroll": "^1.8.6", "@typescript-eslint/eslint-plugin": "^6.3.0", - "@typescript-eslint/parser": "^6.3.0", + "@typescript-eslint/parser": "^6.4.0", "@vitejs/plugin-react-swc": "^3.3.2", "eslint": "^8.47.0", "eslint-config-airbnb": "^19.0.4", diff --git a/yarn.lock b/yarn.lock index 022bc3627f..1e651d578d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2198,15 +2198,15 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/parser@^6.3.0": - version "6.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.3.0.tgz#359684c443f4f848db3c4f14674f544f169c8f46" - integrity sha512-ibP+y2Gr6p0qsUkhs7InMdXrwldjxZw66wpcQq9/PzAroM45wdwyu81T+7RibNCh8oc0AgrsyCwJByncY0Ongg== - dependencies: - "@typescript-eslint/scope-manager" "6.3.0" - "@typescript-eslint/types" "6.3.0" - "@typescript-eslint/typescript-estree" "6.3.0" - "@typescript-eslint/visitor-keys" "6.3.0" +"@typescript-eslint/parser@^6.4.0": + version "6.4.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.4.0.tgz#47e7c6e22ff1248e8675d95f488890484de67600" + integrity sha512-I1Ah1irl033uxjxO9Xql7+biL3YD7w9IU8zF+xlzD/YxY6a4b7DYA08PXUUCbm2sEljwJF6ERFy2kTGAGcNilg== + dependencies: + "@typescript-eslint/scope-manager" "6.4.0" + "@typescript-eslint/types" "6.4.0" + "@typescript-eslint/typescript-estree" "6.4.0" + "@typescript-eslint/visitor-keys" "6.4.0" debug "^4.3.4" "@typescript-eslint/scope-manager@6.3.0": @@ -2217,6 +2217,14 @@ "@typescript-eslint/types" "6.3.0" "@typescript-eslint/visitor-keys" "6.3.0" +"@typescript-eslint/scope-manager@6.4.0": + version "6.4.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.4.0.tgz#3048e4262ba3eafa4e2e69b08912d9037ec646ae" + integrity sha512-TUS7vaKkPWDVvl7GDNHFQMsMruD+zhkd3SdVW0d7b+7Zo+bd/hXJQ8nsiUZMi1jloWo6c9qt3B7Sqo+flC1nig== + dependencies: + "@typescript-eslint/types" "6.4.0" + "@typescript-eslint/visitor-keys" "6.4.0" + "@typescript-eslint/type-utils@6.3.0": version "6.3.0" resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.3.0.tgz#3bf89ccd36621ddec1b7f8246afe467c67adc247" @@ -2232,6 +2240,11 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.3.0.tgz#84517f1427923e714b8418981e493b6635ab4c9d" integrity sha512-K6TZOvfVyc7MO9j60MkRNWyFSf86IbOatTKGrpTQnzarDZPYPVy0oe3myTMq7VjhfsUAbNUW8I5s+2lZvtx1gg== +"@typescript-eslint/types@6.4.0": + version "6.4.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.4.0.tgz#5b109a59a805f0d8d375895e42d9e5f0037f66ee" + integrity sha512-+FV9kVFrS7w78YtzkIsNSoYsnOtrYVnKWSTVXoL1761CsCRv5wpDOINgsXpxD67YCLZtVQekDDyaxfjVWUJmmg== + "@typescript-eslint/typescript-estree@6.3.0": version "6.3.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.3.0.tgz#20e1e10e2f51cdb9e19a2751215cac92c003643c" @@ -2245,6 +2258,19 @@ semver "^7.5.4" ts-api-utils "^1.0.1" +"@typescript-eslint/typescript-estree@6.4.0": + version "6.4.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.4.0.tgz#3c58d20632db93fec3d6ab902acbedf593d37276" + integrity sha512-iDPJArf/K2sxvjOR6skeUCNgHR/tCQXBsa+ee1/clRKr3olZjZ/dSkXPZjG6YkPtnW6p5D1egeEPMCW6Gn4yLA== + dependencies: + "@typescript-eslint/types" "6.4.0" + "@typescript-eslint/visitor-keys" "6.4.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.5.4" + ts-api-utils "^1.0.1" + "@typescript-eslint/utils@6.3.0": version "6.3.0" resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.3.0.tgz#0898c5e374372c2092ca1b979ea7ee9cc020ce84" @@ -2266,6 +2292,14 @@ "@typescript-eslint/types" "6.3.0" eslint-visitor-keys "^3.4.1" +"@typescript-eslint/visitor-keys@6.4.0": + version "6.4.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.4.0.tgz#96a426cdb1add28274abd7a34aefe27f8b7d51ef" + integrity sha512-yJSfyT+uJm+JRDWYRYdCm2i+pmvXJSMtPR9Cq5/XQs4QIgNoLcoRtDdzsLbLsFM/c6um6ohQkg/MLxWvoIndJA== + dependencies: + "@typescript-eslint/types" "6.4.0" + eslint-visitor-keys "^3.4.1" + "@vitejs/plugin-react-swc@^3.3.2": version "3.3.2" resolved "https://registry.yarnpkg.com/@vitejs/plugin-react-swc/-/plugin-react-swc-3.3.2.tgz#34a82c1728066f48a86dfecb2f15df60f89207fb" From 4f2a71d90a88173575b83555472062c8ae690161 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Aug 2023 21:52:09 +0000 Subject: [PATCH 208/435] Bump framer-motion from 10.15.1 to 10.15.2 Bumps [framer-motion](https://github.com/framer/motion) from 10.15.1 to 10.15.2. - [Changelog](https://github.com/framer/motion/blob/main/CHANGELOG.md) - [Commits](https://github.com/framer/motion/compare/v10.15.1...v10.15.2) --- updated-dependencies: - dependency-name: framer-motion dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index d6f2c5c02b..bf82d17b1d 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "buffer": "^6.0.3", "chart.js": "^4.3.3", "date-fns": "^2.29.3", - "framer-motion": "^10.15.1", + "framer-motion": "^10.15.2", "i18next": "^23.4.4", "i18next-browser-languagedetector": "^7.1.0", "lodash.throttle": "^4.1.1", diff --git a/yarn.lock b/yarn.lock index 1e651d578d..ec7a5d0911 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3702,10 +3702,10 @@ formdata-polyfill@^4.0.10: dependencies: fetch-blob "^3.1.2" -framer-motion@^10.15.1: - version "10.15.1" - resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-10.15.1.tgz#c80ba7afc90fa0d5ac2dad9a077cc1bf6e03692a" - integrity sha512-6avJj/Uftblw0fMmo6jDHkKRH4TBdkMX/FiyR3G/hFe3hQHE4BUNJCqlMPKg9EzfI5jyqDOwO5oDnU+bW5y0eg== +framer-motion@^10.15.2: + version "10.15.2" + resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-10.15.2.tgz#703e31b78b3ca06ca9fb41e6da89c1c342fc02e8" + integrity sha512-z14GYH4WQXnuTgggwf0qyX0vo98PDE+dw21F7aLzUqEcrsmfLovy4jPiA82Cp/X0juWuEHte7rJGOjds9GAQFA== dependencies: tslib "^2.4.0" optionalDependencies: From 0c55d25853ccc3abbfae5179e51e8d7d55526165 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Aug 2023 22:07:46 +0000 Subject: [PATCH 209/435] Bump @typescript-eslint/eslint-plugin from 6.3.0 to 6.4.0 Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 6.3.0 to 6.4.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.4.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 82 ++++++++++++++-------------------------------------- 2 files changed, 22 insertions(+), 62 deletions(-) diff --git a/package.json b/package.json index bf82d17b1d..15f1ec86d1 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "@types/react-helmet": "^6.1.6", "@types/react-qr-reader": "^2.1.4", "@types/react-scroll": "^1.8.6", - "@typescript-eslint/eslint-plugin": "^6.3.0", + "@typescript-eslint/eslint-plugin": "^6.4.0", "@typescript-eslint/parser": "^6.4.0", "@vitejs/plugin-react-swc": "^3.3.2", "eslint": "^8.47.0", diff --git a/yarn.lock b/yarn.lock index ec7a5d0911..752c28e0d8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2180,21 +2180,20 @@ resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.3.tgz#a136f83b0758698df454e328759dbd3d44555311" integrity sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g== -"@typescript-eslint/eslint-plugin@^6.3.0": - version "6.3.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.3.0.tgz#e751e148aab7ccaf8a7bfd370f7ce9e6bdd1f3f4" - integrity sha512-IZYjYZ0ifGSLZbwMqIip/nOamFiWJ9AH+T/GYNZBWkVcyNQOFGtSMoWV7RvY4poYCMZ/4lHzNl796WOSNxmk8A== +"@typescript-eslint/eslint-plugin@^6.4.0": + version "6.4.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.4.0.tgz#53428b616f7d80fe879f45a08f11cc0f0b62cf13" + integrity sha512-62o2Hmc7Gs3p8SLfbXcipjWAa6qk2wZGChXG2JbBtYpwSRmti/9KHLqfbLs9uDigOexG+3PaQ9G2g3201FWLKg== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.3.0" - "@typescript-eslint/type-utils" "6.3.0" - "@typescript-eslint/utils" "6.3.0" - "@typescript-eslint/visitor-keys" "6.3.0" + "@typescript-eslint/scope-manager" "6.4.0" + "@typescript-eslint/type-utils" "6.4.0" + "@typescript-eslint/utils" "6.4.0" + "@typescript-eslint/visitor-keys" "6.4.0" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" natural-compare "^1.4.0" - natural-compare-lite "^1.4.0" semver "^7.5.4" ts-api-utils "^1.0.1" @@ -2209,14 +2208,6 @@ "@typescript-eslint/visitor-keys" "6.4.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.3.0": - version "6.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.3.0.tgz#6b74e338c4b88d5e1dfc1a28c570dd5cf8c86b09" - integrity sha512-WlNFgBEuGu74ahrXzgefiz/QlVb+qg8KDTpknKwR7hMH+lQygWyx0CQFoUmMn1zDkQjTBBIn75IxtWss77iBIQ== - dependencies: - "@typescript-eslint/types" "6.3.0" - "@typescript-eslint/visitor-keys" "6.3.0" - "@typescript-eslint/scope-manager@6.4.0": version "6.4.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.4.0.tgz#3048e4262ba3eafa4e2e69b08912d9037ec646ae" @@ -2225,39 +2216,21 @@ "@typescript-eslint/types" "6.4.0" "@typescript-eslint/visitor-keys" "6.4.0" -"@typescript-eslint/type-utils@6.3.0": - version "6.3.0" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.3.0.tgz#3bf89ccd36621ddec1b7f8246afe467c67adc247" - integrity sha512-7Oj+1ox1T2Yc8PKpBvOKWhoI/4rWFd1j7FA/rPE0lbBPXTKjdbtC+7Ev0SeBjEKkIhKWVeZSP+mR7y1Db1CdfQ== +"@typescript-eslint/type-utils@6.4.0": + version "6.4.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.4.0.tgz#c8ac92716ed6a9d5443aa3e342910355b0796ba0" + integrity sha512-TvqrUFFyGY0cX3WgDHcdl2/mMCWCDv/0thTtx/ODMY1QhEiyFtv/OlLaNIiYLwRpAxAtOLOY9SUf1H3Q3dlwAg== dependencies: - "@typescript-eslint/typescript-estree" "6.3.0" - "@typescript-eslint/utils" "6.3.0" + "@typescript-eslint/typescript-estree" "6.4.0" + "@typescript-eslint/utils" "6.4.0" debug "^4.3.4" ts-api-utils "^1.0.1" -"@typescript-eslint/types@6.3.0": - version "6.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.3.0.tgz#84517f1427923e714b8418981e493b6635ab4c9d" - integrity sha512-K6TZOvfVyc7MO9j60MkRNWyFSf86IbOatTKGrpTQnzarDZPYPVy0oe3myTMq7VjhfsUAbNUW8I5s+2lZvtx1gg== - "@typescript-eslint/types@6.4.0": version "6.4.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.4.0.tgz#5b109a59a805f0d8d375895e42d9e5f0037f66ee" integrity sha512-+FV9kVFrS7w78YtzkIsNSoYsnOtrYVnKWSTVXoL1761CsCRv5wpDOINgsXpxD67YCLZtVQekDDyaxfjVWUJmmg== -"@typescript-eslint/typescript-estree@6.3.0": - version "6.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.3.0.tgz#20e1e10e2f51cdb9e19a2751215cac92c003643c" - integrity sha512-Xh4NVDaC4eYKY4O3QGPuQNp5NxBAlEvNQYOqJquR2MePNxO11E5K3t5x4M4Mx53IZvtpW+mBxIT0s274fLUocg== - dependencies: - "@typescript-eslint/types" "6.3.0" - "@typescript-eslint/visitor-keys" "6.3.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" - "@typescript-eslint/typescript-estree@6.4.0": version "6.4.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.4.0.tgz#3c58d20632db93fec3d6ab902acbedf593d37276" @@ -2271,27 +2244,19 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.3.0": - version "6.3.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.3.0.tgz#0898c5e374372c2092ca1b979ea7ee9cc020ce84" - integrity sha512-hLLg3BZE07XHnpzglNBG8P/IXq/ZVXraEbgY7FM0Cnc1ehM8RMdn9mat3LubJ3KBeYXXPxV1nugWbQPjGeJk6Q== +"@typescript-eslint/utils@6.4.0": + version "6.4.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.4.0.tgz#23e996b693603c5924b1fbb733cc73196256baa5" + integrity sha512-BvvwryBQpECPGo8PwF/y/q+yacg8Hn/2XS+DqL/oRsOPK+RPt29h5Ui5dqOKHDlbXrAeHUTnyG3wZA0KTDxRZw== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.3.0" - "@typescript-eslint/types" "6.3.0" - "@typescript-eslint/typescript-estree" "6.3.0" + "@typescript-eslint/scope-manager" "6.4.0" + "@typescript-eslint/types" "6.4.0" + "@typescript-eslint/typescript-estree" "6.4.0" semver "^7.5.4" -"@typescript-eslint/visitor-keys@6.3.0": - version "6.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.3.0.tgz#8d09aa3e389ae0971426124c155ac289afbe450a" - integrity sha512-kEhRRj7HnvaSjux1J9+7dBen15CdWmDnwrpyiHsFX6Qx2iW5LOBUgNefOFeh2PjWPlNwN8TOn6+4eBU3J/gupw== - dependencies: - "@typescript-eslint/types" "6.3.0" - eslint-visitor-keys "^3.4.1" - "@typescript-eslint/visitor-keys@6.4.0": version "6.4.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.4.0.tgz#96a426cdb1add28274abd7a34aefe27f8b7d51ef" @@ -4557,11 +4522,6 @@ nanoid@^3.3.6: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== -natural-compare-lite@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" - integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" From 86d984db462f718e2ce3a9c803e885b97194fda8 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 15 Aug 2023 11:27:59 +0700 Subject: [PATCH 210/435] add handleApiSwitch, comments, fix --- src/contexts/Api/index.tsx | 9 ++++++++- src/pages/Pools/Home/index.tsx | 4 ++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/contexts/Api/index.tsx b/src/contexts/Api/index.tsx index 0c8a7037ab..886f047412 100644 --- a/src/contexts/Api/index.tsx +++ b/src/contexts/Api/index.tsx @@ -138,11 +138,18 @@ export const APIProvider = ({ children }: { children: React.ReactNode }) => { connectProvider(network.name, newProvider); }; + // Handle a switch in API. + const handleApiSwitch = () => { + setApi(null); + setConsts(defaults.consts); + setchainState(undefined); + }; // Dynamically load `Sc` when user opts to use light client. - useEffectIgnoreInitial(() => { + useEffect(() => { let cancel: () => void | undefined; if (isLightClient) { + handleApiSwitch(); setApiStatus('connecting'); const ScPromise = makeCancelable(import('@substrate/connect')); diff --git a/src/pages/Pools/Home/index.tsx b/src/pages/Pools/Home/index.tsx index 7a208253b6..1c7691e0ac 100644 --- a/src/pages/Pools/Home/index.tsx +++ b/src/pages/Pools/Home/index.tsx @@ -55,12 +55,16 @@ export const HomeInner = () => { setMemberCount(0); return; } + // If `Subscan` plugin is enabled, fetch member count directly from the API. if (pluginEnabled('subscan') && !fetchingMemberCount.current) { fetchingMemberCount.current = true; const poolDetails = await fetchPoolDetails(selectedActivePool.id); fetchingMemberCount.current = false; setMemberCount(poolDetails?.member_count || 0); + return; } + // If no plugin available, fetch all pool members from RPC and filter them to determine current + // pool member count. NOTE: Expensive operation. setMemberCount( getMembersOfPoolFromNode(selectedActivePool?.id ?? 0).length ); From 3e6f0c740d4d905ed533361bb1620b5996cf4cec Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 15 Aug 2023 11:57:07 +0700 Subject: [PATCH 211/435] tidy up, use importLocalAccounts --- src/contexts/Connect/Utils.ts | 15 ++-- src/contexts/Connect/index.tsx | 124 +++++++++++------------------- src/contexts/Extensions/index.tsx | 11 ++- 3 files changed, 56 insertions(+), 94 deletions(-) diff --git a/src/contexts/Connect/Utils.ts b/src/contexts/Connect/Utils.ts index 530c7fe608..9657fb5c35 100644 --- a/src/contexts/Connect/Utils.ts +++ b/src/contexts/Connect/Utils.ts @@ -4,7 +4,7 @@ import Keyring from '@polkadot/keyring'; import { localStorageOrDefault } from '@polkadotcloud/utils'; import type { ExtensionAccount } from 'contexts/Extensions/types'; -import type { Network } from 'types'; +import type { Network, NetworkName } from 'types'; import type { ExternalAccount } from './types'; // extension utils @@ -72,17 +72,14 @@ export const getActiveAccountLocal = (network: Network) => { // gets local external accounts, formatting their addresses // using active network ss58 format. -export const getLocalExternalAccounts = ( - network: Network, - activeNetworkOnly = false -) => { +export const getLocalExternalAccounts = (network?: NetworkName) => { let localAccounts = localStorageOrDefault<ExternalAccount[]>( 'external_accounts', [], true ) as ExternalAccount[]; - if (activeNetworkOnly) { - localAccounts = localAccounts.filter((l) => l.network === network.name); + if (network) { + localAccounts = localAccounts.filter((l) => l.network === network); } return localAccounts; }; @@ -92,7 +89,7 @@ export const getInExternalAccounts = ( accounts: ExtensionAccount[], network: Network ) => { - const localExternalAccounts = getLocalExternalAccounts(network, true); + const localExternalAccounts = getLocalExternalAccounts(network.name); return ( localExternalAccounts.filter( @@ -106,7 +103,7 @@ export const removeLocalExternalAccounts = ( network: Network, accounts: ExternalAccount[] ) => { - let localExternalAccounts = getLocalExternalAccounts(network, true); + let localExternalAccounts = getLocalExternalAccounts(network.name); localExternalAccounts = localExternalAccounts.filter( (a) => accounts.find( diff --git a/src/contexts/Connect/index.tsx b/src/contexts/Connect/index.tsx index 79bd6e07cc..89abdabc7d 100644 --- a/src/contexts/Connect/index.tsx +++ b/src/contexts/Connect/index.tsx @@ -26,7 +26,7 @@ import { getLocalLedgerAccounts, getLocalVaultAccounts, } from 'contexts/Hardware/Utils'; -import type { AnyApi, MaybeAccount } from 'types'; +import type { AnyApi, MaybeAccount, NetworkName } from 'types'; import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import { useImportExtension } from './Hooks/useImportExtension'; import { @@ -110,7 +110,7 @@ export const ConnectProvider = ({ // account import process. if (!checkingInjectedWeb3) { // unsubscribe from all accounts and reset state - unsubscribeAll(); + unsubscribe(); setStateWithRef(null, setActiveAccountState, activeAccountRef); setStateWithRef([], setAccounts, accountsRef); setStateWithRef([], setExtensionsInitialised, extensionsInitialisedRef); @@ -133,52 +133,48 @@ export const ConnectProvider = ({ } } } - return () => { - unsubscribeAll(); - }; + return () => unsubscribe(); }, [extensions?.length, network, checkingInjectedWeb3]); - // once initialised extensions equal total extensions present in - // `injectedWeb3`, mark extensions as fetched + // Once initialised extensions equal total extensions present in `injectedWeb3`, mark extensions + // as fetched. useEffectIgnoreInitial(() => { - if (!checkingInjectedWeb3) { - if (extensionsInitialisedRef.current.length === extensions?.length || 0) { - setExtensionsFetched(true); - } + if ( + (!checkingInjectedWeb3 && + extensionsInitialisedRef.current.length === extensions?.length) || + 0 + ) { + setExtensionsFetched(true); } }, [checkingInjectedWeb3, extensionsInitialisedRef.current]); - // once extensions are fully initialised, fetch any external accounts present - // in localStorage. + // Once extensions are fully initialised, fetch accounts from other sources. useEffectIgnoreInitial(() => { if (extensionsFetched) { - importVaultAccounts(); - importLedgerAccounts(); - importExternalAccounts(); - // Finally, signal that initial accounts have finished being fetched. + // Fetch accounts from supported hardware wallets. + importLocalAccounts(getLocalVaultAccounts); + importLocalAccounts(getLocalLedgerAccounts); hardwareInitialisedRef.current = true; + // Finally, fetch any read-only accounts that have been added by `system` or `user`. + importExternalAccounts(); } }, [extensionsFetched]); - // account fetching complete, mark accounts as initialised. + // Account fetching complete, mark accounts as initialised. Does not include read only accounts. useEffectIgnoreInitial(() => { if (extensionsFetched && hardwareInitialisedRef.current === true) { accountsInitialisedRef.current = true; } }, [extensionsFetched, hardwareInitialisedRef.current]); - /* - * Unsubscrbe all account subscriptions - */ - const unsubscribeAll = () => { + // Unsubscrbe all account subscriptions. + const unsubscribe = () => { Object.values(unsubs.current).forEach((unsub) => { unsub(); }); }; - /* - * Unsubscrbe from some account subscriptions and update the resulting state. - */ + // Unsubscrbe from some account subscriptions and update the resulting state. const forgetAccounts = (forget: ImportedAccount[]) => { if (!forget.length) return; @@ -190,29 +186,27 @@ export const ConnectProvider = ({ } } - // if active account is being forgotten, disconnect - const activeAccountUnsub = forget.find( - (a: ImportedAccount) => a.address === activeAccountRef.current - ); - - if (activeAccountUnsub !== undefined) { + // If the currently active account is being forgotten, disconnect. + if ( + forget.find((a) => a.address === activeAccountRef.current) !== undefined + ) { localStorage.removeItem(`${network.name}_active_account`); setStateWithRef(null, setActiveAccount, activeAccountRef); } - // get any external accounts and remove from localStorage - const externalToForget = forget.filter( - (i: AnyApi) => 'network' in i - ) as ExternalAccount[]; - + // Get any external accounts and remove from localStorage. + const externalToForget = forget.filter((i) => 'network' in i); if (externalToForget.length) { - removeLocalExternalAccounts(network, externalToForget); + removeLocalExternalAccounts( + network, + externalToForget as ExternalAccount[] + ); } - // update accounts. + // Remove forgotten accounts from state. setStateWithRef( [...accountsRef.current].filter( - (a) => forget.find((e) => e.address === a.address) === undefined + (a) => forget.find(({ address }) => address === a.address) === undefined ), setAccounts, accountsRef @@ -235,13 +229,15 @@ export const ConnectProvider = ({ ); }; - /* importLedgerAccounts - * Checks previously added Ledger accounts from localStorage and adds them to + /* Checks `localStorage` for previously added accounts from the provided source, and adds them to * `accounts` state. if local active account is present, it will also be assigned as active. * Accounts are ignored if they are already imported through an extension. */ - const importLedgerAccounts = () => { - // import any local external accounts - let localAccounts = getLocalLedgerAccounts(network.name); + const importLocalAccounts = ( + getter: (n: NetworkName) => ImportedAccount[] + ) => { + // Get accounts from provided `getter` function. The resulting array of accounts must contain an + // `address` field. + let localAccounts = getter(network.name); if (localAccounts.length) { const activeAccountInSet = @@ -249,48 +245,18 @@ export const ConnectProvider = ({ ({ address }) => address === getActiveAccountLocal(network) ) ?? null; - // remove already-imported accounts + // remove already-imported accounts. localAccounts = localAccounts.filter( (l) => accountsRef.current.find(({ address }) => address === l.address) === undefined ); - // set active account for network - if (activeAccountInSet) { - connectToAccount(activeAccountInSet); - } - // add Ledger accounts to imported - addToAccounts(localAccounts); - } - }; - - /* importVaultAccounts - * Checks previously added Polkadot Vault accounts from localStorage and adds them to - * `accounts` state. if local active account is present, it will also be assigned as active. - * Accounts are ignored if they are already imported through an extension. */ - const importVaultAccounts = () => { - // import any local external accounts - let localAccounts = getLocalVaultAccounts(network.name); - - if (localAccounts.length) { - const activeAccountInSet = - localAccounts.find( - ({ address }) => address === getActiveAccountLocal(network) - ) ?? null; - - // remove already-imported accounts - localAccounts = localAccounts.filter( - (l) => - accountsRef.current.find(({ address }) => address === l.address) === - undefined - ); - - // set active account for network + // set active account for network. if (activeAccountInSet) { connectToAccount(activeAccountInSet); } - // add Ledger accounts to imported + // add accounts to imported. addToAccounts(localAccounts); } }; @@ -305,7 +271,7 @@ export const ConnectProvider = ({ */ const importExternalAccounts = () => { // import any local external accounts - let localAccounts = getLocalExternalAccounts(network, true); + let localAccounts = getLocalExternalAccounts(network.name); if (localAccounts.length) { const activeAccountInSet = @@ -538,7 +504,7 @@ export const ConnectProvider = ({ }; // get all external accounts from localStorage. - const localExternalAccounts = getLocalExternalAccounts(network, false); + const localExternalAccounts = getLocalExternalAccounts(); const existsLocal = localExternalAccounts.find( (l) => l.address === address && l.network === network.name ); diff --git a/src/contexts/Extensions/index.tsx b/src/contexts/Extensions/index.tsx index 96c859c6ea..942102760a 100644 --- a/src/contexts/Extensions/index.tsx +++ b/src/contexts/Extensions/index.tsx @@ -48,7 +48,8 @@ export const ExtensionsProvider = ({ let injectedWeb3Interval: ReturnType<typeof setInterval>; let injectCounter = 0; - // handle completed interval check for `injectedWeb3`. + // Handle completed interval check for `injectedWeb3`. If `injectedWeb3` is present, get installed + // extensions and add to state. const handleClearInterval = (hasInjectedWeb3: boolean) => { clearInterval(injectedWeb3Interval); if (hasInjectedWeb3) { @@ -57,8 +58,8 @@ export const ExtensionsProvider = ({ setStateWithRef(false, setCheckingInjectedWeb3, checkingInjectedWeb3Ref); }; - // sets an interval to listen to `window` until the - // `injectedWeb3` property is present. + // Sets an interval to listen to `window` until the `injectedWeb3` property is present. Cancels + // after 500 * 10 milliseconds. useEffect(() => { if (!intervalInitialisedRef.current) { intervalInitialisedRef.current = true; @@ -75,9 +76,7 @@ export const ExtensionsProvider = ({ } }, 500); } - return () => { - clearInterval(injectedWeb3Interval); - }; + return () => clearInterval(injectedWeb3Interval); }); const setExtensionStatus = (id: string, status: string) => { From 943e9822b8dab139bbf50caad3186424fd74b376 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 15 Aug 2023 11:58:52 +0700 Subject: [PATCH 212/435] getInExternalAccounts to take name --- src/contexts/Connect/Hooks/useImportExtension.tsx | 2 +- src/contexts/Connect/Utils.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/contexts/Connect/Hooks/useImportExtension.tsx b/src/contexts/Connect/Hooks/useImportExtension.tsx index dd0e3b206f..71636cc901 100644 --- a/src/contexts/Connect/Hooks/useImportExtension.tsx +++ b/src/contexts/Connect/Hooks/useImportExtension.tsx @@ -77,7 +77,7 @@ export const useImportExtension = () => { }); // remove newAccounts from local external accounts if present - const inExternal = getInExternalAccounts(newAccounts, network); + const inExternal = getInExternalAccounts(newAccounts, network.name); forget(inExternal); // find any accounts that have been removed from this extension diff --git a/src/contexts/Connect/Utils.ts b/src/contexts/Connect/Utils.ts index 9657fb5c35..d567809170 100644 --- a/src/contexts/Connect/Utils.ts +++ b/src/contexts/Connect/Utils.ts @@ -87,9 +87,9 @@ export const getLocalExternalAccounts = (network?: NetworkName) => { // gets accounts that exist in local `external_accounts` export const getInExternalAccounts = ( accounts: ExtensionAccount[], - network: Network + network: NetworkName ) => { - const localExternalAccounts = getLocalExternalAccounts(network.name); + const localExternalAccounts = getLocalExternalAccounts(network); return ( localExternalAccounts.filter( From 7bb89f2e08b2da357116088722452f647721d5d9 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 15 Aug 2023 11:59:15 +0700 Subject: [PATCH 213/435] rm uneeded casting --- src/contexts/Connect/Hooks/useImportExtension.tsx | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/contexts/Connect/Hooks/useImportExtension.tsx b/src/contexts/Connect/Hooks/useImportExtension.tsx index 71636cc901..6aaedd3c8b 100644 --- a/src/contexts/Connect/Hooks/useImportExtension.tsx +++ b/src/contexts/Connect/Hooks/useImportExtension.tsx @@ -65,12 +65,10 @@ export const useImportExtension = () => { keyring.setSS58Format(network.ss58); // remove accounts that do not contain correctly formatted addresses. - newAccounts = newAccounts.filter((i: ExtensionAccount) => - isValidAddress(i.address) - ); + newAccounts = newAccounts.filter((i) => isValidAddress(i.address)); // reformat addresses to ensure correct ss58 format - newAccounts.forEach(async (account: ExtensionAccount) => { + newAccounts.forEach(async (account) => { const { address } = keyring.addFromAddress(account.address); account.address = address; return account; From 4faead4a307cf75585aaa36380cbbf14e3ffb9c0 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 15 Aug 2023 12:02:37 +0700 Subject: [PATCH 214/435] rm importExternalAccounts --- src/contexts/Connect/index.tsx | 36 +--------------------------------- 1 file changed, 1 insertion(+), 35 deletions(-) diff --git a/src/contexts/Connect/index.tsx b/src/contexts/Connect/index.tsx index 89abdabc7d..48a6f456e7 100644 --- a/src/contexts/Connect/index.tsx +++ b/src/contexts/Connect/index.tsx @@ -156,7 +156,7 @@ export const ConnectProvider = ({ importLocalAccounts(getLocalLedgerAccounts); hardwareInitialisedRef.current = true; // Finally, fetch any read-only accounts that have been added by `system` or `user`. - importExternalAccounts(); + importLocalAccounts(getLocalExternalAccounts); } }, [extensionsFetched]); @@ -261,40 +261,6 @@ export const ConnectProvider = ({ } }; - /* importExternalAccounts - * checks previously imported read-only accounts from - * localStorage and adds them to `accounts` state. - * if local active account is present, it will also be - * assigned as active. - * Should be called AFTER extension accounts are imported, as - * to not replace an extension account by an external account. - */ - const importExternalAccounts = () => { - // import any local external accounts - let localAccounts = getLocalExternalAccounts(network.name); - - if (localAccounts.length) { - const activeAccountInSet = - localAccounts.find( - ({ address }) => address === getActiveAccountLocal(network) - ) ?? null; - - // remove already-imported accounts - localAccounts = localAccounts.filter( - (l) => - accountsRef.current.find(({ address }) => address === l.address) === - undefined - ); - - // set active account for network - if (activeAccountInSet) { - connectToAccount(activeAccountInSet); - } - // add external accounts to imported - addToAccounts(localAccounts); - } - }; - /* connectActiveExtensions * Connects to extensions that already have been connected * to and stored in localStorage. From 63bccbf435892224a3e09571846f629820a3b8a0 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 15 Aug 2023 12:03:53 +0700 Subject: [PATCH 215/435] use MaybeAccount --- src/contexts/Connect/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/contexts/Connect/index.tsx b/src/contexts/Connect/index.tsx index 48a6f456e7..663c5dbdba 100644 --- a/src/contexts/Connect/index.tsx +++ b/src/contexts/Connect/index.tsx @@ -431,7 +431,7 @@ export const ConnectProvider = ({ updateInitialisedExtensions(id); }; - const setActiveAccount = (address: string | null) => { + const setActiveAccount = (address: MaybeAccount) => { if (address === null) { localStorage.removeItem(`${network.name}_active_account`); } else { From dae903d70bae6979b1f57512a2e48077b976b890 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 15 Aug 2023 12:30:35 +0700 Subject: [PATCH 216/435] nits --- src/contexts/Bonded/index.tsx | 1 + src/contexts/Staking/index.tsx | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/contexts/Bonded/index.tsx b/src/contexts/Bonded/index.tsx index efbffaf1b7..810ff430fd 100644 --- a/src/contexts/Bonded/index.tsx +++ b/src/contexts/Bonded/index.tsx @@ -23,6 +23,7 @@ export const BondedProvider = ({ children }: { children: React.ReactNode }) => { // Balance accounts state. const [bondedAccounts, setBondedAccounts] = useState<BondedAccount[]>([]); const bondedAccountsRef = useRef(bondedAccounts); + const unsubs = useRef<Record<string, VoidFn>>({}); // Handle the syncing of accounts on accounts change. diff --git a/src/contexts/Staking/index.tsx b/src/contexts/Staking/index.tsx index d1743cdcd3..8a87c42f35 100644 --- a/src/contexts/Staking/index.tsx +++ b/src/contexts/Staking/index.tsx @@ -301,7 +301,7 @@ export const StakingProvider = ({ for (const target of fromTargets) { const staker = eraStakersRef.current.stakers.find( - ({ address }: any) => address === target + ({ address }) => address === target ); if (staker === undefined) { From bd3f2650201166d6d0fc11380ac5f6971e88a87e Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 15 Aug 2023 12:41:01 +0700 Subject: [PATCH 217/435] use `every`, earning rewards loop improvements --- src/contexts/Staking/types.ts | 4 +- .../Hooks/useNominationStatus/index.tsx | 64 ++++++++++--------- 2 files changed, 38 insertions(+), 30 deletions(-) diff --git a/src/contexts/Staking/types.ts b/src/contexts/Staking/types.ts index 4a3838a13b..b51cbb4741 100644 --- a/src/contexts/Staking/types.ts +++ b/src/contexts/Staking/types.ts @@ -18,7 +18,9 @@ export interface StakingMetrics { } export interface EraStakers { - stakers: any[]; + stakers: (ExposureValue & { + address: string; + })[]; nominators: any[] | undefined; totalActiveNominators: number; activeValidators: number; diff --git a/src/library/Hooks/useNominationStatus/index.tsx b/src/library/Hooks/useNominationStatus/index.tsx index e9c34ec4c1..91d68cbebc 100644 --- a/src/library/Hooks/useNominationStatus/index.tsx +++ b/src/library/Hooks/useNominationStatus/index.tsx @@ -17,61 +17,67 @@ export const useNominationStatus = () => { const { network } = useApi(); const { isSyncing } = useUi(); const { meta, validators } = useValidators(); - const { getAccountNominations } = useBonded(); const { poolNominations } = useActivePools(); + const { getAccountNominations } = useBonded(); const { inSetup, eraStakers, getNominationsStatusFromTargets } = useStaking(); - const { stakers } = eraStakers; const getNominationStatus = ( who: MaybeAccount, type: 'nominator' | 'pool' ) => { + // Get nominations either as a nominator or as a pool. const nominations = type === 'nominator' ? getAccountNominations(who) : poolNominations?.targets ?? []; - const nominationStatuses = getNominationsStatusFromTargets( - who, - nominations - ); - const stake = meta.validators_browse?.stake ?? []; - const stakeSynced = stake.length > 0 ?? false; - const activeNominees = Object.entries(nominationStatuses) - .map(([k, v]: any) => (v === 'active' ? k : false)) + // Get the active nominees from the provided account's targets. + const activeNominees = Object.entries( + getNominationsStatusFromTargets(who, nominations) + ) + .map(([k, v]) => (v === 'active' ? k : false)) .filter((v) => v !== false); + // Attempt to get validator stake from meta batch (may still be syncing). + const stake = meta.validators_browse?.stake ?? []; + + // Determine whether active nominees are earning rewards. This function exists once the + // first reward-earning nominee is found. let earningRewards = false; - if (stakeSynced) { - for (const nominee of activeNominees) { - const validator = validators.find((v: any) => v.address === nominee); - if (validator) { - const batchIndex = validators.indexOf(validator); - const nomineeMeta = stake[batchIndex]; - const { lowestReward } = nomineeMeta; + if (stake.length > 0) { + activeNominees.every((nominee) => { + const validator = validators.find(({ address }) => address === nominee); - const validatorInEra = - stakers.find((s: any) => s.address === nominee) || null; + if (validator) { + const others = + eraStakers.stakers.find(({ address }) => address === nominee) + ?.others || []; - if (validatorInEra) { - const { others } = validatorInEra; + if (others.length) { + // If the provided account is a part of the validator's backers, check if they are above + // the lowest reward threshold. If so, they are earning rewards and this iteration can + // exit. const stakedValue = - others?.find((o: any) => o.who === who)?.value ?? false; + others?.find((o) => o.who === who)?.value ?? false; if (stakedValue) { - const stakedValueUnit = planckToUnit( - new BigNumber(rmCommas(stakedValue)), - network.units - ); - if (stakedValueUnit.isGreaterThanOrEqualTo(lowestReward)) { + const { lowestReward } = stake[validators.indexOf(validator)]; + if ( + planckToUnit( + new BigNumber(rmCommas(stakedValue)), + network.units + ).isGreaterThanOrEqualTo(lowestReward) + ) { earningRewards = true; - break; + return false; } } } } - } + return true; + }); } + // Determine the localised message to display based on the nomination status. let str; if (inSetup() || isSyncing) { str = t('nominate.notNominating', { ns: 'pages' }); From f1da8b3432006fb5ddec37f76f831349cbcf430c Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 15 Aug 2023 12:53:59 +0700 Subject: [PATCH 218/435] replace types --- src/contexts/Validators/index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/contexts/Validators/index.tsx b/src/contexts/Validators/index.tsx index ff9b43e140..55397124b8 100644 --- a/src/contexts/Validators/index.tsx +++ b/src/contexts/Validators/index.tsx @@ -397,7 +397,7 @@ export const ValidatorsProvider = ({ validatorMetaBatchesRef ); - const subscribeToIdentities = async (addr: AnyApi) => { + const subscribeToIdentities = async (addr: string[]) => { const unsub = await api.query.identity.identityOf.multi<AnyApi>( addr, (result) => { @@ -425,7 +425,7 @@ export const ValidatorsProvider = ({ return unsub; }; - const subscribeToSuperIdentities = async (addr: AnyApi) => { + const subscribeToSuperIdentities = async (addr: string[]) => { const unsub = await api.query.identity.superOf.multi<AnyApi>( addr, async (result) => { From 67c81540b445afa2a732a6a1c988a7b4fae9087d Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 15 Aug 2023 13:05:39 +0700 Subject: [PATCH 219/435] getNominationStatus supports `inactive` and `waiting` --- .../Hooks/useNominationStatus/index.tsx | 26 +++++++++++++------ .../Active/Status/NominationStatus.tsx | 2 +- src/pages/Pools/Home/Status/PoolStatus.tsx | 10 +++---- 3 files changed, 24 insertions(+), 14 deletions(-) diff --git a/src/library/Hooks/useNominationStatus/index.tsx b/src/library/Hooks/useNominationStatus/index.tsx index 91d68cbebc..e6bd61ba30 100644 --- a/src/library/Hooks/useNominationStatus/index.tsx +++ b/src/library/Hooks/useNominationStatus/index.tsx @@ -10,7 +10,7 @@ import { useActivePools } from 'contexts/Pools/ActivePools'; import { useStaking } from 'contexts/Staking'; import { useUi } from 'contexts/UI'; import { useValidators } from 'contexts/Validators'; -import type { MaybeAccount } from 'types'; +import type { AnyJson, MaybeAccount } from 'types'; export const useNominationStatus = () => { const { t } = useTranslation(); @@ -21,22 +21,28 @@ export const useNominationStatus = () => { const { getAccountNominations } = useBonded(); const { inSetup, eraStakers, getNominationsStatusFromTargets } = useStaking(); + // Utility to get the nominees of a provided nomination status. + const getNomineesByStatus = (nominees: AnyJson[], status: string) => + nominees + .map(([k, v]) => (v === status ? k : false)) + .filter((v) => v !== false); + + // Utility to get the status of the provided account's nominations, and whether they are earning + // reards. const getNominationStatus = ( who: MaybeAccount, type: 'nominator' | 'pool' ) => { - // Get nominations either as a nominator or as a pool. const nominations = type === 'nominator' ? getAccountNominations(who) : poolNominations?.targets ?? []; - // Get the active nominees from the provided account's targets. - const activeNominees = Object.entries( + // Get the sets nominees from the provided account's targets. + const nominees = Object.entries( getNominationsStatusFromTargets(who, nominations) - ) - .map(([k, v]) => (v === 'active' ? k : false)) - .filter((v) => v !== false); + ); + const activeNominees = getNomineesByStatus(nominees, 'active'); // Attempt to get validator stake from meta batch (may still be syncing). const stake = meta.validators_browse?.stake ?? []; @@ -95,7 +101,11 @@ export const useNominationStatus = () => { } return { - activeNominees, + nominees: { + active: activeNominees, + inactive: getNomineesByStatus(nominees, 'inactive'), + waiting: getNomineesByStatus(nominees, 'waiting'), + }, earningRewards, message: str, }; diff --git a/src/pages/Nominate/Active/Status/NominationStatus.tsx b/src/pages/Nominate/Active/Status/NominationStatus.tsx index 488f67b304..f19a5a93b9 100644 --- a/src/pages/Nominate/Active/Status/NominationStatus.tsx +++ b/src/pages/Nominate/Active/Status/NominationStatus.tsx @@ -48,7 +48,7 @@ export const NominationStatus = ({ // Determine whether to display fast unstake button or regular unstake button. const unstakeButton = fastUnstakeErasToCheckPerBlock > 0 && - !nominationStatus.activeNominees.length && + !nominationStatus.nominees.active.length && (checking || !isExposed) ? { disabled: checking || isReadOnlyAccount(controller), diff --git a/src/pages/Pools/Home/Status/PoolStatus.tsx b/src/pages/Pools/Home/Status/PoolStatus.tsx index 5a1b618513..edb6b67a21 100644 --- a/src/pages/Pools/Home/Status/PoolStatus.tsx +++ b/src/pages/Pools/Home/Status/PoolStatus.tsx @@ -18,10 +18,10 @@ export const PoolStatus = () => { const { selectedActivePool, poolNominations } = useActivePools(); const poolStash = selectedActivePool?.addresses?.stash || ''; - const { earningRewards, activeNominees } = getNominationStatus( - poolStash, - 'pool' - ); + const { + earningRewards, + nominees: { active }, + } = getNominationStatus(poolStash, 'pool'); const poolState = selectedActivePool?.bondedPool?.state ?? null; const poolNominating = !!poolNominations?.targets?.length; @@ -51,7 +51,7 @@ export const PoolStatus = () => { ? t('pools.inactivePoolNotNominating') : !poolNominating ? t('pools.inactivePoolNotNominating') - : activeNominees.length + : active.length ? `${t('pools.nominatingAnd')} ${ earningRewards ? t('pools.earningRewards') From 4b80a55c1e544d06fd28de313df79155c9a6a488 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 15 Aug 2023 13:25:12 +0700 Subject: [PATCH 220/435] deprecate Staking.getNominationsStatus --- src/contexts/FastUnstake/index.tsx | 15 ++++------ src/contexts/Staking/defaults.ts | 1 - src/contexts/Staking/index.tsx | 30 ------------------- src/contexts/Staking/types.ts | 1 - .../Hooks/useNominationStatus/index.tsx | 24 ++++++++------- src/library/Hooks/useUnstaking/index.tsx | 13 ++++---- .../ListItem/Labels/NominationStatus.tsx | 10 +++++-- src/pages/Pools/Home/Status/PoolStatus.tsx | 7 ++--- 8 files changed, 34 insertions(+), 67 deletions(-) diff --git a/src/contexts/FastUnstake/index.tsx b/src/contexts/FastUnstake/index.tsx index 097fcad729..5c8554bd3d 100644 --- a/src/contexts/FastUnstake/index.tsx +++ b/src/contexts/FastUnstake/index.tsx @@ -16,6 +16,7 @@ import { useStaking } from 'contexts/Staking'; import type { AnyApi, AnyJson, MaybeAccount } from 'types'; import Worker from 'workers/stakers?worker'; import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import { useNominationStatus } from 'library/Hooks/useNominationStatus'; import { defaultFastUnstakeContext, defaultMeta } from './defaults'; import type { FastUnstakeContextInterface, @@ -30,13 +31,14 @@ export const FastUnstakeProvider = ({ }: { children: React.ReactNode; }) => { - const { api, isReady, consts, network } = useApi(); + const { inSetup } = useStaking(); const { activeAccount } = useConnect(); + const { api, isReady, consts, network } = useApi(); const { metrics, activeEra } = useNetworkMetrics(); - const { inSetup, getNominationsStatus } = useStaking(); + const { getNominationStatus } = useNominationStatus(); const { fastUnstakeErasToCheckPerBlock } = metrics; const { bondDuration } = consts; - const nominationStatuses = getNominationsStatus(); + const { nominees } = getNominationStatus(activeAccount, 'nominator'); // store whether a fast unstake check is in progress. const [checking, setChecking] = useState<boolean>(false); @@ -114,17 +116,12 @@ export const FastUnstakeProvider = ({ setStateWithRef(initialMeta, setMeta, metaRef); setStateWithRef(initialIsExposed, setIsExposed, isExposedRef); - // check for any active nominations - const activeNominations = Object.entries(nominationStatuses) - .map(([k, v]: any) => (v === 'active' ? k : false)) - .filter((v) => v !== false); - // start process if account is inactively nominating & local fast unstake data is not // complete. if ( activeAccount && !inSetup() && - !activeNominations.length && + !nominees.active.length && initialIsExposed === null ) { // if localMeta existed, start checking from the next era. diff --git a/src/contexts/Staking/defaults.ts b/src/contexts/Staking/defaults.ts index d3fdb76df4..4b0cbfaaa3 100644 --- a/src/contexts/Staking/defaults.ts +++ b/src/contexts/Staking/defaults.ts @@ -40,7 +40,6 @@ export const defaultTargets: StakingTargets = { export const defaultNominationStatus: NominationStatuses = {}; export const defaultStakingContext: StakingContextInterface = { - getNominationsStatus: () => defaultNominationStatus, // eslint-disable-next-line getNominationsStatusFromTargets: (w, t) => defaultNominationStatus, // eslint-disable-next-line diff --git a/src/contexts/Staking/index.tsx b/src/contexts/Staking/index.tsx index 8a87c42f35..ec1b18d9b3 100644 --- a/src/contexts/Staking/index.tsx +++ b/src/contexts/Staking/index.tsx @@ -16,7 +16,6 @@ import type { PayeeConfig, PayeeOptions } from 'contexts/Setup/types'; import type { EraStakers, Exposure, - NominationStatuses, StakingContextInterface, StakingMetrics, StakingTargets, @@ -31,7 +30,6 @@ import { useConnect } from '../Connect'; import { useNetworkMetrics } from '../Network'; import { defaultEraStakers, - defaultNominationStatus, defaultStakingContext, defaultStakingMetrics, defaultTargets, @@ -253,33 +251,6 @@ export const StakingProvider = ({ }); }; - /* - * Get the status of nominations. - * Possible statuses: waiting, inactive, active. - */ - const getNominationsStatus = () => { - if (inSetup() || !activeAccount) { - return defaultNominationStatus; - } - const statuses: NominationStatuses = {}; - for (const nomination of getAccountNominations(activeAccount)) { - const s = eraStakersRef.current.stakers.find( - ({ address }) => address === nomination - ); - - if (s === undefined) { - statuses[nomination] = 'waiting'; - continue; - } - if (!(s.others ?? []).find(({ who }: any) => who === activeAccount)) { - statuses[nomination] = 'inactive'; - continue; - } - statuses[nomination] = 'active'; - } - return statuses; - }; - /* Sets an account's stored target validators */ const setTargets = (value: StakingTargets) => { localStorage.setItem(`${activeAccount}_targets`, JSON.stringify(value)); @@ -394,7 +365,6 @@ export const StakingProvider = ({ return ( <StakingContext.Provider value={{ - getNominationsStatus, getNominationsStatusFromTargets, setTargets, hasController, diff --git a/src/contexts/Staking/types.ts b/src/contexts/Staking/types.ts index b51cbb4741..f9400afa8c 100644 --- a/src/contexts/Staking/types.ts +++ b/src/contexts/Staking/types.ts @@ -62,7 +62,6 @@ export interface ExposureOther { } export interface StakingContextInterface { - getNominationsStatus: () => any; getNominationsStatusFromTargets: (w: MaybeAccount, t: any[]) => any; setTargets: (t: any) => any; hasController: () => boolean; diff --git a/src/library/Hooks/useNominationStatus/index.tsx b/src/library/Hooks/useNominationStatus/index.tsx index e6bd61ba30..37f1364eab 100644 --- a/src/library/Hooks/useNominationStatus/index.tsx +++ b/src/library/Hooks/useNominationStatus/index.tsx @@ -21,6 +21,15 @@ export const useNominationStatus = () => { const { getAccountNominations } = useBonded(); const { inSetup, eraStakers, getNominationsStatusFromTargets } = useStaking(); + // Utility to get an account's nominees alongside their status. + const getNomineesStatus = (who: MaybeAccount, type: 'nominator' | 'pool') => { + const nominations = + type === 'nominator' + ? getAccountNominations(who) + : poolNominations?.targets ?? []; + return getNominationsStatusFromTargets(who, nominations); + }; + // Utility to get the nominees of a provided nomination status. const getNomineesByStatus = (nominees: AnyJson[], status: string) => nominees @@ -33,15 +42,8 @@ export const useNominationStatus = () => { who: MaybeAccount, type: 'nominator' | 'pool' ) => { - const nominations = - type === 'nominator' - ? getAccountNominations(who) - : poolNominations?.targets ?? []; - // Get the sets nominees from the provided account's targets. - const nominees = Object.entries( - getNominationsStatusFromTargets(who, nominations) - ); + const nominees = Object.entries(getNomineesStatus(who, type)); const activeNominees = getNomineesByStatus(nominees, 'active'); // Attempt to get validator stake from meta batch (may still be syncing). @@ -51,7 +53,7 @@ export const useNominationStatus = () => { // first reward-earning nominee is found. let earningRewards = false; if (stake.length > 0) { - activeNominees.every((nominee) => { + getNomineesByStatus(nominees, 'active').every((nominee) => { const validator = validators.find(({ address }) => address === nominee); if (validator) { @@ -87,7 +89,7 @@ export const useNominationStatus = () => { let str; if (inSetup() || isSyncing) { str = t('nominate.notNominating', { ns: 'pages' }); - } else if (!nominations.length) { + } else if (!nominees.length) { str = t('nominate.noNominationsSet', { ns: 'pages' }); } else if (activeNominees.length) { str = t('nominate.nominatingAnd', { ns: 'pages' }); @@ -111,5 +113,5 @@ export const useNominationStatus = () => { }; }; - return { getNominationStatus }; + return { getNominationStatus, getNomineesStatus }; }; diff --git a/src/library/Hooks/useUnstaking/index.tsx b/src/library/Hooks/useUnstaking/index.tsx index f93481d10a..9a3fa43a63 100644 --- a/src/library/Hooks/useUnstaking/index.tsx +++ b/src/library/Hooks/useUnstaking/index.tsx @@ -9,24 +9,23 @@ import { useNetworkMetrics } from 'contexts/Network'; import { useStaking } from 'contexts/Staking'; import { useTransferOptions } from 'contexts/TransferOptions'; import type { AnyJson } from 'types'; +import { useNominationStatus } from '../useNominationStatus'; export const useUnstaking = () => { const { t } = useTranslation('library'); const { consts } = useApi(); - const { getTransferOptions } = useTransferOptions(); + const { inSetup } = useStaking(); const { activeAccount } = useConnect(); - const { getNominationsStatus, inSetup } = useStaking(); const { activeEra } = useNetworkMetrics(); + const { getTransferOptions } = useTransferOptions(); + const { getNominationStatus } = useNominationStatus(); const { checking, head, isExposed, queueDeposit, meta } = useFastUnstake(); const { bondDuration } = consts; const transferOptions = getTransferOptions(activeAccount).nominate; - const nominationStatuses = getNominationsStatus(); + const { nominees } = getNominationStatus(activeAccount, 'nominator'); // determine if user is regular unstaking const { active } = transferOptions; - const activeNominations = Object.entries(nominationStatuses) - .map(([k, v]: any) => (v === 'active' ? k : false)) - .filter((v) => v !== false); // determine if user is fast unstaking. const inHead = @@ -58,7 +57,7 @@ export const useUnstaking = () => { return { getFastUnstakeText, - isUnstaking: !inSetup() && !activeNominations.length && active.isZero(), + isUnstaking: !inSetup() && !nominees.active.length && active.isZero(), isFastUnstaking: !!registered, }; }; diff --git a/src/library/ListItem/Labels/NominationStatus.tsx b/src/library/ListItem/Labels/NominationStatus.tsx index 89969c515f..3d061b1f6c 100644 --- a/src/library/ListItem/Labels/NominationStatus.tsx +++ b/src/library/ListItem/Labels/NominationStatus.tsx @@ -8,6 +8,8 @@ import { useApi } from 'contexts/Api'; import { useBondedPools } from 'contexts/Pools/BondedPools'; import { useStaking } from 'contexts/Staking'; import { ValidatorStatusWrapper } from 'library/ListItem/Wrappers'; +import { useNominationStatus } from 'library/Hooks/useNominationStatus'; +import { useConnect } from 'contexts/Connect'; import type { NominationStatusProps } from '../types'; export const NominationStatus = ({ @@ -16,11 +18,13 @@ export const NominationStatus = ({ bondFor, }: NominationStatusProps) => { const { t } = useTranslation('library'); - const { getNominationsStatus, eraStakers, erasStakersSyncing } = useStaking(); - const { getPoolNominationStatus } = useBondedPools(); const { network: { unit, units }, } = useApi(); + const { activeAccount } = useConnect(); + const { getPoolNominationStatus } = useBondedPools(); + const { getNomineesStatus } = useNominationStatus(); + const { eraStakers, erasStakersSyncing } = useStaking(); const { activeAccountOwnStake, stakers } = eraStakers; @@ -30,7 +34,7 @@ export const NominationStatus = ({ nominationStatus = getPoolNominationStatus(nominator, address); } else { // get all active account's nominations. - const nominationStatuses = getNominationsStatus(); + const nominationStatuses = getNomineesStatus(activeAccount, 'nominator'); // find the nominator status within the returned nominations. nominationStatus = nominationStatuses[address]; } diff --git a/src/pages/Pools/Home/Status/PoolStatus.tsx b/src/pages/Pools/Home/Status/PoolStatus.tsx index edb6b67a21..ac0cb6ea18 100644 --- a/src/pages/Pools/Home/Status/PoolStatus.tsx +++ b/src/pages/Pools/Home/Status/PoolStatus.tsx @@ -18,10 +18,7 @@ export const PoolStatus = () => { const { selectedActivePool, poolNominations } = useActivePools(); const poolStash = selectedActivePool?.addresses?.stash || ''; - const { - earningRewards, - nominees: { active }, - } = getNominationStatus(poolStash, 'pool'); + const { earningRewards, nominees } = getNominationStatus(poolStash, 'pool'); const poolState = selectedActivePool?.bondedPool?.state ?? null; const poolNominating = !!poolNominations?.targets?.length; @@ -51,7 +48,7 @@ export const PoolStatus = () => { ? t('pools.inactivePoolNotNominating') : !poolNominating ? t('pools.inactivePoolNotNominating') - : active.length + : nominees.active.length ? `${t('pools.nominatingAnd')} ${ earningRewards ? t('pools.earningRewards') From 9752714bfb22fa7646e0fa5aa8a009bfcc208b47 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 15 Aug 2023 13:35:18 +0700 Subject: [PATCH 221/435] tidy up eslint rules for defaults --- .github/workflows/gh-publish.yml | 6 +++--- src/contexts/Api/defaults.ts | 2 +- src/contexts/Balances/defaults.ts | 5 +---- src/contexts/Bonded/defaults.ts | 5 +---- src/contexts/Canvas/defaults.ts | 3 +-- src/contexts/Connect/defaults.ts | 13 +------------ src/contexts/Extensions/defaults.ts | 4 +--- src/contexts/Extrinsics/defaults.ts | 3 +-- src/contexts/FastUnstake/defaults.ts | 2 +- src/contexts/Filters/defaults.ts | 13 +------------ src/contexts/Hardware/defaults.ts | 16 +--------------- src/contexts/Help/defaults.ts | 4 +--- src/contexts/Identities/defaults.ts | 2 +- src/contexts/Menu/defaults.ts | 4 +--- src/contexts/Modal/defaults.ts | 7 +------ src/contexts/Notifications/defaults.ts | 3 +-- src/contexts/Plugins/defaults.ts | 3 +-- src/contexts/Pools/ActivePools/defaults.ts | 3 +-- src/contexts/Pools/BondedPools/defaults.ts | 13 +------------ src/contexts/Pools/PoolMembers/defaults.ts | 9 +-------- src/contexts/Prompt/defaults.tsx | 4 +--- src/contexts/Proxies/defaults.ts | 5 +---- src/contexts/Setup/defaults.ts | 9 +-------- src/contexts/Staking/defaults.ts | 5 +---- src/contexts/Subscan/defaults.ts | 4 +--- src/contexts/Themes/defaults.ts | 2 +- src/contexts/Tooltip/defaults.ts | 4 +--- src/contexts/TransferOptions/defaults.ts | 3 +-- src/contexts/TxMeta/defaults.ts | 7 +------ src/contexts/UI/defaults.ts | 4 +--- src/contexts/Validators/defaults.ts | 6 +----- src/library/Filter/defaults.ts | 7 +------ src/library/Graphs/Utils.ts | 2 +- src/library/PoolList/defaults.ts | 2 +- src/pages/Community/defaults.ts | 2 +- src/pages/Payouts/PayoutList/context.tsx | 3 +-- src/pages/Pools/Home/context.tsx | 2 +- src/types/index.ts | 10 +++++----- 38 files changed, 44 insertions(+), 157 deletions(-) diff --git a/.github/workflows/gh-publish.yml b/.github/workflows/gh-publish.yml index acf06df106..728e84f833 100644 --- a/.github/workflows/gh-publish.yml +++ b/.github/workflows/gh-publish.yml @@ -4,7 +4,7 @@ on: push: branches: [main] -jobs: +jobs: gh-deploy: runs-on: ubuntu-latest steps: @@ -15,9 +15,9 @@ jobs: registry-url: https://registry.npmjs.org - run: yarn install - name: Build - working-directory: "." + working-directory: '.' run: yarn build:pages - name: Deploy uses: JamesIves/github-pages-deploy-action@v4 with: - folder: build \ No newline at end of file + folder: build diff --git a/src/contexts/Api/defaults.ts b/src/contexts/Api/defaults.ts index 6891f6770b..235aa23f94 100644 --- a/src/contexts/Api/defaults.ts +++ b/src/contexts/Api/defaults.ts @@ -1,5 +1,6 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import { stringToU8a } from '@polkadot/util'; import BigNumber from 'bignumber.js'; @@ -21,7 +22,6 @@ export const consts: APIConstants = { }; export const defaultApiContext: APIContextInterface = { - // eslint-disable-next-line switchNetwork: async (n, lc) => { await new Promise((resolve) => resolve(null)); }, diff --git a/src/contexts/Balances/defaults.ts b/src/contexts/Balances/defaults.ts index 723a4c2ed9..c8c19b5a47 100644 --- a/src/contexts/Balances/defaults.ts +++ b/src/contexts/Balances/defaults.ts @@ -1,5 +1,6 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import BigNumber from 'bignumber.js'; import type { Balance, BalancesContextInterface, Ledger } from './types'; @@ -7,13 +8,9 @@ import type { Balance, BalancesContextInterface, Ledger } from './types'; export const defaultBalancesContext: BalancesContextInterface = { ledgers: [], balances: [], - // eslint-disable-next-line getStashLedger: (address) => defaultLedger, - // eslint-disable-next-line getBalance: (address) => defaultBalance, - // eslint-disable-next-line getLocks: (address) => [], - // eslint-disable-next-line getNonce: (address) => 0, }; diff --git a/src/contexts/Bonded/defaults.ts b/src/contexts/Bonded/defaults.ts index a6b9affbe0..1b8d622d71 100644 --- a/src/contexts/Bonded/defaults.ts +++ b/src/contexts/Bonded/defaults.ts @@ -1,5 +1,6 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import type { BondedContextInterface, @@ -12,13 +13,9 @@ export const nominations: Nominations = { }; export const defaultBondedContext: BondedContextInterface = { - // eslint-disable-next-line getAccount: (address) => null, - // eslint-disable-next-line getBondedAccount: (address) => null, - // eslint-disable-next-line getAccountNominations: (address) => [], - // eslint-disable-next-line isController: (address) => false, bondedAccounts: [], }; diff --git a/src/contexts/Canvas/defaults.ts b/src/contexts/Canvas/defaults.ts index 65b7287305..270ca94532 100644 --- a/src/contexts/Canvas/defaults.ts +++ b/src/contexts/Canvas/defaults.ts @@ -1,13 +1,12 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import type { CanvasContextInterface } from './types'; export const defaultCanvasContext: CanvasContextInterface = { - // eslint-disable-next-line openCanvas: () => {}, closeCanvas: () => {}, - // eslint-disable-next-line setStatus: (s) => {}, status: 0, }; diff --git a/src/contexts/Connect/defaults.ts b/src/contexts/Connect/defaults.ts index 116edd66a8..b03e89c384 100644 --- a/src/contexts/Connect/defaults.ts +++ b/src/contexts/Connect/defaults.ts @@ -1,35 +1,24 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import type { ConnectContextInterface } from 'contexts/Connect/types'; export const defaultConnectContext: ConnectContextInterface = { - // eslint-disable-next-line formatAccountSs58: (a: string) => null, - // eslint-disable-next-line connectExtensionAccounts: async (e) => new Promise((resolve) => resolve(false)), - // eslint-disable-next-line getAccount: (a) => null, - // eslint-disable-next-line connectToAccount: (a) => {}, disconnectFromAccount: () => {}, - // eslint-disable-next-line addExternalAccount: (a, b) => {}, getActiveAccount: () => null, - // eslint-disable-next-line accountHasSigner: (a) => false, - // eslint-disable-next-line requiresManualSign: (a) => false, - // eslint-disable-next-line isReadOnlyAccount: (a) => false, - // eslint-disable-next-line addToAccounts: (a) => {}, - // eslint-disable-next-line forgetAccounts: (a) => {}, - // eslint-disable-next-line setActiveProxy: (p, l) => {}, - // eslint-disable-next-line renameImportedAccount: (a, n) => {}, accounts: [], activeAccount: null, diff --git a/src/contexts/Extensions/defaults.ts b/src/contexts/Extensions/defaults.ts index d529f8bafb..79cb6d5d81 100644 --- a/src/contexts/Extensions/defaults.ts +++ b/src/contexts/Extensions/defaults.ts @@ -1,5 +1,6 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import type { ExtensionsContextInterface } from './types'; @@ -8,10 +9,7 @@ export const defaultExtensionsContext: ExtensionsContextInterface = { extensionsStatus: {}, extensionsFetched: false, checkingInjectedWeb3: false, - // eslint-disable-next-line setExtensionStatus: (id, s) => {}, - // eslint-disable-next-line setExtensionsFetched: (s) => {}, - // eslint-disable-next-line setExtensions: (s) => {}, }; diff --git a/src/contexts/Extrinsics/defaults.ts b/src/contexts/Extrinsics/defaults.ts index 3266978c96..a1202dd7b0 100644 --- a/src/contexts/Extrinsics/defaults.ts +++ b/src/contexts/Extrinsics/defaults.ts @@ -1,12 +1,11 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import type { ExtrinsicsContextInterface } from './types'; export const defaultExtrinsicsContext: ExtrinsicsContextInterface = { - // eslint-disable-next-line addPending: (t) => {}, - // eslint-disable-next-line removePending: (t) => {}, pending: [], }; diff --git a/src/contexts/FastUnstake/defaults.ts b/src/contexts/FastUnstake/defaults.ts index 57712f3d3b..0f1cc87e0f 100644 --- a/src/contexts/FastUnstake/defaults.ts +++ b/src/contexts/FastUnstake/defaults.ts @@ -1,5 +1,6 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import type { FastUnstakeContextInterface, MetaInterface } from './types'; @@ -8,7 +9,6 @@ export const defaultMeta: MetaInterface = { }; export const defaultFastUnstakeContext: FastUnstakeContextInterface = { - // eslint-disable-next-line getLocalkey: (a) => '', checking: false, meta: defaultMeta, diff --git a/src/contexts/Filters/defaults.ts b/src/contexts/Filters/defaults.ts index d73d2a3bff..009b13a09a 100644 --- a/src/contexts/Filters/defaults.ts +++ b/src/contexts/Filters/defaults.ts @@ -1,31 +1,20 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import type { FiltersContextInterface } from './types'; export const defaultFiltersInterface: FiltersContextInterface = { - // eslint-disable-next-line getFilters: (t, g) => [], - // eslint-disable-next-line toggleFilter: (t, g, f) => {}, - // eslint-disable-next-line setMultiFilters: (t, g, fs, r) => {}, - // eslint-disable-next-line getOrder: (g) => 'default', - // eslint-disable-next-line setOrder: (g, o) => {}, - // eslint-disable-next-line getSearchTerm: (g) => null, - // eslint-disable-next-line setSearchTerm: (g, t) => {}, - // eslint-disable-next-line resetFilters: (t, g) => {}, - // eslint-disable-next-line resetOrder: (g) => {}, - // eslint-disable-next-line clearSearchTerm: (g) => {}, - // eslint-disable-next-line applyFilters: (t, g, l, f) => {}, - // eslint-disable-next-line applyOrder: (g, l, f) => {}, }; diff --git a/src/contexts/Hardware/defaults.ts b/src/contexts/Hardware/defaults.ts index 0b5ba70ec2..af4bab8bef 100644 --- a/src/contexts/Hardware/defaults.ts +++ b/src/contexts/Hardware/defaults.ts @@ -1,5 +1,6 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import type { LedgerHardwareContextInterface, @@ -19,47 +20,32 @@ export const defaultFeedback = { export const defaultLedgerHardwareContext: LedgerHardwareContextInterface = { transportResponse: null, pairDevice: async () => new Promise((resolve) => resolve(false)), - // eslint-disable-next-line executeLedgerLoop: async (a, s, o) => new Promise((resolve) => resolve()), - // eslint-disable-next-line setIsPaired: (v) => {}, - // eslint-disable-next-line handleNewStatusCode: (a, s) => {}, - // eslint-disable-next-line setIsExecuting: (b) => {}, resetStatusCodes: () => {}, getIsExecuting: () => false, getStatusCodes: () => [], getTransport: () => null, - // eslint-disable-next-line ledgerAccountExists: (a) => false, - // eslint-disable-next-line addLedgerAccount: (a, i) => null, - // eslint-disable-next-line removeLedgerAccount: (a) => {}, - // eslint-disable-next-line renameLedgerAccount: (a, n) => {}, - // eslint-disable-next-line getLedgerAccount: (a) => null, isPaired: 'unknown', ledgerAccounts: [], getFeedback: () => defaultFeedback, - // eslint-disable-next-line setFeedback: (s, h) => {}, resetFeedback: () => {}, handleUnmount: () => {}, }; export const defaultVaultHardwareContext: VaultHardwareContextInterface = { - // eslint-disable-next-line vaultAccountExists: (a) => false, - // eslint-disable-next-line addVaultAccount: (a, i) => null, - // eslint-disable-next-line removeVaultAccount: (a) => {}, - // eslint-disable-next-line renameVaultAccount: (a, n) => {}, - // eslint-disable-next-line getVaultAccount: (a) => null, vaultAccounts: [], }; diff --git a/src/contexts/Help/defaults.ts b/src/contexts/Help/defaults.ts index ba12df6873..c824ac48b1 100644 --- a/src/contexts/Help/defaults.ts +++ b/src/contexts/Help/defaults.ts @@ -1,15 +1,13 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import type { HelpContextInterface } from './types'; export const defaultHelpContext: HelpContextInterface = { - // eslint-disable-next-line openHelp: (key) => {}, closeHelp: () => {}, - // eslint-disable-next-line setStatus: (status) => {}, - // eslint-disable-next-line setDefinition: (definition) => {}, status: 0, definition: null, diff --git a/src/contexts/Identities/defaults.ts b/src/contexts/Identities/defaults.ts index 9b8fc349ff..6a1ed169a3 100644 --- a/src/contexts/Identities/defaults.ts +++ b/src/contexts/Identities/defaults.ts @@ -1,10 +1,10 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import type { IdentitiesContextInterface } from './types'; export const defaultIdentitiesContext: IdentitiesContextInterface = { - // eslint-disable-next-line fetchIdentitiesMetaBatch: (k, v, r) => {}, meta: {}, }; diff --git a/src/contexts/Menu/defaults.ts b/src/contexts/Menu/defaults.ts index f57f7798a6..a0b4c25659 100644 --- a/src/contexts/Menu/defaults.ts +++ b/src/contexts/Menu/defaults.ts @@ -1,16 +1,14 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import type { MenuContextInterface } from './types'; export const defaultMenuContext: MenuContextInterface = { openMenu: () => {}, closeMenu: () => {}, - // eslint-disable-next-line setMenuPosition: (r) => {}, - // eslint-disable-next-line checkMenuPosition: (r) => {}, - // eslint-disable-next-line setMenuItems: (items) => {}, open: 0, show: 0, diff --git a/src/contexts/Modal/defaults.ts b/src/contexts/Modal/defaults.ts index 8fe881a5fd..9d1ef0792a 100644 --- a/src/contexts/Modal/defaults.ts +++ b/src/contexts/Modal/defaults.ts @@ -1,21 +1,16 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import type { ModalContextInterface } from './types'; export const defaultModalContext: ModalContextInterface = { status: 'closed', - // eslint-disable-next-line setStatus: (status) => {}, - // eslint-disable-next-line openModalWith: (m, c, s) => {}, - // eslint-disable-next-line replaceModalWith: (m, c, s) => {}, - // eslint-disable-next-line setModalHeight: (v) => {}, - // eslint-disable-next-line setModalRef: (v) => {}, - // eslint-disable-next-line setHeightRef: (v) => {}, setResize: () => {}, modalMaxHeight: () => 0, diff --git a/src/contexts/Notifications/defaults.ts b/src/contexts/Notifications/defaults.ts index 25b5461cd9..4493a040f6 100644 --- a/src/contexts/Notifications/defaults.ts +++ b/src/contexts/Notifications/defaults.ts @@ -1,12 +1,11 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import type { NotificationsContextInterface } from './types'; export const defaultNotificationsContext: NotificationsContextInterface = { - // eslint-disable-next-line addNotification: (n) => {}, - // eslint-disable-next-line removeNotification: (n) => {}, notifications: [], }; diff --git a/src/contexts/Plugins/defaults.ts b/src/contexts/Plugins/defaults.ts index acae736ecd..35d64a1168 100644 --- a/src/contexts/Plugins/defaults.ts +++ b/src/contexts/Plugins/defaults.ts @@ -1,12 +1,11 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import type { PluginsContextInterface } from './types'; export const defaultPluginsContext: PluginsContextInterface = { - // eslint-disable-next-line togglePlugin: (k) => {}, - // eslint-disable-next-line pluginEnabled: (k) => false, plugins: [], }; diff --git a/src/contexts/Pools/ActivePools/defaults.ts b/src/contexts/Pools/ActivePools/defaults.ts index 3d96f937ec..a03af882bd 100644 --- a/src/contexts/Pools/ActivePools/defaults.ts +++ b/src/contexts/Pools/ActivePools/defaults.ts @@ -1,5 +1,6 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import BigNumber from 'bignumber.js'; import type { ActivePool, ActivePoolsContextState } from '../types'; @@ -57,10 +58,8 @@ export const defaultActivePoolContext: ActivePoolsContextState = { getPoolBondedAccount: () => null, getPoolUnlocking: () => [], getPoolRoles: () => poolRoles, - // eslint-disable-next-line setTargets: (t) => {}, getNominationsStatus: () => nominationStatus, - // eslint-disable-next-line setSelectedPoolId: (p) => {}, selectedActivePool, targets, diff --git a/src/contexts/Pools/BondedPools/defaults.ts b/src/contexts/Pools/BondedPools/defaults.ts index 47c39bb932..0074e1771c 100644 --- a/src/contexts/Pools/BondedPools/defaults.ts +++ b/src/contexts/Pools/BondedPools/defaults.ts @@ -1,32 +1,21 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import type { BondedPoolsContextState } from '../types'; export const defaultBondedPoolsContext: BondedPoolsContextState = { - // eslint-disable-next-line fetchPoolsMetaBatch: (k, v: [], r) => {}, - // eslint-disable-next-line queryBondedPool: (p) => {}, - // eslint-disable-next-line getBondedPool: (p) => null, - // eslint-disable-next-line updateBondedPools: (p) => {}, - // eslint-disable-next-line addToBondedPools: (p) => {}, - // eslint-disable-next-line removeFromBondedPools: (p) => {}, - // eslint-disable-next-line getPoolNominationStatus: (n, o) => {}, - // eslint-disable-next-line getPoolNominationStatusCode: (t) => '', - // eslint-disable-next-line getAccountRoles: (w) => null, - // eslint-disable-next-line getAccountPools: (w) => null, - // eslint-disable-next-line replacePoolRoles: (p, e) => {}, - // eslint-disable-next-line poolSearchFilter: (l, k, v) => {}, bondedPools: [], meta: {}, diff --git a/src/contexts/Pools/PoolMembers/defaults.ts b/src/contexts/Pools/PoolMembers/defaults.ts index 6714957c0c..8cb8fbce28 100644 --- a/src/contexts/Pools/PoolMembers/defaults.ts +++ b/src/contexts/Pools/PoolMembers/defaults.ts @@ -1,27 +1,20 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import type { PoolMemberContext } from '../types'; export const defaultPoolMembers: PoolMemberContext = { - // eslint-disable-next-line fetchPoolMembersMetaBatch: (k, v, r) => {}, - // eslint-disable-next-line queryPoolMember: (w) => {}, - // eslint-disable-next-line getMembersOfPoolFromNode: (p) => {}, - // eslint-disable-next-line addToPoolMembers: (m) => {}, - // eslint-disable-next-line removePoolMember: (w) => {}, - // eslint-disable-next-line getPoolMemberCount: (p) => 0, poolMembersApi: [], - // eslint-disable-next-line setPoolMembersApi: (p) => {}, poolMembersNode: [], meta: {}, fetchedPoolMembersApi: 'unsynced', - // eslint-disable-next-line setFetchedPoolMembersApi: (s) => {}, }; diff --git a/src/contexts/Prompt/defaults.tsx b/src/contexts/Prompt/defaults.tsx index a841a51d64..4612df759e 100644 --- a/src/contexts/Prompt/defaults.tsx +++ b/src/contexts/Prompt/defaults.tsx @@ -1,15 +1,13 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import type { PromptContextInterface } from './types'; export const defaultPromptContext: PromptContextInterface = { - // eslint-disable-next-line openPromptWith: (o, s) => {}, closePrompt: () => {}, - // eslint-disable-next-line setStatus: (s) => {}, - // eslint-disable-next-line setPrompt: (d) => {}, size: 'small', status: 0, diff --git a/src/contexts/Proxies/defaults.ts b/src/contexts/Proxies/defaults.ts index 14515443e5..f7aaab8608 100644 --- a/src/contexts/Proxies/defaults.ts +++ b/src/contexts/Proxies/defaults.ts @@ -1,16 +1,13 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import type { ProxiesContextInterface } from './type'; export const defaultProxiesContext: ProxiesContextInterface = { - // eslint-disable-next-line getDelegates: (a) => undefined, - // eslint-disable-next-line getProxyDelegate: (x, y) => null, - // eslint-disable-next-line getProxiedAccounts: (a) => [], - // eslint-disable-next-line handleDeclareDelegate: (a) => new Promise((resolve) => resolve([])), proxies: [], delegates: {}, diff --git a/src/contexts/Setup/defaults.ts b/src/contexts/Setup/defaults.ts index a9dd516e14..f17bd8c25d 100644 --- a/src/contexts/Setup/defaults.ts +++ b/src/contexts/Setup/defaults.ts @@ -1,5 +1,6 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import type { NominatorProgress, @@ -24,24 +25,16 @@ export const defaultPoolProgress: PoolProgress = { }; export const defaultSetupContext: SetupContextInterface = { - // eslint-disable-next-line getSetupProgress: (a, b) => ({ section: 1, progress: defaultNominatorProgress, }), - // eslint-disable-next-line removeSetupProgress: (a, b) => {}, - // eslint-disable-next-line getNominatorSetupPercent: (a) => 0, - // eslint-disable-next-line getPoolSetupPercent: (a) => 0, - // eslint-disable-next-line setActiveAccountSetup: (t, p) => {}, - // eslint-disable-next-line setActiveAccountSetupSection: (t, s) => {}, - // eslint-disable-next-line setOnNominatorSetup: (v) => {}, - // eslint-disable-next-line setOnPoolSetup: (v) => {}, onNominatorSetup: false, onPoolSetup: false, diff --git a/src/contexts/Staking/defaults.ts b/src/contexts/Staking/defaults.ts index 4b0cbfaaa3..4feeb8a5cb 100644 --- a/src/contexts/Staking/defaults.ts +++ b/src/contexts/Staking/defaults.ts @@ -1,5 +1,6 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import BigNumber from 'bignumber.js'; import type { @@ -40,14 +41,10 @@ export const defaultTargets: StakingTargets = { export const defaultNominationStatus: NominationStatuses = {}; export const defaultStakingContext: StakingContextInterface = { - // eslint-disable-next-line getNominationsStatusFromTargets: (w, t) => defaultNominationStatus, - // eslint-disable-next-line setTargets: (t) => {}, hasController: () => false, - // eslint-disable-next-line getControllerNotImported: (a) => null, - // eslint-disable-next-line addressDifferentToStash: (a) => false, isBonding: () => false, isNominating: () => false, diff --git a/src/contexts/Subscan/defaults.ts b/src/contexts/Subscan/defaults.ts index 923fccc676..e4997ebfd4 100644 --- a/src/contexts/Subscan/defaults.ts +++ b/src/contexts/Subscan/defaults.ts @@ -1,18 +1,16 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import type { SubscanContextInterface } from './types'; export const defaultSubscanContext: SubscanContextInterface = { - // eslint-disable-next-line fetchEraPoints: (v, e) => {}, payouts: [], poolClaims: [], unclaimedPayouts: [], payoutsFromDate: undefined, payoutsToDate: undefined, - // eslint-disable-next-line fetchPoolDetails: (poolId) => new Promise((resolve) => resolve({})), - // eslint-disable-next-line fetchPoolMembers: (poolId, page) => new Promise((resolve) => resolve([])), }; diff --git a/src/contexts/Themes/defaults.ts b/src/contexts/Themes/defaults.ts index ce06faebb9..b226cc91e9 100644 --- a/src/contexts/Themes/defaults.ts +++ b/src/contexts/Themes/defaults.ts @@ -1,10 +1,10 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import type { ThemeContextInterface } from './types'; export const defaultThemeContext: ThemeContextInterface = { - // eslint-disable-next-line toggleTheme: (str) => {}, mode: 'light', }; diff --git a/src/contexts/Tooltip/defaults.ts b/src/contexts/Tooltip/defaults.ts index 2c8a0d0efd..e2f9de4d9b 100644 --- a/src/contexts/Tooltip/defaults.ts +++ b/src/contexts/Tooltip/defaults.ts @@ -1,16 +1,14 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import type { TooltipContextInterface } from './types'; export const defaultTooltipContext: TooltipContextInterface = { openTooltip: () => {}, closeTooltip: () => {}, - // eslint-disable-next-line setTooltipPosition: (x, y) => {}, - // eslint-disable-next-line showTooltip: () => {}, - // eslint-disable-next-line setTooltipTextAndOpen: (t) => {}, open: 0, show: 0, diff --git a/src/contexts/TransferOptions/defaults.ts b/src/contexts/TransferOptions/defaults.ts index 6e27a4e4b1..d30021aeda 100644 --- a/src/contexts/TransferOptions/defaults.ts +++ b/src/contexts/TransferOptions/defaults.ts @@ -1,13 +1,12 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import BigNumber from 'bignumber.js'; import type { TransferOptions, TransferOptionsContextInterface } from './types'; export const defaultBondedContext: TransferOptionsContextInterface = { - // eslint-disable-next-line getTransferOptions: (a) => transferOptions, - // eslint-disable-next-line setFeeReserveBalance: (r) => {}, feeReserve: new BigNumber(0), }; diff --git a/src/contexts/TxMeta/defaults.ts b/src/contexts/TxMeta/defaults.ts index f8fbd4ea42..a98d2cb82f 100644 --- a/src/contexts/TxMeta/defaults.ts +++ b/src/contexts/TxMeta/defaults.ts @@ -1,29 +1,24 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import BigNumber from 'bignumber.js'; import type { TxMetaContextInterface } from './types'; export const defaultTxMeta: TxMetaContextInterface = { - // eslint-disable-next-line controllerSignerAvailable: (a, b) => 'ok', txFees: new BigNumber(0), notEnoughFunds: false, - // eslint-disable-next-line setTxFees: (f) => {}, resetTxFees: () => {}, sender: null, - // eslint-disable-next-line setSender: (s) => {}, txFeesValid: false, incrementPayloadUid: () => 0, getPayloadUid: () => 0, getTxPayload: () => {}, - // eslint-disable-next-line setTxPayload: (p, u) => {}, getTxSignature: () => null, - // eslint-disable-next-line resetTxPayloads: () => {}, - // eslint-disable-next-line setTxSignature: (s) => {}, }; diff --git a/src/contexts/UI/defaults.ts b/src/contexts/UI/defaults.ts index 03d7d1cbb3..45b0008f13 100644 --- a/src/contexts/UI/defaults.ts +++ b/src/contexts/UI/defaults.ts @@ -1,14 +1,12 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import type { UIContextInterface } from './types'; export const defaultUIContext: UIContextInterface = { - // eslint-disable-next-line setSideMenu: (v) => {}, - // eslint-disable-next-line setUserSideMenuMinimised: (v) => {}, - // eslint-disable-next-line setContainerRefs: (v) => {}, sideMenuOpen: false, userSideMenuMinimised: false, diff --git a/src/contexts/Validators/defaults.ts b/src/contexts/Validators/defaults.ts index 37430d7d7c..71bbef27bc 100644 --- a/src/contexts/Validators/defaults.ts +++ b/src/contexts/Validators/defaults.ts @@ -1,5 +1,6 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import type { ValidatorsContextInterface } from 'contexts/Validators/types'; @@ -14,15 +15,10 @@ export const defaultSessionParachainValidators = { }; export const defaultValidatorsContext: ValidatorsContextInterface = { - // eslint-disable-next-line fetchValidatorMetaBatch: (k, v, r) => {}, - // eslint-disable-next-line removeValidatorMetaBatch: (k) => {}, - // eslint-disable-next-line fetchValidatorPrefs: async (v) => null, - // eslint-disable-next-line addFavorite: (a) => {}, - // eslint-disable-next-line removeFavorite: (a) => {}, validators: [], avgCommission: 0, diff --git a/src/library/Filter/defaults.ts b/src/library/Filter/defaults.ts index 1d92df4d75..dbb446c644 100644 --- a/src/library/Filter/defaults.ts +++ b/src/library/Filter/defaults.ts @@ -1,21 +1,16 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import type { ValidatorFilterContextInterface } from './types'; export const defaultContext: ValidatorFilterContextInterface = { - // eslint-disable-next-line orderValidators: (v) => {}, - // eslint-disable-next-line applyValidatorOrder: (l, o) => {}, - // eslint-disable-next-line applyValidatorFilters: (l, k, f) => {}, - // eslint-disable-next-line toggleFilterValidators: (v) => {}, - // eslint-disable-next-line toggleAllValidatorFilters: (t) => {}, resetValidatorFilters: () => {}, - // eslint-disable-next-line validatorSearchFilter: (l, k, v) => {}, validatorFilters: [], validatorOrder: 'default', diff --git a/src/library/Graphs/Utils.ts b/src/library/Graphs/Utils.ts index 4374069c00..be1786df20 100644 --- a/src/library/Graphs/Utils.ts +++ b/src/library/Graphs/Utils.ts @@ -44,7 +44,7 @@ export const calculateDailyPayouts = ( fromDate: Date, maxDays: number, units: number, - // eslint-disable-next-line + // eslint-disable-next-line @typescript-eslint/no-unused-vars subject: string ) => { let dailyPayouts: AnySubscan = []; diff --git a/src/library/PoolList/defaults.ts b/src/library/PoolList/defaults.ts index 118bb902a0..ffc885bc74 100644 --- a/src/library/PoolList/defaults.ts +++ b/src/library/PoolList/defaults.ts @@ -1,12 +1,12 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import type { PoolListContextProps } from './types'; export const defaultListFormat = 'col'; export const defaultPoolList: PoolListContextProps = { - // eslint-disable-next-line setListFormat: (v) => {}, listFormat: defaultListFormat, }; diff --git a/src/pages/Community/defaults.ts b/src/pages/Community/defaults.ts index d151b5880e..face250f00 100644 --- a/src/pages/Community/defaults.ts +++ b/src/pages/Community/defaults.ts @@ -1,5 +1,6 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ export const item = { name: '', @@ -8,7 +9,6 @@ export const item = { }; export const defaultContext = { - // eslint-disable-next-line setActiveSection: (t: number) => {}, activeSection: 0, }; diff --git a/src/pages/Payouts/PayoutList/context.tsx b/src/pages/Payouts/PayoutList/context.tsx index 60de3a44f7..d985cbca21 100644 --- a/src/pages/Payouts/PayoutList/context.tsx +++ b/src/pages/Payouts/PayoutList/context.tsx @@ -1,12 +1,11 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only - import React, { useState } from 'react'; import type { PayoutListContextInterface } from 'pages/Pools/types'; export const PayoutListContext = React.createContext<PayoutListContextInterface>({ - // eslint-disable-next-line + // eslint-disable-next-line @typescript-eslint/no-unused-vars setListFormat: (v: string) => {}, listFormat: 'col', }); diff --git a/src/pages/Pools/Home/context.tsx b/src/pages/Pools/Home/context.tsx index 60eaa87b35..9d8c25daac 100644 --- a/src/pages/Pools/Home/context.tsx +++ b/src/pages/Pools/Home/context.tsx @@ -7,7 +7,7 @@ import type { PoolsTabsContextInterface } from '../types'; export const PoolsTabsContext: React.Context<PoolsTabsContextInterface> = React.createContext({ - // eslint-disable-next-line + // eslint-disable-next-line @typescript-eslint/no-unused-vars setActiveTab: (t: number) => {}, activeTab: 0, }); diff --git a/src/types/index.ts b/src/types/index.ts index 017ddc960d..efec2a8871 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -98,13 +98,13 @@ export type BondFor = 'pool' | 'nominator'; export type Fn = () => void; // any types to compress compiler warnings -// eslint-disable-next-line +// eslint-disable-next-line @typescript-eslint/no-explicit-any export type AnyApi = any; -// eslint-disable-next-line +// eslint-disable-next-line @typescript-eslint/no-explicit-any export type AnyJson = any; -// eslint-disable-next-line +// eslint-disable-next-line @typescript-eslint/no-explicit-any export type AnyFunction = any; -// eslint-disable-next-line +// eslint-disable-next-line @typescript-eslint/no-explicit-any export type AnyMetaBatch = any; -// eslint-disable-next-line +// eslint-disable-next-line @typescript-eslint/no-explicit-any export type AnySubscan = any; From e95f663bd1ee0e5068984cef5a5894c61225677d Mon Sep 17 00:00:00 2001 From: Nikos Kontakis <wirednkod@gmail.com> Date: Tue, 15 Aug 2023 09:49:52 +0300 Subject: [PATCH 222/435] Allow app to use extension --- src/contexts/Api/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/contexts/Api/index.tsx b/src/contexts/Api/index.tsx index 886f047412..c491281b7c 100644 --- a/src/contexts/Api/index.tsx +++ b/src/contexts/Api/index.tsx @@ -296,7 +296,7 @@ export const APIProvider = ({ children }: { children: React.ReactNode }) => { const { endpoints } = NetworkList[name]; const newProvider = lc || new WsProvider(endpoints.rpc); if (lc) { - await newProvider.connect({ forceEmbeddedNode: true }); + await newProvider.connect(); } setProvider(newProvider); }; From 6e70faa2c79e4813fab02b6bc57db2bf9e4f9d22 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 15 Aug 2023 17:19:56 +0700 Subject: [PATCH 223/435] add TODO --- src/contexts/Validators/index.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/contexts/Validators/index.tsx b/src/contexts/Validators/index.tsx index 55397124b8..4ba7dc965f 100644 --- a/src/contexts/Validators/index.tsx +++ b/src/contexts/Validators/index.tsx @@ -328,6 +328,7 @@ export const ValidatorsProvider = ({ }; /* + // TODO: refactor Fetches a new batch of subscribed validator metadata. Stores the returning metadata alongside the unsubscribe function in state. structure: From 4032235dc3f0e3c6b5633cfa24938d36a16168b4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Aug 2023 21:22:39 +0000 Subject: [PATCH 224/435] Bump prettier from 3.0.1 to 3.0.2 Bumps [prettier](https://github.com/prettier/prettier) from 3.0.1 to 3.0.2. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/3.0.1...3.0.2) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 15f1ec86d1..73185117b7 100644 --- a/package.json +++ b/package.json @@ -82,7 +82,7 @@ "eslint-plugin-react": "^7.33.1", "eslint-plugin-unused-imports": "^3.0.0", "gh-pages": "^6.0.0", - "prettier": "^3.0.1", + "prettier": "^3.0.2", "prettier-plugin-organize-imports": "^3.2.3", "sass": "^1.65.1", "typescript": "^5.1.6", diff --git a/yarn.lock b/yarn.lock index 752c28e0d8..4e31c90c37 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4878,10 +4878,10 @@ prettier-plugin-organize-imports@^3.2.3: resolved "https://registry.yarnpkg.com/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-3.2.3.tgz#6b0141ac71f7ee9a673ce83e95456319e3a7cf0d" integrity sha512-KFvk8C/zGyvUaE3RvxN2MhCLwzV6OBbFSkwZ2OamCrs9ZY4i5L77jQ/w4UmUr+lqX8qbaqVq6bZZkApn+IgJSg== -prettier@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.1.tgz#65271fc9320ce4913c57747a70ce635b30beaa40" - integrity sha512-fcOWSnnpCrovBsmFZIGIy9UqK2FaI7Hqax+DIO0A9UxeVoY4iweyaFjS5TavZN97Hfehph0nhsZnjlVKzEQSrQ== +prettier@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.2.tgz#78fcecd6d870551aa5547437cdae39d4701dca5b" + integrity sha512-o2YR9qtniXvwEZlOKbveKfDQVyqxbEIWn48Z8m3ZJjBjcCmUy3xZGIv+7AkaeuaTr6yPXJjwv07ZWlsWbEy1rQ== pretty-format@^29.5.0: version "29.6.1" From 7c476e39b6c5e84e48822077203532d4db2d5147 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Aug 2023 21:20:55 +0000 Subject: [PATCH 225/435] Bump @dotlottie/player-component from 2.2.0 to 2.3.0 Bumps [@dotlottie/player-component](https://github.com/dotlottie/player-component) from 2.2.0 to 2.3.0. - [Release notes](https://github.com/dotlottie/player-component/releases) - [Commits](https://github.com/dotlottie/player-component/compare/@dotlottie/player-component@2.2.0...@dotlottie/player-component@2.3.0) --- updated-dependencies: - dependency-name: "@dotlottie/player-component" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 73185117b7..e77069a13c 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "visualizer": "vite-bundle-visualizer" }, "dependencies": { - "@dotlottie/player-component": "^2.2.0", + "@dotlottie/player-component": "^2.3.0", "@fortawesome/fontawesome-svg-core": "^6.4.2", "@fortawesome/free-brands-svg-icons": "^6.4.2", "@fortawesome/free-regular-svg-icons": "^6.4.2", diff --git a/yarn.lock b/yarn.lock index 4e31c90c37..b79dfb9109 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1110,10 +1110,10 @@ "@babel/helper-validator-identifier" "^7.22.5" to-fast-properties "^2.0.0" -"@dotlottie/player-component@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@dotlottie/player-component/-/player-component-2.2.0.tgz#43b48b522ee55560ba9efc835594bc39d1b21d9a" - integrity sha512-mKBHDZYjkhV7g79FxBCmlhYZkK6CwIPCePw6ExhY2432KbsdReS+ZiiIL59mqK8dC5IYcNURccR+8v3SYiL5Qw== +"@dotlottie/player-component@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@dotlottie/player-component/-/player-component-2.3.0.tgz#1b04ff8600eccbf75f6229de9b61eaa035449c58" + integrity sha512-/+i+j/EcbLyQCt0Cq6QS7stf4n3bwHr22uTa8fAd1oHPRiy2x/89ffH/SGTRHKiAL043Ar2rQZ//2oDOBw4Alg== dependencies: lit "^2.7.5" From 4aa82e984bec43fd5c1b8525a350ccb4ecb882eb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Aug 2023 21:21:13 +0000 Subject: [PATCH 226/435] Bump framer-motion from 10.15.2 to 10.16.0 Bumps [framer-motion](https://github.com/framer/motion) from 10.15.2 to 10.16.0. - [Changelog](https://github.com/framer/motion/blob/v10.16.0/CHANGELOG.md) - [Commits](https://github.com/framer/motion/compare/v10.15.2...v10.16.0) --- updated-dependencies: - dependency-name: framer-motion dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index e77069a13c..f47324299c 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "buffer": "^6.0.3", "chart.js": "^4.3.3", "date-fns": "^2.29.3", - "framer-motion": "^10.15.2", + "framer-motion": "^10.16.0", "i18next": "^23.4.4", "i18next-browser-languagedetector": "^7.1.0", "lodash.throttle": "^4.1.1", diff --git a/yarn.lock b/yarn.lock index b79dfb9109..b51eb56824 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3667,10 +3667,10 @@ formdata-polyfill@^4.0.10: dependencies: fetch-blob "^3.1.2" -framer-motion@^10.15.2: - version "10.15.2" - resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-10.15.2.tgz#703e31b78b3ca06ca9fb41e6da89c1c342fc02e8" - integrity sha512-z14GYH4WQXnuTgggwf0qyX0vo98PDE+dw21F7aLzUqEcrsmfLovy4jPiA82Cp/X0juWuEHte7rJGOjds9GAQFA== +framer-motion@^10.16.0: + version "10.16.0" + resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-10.16.0.tgz#c8020d05d98662ba01d294b7d4c2e263073829cf" + integrity sha512-R+88Mkr/1dr7XHjacwptfJyrywRzQ1HZX3YSZtN4tFMBq1O8GGCbDEv31Nf/H08o0hUXLC87GkxsR/1bZgwXfw== dependencies: tslib "^2.4.0" optionalDependencies: From 515fbb1afb111f4fc1198024bf046b89af20637b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Aug 2023 21:20:44 +0000 Subject: [PATCH 227/435] Bump eslint-plugin-react from 7.33.1 to 7.33.2 Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.33.1 to 7.33.2. - [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases) - [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md) - [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.33.1...v7.33.2) --- updated-dependencies: - dependency-name: eslint-plugin-react dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 135 ++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 130 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index f47324299c..1a9a833195 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ "eslint-plugin-prefer-arrow": "^1.2.3", "eslint-plugin-prefer-arrow-functions": "^3.1.4", "eslint-plugin-prettier": "^5.0.0", - "eslint-plugin-react": "^7.33.1", + "eslint-plugin-react": "^7.33.2", "eslint-plugin-unused-imports": "^3.0.0", "gh-pages": "^6.0.0", "prettier": "^3.0.2", diff --git a/yarn.lock b/yarn.lock index b51eb56824..280a1bca03 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2509,6 +2509,13 @@ async@^3.2.4: resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== +asynciterator.prototype@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz#8c5df0514936cdd133604dfcc9d3fb93f09b2b62" + integrity sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg== + dependencies: + has-symbols "^1.0.3" + available-typed-arrays@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" @@ -3132,7 +3139,7 @@ es-abstract@^1.19.0, es-abstract@^1.20.4: unbox-primitive "^1.0.2" which-typed-array "^1.1.9" -es-abstract@^1.21.2: +es-abstract@^1.21.2, es-abstract@^1.21.3: version "1.22.1" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.1.tgz#8b4e5fc5cefd7f1660f0f8e1a52900dfbc9d9ccc" integrity sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw== @@ -3177,6 +3184,26 @@ es-abstract@^1.21.2: unbox-primitive "^1.0.2" which-typed-array "^1.1.10" +es-iterator-helpers@^1.0.12: + version "1.0.13" + resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.13.tgz#72101046ffc19baf9996adc70e6177a26e6e8084" + integrity sha512-LK3VGwzvaPWobO8xzXXGRUOGw8Dcjyfk62CsY/wfHN75CwsJPbuypOYJxK6g5RyEL8YDjIWcl6jgd8foO6mmrA== + dependencies: + asynciterator.prototype "^1.0.0" + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.21.3" + es-set-tostringtag "^2.0.1" + function-bind "^1.1.1" + get-intrinsic "^1.2.1" + globalthis "^1.0.3" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.5" + iterator.prototype "^1.1.0" + safe-array-concat "^1.0.0" + es-set-tostringtag@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" @@ -3369,15 +3396,16 @@ eslint-plugin-prettier@^5.0.0: prettier-linter-helpers "^1.0.0" synckit "^0.8.5" -eslint-plugin-react@^7.33.1: - version "7.33.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.33.1.tgz#bc27cccf860ae45413a4a4150bf0977345c1ceab" - integrity sha512-L093k0WAMvr6VhNwReB8VgOq5s2LesZmrpPdKz/kZElQDzqS7G7+DnKoqT+w4JwuiGeAhAvHO0fvy0Eyk4ejDA== +eslint-plugin-react@^7.33.2: + version "7.33.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz#69ee09443ffc583927eafe86ffebb470ee737608" + integrity sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw== dependencies: array-includes "^3.1.6" array.prototype.flatmap "^1.3.1" array.prototype.tosorted "^1.1.1" doctrine "^2.1.0" + es-iterator-helpers "^1.0.12" estraverse "^5.3.0" jsx-ast-utils "^2.4.1 || ^3.0.0" minimatch "^3.1.2" @@ -4035,6 +4063,13 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== +is-async-function@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646" + integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA== + dependencies: + has-tostringtag "^1.0.0" + is-bigint@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" @@ -4069,7 +4104,7 @@ is-core-module@^2.11.0, is-core-module@^2.12.0, is-core-module@^2.12.1, is-core- dependencies: has "^1.0.3" -is-date-object@^1.0.1: +is-date-object@^1.0.1, is-date-object@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== @@ -4091,11 +4126,25 @@ is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== +is-finalizationregistry@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz#c8749b65f17c133313e661b1289b95ad3dbd62e6" + integrity sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw== + dependencies: + call-bind "^1.0.2" + is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +is-generator-function@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" @@ -4110,6 +4159,11 @@ is-inside-container@^1.0.0: dependencies: is-docker "^3.0.0" +is-map@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + is-negative-zero@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" @@ -4140,6 +4194,11 @@ is-regex@^1.1.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" +is-set@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + is-shared-array-buffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" @@ -4182,6 +4241,11 @@ is-typed-array@^1.1.10, is-typed-array@^1.1.9: gopd "^1.0.1" has-tostringtag "^1.0.0" +is-weakmap@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" + integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== + is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" @@ -4189,6 +4253,14 @@ is-weakref@^1.0.2: dependencies: call-bind "^1.0.2" +is-weakset@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" + integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" @@ -4206,6 +4278,17 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== +iterator.prototype@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.0.tgz#690c88b043d821f783843aaf725d7ac3b62e3b46" + integrity sha512-rjuhAk1AJ1fssphHD0IFV6TWL40CwRZ53FrztKx43yk2v6rguBYsY4Bj1VU4HmoMmKwZUlx7mfnhDf9cOp4YTw== + dependencies: + define-properties "^1.1.4" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + has-tostringtag "^1.0.0" + reflect.getprototypeof "^1.0.3" + "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -5051,6 +5134,18 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" +reflect.getprototypeof@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.3.tgz#2738fd896fcc3477ffbd4190b40c2458026b6928" + integrity sha512-TTAOZpkJ2YLxl7mVHWrNo3iDMEkYlva/kgFcXndqMgbo/AZUmmavEkdXV+hXtE4P8xdyEKRzalaFqZVuwIk/Nw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + get-intrinsic "^1.1.1" + globalthis "^1.0.3" + which-builtin-type "^1.1.3" + regenerate-unicode-properties@^10.1.0: version "10.1.0" resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" @@ -5933,6 +6028,34 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" +which-builtin-type@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.1.3.tgz#b1b8443707cc58b6e9bf98d32110ff0c2cbd029b" + integrity sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw== + dependencies: + function.prototype.name "^1.1.5" + has-tostringtag "^1.0.0" + is-async-function "^2.0.0" + is-date-object "^1.0.5" + is-finalizationregistry "^1.0.2" + is-generator-function "^1.0.10" + is-regex "^1.1.4" + is-weakref "^1.0.2" + isarray "^2.0.5" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.9" + +which-collection@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" + integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== + dependencies: + is-map "^2.0.1" + is-set "^2.0.1" + is-weakmap "^2.0.1" + is-weakset "^2.0.1" + which-typed-array@^1.1.10: version "1.1.11" resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.11.tgz#99d691f23c72aab6768680805a271b69761ed61a" From 94e8edf46a1af206d6f8d3a3143977b22bfb4369 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Aug 2023 21:22:01 +0000 Subject: [PATCH 228/435] Bump @ledgerhq/hw-transport-webhid from 6.27.18 to 6.27.19 Bumps [@ledgerhq/hw-transport-webhid](https://github.com/LedgerHQ/ledger-live) from 6.27.18 to 6.27.19. - [Release notes](https://github.com/LedgerHQ/ledger-live/releases) - [Commits](https://github.com/LedgerHQ/ledger-live/compare/@ledgerhq/hw-transport-webhid@6.27.18...@ledgerhq/hw-transport-webhid@6.27.19) --- updated-dependencies: - dependency-name: "@ledgerhq/hw-transport-webhid" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 44 ++++++++++++++++++++++---------------------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/package.json b/package.json index 1a9a833195..292d91fd1b 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "@fortawesome/free-regular-svg-icons": "^6.4.2", "@fortawesome/free-solid-svg-icons": "^6.4.2", "@fortawesome/react-fontawesome": "^0.2.0", - "@ledgerhq/hw-transport-webhid": "^6.27.18", + "@ledgerhq/hw-transport-webhid": "^6.27.19", "@polkadot/api": "^10.9.1", "@polkadot/keyring": "^12.1.1", "@polkadot/rpc-provider": "^10.9.1", diff --git a/yarn.lock b/yarn.lock index 280a1bca03..d695cf3aea 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1396,38 +1396,38 @@ resolved "https://registry.yarnpkg.com/@kurkle/color/-/color-0.3.2.tgz#5acd38242e8bde4f9986e7913c8fdf49d3aa199f" integrity sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw== -"@ledgerhq/devices@^8.0.6": - version "8.0.6" - resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-8.0.6.tgz#c318a3d5c756e20065370539a395f3024f0fac43" - integrity sha512-KWA68krUD9pFp6bJAhTe2nurhku4HnS5LwtHnCXg8PB0DbzWt27PTKgVOCKO7TEdJ3wu4eVcgP5RQrap22pQHQ== +"@ledgerhq/devices@^8.0.7": + version "8.0.7" + resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-8.0.7.tgz#206434dbd8a097529bbfc95f5eef94c2923c7578" + integrity sha512-BbPyET52lXnVs7CxJWrGYqmtGdbGzj+XnfCqLsDnA7QYr1CZREysxmie+Rr6BKpNDBRVesAovXjtaVaZOn+upw== dependencies: - "@ledgerhq/errors" "^6.13.1" + "@ledgerhq/errors" "^6.14.0" "@ledgerhq/logs" "^6.10.1" rxjs "6" semver "^7.3.5" -"@ledgerhq/errors@^6.13.1": - version "6.13.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.13.1.tgz#fd9570c1806824de734aed21df1a3d643ba8ed0c" - integrity sha512-y5qOFiX7ILACF7GvCAB67S5nCABEP5rm8lxK66qKIBRApcLlTplbjUACDRfKQbAIwf0SJPuR31rtTKB92ykwKQ== +"@ledgerhq/errors@^6.14.0": + version "6.14.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.14.0.tgz#0bf253983773ef12eebce2091f463bc719223b37" + integrity sha512-ZWJw2Ti6Dq1Ott/+qYqJdDWeZm16qI3VNG5rFlb0TQ3UcAyLIQZbnnzzdcVVwVeZiEp66WIpINd/pBdqsHVyOA== -"@ledgerhq/hw-transport-webhid@^6.27.18": - version "6.27.18" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-6.27.18.tgz#7ad98017b883fca78a2389f1d6dc05762997c7bd" - integrity sha512-KhnQ4ETbY9y2nvJ/6JJI2dZzfvEcZacXGdTeL4eG29gJrZkOx45++q+L2TAhGPbLH2wYXKqsk63A061lrgSNSw== +"@ledgerhq/hw-transport-webhid@^6.27.19": + version "6.27.19" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-6.27.19.tgz#5a655b497258d94ec6494db7b56e17dd0c610638" + integrity sha512-RMnktayqqLE2uFQDw9TKoW+WSP8KnT0ElKcIISf3sXVrzHD2y0moPk/wXOzGfi+cgN4uiKy86UD/5mgz3wlm6Q== dependencies: - "@ledgerhq/devices" "^8.0.6" - "@ledgerhq/errors" "^6.13.1" - "@ledgerhq/hw-transport" "^6.28.7" + "@ledgerhq/devices" "^8.0.7" + "@ledgerhq/errors" "^6.14.0" + "@ledgerhq/hw-transport" "^6.28.8" "@ledgerhq/logs" "^6.10.1" -"@ledgerhq/hw-transport@^6.27.1", "@ledgerhq/hw-transport@^6.28.7": - version "6.28.7" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.28.7.tgz#17120f0ea8bdd34632010ed4e284a1c57f1bd41d" - integrity sha512-P6XWv/Blb3AvzNH/33ouqFvsUwjCsQN5iMTLuVJqxVKwj91QmdYZfYR9U9FB0gBKrIQ7BONUgTX/ko9EnDV6/g== +"@ledgerhq/hw-transport@^6.27.1", "@ledgerhq/hw-transport@^6.28.8": + version "6.28.8" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.28.8.tgz#f99a5c71c5c09591e9bfb1b970c42aafbe81351f" + integrity sha512-XxQVl4htd018u/M66r0iu5nlHi+J6QfdPsORzDF6N39jaz+tMqItb7tUlXM/isggcuS5lc7GJo7NOuJ8rvHZaQ== dependencies: - "@ledgerhq/devices" "^8.0.6" - "@ledgerhq/errors" "^6.13.1" + "@ledgerhq/devices" "^8.0.7" + "@ledgerhq/errors" "^6.14.0" events "^3.3.0" "@ledgerhq/logs@^6.10.1": From 0b00e74fa217a13bfd0b534130cfea4c38fc83af Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Thu, 17 Aug 2023 12:40:57 +0700 Subject: [PATCH 229/435] abstract getDataFromExposures --- src/contexts/Validators/defaults.ts | 7 +++ src/contexts/Validators/index.tsx | 77 ++++++++++++++--------------- 2 files changed, 44 insertions(+), 40 deletions(-) diff --git a/src/contexts/Validators/defaults.ts b/src/contexts/Validators/defaults.ts index 71bbef27bc..71ce09ea84 100644 --- a/src/contexts/Validators/defaults.ts +++ b/src/contexts/Validators/defaults.ts @@ -2,6 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only /* eslint-disable @typescript-eslint/no-unused-vars */ +import BigNumber from 'bignumber.js'; import type { ValidatorsContextInterface } from 'contexts/Validators/types'; export const defaultSessionValidators = { @@ -14,6 +15,12 @@ export const defaultSessionParachainValidators = { unsub: null, }; +export const defaultExporeData = { + exposures: [], + notFullCommissionCount: 0, + totalNonAllCommission: new BigNumber(0), +}; + export const defaultValidatorsContext: ValidatorsContextInterface = { fetchValidatorMetaBatch: (k, v, r) => {}, removeValidatorMetaBatch: (k) => {}, diff --git a/src/contexts/Validators/index.tsx b/src/contexts/Validators/index.tsx index 4ba7dc965f..312fb953f2 100644 --- a/src/contexts/Validators/index.tsx +++ b/src/contexts/Validators/index.tsx @@ -26,6 +26,7 @@ import { useConnect } from '../Connect'; import { useNetworkMetrics } from '../Network'; import { useActivePools } from '../Pools/ActivePools'; import { + defaultExporeData, defaultSessionParachainValidators, defaultSessionValidators, defaultValidatorsContext, @@ -143,9 +144,8 @@ export const ValidatorsProvider = ({ }, [isReady, activeAccount, bondedAccounts]); const fetchNominatedList = async () => { - if (!activeAccount) { - return; - } + if (!activeAccount) return; + // get raw targets list const targets = getAccountNominations(activeAccount); @@ -205,37 +205,27 @@ export const ValidatorsProvider = ({ setFavoritesList(favoritesWithPrefs || []); }; - /* - * Fetches the active validator set. - * Validator meta batches are derived from this initial list. - */ - const fetchValidators = async () => { - if (!isReady || !api) { - return; - } + // Fetch validator entries and format the returning data. + const getDataFromExposures = async () => { + if (!isReady || !api) return defaultExporeData; - // return if fetching not started - if ([1, 2].includes(fetchedValidators)) { - return; - } + const entries = await api.query.staking.validators.entries(); - setFetchedValidators(1); - - // fetch validator set - const v: Validator[] = []; + const exposures: Validator[] = []; + let notFullCommissionCount = 0; let totalNonAllCommission = new BigNumber(0); - const exposures = await api.query.staking.validators.entries(); - exposures.forEach(([a, p]: AnyApi) => { - const address = a.args[0].toHuman(); + entries.forEach(([a, p]: AnyApi) => { + const address = a.toHuman().pop(); const prefs = p.toHuman(); - - const commission = new BigNumber(prefs.commission.slice(0, -1)); + const commission = new BigNumber(prefs.commission.replace(/%/g, '')); if (!commission.isEqualTo(100)) { totalNonAllCommission = totalNonAllCommission.plus(commission); + } else { + notFullCommissionCount++; } - v.push({ + exposures.push({ address, prefs: { commission: Number(commission.toFixed(2)), @@ -244,11 +234,24 @@ export const ValidatorsProvider = ({ }); }); - // get average network commission for all non-100% commissioned validators. - const notFullCommissionCount = exposures.filter( - (e: AnyApi) => e.commission !== '100%' - ).length; + return { exposures, notFullCommissionCount, totalNonAllCommission }; + }; + + // Fetches and formats the active validator set, and derives metrics from the result. + const fetchValidators = async () => { + if (!isReady || !api) return; + + // Return if fetching has not yet started. + if ([1, 2].includes(fetchedValidators)) { + return; + } + setFetchedValidators(1); + // Await formatted exposure data. + const { exposures, notFullCommissionCount, totalNonAllCommission } = + await getDataFromExposures(); + + // Get average network commission for all non-100% commissioned validators. const average = notFullCommissionCount ? totalNonAllCommission .dividedBy(notFullCommissionCount) @@ -258,13 +261,11 @@ export const ValidatorsProvider = ({ setFetchedValidators(2); setAvgCommission(average); - // shuffle validators before setting them. - setValidators(shuffle(v)); + // Validators are shuffled before committed to state. + setValidators(shuffle(exposures)); }; - /* - * subscribe to active session - */ + // Subscribe to active session const subscribeSessionValidators = async () => { if (api !== null && isReady) { const unsub: AnyApi = await api.query.session.validators((v: AnyApi) => { @@ -277,9 +278,7 @@ export const ValidatorsProvider = ({ } }; - /* - * subscribe to active parachain validators - */ + // Subscribe to active parachain validators. const subscribeParachainValidators = async () => { if (api !== null && isReady) { const unsub: AnyApi = await api.query.paraSessionInfo.accountKeys( @@ -295,9 +294,7 @@ export const ValidatorsProvider = ({ } }; - /* - * fetches prefs for a list of validators - */ + // Fetches prefs for a list of validators const fetchValidatorPrefs = async (addresses: ValidatorAddresses) => { if (!addresses.length || !api) { return null; From ab7e780f8a183d7314ed50e1df4ee03144d7d797 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Thu, 17 Aug 2023 12:43:56 +0700 Subject: [PATCH 230/435] validatorsFetched to Sync --- src/contexts/Validators/index.tsx | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/src/contexts/Validators/index.tsx b/src/contexts/Validators/index.tsx index 312fb953f2..904dfb8b1c 100644 --- a/src/contexts/Validators/index.tsx +++ b/src/contexts/Validators/index.tsx @@ -18,7 +18,7 @@ import type { ValidatorAddresses, ValidatorsContextInterface, } from 'contexts/Validators/types'; -import type { AnyApi, AnyMetaBatch, Fn } from 'types'; +import type { AnyApi, AnyMetaBatch, Fn, Sync } from 'types'; import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import { useApi } from '../Api'; import { useBonded } from '../Bonded'; @@ -47,13 +47,13 @@ export const ValidatorsProvider = ({ const { maxNominatorRewardedPerValidator } = consts; const { earliestStoredSession } = metrics; - // stores the total validator entries + // Stores the total validator entries. const [validators, setValidators] = useState<Validator[]>([]); - // track whether the validator list has been fetched yet - const [fetchedValidators, setFetchedValidators] = useState<number>(0); + // Track whether the validator list has been fetched. + const [validatorsFetched, setValidatorsFetched] = useState<Sync>('unsynced'); - // stores the currently active validator set + // Stores the currently active validator set. const [sessionValidators, setSessionValidators] = useState<SessionValidators>( defaultSessionValidators ); @@ -99,7 +99,7 @@ export const ValidatorsProvider = ({ // reset validators list on network change useEffectIgnoreInitial(() => { - setFetchedValidators(0); + setValidatorsFetched('unsynced'); setSessionValidators(defaultSessionValidators); setSessionParachainValidators(defaultSessionParachainValidators); removeValidatorMetaBatch('validators_browse'); @@ -239,13 +239,9 @@ export const ValidatorsProvider = ({ // Fetches and formats the active validator set, and derives metrics from the result. const fetchValidators = async () => { - if (!isReady || !api) return; + if (!isReady || !api || validatorsFetched !== 'unsynced') return; - // Return if fetching has not yet started. - if ([1, 2].includes(fetchedValidators)) { - return; - } - setFetchedValidators(1); + setValidatorsFetched('syncing'); // Await formatted exposure data. const { exposures, notFullCommissionCount, totalNonAllCommission } = @@ -259,7 +255,7 @@ export const ValidatorsProvider = ({ .toNumber() : 0; - setFetchedValidators(2); + setValidatorsFetched('synced'); setAvgCommission(average); // Validators are shuffled before committed to state. setValidators(shuffle(exposures)); From 83112c53f0cea3a4385113535f542509de547cb6 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Thu, 17 Aug 2023 12:47:44 +0700 Subject: [PATCH 231/435] getLocalFavorites to utils --- src/contexts/Validators/Utils.ts | 12 ++++++++++++ src/contexts/Validators/index.tsx | 29 +++++++++++------------------ 2 files changed, 23 insertions(+), 18 deletions(-) create mode 100644 src/contexts/Validators/Utils.ts diff --git a/src/contexts/Validators/Utils.ts b/src/contexts/Validators/Utils.ts new file mode 100644 index 0000000000..7034f3a7e3 --- /dev/null +++ b/src/contexts/Validators/Utils.ts @@ -0,0 +1,12 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: GPL-3.0-only + +import type { NetworkName } from 'types'; + +// Get favorite validators from local storage. +export const getLocalFavorites = (network: NetworkName) => { + const localFavourites = localStorage.getItem(`${network}_favorites`); + return localFavourites !== null + ? (JSON.parse(localFavourites) as string[]) + : []; +}; diff --git a/src/contexts/Validators/index.tsx b/src/contexts/Validators/index.tsx index 904dfb8b1c..fb2b95f65c 100644 --- a/src/contexts/Validators/index.tsx +++ b/src/contexts/Validators/index.tsx @@ -31,21 +31,21 @@ import { defaultSessionValidators, defaultValidatorsContext, } from './defaults'; +import { getLocalFavorites } from './Utils'; -// wrapper component to provide components with context export const ValidatorsProvider = ({ children, }: { children: React.ReactNode; }) => { - const { isReady, api, network, consts } = useApi(); const { activeAccount } = useConnect(); + const { poolNominations } = useActivePools(); + const { isReady, api, network, consts } = useApi(); const { activeEra, metrics } = useNetworkMetrics(); const { bondedAccounts, getAccountNominations } = useBonded(); - const { poolNominations } = useActivePools(); - const { units } = network; - const { maxNominatorRewardedPerValidator } = consts; + const { units, name } = network; const { earliestStoredSession } = metrics; + const { maxNominatorRewardedPerValidator } = consts; // Stores the total validator entries. const [validators, setValidators] = useState<Validator[]>([]); @@ -58,14 +58,15 @@ export const ValidatorsProvider = ({ defaultSessionValidators ); - // stores the average network commission rate + // Stores the average network commission rate. const [avgCommission, setAvgCommission] = useState(0); - // stores the currently active parachain validator set + // Stores the currently active parachain validator set. const [sessionParachainValidators, setSessionParachainValidators] = useState<SessionParachainValidators>(defaultSessionParachainValidators); - // stores the meta data batches for validator lists + // TODO: refactor. + // Stores the meta data batches for validator lists. const [validatorMetaBatches, setValidatorMetaBatch] = useState<AnyMetaBatch>( {} ); @@ -74,16 +75,8 @@ export const ValidatorsProvider = ({ // stores the meta batch subscriptions for validator lists const validatorSubsRef = useRef<Record<string, Fn[]>>({}); - // get favorites from local storage - const getFavorites = () => { - const localFavourites = localStorage.getItem(`${network.name}_favorites`); - return localFavourites !== null - ? (JSON.parse(localFavourites) as string[]) - : []; - }; - // stores the user's favorite validators - const [favorites, setFavorites] = useState<string[]>(getFavorites()); + const [favorites, setFavorites] = useState<string[]>(getLocalFavorites(name)); // stores the user's nominated validators as list const [nominated, setNominated] = useState<Validator[] | null>(null); @@ -185,7 +178,7 @@ export const ValidatorsProvider = ({ // re-fetch favorites on network change useEffectIgnoreInitial(() => { - setFavorites(getFavorites()); + setFavorites(getLocalFavorites(name)); }, [network]); // fetch favorites in validator list format From cdf8bb7a2c1bf2efe5b51a7d1f7055af683ede82 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Thu, 17 Aug 2023 12:59:25 +0700 Subject: [PATCH 232/435] sessionValidator unsub to ref --- src/contexts/Validators/defaults.ts | 9 +---- src/contexts/Validators/index.tsx | 37 ++++++++++--------- src/contexts/Validators/types.ts | 7 +--- .../Hooks/useValidatorFilters/index.tsx | 10 ++--- 4 files changed, 27 insertions(+), 36 deletions(-) diff --git a/src/contexts/Validators/defaults.ts b/src/contexts/Validators/defaults.ts index 71ce09ea84..a35e1cb9fa 100644 --- a/src/contexts/Validators/defaults.ts +++ b/src/contexts/Validators/defaults.ts @@ -5,17 +5,12 @@ import BigNumber from 'bignumber.js'; import type { ValidatorsContextInterface } from 'contexts/Validators/types'; -export const defaultSessionValidators = { - list: [], - unsub: null, -}; - export const defaultSessionParachainValidators = { list: [], unsub: null, }; -export const defaultExporeData = { +export const defaultExposureData = { exposures: [], notFullCommissionCount: 0, totalNonAllCommission: new BigNumber(0), @@ -30,7 +25,7 @@ export const defaultValidatorsContext: ValidatorsContextInterface = { validators: [], avgCommission: 0, meta: {}, - session: defaultSessionValidators, + session: [], sessionParachain: [], favorites: [], nominated: null, diff --git a/src/contexts/Validators/index.tsx b/src/contexts/Validators/index.tsx index fb2b95f65c..03faadcbd0 100644 --- a/src/contexts/Validators/index.tsx +++ b/src/contexts/Validators/index.tsx @@ -10,10 +10,9 @@ import { } from '@polkadotcloud/utils'; import BigNumber from 'bignumber.js'; import { ValidatorCommunity } from '@polkadotcloud/community/validators'; -import React, { useRef, useState } from 'react'; +import React, { useEffect, useRef, useState } from 'react'; import type { SessionParachainValidators, - SessionValidators, Validator, ValidatorAddresses, ValidatorsContextInterface, @@ -26,9 +25,8 @@ import { useConnect } from '../Connect'; import { useNetworkMetrics } from '../Network'; import { useActivePools } from '../Pools/ActivePools'; import { - defaultExporeData, + defaultExposureData, defaultSessionParachainValidators, - defaultSessionValidators, defaultValidatorsContext, } from './defaults'; import { getLocalFavorites } from './Utils'; @@ -50,13 +48,15 @@ export const ValidatorsProvider = ({ // Stores the total validator entries. const [validators, setValidators] = useState<Validator[]>([]); + // Stores the user's favorite validators. + const [favorites, setFavorites] = useState<string[]>(getLocalFavorites(name)); + // Track whether the validator list has been fetched. const [validatorsFetched, setValidatorsFetched] = useState<Sync>('unsynced'); // Stores the currently active validator set. - const [sessionValidators, setSessionValidators] = useState<SessionValidators>( - defaultSessionValidators - ); + const [sessionValidators, setSessionValidators] = useState<string[]>([]); + const sessionUnsub = useRef<Fn>(); // Stores the average network commission rate. const [avgCommission, setAvgCommission] = useState(0); @@ -72,12 +72,10 @@ export const ValidatorsProvider = ({ ); const validatorMetaBatchesRef = useRef(validatorMetaBatches); + // TODO: refactor. // stores the meta batch subscriptions for validator lists const validatorSubsRef = useRef<Record<string, Fn[]>>({}); - // stores the user's favorite validators - const [favorites, setFavorites] = useState<string[]>(getLocalFavorites(name)); - // stores the user's nominated validators as list const [nominated, setNominated] = useState<Validator[] | null>(null); @@ -93,7 +91,7 @@ export const ValidatorsProvider = ({ // reset validators list on network change useEffectIgnoreInitial(() => { setValidatorsFetched('unsynced'); - setSessionValidators(defaultSessionValidators); + setSessionValidators([]); setSessionParachainValidators(defaultSessionParachainValidators); removeValidatorMetaBatch('validators_browse'); setAvgCommission(0); @@ -162,6 +160,14 @@ export const ValidatorsProvider = ({ } }, [isReady, poolNominations]); + // Unsubscribe on network change and component unmount. + useEffect(() => { + if (sessionValidators.length) { + sessionUnsub.current?.(); + } + return () => sessionUnsub.current?.(); + }, [network]); + const fetchPoolNominatedList = async () => { // get raw nominations list let n = poolNominations.targets; @@ -200,7 +206,7 @@ export const ValidatorsProvider = ({ // Fetch validator entries and format the returning data. const getDataFromExposures = async () => { - if (!isReady || !api) return defaultExporeData; + if (!isReady || !api) return defaultExposureData; const entries = await api.query.staking.validators.entries(); @@ -258,11 +264,8 @@ export const ValidatorsProvider = ({ const subscribeSessionValidators = async () => { if (api !== null && isReady) { const unsub: AnyApi = await api.query.session.validators((v: AnyApi) => { - setSessionValidators({ - ...sessionValidators, - list: v.toHuman(), - unsub, - }); + setSessionValidators(v.toHuman()); + sessionUnsub.current = unsub; }); } }; diff --git a/src/contexts/Validators/types.ts b/src/contexts/Validators/types.ts index 6338738b36..94aa233fe4 100644 --- a/src/contexts/Validators/types.ts +++ b/src/contexts/Validators/types.ts @@ -12,7 +12,7 @@ export interface ValidatorsContextInterface { validators: Validator[]; avgCommission: number; meta: AnyMetaBatch; - session: SessionValidators; + session: string[]; sessionParachain: string[]; favorites: string[]; nominated: Validator[] | null; @@ -25,11 +25,6 @@ export type ValidatorAddresses = { address: string; }[]; -export interface SessionValidators { - list: string[]; - unsub: { (): void } | null; -} - export interface SessionParachainValidators { list: string[]; unsub: { (): void } | null; diff --git a/src/library/Hooks/useValidatorFilters/index.tsx b/src/library/Hooks/useValidatorFilters/index.tsx index 33321130ce..49992bee03 100644 --- a/src/library/Hooks/useValidatorFilters/index.tsx +++ b/src/library/Hooks/useValidatorFilters/index.tsx @@ -117,10 +117,8 @@ export const useValidatorFilters = () => { */ const filterActive = (list: any) => { // if list has not yet been populated, return original list - if (session.list.length === 0) return list; - return list.filter((validator: any) => - session.list.includes(validator.address) - ); + if (session.length === 0) return list; + return list.filter((validator: any) => session.includes(validator.address)); }; /* @@ -143,9 +141,9 @@ export const useValidatorFilters = () => { */ const filterInSession = (list: any) => { // if list has not yet been populated, return original list - if (session.list.length === 0) return list; + if (session.length === 0) return list; return list.filter( - (validator: any) => !session.list.includes(validator.address) + (validator: any) => !session.includes(validator.address) ); }; From 8e8d884d27aae9a61e491ae5d7a2bae803b1698b Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Thu, 17 Aug 2023 13:01:19 +0700 Subject: [PATCH 233/435] session -> sessionValidators --- src/contexts/Validators/defaults.ts | 2 +- src/contexts/Validators/index.tsx | 2 +- src/contexts/Validators/types.ts | 2 +- src/library/Hooks/useValidatorFilters/index.tsx | 12 +++++++----- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/contexts/Validators/defaults.ts b/src/contexts/Validators/defaults.ts index a35e1cb9fa..58e359c1dd 100644 --- a/src/contexts/Validators/defaults.ts +++ b/src/contexts/Validators/defaults.ts @@ -25,7 +25,7 @@ export const defaultValidatorsContext: ValidatorsContextInterface = { validators: [], avgCommission: 0, meta: {}, - session: [], + sessionValidators: [], sessionParachain: [], favorites: [], nominated: null, diff --git a/src/contexts/Validators/index.tsx b/src/contexts/Validators/index.tsx index 03faadcbd0..2eec1eacbd 100644 --- a/src/contexts/Validators/index.tsx +++ b/src/contexts/Validators/index.tsx @@ -617,7 +617,7 @@ export const ValidatorsProvider = ({ validators, avgCommission, meta: validatorMetaBatchesRef.current, - session: sessionValidators, + sessionValidators, sessionParachain: sessionParachainValidators.list, favorites, nominated, diff --git a/src/contexts/Validators/types.ts b/src/contexts/Validators/types.ts index 94aa233fe4..3fd5fe2ffc 100644 --- a/src/contexts/Validators/types.ts +++ b/src/contexts/Validators/types.ts @@ -12,7 +12,7 @@ export interface ValidatorsContextInterface { validators: Validator[]; avgCommission: number; meta: AnyMetaBatch; - session: string[]; + sessionValidators: string[]; sessionParachain: string[]; favorites: string[]; nominated: Validator[] | null; diff --git a/src/library/Hooks/useValidatorFilters/index.tsx b/src/library/Hooks/useValidatorFilters/index.tsx index 49992bee03..83d0df9c9b 100644 --- a/src/library/Hooks/useValidatorFilters/index.tsx +++ b/src/library/Hooks/useValidatorFilters/index.tsx @@ -10,7 +10,7 @@ import type { AnyFunction, AnyJson } from 'types'; export const useValidatorFilters = () => { const { t } = useTranslation('library'); const { consts } = useApi(); - const { meta, session, sessionParachain } = useValidators(); + const { meta, sessionValidators, sessionParachain } = useValidators(); const { maxNominatorRewardedPerValidator } = consts; /* @@ -117,8 +117,10 @@ export const useValidatorFilters = () => { */ const filterActive = (list: any) => { // if list has not yet been populated, return original list - if (session.length === 0) return list; - return list.filter((validator: any) => session.includes(validator.address)); + if (sessionValidators.length === 0) return list; + return list.filter((validator: any) => + sessionValidators.includes(validator.address) + ); }; /* @@ -141,9 +143,9 @@ export const useValidatorFilters = () => { */ const filterInSession = (list: any) => { // if list has not yet been populated, return original list - if (session.length === 0) return list; + if (sessionValidators.length === 0) return list; return list.filter( - (validator: any) => !session.includes(validator.address) + (validator: any) => !sessionValidators.includes(validator.address) ); }; From 9f6209a80ade0c094f87b061c62edc61ee977d94 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Thu, 17 Aug 2023 13:08:44 +0700 Subject: [PATCH 234/435] sessionParaValidators, unsub to ref --- src/contexts/Validators/defaults.ts | 2 +- src/contexts/Validators/index.tsx | 64 +++++++++---------- src/contexts/Validators/types.ts | 7 +- .../GenerateNominations/useFetchMethods.tsx | 4 +- .../Hooks/useValidatorFilters/index.tsx | 6 +- src/library/ListItem/Labels/ParaValidator.tsx | 4 +- 6 files changed, 40 insertions(+), 47 deletions(-) diff --git a/src/contexts/Validators/defaults.ts b/src/contexts/Validators/defaults.ts index 58e359c1dd..cabd9cd4ef 100644 --- a/src/contexts/Validators/defaults.ts +++ b/src/contexts/Validators/defaults.ts @@ -26,7 +26,7 @@ export const defaultValidatorsContext: ValidatorsContextInterface = { avgCommission: 0, meta: {}, sessionValidators: [], - sessionParachain: [], + sessionParaValidators: [], favorites: [], nominated: null, poolNominated: null, diff --git a/src/contexts/Validators/index.tsx b/src/contexts/Validators/index.tsx index 2eec1eacbd..88bf2dbd11 100644 --- a/src/contexts/Validators/index.tsx +++ b/src/contexts/Validators/index.tsx @@ -12,7 +12,6 @@ import BigNumber from 'bignumber.js'; import { ValidatorCommunity } from '@polkadotcloud/community/validators'; import React, { useEffect, useRef, useState } from 'react'; import type { - SessionParachainValidators, Validator, ValidatorAddresses, ValidatorsContextInterface, @@ -24,11 +23,7 @@ import { useBonded } from '../Bonded'; import { useConnect } from '../Connect'; import { useNetworkMetrics } from '../Network'; import { useActivePools } from '../Pools/ActivePools'; -import { - defaultExposureData, - defaultSessionParachainValidators, - defaultValidatorsContext, -} from './defaults'; +import { defaultExposureData, defaultValidatorsContext } from './defaults'; import { getLocalFavorites } from './Utils'; export const ValidatorsProvider = ({ @@ -54,16 +49,18 @@ export const ValidatorsProvider = ({ // Track whether the validator list has been fetched. const [validatorsFetched, setValidatorsFetched] = useState<Sync>('unsynced'); + // Stores the average network commission rate. + const [avgCommission, setAvgCommission] = useState(0); + // Stores the currently active validator set. const [sessionValidators, setSessionValidators] = useState<string[]>([]); const sessionUnsub = useRef<Fn>(); - // Stores the average network commission rate. - const [avgCommission, setAvgCommission] = useState(0); - // Stores the currently active parachain validator set. - const [sessionParachainValidators, setSessionParachainValidators] = - useState<SessionParachainValidators>(defaultSessionParachainValidators); + const [sessionParaValidators, setSessionParaValidators] = useState<string[]>( + [] + ); + const sessionParaUnsub = useRef<Fn>(); // TODO: refactor. // Stores the meta data batches for validator lists. @@ -92,7 +89,7 @@ export const ValidatorsProvider = ({ useEffectIgnoreInitial(() => { setValidatorsFetched('unsynced'); setSessionValidators([]); - setSessionParachainValidators(defaultSessionParachainValidators); + setSessionParaValidators([]); removeValidatorMetaBatch('validators_browse'); setAvgCommission(0); setValidators([]); @@ -165,7 +162,13 @@ export const ValidatorsProvider = ({ if (sessionValidators.length) { sessionUnsub.current?.(); } - return () => sessionUnsub.current?.(); + if (sessionParaValidators.length) { + sessionParaUnsub.current?.(); + } + return () => { + sessionUnsub.current?.(); + sessionParaUnsub.current?.(); + }; }, [network]); const fetchPoolNominatedList = async () => { @@ -260,30 +263,25 @@ export const ValidatorsProvider = ({ setValidators(shuffle(exposures)); }; - // Subscribe to active session + // Subscribe to active session validators. const subscribeSessionValidators = async () => { - if (api !== null && isReady) { - const unsub: AnyApi = await api.query.session.validators((v: AnyApi) => { - setSessionValidators(v.toHuman()); - sessionUnsub.current = unsub; - }); - } + if (!api || !isReady) return; + const unsub: AnyApi = await api.query.session.validators((v: AnyApi) => { + setSessionValidators(v.toHuman()); + sessionUnsub.current = unsub; + }); }; // Subscribe to active parachain validators. const subscribeParachainValidators = async () => { - if (api !== null && isReady) { - const unsub: AnyApi = await api.query.paraSessionInfo.accountKeys( - earliestStoredSession.toString(), - (v: AnyApi) => { - setSessionParachainValidators({ - ...sessionParachainValidators, - list: v.toHuman(), - unsub, - }); - } - ); - } + if (!api || !isReady) return; + const unsub: AnyApi = await api.query.paraSessionInfo.accountKeys( + earliestStoredSession.toString(), + (v: AnyApi) => { + setSessionParaValidators(v.toHuman()); + sessionParaUnsub.current = unsub; + } + ); }; // Fetches prefs for a list of validators @@ -618,7 +616,7 @@ export const ValidatorsProvider = ({ avgCommission, meta: validatorMetaBatchesRef.current, sessionValidators, - sessionParachain: sessionParachainValidators.list, + sessionParaValidators, favorites, nominated, poolNominated, diff --git a/src/contexts/Validators/types.ts b/src/contexts/Validators/types.ts index 3fd5fe2ffc..8d9026a4c4 100644 --- a/src/contexts/Validators/types.ts +++ b/src/contexts/Validators/types.ts @@ -13,7 +13,7 @@ export interface ValidatorsContextInterface { avgCommission: number; meta: AnyMetaBatch; sessionValidators: string[]; - sessionParachain: string[]; + sessionParaValidators: string[]; favorites: string[]; nominated: Validator[] | null; poolNominated: Validator[] | null; @@ -25,11 +25,6 @@ export type ValidatorAddresses = { address: string; }[]; -export interface SessionParachainValidators { - list: string[]; - unsub: { (): void } | null; -} - export interface Validator { address: string; prefs: ValidatorPrefs; diff --git a/src/library/GenerateNominations/useFetchMethods.tsx b/src/library/GenerateNominations/useFetchMethods.tsx index d22877ee78..007395a7f4 100644 --- a/src/library/GenerateNominations/useFetchMethods.tsx +++ b/src/library/GenerateNominations/useFetchMethods.tsx @@ -7,7 +7,7 @@ import type { Validator } from 'contexts/Validators/types'; import { useValidatorFilters } from 'library/Hooks/useValidatorFilters'; export const useFetchMehods = () => { - const { validators, sessionParachain } = useValidators(); + const { validators, sessionParaValidators } = useValidators(); const { applyFilter, applyOrder } = useValidatorFilters(); let { favoritesList } = useValidators(); if (favoritesList === null) { @@ -144,7 +144,7 @@ export const useFetchMehods = () => { .filter( (n: any) => !nominations.find((o: any) => o.address === n.address) ) - .filter((n: any) => !sessionParachain?.includes(n.address) || false); + .filter((n: any) => !sessionParaValidators?.includes(n.address) || false); const random = applyFilter( null, diff --git a/src/library/Hooks/useValidatorFilters/index.tsx b/src/library/Hooks/useValidatorFilters/index.tsx index 83d0df9c9b..8e4cd5c7bf 100644 --- a/src/library/Hooks/useValidatorFilters/index.tsx +++ b/src/library/Hooks/useValidatorFilters/index.tsx @@ -10,7 +10,7 @@ import type { AnyFunction, AnyJson } from 'types'; export const useValidatorFilters = () => { const { t } = useTranslation('library'); const { consts } = useApi(); - const { meta, sessionValidators, sessionParachain } = useValidators(); + const { meta, sessionValidators, sessionParaValidators } = useValidators(); const { maxNominatorRewardedPerValidator } = consts; /* @@ -130,9 +130,9 @@ export const useValidatorFilters = () => { */ const filterNonParachainValidator = (list: any) => { // if list has not yet been populated, return original list - if ((sessionParachain?.length ?? 0) === 0) return list; + if ((sessionParaValidators?.length ?? 0) === 0) return list; return list.filter((validator: any) => - sessionParachain.includes(validator.address) + sessionParaValidators.includes(validator.address) ); }; diff --git a/src/library/ListItem/Labels/ParaValidator.tsx b/src/library/ListItem/Labels/ParaValidator.tsx index 51c413362a..bb4be28e99 100644 --- a/src/library/ListItem/Labels/ParaValidator.tsx +++ b/src/library/ListItem/Labels/ParaValidator.tsx @@ -11,12 +11,12 @@ import type { ParaValidatorProps } from '../types'; export const ParaValidator = ({ address }: ParaValidatorProps) => { const { t } = useTranslation('library'); - const { sessionParachain } = useValidators(); + const { sessionParaValidators } = useValidators(); const { setTooltipTextAndOpen } = useTooltip(); const tooltipText = t('validatingParachainBlocks'); - if (!sessionParachain?.includes(address || '')) { + if (!sessionParaValidators?.includes(address || '')) { return <></>; } From 3d6b58e1537ab640adaf975a53ed2d6e3faf9dfe Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Thu, 17 Aug 2023 13:44:11 +0700 Subject: [PATCH 235/435] cache validator exposures, fetch by default --- src/contexts/Validators/Utils.ts | 33 +++++++++++++++ src/contexts/Validators/index.tsx | 70 +++++++++++++++++++++---------- src/contexts/Validators/types.ts | 9 ++++ 3 files changed, 89 insertions(+), 23 deletions(-) diff --git a/src/contexts/Validators/Utils.ts b/src/contexts/Validators/Utils.ts index 7034f3a7e3..6e8f5e3bfc 100644 --- a/src/contexts/Validators/Utils.ts +++ b/src/contexts/Validators/Utils.ts @@ -1,6 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +import type { LocalExposureData, Validator } from 'contexts/Validators/types'; import type { NetworkName } from 'types'; // Get favorite validators from local storage. @@ -10,3 +11,35 @@ export const getLocalFavorites = (network: NetworkName) => { ? (JSON.parse(localFavourites) as string[]) : []; }; + +// Get validator exopsures for an era. +export const getEraLocalExposures = (network: NetworkName, era: string) => { + const data = localStorage.getItem('exposures'); + const current = data ? (JSON.parse(data) as LocalExposureData) : null; + + if (current?.[network]?.era === era) { + return current[network]; + } + return null; +}; + +// Set validator exposure data to local storage. +export const setEraLocalExposures = ( + network: NetworkName, + era: string, + exposures: Validator[], + avgCommission: number +) => { + const current = localStorage.getItem('exposures') || '{}'; + localStorage.setItem( + 'exposures', + JSON.stringify({ + ...JSON.parse(current), + [network]: { + era, + exposures, + avgCommission, + }, + }) + ); +}; diff --git a/src/contexts/Validators/index.tsx b/src/contexts/Validators/index.tsx index 88bf2dbd11..e8d6aeb581 100644 --- a/src/contexts/Validators/index.tsx +++ b/src/contexts/Validators/index.tsx @@ -24,7 +24,11 @@ import { useConnect } from '../Connect'; import { useNetworkMetrics } from '../Network'; import { useActivePools } from '../Pools/ActivePools'; import { defaultExposureData, defaultValidatorsContext } from './defaults'; -import { getLocalFavorites } from './Utils'; +import { + getEraLocalExposures, + getLocalFavorites, + setEraLocalExposures, +} from './Utils'; export const ValidatorsProvider = ({ children, @@ -33,8 +37,8 @@ export const ValidatorsProvider = ({ }) => { const { activeAccount } = useConnect(); const { poolNominations } = useActivePools(); - const { isReady, api, network, consts } = useApi(); const { activeEra, metrics } = useNetworkMetrics(); + const { isReady, api, network, consts } = useApi(); const { bondedAccounts, getAccountNominations } = useBonded(); const { units, name } = network; const { earliestStoredSession } = metrics; @@ -43,15 +47,9 @@ export const ValidatorsProvider = ({ // Stores the total validator entries. const [validators, setValidators] = useState<Validator[]>([]); - // Stores the user's favorite validators. - const [favorites, setFavorites] = useState<string[]>(getLocalFavorites(name)); - // Track whether the validator list has been fetched. const [validatorsFetched, setValidatorsFetched] = useState<Sync>('unsynced'); - // Stores the average network commission rate. - const [avgCommission, setAvgCommission] = useState(0); - // Stores the currently active validator set. const [sessionValidators, setSessionValidators] = useState<string[]>([]); const sessionUnsub = useRef<Fn>(); @@ -62,6 +60,12 @@ export const ValidatorsProvider = ({ ); const sessionParaUnsub = useRef<Fn>(); + // Stores the average network commission rate. + const [avgCommission, setAvgCommission] = useState(0); + + // Stores the user's favorite validators. + const [favorites, setFavorites] = useState<string[]>(getLocalFavorites(name)); + // TODO: refactor. // Stores the meta data batches for validator lists. const [validatorMetaBatches, setValidatorMetaBatch] = useState<AnyMetaBatch>( @@ -82,10 +86,10 @@ export const ValidatorsProvider = ({ // stores the user's favorites validators as list const [favoritesList, setFavoritesList] = useState<Validator[] | null>(null); - // stores validator community + // Stores a randomised validator community dataset. const [validatorCommunity] = useState<any>([...shuffle(ValidatorCommunity)]); - // reset validators list on network change + // Reset validators list on network change. useEffectIgnoreInitial(() => { setValidatorsFetched('unsynced'); setSessionValidators([]); @@ -97,7 +101,7 @@ export const ValidatorsProvider = ({ // fetch validators and session validators when activeEra ready useEffectIgnoreInitial(() => { - if (isReady) { + if (isReady && activeEra.index.isGreaterThan(0)) { fetchValidators(); subscribeSessionValidators(); } @@ -242,23 +246,43 @@ export const ValidatorsProvider = ({ // Fetches and formats the active validator set, and derives metrics from the result. const fetchValidators = async () => { if (!isReady || !api || validatorsFetched !== 'unsynced') return; - setValidatorsFetched('syncing'); - // Await formatted exposure data. - const { exposures, notFullCommissionCount, totalNonAllCommission } = - await getDataFromExposures(); + // If local exposure data exists for the current active era, store these values in state. + // Otherwise, fetch exposures from API. + const localExposures = getEraLocalExposures( + name, + activeEra.index.toString() + ); + + // The current exposures for the active era. + let exposures: Validator[] = []; + // Average network commission for all non-100% commissioned exposures. + let avg = 0; - // Get average network commission for all non-100% commissioned validators. - const average = notFullCommissionCount - ? totalNonAllCommission - .dividedBy(notFullCommissionCount) - .decimalPlaces(2) - .toNumber() - : 0; + if (localExposures) { + exposures = localExposures.exposures; + avg = localExposures.avgCommission; + } else { + const { + exposures: newExposures, + notFullCommissionCount, + totalNonAllCommission, + } = await getDataFromExposures(); + + exposures = newExposures; + avg = notFullCommissionCount + ? totalNonAllCommission + .dividedBy(notFullCommissionCount) + .decimalPlaces(2) + .toNumber() + : 0; + } + // Set exposure data for the era to local storage. + setEraLocalExposures(name, activeEra.index.toString(), exposures, avg); setValidatorsFetched('synced'); - setAvgCommission(average); + setAvgCommission(avg); // Validators are shuffled before committed to state. setValidators(shuffle(exposures)); }; diff --git a/src/contexts/Validators/types.ts b/src/contexts/Validators/types.ts index 8d9026a4c4..11507460c2 100644 --- a/src/contexts/Validators/types.ts +++ b/src/contexts/Validators/types.ts @@ -34,3 +34,12 @@ export interface ValidatorPrefs { commission: number; blocked: boolean; } + +export type LocalExposureData = Record< + string, + { + avgCommission: number; + era: string; + exposures: Validator[]; + } +>; From 0cdadd3d2d7bebd765371f1f44153604619585a5 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Thu, 17 Aug 2023 13:51:07 +0700 Subject: [PATCH 236/435] tidy up so far --- src/contexts/Validators/Utils.ts | 12 ++++-------- src/contexts/Validators/defaults.ts | 5 ----- 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/src/contexts/Validators/Utils.ts b/src/contexts/Validators/Utils.ts index 6e8f5e3bfc..8ec03c99f6 100644 --- a/src/contexts/Validators/Utils.ts +++ b/src/contexts/Validators/Utils.ts @@ -12,15 +12,11 @@ export const getLocalFavorites = (network: NetworkName) => { : []; }; -// Get validator exopsures for an era. +// Get validator exposures for an era. export const getEraLocalExposures = (network: NetworkName, era: string) => { const data = localStorage.getItem('exposures'); const current = data ? (JSON.parse(data) as LocalExposureData) : null; - - if (current?.[network]?.era === era) { - return current[network]; - } - return null; + return current?.[network]?.era === era ? current[network] : null; }; // Set validator exposure data to local storage. @@ -30,11 +26,11 @@ export const setEraLocalExposures = ( exposures: Validator[], avgCommission: number ) => { - const current = localStorage.getItem('exposures') || '{}'; + const data = localStorage.getItem('exposures') || '{}'; localStorage.setItem( 'exposures', JSON.stringify({ - ...JSON.parse(current), + ...JSON.parse(data), [network]: { era, exposures, diff --git a/src/contexts/Validators/defaults.ts b/src/contexts/Validators/defaults.ts index cabd9cd4ef..a2204bf66b 100644 --- a/src/contexts/Validators/defaults.ts +++ b/src/contexts/Validators/defaults.ts @@ -5,11 +5,6 @@ import BigNumber from 'bignumber.js'; import type { ValidatorsContextInterface } from 'contexts/Validators/types'; -export const defaultSessionParachainValidators = { - list: [], - unsub: null, -}; - export const defaultExposureData = { exposures: [], notFullCommissionCount: 0, From 71d6dd026e01b5335bd324bba997f30f8189a5ce Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Thu, 17 Aug 2023 14:01:49 +0700 Subject: [PATCH 237/435] simplify fetchValidatorPrefs --- src/contexts/Validators/defaults.ts | 1 - src/contexts/Validators/index.tsx | 43 ++++++++--------------------- src/contexts/Validators/types.ts | 1 - 3 files changed, 12 insertions(+), 33 deletions(-) diff --git a/src/contexts/Validators/defaults.ts b/src/contexts/Validators/defaults.ts index a2204bf66b..7ae5acdf28 100644 --- a/src/contexts/Validators/defaults.ts +++ b/src/contexts/Validators/defaults.ts @@ -14,7 +14,6 @@ export const defaultExposureData = { export const defaultValidatorsContext: ValidatorsContextInterface = { fetchValidatorMetaBatch: (k, v, r) => {}, removeValidatorMetaBatch: (k) => {}, - fetchValidatorPrefs: async (v) => null, addFavorite: (a) => {}, removeFavorite: (a) => {}, validators: [], diff --git a/src/contexts/Validators/index.tsx b/src/contexts/Validators/index.tsx index e8d6aeb581..64ce047320 100644 --- a/src/contexts/Validators/index.tsx +++ b/src/contexts/Validators/index.tsx @@ -145,13 +145,7 @@ export const ValidatorsProvider = ({ const targetsFormatted = targets.map((item: any) => ({ address: item })); // fetch preferences const nominationsWithPrefs = await fetchValidatorPrefs(targetsFormatted); - if (nominationsWithPrefs) { - setNominated(nominationsWithPrefs); - return; - } - - // return empty otherwise. - setNominated([]); + setNominated(nominationsWithPrefs || []); }; // fetch active account's pool nominations in validator list format @@ -182,11 +176,7 @@ export const ValidatorsProvider = ({ n = n.map((item: string) => ({ address: item })); // fetch preferences const nominationsWithPrefs = await fetchValidatorPrefs(n); - if (nominationsWithPrefs) { - setPoolNominated(nominationsWithPrefs); - } else { - setPoolNominated([]); - } + setPoolNominated(nominationsWithPrefs || []); }; // re-fetch favorites on network change @@ -308,34 +298,26 @@ export const ValidatorsProvider = ({ ); }; - // Fetches prefs for a list of validators + // Fetches prefs for a list of validators. const fetchValidatorPrefs = async (addresses: ValidatorAddresses) => { - if (!addresses.length || !api) { - return null; - } + if (!addresses.length || !api) return null; const v: string[] = []; - for (const address of addresses) { - v.push(address.address); - } - - const allPrefs = await api.query.staking.validators.multi(v); - - const validatorsWithPrefs = []; - let i = 0; - for (const p of allPrefs) { - const prefs: AnyApi = p.toHuman(); + for (const { address } of addresses) v.push(address); + const results = await api.query.staking.validators.multi(v); - validatorsWithPrefs.push({ + const formatted: Validator[] = []; + for (let i = 0; i < results.length; i++) { + const prefs: AnyApi = results[i].toHuman(); + formatted.push({ address: v[i], prefs: { - commission: prefs?.commission.slice(0, -1) ?? '0', + commission: prefs?.commission.replace(/%/g, '') ?? '0', blocked: prefs.blocked, }, }); - i++; } - return validatorsWithPrefs; + return formatted; }; /* @@ -633,7 +615,6 @@ export const ValidatorsProvider = ({ value={{ fetchValidatorMetaBatch, removeValidatorMetaBatch, - fetchValidatorPrefs, addFavorite, removeFavorite, validators, diff --git a/src/contexts/Validators/types.ts b/src/contexts/Validators/types.ts index 11507460c2..d1ca5e575b 100644 --- a/src/contexts/Validators/types.ts +++ b/src/contexts/Validators/types.ts @@ -6,7 +6,6 @@ import type { AnyMetaBatch } from 'types'; export interface ValidatorsContextInterface { fetchValidatorMetaBatch: (k: string, v: [], r?: boolean) => void; removeValidatorMetaBatch: (k: string) => void; - fetchValidatorPrefs: (v: ValidatorAddresses) => Promise<Validator[] | null>; addFavorite: (a: string) => void; removeFavorite: (a: string) => void; validators: Validator[]; From 48b7da6e0640726506d40f9cecdaeded0c09ce24 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Thu, 17 Aug 2023 16:45:18 +0700 Subject: [PATCH 238/435] migrate to polkadot-cloud scope --- README.md | 4 +- package.json | 13 +++--- src/Router.tsx | 4 +- src/Themes.tsx | 4 +- src/contexts/Api/index.tsx | 2 +- src/contexts/Balances/index.tsx | 2 +- src/contexts/Bonded/index.tsx | 2 +- .../Connect/Hooks/useImportExtension.tsx | 2 +- src/contexts/Connect/Utils.ts | 2 +- src/contexts/Connect/index.tsx | 2 +- src/contexts/Extensions/index.tsx | 4 +- src/contexts/Extrinsics/index.tsx | 2 +- src/contexts/FastUnstake/index.tsx | 2 +- src/contexts/Hardware/Ledger.tsx | 2 +- src/contexts/Hardware/Utils.tsx | 2 +- src/contexts/Hardware/Vault.tsx | 2 +- src/contexts/Identities/index.tsx | 2 +- src/contexts/Modal/index.tsx | 2 +- src/contexts/Network/index.tsx | 2 +- src/contexts/Notifications/index.tsx | 2 +- src/contexts/Plugins/index.tsx | 2 +- src/contexts/Pools/ActivePools/index.tsx | 2 +- src/contexts/Pools/BondedPools/index.tsx | 2 +- src/contexts/Pools/PoolMembers/index.tsx | 2 +- src/contexts/Pools/PoolMemberships/index.tsx | 2 +- src/contexts/Pools/PoolsConfig/index.tsx | 2 +- src/contexts/Proxies/index.tsx | 2 +- src/contexts/Setup/index.tsx | 2 +- src/contexts/Staking/index.tsx | 2 +- src/contexts/Subscan/index.tsx | 2 +- src/contexts/Themes/index.tsx | 2 +- src/contexts/Tooltip/index.tsx | 2 +- src/contexts/TransferOptions/index.tsx | 2 +- src/contexts/TxMeta/index.tsx | 2 +- src/contexts/UI/index.tsx | 2 +- src/contexts/Validators/index.tsx | 4 +- src/library/Account/index.tsx | 2 +- src/library/AccountInput/index.tsx | 4 +- src/library/BarChart/BondedChart.tsx | 2 +- src/library/BarChart/LegendItem.tsx | 2 +- src/library/Canvas/index.tsx | 2 +- src/library/EstimatedTxFee/index.tsx | 2 +- src/library/Form/Bond/BondFeedback.tsx | 2 +- src/library/Form/Bond/BondInput.tsx | 2 +- .../Form/ClaimPermissionInput/index.tsx | 2 +- .../Form/CreatePoolStatusBar/index.tsx | 2 +- src/library/Form/NominateStatusBar/index.tsx | 4 +- src/library/Form/Unbond/UnbondFeedback.tsx | 2 +- src/library/Form/Unbond/UnbondInput.tsx | 4 +- src/library/GenerateNominations/index.tsx | 2 +- .../GenerateNominations/useFetchMethods.tsx | 2 +- src/library/Graphs/Utils.ts | 2 +- src/library/Headers/Connect.tsx | 2 +- src/library/Headers/index.tsx | 2 +- src/library/Help/index.tsx | 4 +- src/library/Hooks/useBlockNumber/index.tsx | 2 +- src/library/Hooks/useErasToTimeLeft/index.tsx | 2 +- src/library/Hooks/useFillVariables/index.tsx | 2 +- .../Hooks/useNominationStatus/index.tsx | 2 +- src/library/Hooks/useTimeLeft/index.tsx | 2 +- src/library/Import/Confirm.tsx | 2 +- src/library/Import/Heading.tsx | 2 +- src/library/Import/NoAccounts.tsx | 2 +- src/library/Import/Remove.tsx | 2 +- src/library/ListItem/Labels/EraStatus.tsx | 2 +- src/library/ListItem/Labels/Identity.tsx | 2 +- .../ListItem/Labels/NominationStatus.tsx | 2 +- src/library/ListItem/Labels/PoolBonded.tsx | 2 +- src/library/ListItem/Labels/PoolIdentity.tsx | 2 +- .../ListItem/Labels/PoolMemberBonded.tsx | 2 +- src/library/Modal/Title.tsx | 2 +- src/library/NetworkBar/index.tsx | 2 +- src/library/Overlay/index.tsx | 2 +- src/library/PayeeInput/index.tsx | 2 +- src/library/PoolAccount/index.tsx | 2 +- src/library/PoolList/Default.tsx | 2 +- src/library/Prompt/Title.tsx | 2 +- src/library/SetupSteps/Footer/index.tsx | 2 +- src/library/SetupSteps/Header/index.tsx | 2 +- src/library/SideMenu/index.tsx | 2 +- src/library/Stat/index.tsx | 4 +- src/library/StatBoxList/Number.tsx | 2 +- src/library/StatBoxList/Pie.tsx | 2 +- src/library/StatBoxList/Text.tsx | 2 +- src/library/StatBoxList/Timeleft.tsx | 2 +- src/library/StatBoxList/index.tsx | 2 +- src/library/StatsHead/index.tsx | 2 +- src/library/StatusLabel/index.tsx | 2 +- src/library/SubmitTx/Default.tsx | 2 +- src/library/SubmitTx/ManualSign/Ledger.tsx | 2 +- .../SubmitTx/ManualSign/Vault/SignPrompt.tsx | 2 +- .../SubmitTx/ManualSign/Vault/index.tsx | 2 +- src/library/SubmitTx/index.tsx | 2 +- src/library/Tips/Tip.tsx | 2 +- src/library/ValidatorList/Filters.tsx | 2 +- src/library/ValidatorList/index.tsx | 2 +- src/locale/utils.ts | 2 +- src/main.tsx | 19 +++++---- src/modals/AccountPoolRoles/index.tsx | 2 +- src/modals/Accounts/Account.tsx | 4 +- src/modals/Accounts/index.tsx | 2 +- src/modals/BalanceTest/index.tsx | 4 +- src/modals/Bio/index.tsx | 2 +- src/modals/Bond/index.tsx | 4 +- src/modals/ChangeNominations/index.tsx | 2 +- src/modals/ChangePoolRoles/RoleChange.tsx | 2 +- src/modals/ChangePoolRoles/index.tsx | 2 +- src/modals/ChooseLanguage/index.tsx | 2 +- src/modals/ClaimReward/index.tsx | 8 +--- src/modals/Connect/Extension.tsx | 2 +- src/modals/Connect/Ledger.tsx | 4 +- src/modals/Connect/Proxies.tsx | 2 +- src/modals/Connect/ReadOnly.tsx | 2 +- src/modals/Connect/Vault.tsx | 2 +- src/modals/Connect/index.tsx | 4 +- src/modals/DismissTips/index.tsx | 2 +- src/modals/GoToFeedback/index.tsx | 2 +- src/modals/ImportLedger/Addresses.tsx | 4 +- src/modals/ImportLedger/Manage.tsx | 2 +- src/modals/ImportLedger/Reset.tsx | 2 +- src/modals/ImportLedger/Splash.tsx | 2 +- src/modals/ImportLedger/index.tsx | 2 +- src/modals/ImportVault/Reader.tsx | 4 +- src/modals/ImportVault/index.tsx | 2 +- src/modals/JoinPool/index.tsx | 4 +- src/modals/ManageFastUnstake/index.tsx | 4 +- .../ManagePool/Forms/ClaimCommission.tsx | 4 +- src/modals/ManagePool/Forms/Commission.tsx | 4 +- src/modals/ManagePool/Forms/LeavePool.tsx | 4 +- .../ManagePool/Forms/SetClaimPermission.tsx | 2 +- src/modals/ManagePool/Forms/SetMetadata.tsx | 2 +- src/modals/ManagePool/Forms/SetState.tsx | 2 +- src/modals/ManagePool/Tasks.tsx | 2 +- src/modals/ManagePool/index.tsx | 2 +- src/modals/Networks/index.tsx | 4 +- src/modals/Nominate/index.tsx | 8 +--- src/modals/NominateFromFavorites/index.tsx | 2 +- src/modals/NominatePool/index.tsx | 6 +-- src/modals/PoolNominations/index.tsx | 2 +- src/modals/SelectFavorites/index.tsx | 2 +- src/modals/Settings/index.tsx | 2 +- src/modals/Unbond/index.tsx | 8 +--- src/modals/UnbondPoolMember/index.tsx | 8 +--- src/modals/UnlockChunks/Chunk.tsx | 4 +- src/modals/UnlockChunks/Forms.tsx | 4 +- src/modals/UnlockChunks/Overview.tsx | 4 +- src/modals/UnlockChunks/index.tsx | 4 +- src/modals/Unstake/index.tsx | 8 +--- src/modals/UpdateController/Switch/index.tsx | 2 +- src/modals/UpdateController/index.tsx | 2 +- src/modals/UpdatePayee/index.tsx | 4 +- src/modals/UpdateReserve/index.tsx | 4 +- src/modals/ValidatorMetrics/index.tsx | 4 +- src/modals/WithdrawPoolMember/index.tsx | 8 +--- src/modals/index.tsx | 2 +- src/pages/Community/Entity.tsx | 2 +- src/pages/Community/List.tsx | 2 +- src/pages/Community/index.tsx | 2 +- .../Nominate/Active/ControllerNotStash.tsx | 2 +- src/pages/Nominate/Active/ManageBond.tsx | 4 +- .../Nominate/Active/Nominations/index.tsx | 2 +- .../Active/Stats/MinimumActiveStake.tsx | 2 +- .../Active/Stats/MinimumNominatorBond.tsx | 2 +- .../Active/Status/ControllerStatus.tsx | 2 +- src/pages/Nominate/Active/Status/index.tsx | 2 +- src/pages/Nominate/Active/UnstakePrompts.tsx | 4 +- src/pages/Nominate/Active/index.tsx | 2 +- src/pages/Nominate/Setup/Summary/index.tsx | 2 +- src/pages/Nominate/Setup/index.tsx | 4 +- src/pages/Overview/ActiveAccounts/Item.tsx | 2 +- src/pages/Overview/BalanceChart.tsx | 4 +- src/pages/Overview/BalanceLinks.tsx | 2 +- .../Overview/NetworkSats/Announcements.tsx | 2 +- src/pages/Overview/StakeStatus/Tips/index.tsx | 2 +- src/pages/Overview/StakeStatus/index.tsx | 2 +- src/pages/Overview/Stats/SupplyStaked.tsx | 2 +- src/pages/Overview/index.tsx | 4 +- src/pages/Payouts/PayoutList/index.tsx | 2 +- src/pages/Payouts/Stats/LastEraPayout.tsx | 2 +- src/pages/Payouts/index.tsx | 2 +- src/pages/Pools/Create/Summary/index.tsx | 2 +- src/pages/Pools/Create/index.tsx | 2 +- src/pages/Pools/Home/ClosurePrompts.tsx | 2 +- src/pages/Pools/Home/Favorites/index.tsx | 2 +- src/pages/Pools/Home/ManageBond.tsx | 4 +- src/pages/Pools/Home/ManagePool/index.tsx | 2 +- src/pages/Pools/Home/Members.tsx | 2 +- src/pages/Pools/Home/MembersList/Default.tsx | 2 +- .../Pools/Home/PoolStats/Announcements.tsx | 2 +- src/pages/Pools/Home/PoolStats/index.tsx | 2 +- src/pages/Pools/Home/Stats/MinCreateBond.tsx | 2 +- src/pages/Pools/Home/Stats/MinJoinBond.tsx | 2 +- .../Pools/Home/Status/MembershipStatus.tsx | 2 +- src/pages/Pools/Home/Status/RewardsStatus.tsx | 2 +- src/pages/Pools/Home/Status/index.tsx | 2 +- src/pages/Pools/Home/context.tsx | 2 +- src/pages/Pools/Home/index.tsx | 4 +- src/pages/Pools/PoolAccount/index.tsx | 2 +- src/pages/Pools/Roles/RoleEditInput/index.tsx | 2 +- src/pages/Pools/Roles/index.tsx | 2 +- src/pages/Validators/AllValidators.tsx | 2 +- src/pages/Validators/Favorites.tsx | 2 +- .../Validators/Stats/ActiveValidators.tsx | 2 +- .../Validators/Stats/TotalValidators.tsx | 2 +- src/pages/Validators/context.tsx | 2 +- src/pages/Validators/index.tsx | 2 +- src/workers/stakers.ts | 2 +- yarn.lock | 40 +++++++++---------- 208 files changed, 287 insertions(+), 309 deletions(-) diff --git a/README.md b/README.md index 73fec92a26..4e22e03ad7 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,9 @@ The Polkadot Staking Dashboard is a community-driven project, and we welcome contributions to bolster the dashboard's functionality and features. -- **Web Extensions**: Submit PR to the [Polkadot Cloud repository](https://github.com/paritytech/polkadot-cloud) to add a web extension. The extension will then be available in the `@polkadotcloud/community` NPM package. Full instructions can be found [here](https://github.com/paritytech/polkadot-cloud/tree/main/packages/community#adding-web-extension-wallets). +- **Web Extensions**: Submit PR to the [Polkadot Cloud repository](https://github.com/paritytech/polkadot-cloud) to add a web extension. The extension will then be available in the `@polkadot-cloud/community` NPM package. Full instructions can be found [here](https://github.com/paritytech/polkadot-cloud/tree/main/packages/community#adding-web-extension-wallets). -- **Validator Operators**: Submit PR to the [Polkadot Cloud repository](https://github.com/paritytech/polkadot-cloud) to add a validator operator. The operator will then be available in the `@polkadotcloud/community` NPM package. Full instructions can be found [here](https://github.com/paritytech/polkadot-cloud/tree/main/packages/community#adding-validator-operators). +- **Validator Operators**: Submit PR to the [Polkadot Cloud repository](https://github.com/paritytech/polkadot-cloud) to add a validator operator. The operator will then be available in the `@polkadot-cloud/community` NPM package. Full instructions can be found [here](https://github.com/paritytech/polkadot-cloud/tree/main/packages/community#adding-validator-operators). ## URL Variable Support diff --git a/package.json b/package.json index 15f1ec86d1..8ec682405d 100644 --- a/package.json +++ b/package.json @@ -5,14 +5,15 @@ "license": "GPL-3.0-only", "private": false, "scripts": { - "dev": "vite", "build": "tsc && vite build --base '/'", "build:pages": "tsc && vite build --base '/polkadot-staking-dashboard/'", + "clear": "rm -rf node_modules build tsconfig.tsbuildinfo", "deploy:pages": "yarn build:pages && gh-pages -d build", - "preview": "vite preview", + "dev": "vite", "lint": "eslint . --fix && npx prettier --write . && npx prettier --write ./.scripts && node ./.scripts/localeOrderKeys.cjs", "locale:order": "node ./.scripts/localeOrderKeys.cjs", "locale:validate": "node ./.scripts/localeValidate.cjs", + "preview": "vite preview", "test": "vitest", "visualizer": "vite-bundle-visualizer" }, @@ -24,16 +25,16 @@ "@fortawesome/free-solid-svg-icons": "^6.4.2", "@fortawesome/react-fontawesome": "^0.2.0", "@ledgerhq/hw-transport-webhid": "^6.27.18", + "@polkadot-cloud/community": "^0.1.10", + "@polkadot-cloud/core": "^0.0.5", + "@polkadot-cloud/react": "^0.1.2", + "@polkadot-cloud/utils": "^0.0.1", "@polkadot/api": "^10.9.1", "@polkadot/keyring": "^12.1.1", "@polkadot/rpc-provider": "^10.9.1", "@polkadot/util": "^12.1.1", "@polkadot/util-crypto": "12.3.2", - "@polkadotcloud/community": "0.1.10", - "@polkadotcloud/core-ui": "^0.3.88", "@polkadotcloud/react-odometer": "^0.1.19", - "@polkadotcloud/themes": "^0.1.6", - "@polkadotcloud/utils": "^0.2.23", "@substrate/connect": "^0.7.31", "@zondax/ledger-substrate": "^0.41.1", "bignumber.js": "^9.1.1", diff --git a/src/Router.tsx b/src/Router.tsx index eca4b41e46..2790009794 100644 --- a/src/Router.tsx +++ b/src/Router.tsx @@ -1,8 +1,8 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { Body, Main, Page, Side } from '@polkadotcloud/core-ui'; -import { extractUrlValue } from '@polkadotcloud/utils'; +import { Body, Main, Page, Side } from '@polkadot-cloud/react'; +import { extractUrlValue } from '@polkadot-cloud/utils'; import { AnimatePresence } from 'framer-motion'; import { useEffect, useRef } from 'react'; import { ErrorBoundary } from 'react-error-boundary'; diff --git a/src/Themes.tsx b/src/Themes.tsx index f10bac3bc5..5be50f0273 100644 --- a/src/Themes.tsx +++ b/src/Themes.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only import { ThemeProvider } from 'styled-components'; -import { Entry } from '@polkadotcloud/core-ui'; +import { Entry } from '@polkadot-cloud/react'; import { Router } from 'Router'; import { useApi } from 'contexts/Api'; import { useTheme } from 'contexts/Themes'; @@ -10,7 +10,7 @@ import { useTheme } from 'contexts/Themes'; // App-wide theme classes are inserted here. // // App-specific theming is added to `ThemeProvider`. -// `@polkadotcloud/core-ui` themes are added to `Entry`. +// `@polkadot-cloud/react` themes are added to `Entry`. export const ThemedRouter = () => { const { mode } = useTheme(); const { network } = useApi(); diff --git a/src/contexts/Api/index.tsx b/src/contexts/Api/index.tsx index c491281b7c..1fa4dd498e 100644 --- a/src/contexts/Api/index.tsx +++ b/src/contexts/Api/index.tsx @@ -8,7 +8,7 @@ import { makeCancelable, rmCommas, varToUrlHash, -} from '@polkadotcloud/utils'; +} from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import React, { useEffect, useState } from 'react'; import { NetworkList } from 'config/networks'; diff --git a/src/contexts/Balances/index.tsx b/src/contexts/Balances/index.tsx index 54cc448ce9..b20f290825 100644 --- a/src/contexts/Balances/index.tsx +++ b/src/contexts/Balances/index.tsx @@ -8,7 +8,7 @@ import { removedFrom, rmCommas, setStateWithRef, -} from '@polkadotcloud/utils'; +} from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import React, { useRef, useState } from 'react'; import { useApi } from 'contexts/Api'; diff --git a/src/contexts/Bonded/index.tsx b/src/contexts/Bonded/index.tsx index 810ff430fd..38d1ae58f4 100644 --- a/src/contexts/Bonded/index.tsx +++ b/src/contexts/Bonded/index.tsx @@ -7,7 +7,7 @@ import { matchedProperties, removedFrom, setStateWithRef, -} from '@polkadotcloud/utils'; +} from '@polkadot-cloud/utils'; import React, { useEffect, useRef, useState } from 'react'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; diff --git a/src/contexts/Connect/Hooks/useImportExtension.tsx b/src/contexts/Connect/Hooks/useImportExtension.tsx index 6aaedd3c8b..c0a60f74b3 100644 --- a/src/contexts/Connect/Hooks/useImportExtension.tsx +++ b/src/contexts/Connect/Hooks/useImportExtension.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only import Keyring from '@polkadot/keyring'; -import { isValidAddress } from '@polkadotcloud/utils'; +import { isValidAddress } from '@polkadot-cloud/utils'; import { useApi } from 'contexts/Api'; import { useExtensions } from 'contexts/Extensions'; import type { diff --git a/src/contexts/Connect/Utils.ts b/src/contexts/Connect/Utils.ts index d567809170..fcad0f96a0 100644 --- a/src/contexts/Connect/Utils.ts +++ b/src/contexts/Connect/Utils.ts @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only import Keyring from '@polkadot/keyring'; -import { localStorageOrDefault } from '@polkadotcloud/utils'; +import { localStorageOrDefault } from '@polkadot-cloud/utils'; import type { ExtensionAccount } from 'contexts/Extensions/types'; import type { Network, NetworkName } from 'types'; import type { ExternalAccount } from './types'; diff --git a/src/contexts/Connect/index.tsx b/src/contexts/Connect/index.tsx index 663c5dbdba..b1df4a1502 100644 --- a/src/contexts/Connect/index.tsx +++ b/src/contexts/Connect/index.tsx @@ -7,7 +7,7 @@ import { clipAddress, localStorageOrDefault, setStateWithRef, -} from '@polkadotcloud/utils'; +} from '@polkadot-cloud/utils'; import React, { useEffect, useRef, useState } from 'react'; import { DappName } from 'consts'; import { useApi } from 'contexts/Api'; diff --git a/src/contexts/Extensions/index.tsx b/src/contexts/Extensions/index.tsx index 942102760a..e8a0585246 100644 --- a/src/contexts/Extensions/index.tsx +++ b/src/contexts/Extensions/index.tsx @@ -1,8 +1,8 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { setStateWithRef } from '@polkadotcloud/utils'; -import { ExtensionsArray } from '@polkadotcloud/community/extensions'; +import { setStateWithRef } from '@polkadot-cloud/utils'; +import { ExtensionsArray } from '@polkadot-cloud/community/extensions'; import React, { useEffect, useRef, useState } from 'react'; import type { ExtensionInjected, diff --git a/src/contexts/Extrinsics/index.tsx b/src/contexts/Extrinsics/index.tsx index 54b91e3fac..86c5ed285f 100644 --- a/src/contexts/Extrinsics/index.tsx +++ b/src/contexts/Extrinsics/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { setStateWithRef } from '@polkadotcloud/utils'; +import { setStateWithRef } from '@polkadot-cloud/utils'; import React, { useRef, useState } from 'react'; import { defaultExtrinsicsContext } from './defaults'; import type { ExtrinsicsContextInterface } from './types'; diff --git a/src/contexts/FastUnstake/index.tsx b/src/contexts/FastUnstake/index.tsx index 5c8554bd3d..c8dec05ccf 100644 --- a/src/contexts/FastUnstake/index.tsx +++ b/src/contexts/FastUnstake/index.tsx @@ -6,7 +6,7 @@ import { isNotZero, rmCommas, setStateWithRef, -} from '@polkadotcloud/utils'; +} from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import React, { useRef, useState } from 'react'; import { useApi } from 'contexts/Api'; diff --git a/src/contexts/Hardware/Ledger.tsx b/src/contexts/Hardware/Ledger.tsx index bb0c07cc36..89b29fd46e 100644 --- a/src/contexts/Hardware/Ledger.tsx +++ b/src/contexts/Hardware/Ledger.tsx @@ -3,7 +3,7 @@ import TransportWebHID from '@ledgerhq/hw-transport-webhid'; import { u8aToBuffer } from '@polkadot/util'; -import { localStorageOrDefault, setStateWithRef } from '@polkadotcloud/utils'; +import { localStorageOrDefault, setStateWithRef } from '@polkadot-cloud/utils'; import { newSubstrateApp } from '@zondax/ledger-substrate'; import React, { useEffect, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/contexts/Hardware/Utils.tsx b/src/contexts/Hardware/Utils.tsx index 13f4c2ce2b..6dd25a8050 100644 --- a/src/contexts/Hardware/Utils.tsx +++ b/src/contexts/Hardware/Utils.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { localStorageOrDefault } from '@polkadotcloud/utils'; +import { localStorageOrDefault } from '@polkadot-cloud/utils'; import { LedgerApps } from 'config/ledger'; import type { LedgerAccount, VaultAccount } from 'contexts/Connect/types'; import type { MaybeString } from 'types'; diff --git a/src/contexts/Hardware/Vault.tsx b/src/contexts/Hardware/Vault.tsx index abe785beed..e4cb9db982 100644 --- a/src/contexts/Hardware/Vault.tsx +++ b/src/contexts/Hardware/Vault.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { clipAddress, setStateWithRef } from '@polkadotcloud/utils'; +import { clipAddress, setStateWithRef } from '@polkadot-cloud/utils'; import React, { useEffect, useRef, useState } from 'react'; import { useApi } from 'contexts/Api'; import type { VaultAccount } from 'contexts/Connect/types'; diff --git a/src/contexts/Identities/index.tsx b/src/contexts/Identities/index.tsx index 5202d1c3bb..856c12707a 100644 --- a/src/contexts/Identities/index.tsx +++ b/src/contexts/Identities/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { setStateWithRef } from '@polkadotcloud/utils'; +import { setStateWithRef } from '@polkadot-cloud/utils'; import React, { useEffect, useRef, useState } from 'react'; import type { AnyApi, AnyMetaBatch } from 'types'; import { useApi } from '../Api'; diff --git a/src/contexts/Modal/index.tsx b/src/contexts/Modal/index.tsx index 1770ba274b..01967e810f 100644 --- a/src/contexts/Modal/index.tsx +++ b/src/contexts/Modal/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { setStateWithRef } from '@polkadotcloud/utils'; +import { setStateWithRef } from '@polkadot-cloud/utils'; import type { RefObject } from 'react'; import React, { useRef, useState } from 'react'; import { useTxMeta } from 'contexts/TxMeta'; diff --git a/src/contexts/Network/index.tsx b/src/contexts/Network/index.tsx index 6ea16ff32e..630bf5c7d7 100644 --- a/src/contexts/Network/index.tsx +++ b/src/contexts/Network/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { setStateWithRef } from '@polkadotcloud/utils'; +import { setStateWithRef } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import React, { useRef, useState } from 'react'; import type { AnyApi, AnyJson } from 'types'; diff --git a/src/contexts/Notifications/index.tsx b/src/contexts/Notifications/index.tsx index 70dc237de6..917628364b 100644 --- a/src/contexts/Notifications/index.tsx +++ b/src/contexts/Notifications/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { setStateWithRef } from '@polkadotcloud/utils'; +import { setStateWithRef } from '@polkadot-cloud/utils'; import React, { useRef, useState } from 'react'; import { defaultNotificationsContext } from './defaults'; import type { diff --git a/src/contexts/Plugins/index.tsx b/src/contexts/Plugins/index.tsx index 1b908e6770..ca87ee673c 100644 --- a/src/contexts/Plugins/index.tsx +++ b/src/contexts/Plugins/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { localStorageOrDefault, setStateWithRef } from '@polkadotcloud/utils'; +import { localStorageOrDefault, setStateWithRef } from '@polkadot-cloud/utils'; import React, { useRef, useState } from 'react'; import { PluginsList } from 'consts'; import * as defaults from './defaults'; diff --git a/src/contexts/Pools/ActivePools/index.tsx b/src/contexts/Pools/ActivePools/index.tsx index 067b4b92fe..123214f37b 100644 --- a/src/contexts/Pools/ActivePools/index.tsx +++ b/src/contexts/Pools/ActivePools/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { localStorageOrDefault, setStateWithRef } from '@polkadotcloud/utils'; +import { localStorageOrDefault, setStateWithRef } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import React, { useEffect, useMemo, useRef, useState } from 'react'; import type { diff --git a/src/contexts/Pools/BondedPools/index.tsx b/src/contexts/Pools/BondedPools/index.tsx index f703a7d222..37d7d52e53 100644 --- a/src/contexts/Pools/BondedPools/index.tsx +++ b/src/contexts/Pools/BondedPools/index.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only import { u8aToString, u8aUnwrapBytes } from '@polkadot/util'; -import { setStateWithRef, shuffle } from '@polkadotcloud/utils'; +import { setStateWithRef, shuffle } from '@polkadot-cloud/utils'; import React, { useRef, useState } from 'react'; import type { BondedPool, diff --git a/src/contexts/Pools/PoolMembers/index.tsx b/src/contexts/Pools/PoolMembers/index.tsx index c13899f1aa..97e66af937 100644 --- a/src/contexts/Pools/PoolMembers/index.tsx +++ b/src/contexts/Pools/PoolMembers/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { setStateWithRef } from '@polkadotcloud/utils'; +import { setStateWithRef } from '@polkadot-cloud/utils'; import React, { useRef, useState } from 'react'; import { useConnect } from 'contexts/Connect'; import { usePlugins } from 'contexts/Plugins'; diff --git a/src/contexts/Pools/PoolMemberships/index.tsx b/src/contexts/Pools/PoolMemberships/index.tsx index 3a5141e50e..418958bc24 100644 --- a/src/contexts/Pools/PoolMemberships/index.tsx +++ b/src/contexts/Pools/PoolMemberships/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { rmCommas, setStateWithRef } from '@polkadotcloud/utils'; +import { rmCommas, setStateWithRef } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import React, { useEffect, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/contexts/Pools/PoolsConfig/index.tsx b/src/contexts/Pools/PoolsConfig/index.tsx index 6a2a0bd9b8..b32c669884 100644 --- a/src/contexts/Pools/PoolsConfig/index.tsx +++ b/src/contexts/Pools/PoolsConfig/index.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only import { bnToU8a, u8aConcat } from '@polkadot/util'; -import { rmCommas, setStateWithRef } from '@polkadotcloud/utils'; +import { rmCommas, setStateWithRef } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import BN from 'bn.js'; import React, { useRef, useState } from 'react'; diff --git a/src/contexts/Proxies/index.tsx b/src/contexts/Proxies/index.tsx index 8afed6d22b..758df1056f 100644 --- a/src/contexts/Proxies/index.tsx +++ b/src/contexts/Proxies/index.tsx @@ -10,7 +10,7 @@ import { removedFrom, rmCommas, setStateWithRef, -} from '@polkadotcloud/utils'; +} from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import React, { useRef, useState } from 'react'; import { isSupportedProxy } from 'config/proxies'; diff --git a/src/contexts/Setup/index.tsx b/src/contexts/Setup/index.tsx index a732a406d9..b98bef8fa4 100644 --- a/src/contexts/Setup/index.tsx +++ b/src/contexts/Setup/index.tsx @@ -5,7 +5,7 @@ import { greaterThanZero, localStorageOrDefault, unitToPlanck, -} from '@polkadotcloud/utils'; +} from '@polkadot-cloud/utils'; import React, { useState } from 'react'; import { usePoolMemberships } from 'contexts/Pools/PoolMemberships'; import type { BondFor, MaybeAccount } from 'types'; diff --git a/src/contexts/Staking/index.tsx b/src/contexts/Staking/index.tsx index ec1b18d9b3..698b6dcaca 100644 --- a/src/contexts/Staking/index.tsx +++ b/src/contexts/Staking/index.tsx @@ -7,7 +7,7 @@ import { isNotZero, localStorageOrDefault, setStateWithRef, -} from '@polkadotcloud/utils'; +} from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import React, { useRef, useState } from 'react'; import { useBalances } from 'contexts/Balances'; diff --git a/src/contexts/Subscan/index.tsx b/src/contexts/Subscan/index.tsx index cc4d04a0fe..ead9c69834 100644 --- a/src/contexts/Subscan/index.tsx +++ b/src/contexts/Subscan/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { isNotZero } from '@polkadotcloud/utils'; +import { isNotZero } from '@polkadot-cloud/utils'; import { format, fromUnixTime } from 'date-fns'; import React, { useState } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/contexts/Themes/index.tsx b/src/contexts/Themes/index.tsx index 8f78a5a84b..d0d68ba69f 100644 --- a/src/contexts/Themes/index.tsx +++ b/src/contexts/Themes/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { setStateWithRef } from '@polkadotcloud/utils'; +import { setStateWithRef } from '@polkadot-cloud/utils'; import React, { useRef } from 'react'; import { defaultThemeContext } from './defaults'; import type { Theme, ThemeContextInterface } from './types'; diff --git a/src/contexts/Tooltip/index.tsx b/src/contexts/Tooltip/index.tsx index a3cb5c2083..c8872b5a1b 100644 --- a/src/contexts/Tooltip/index.tsx +++ b/src/contexts/Tooltip/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { setStateWithRef } from '@polkadotcloud/utils'; +import { setStateWithRef } from '@polkadot-cloud/utils'; import React, { useState } from 'react'; import { defaultTooltipContext } from './defaults'; import type { TooltipContextInterface } from './types'; diff --git a/src/contexts/TransferOptions/index.tsx b/src/contexts/TransferOptions/index.tsx index 1c161c1eae..90f3662b2e 100644 --- a/src/contexts/TransferOptions/index.tsx +++ b/src/contexts/TransferOptions/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { unitToPlanck } from '@polkadotcloud/utils'; +import { unitToPlanck } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import React, { useState } from 'react'; import { useApi } from 'contexts/Api'; diff --git a/src/contexts/TxMeta/index.tsx b/src/contexts/TxMeta/index.tsx index 01bc6f14aa..f82ca17001 100644 --- a/src/contexts/TxMeta/index.tsx +++ b/src/contexts/TxMeta/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { setStateWithRef } from '@polkadotcloud/utils'; +import { setStateWithRef } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import React, { useState } from 'react'; import { useBonded } from 'contexts/Bonded'; diff --git a/src/contexts/UI/index.tsx b/src/contexts/UI/index.tsx index c6dd95d738..2afef8371a 100644 --- a/src/contexts/UI/index.tsx +++ b/src/contexts/UI/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { localStorageOrDefault, setStateWithRef } from '@polkadotcloud/utils'; +import { localStorageOrDefault, setStateWithRef } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import React, { useEffect, useRef, useState } from 'react'; import { SideMenuStickyThreshold } from 'consts'; diff --git a/src/contexts/Validators/index.tsx b/src/contexts/Validators/index.tsx index 55397124b8..587ed92041 100644 --- a/src/contexts/Validators/index.tsx +++ b/src/contexts/Validators/index.tsx @@ -7,9 +7,9 @@ import { rmCommas, setStateWithRef, shuffle, -} from '@polkadotcloud/utils'; +} from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; -import { ValidatorCommunity } from '@polkadotcloud/community/validators'; +import { ValidatorCommunity } from '@polkadot-cloud/community/validators'; import React, { useRef, useState } from 'react'; import type { SessionParachainValidators, diff --git a/src/library/Account/index.tsx b/src/library/Account/index.tsx index 320746325f..f7942b02ef 100644 --- a/src/library/Account/index.tsx +++ b/src/library/Account/index.tsx @@ -3,7 +3,7 @@ import { faGlasses } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { clipAddress, remToUnit } from '@polkadotcloud/utils'; +import { clipAddress, remToUnit } from '@polkadot-cloud/utils'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; diff --git a/src/library/AccountInput/index.tsx b/src/library/AccountInput/index.tsx index 6e9cb6359d..300b7ebbec 100644 --- a/src/library/AccountInput/index.tsx +++ b/src/library/AccountInput/index.tsx @@ -3,8 +3,8 @@ import { faCheck } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { ButtonSecondary } from '@polkadotcloud/core-ui'; -import { isValidAddress } from '@polkadotcloud/utils'; +import { ButtonSecondary } from '@polkadot-cloud/react'; +import { isValidAddress } from '@polkadot-cloud/utils'; import React, { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; diff --git a/src/library/BarChart/BondedChart.tsx b/src/library/BarChart/BondedChart.tsx index 8eb9ac4033..c79bf06cad 100644 --- a/src/library/BarChart/BondedChart.tsx +++ b/src/library/BarChart/BondedChart.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { greaterThanZero } from '@polkadotcloud/utils'; +import { greaterThanZero } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/library/BarChart/LegendItem.tsx b/src/library/BarChart/LegendItem.tsx index f80f29749c..8ec768a126 100644 --- a/src/library/BarChart/LegendItem.tsx +++ b/src/library/BarChart/LegendItem.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ButtonHelp } from '@polkadotcloud/core-ui'; +import { ButtonHelp } from '@polkadot-cloud/react'; import { useHelp } from 'contexts/Help'; import type { LegendItemProps } from './types'; diff --git a/src/library/Canvas/index.tsx b/src/library/Canvas/index.tsx index 607ea6df37..fdf460120c 100644 --- a/src/library/Canvas/index.tsx +++ b/src/library/Canvas/index.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only import { useAnimation } from 'framer-motion'; -import { ModalCanvas, ModalContent, ModalScroll } from '@polkadotcloud/core-ui'; +import { ModalCanvas, ModalContent, ModalScroll } from '@polkadot-cloud/react'; import { useCanvas } from 'contexts/Canvas'; import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import { CanvasWrapper } from './Wrappers'; diff --git a/src/library/EstimatedTxFee/index.tsx b/src/library/EstimatedTxFee/index.tsx index 04da783332..b78eee4cac 100644 --- a/src/library/EstimatedTxFee/index.tsx +++ b/src/library/EstimatedTxFee/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { planckToUnit } from '@polkadotcloud/utils'; +import { planckToUnit } from '@polkadot-cloud/utils'; import type { Context } from 'react'; import React, { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/library/Form/Bond/BondFeedback.tsx b/src/library/Form/Bond/BondFeedback.tsx index db81423df0..d13a9de7b8 100644 --- a/src/library/Form/Bond/BondFeedback.tsx +++ b/src/library/Form/Bond/BondFeedback.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { planckToUnit, unitToPlanck } from '@polkadotcloud/utils'; +import { planckToUnit, unitToPlanck } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/library/Form/Bond/BondInput.tsx b/src/library/Form/Bond/BondInput.tsx index 528489c9d3..c303a8e31a 100644 --- a/src/library/Form/Bond/BondInput.tsx +++ b/src/library/Form/Bond/BondInput.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ButtonSubmitInvert } from '@polkadotcloud/core-ui'; +import { ButtonSubmitInvert } from '@polkadot-cloud/react'; import BigNumber from 'bignumber.js'; import React, { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/library/Form/ClaimPermissionInput/index.tsx b/src/library/Form/ClaimPermissionInput/index.tsx index a744de22cb..04720dc468 100644 --- a/src/library/Form/ClaimPermissionInput/index.tsx +++ b/src/library/Form/ClaimPermissionInput/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ActionItem } from '@polkadotcloud/core-ui'; +import { ActionItem } from '@polkadot-cloud/react'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { usePoolMemberships } from 'contexts/Pools/PoolMemberships'; diff --git a/src/library/Form/CreatePoolStatusBar/index.tsx b/src/library/Form/CreatePoolStatusBar/index.tsx index 88d9d900ca..33374f1320 100644 --- a/src/library/Form/CreatePoolStatusBar/index.tsx +++ b/src/library/Form/CreatePoolStatusBar/index.tsx @@ -3,7 +3,7 @@ import { faFlag } from '@fortawesome/free-regular-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { planckToUnit } from '@polkadotcloud/utils'; +import { planckToUnit } from '@polkadot-cloud/utils'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { usePoolsConfig } from 'contexts/Pools/PoolsConfig'; diff --git a/src/library/Form/NominateStatusBar/index.tsx b/src/library/Form/NominateStatusBar/index.tsx index c598ac8a2a..c5f5bba01f 100644 --- a/src/library/Form/NominateStatusBar/index.tsx +++ b/src/library/Form/NominateStatusBar/index.tsx @@ -3,8 +3,8 @@ import { faFlag } from '@fortawesome/free-regular-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { ButtonHelp } from '@polkadotcloud/core-ui'; -import { planckToUnit } from '@polkadotcloud/utils'; +import { ButtonHelp } from '@polkadot-cloud/react'; +import { planckToUnit } from '@polkadot-cloud/utils'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useHelp } from 'contexts/Help'; diff --git a/src/library/Form/Unbond/UnbondFeedback.tsx b/src/library/Form/Unbond/UnbondFeedback.tsx index 0c51081bff..aba7045c69 100644 --- a/src/library/Form/Unbond/UnbondFeedback.tsx +++ b/src/library/Form/Unbond/UnbondFeedback.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { isNotZero, planckToUnit, unitToPlanck } from '@polkadotcloud/utils'; +import { isNotZero, planckToUnit, unitToPlanck } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/library/Form/Unbond/UnbondInput.tsx b/src/library/Form/Unbond/UnbondInput.tsx index 9d3740d55b..e3a12e8e4d 100644 --- a/src/library/Form/Unbond/UnbondInput.tsx +++ b/src/library/Form/Unbond/UnbondInput.tsx @@ -1,8 +1,8 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ButtonSubmitInvert } from '@polkadotcloud/core-ui'; -import { planckToUnit } from '@polkadotcloud/utils'; +import { ButtonSubmitInvert } from '@polkadot-cloud/react'; +import { planckToUnit } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import React, { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/library/GenerateNominations/index.tsx b/src/library/GenerateNominations/index.tsx index 6543d7f683..66fb11b4bb 100644 --- a/src/library/GenerateNominations/index.tsx +++ b/src/library/GenerateNominations/index.tsx @@ -10,7 +10,7 @@ import { faUserEdit, } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { camelize } from '@polkadotcloud/utils'; +import { camelize } from '@polkadot-cloud/utils'; import { useEffect, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/library/GenerateNominations/useFetchMethods.tsx b/src/library/GenerateNominations/useFetchMethods.tsx index d22877ee78..5be5edb5d8 100644 --- a/src/library/GenerateNominations/useFetchMethods.tsx +++ b/src/library/GenerateNominations/useFetchMethods.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { shuffle } from '@polkadotcloud/utils'; +import { shuffle } from '@polkadot-cloud/utils'; import { useValidators } from 'contexts/Validators'; import type { Validator } from 'contexts/Validators/types'; import { useValidatorFilters } from 'library/Hooks/useValidatorFilters'; diff --git a/src/library/Graphs/Utils.ts b/src/library/Graphs/Utils.ts index be1786df20..2c75cb8582 100644 --- a/src/library/Graphs/Utils.ts +++ b/src/library/Graphs/Utils.ts @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { greaterThanZero, planckToUnit } from '@polkadotcloud/utils'; +import { greaterThanZero, planckToUnit } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { addDays, diff --git a/src/library/Headers/Connect.tsx b/src/library/Headers/Connect.tsx index a69b97379e..dbe5254244 100644 --- a/src/library/Headers/Connect.tsx +++ b/src/library/Headers/Connect.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only import { faPlug, faWallet } from '@fortawesome/free-solid-svg-icons'; -import { ButtonText } from '@polkadotcloud/core-ui'; +import { ButtonText } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; import { useModal } from 'contexts/Modal'; diff --git a/src/library/Headers/index.tsx b/src/library/Headers/index.tsx index 57e3f3e8ce..5aa33b9835 100644 --- a/src/library/Headers/index.tsx +++ b/src/library/Headers/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { pageFromUri } from '@polkadotcloud/utils'; +import { pageFromUri } from '@polkadot-cloud/utils'; import { useLocation } from 'react-router-dom'; import { useExtrinsics } from 'contexts/Extrinsics'; import { usePlugins } from 'contexts/Plugins'; diff --git a/src/library/Help/index.tsx b/src/library/Help/index.tsx index f3cbd1f483..b4218be63d 100644 --- a/src/library/Help/index.tsx +++ b/src/library/Help/index.tsx @@ -7,8 +7,8 @@ import { ModalCanvas, ModalContent, ModalScroll, -} from '@polkadotcloud/core-ui'; -import { camelize } from '@polkadotcloud/utils'; +} from '@polkadot-cloud/react'; +import { camelize } from '@polkadot-cloud/utils'; import { useAnimation } from 'framer-motion'; import { useCallback, useEffect } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/library/Hooks/useBlockNumber/index.tsx b/src/library/Hooks/useBlockNumber/index.tsx index 651ce2cc00..8dd84f0f2d 100644 --- a/src/library/Hooks/useBlockNumber/index.tsx +++ b/src/library/Hooks/useBlockNumber/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { rmCommas } from '@polkadotcloud/utils'; +import { rmCommas } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useEffect, useRef, useState } from 'react'; import { useApi } from 'contexts/Api'; diff --git a/src/library/Hooks/useErasToTimeLeft/index.tsx b/src/library/Hooks/useErasToTimeLeft/index.tsx index 8ffc279298..bd27343776 100644 --- a/src/library/Hooks/useErasToTimeLeft/index.tsx +++ b/src/library/Hooks/useErasToTimeLeft/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { greaterThanZero } from '@polkadotcloud/utils'; +import { greaterThanZero } from '@polkadot-cloud/utils'; import type BigNumber from 'bignumber.js'; import { useApi } from 'contexts/Api'; diff --git a/src/library/Hooks/useFillVariables/index.tsx b/src/library/Hooks/useFillVariables/index.tsx index 78baabc531..4491cb4d03 100644 --- a/src/library/Hooks/useFillVariables/index.tsx +++ b/src/library/Hooks/useFillVariables/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { capitalizeFirstLetter, planckToUnit } from '@polkadotcloud/utils'; +import { capitalizeFirstLetter, planckToUnit } from '@polkadot-cloud/utils'; import { useApi } from 'contexts/Api'; import { useNetworkMetrics } from 'contexts/Network'; import { usePoolsConfig } from 'contexts/Pools/PoolsConfig'; diff --git a/src/library/Hooks/useNominationStatus/index.tsx b/src/library/Hooks/useNominationStatus/index.tsx index 37f1364eab..ff2c4fc51d 100644 --- a/src/library/Hooks/useNominationStatus/index.tsx +++ b/src/library/Hooks/useNominationStatus/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { planckToUnit, rmCommas } from '@polkadotcloud/utils'; +import { planckToUnit, rmCommas } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/library/Hooks/useTimeLeft/index.tsx b/src/library/Hooks/useTimeLeft/index.tsx index 5a17e63fdd..0628d4bd3e 100644 --- a/src/library/Hooks/useTimeLeft/index.tsx +++ b/src/library/Hooks/useTimeLeft/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { setStateWithRef } from '@polkadotcloud/utils'; +import { setStateWithRef } from '@polkadot-cloud/utils'; import { useEffect, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/library/Import/Confirm.tsx b/src/library/Import/Confirm.tsx index d9324373bc..f6597d9828 100644 --- a/src/library/Import/Confirm.tsx +++ b/src/library/Import/Confirm.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-live authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ButtonMono, ButtonMonoInvert } from '@polkadotcloud/core-ui'; +import { ButtonMono, ButtonMonoInvert } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; import { usePrompt } from 'contexts/Prompt'; diff --git a/src/library/Import/Heading.tsx b/src/library/Import/Heading.tsx index 2b5c7613c2..cb72156cbb 100644 --- a/src/library/Import/Heading.tsx +++ b/src/library/Import/Heading.tsx @@ -6,7 +6,7 @@ import { faCircleMinus, } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { ButtonText } from '@polkadotcloud/core-ui'; +import { ButtonText } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { HeadingWrapper } from './Wrappers'; import type { HeadingProps } from './types'; diff --git a/src/library/Import/NoAccounts.tsx b/src/library/Import/NoAccounts.tsx index 093546f2b7..462288c018 100644 --- a/src/library/Import/NoAccounts.tsx +++ b/src/library/Import/NoAccounts.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only import { faChevronLeft } from '@fortawesome/free-solid-svg-icons'; -import { ButtonSecondary } from '@polkadotcloud/core-ui'; +import { ButtonSecondary } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useModal } from 'contexts/Modal'; import { NoAccountsWrapper } from './Wrappers'; diff --git a/src/library/Import/Remove.tsx b/src/library/Import/Remove.tsx index def133aef5..7560fc8609 100644 --- a/src/library/Import/Remove.tsx +++ b/src/library/Import/Remove.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-live authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ButtonMono, ButtonMonoInvert } from '@polkadotcloud/core-ui'; +import { ButtonMono, ButtonMonoInvert } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; import { usePrompt } from 'contexts/Prompt'; diff --git a/src/library/ListItem/Labels/EraStatus.tsx b/src/library/ListItem/Labels/EraStatus.tsx index 4d0e3eb0c2..f98cd5c3d1 100644 --- a/src/library/ListItem/Labels/EraStatus.tsx +++ b/src/library/ListItem/Labels/EraStatus.tsx @@ -5,7 +5,7 @@ import { capitalizeFirstLetter, planckToUnit, rmCommas, -} from '@polkadotcloud/utils'; +} from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/library/ListItem/Labels/Identity.tsx b/src/library/ListItem/Labels/Identity.tsx index 7bc3ef3abf..61c39d513b 100644 --- a/src/library/ListItem/Labels/Identity.tsx +++ b/src/library/ListItem/Labels/Identity.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { clipAddress } from '@polkadotcloud/utils'; +import { clipAddress } from '@polkadot-cloud/utils'; import { useEffect, useState } from 'react'; import { useValidators } from 'contexts/Validators'; import { Identicon } from 'library/Identicon'; diff --git a/src/library/ListItem/Labels/NominationStatus.tsx b/src/library/ListItem/Labels/NominationStatus.tsx index 3d061b1f6c..08791dcb5e 100644 --- a/src/library/ListItem/Labels/NominationStatus.tsx +++ b/src/library/ListItem/Labels/NominationStatus.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { greaterThanZero, planckToUnit, rmCommas } from '@polkadotcloud/utils'; +import { greaterThanZero, planckToUnit, rmCommas } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/library/ListItem/Labels/PoolBonded.tsx b/src/library/ListItem/Labels/PoolBonded.tsx index 138a1717d1..817acc2c0a 100644 --- a/src/library/ListItem/Labels/PoolBonded.tsx +++ b/src/library/ListItem/Labels/PoolBonded.tsx @@ -5,7 +5,7 @@ import { capitalizeFirstLetter, planckToUnit, rmCommas, -} from '@polkadotcloud/utils'; +} from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/library/ListItem/Labels/PoolIdentity.tsx b/src/library/ListItem/Labels/PoolIdentity.tsx index df58cf01b9..417478b11e 100644 --- a/src/library/ListItem/Labels/PoolIdentity.tsx +++ b/src/library/ListItem/Labels/PoolIdentity.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { clipAddress, determinePoolDisplay } from '@polkadotcloud/utils'; +import { clipAddress, determinePoolDisplay } from '@polkadot-cloud/utils'; import { useBondedPools } from 'contexts/Pools/BondedPools'; import { Identicon } from 'library/Identicon'; import { IdentityWrapper } from 'library/ListItem/Wrappers'; diff --git a/src/library/ListItem/Labels/PoolMemberBonded.tsx b/src/library/ListItem/Labels/PoolMemberBonded.tsx index 6a08f8db0b..4f99f51db9 100644 --- a/src/library/ListItem/Labels/PoolMemberBonded.tsx +++ b/src/library/ListItem/Labels/PoolMemberBonded.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { greaterThanZero, planckToUnit, rmCommas } from '@polkadotcloud/utils'; +import { greaterThanZero, planckToUnit, rmCommas } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/library/Modal/Title.tsx b/src/library/Modal/Title.tsx index 66e5f3eb97..a50bdc11c6 100644 --- a/src/library/Modal/Title.tsx +++ b/src/library/Modal/Title.tsx @@ -3,7 +3,7 @@ import type { IconProp } from '@fortawesome/fontawesome-svg-core'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { ButtonHelp } from '@polkadotcloud/core-ui'; +import { ButtonHelp } from '@polkadot-cloud/react'; import type { FunctionComponent } from 'react'; import React from 'react'; import { useHelp } from 'contexts/Help'; diff --git a/src/library/NetworkBar/index.tsx b/src/library/NetworkBar/index.tsx index 82d8341397..868a2339bb 100644 --- a/src/library/NetworkBar/index.tsx +++ b/src/library/NetworkBar/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { capitalizeFirstLetter } from '@polkadotcloud/utils'; +import { capitalizeFirstLetter } from '@polkadot-cloud/utils'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/library/Overlay/index.tsx b/src/library/Overlay/index.tsx index dcbca81e4f..cb2e913a83 100644 --- a/src/library/Overlay/index.tsx +++ b/src/library/Overlay/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ModalOverlay } from '@polkadotcloud/core-ui'; +import { ModalOverlay } from '@polkadot-cloud/react'; import { useAnimation } from 'framer-motion'; import { useEffect } from 'react'; import { useModal } from 'contexts/Modal'; diff --git a/src/library/PayeeInput/index.tsx b/src/library/PayeeInput/index.tsx index 1e395e7dda..1f17f37111 100644 --- a/src/library/PayeeInput/index.tsx +++ b/src/library/PayeeInput/index.tsx @@ -3,7 +3,7 @@ import { faCheck } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { isValidAddress, remToUnit } from '@polkadotcloud/utils'; +import { isValidAddress, remToUnit } from '@polkadot-cloud/utils'; import React, { useEffect, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useBonded } from 'contexts/Bonded'; diff --git a/src/library/PoolAccount/index.tsx b/src/library/PoolAccount/index.tsx index bb996c1b03..bac040df9b 100644 --- a/src/library/PoolAccount/index.tsx +++ b/src/library/PoolAccount/index.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only import { u8aToString, u8aUnwrapBytes } from '@polkadot/util'; -import { clipAddress, remToUnit } from '@polkadotcloud/utils'; +import { clipAddress, remToUnit } from '@polkadot-cloud/utils'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/library/PoolList/Default.tsx b/src/library/PoolList/Default.tsx index 6fea42c187..852f4527fc 100644 --- a/src/library/PoolList/Default.tsx +++ b/src/library/PoolList/Default.tsx @@ -3,7 +3,7 @@ import { faBars, faGripVertical } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { isNotZero } from '@polkadotcloud/utils'; +import { isNotZero } from '@polkadot-cloud/utils'; import { motion } from 'framer-motion'; import React, { useEffect, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/library/Prompt/Title.tsx b/src/library/Prompt/Title.tsx index aca11a2a11..063b40bca8 100644 --- a/src/library/Prompt/Title.tsx +++ b/src/library/Prompt/Title.tsx @@ -3,7 +3,7 @@ import type { IconProp } from '@fortawesome/fontawesome-svg-core'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { ButtonHelp, ButtonPrimaryInvert } from '@polkadotcloud/core-ui'; +import { ButtonHelp, ButtonPrimaryInvert } from '@polkadot-cloud/react'; import type { FunctionComponent } from 'react'; import { useTranslation } from 'react-i18next'; import { useHelp } from 'contexts/Help'; diff --git a/src/library/SetupSteps/Footer/index.tsx b/src/library/SetupSteps/Footer/index.tsx index bc190c355e..55372746f4 100644 --- a/src/library/SetupSteps/Footer/index.tsx +++ b/src/library/SetupSteps/Footer/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ButtonPrimary } from '@polkadotcloud/core-ui'; +import { ButtonPrimary } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; import { useSetup } from 'contexts/Setup'; diff --git a/src/library/SetupSteps/Header/index.tsx b/src/library/SetupSteps/Header/index.tsx index 45bab59cd0..e665245c59 100644 --- a/src/library/SetupSteps/Header/index.tsx +++ b/src/library/SetupSteps/Header/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ButtonHelp, ButtonSecondary } from '@polkadotcloud/core-ui'; +import { ButtonHelp, ButtonSecondary } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; import { useHelp } from 'contexts/Help'; diff --git a/src/library/SideMenu/index.tsx b/src/library/SideMenu/index.tsx index 74a670fdfe..ca569ca2a7 100644 --- a/src/library/SideMenu/index.tsx +++ b/src/library/SideMenu/index.tsx @@ -3,7 +3,7 @@ import { faCompressAlt, faExpandAlt } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { capitalizeFirstLetter } from '@polkadotcloud/utils'; +import { capitalizeFirstLetter } from '@polkadot-cloud/utils'; import throttle from 'lodash.throttle'; import { useEffect, useRef } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/library/Stat/index.tsx b/src/library/Stat/index.tsx index f4a109d432..c5719ea7bf 100644 --- a/src/library/Stat/index.tsx +++ b/src/library/Stat/index.tsx @@ -7,8 +7,8 @@ import { ButtonHelp, ButtonPrimary, ButtonSecondary, -} from '@polkadotcloud/core-ui'; -import { applyWidthAsPadding } from '@polkadotcloud/utils'; +} from '@polkadot-cloud/react'; +import { applyWidthAsPadding } from '@polkadot-cloud/utils'; import React, { useEffect, useLayoutEffect, useRef } from 'react'; import { useHelp } from 'contexts/Help'; import { useNotifications } from 'contexts/Notifications'; diff --git a/src/library/StatBoxList/Number.tsx b/src/library/StatBoxList/Number.tsx index 23704e81f1..ab0e795a99 100644 --- a/src/library/StatBoxList/Number.tsx +++ b/src/library/StatBoxList/Number.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ButtonHelp } from '@polkadotcloud/core-ui'; +import { ButtonHelp } from '@polkadot-cloud/react'; import { ReactOdometer } from '@polkadotcloud/react-odometer'; import { useHelp } from 'contexts/Help'; import { StatBox } from './Item'; diff --git a/src/library/StatBoxList/Pie.tsx b/src/library/StatBoxList/Pie.tsx index 5c8663a46d..fa73387610 100644 --- a/src/library/StatBoxList/Pie.tsx +++ b/src/library/StatBoxList/Pie.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ButtonHelp } from '@polkadotcloud/core-ui'; +import { ButtonHelp } from '@polkadot-cloud/react'; import { ReactOdometer } from '@polkadotcloud/react-odometer'; import { useEffect, useState } from 'react'; import { useHelp } from 'contexts/Help'; diff --git a/src/library/StatBoxList/Text.tsx b/src/library/StatBoxList/Text.tsx index 095016c1ae..d5ab758a13 100644 --- a/src/library/StatBoxList/Text.tsx +++ b/src/library/StatBoxList/Text.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ButtonHelp } from '@polkadotcloud/core-ui'; +import { ButtonHelp } from '@polkadot-cloud/react'; import { useHelp } from 'contexts/Help'; import { StatBox } from './Item'; import { TextTitleWrapper } from './Wrapper'; diff --git a/src/library/StatBoxList/Timeleft.tsx b/src/library/StatBoxList/Timeleft.tsx index adc9a54c28..4d106f6f56 100644 --- a/src/library/StatBoxList/Timeleft.tsx +++ b/src/library/StatBoxList/Timeleft.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ButtonHelp } from '@polkadotcloud/core-ui'; +import { ButtonHelp } from '@polkadot-cloud/react'; import { useHelp } from 'contexts/Help'; import { Countdown } from 'library/Countdown'; import { StatPie } from 'library/Graphs/StatBoxPie'; diff --git a/src/library/StatBoxList/index.tsx b/src/library/StatBoxList/index.tsx index d405b5dd52..f5600d5b32 100644 --- a/src/library/StatBoxList/index.tsx +++ b/src/library/StatBoxList/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { StatBoxRow } from '@polkadotcloud/core-ui'; +import { StatBoxRow } from '@polkadot-cloud/react'; import React from 'react'; import { ListWrapper } from './Wrapper'; diff --git a/src/library/StatsHead/index.tsx b/src/library/StatsHead/index.tsx index cb2f879aa8..9088bbe14a 100644 --- a/src/library/StatsHead/index.tsx +++ b/src/library/StatsHead/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ButtonHelp } from '@polkadotcloud/core-ui'; +import { ButtonHelp } from '@polkadot-cloud/react'; import { useHelp } from 'contexts/Help'; import { Wrapper } from './Wrapper'; import type { StatsHeadProps } from './types'; diff --git a/src/library/StatusLabel/index.tsx b/src/library/StatusLabel/index.tsx index a7130b37fb..af8cb52ec1 100644 --- a/src/library/StatusLabel/index.tsx +++ b/src/library/StatusLabel/index.tsx @@ -3,7 +3,7 @@ import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { ButtonHelp } from '@polkadotcloud/core-ui'; +import { ButtonHelp } from '@polkadot-cloud/react'; import { useHelp } from 'contexts/Help'; import { usePlugins } from 'contexts/Plugins'; import { usePoolMemberships } from 'contexts/Pools/PoolMemberships'; diff --git a/src/library/SubmitTx/Default.tsx b/src/library/SubmitTx/Default.tsx index 21cb831c4a..46be97b0c0 100644 --- a/src/library/SubmitTx/Default.tsx +++ b/src/library/SubmitTx/Default.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only import { faArrowAltCircleUp } from '@fortawesome/free-regular-svg-icons'; -import { ButtonSubmit } from '@polkadotcloud/core-ui'; +import { ButtonSubmit } from '@polkadot-cloud/react'; import React from 'react'; import { useConnect } from 'contexts/Connect'; import { useTxMeta } from 'contexts/TxMeta'; diff --git a/src/library/SubmitTx/ManualSign/Ledger.tsx b/src/library/SubmitTx/ManualSign/Ledger.tsx index 8ead613b4b..cc516dbaf7 100644 --- a/src/library/SubmitTx/ManualSign/Ledger.tsx +++ b/src/library/SubmitTx/ManualSign/Ledger.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only import { faSquarePen } from '@fortawesome/free-solid-svg-icons'; -import { ButtonHelp, ButtonSubmit } from '@polkadotcloud/core-ui'; +import { ButtonHelp, ButtonSubmit } from '@polkadot-cloud/react'; import React, { useEffect, useRef } from 'react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; diff --git a/src/library/SubmitTx/ManualSign/Vault/SignPrompt.tsx b/src/library/SubmitTx/ManualSign/Vault/SignPrompt.tsx index 6932c19d99..c7e7aaaf0f 100644 --- a/src/library/SubmitTx/ManualSign/Vault/SignPrompt.tsx +++ b/src/library/SubmitTx/ManualSign/Vault/SignPrompt.tsx @@ -6,7 +6,7 @@ import { faChevronRight, } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { ButtonPrimary, ButtonSecondary } from '@polkadotcloud/core-ui'; +import { ButtonPrimary, ButtonSecondary } from '@polkadot-cloud/react'; import { useState } from 'react'; import { useTranslation } from 'react-i18next'; import { usePrompt } from 'contexts/Prompt'; diff --git a/src/library/SubmitTx/ManualSign/Vault/index.tsx b/src/library/SubmitTx/ManualSign/Vault/index.tsx index b093921b5c..4a27da49d5 100644 --- a/src/library/SubmitTx/ManualSign/Vault/index.tsx +++ b/src/library/SubmitTx/ManualSign/Vault/index.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only import { faSquarePen } from '@fortawesome/free-solid-svg-icons'; -import { ButtonSubmit } from '@polkadotcloud/core-ui'; +import { ButtonSubmit } from '@polkadot-cloud/react'; import React from 'react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; diff --git a/src/library/SubmitTx/index.tsx b/src/library/SubmitTx/index.tsx index f8f3cf6820..0a94daa043 100644 --- a/src/library/SubmitTx/index.tsx +++ b/src/library/SubmitTx/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { Tx } from '@polkadotcloud/core-ui'; +import { Tx } from '@polkadot-cloud/react'; import { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/library/Tips/Tip.tsx b/src/library/Tips/Tip.tsx index 44f7160c11..c25e0eb3d0 100644 --- a/src/library/Tips/Tip.tsx +++ b/src/library/Tips/Tip.tsx @@ -6,7 +6,7 @@ import { ButtonPrimary, ButtonPrimaryInvert, ButtonSecondary, -} from '@polkadotcloud/core-ui'; +} from '@polkadot-cloud/react'; import { useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useNavigate } from 'react-router-dom'; diff --git a/src/library/ValidatorList/Filters.tsx b/src/library/ValidatorList/Filters.tsx index e3718fc45e..0ba7e69c6b 100644 --- a/src/library/ValidatorList/Filters.tsx +++ b/src/library/ValidatorList/Filters.tsx @@ -7,7 +7,7 @@ import { faCheck, faFilterCircleXmark, } from '@fortawesome/free-solid-svg-icons'; -import { ButtonPrimaryInvert, ButtonSecondary } from '@polkadotcloud/core-ui'; +import { ButtonPrimaryInvert, ButtonSecondary } from '@polkadot-cloud/react'; import { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { useFilters } from 'contexts/Filters'; diff --git a/src/library/ValidatorList/index.tsx b/src/library/ValidatorList/index.tsx index 052495bafd..aea4d73fb8 100644 --- a/src/library/ValidatorList/index.tsx +++ b/src/library/ValidatorList/index.tsx @@ -3,7 +3,7 @@ import { faBars, faGripVertical } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { isNotZero } from '@polkadotcloud/utils'; +import { isNotZero } from '@polkadot-cloud/utils'; import { motion } from 'framer-motion'; import React, { useEffect, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/locale/utils.ts b/src/locale/utils.ts index 41f8beed11..9b1b47bfa1 100644 --- a/src/locale/utils.ts +++ b/src/locale/utils.ts @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { extractUrlValue, varToUrlHash } from '@polkadotcloud/utils'; +import { extractUrlValue, varToUrlHash } from '@polkadot-cloud/utils'; import { DefaultLocale } from 'consts'; import type { AnyApi, AnyJson } from 'types'; import { availableLanguages, fallbackResources, lngNamespaces } from '.'; diff --git a/src/main.tsx b/src/main.tsx index e4eb32c5bb..d85f364020 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,21 +1,26 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -// Network themes with default template. -import '@polkadotcloud/themes/theme/polkadot-relay/index.css'; -import '@polkadotcloud/themes/theme/kusama-relay/index.css'; -import '@polkadotcloud/themes/theme/westend-relay/index.css'; +// Network themes. +import '@polkadot-cloud/core/theme/polkadot-relay/index.css'; +import '@polkadot-cloud/core/theme/kusama-relay/index.css'; +import '@polkadot-cloud/core/theme/westend-relay/index.css'; -import '@polkadotcloud/themes/template/default/fonts/index.css'; -import '@polkadotcloud/themes/template/default/index.css'; +// Default template fonts. +import '@polkadot-cloud/core/template/default/fonts/index.css'; +// Default template theme. +import '@polkadot-cloud/core/template/default/index.css'; // Core UI styles. -import '@polkadotcloud/core-ui/index.css'; +import '@polkadot-cloud/core/css/styles/index.css'; +import '@polkadot-cloud/react/index.css'; // Miscellaneous component styles. import '@polkadotcloud/react-odometer/index.css'; import { createRoot } from 'react-dom/client'; import { App } from 'App'; + +// App font sizes. import 'styles/index.scss'; const rootElement = document.getElementById('root'); diff --git a/src/modals/AccountPoolRoles/index.tsx b/src/modals/AccountPoolRoles/index.tsx index c029e4bd2a..223cbdff68 100644 --- a/src/modals/AccountPoolRoles/index.tsx +++ b/src/modals/AccountPoolRoles/index.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only import { faBars } from '@fortawesome/free-solid-svg-icons'; -import { ButtonOption, ModalPadding } from '@polkadotcloud/core-ui'; +import { ButtonOption, ModalPadding } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useModal } from 'contexts/Modal'; import { useActivePools } from 'contexts/Pools/ActivePools'; diff --git a/src/modals/Accounts/Account.tsx b/src/modals/Accounts/Account.tsx index 1a52c5bc69..36cb4ba4ec 100644 --- a/src/modals/Accounts/Account.tsx +++ b/src/modals/Accounts/Account.tsx @@ -3,9 +3,9 @@ import { faGlasses } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { clipAddress, planckToUnit } from '@polkadotcloud/utils'; +import { clipAddress, planckToUnit } from '@polkadot-cloud/utils'; import { useTranslation } from 'react-i18next'; -import { Extensions } from '@polkadotcloud/community/extensions'; +import { Extensions } from '@polkadot-cloud/community/extensions'; import { useConnect } from 'contexts/Connect'; import { useModal } from 'contexts/Modal'; import { ReactComponent as LedgerIconSVG } from 'img/ledgerIcon.svg'; diff --git a/src/modals/Accounts/index.tsx b/src/modals/Accounts/index.tsx index 90cbbc3224..a5626cbad6 100644 --- a/src/modals/Accounts/index.tsx +++ b/src/modals/Accounts/index.tsx @@ -8,7 +8,7 @@ import { ButtonText, ModalCustomHeader, ModalPadding, -} from '@polkadotcloud/core-ui'; +} from '@polkadot-cloud/react'; import React, { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useBalances } from 'contexts/Balances'; diff --git a/src/modals/BalanceTest/index.tsx b/src/modals/BalanceTest/index.tsx index 09331e1668..7442d74cc6 100644 --- a/src/modals/BalanceTest/index.tsx +++ b/src/modals/BalanceTest/index.tsx @@ -1,8 +1,8 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ModalPadding } from '@polkadotcloud/core-ui'; -import { unitToPlanck } from '@polkadotcloud/utils'; +import { ModalPadding } from '@polkadot-cloud/react'; +import { unitToPlanck } from '@polkadot-cloud/utils'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; import { useModal } from 'contexts/Modal'; diff --git a/src/modals/Bio/index.tsx b/src/modals/Bio/index.tsx index 3c8794a600..e8d3c62d5a 100644 --- a/src/modals/Bio/index.tsx +++ b/src/modals/Bio/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ModalPadding } from '@polkadotcloud/core-ui'; +import { ModalPadding } from '@polkadot-cloud/react'; import { useModal } from 'contexts/Modal'; import { Title } from 'library/Modal/Title'; import { Wrapper } from './Wrapper'; diff --git a/src/modals/Bond/index.tsx b/src/modals/Bond/index.tsx index ec29814098..d7fd76a3d8 100644 --- a/src/modals/Bond/index.tsx +++ b/src/modals/Bond/index.tsx @@ -1,8 +1,8 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ModalPadding, ModalWarnings } from '@polkadotcloud/core-ui'; -import { planckToUnit, unitToPlanck } from '@polkadotcloud/utils'; +import { ModalPadding, ModalWarnings } from '@polkadot-cloud/react'; +import { planckToUnit, unitToPlanck } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/modals/ChangeNominations/index.tsx b/src/modals/ChangeNominations/index.tsx index 8a5fa6db59..78ecccc305 100644 --- a/src/modals/ChangeNominations/index.tsx +++ b/src/modals/ChangeNominations/index.tsx @@ -5,7 +5,7 @@ import { ModalPadding, ModalSeparator, ModalWarnings, -} from '@polkadotcloud/core-ui'; +} from '@polkadot-cloud/react'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/modals/ChangePoolRoles/RoleChange.tsx b/src/modals/ChangePoolRoles/RoleChange.tsx index 149164bc31..80f145cf29 100644 --- a/src/modals/ChangePoolRoles/RoleChange.tsx +++ b/src/modals/ChangePoolRoles/RoleChange.tsx @@ -3,7 +3,7 @@ import { faAnglesRight } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { clipAddress, remToUnit } from '@polkadotcloud/utils'; +import { clipAddress, remToUnit } from '@polkadot-cloud/utils'; import { Identicon } from 'library/Identicon'; import { RoleChangeWrapper } from './Wrapper'; diff --git a/src/modals/ChangePoolRoles/index.tsx b/src/modals/ChangePoolRoles/index.tsx index e5e567af00..6bf44a7b7a 100644 --- a/src/modals/ChangePoolRoles/index.tsx +++ b/src/modals/ChangePoolRoles/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ModalPadding } from '@polkadotcloud/core-ui'; +import { ModalPadding } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; diff --git a/src/modals/ChooseLanguage/index.tsx b/src/modals/ChooseLanguage/index.tsx index 295dfc8456..741086b791 100644 --- a/src/modals/ChooseLanguage/index.tsx +++ b/src/modals/ChooseLanguage/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ModalPadding } from '@polkadotcloud/core-ui'; +import { ModalPadding } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useModal } from 'contexts/Modal'; import { ReactComponent as LanguageSVG } from 'img/language.svg'; diff --git a/src/modals/ClaimReward/index.tsx b/src/modals/ClaimReward/index.tsx index af5e096f61..0730ca136e 100644 --- a/src/modals/ClaimReward/index.tsx +++ b/src/modals/ClaimReward/index.tsx @@ -1,12 +1,8 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { - ActionItem, - ModalPadding, - ModalWarnings, -} from '@polkadotcloud/core-ui'; -import { greaterThanZero, planckToUnit } from '@polkadotcloud/utils'; +import { ActionItem, ModalPadding, ModalWarnings } from '@polkadot-cloud/react'; +import { greaterThanZero, planckToUnit } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/modals/Connect/Extension.tsx b/src/modals/Connect/Extension.tsx index c5bbdddaae..3e52990388 100644 --- a/src/modals/Connect/Extension.tsx +++ b/src/modals/Connect/Extension.tsx @@ -3,7 +3,7 @@ import { faExternalLinkAlt, faPlus } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { ModalConnectItem } from '@polkadotcloud/core-ui'; +import { ModalConnectItem } from '@polkadot-cloud/react'; import { useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; diff --git a/src/modals/Connect/Ledger.tsx b/src/modals/Connect/Ledger.tsx index d31c281e6f..7035958cac 100644 --- a/src/modals/Connect/Ledger.tsx +++ b/src/modals/Connect/Ledger.tsx @@ -13,8 +13,8 @@ import { ButtonText, ModalConnectItem, ModalHardwareItem, -} from '@polkadotcloud/core-ui'; -import { inChrome } from '@polkadotcloud/utils'; +} from '@polkadot-cloud/react'; +import { inChrome } from '@polkadot-cloud/utils'; import React from 'react'; import { useApi } from 'contexts/Api'; import { useHelp } from 'contexts/Help'; diff --git a/src/modals/Connect/Proxies.tsx b/src/modals/Connect/Proxies.tsx index 066edf8c02..0718b23fce 100644 --- a/src/modals/Connect/Proxies.tsx +++ b/src/modals/Connect/Proxies.tsx @@ -11,7 +11,7 @@ import { ButtonHelp, ButtonMonoInvert, ButtonSecondary, -} from '@polkadotcloud/core-ui'; +} from '@polkadot-cloud/react'; import React from 'react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; diff --git a/src/modals/Connect/ReadOnly.tsx b/src/modals/Connect/ReadOnly.tsx index 62543d5867..d50e9c3144 100644 --- a/src/modals/Connect/ReadOnly.tsx +++ b/src/modals/Connect/ReadOnly.tsx @@ -11,7 +11,7 @@ import { ButtonHelp, ButtonMonoInvert, ButtonSecondary, -} from '@polkadotcloud/core-ui'; +} from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; import type { ExternalAccount } from 'contexts/Connect/types'; diff --git a/src/modals/Connect/Vault.tsx b/src/modals/Connect/Vault.tsx index 89fbd39e08..9f1433a8eb 100644 --- a/src/modals/Connect/Vault.tsx +++ b/src/modals/Connect/Vault.tsx @@ -9,7 +9,7 @@ import { ButtonText, ModalConnectItem, ModalHardwareItem, -} from '@polkadotcloud/core-ui'; +} from '@polkadot-cloud/react'; import React from 'react'; import { useTranslation } from 'react-i18next'; import { useHelp } from 'contexts/Help'; diff --git a/src/modals/Connect/index.tsx b/src/modals/Connect/index.tsx index a984b38953..a0c108762e 100644 --- a/src/modals/Connect/index.tsx +++ b/src/modals/Connect/index.tsx @@ -11,8 +11,8 @@ import { ModalMotionThreeSection, ModalPadding, ModalSection, -} from '@polkadotcloud/core-ui'; -import { ExtensionsArray } from '@polkadotcloud/community/extensions'; +} from '@polkadot-cloud/react'; +import { ExtensionsArray } from '@polkadot-cloud/community/extensions'; import { useEffect, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useExtensions } from 'contexts/Extensions'; diff --git a/src/modals/DismissTips/index.tsx b/src/modals/DismissTips/index.tsx index 3c2dd53bd9..58ab699f03 100644 --- a/src/modals/DismissTips/index.tsx +++ b/src/modals/DismissTips/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ButtonSubmit, ModalPadding } from '@polkadotcloud/core-ui'; +import { ButtonSubmit, ModalPadding } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useModal } from 'contexts/Modal'; import { usePlugins } from 'contexts/Plugins'; diff --git a/src/modals/GoToFeedback/index.tsx b/src/modals/GoToFeedback/index.tsx index 9c43f075cb..2406351a97 100644 --- a/src/modals/GoToFeedback/index.tsx +++ b/src/modals/GoToFeedback/index.tsx @@ -3,7 +3,7 @@ import { faExternalLinkAlt } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { ModalPadding } from '@polkadotcloud/core-ui'; +import { ModalPadding } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { ReactComponent as ForumSVG } from 'img/forum.svg'; import { Title } from 'library/Modal/Title'; diff --git a/src/modals/ImportLedger/Addresses.tsx b/src/modals/ImportLedger/Addresses.tsx index 00a4da7ced..c20315ebe6 100644 --- a/src/modals/ImportLedger/Addresses.tsx +++ b/src/modals/ImportLedger/Addresses.tsx @@ -2,8 +2,8 @@ // SPDX-License-Identifier: GPL-3.0-only import { faArrowDown } from '@fortawesome/free-solid-svg-icons'; -import { ButtonText, HardwareAddress } from '@polkadotcloud/core-ui'; -import { clipAddress, unescape } from '@polkadotcloud/utils'; +import { ButtonText, HardwareAddress } from '@polkadot-cloud/react'; +import { clipAddress, unescape } from '@polkadot-cloud/utils'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; diff --git a/src/modals/ImportLedger/Manage.tsx b/src/modals/ImportLedger/Manage.tsx index bdbcc13376..646472a39d 100644 --- a/src/modals/ImportLedger/Manage.tsx +++ b/src/modals/ImportLedger/Manage.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-live authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { HardwareStatusBar } from '@polkadotcloud/core-ui'; +import { HardwareStatusBar } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useLedgerHardware } from 'contexts/Hardware/Ledger'; diff --git a/src/modals/ImportLedger/Reset.tsx b/src/modals/ImportLedger/Reset.tsx index f51f037419..8c021a619c 100644 --- a/src/modals/ImportLedger/Reset.tsx +++ b/src/modals/ImportLedger/Reset.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-live authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ButtonMono, ButtonMonoInvert } from '@polkadotcloud/core-ui'; +import { ButtonMono, ButtonMonoInvert } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; import type { LedgerAccount } from 'contexts/Connect/types'; diff --git a/src/modals/ImportLedger/Splash.tsx b/src/modals/ImportLedger/Splash.tsx index a7dbfb92ba..10fe0deb6a 100644 --- a/src/modals/ImportLedger/Splash.tsx +++ b/src/modals/ImportLedger/Splash.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only import { faChevronLeft } from '@fortawesome/free-solid-svg-icons'; -import { ButtonHelp, ButtonSecondary } from '@polkadotcloud/core-ui'; +import { ButtonHelp, ButtonSecondary } from '@polkadot-cloud/react'; import { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { useLedgerHardware } from 'contexts/Hardware/Ledger'; diff --git a/src/modals/ImportLedger/index.tsx b/src/modals/ImportLedger/index.tsx index 855ee352ec..3ce6586f34 100644 --- a/src/modals/ImportLedger/index.tsx +++ b/src/modals/ImportLedger/index.tsx @@ -1,7 +1,7 @@ // Copyright 2022 @paritytech/polkadot-native authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { clipAddress, setStateWithRef } from '@polkadotcloud/utils'; +import { clipAddress, setStateWithRef } from '@polkadot-cloud/utils'; import React, { useEffect, useRef, useState } from 'react'; import { useApi } from 'contexts/Api'; import { useLedgerHardware } from 'contexts/Hardware/Ledger'; diff --git a/src/modals/ImportVault/Reader.tsx b/src/modals/ImportVault/Reader.tsx index c2bfa8587b..b5f4f8f2e2 100644 --- a/src/modals/ImportVault/Reader.tsx +++ b/src/modals/ImportVault/Reader.tsx @@ -1,8 +1,8 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ButtonSecondary } from '@polkadotcloud/core-ui'; -import { isValidAddress } from '@polkadotcloud/utils'; +import { ButtonSecondary } from '@polkadot-cloud/react'; +import { isValidAddress } from '@polkadot-cloud/utils'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; diff --git a/src/modals/ImportVault/index.tsx b/src/modals/ImportVault/index.tsx index 1b413da7e4..503362c169 100644 --- a/src/modals/ImportVault/index.tsx +++ b/src/modals/ImportVault/index.tsx @@ -7,7 +7,7 @@ import { ButtonText, HardwareAddress, HardwareStatusBar, -} from '@polkadotcloud/core-ui'; +} from '@polkadot-cloud/react'; import { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; diff --git a/src/modals/JoinPool/index.tsx b/src/modals/JoinPool/index.tsx index 04923a8026..68c349a412 100644 --- a/src/modals/JoinPool/index.tsx +++ b/src/modals/JoinPool/index.tsx @@ -1,8 +1,8 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ModalPadding } from '@polkadotcloud/core-ui'; -import { planckToUnit, unitToPlanck } from '@polkadotcloud/utils'; +import { ModalPadding } from '@polkadot-cloud/react'; +import { planckToUnit, unitToPlanck } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/modals/ManageFastUnstake/index.tsx b/src/modals/ManageFastUnstake/index.tsx index dec58cc41e..2376b2d28b 100644 --- a/src/modals/ManageFastUnstake/index.tsx +++ b/src/modals/ManageFastUnstake/index.tsx @@ -6,8 +6,8 @@ import { ModalNotes, ModalPadding, ModalWarnings, -} from '@polkadotcloud/core-ui'; -import { planckToUnit } from '@polkadotcloud/utils'; +} from '@polkadot-cloud/react'; +import { planckToUnit } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/modals/ManagePool/Forms/ClaimCommission.tsx b/src/modals/ManagePool/Forms/ClaimCommission.tsx index ceb8edba9f..9ba6577783 100644 --- a/src/modals/ManagePool/Forms/ClaimCommission.tsx +++ b/src/modals/ManagePool/Forms/ClaimCommission.tsx @@ -7,8 +7,8 @@ import { ButtonSubmitInvert, ModalNotes, ModalWarnings, -} from '@polkadotcloud/core-ui'; -import { greaterThanZero, planckToUnit, rmCommas } from '@polkadotcloud/utils'; +} from '@polkadot-cloud/react'; +import { greaterThanZero, planckToUnit, rmCommas } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/modals/ManagePool/Forms/Commission.tsx b/src/modals/ManagePool/Forms/Commission.tsx index 337cbe9314..ec6cd7e284 100644 --- a/src/modals/ManagePool/Forms/Commission.tsx +++ b/src/modals/ManagePool/Forms/Commission.tsx @@ -7,8 +7,8 @@ import { ButtonHelp, ButtonSubmitInvert, ModalWarnings, -} from '@polkadotcloud/core-ui'; -import { rmCommas } from '@polkadotcloud/utils'; +} from '@polkadot-cloud/react'; +import { rmCommas } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { intervalToDuration } from 'date-fns'; import Slider from 'rc-slider'; diff --git a/src/modals/ManagePool/Forms/LeavePool.tsx b/src/modals/ManagePool/Forms/LeavePool.tsx index 6e01493bd5..5d4dc8518b 100644 --- a/src/modals/ManagePool/Forms/LeavePool.tsx +++ b/src/modals/ManagePool/Forms/LeavePool.tsx @@ -6,12 +6,12 @@ import { ActionItem, ButtonSubmitInvert, ModalWarnings, -} from '@polkadotcloud/core-ui'; +} from '@polkadot-cloud/react'; import { greaterThanZero, planckToUnit, unitToPlanck, -} from '@polkadotcloud/utils'; +} from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { getUnixTime } from 'date-fns'; import { useEffect, useState } from 'react'; diff --git a/src/modals/ManagePool/Forms/SetClaimPermission.tsx b/src/modals/ManagePool/Forms/SetClaimPermission.tsx index 817c669f9f..de74a251ac 100644 --- a/src/modals/ManagePool/Forms/SetClaimPermission.tsx +++ b/src/modals/ManagePool/Forms/SetClaimPermission.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only import { faChevronLeft } from '@fortawesome/free-solid-svg-icons'; -import { ButtonSubmitInvert, ModalWarnings } from '@polkadotcloud/core-ui'; +import { ButtonSubmitInvert, ModalWarnings } from '@polkadot-cloud/react'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/modals/ManagePool/Forms/SetMetadata.tsx b/src/modals/ManagePool/Forms/SetMetadata.tsx index 39c34808b9..38b1536043 100644 --- a/src/modals/ManagePool/Forms/SetMetadata.tsx +++ b/src/modals/ManagePool/Forms/SetMetadata.tsx @@ -3,7 +3,7 @@ import { faChevronLeft } from '@fortawesome/free-solid-svg-icons'; import { u8aToString, u8aUnwrapBytes } from '@polkadot/util'; -import { ButtonSubmitInvert, ModalWarnings } from '@polkadotcloud/core-ui'; +import { ButtonSubmitInvert, ModalWarnings } from '@polkadot-cloud/react'; import React, { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/modals/ManagePool/Forms/SetState.tsx b/src/modals/ManagePool/Forms/SetState.tsx index 765c904ae1..2a388a9ca7 100644 --- a/src/modals/ManagePool/Forms/SetState.tsx +++ b/src/modals/ManagePool/Forms/SetState.tsx @@ -6,7 +6,7 @@ import { ActionItem, ButtonSubmitInvert, ModalWarnings, -} from '@polkadotcloud/core-ui'; +} from '@polkadot-cloud/react'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/modals/ManagePool/Tasks.tsx b/src/modals/ManagePool/Tasks.tsx index 98b340b320..dc8e764173 100644 --- a/src/modals/ManagePool/Tasks.tsx +++ b/src/modals/ManagePool/Tasks.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ButtonOption } from '@polkadotcloud/core-ui'; +import { ButtonOption } from '@polkadot-cloud/react'; import { forwardRef } from 'react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; diff --git a/src/modals/ManagePool/index.tsx b/src/modals/ManagePool/index.tsx index 7fc55fc53c..c089840b8a 100644 --- a/src/modals/ManagePool/index.tsx +++ b/src/modals/ManagePool/index.tsx @@ -5,7 +5,7 @@ import { ModalFixedTitle, ModalMotionTwoSection, ModalSection, -} from '@polkadotcloud/core-ui'; +} from '@polkadot-cloud/react'; import { useEffect, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useModal } from 'contexts/Modal'; diff --git a/src/modals/Networks/index.tsx b/src/modals/Networks/index.tsx index 76e8217058..4002e48c52 100644 --- a/src/modals/Networks/index.tsx +++ b/src/modals/Networks/index.tsx @@ -3,8 +3,8 @@ import { faChevronRight, faGlobe } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { ModalPadding } from '@polkadotcloud/core-ui'; -import { capitalizeFirstLetter } from '@polkadotcloud/utils'; +import { ModalPadding } from '@polkadot-cloud/react'; +import { capitalizeFirstLetter } from '@polkadot-cloud/utils'; import { useEffect, useState } from 'react'; import { Trans, useTranslation } from 'react-i18next'; import { NetworkList } from 'config/networks'; diff --git a/src/modals/Nominate/index.tsx b/src/modals/Nominate/index.tsx index f0df77f9ac..800a894ac3 100644 --- a/src/modals/Nominate/index.tsx +++ b/src/modals/Nominate/index.tsx @@ -1,12 +1,8 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { - ActionItem, - ModalPadding, - ModalWarnings, -} from '@polkadotcloud/core-ui'; -import { planckToUnit } from '@polkadotcloud/utils'; +import { ActionItem, ModalPadding, ModalWarnings } from '@polkadot-cloud/react'; +import { planckToUnit } from '@polkadot-cloud/utils'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/modals/NominateFromFavorites/index.tsx b/src/modals/NominateFromFavorites/index.tsx index 5e0fb4cdbd..089191986f 100644 --- a/src/modals/NominateFromFavorites/index.tsx +++ b/src/modals/NominateFromFavorites/index.tsx @@ -5,7 +5,7 @@ import { ModalFooter, ModalPadding, ModalWarnings, -} from '@polkadotcloud/core-ui'; +} from '@polkadot-cloud/react'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/modals/NominatePool/index.tsx b/src/modals/NominatePool/index.tsx index 6ec466dd46..ff8064f0ec 100644 --- a/src/modals/NominatePool/index.tsx +++ b/src/modals/NominatePool/index.tsx @@ -1,11 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { - ActionItem, - ModalPadding, - ModalWarnings, -} from '@polkadotcloud/core-ui'; +import { ActionItem, ModalPadding, ModalWarnings } from '@polkadot-cloud/react'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/modals/PoolNominations/index.tsx b/src/modals/PoolNominations/index.tsx index 4d8d40378e..c6ad4bc007 100644 --- a/src/modals/PoolNominations/index.tsx +++ b/src/modals/PoolNominations/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ModalPadding } from '@polkadotcloud/core-ui'; +import { ModalPadding } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useModal } from 'contexts/Modal'; import { Title } from 'library/Modal/Title'; diff --git a/src/modals/SelectFavorites/index.tsx b/src/modals/SelectFavorites/index.tsx index d15eca0988..f8e926200e 100644 --- a/src/modals/SelectFavorites/index.tsx +++ b/src/modals/SelectFavorites/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ModalPadding } from '@polkadotcloud/core-ui'; +import { ModalPadding } from '@polkadot-cloud/react'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/modals/Settings/index.tsx b/src/modals/Settings/index.tsx index 6ce8cfd8ce..2622c37a5d 100644 --- a/src/modals/Settings/index.tsx +++ b/src/modals/Settings/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ModalPadding } from '@polkadotcloud/core-ui'; +import { ModalPadding } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { usePlugins } from 'contexts/Plugins'; import { Title } from 'library/Modal/Title'; diff --git a/src/modals/Unbond/index.tsx b/src/modals/Unbond/index.tsx index 5a715f3ebf..0c452054cf 100644 --- a/src/modals/Unbond/index.tsx +++ b/src/modals/Unbond/index.tsx @@ -1,12 +1,8 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { - ModalNotes, - ModalPadding, - ModalWarnings, -} from '@polkadotcloud/core-ui'; -import { isNotZero, planckToUnit, unitToPlanck } from '@polkadotcloud/utils'; +import { ModalNotes, ModalPadding, ModalWarnings } from '@polkadot-cloud/react'; +import { isNotZero, planckToUnit, unitToPlanck } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { getUnixTime } from 'date-fns'; import { useEffect, useState } from 'react'; diff --git a/src/modals/UnbondPoolMember/index.tsx b/src/modals/UnbondPoolMember/index.tsx index a0a9236c5f..c128d4da20 100644 --- a/src/modals/UnbondPoolMember/index.tsx +++ b/src/modals/UnbondPoolMember/index.tsx @@ -1,17 +1,13 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { - ActionItem, - ModalPadding, - ModalWarnings, -} from '@polkadotcloud/core-ui'; +import { ActionItem, ModalPadding, ModalWarnings } from '@polkadot-cloud/react'; import { greaterThanZero, planckToUnit, rmCommas, unitToPlanck, -} from '@polkadotcloud/utils'; +} from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { getUnixTime } from 'date-fns'; import { useEffect, useState } from 'react'; diff --git a/src/modals/UnlockChunks/Chunk.tsx b/src/modals/UnlockChunks/Chunk.tsx index c86ffcd5ef..e5e4cef14e 100644 --- a/src/modals/UnlockChunks/Chunk.tsx +++ b/src/modals/UnlockChunks/Chunk.tsx @@ -1,8 +1,8 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ButtonSubmit } from '@polkadotcloud/core-ui'; -import { planckToUnit } from '@polkadotcloud/utils'; +import { ButtonSubmit } from '@polkadot-cloud/react'; +import { planckToUnit } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { fromUnixTime } from 'date-fns'; import { useEffect } from 'react'; diff --git a/src/modals/UnlockChunks/Forms.tsx b/src/modals/UnlockChunks/Forms.tsx index aeb74c604e..e7dd33facd 100644 --- a/src/modals/UnlockChunks/Forms.tsx +++ b/src/modals/UnlockChunks/Forms.tsx @@ -6,8 +6,8 @@ import { ActionItem, ButtonSubmitInvert, ModalWarnings, -} from '@polkadotcloud/core-ui'; -import { planckToUnit, rmCommas } from '@polkadotcloud/utils'; +} from '@polkadot-cloud/react'; +import { planckToUnit, rmCommas } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { forwardRef, useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/modals/UnlockChunks/Overview.tsx b/src/modals/UnlockChunks/Overview.tsx index 1647753c93..bcaded37fb 100644 --- a/src/modals/UnlockChunks/Overview.tsx +++ b/src/modals/UnlockChunks/Overview.tsx @@ -3,8 +3,8 @@ import { faCheckCircle, faClock } from '@fortawesome/free-regular-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { ButtonSubmit, ModalNotes } from '@polkadotcloud/core-ui'; -import { planckToUnit } from '@polkadotcloud/utils'; +import { ButtonSubmit, ModalNotes } from '@polkadot-cloud/react'; +import { planckToUnit } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { getUnixTime } from 'date-fns'; import { forwardRef } from 'react'; diff --git a/src/modals/UnlockChunks/index.tsx b/src/modals/UnlockChunks/index.tsx index 460d09010c..b2ae99d072 100644 --- a/src/modals/UnlockChunks/index.tsx +++ b/src/modals/UnlockChunks/index.tsx @@ -5,8 +5,8 @@ import { ModalFixedTitle, ModalMotionTwoSection, ModalSection, -} from '@polkadotcloud/core-ui'; -import { setStateWithRef } from '@polkadotcloud/utils'; +} from '@polkadot-cloud/react'; +import { setStateWithRef } from '@polkadot-cloud/utils'; import { useEffect, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useBalances } from 'contexts/Balances'; diff --git a/src/modals/Unstake/index.tsx b/src/modals/Unstake/index.tsx index 46dab68d10..0b6d79f070 100644 --- a/src/modals/Unstake/index.tsx +++ b/src/modals/Unstake/index.tsx @@ -1,16 +1,12 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { - ActionItem, - ModalPadding, - ModalWarnings, -} from '@polkadotcloud/core-ui'; +import { ActionItem, ModalPadding, ModalWarnings } from '@polkadot-cloud/react'; import { greaterThanZero, planckToUnit, unitToPlanck, -} from '@polkadotcloud/utils'; +} from '@polkadot-cloud/utils'; import { getUnixTime } from 'date-fns'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/modals/UpdateController/Switch/index.tsx b/src/modals/UpdateController/Switch/index.tsx index e99fc50917..d8e0eaacf8 100644 --- a/src/modals/UpdateController/Switch/index.tsx +++ b/src/modals/UpdateController/Switch/index.tsx @@ -3,7 +3,7 @@ import { faAnglesRight } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { remToUnit } from '@polkadotcloud/utils'; +import { remToUnit } from '@polkadot-cloud/utils'; import { useConnect } from 'contexts/Connect'; import { Identicon } from 'library/Identicon'; import type { AccountDropdownProps } from '../../../library/Form/types'; diff --git a/src/modals/UpdateController/index.tsx b/src/modals/UpdateController/index.tsx index 50823d70d5..efdd26d153 100644 --- a/src/modals/UpdateController/index.tsx +++ b/src/modals/UpdateController/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ModalPadding, ModalWarnings } from '@polkadotcloud/core-ui'; +import { ModalPadding, ModalWarnings } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useBonded } from 'contexts/Bonded'; diff --git a/src/modals/UpdatePayee/index.tsx b/src/modals/UpdatePayee/index.tsx index 8530bef49c..e9cbf47691 100644 --- a/src/modals/UpdatePayee/index.tsx +++ b/src/modals/UpdatePayee/index.tsx @@ -1,8 +1,8 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ModalPadding, ModalWarnings } from '@polkadotcloud/core-ui'; -import { isValidAddress } from '@polkadotcloud/utils'; +import { ModalPadding, ModalWarnings } from '@polkadot-cloud/react'; +import { isValidAddress } from '@polkadot-cloud/utils'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/modals/UpdateReserve/index.tsx b/src/modals/UpdateReserve/index.tsx index b19de54bfa..e1f5455c47 100644 --- a/src/modals/UpdateReserve/index.tsx +++ b/src/modals/UpdateReserve/index.tsx @@ -7,8 +7,8 @@ import { ButtonHelp, ButtonPrimaryInvert, ModalPadding, -} from '@polkadotcloud/core-ui'; -import { planckToUnit, unitToPlanck } from '@polkadotcloud/utils'; +} from '@polkadot-cloud/react'; +import { planckToUnit, unitToPlanck } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import Slider from 'rc-slider'; import { useState } from 'react'; diff --git a/src/modals/ValidatorMetrics/index.tsx b/src/modals/ValidatorMetrics/index.tsx index 1e3101e39b..531b7ce921 100644 --- a/src/modals/ValidatorMetrics/index.tsx +++ b/src/modals/ValidatorMetrics/index.tsx @@ -1,8 +1,8 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ButtonHelp, ModalPadding } from '@polkadotcloud/core-ui'; -import { clipAddress, planckToUnit, rmCommas } from '@polkadotcloud/utils'; +import { ButtonHelp, ModalPadding } from '@polkadot-cloud/react'; +import { clipAddress, planckToUnit, rmCommas } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import React, { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/modals/WithdrawPoolMember/index.tsx b/src/modals/WithdrawPoolMember/index.tsx index 63a12091bc..534447bfde 100644 --- a/src/modals/WithdrawPoolMember/index.tsx +++ b/src/modals/WithdrawPoolMember/index.tsx @@ -1,12 +1,8 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { - ActionItem, - ModalPadding, - ModalWarnings, -} from '@polkadotcloud/core-ui'; -import { isNotZero, planckToUnit, rmCommas } from '@polkadotcloud/utils'; +import { ActionItem, ModalPadding, ModalWarnings } from '@polkadot-cloud/react'; +import { isNotZero, planckToUnit, rmCommas } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useState } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/modals/index.tsx b/src/modals/index.tsx index 4792b168ed..a2632e643f 100644 --- a/src/modals/index.tsx +++ b/src/modals/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ModalContainer, ModalCard, ModalHeight } from '@polkadotcloud/core-ui'; +import { ModalContainer, ModalCard, ModalHeight } from '@polkadot-cloud/react'; import { useAnimation } from 'framer-motion'; import { useEffect, useRef } from 'react'; import { ErrorBoundary } from 'react-error-boundary'; diff --git a/src/pages/Community/Entity.tsx b/src/pages/Community/Entity.tsx index a118ef9f62..916f090cdf 100644 --- a/src/pages/Community/Entity.tsx +++ b/src/pages/Community/Entity.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only import { faChevronLeft } from '@fortawesome/free-solid-svg-icons'; -import { ButtonSecondary, PageHeading, PageRow } from '@polkadotcloud/core-ui'; +import { ButtonSecondary, PageHeading, PageRow } from '@polkadot-cloud/react'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/pages/Community/List.tsx b/src/pages/Community/List.tsx index 8a59abdf87..24f2bccc56 100644 --- a/src/pages/Community/List.tsx +++ b/src/pages/Community/List.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { PageRow } from '@polkadotcloud/core-ui'; +import { PageRow } from '@polkadot-cloud/react'; import { useEffect, useState } from 'react'; import { useApi } from 'contexts/Api'; import { useValidators } from 'contexts/Validators'; diff --git a/src/pages/Community/index.tsx b/src/pages/Community/index.tsx index 33c226960a..298175a38e 100644 --- a/src/pages/Community/index.tsx +++ b/src/pages/Community/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { PageTitle } from '@polkadotcloud/core-ui'; +import { PageTitle } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import type { PageProps } from 'types'; import { Entity } from './Entity'; diff --git a/src/pages/Nominate/Active/ControllerNotStash.tsx b/src/pages/Nominate/Active/ControllerNotStash.tsx index 8c24dfb5e0..7a6f1add23 100644 --- a/src/pages/Nominate/Active/ControllerNotStash.tsx +++ b/src/pages/Nominate/Active/ControllerNotStash.tsx @@ -7,7 +7,7 @@ import { } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { stringUpperFirst } from '@polkadot/util'; -import { ButtonPrimary, PageRow } from '@polkadotcloud/core-ui'; +import { ButtonPrimary, PageRow } from '@polkadot-cloud/react'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/pages/Nominate/Active/ManageBond.tsx b/src/pages/Nominate/Active/ManageBond.tsx index 84fe6a4b69..859fb6c2ae 100644 --- a/src/pages/Nominate/Active/ManageBond.tsx +++ b/src/pages/Nominate/Active/ManageBond.tsx @@ -2,8 +2,8 @@ // SPDX-License-Identifier: GPL-3.0-only import { faLockOpen } from '@fortawesome/free-solid-svg-icons'; -import { ButtonHelp, ButtonPrimary, ButtonRow } from '@polkadotcloud/core-ui'; -import { planckToUnit } from '@polkadotcloud/utils'; +import { ButtonHelp, ButtonPrimary, ButtonRow } from '@polkadot-cloud/react'; +import { planckToUnit } from '@polkadot-cloud/utils'; import type BigNumber from 'bignumber.js'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/pages/Nominate/Active/Nominations/index.tsx b/src/pages/Nominate/Active/Nominations/index.tsx index 73eef4a1e8..8904c0a745 100644 --- a/src/pages/Nominate/Active/Nominations/index.tsx +++ b/src/pages/Nominate/Active/Nominations/index.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only import { faStopCircle } from '@fortawesome/free-solid-svg-icons'; -import { ButtonHelp, ButtonPrimary } from '@polkadotcloud/core-ui'; +import { ButtonHelp, ButtonPrimary } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useBonded } from 'contexts/Bonded'; import { useConnect } from 'contexts/Connect'; diff --git a/src/pages/Nominate/Active/Stats/MinimumActiveStake.tsx b/src/pages/Nominate/Active/Stats/MinimumActiveStake.tsx index 3de91d97ea..e1db907e58 100644 --- a/src/pages/Nominate/Active/Stats/MinimumActiveStake.tsx +++ b/src/pages/Nominate/Active/Stats/MinimumActiveStake.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { planckToUnit } from '@polkadotcloud/utils'; +import { planckToUnit } from '@polkadot-cloud/utils'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useNetworkMetrics } from 'contexts/Network'; diff --git a/src/pages/Nominate/Active/Stats/MinimumNominatorBond.tsx b/src/pages/Nominate/Active/Stats/MinimumNominatorBond.tsx index a4b291bd87..c2cb5b0721 100644 --- a/src/pages/Nominate/Active/Stats/MinimumNominatorBond.tsx +++ b/src/pages/Nominate/Active/Stats/MinimumNominatorBond.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { planckToUnit } from '@polkadotcloud/utils'; +import { planckToUnit } from '@polkadot-cloud/utils'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useStaking } from 'contexts/Staking'; diff --git a/src/pages/Nominate/Active/Status/ControllerStatus.tsx b/src/pages/Nominate/Active/Status/ControllerStatus.tsx index b708ad06b2..22ddf5c080 100644 --- a/src/pages/Nominate/Active/Status/ControllerStatus.tsx +++ b/src/pages/Nominate/Active/Status/ControllerStatus.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { clipAddress } from '@polkadotcloud/utils'; +import { clipAddress } from '@polkadot-cloud/utils'; import { useTranslation } from 'react-i18next'; import { useBonded } from 'contexts/Bonded'; import { useConnect } from 'contexts/Connect'; diff --git a/src/pages/Nominate/Active/Status/index.tsx b/src/pages/Nominate/Active/Status/index.tsx index b6a2e888d5..a5a5e406ee 100644 --- a/src/pages/Nominate/Active/Status/index.tsx +++ b/src/pages/Nominate/Active/Status/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { Separator } from '@polkadotcloud/core-ui'; +import { Separator } from '@polkadot-cloud/react'; import { CardWrapper } from 'library/Card/Wrappers'; import { ControllerStatus } from './ControllerStatus'; import { NominationStatus } from './NominationStatus'; diff --git a/src/pages/Nominate/Active/UnstakePrompts.tsx b/src/pages/Nominate/Active/UnstakePrompts.tsx index 564b5dff11..87d2bc605f 100644 --- a/src/pages/Nominate/Active/UnstakePrompts.tsx +++ b/src/pages/Nominate/Active/UnstakePrompts.tsx @@ -2,8 +2,8 @@ // SPDX-License-Identifier: GPL-3.0-only import { faBolt, faLockOpen } from '@fortawesome/free-solid-svg-icons'; -import { ButtonPrimary, ButtonRow, PageRow } from '@polkadotcloud/core-ui'; -import { isNotZero } from '@polkadotcloud/utils'; +import { ButtonPrimary, ButtonRow, PageRow } from '@polkadot-cloud/react'; +import { isNotZero } from '@polkadot-cloud/utils'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; diff --git a/src/pages/Nominate/Active/index.tsx b/src/pages/Nominate/Active/index.tsx index ca0e329bf3..4181effb3f 100644 --- a/src/pages/Nominate/Active/index.tsx +++ b/src/pages/Nominate/Active/index.tsx @@ -8,7 +8,7 @@ import { PageRow, PageTitle, RowSection, -} from '@polkadotcloud/core-ui'; +} from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useBonded } from 'contexts/Bonded'; import { useConnect } from 'contexts/Connect'; diff --git a/src/pages/Nominate/Setup/Summary/index.tsx b/src/pages/Nominate/Setup/Summary/index.tsx index 6dc3353d1d..fde9a870ed 100644 --- a/src/pages/Nominate/Setup/Summary/index.tsx +++ b/src/pages/Nominate/Setup/Summary/index.tsx @@ -3,7 +3,7 @@ import { faCheckCircle } from '@fortawesome/free-regular-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { clipAddress, unitToPlanck } from '@polkadotcloud/utils'; +import { clipAddress, unitToPlanck } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/pages/Nominate/Setup/index.tsx b/src/pages/Nominate/Setup/index.tsx index 4292178e67..8fa04d36f8 100644 --- a/src/pages/Nominate/Setup/index.tsx +++ b/src/pages/Nominate/Setup/index.tsx @@ -7,8 +7,8 @@ import { PageHeading, PageRow, PageTitle, -} from '@polkadotcloud/core-ui'; -import { extractUrlValue, removeVarFromUrlHash } from '@polkadotcloud/utils'; +} from '@polkadot-cloud/react'; +import { extractUrlValue, removeVarFromUrlHash } from '@polkadot-cloud/utils'; import { useTranslation } from 'react-i18next'; import { useNavigate } from 'react-router-dom'; import { Element } from 'react-scroll'; diff --git a/src/pages/Overview/ActiveAccounts/Item.tsx b/src/pages/Overview/ActiveAccounts/Item.tsx index a01ad53747..9cc16e4d63 100644 --- a/src/pages/Overview/ActiveAccounts/Item.tsx +++ b/src/pages/Overview/ActiveAccounts/Item.tsx @@ -4,7 +4,7 @@ import { faCopy } from '@fortawesome/free-regular-svg-icons'; import { faArrowLeft } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { clipAddress, remToUnit } from '@polkadotcloud/utils'; +import { clipAddress, remToUnit } from '@polkadot-cloud/utils'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; import { useNotifications } from 'contexts/Notifications'; diff --git a/src/pages/Overview/BalanceChart.tsx b/src/pages/Overview/BalanceChart.tsx index 8db60ed713..ef51e542a1 100644 --- a/src/pages/Overview/BalanceChart.tsx +++ b/src/pages/Overview/BalanceChart.tsx @@ -2,8 +2,8 @@ // SPDX-License-Identifier: GPL-3.0-only import { faCheck, faCheckDouble } from '@fortawesome/free-solid-svg-icons'; -import { ButtonTertiary } from '@polkadotcloud/core-ui'; -import { greaterThanZero, planckToUnit } from '@polkadotcloud/utils'; +import { ButtonTertiary } from '@polkadot-cloud/react'; +import { greaterThanZero, planckToUnit } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/pages/Overview/BalanceLinks.tsx b/src/pages/Overview/BalanceLinks.tsx index 18446454d6..7d39a377a5 100644 --- a/src/pages/Overview/BalanceLinks.tsx +++ b/src/pages/Overview/BalanceLinks.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only import { faExternalLinkAlt } from '@fortawesome/free-solid-svg-icons'; -import { ButtonPrimaryInvert, Separator } from '@polkadotcloud/core-ui'; +import { ButtonPrimaryInvert, Separator } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; diff --git a/src/pages/Overview/NetworkSats/Announcements.tsx b/src/pages/Overview/NetworkSats/Announcements.tsx index d0d5ea9317..fd6f21019b 100644 --- a/src/pages/Overview/NetworkSats/Announcements.tsx +++ b/src/pages/Overview/NetworkSats/Announcements.tsx @@ -8,7 +8,7 @@ import { planckToUnit, rmCommas, sortWithNull, -} from '@polkadotcloud/utils'; +} from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { motion } from 'framer-motion'; import { useTranslation } from 'react-i18next'; diff --git a/src/pages/Overview/StakeStatus/Tips/index.tsx b/src/pages/Overview/StakeStatus/Tips/index.tsx index c94baf8457..c3235724f0 100644 --- a/src/pages/Overview/StakeStatus/Tips/index.tsx +++ b/src/pages/Overview/StakeStatus/Tips/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { setStateWithRef } from '@polkadotcloud/utils'; +import { setStateWithRef } from '@polkadot-cloud/utils'; import throttle from 'lodash.throttle'; import { useEffect, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/pages/Overview/StakeStatus/index.tsx b/src/pages/Overview/StakeStatus/index.tsx index 459cedf3a6..5f263b5b96 100644 --- a/src/pages/Overview/StakeStatus/index.tsx +++ b/src/pages/Overview/StakeStatus/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { RowSection } from '@polkadotcloud/core-ui'; +import { RowSection } from '@polkadot-cloud/react'; import { usePlugins } from 'contexts/Plugins'; import { CardWrapper } from 'library/Card/Wrappers'; import { NominationStatus } from 'pages/Nominate/Active/Status/NominationStatus'; diff --git a/src/pages/Overview/Stats/SupplyStaked.tsx b/src/pages/Overview/Stats/SupplyStaked.tsx index 0ee78ce557..c307354e4e 100644 --- a/src/pages/Overview/Stats/SupplyStaked.tsx +++ b/src/pages/Overview/Stats/SupplyStaked.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { planckToUnit } from '@polkadotcloud/utils'; +import { planckToUnit } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/pages/Overview/index.tsx b/src/pages/Overview/index.tsx index 1c430d6c14..3d9451552a 100644 --- a/src/pages/Overview/index.tsx +++ b/src/pages/Overview/index.tsx @@ -6,8 +6,8 @@ import { PageRow, PageTitle, RowSection, -} from '@polkadotcloud/core-ui'; -import { planckToUnit } from '@polkadotcloud/utils'; +} from '@polkadot-cloud/react'; +import { planckToUnit } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { formatDistance, fromUnixTime, getUnixTime } from 'date-fns'; import { useTranslation } from 'react-i18next'; diff --git a/src/pages/Payouts/PayoutList/index.tsx b/src/pages/Payouts/PayoutList/index.tsx index 8c300da30b..1cbb000c6a 100644 --- a/src/pages/Payouts/PayoutList/index.tsx +++ b/src/pages/Payouts/PayoutList/index.tsx @@ -3,7 +3,7 @@ import { faBars, faGripVertical } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { clipAddress, isNotZero, planckToUnit } from '@polkadotcloud/utils'; +import { clipAddress, isNotZero, planckToUnit } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { formatDistance, fromUnixTime } from 'date-fns'; import { motion } from 'framer-motion'; diff --git a/src/pages/Payouts/Stats/LastEraPayout.tsx b/src/pages/Payouts/Stats/LastEraPayout.tsx index 212c3a8e2a..fec54069aa 100644 --- a/src/pages/Payouts/Stats/LastEraPayout.tsx +++ b/src/pages/Payouts/Stats/LastEraPayout.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { planckToUnit } from '@polkadotcloud/utils'; +import { planckToUnit } from '@polkadot-cloud/utils'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useStaking } from 'contexts/Staking'; diff --git a/src/pages/Payouts/index.tsx b/src/pages/Payouts/index.tsx index 05f2cab15c..60b8d24380 100644 --- a/src/pages/Payouts/index.tsx +++ b/src/pages/Payouts/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ButtonHelp, PageRow, PageTitle } from '@polkadotcloud/core-ui'; +import { ButtonHelp, PageRow, PageTitle } from '@polkadot-cloud/react'; import { useEffect, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { MaxPayoutDays } from 'consts'; diff --git a/src/pages/Pools/Create/Summary/index.tsx b/src/pages/Pools/Create/Summary/index.tsx index 5bbfe91314..7a3284bcc7 100644 --- a/src/pages/Pools/Create/Summary/index.tsx +++ b/src/pages/Pools/Create/Summary/index.tsx @@ -3,7 +3,7 @@ import { faCheckCircle } from '@fortawesome/free-regular-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { unitToPlanck } from '@polkadotcloud/utils'; +import { unitToPlanck } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/pages/Pools/Create/index.tsx b/src/pages/Pools/Create/index.tsx index 3d0f8bb755..b6d85e3c7a 100644 --- a/src/pages/Pools/Create/index.tsx +++ b/src/pages/Pools/Create/index.tsx @@ -7,7 +7,7 @@ import { PageHeading, PageRow, PageTitle, -} from '@polkadotcloud/core-ui'; +} from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { Element } from 'react-scroll'; import { useConnect } from 'contexts/Connect'; diff --git a/src/pages/Pools/Home/ClosurePrompts.tsx b/src/pages/Pools/Home/ClosurePrompts.tsx index b56a26a91d..254739364d 100644 --- a/src/pages/Pools/Home/ClosurePrompts.tsx +++ b/src/pages/Pools/Home/ClosurePrompts.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only import { faLockOpen } from '@fortawesome/free-solid-svg-icons'; -import { ButtonPrimary, ButtonRow, PageRow } from '@polkadotcloud/core-ui'; +import { ButtonPrimary, ButtonRow, PageRow } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; diff --git a/src/pages/Pools/Home/Favorites/index.tsx b/src/pages/Pools/Home/Favorites/index.tsx index 5f61883bb1..307c1d328a 100644 --- a/src/pages/Pools/Home/Favorites/index.tsx +++ b/src/pages/Pools/Home/Favorites/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { PageRow } from '@polkadotcloud/core-ui'; +import { PageRow } from '@polkadot-cloud/react'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/pages/Pools/Home/ManageBond.tsx b/src/pages/Pools/Home/ManageBond.tsx index 7031007a24..af7ec44039 100644 --- a/src/pages/Pools/Home/ManageBond.tsx +++ b/src/pages/Pools/Home/ManageBond.tsx @@ -2,8 +2,8 @@ // SPDX-License-Identifier: GPL-3.0-only import { faLockOpen } from '@fortawesome/free-solid-svg-icons'; -import { ButtonHelp, ButtonPrimary, ButtonRow } from '@polkadotcloud/core-ui'; -import { planckToUnit } from '@polkadotcloud/utils'; +import { ButtonHelp, ButtonPrimary, ButtonRow } from '@polkadot-cloud/react'; +import { planckToUnit } from '@polkadot-cloud/utils'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; diff --git a/src/pages/Pools/Home/ManagePool/index.tsx b/src/pages/Pools/Home/ManagePool/index.tsx index 2eaa6c810b..578f932873 100644 --- a/src/pages/Pools/Home/ManagePool/index.tsx +++ b/src/pages/Pools/Home/ManagePool/index.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only import { faChevronCircleRight } from '@fortawesome/free-solid-svg-icons'; -import { ButtonHelp, ButtonPrimary, PageRow } from '@polkadotcloud/core-ui'; +import { ButtonHelp, ButtonPrimary, PageRow } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; import { useHelp } from 'contexts/Help'; diff --git a/src/pages/Pools/Home/Members.tsx b/src/pages/Pools/Home/Members.tsx index 55e2f7f700..b55056fca6 100644 --- a/src/pages/Pools/Home/Members.tsx +++ b/src/pages/Pools/Home/Members.tsx @@ -3,7 +3,7 @@ import { faBars } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { PageRow } from '@polkadotcloud/core-ui'; +import { PageRow } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { usePlugins } from 'contexts/Plugins'; diff --git a/src/pages/Pools/Home/MembersList/Default.tsx b/src/pages/Pools/Home/MembersList/Default.tsx index 8d61b807ae..1281113e62 100644 --- a/src/pages/Pools/Home/MembersList/Default.tsx +++ b/src/pages/Pools/Home/MembersList/Default.tsx @@ -3,7 +3,7 @@ import { faBars, faGripVertical } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { isNotZero } from '@polkadotcloud/utils'; +import { isNotZero } from '@polkadot-cloud/utils'; import { motion } from 'framer-motion'; import { useEffect, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/src/pages/Pools/Home/PoolStats/Announcements.tsx b/src/pages/Pools/Home/PoolStats/Announcements.tsx index 0ec878599b..96f5d7d2c7 100644 --- a/src/pages/Pools/Home/PoolStats/Announcements.tsx +++ b/src/pages/Pools/Home/PoolStats/Announcements.tsx @@ -3,7 +3,7 @@ import { faBullhorn as faBack } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { planckToUnit, rmCommas } from '@polkadotcloud/utils'; +import { planckToUnit, rmCommas } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { motion } from 'framer-motion'; import { useTranslation } from 'react-i18next'; diff --git a/src/pages/Pools/Home/PoolStats/index.tsx b/src/pages/Pools/Home/PoolStats/index.tsx index 94996b3e3f..9d4337a87a 100644 --- a/src/pages/Pools/Home/PoolStats/index.tsx +++ b/src/pages/Pools/Home/PoolStats/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { planckToUnit, rmCommas } from '@polkadotcloud/utils'; +import { planckToUnit, rmCommas } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/pages/Pools/Home/Stats/MinCreateBond.tsx b/src/pages/Pools/Home/Stats/MinCreateBond.tsx index 731f7f2d45..2d824959a7 100644 --- a/src/pages/Pools/Home/Stats/MinCreateBond.tsx +++ b/src/pages/Pools/Home/Stats/MinCreateBond.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { planckToUnit } from '@polkadotcloud/utils'; +import { planckToUnit } from '@polkadot-cloud/utils'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { usePoolsConfig } from 'contexts/Pools/PoolsConfig'; diff --git a/src/pages/Pools/Home/Stats/MinJoinBond.tsx b/src/pages/Pools/Home/Stats/MinJoinBond.tsx index b5e9d80a52..bee4b976c8 100644 --- a/src/pages/Pools/Home/Stats/MinJoinBond.tsx +++ b/src/pages/Pools/Home/Stats/MinJoinBond.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { planckToUnit } from '@polkadotcloud/utils'; +import { planckToUnit } from '@polkadot-cloud/utils'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { usePoolsConfig } from 'contexts/Pools/PoolsConfig'; diff --git a/src/pages/Pools/Home/Status/MembershipStatus.tsx b/src/pages/Pools/Home/Status/MembershipStatus.tsx index 93f7fd02fc..fd37b5a4e8 100644 --- a/src/pages/Pools/Home/Status/MembershipStatus.tsx +++ b/src/pages/Pools/Home/Status/MembershipStatus.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only import { faCog } from '@fortawesome/free-solid-svg-icons'; -import { determinePoolDisplay } from '@polkadotcloud/utils'; +import { determinePoolDisplay } from '@polkadot-cloud/utils'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; diff --git a/src/pages/Pools/Home/Status/RewardsStatus.tsx b/src/pages/Pools/Home/Status/RewardsStatus.tsx index 480eb3c524..1dcaacdd22 100644 --- a/src/pages/Pools/Home/Status/RewardsStatus.tsx +++ b/src/pages/Pools/Home/Status/RewardsStatus.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only import { faPlus, faShare } from '@fortawesome/free-solid-svg-icons'; -import { planckToUnit } from '@polkadotcloud/utils'; +import { planckToUnit } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/pages/Pools/Home/Status/index.tsx b/src/pages/Pools/Home/Status/index.tsx index 2feace7d3e..0a2036aeeb 100644 --- a/src/pages/Pools/Home/Status/index.tsx +++ b/src/pages/Pools/Home/Status/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { Separator } from '@polkadotcloud/core-ui'; +import { Separator } from '@polkadot-cloud/react'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { CardWrapper } from 'library/Card/Wrappers'; import { MembershipStatus } from './MembershipStatus'; diff --git a/src/pages/Pools/Home/context.tsx b/src/pages/Pools/Home/context.tsx index 9d8c25daac..cb9c9f4c99 100644 --- a/src/pages/Pools/Home/context.tsx +++ b/src/pages/Pools/Home/context.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { extractUrlValue } from '@polkadotcloud/utils'; +import { extractUrlValue } from '@polkadot-cloud/utils'; import React, { useState } from 'react'; import type { PoolsTabsContextInterface } from '../types'; diff --git a/src/pages/Pools/Home/index.tsx b/src/pages/Pools/Home/index.tsx index 1c7691e0ac..f19e684fa7 100644 --- a/src/pages/Pools/Home/index.tsx +++ b/src/pages/Pools/Home/index.tsx @@ -1,10 +1,10 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { PageRow, PageTitle, RowSection } from '@polkadotcloud/core-ui'; +import { PageRow, PageTitle, RowSection } from '@polkadot-cloud/react'; import { useEffect, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; -import type { PageTitleTabProps } from '@polkadotcloud/core-ui/core/types'; +import type { PageTitleTabProps } from '@polkadot-cloud/react/core/types'; import { useConnect } from 'contexts/Connect'; import { useModal } from 'contexts/Modal'; import { usePlugins } from 'contexts/Plugins'; diff --git a/src/pages/Pools/PoolAccount/index.tsx b/src/pages/Pools/PoolAccount/index.tsx index 7860eee44b..e5e6355287 100644 --- a/src/pages/Pools/PoolAccount/index.tsx +++ b/src/pages/Pools/PoolAccount/index.tsx @@ -3,7 +3,7 @@ import { faCopy } from '@fortawesome/free-regular-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { clipAddress, remToUnit } from '@polkadotcloud/utils'; +import { clipAddress, remToUnit } from '@polkadot-cloud/utils'; import { motion } from 'framer-motion'; import { useTranslation } from 'react-i18next'; import { useIdentities } from 'contexts/Identities'; diff --git a/src/pages/Pools/Roles/RoleEditInput/index.tsx b/src/pages/Pools/Roles/RoleEditInput/index.tsx index b1f76964ef..9ac73dd5a5 100644 --- a/src/pages/Pools/Roles/RoleEditInput/index.tsx +++ b/src/pages/Pools/Roles/RoleEditInput/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { isValidAddress } from '@polkadotcloud/utils'; +import { isValidAddress } from '@polkadot-cloud/utils'; import React from 'react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; diff --git a/src/pages/Pools/Roles/index.tsx b/src/pages/Pools/Roles/index.tsx index 451fd1b1ef..42c84cd2b5 100644 --- a/src/pages/Pools/Roles/index.tsx +++ b/src/pages/Pools/Roles/index.tsx @@ -6,7 +6,7 @@ import { faEdit, faTimesCircle, } from '@fortawesome/free-solid-svg-icons'; -import { ButtonHelp, ButtonPrimary } from '@polkadotcloud/core-ui'; +import { ButtonHelp, ButtonPrimary } from '@polkadot-cloud/react'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; diff --git a/src/pages/Validators/AllValidators.tsx b/src/pages/Validators/AllValidators.tsx index d13a3bf663..1c0cc6b03f 100644 --- a/src/pages/Validators/AllValidators.tsx +++ b/src/pages/Validators/AllValidators.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { PageRow } from '@polkadotcloud/core-ui'; +import { PageRow } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useValidators } from 'contexts/Validators'; diff --git a/src/pages/Validators/Favorites.tsx b/src/pages/Validators/Favorites.tsx index a4ba1e1902..94300842b7 100644 --- a/src/pages/Validators/Favorites.tsx +++ b/src/pages/Validators/Favorites.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { PageRow } from '@polkadotcloud/core-ui'; +import { PageRow } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useValidators } from 'contexts/Validators'; diff --git a/src/pages/Validators/Stats/ActiveValidators.tsx b/src/pages/Validators/Stats/ActiveValidators.tsx index 2832f3b416..b718349ad4 100644 --- a/src/pages/Validators/Stats/ActiveValidators.tsx +++ b/src/pages/Validators/Stats/ActiveValidators.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { greaterThanZero } from '@polkadotcloud/utils'; +import { greaterThanZero } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useTranslation } from 'react-i18next'; import { useStaking } from 'contexts/Staking'; diff --git a/src/pages/Validators/Stats/TotalValidators.tsx b/src/pages/Validators/Stats/TotalValidators.tsx index 4fad6921e1..5481a09442 100644 --- a/src/pages/Validators/Stats/TotalValidators.tsx +++ b/src/pages/Validators/Stats/TotalValidators.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { greaterThanZero } from '@polkadotcloud/utils'; +import { greaterThanZero } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useTranslation } from 'react-i18next'; import { useStaking } from 'contexts/Staking'; diff --git a/src/pages/Validators/context.tsx b/src/pages/Validators/context.tsx index d28d6fed72..654ef46a90 100644 --- a/src/pages/Validators/context.tsx +++ b/src/pages/Validators/context.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { extractUrlValue } from '@polkadotcloud/utils'; +import { extractUrlValue } from '@polkadot-cloud/utils'; import React, { useState } from 'react'; export interface ValidatorsTabsContextInterface { diff --git a/src/pages/Validators/index.tsx b/src/pages/Validators/index.tsx index 88260ada99..0432f9b522 100644 --- a/src/pages/Validators/index.tsx +++ b/src/pages/Validators/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { PageTitle } from '@polkadotcloud/core-ui'; +import { PageTitle } from '@polkadot-cloud/react'; import { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { AllValidators } from './AllValidators'; diff --git a/src/workers/stakers.ts b/src/workers/stakers.ts index 10b81a2a98..6e1efd9f5e 100644 --- a/src/workers/stakers.ts +++ b/src/workers/stakers.ts @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { planckToUnit, rmCommas } from '@polkadotcloud/utils'; +import { planckToUnit, rmCommas } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import type { ActiveAccountStaker, diff --git a/yarn.lock b/yarn.lock index 752c28e0d8..c419519c10 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1502,6 +1502,26 @@ picocolors "^1.0.0" tslib "^2.6.0" +"@polkadot-cloud/community@^0.1.10": + version "0.1.10" + resolved "https://registry.npmjs.org/@polkadot-cloud/community/-/community-0.1.10.tgz#d2a99190c0a89a67275264084e6e750269990986" + integrity sha512-VT38rqOvORuYdPLigS8UNwvitoc0DFZWEazsvHxz9bTnPBL/7M3LujWXO14OSGw+FTvfz4RzPwovmW4u7RoT/Q== + +"@polkadot-cloud/core@^0.0.5": + version "0.0.5" + resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.0.5.tgz#7c30b7e02a68ee686bef67d7aa7126c9d13beb53" + integrity sha512-a0kV6G4mzZobHv9MV20EkkfsKELfHygFII8TjjTCotqy++7omYDNdNiXAV/UBg5pVKWQljL2W/Kq0eBtiSd/cg== + +"@polkadot-cloud/react@^0.1.2": + version "0.1.2" + resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.2.tgz#6ede7e72e13f7e021f7b42b1d2ea84738b22555f" + integrity sha512-3hGFOYlfOfBtrrguiBh/Hk+51Z7BTdEWvLY8WHswsPYlk/1qNoNIRtW7tr1gFs6cJm3BBOWqNUp0lurIQ3KxPQ== + +"@polkadot-cloud/utils@^0.0.1": + version "0.0.1" + resolved "https://registry.npmjs.org/@polkadot-cloud/utils/-/utils-0.0.1.tgz#24b0d569c4637e4d539ba3a2c669339144162133" + integrity sha512-YWSQ/sPRwVcO1LBJAVS7E7TI+dYpVY/Oe/sDwLThMVaVXzaIx18tBBhoEXXU85a8N0bXJHYVOMIWoCnAem4ZJw== + "@polkadot/api-augment@10.9.1": version "10.9.1" resolved "https://registry.yarnpkg.com/@polkadot/api-augment/-/api-augment-10.9.1.tgz#9fc81b81903229bb23b0b16783e97ec52a5d4f1b" @@ -1827,31 +1847,11 @@ tslib "^2.5.3" ws "^8.13.0" -"@polkadotcloud/community@0.1.10": - version "0.1.10" - resolved "https://registry.yarnpkg.com/@polkadotcloud/community/-/community-0.1.10.tgz#8755d448098bfab6ff35e9fc7bad3d5c7a81e641" - integrity sha512-NKcm8+ZDnEk8TB27x3JSF7+vSC2wKDMmEFI6SyKIcHTS0WvY5uN8x6U5uwHQh/ESBNa824t+GYPLo7ZGTx3HWA== - -"@polkadotcloud/core-ui@^0.3.88": - version "0.3.88" - resolved "https://registry.npmjs.org/@polkadotcloud/core-ui/-/core-ui-0.3.88.tgz#d38eb1bdf2a6266500217b1a90633c6db9b49065" - integrity sha512-u29454xvss0GR0QRgeamqznBHpb0ZmhZVdchAF7T+SfVtU+SJ4NijFd/WD5gjxS13fIUQ6uqATFAkIncC1qz5A== - "@polkadotcloud/react-odometer@^0.1.19": version "0.1.19" resolved "https://registry.yarnpkg.com/@polkadotcloud/react-odometer/-/react-odometer-0.1.19.tgz#3bd476c8d00fa011a14f7bc8b9b5227a26c9299a" integrity sha512-s7JJIIP4ZR37J+r478TrE5yCuO2niT1ATscTm/0wVLq/nFvCrJ63JZbCLl13I17ZotId41kRUb3vGxIYn4giMQ== -"@polkadotcloud/themes@^0.1.6": - version "0.1.6" - resolved "https://registry.yarnpkg.com/@polkadotcloud/themes/-/themes-0.1.6.tgz#53d16a163a412111a43b82a2367f3a065a19eb7c" - integrity sha512-mC7tVtGt2iyXih8JsgKG9gr0XqvlkfgmdaoDKvRCxgTF/sbSgMJT32Rjk/H1jU2h6PlPYOhM/uGk6doeSSYEmQ== - -"@polkadotcloud/utils@^0.2.23": - version "0.2.23" - resolved "https://registry.yarnpkg.com/@polkadotcloud/utils/-/utils-0.2.23.tgz#8d4bfd81213b18a2ac66986da9169140a24a256e" - integrity sha512-J+YJwfNIqdU6mO9rN1ZFUvm1mBp7OIdybotePUZ4kRL/vxMKTPk3usNVzVv45PctRuNtve70MQdEmsbEiigafw== - "@remix-run/router@1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.8.0.tgz#e848d2f669f601544df15ce2a313955e4bf0bafc" From 815562ccdb2a71145b802b4fb08fb1de9e77d1a3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 17 Aug 2023 21:52:41 +0000 Subject: [PATCH 239/435] Bump sass from 1.65.1 to 1.66.0 Bumps [sass](https://github.com/sass/dart-sass) from 1.65.1 to 1.66.0. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.65.1...1.66.0) --- updated-dependencies: - dependency-name: sass dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index bd2c24f0ae..02d881f780 100644 --- a/package.json +++ b/package.json @@ -85,7 +85,7 @@ "gh-pages": "^6.0.0", "prettier": "^3.0.2", "prettier-plugin-organize-imports": "^3.2.3", - "sass": "^1.65.1", + "sass": "^1.66.0", "typescript": "^5.1.6", "vite": "^4.4.9", "vite-bundle-visualizer": "^0.10.0", diff --git a/yarn.lock b/yarn.lock index 39f54c3a6d..857a9e9aa1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5334,10 +5334,10 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.1.3" is-regex "^1.1.4" -sass@^1.65.1: - version "1.65.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.65.1.tgz#8f283b0c26335a88246a448d22e1342ba2ea1432" - integrity sha512-9DINwtHmA41SEd36eVPQ9BJKpn7eKDQmUHmpI0y5Zv2Rcorrh0zS+cFrt050hdNbmmCNKTW3hV5mWfuegNRsEA== +sass@^1.66.0: + version "1.66.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.66.0.tgz#74728eed49b0e490cd729c233e7f1c6ce356e638" + integrity sha512-C3U+RgpAAlTXULZkWwzfysgbbBBo8IZudNAOJAVBLslFbIaZv4MBPkTqhuvpK4lqgdoFiWhnOGMoV4L1FyOBag== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" From 1d99770e4e52d0edc577dd05df497356e18c56da Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 17 Aug 2023 21:52:57 +0000 Subject: [PATCH 240/435] Bump vitest from 0.34.1 to 0.34.2 Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 0.34.1 to 0.34.2. - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Commits](https://github.com/vitest-dev/vitest/commits/v0.34.2/packages/vitest) --- updated-dependencies: - dependency-name: vitest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 74 ++++++++++++++++++++++++++-------------------------- 2 files changed, 38 insertions(+), 38 deletions(-) diff --git a/package.json b/package.json index 02d881f780..c5f8212c9a 100644 --- a/package.json +++ b/package.json @@ -93,6 +93,6 @@ "vite-plugin-eslint": "^1.8.1", "vite-plugin-svgr": "^3.2.0", "vite-tsconfig-paths": "^4.2.0", - "vitest": "^0.34.1" + "vitest": "^0.34.2" } } diff --git a/yarn.lock b/yarn.lock index 857a9e9aa1..d001a9909c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2272,44 +2272,44 @@ dependencies: "@swc/core" "^1.3.61" -"@vitest/expect@0.34.1": - version "0.34.1" - resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-0.34.1.tgz#2ba6cb96695f4b4388c6d955423a81afc79b8da0" - integrity sha512-q2CD8+XIsQ+tHwypnoCk8Mnv5e6afLFvinVGCq3/BOT4kQdVQmY6rRfyKkwcg635lbliLPqbunXZr+L1ssUWiQ== +"@vitest/expect@0.34.2": + version "0.34.2" + resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-0.34.2.tgz#2bd09c20b828f8f9da625c203d88003a2b69e314" + integrity sha512-EZm2dMNlLyIfDMha17QHSQcg2KjeAZaXd65fpPzXY5bvnfx10Lcaz3N55uEe8PhF+w4pw+hmrlHLLlRn9vkBJg== dependencies: - "@vitest/spy" "0.34.1" - "@vitest/utils" "0.34.1" + "@vitest/spy" "0.34.2" + "@vitest/utils" "0.34.2" chai "^4.3.7" -"@vitest/runner@0.34.1": - version "0.34.1" - resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-0.34.1.tgz#23c21ba1db8bff610988c72744db590d0fb6c4ba" - integrity sha512-YfQMpYzDsYB7yqgmlxZ06NI4LurHWfrH7Wy3Pvf/z/vwUSgq1zLAb1lWcItCzQG+NVox+VvzlKQrYEXb47645g== +"@vitest/runner@0.34.2": + version "0.34.2" + resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-0.34.2.tgz#3408682cd68475e733a3f151d27792be75d2f07d" + integrity sha512-8ydGPACVX5tK3Dl0SUwxfdg02h+togDNeQX3iXVFYgzF5odxvaou7HnquALFZkyVuYskoaHUOqOyOLpOEj5XTA== dependencies: - "@vitest/utils" "0.34.1" + "@vitest/utils" "0.34.2" p-limit "^4.0.0" pathe "^1.1.1" -"@vitest/snapshot@0.34.1": - version "0.34.1" - resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-0.34.1.tgz#814c65f8e714eaf255f47838541004b2a2ba28e6" - integrity sha512-0O9LfLU0114OqdF8lENlrLsnn024Tb1CsS9UwG0YMWY2oGTQfPtkW+B/7ieyv0X9R2Oijhi3caB1xgGgEgclSQ== +"@vitest/snapshot@0.34.2": + version "0.34.2" + resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-0.34.2.tgz#fce1b89aa1e836e3fd0229c03ef4ef2f69cb1409" + integrity sha512-qhQ+xy3u4mwwLxltS4Pd4SR+XHv4EajiTPNY3jkIBLUApE6/ce72neJPSUQZ7bL3EBuKI+NhvzhGj3n5baRQUQ== dependencies: magic-string "^0.30.1" pathe "^1.1.1" pretty-format "^29.5.0" -"@vitest/spy@0.34.1": - version "0.34.1" - resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-0.34.1.tgz#2f77234a3d554c5dea664943f2caaab92d304f3c" - integrity sha512-UT4WcI3EAPUNO8n6y9QoEqynGGEPmmRxC+cLzneFFXpmacivjHZsNbiKD88KUScv5DCHVDgdBsLD7O7s1enFcQ== +"@vitest/spy@0.34.2": + version "0.34.2" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-0.34.2.tgz#5c483d71e4c2d42f90bef29cdf6e5f5559c52827" + integrity sha512-yd4L9OhfH6l0Av7iK3sPb3MykhtcRN5c5K5vm1nTbuN7gYn+yvUVVsyvzpHrjqS7EWqn9WsPJb7+0c3iuY60tA== dependencies: tinyspy "^2.1.1" -"@vitest/utils@0.34.1": - version "0.34.1" - resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-0.34.1.tgz#e5545c6618775fb9a2dae2a80d94fc2f35222233" - integrity sha512-/ql9dsFi4iuEbiNcjNHQWXBum7aL8pyhxvfnD9gNtbjR9fUKAjxhj4AA3yfLXg6gJpMGGecvtF8Au2G9y3q47Q== +"@vitest/utils@0.34.2": + version "0.34.2" + resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-0.34.2.tgz#5d291a1b0f5d01be99fd1801d212b837a610c53b" + integrity sha512-Lzw+kAsTPubhoQDp1uVAOP6DhNia1GMDsI9jgB0yMn+/nDaPieYQ88lKqz/gGjSHL4zwOItvpehec9OY+rS73w== dependencies: diff-sequences "^29.4.3" loupe "^2.3.6" @@ -5852,10 +5852,10 @@ vite-bundle-visualizer@^0.10.0: cac "^6.7.14" rollup-plugin-visualizer "^5.9.2" -vite-node@0.34.1: - version "0.34.1" - resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.34.1.tgz#144900ca4bd54cc419c501d671350bcbc07eb1ee" - integrity sha512-odAZAL9xFMuAg8aWd7nSPT+hU8u2r9gU3LRm9QKjxBEF2rRdWpMuqkrkjvyVQEdNFiBctqr2Gg4uJYizm5Le6w== +vite-node@0.34.2: + version "0.34.2" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.34.2.tgz#1daa025f8cee8a141c9b4d051e979cf61adaba2c" + integrity sha512-JtW249Zm3FB+F7pQfH56uWSdlltCo1IOkZW5oHBzeQo0iX4jtC7o1t9aILMGd9kVekXBP2lfJBEQt9rBh07ebA== dependencies: cac "^6.7.14" debug "^4.3.4" @@ -5925,19 +5925,19 @@ vite-tsconfig-paths@^4.2.0: optionalDependencies: fsevents "~2.3.2" -vitest@^0.34.1: - version "0.34.1" - resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.34.1.tgz#3ad7f845e7a9fb0d72ab703cae832a54b8469e1e" - integrity sha512-G1PzuBEq9A75XSU88yO5G4vPT20UovbC/2osB2KEuV/FisSIIsw7m5y2xMdB7RsAGHAfg2lPmp2qKr3KWliVlQ== +vitest@^0.34.2: + version "0.34.2" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.34.2.tgz#c90d563df18383f1749b8a4544adda1871bbc859" + integrity sha512-WgaIvBbjsSYMq/oiMlXUI7KflELmzM43BEvkdC/8b5CAod4ryAiY2z8uR6Crbi5Pjnu5oOmhKa9sy7uk6paBxQ== dependencies: "@types/chai" "^4.3.5" "@types/chai-subset" "^1.3.3" "@types/node" "*" - "@vitest/expect" "0.34.1" - "@vitest/runner" "0.34.1" - "@vitest/snapshot" "0.34.1" - "@vitest/spy" "0.34.1" - "@vitest/utils" "0.34.1" + "@vitest/expect" "0.34.2" + "@vitest/runner" "0.34.2" + "@vitest/snapshot" "0.34.2" + "@vitest/spy" "0.34.2" + "@vitest/utils" "0.34.2" acorn "^8.9.0" acorn-walk "^8.2.0" cac "^6.7.14" @@ -5952,7 +5952,7 @@ vitest@^0.34.1: tinybench "^2.5.0" tinypool "^0.7.0" vite "^3.0.0 || ^4.0.0" - vite-node "0.34.1" + vite-node "0.34.2" why-is-node-running "^2.2.2" void-elements@3.1.0: From 62fbd43717e1f9f0adaee259dfedd9c8b08c23e0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 18 Aug 2023 21:10:41 +0000 Subject: [PATCH 241/435] Bump eslint-plugin-import from 2.28.0 to 2.28.1 Bumps [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) from 2.28.0 to 2.28.1. - [Release notes](https://github.com/import-js/eslint-plugin-import/releases) - [Changelog](https://github.com/import-js/eslint-plugin-import/blob/main/CHANGELOG.md) - [Commits](https://github.com/import-js/eslint-plugin-import/compare/v2.28.0...v2.28.1) --- updated-dependencies: - dependency-name: eslint-plugin-import dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 21 ++++++++++----------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index c5f8212c9a..931ac5798f 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "eslint-config-airbnb-typescript": "^17.1.0", "eslint-config-prettier": "^9.0.0", "eslint-import-resolver-typescript": "^3.6.0", - "eslint-plugin-import": "^2.28.0", + "eslint-plugin-import": "^2.28.1", "eslint-plugin-jsx-a11y": "^6.7.1", "eslint-plugin-prefer-arrow": "^1.2.3", "eslint-plugin-prefer-arrow-functions": "^3.1.4", diff --git a/yarn.lock b/yarn.lock index d001a9909c..84f489cb18 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3332,10 +3332,10 @@ eslint-module-utils@^2.7.4, eslint-module-utils@^2.8.0: dependencies: debug "^3.2.7" -eslint-plugin-import@^2.28.0: - version "2.28.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.28.0.tgz#8d66d6925117b06c4018d491ae84469eb3cb1005" - integrity sha512-B8s/n+ZluN7sxj9eUf7/pRFERX0r5bnFA2dCaLHy2ZeaQEAz0k+ZZkFWRFHJAqxfxQDx6KLv9LeIki7cFdwW+Q== +eslint-plugin-import@^2.28.1: + version "2.28.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz#63b8b5b3c409bfc75ebaf8fb206b07ab435482c4" + integrity sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A== dependencies: array-includes "^3.1.6" array.prototype.findlastindex "^1.2.2" @@ -3346,13 +3346,12 @@ eslint-plugin-import@^2.28.0: eslint-import-resolver-node "^0.3.7" eslint-module-utils "^2.8.0" has "^1.0.3" - is-core-module "^2.12.1" + is-core-module "^2.13.0" is-glob "^4.0.3" minimatch "^3.1.2" object.fromentries "^2.0.6" object.groupby "^1.0.0" object.values "^1.1.6" - resolve "^1.22.3" semver "^6.3.1" tsconfig-paths "^3.14.2" @@ -4097,10 +4096,10 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.11.0, is-core-module@^2.12.0, is-core-module@^2.12.1, is-core-module@^2.9.0: - version "2.12.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" - integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== +is-core-module@^2.11.0, is-core-module@^2.12.0, is-core-module@^2.13.0, is-core-module@^2.9.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" + integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== dependencies: has "^1.0.3" @@ -5213,7 +5212,7 @@ resolve-pkg-maps@^1.0.0: resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== -resolve@^1.14.2, resolve@^1.22.1, resolve@^1.22.3: +resolve@^1.14.2, resolve@^1.22.1: version "1.22.3" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.3.tgz#4b4055349ffb962600972da1fdc33c46a4eb3283" integrity sha512-P8ur/gp/AmbEzjr729bZnLjXK5Z+4P0zhIJgBgzqRih7hL7BOukHGtSTA3ACMY467GRFz3duQsi0bDZdR7DKdw== From 26c69e42d3e556c3a7dc99d0519e6783a64fbc70 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sun, 20 Aug 2023 10:53:13 +0700 Subject: [PATCH 242/435] store validator identities in state --- src/contexts/Validators/defaults.ts | 1 + src/contexts/Validators/index.tsx | 26 +++++++++++++++++++++++++- src/contexts/Validators/types.ts | 9 ++++++++- 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/src/contexts/Validators/defaults.ts b/src/contexts/Validators/defaults.ts index 7ae5acdf28..91b9af2818 100644 --- a/src/contexts/Validators/defaults.ts +++ b/src/contexts/Validators/defaults.ts @@ -17,6 +17,7 @@ export const defaultValidatorsContext: ValidatorsContextInterface = { addFavorite: (a) => {}, removeFavorite: (a) => {}, validators: [], + validatorIdentities: {}, avgCommission: 0, meta: {}, sessionValidators: [], diff --git a/src/contexts/Validators/index.tsx b/src/contexts/Validators/index.tsx index a2a5605534..8820234f01 100644 --- a/src/contexts/Validators/index.tsx +++ b/src/contexts/Validators/index.tsx @@ -12,6 +12,7 @@ import BigNumber from 'bignumber.js'; import React, { useEffect, useRef, useState } from 'react'; import { ValidatorCommunity } from '@polkadot-cloud/community/validators'; import type { + Identity, Validator, ValidatorAddresses, ValidatorsContextInterface, @@ -44,12 +45,17 @@ export const ValidatorsProvider = ({ const { earliestStoredSession } = metrics; const { maxNominatorRewardedPerValidator } = consts; - // Stores the total validator entries. + // Stores all validator entries. const [validators, setValidators] = useState<Validator[]>([]); // Track whether the validator list has been fetched. const [validatorsFetched, setValidatorsFetched] = useState<Sync>('unsynced'); + // Store validator identity data. + const [validatorIdentities, setValidatorIdentities] = useState< + Record<string, Identity> + >({}); + // Stores the currently active validator set. const [sessionValidators, setSessionValidators] = useState<string[]>([]); const sessionUnsub = useRef<Fn>(); @@ -97,6 +103,7 @@ export const ValidatorsProvider = ({ removeValidatorMetaBatch('validators_browse'); setAvgCommission(0); setValidators([]); + setValidatorIdentities({}); }, [network]); // fetch validators and session validators when activeEra ready @@ -275,6 +282,22 @@ export const ValidatorsProvider = ({ setAvgCommission(avg); // Validators are shuffled before committed to state. setValidators(shuffle(exposures)); + + // Set validator identity data. + const addresses = exposures.map(({ address }) => address); + + const identities: AnyApi[] = ( + await api.query.identity.identityOf.multi( + exposures.map(({ address }) => address) + ) + ).map((identity) => identity.toHuman()); + + const identitiesKeyed = Object.fromEntries( + Object.entries( + Object.fromEntries(identities.map((k, i) => [addresses[i], k])) + ).filter(([, v]) => v != null) + ); + setValidatorIdentities(identitiesKeyed); }; // Subscribe to active session validators. @@ -618,6 +641,7 @@ export const ValidatorsProvider = ({ addFavorite, removeFavorite, validators, + validatorIdentities, avgCommission, meta: validatorMetaBatchesRef.current, sessionValidators, diff --git a/src/contexts/Validators/types.ts b/src/contexts/Validators/types.ts index d1ca5e575b..cf1c92299b 100644 --- a/src/contexts/Validators/types.ts +++ b/src/contexts/Validators/types.ts @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import type { AnyMetaBatch } from 'types'; +import type { AnyJson, AnyMetaBatch } from 'types'; export interface ValidatorsContextInterface { fetchValidatorMetaBatch: (k: string, v: [], r?: boolean) => void; @@ -9,6 +9,7 @@ export interface ValidatorsContextInterface { addFavorite: (a: string) => void; removeFavorite: (a: string) => void; validators: Validator[]; + validatorIdentities: Record<string, Identity>; avgCommission: number; meta: AnyMetaBatch; sessionValidators: string[]; @@ -20,6 +21,12 @@ export interface ValidatorsContextInterface { validatorCommunity: any[]; } +export interface Identity { + deposit: string; + info: AnyJson; + judgements: AnyJson[]; +} + export type ValidatorAddresses = { address: string; }[]; From 76b06ae7b401e1c1b6826cbd14c14cbcd39feb86 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sun, 20 Aug 2023 11:09:00 +0700 Subject: [PATCH 243/435] remove identities from meta batch --- src/contexts/Validators/index.tsx | 39 +++---------------- src/library/GenerateNominations/index.tsx | 10 +++-- .../Hooks/useValidatorFilters/index.tsx | 12 ++++-- src/library/ListItem/Labels/Identity.tsx | 15 ++++--- 4 files changed, 29 insertions(+), 47 deletions(-) diff --git a/src/contexts/Validators/index.tsx b/src/contexts/Validators/index.tsx index 8820234f01..9b0a5cfc77 100644 --- a/src/contexts/Validators/index.tsx +++ b/src/contexts/Validators/index.tsx @@ -414,34 +414,6 @@ export const ValidatorsProvider = ({ validatorMetaBatchesRef ); - const subscribeToIdentities = async (addr: string[]) => { - const unsub = await api.query.identity.identityOf.multi<AnyApi>( - addr, - (result) => { - const identities = []; - for (let i = 0; i < result.length; i++) { - identities.push(result[i].toHuman()); - } - - // check if batch still exists before updating - if (validatorMetaBatchesRef.current[key]) { - setStateWithRef( - { - ...validatorMetaBatchesRef.current, - [key]: { - ...validatorMetaBatchesRef.current[key], - identities, - }, - }, - setValidatorMetaBatch, - validatorMetaBatchesRef - ); - } - } - ); - return unsub; - }; - const subscribeToSuperIdentities = async (addr: string[]) => { const unsub = await api.query.identity.superOf.multi<AnyApi>( addr, @@ -494,12 +466,11 @@ export const ValidatorsProvider = ({ return unsub; }; - await Promise.all([ - subscribeToIdentities(addresses), - subscribeToSuperIdentities(addresses), - ]).then((unsubs: Fn[]) => { - addMetaBatchUnsubs(key, unsubs); - }); + await Promise.all([subscribeToSuperIdentities(addresses)]).then( + (unsubs: Fn[]) => { + addMetaBatchUnsubs(key, unsubs); + } + ); // subscribe to validator nominators const args: AnyApi = []; diff --git a/src/library/GenerateNominations/index.tsx b/src/library/GenerateNominations/index.tsx index 66fb11b4bb..6a47723423 100644 --- a/src/library/GenerateNominations/index.tsx +++ b/src/library/GenerateNominations/index.tsx @@ -37,9 +37,10 @@ export const GenerateNominations = ({ const { t } = useTranslation('library'); const { openModalWith } = useModal(); const { isReady, consts } = useApi(); - const { activeAccount, isReadOnlyAccount } = useConnect(); const { isFastUnstaking } = useUnstaking(); - const { removeValidatorMetaBatch, validators, meta } = useValidators(); + const { activeAccount, isReadOnlyAccount } = useConnect(); + const { removeValidatorMetaBatch, validators, meta, validatorIdentities } = + useValidators(); const { fetch: fetchFromMethod, add: addNomination, @@ -89,7 +90,10 @@ export const GenerateNominations = ({ if (batch === undefined) { return; } - if (batch.stake === undefined) { + if ( + batch.stake === undefined || + !Object.values(validatorIdentities).length + ) { return; } diff --git a/src/library/Hooks/useValidatorFilters/index.tsx b/src/library/Hooks/useValidatorFilters/index.tsx index 8e4cd5c7bf..b22cbe9e48 100644 --- a/src/library/Hooks/useValidatorFilters/index.tsx +++ b/src/library/Hooks/useValidatorFilters/index.tsx @@ -10,7 +10,12 @@ import type { AnyFunction, AnyJson } from 'types'; export const useValidatorFilters = () => { const { t } = useTranslation('library'); const { consts } = useApi(); - const { meta, sessionValidators, sessionParaValidators } = useValidators(); + const { + meta, + sessionValidators, + sessionParaValidators, + validatorIdentities, + } = useValidators(); const { maxNominatorRewardedPerValidator } = consts; /* @@ -35,15 +40,14 @@ export const useValidatorFilters = () => { continue; } - const identities = meta[batchKey]?.identities ?? []; const supers = meta[batchKey]?.supers ?? []; // push validator if sync has not completed - if (!identities.length || !supers.length) { + if (!Object.values(validatorIdentities).length || !supers.length) { filteredList.push(validator); } - const identityExists = identities[addressBatchIndex] ?? null; + const identityExists = validatorIdentities[validator.address] ?? null; const superExists = supers[addressBatchIndex] ?? null; // validator included if identity or super identity has been set diff --git a/src/library/ListItem/Labels/Identity.tsx b/src/library/ListItem/Labels/Identity.tsx index 61c39d513b..dde2958e46 100644 --- a/src/library/ListItem/Labels/Identity.tsx +++ b/src/library/ListItem/Labels/Identity.tsx @@ -10,17 +10,18 @@ import { getIdentityDisplay } from '../../ValidatorList/Validator/Utils'; import type { IdentityProps } from '../types'; export const Identity = ({ address, batchKey, batchIndex }: IdentityProps) => { - const { meta } = useValidators(); + const { meta, validatorIdentities } = useValidators(); - const identities = meta[batchKey]?.identities ?? []; const supers = meta[batchKey]?.supers ?? []; const stake = meta[batchKey]?.stake ?? []; const [display, setDisplay] = useState( - getIdentityDisplay(identities[batchIndex], supers[batchIndex]) + getIdentityDisplay(validatorIdentities[address], supers[batchIndex]) ); // aggregate synced status - const identitiesSynced = identities.length > 0 ?? false; + const identitiesSynced = + Object.values(validatorIdentities).length > 0 ?? false; + const supersSynced = supers.length > 0 ?? false; const synced = { @@ -29,8 +30,10 @@ export const Identity = ({ address, batchKey, batchIndex }: IdentityProps) => { }; useEffect(() => { - setDisplay(getIdentityDisplay(identities[batchIndex], supers[batchIndex])); - }, [meta, address]); + setDisplay( + getIdentityDisplay(validatorIdentities[address], supers[batchIndex]) + ); + }, [meta, validatorIdentities, address]); return ( <IdentityWrapper From 3eae5f84fd60a10a32bb27b6adb1323402a8089d Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sun, 20 Aug 2023 12:21:59 +0700 Subject: [PATCH 244/435] identities function --- src/contexts/Validators/index.tsx | 36 ++++++++++++++++++------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/src/contexts/Validators/index.tsx b/src/contexts/Validators/index.tsx index 9b0a5cfc77..b82ca8344c 100644 --- a/src/contexts/Validators/index.tsx +++ b/src/contexts/Validators/index.tsx @@ -283,21 +283,8 @@ export const ValidatorsProvider = ({ // Validators are shuffled before committed to state. setValidators(shuffle(exposures)); - // Set validator identity data. - const addresses = exposures.map(({ address }) => address); - - const identities: AnyApi[] = ( - await api.query.identity.identityOf.multi( - exposures.map(({ address }) => address) - ) - ).map((identity) => identity.toHuman()); - - const identitiesKeyed = Object.fromEntries( - Object.entries( - Object.fromEntries(identities.map((k, i) => [addresses[i], k])) - ).filter(([, v]) => v != null) - ); - setValidatorIdentities(identitiesKeyed); + const identities = await fetchValidatorIdentities(exposures); + setValidatorIdentities(identities); }; // Subscribe to active session validators. @@ -343,6 +330,25 @@ export const ValidatorsProvider = ({ return formatted; }; + // Fetches validator identities. + const fetchValidatorIdentities = async (exposures: Validator[]) => { + if (!api) return {}; + + const addresses = exposures.map(({ address }) => address); + + const identities: AnyApi[] = ( + await api.query.identity.identityOf.multi( + exposures.map(({ address }) => address) + ) + ).map((identity) => identity.toHuman()); + + return Object.fromEntries( + Object.entries( + Object.fromEntries(identities.map((k, i) => [addresses[i], k])) + ).filter(([, v]) => v != null) + ); + }; + /* // TODO: refactor Fetches a new batch of subscribed validator metadata. Stores the returning From cfa9206b805d82656f88b92415faba9ede0ade25 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sun, 20 Aug 2023 12:51:51 +0700 Subject: [PATCH 245/435] store validatorSupers w. refactored fetch function --- src/contexts/Validators/defaults.ts | 1 + src/contexts/Validators/index.tsx | 65 +++++++++++++++++++++++++---- src/contexts/Validators/types.ts | 1 + 3 files changed, 59 insertions(+), 8 deletions(-) diff --git a/src/contexts/Validators/defaults.ts b/src/contexts/Validators/defaults.ts index 91b9af2818..ec6314dfb6 100644 --- a/src/contexts/Validators/defaults.ts +++ b/src/contexts/Validators/defaults.ts @@ -18,6 +18,7 @@ export const defaultValidatorsContext: ValidatorsContextInterface = { removeFavorite: (a) => {}, validators: [], validatorIdentities: {}, + validatorSupers: {}, avgCommission: 0, meta: {}, sessionValidators: [], diff --git a/src/contexts/Validators/index.tsx b/src/contexts/Validators/index.tsx index b82ca8344c..a83e1f99cb 100644 --- a/src/contexts/Validators/index.tsx +++ b/src/contexts/Validators/index.tsx @@ -56,6 +56,11 @@ export const ValidatorsProvider = ({ Record<string, Identity> >({}); + // Store validator super identity data. + const [validatorSupers, setValidatorSupers] = useState<Record<string, any>>( + {} + ); + // Stores the currently active validator set. const [sessionValidators, setSessionValidators] = useState<string[]>([]); const sessionUnsub = useRef<Fn>(); @@ -104,6 +109,7 @@ export const ValidatorsProvider = ({ setAvgCommission(0); setValidators([]); setValidatorIdentities({}); + setValidatorSupers({}); }, [network]); // fetch validators and session validators when activeEra ready @@ -283,8 +289,14 @@ export const ValidatorsProvider = ({ // Validators are shuffled before committed to state. setValidators(shuffle(exposures)); - const identities = await fetchValidatorIdentities(exposures); + const addresses = exposures.map(({ address }) => address); + const [identities, supers] = await Promise.all([ + fetchValidatorIdentities(addresses), + fetchValidatorSupers(addresses), + ]); + setValidatorIdentities(identities); + setValidatorSupers(supers); }; // Subscribe to active session validators. @@ -331,22 +343,58 @@ export const ValidatorsProvider = ({ }; // Fetches validator identities. - const fetchValidatorIdentities = async (exposures: Validator[]) => { + const fetchValidatorIdentities = async (addresses: string[]) => { if (!api) return {}; - const addresses = exposures.map(({ address }) => address); - const identities: AnyApi[] = ( - await api.query.identity.identityOf.multi( - exposures.map(({ address }) => address) - ) + await api.query.identity.identityOf.multi(addresses) ).map((identity) => identity.toHuman()); return Object.fromEntries( Object.entries( Object.fromEntries(identities.map((k, i) => [addresses[i], k])) - ).filter(([, v]) => v != null) + ).filter(([, v]) => v !== null) + ); + }; + + // Fetch validator super accounts and their identities. + const fetchValidatorSupers = async (addresses: string[]) => { + if (!api) return {}; + + const supersRaw: AnyApi[] = ( + await api.query.identity.superOf.multi(addresses) + ).map((superOf) => superOf.toHuman()); + + const supers = Object.fromEntries( + Object.entries( + Object.fromEntries( + supersRaw.map((k, i) => [ + addresses[i], + { + superOf: k, + }, + ]) + ) + ).filter(([, { superOf }]) => superOf !== null) ); + + const superIdentities = ( + await api.query.identity.identityOf.multi( + Object.values(supers).map(({ superOf }) => superOf[0]) + ) + ).map((superIdentity) => superIdentity.toHuman()); + + const supersWithIdentity = Object.fromEntries( + Object.entries(supers).map(([k, v]: AnyApi, i) => [ + k, + { + ...v, + identity: superIdentities[i], + }, + ]) + ); + + return supersWithIdentity; }; /* @@ -619,6 +667,7 @@ export const ValidatorsProvider = ({ removeFavorite, validators, validatorIdentities, + validatorSupers, avgCommission, meta: validatorMetaBatchesRef.current, sessionValidators, diff --git a/src/contexts/Validators/types.ts b/src/contexts/Validators/types.ts index cf1c92299b..de75969670 100644 --- a/src/contexts/Validators/types.ts +++ b/src/contexts/Validators/types.ts @@ -10,6 +10,7 @@ export interface ValidatorsContextInterface { removeFavorite: (a: string) => void; validators: Validator[]; validatorIdentities: Record<string, Identity>; + validatorSupers: Record<string, AnyJson>; avgCommission: number; meta: AnyMetaBatch; sessionValidators: string[]; From 087e8745518b9edd47967a5927c5b80647ff4790 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sun, 20 Aug 2023 17:06:23 +0700 Subject: [PATCH 246/435] remove supers from batch, add validatorSupers --- src/contexts/Validators/index.tsx | 58 ------------------- src/library/GenerateNominations/index.tsx | 12 +++- src/library/ListItem/Labels/Identity.tsx | 14 ++--- src/library/ValidatorList/Validator/Utils.tsx | 3 +- src/pages/Payouts/PayoutList/index.tsx | 7 +-- src/pages/Pools/Roles/index.tsx | 8 +-- 6 files changed, 24 insertions(+), 78 deletions(-) diff --git a/src/contexts/Validators/index.tsx b/src/contexts/Validators/index.tsx index a83e1f99cb..cc0e56a12f 100644 --- a/src/contexts/Validators/index.tsx +++ b/src/contexts/Validators/index.tsx @@ -468,64 +468,6 @@ export const ValidatorsProvider = ({ validatorMetaBatchesRef ); - const subscribeToSuperIdentities = async (addr: string[]) => { - const unsub = await api.query.identity.superOf.multi<AnyApi>( - addr, - async (result) => { - // determine where supers exist - const supers: AnyApi = []; - const supersWithIdentity: AnyApi = []; - - for (let i = 0; i < result.length; i++) { - const resultItem = result[i].toHuman(); - supers.push(resultItem); - if (resultItem !== null) { - supersWithIdentity.push(i); - } - } - - // get supers one-off multi query - const query = supers - .filter((s: AnyApi) => s !== null) - .map((s: AnyApi) => s[0]); - - const temp = await api.query.identity.identityOf.multi<AnyApi>( - query, - (_identities) => { - for (let j = 0; j < _identities.length; j++) { - const identity = _identities[j].toHuman(); - // inject identity into super array - supers[supersWithIdentity[j]].identity = identity; - } - } - ); - temp(); - - // check if batch still exists before updating - if (validatorMetaBatchesRef.current[key]) { - setStateWithRef( - { - ...validatorMetaBatchesRef.current, - [key]: { - ...validatorMetaBatchesRef.current[key], - supers, - }, - }, - setValidatorMetaBatch, - validatorMetaBatchesRef - ); - } - } - ); - return unsub; - }; - - await Promise.all([subscribeToSuperIdentities(addresses)]).then( - (unsubs: Fn[]) => { - addMetaBatchUnsubs(key, unsubs); - } - ); - // subscribe to validator nominators const args: AnyApi = []; diff --git a/src/library/GenerateNominations/index.tsx b/src/library/GenerateNominations/index.tsx index 6a47723423..210d02d2a9 100644 --- a/src/library/GenerateNominations/index.tsx +++ b/src/library/GenerateNominations/index.tsx @@ -39,8 +39,13 @@ export const GenerateNominations = ({ const { isReady, consts } = useApi(); const { isFastUnstaking } = useUnstaking(); const { activeAccount, isReadOnlyAccount } = useConnect(); - const { removeValidatorMetaBatch, validators, meta, validatorIdentities } = - useValidators(); + const { + removeValidatorMetaBatch, + validators, + meta, + validatorIdentities, + validatorSupers, + } = useValidators(); const { fetch: fetchFromMethod, add: addNomination, @@ -92,7 +97,8 @@ export const GenerateNominations = ({ } if ( batch.stake === undefined || - !Object.values(validatorIdentities).length + !Object.values(validatorIdentities).length || + !Object.values(validatorSupers).length ) { return; } diff --git a/src/library/ListItem/Labels/Identity.tsx b/src/library/ListItem/Labels/Identity.tsx index dde2958e46..595a509a95 100644 --- a/src/library/ListItem/Labels/Identity.tsx +++ b/src/library/ListItem/Labels/Identity.tsx @@ -9,20 +9,20 @@ import { IdentityWrapper } from 'library/ListItem/Wrappers'; import { getIdentityDisplay } from '../../ValidatorList/Validator/Utils'; import type { IdentityProps } from '../types'; -export const Identity = ({ address, batchKey, batchIndex }: IdentityProps) => { - const { meta, validatorIdentities } = useValidators(); +export const Identity = ({ address, batchKey }: IdentityProps) => { + const { meta, validatorIdentities, validatorSupers } = useValidators(); - const supers = meta[batchKey]?.supers ?? []; const stake = meta[batchKey]?.stake ?? []; const [display, setDisplay] = useState( - getIdentityDisplay(validatorIdentities[address], supers[batchIndex]) + getIdentityDisplay(validatorIdentities[address], validatorSupers[address]) ); + // aggregate synced status const identitiesSynced = Object.values(validatorIdentities).length > 0 ?? false; - const supersSynced = supers.length > 0 ?? false; + const supersSynced = Object.values(validatorSupers).length > 0 ?? false; const synced = { identities: identitiesSynced && supersSynced, @@ -31,9 +31,9 @@ export const Identity = ({ address, batchKey, batchIndex }: IdentityProps) => { useEffect(() => { setDisplay( - getIdentityDisplay(validatorIdentities[address], supers[batchIndex]) + getIdentityDisplay(validatorIdentities[address], validatorSupers[address]) ); - }, [meta, validatorIdentities, address]); + }, [validatorSupers, validatorIdentities, address]); return ( <IdentityWrapper diff --git a/src/library/ValidatorList/Validator/Utils.tsx b/src/library/ValidatorList/Validator/Utils.tsx index e750b469ed..b976d97312 100644 --- a/src/library/ValidatorList/Validator/Utils.tsx +++ b/src/library/ValidatorList/Validator/Utils.tsx @@ -9,7 +9,8 @@ export const getIdentityDisplay = (_identity: any, _superIdentity: any) => { // check super identity exists, get display.Raw if it does const superIdentity = _superIdentity?.identity ?? null; - const superRaw = _superIdentity?.[1]?.Raw ?? null; + const superRaw = _superIdentity?.superOf?.[1]?.Raw ?? null; + const superDisplay = superIdentity?.info?.display?.Raw ?? null; // check if super raw has been encoded diff --git a/src/pages/Payouts/PayoutList/index.tsx b/src/pages/Payouts/PayoutList/index.tsx index 1cbb000c6a..b83a14563f 100644 --- a/src/pages/Payouts/PayoutList/index.tsx +++ b/src/pages/Payouts/PayoutList/index.tsx @@ -111,9 +111,6 @@ export const PayoutListInner = ({ return <></>; } - // get validator metadata - const batchKey = 'validators_browse'; - return ( <ListWrapper> <Header> @@ -216,7 +213,7 @@ export const PayoutListInner = ({ <Identity address={p.validator_stash} batchIndex={batchIndex} - batchKey={batchKey} + batchKey="validators_browse" /> ) : ( <div>{clipAddress(p.validator_stash)}</div> @@ -227,7 +224,7 @@ export const PayoutListInner = ({ <> {pool ? ( <PoolIdentity - batchKey={batchKey} + batchKey="bonded_pools" batchIndex={batchIndex} pool={pool} /> diff --git a/src/pages/Pools/Roles/index.tsx b/src/pages/Pools/Roles/index.tsx index 42c84cd2b5..5fe3499390 100644 --- a/src/pages/Pools/Roles/index.tsx +++ b/src/pages/Pools/Roles/index.tsx @@ -29,15 +29,15 @@ export const Roles = ({ listenIsValid = () => {}, }: RolesProps) => { const { t } = useTranslation('pages'); + const { openHelp } = useHelp(); + const { isPoolSyncing } = useUi(); + const { openModalWith } = useModal(); const { isReady, network } = useApi(); - const { activeAccount, isReadOnlyAccount } = useConnect(); const { fetchIdentitiesMetaBatch } = useIdentities(); const { isOwner, selectedActivePool } = useActivePools(); - const { isPoolSyncing } = useUi(); - const { openModalWith } = useModal(); + const { activeAccount, isReadOnlyAccount } = useConnect(); const { id } = selectedActivePool || { id: 0 }; const roles = defaultRoles; - const { openHelp } = useHelp(); const initialiseEdits = (() => { const initState: Record<string, RoleEditEntry> = {}; From 40ea8545679e00e74670c8d3f76933b549545f5f Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sun, 20 Aug 2023 17:30:31 +0700 Subject: [PATCH 247/435] lowestReward to eraStakers --- src/contexts/Staking/defaults.ts | 1 + src/contexts/Staking/index.tsx | 17 +++++++++++++++-- src/contexts/Staking/types.ts | 6 +++--- src/workers/stakers.ts | 28 ++++++++++++++++++++++------ src/workers/types.ts | 1 + 5 files changed, 42 insertions(+), 11 deletions(-) diff --git a/src/contexts/Staking/defaults.ts b/src/contexts/Staking/defaults.ts index 4feeb8a5cb..ab8bedd05e 100644 --- a/src/contexts/Staking/defaults.ts +++ b/src/contexts/Staking/defaults.ts @@ -49,6 +49,7 @@ export const defaultStakingContext: StakingContextInterface = { isBonding: () => false, isNominating: () => false, inSetup: () => true, + getLowestRewardFromStaker: (address) => new BigNumber(0), staking: defaultStakingMetrics, eraStakers: defaultEraStakers, targets: defaultTargets, diff --git a/src/contexts/Staking/index.tsx b/src/contexts/Staking/index.tsx index 698b6dcaca..1f972ec173 100644 --- a/src/contexts/Staking/index.tsx +++ b/src/contexts/Staking/index.tsx @@ -42,16 +42,17 @@ export const StakingProvider = ({ }: { children: React.ReactNode; }) => { - const { isReady, api, apiStatus, network } = useApi(); const { activeAccount, accounts: connectAccounts, getActiveAccount, } = useConnect(); - const { activeEra } = useNetworkMetrics(); const { getStashLedger } = useBalances(); + const { activeEra } = useNetworkMetrics(); + const { isReady, api, apiStatus, network, consts } = useApi(); const { bondedAccounts, getBondedAccount, getAccountNominations } = useBonded(); + const { maxNominatorRewardedPerValidator } = consts; // Store staking metrics in state. const [stakingMetrics, setStakingMetrics] = useState<StakingMetrics>( @@ -248,6 +249,8 @@ export const StakingProvider = ({ activeAccount, units: network.units, exposures, + maxNominatorRewardedPerValidator: + maxNominatorRewardedPerValidator.toNumber(), }); }; @@ -362,6 +365,15 @@ export const StakingProvider = ({ !activeAccount || (!hasController() && !isBonding() && !isNominating() && !isUnlocking()); + /* + * Helper function to get the lowest reward from an active validaor + */ + const getLowestRewardFromStaker = (address: MaybeAccount) => + new BigNumber( + eraStakersRef.current.stakers.find((s) => s.address === address) + ?.lowestReward || 0 + ); + return ( <StakingContext.Provider value={{ @@ -373,6 +385,7 @@ export const StakingProvider = ({ isBonding, isNominating, inSetup, + getLowestRewardFromStaker, staking: stakingMetrics, eraStakers: eraStakersRef.current, erasStakersSyncing: erasStakersSyncingRef.current, diff --git a/src/contexts/Staking/types.ts b/src/contexts/Staking/types.ts index f9400afa8c..a61259d29e 100644 --- a/src/contexts/Staking/types.ts +++ b/src/contexts/Staking/types.ts @@ -18,9 +18,7 @@ export interface StakingMetrics { } export interface EraStakers { - stakers: (ExposureValue & { - address: string; - })[]; + stakers: Staker[]; nominators: any[] | undefined; totalActiveNominators: number; activeValidators: number; @@ -49,6 +47,7 @@ export interface ExposureValue { export type Staker = ExposureValue & { address: string; + lowestReward: string; }; export interface ActiveAccountStaker { @@ -70,6 +69,7 @@ export interface StakingContextInterface { isBonding: () => boolean; isNominating: () => boolean; inSetup: () => any; + getLowestRewardFromStaker: (a: MaybeAccount) => BigNumber; staking: StakingMetrics; eraStakers: EraStakers; targets: any; diff --git a/src/workers/stakers.ts b/src/workers/stakers.ts index 6e1efd9f5e..5a18b6e3c0 100644 --- a/src/workers/stakers.ts +++ b/src/workers/stakers.ts @@ -68,7 +68,8 @@ const processFastUnstakeEra = (data: AnyJson) => { // // abstracts active nominators erasStakers. const processExposures = (data: DataInitialiseExposures) => { - const { units, exposures, activeAccount } = data; + const { units, exposures, activeAccount, maxNominatorRewardedPerValidator } = + data; const stakers: Staker[] = []; let activeValidators = 0; @@ -76,13 +77,9 @@ const processExposures = (data: DataInitialiseExposures) => { const nominators: ExposureOther[] = []; exposures.forEach(({ keys, val }) => { - const address = keys[1]; activeValidators++; - stakers.push({ - address, - ...val, - }); + const address = keys[1]; let others = val?.others ?? []; // Accumulate active nominators and min active stake threshold. @@ -93,6 +90,25 @@ const processExposures = (data: DataInitialiseExposures) => { return r.isZero() ? 0 : r.isLessThan(0) ? -1 : 1; }); + const lowestRewardIndex = Math.min( + maxNominatorRewardedPerValidator - 1, + others.length + ); + + const lowestReward = + others.length > 0 + ? planckToUnit( + new BigNumber(others[lowestRewardIndex]?.value || 0), + units + ).toString() + : '0'; + + stakers.push({ + address, + lowestReward, + ...val, + }); + // Accumulate active stake for all nominators. for (const o of others) { const value = new BigNumber(rmCommas(o.value)); diff --git a/src/workers/types.ts b/src/workers/types.ts index bd04143660..70e0e89271 100644 --- a/src/workers/types.ts +++ b/src/workers/types.ts @@ -13,6 +13,7 @@ export interface DataInitialiseExposures { activeAccount: MaybeAccount; units: number; exposures: Exposure[]; + maxNominatorRewardedPerValidator: number; } export interface ResponseInitialiseExposures { From 32f7d10ed7fa22667742b2da7ddb22fe418e223d Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sun, 20 Aug 2023 17:51:36 +0700 Subject: [PATCH 248/435] getLowestRewardFromStaker includes oversubscribed --- src/contexts/Staking/defaults.ts | 7 ++++++- src/contexts/Staking/index.tsx | 16 ++++++++++++---- src/contexts/Staking/types.ts | 8 +++++++- 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/src/contexts/Staking/defaults.ts b/src/contexts/Staking/defaults.ts index ab8bedd05e..4181219f8c 100644 --- a/src/contexts/Staking/defaults.ts +++ b/src/contexts/Staking/defaults.ts @@ -38,6 +38,11 @@ export const defaultTargets: StakingTargets = { nominations: [], }; +const defaultLowestReward = { + lowest: new BigNumber(0), + oversubscribed: false, +}; + export const defaultNominationStatus: NominationStatuses = {}; export const defaultStakingContext: StakingContextInterface = { @@ -49,7 +54,7 @@ export const defaultStakingContext: StakingContextInterface = { isBonding: () => false, isNominating: () => false, inSetup: () => true, - getLowestRewardFromStaker: (address) => new BigNumber(0), + getLowestRewardFromStaker: (address) => defaultLowestReward, staking: defaultStakingMetrics, eraStakers: defaultEraStakers, targets: defaultTargets, diff --git a/src/contexts/Staking/index.tsx b/src/contexts/Staking/index.tsx index 1f972ec173..fda8294da9 100644 --- a/src/contexts/Staking/index.tsx +++ b/src/contexts/Staking/index.tsx @@ -368,12 +368,20 @@ export const StakingProvider = ({ /* * Helper function to get the lowest reward from an active validaor */ - const getLowestRewardFromStaker = (address: MaybeAccount) => - new BigNumber( - eraStakersRef.current.stakers.find((s) => s.address === address) - ?.lowestReward || 0 + const getLowestRewardFromStaker = (address: MaybeAccount) => { + const staker = eraStakersRef.current.stakers.find( + (s) => s.address === address ); + const lowest = new BigNumber(staker?.lowestReward || 0); + const oversubscribed = staker?.oversubscribed || false; + + return { + lowest, + oversubscribed, + }; + }; + return ( <StakingContext.Provider value={{ diff --git a/src/contexts/Staking/types.ts b/src/contexts/Staking/types.ts index a61259d29e..17e44b1a68 100644 --- a/src/contexts/Staking/types.ts +++ b/src/contexts/Staking/types.ts @@ -48,6 +48,7 @@ export interface ExposureValue { export type Staker = ExposureValue & { address: string; lowestReward: string; + oversubscribed: boolean; }; export interface ActiveAccountStaker { @@ -60,6 +61,11 @@ export interface ExposureOther { value: string; } +interface LowestReward { + lowest: BigNumber; + oversubscribed: boolean; +} + export interface StakingContextInterface { getNominationsStatusFromTargets: (w: MaybeAccount, t: any[]) => any; setTargets: (t: any) => any; @@ -69,7 +75,7 @@ export interface StakingContextInterface { isBonding: () => boolean; isNominating: () => boolean; inSetup: () => any; - getLowestRewardFromStaker: (a: MaybeAccount) => BigNumber; + getLowestRewardFromStaker: (a: MaybeAccount) => LowestReward; staking: StakingMetrics; eraStakers: EraStakers; targets: any; From 4d93f86970bfc6639ce90ded9c2469de366348fd Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sun, 20 Aug 2023 17:51:55 +0700 Subject: [PATCH 249/435] worker calculates oversubscribed --- src/workers/stakers.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/workers/stakers.ts b/src/workers/stakers.ts index 5a18b6e3c0..a4ae056a58 100644 --- a/src/workers/stakers.ts +++ b/src/workers/stakers.ts @@ -103,9 +103,12 @@ const processExposures = (data: DataInitialiseExposures) => { ).toString() : '0'; + const oversubscribed = others.length > maxNominatorRewardedPerValidator; + stakers.push({ address, lowestReward, + oversubscribed, ...val, }); From a7761ebdc7e6dbde34ec27525d7b7dfe09007e6c Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sun, 20 Aug 2023 18:30:25 +0700 Subject: [PATCH 250/435] discontinue validator meta batches --- src/contexts/Validators/defaults.ts | 3 - src/contexts/Validators/index.tsx | 217 +----------------- src/contexts/Validators/types.ts | 5 +- src/library/GenerateNominations/index.tsx | 29 +-- .../GenerateNominations/useFetchMethods.tsx | 20 +- .../Hooks/useNominationStatus/index.tsx | 21 +- .../Hooks/useValidatorFilters/index.tsx | 155 +++++-------- src/library/ListItem/Labels/Identity.tsx | 13 +- .../ListItem/Labels/Oversubscribed.tsx | 35 +-- src/library/ListItem/types.ts | 5 +- .../ValidatorList/Validator/Default.tsx | 23 +- .../ValidatorList/Validator/Nomination.tsx | 18 +- src/library/ValidatorList/Validator/types.ts | 4 - src/library/ValidatorList/index.tsx | 94 +++----- src/pages/Community/Entity.tsx | 4 +- src/pages/Payouts/PayoutList/index.tsx | 6 +- src/pages/Pools/Home/MembersList/Member.tsx | 2 +- src/pages/Validators/AllValidators.tsx | 1 - 18 files changed, 139 insertions(+), 516 deletions(-) diff --git a/src/contexts/Validators/defaults.ts b/src/contexts/Validators/defaults.ts index ec6314dfb6..e58ce3b959 100644 --- a/src/contexts/Validators/defaults.ts +++ b/src/contexts/Validators/defaults.ts @@ -12,15 +12,12 @@ export const defaultExposureData = { }; export const defaultValidatorsContext: ValidatorsContextInterface = { - fetchValidatorMetaBatch: (k, v, r) => {}, - removeValidatorMetaBatch: (k) => {}, addFavorite: (a) => {}, removeFavorite: (a) => {}, validators: [], validatorIdentities: {}, validatorSupers: {}, avgCommission: 0, - meta: {}, sessionValidators: [], sessionParaValidators: [], favorites: [], diff --git a/src/contexts/Validators/index.tsx b/src/contexts/Validators/index.tsx index cc0e56a12f..52057defc3 100644 --- a/src/contexts/Validators/index.tsx +++ b/src/contexts/Validators/index.tsx @@ -1,13 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { - greaterThanZero, - planckToUnit, - rmCommas, - setStateWithRef, - shuffle, -} from '@polkadot-cloud/utils'; +import { greaterThanZero, shuffle } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import React, { useEffect, useRef, useState } from 'react'; import { ValidatorCommunity } from '@polkadot-cloud/community/validators'; @@ -17,7 +11,7 @@ import type { ValidatorAddresses, ValidatorsContextInterface, } from 'contexts/Validators/types'; -import type { AnyApi, AnyMetaBatch, Fn, Sync } from 'types'; +import type { AnyApi, Fn, Sync } from 'types'; import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import { useApi } from '../Api'; import { useBonded } from '../Bonded'; @@ -37,13 +31,12 @@ export const ValidatorsProvider = ({ children: React.ReactNode; }) => { const { activeAccount } = useConnect(); + const { isReady, api, network } = useApi(); const { poolNominations } = useActivePools(); const { activeEra, metrics } = useNetworkMetrics(); - const { isReady, api, network, consts } = useApi(); const { bondedAccounts, getAccountNominations } = useBonded(); - const { units, name } = network; + const { name } = network; const { earliestStoredSession } = metrics; - const { maxNominatorRewardedPerValidator } = consts; // Stores all validator entries. const [validators, setValidators] = useState<Validator[]>([]); @@ -77,17 +70,6 @@ export const ValidatorsProvider = ({ // Stores the user's favorite validators. const [favorites, setFavorites] = useState<string[]>(getLocalFavorites(name)); - // TODO: refactor. - // Stores the meta data batches for validator lists. - const [validatorMetaBatches, setValidatorMetaBatch] = useState<AnyMetaBatch>( - {} - ); - const validatorMetaBatchesRef = useRef(validatorMetaBatches); - - // TODO: refactor. - // stores the meta batch subscriptions for validator lists - const validatorSubsRef = useRef<Record<string, Fn[]>>({}); - // stores the user's nominated validators as list const [nominated, setNominated] = useState<Validator[] | null>(null); @@ -105,7 +87,6 @@ export const ValidatorsProvider = ({ setValidatorsFetched('unsynced'); setSessionValidators([]); setSessionParaValidators([]); - removeValidatorMetaBatch('validators_browse'); setAvgCommission(0); setValidators([]); setValidatorIdentities({}); @@ -118,13 +99,6 @@ export const ValidatorsProvider = ({ fetchValidators(); subscribeSessionValidators(); } - - return () => { - // unsubscribe from any validator meta batches - Object.values(validatorSubsRef.current).map((batch: AnyMetaBatch) => - Object.entries(batch).map(([, v]: AnyApi) => v()) - ); - }; }, [isReady, activeEra]); // fetch parachain session validators when `earliestStoredSession` ready @@ -134,13 +108,6 @@ export const ValidatorsProvider = ({ } }, [isReady, earliestStoredSession]); - // pre-populating validator meta batches. Needed for generating nominations - useEffectIgnoreInitial(() => { - if (validators.length > 0) { - fetchValidatorMetaBatch('validators_browse', validators, true); - } - }, [isReady, validators]); - // fetch active account's nominations in validator list format useEffectIgnoreInitial(() => { if (isReady && activeAccount) { @@ -397,179 +364,6 @@ export const ValidatorsProvider = ({ return supersWithIdentity; }; - /* - // TODO: refactor - Fetches a new batch of subscribed validator metadata. Stores the returning - metadata alongside the unsubscribe function in state. - structure: - { - key: { - [ - { - addresses [], - identities: [], - } - ] - }, - }; - */ - const fetchValidatorMetaBatch = async ( - key: string, - v: AnyMetaBatch, - refetch = false - ) => { - if (!isReady || !api) { - return; - } - - if (!v.length) { - return; - } - - if (!refetch) { - // if already exists, do not re-fetch - if (validatorMetaBatchesRef.current[key] !== undefined) { - return; - } - } else { - // tidy up if existing batch exists - const updatedValidatorMetaBatches: AnyMetaBatch = { - ...validatorMetaBatchesRef.current, - }; - delete updatedValidatorMetaBatches[key]; - setStateWithRef( - updatedValidatorMetaBatches, - setValidatorMetaBatch, - validatorMetaBatchesRef - ); - - if (validatorSubsRef.current[key] !== undefined) { - for (const unsub of validatorSubsRef.current[key]) { - unsub(); - } - } - } - - const addresses = []; - for (const address of v) { - addresses.push(address.address); - } - - // store batch addresses - setStateWithRef( - { - ...validatorMetaBatchesRef.current, - [key]: { - ...validatorMetaBatchesRef.current[key], - addresses, - }, - }, - setValidatorMetaBatch, - validatorMetaBatchesRef - ); - - // subscribe to validator nominators - const args: AnyApi = []; - - for (let i = 0; i < v.length; i++) { - args.push([activeEra.index.toString(), v[i].address]); - } - - const unsub3 = await api.query.staking.erasStakers.multi<AnyApi>( - args, - (result) => { - const stake = []; - - for (let validator of result) { - validator = validator.toHuman(); - let others = validator.others ?? []; - - // account for yourself being an additional nominator. - const totalNominations = others.length + 1; - - // reformat others.value properties from string to BigNumber. - others = others.map((other: AnyApi) => ({ - ...other, - value: new BigNumber(rmCommas(other.value)), - })); - - // sort others lowest first. - others = others.sort((a: AnyApi, b: AnyApi) => - a.value.minus(b.value) - ); - - // get the lowest reward stake of the validator, which is - // the largest index - `maxNominatorRewardedPerValidator`, - // or the first index if does not exist. - const lowestRewardIndex = Math.max( - others.length - maxNominatorRewardedPerValidator.toNumber(), - 0 - ); - - const lowestReward = - others.length > 0 - ? planckToUnit(others[lowestRewardIndex]?.value, units) - : 0; - - stake.push({ - total: validator.total, - own: validator.own, - total_nominations: totalNominations, - lowestReward, - }); - } - - // check if batch still exists before updating - if (validatorMetaBatchesRef.current[key]) { - setStateWithRef( - { - ...validatorMetaBatchesRef.current, - [key]: { - ...validatorMetaBatchesRef.current[key], - stake, - }, - }, - setValidatorMetaBatch, - validatorMetaBatchesRef - ); - } - } - ); - - addMetaBatchUnsubs(key, [unsub3]); - }; - - /* - * Helper function to add mataBatch unsubs by key. - */ - const addMetaBatchUnsubs = (key: string, unsubs: Fn[]) => { - const newUnsubs = validatorSubsRef.current; - const keyUnsubs = newUnsubs[key] ?? []; - - keyUnsubs.push(...unsubs); - newUnsubs[key] = keyUnsubs; - validatorSubsRef.current = newUnsubs; - }; - - const removeValidatorMetaBatch = (key: string) => { - if (validatorSubsRef.current[key] !== undefined) { - // ubsubscribe from updates - for (const unsub of validatorSubsRef.current[key]) { - unsub(); - } - // wipe data - const updatedValidatorMetaBatches: AnyMetaBatch = { - ...validatorMetaBatchesRef.current, - }; - delete updatedValidatorMetaBatches[key]; - setStateWithRef( - updatedValidatorMetaBatches, - setValidatorMetaBatch, - validatorMetaBatchesRef - ); - } - }; - /* * Adds a favorite validator. */ @@ -603,15 +397,12 @@ export const ValidatorsProvider = ({ return ( <ValidatorsContext.Provider value={{ - fetchValidatorMetaBatch, - removeValidatorMetaBatch, addFavorite, removeFavorite, validators, validatorIdentities, validatorSupers, avgCommission, - meta: validatorMetaBatchesRef.current, sessionValidators, sessionParaValidators, favorites, diff --git a/src/contexts/Validators/types.ts b/src/contexts/Validators/types.ts index de75969670..93a03ec5be 100644 --- a/src/contexts/Validators/types.ts +++ b/src/contexts/Validators/types.ts @@ -1,18 +1,15 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import type { AnyJson, AnyMetaBatch } from 'types'; +import type { AnyJson } from 'types'; export interface ValidatorsContextInterface { - fetchValidatorMetaBatch: (k: string, v: [], r?: boolean) => void; - removeValidatorMetaBatch: (k: string) => void; addFavorite: (a: string) => void; removeFavorite: (a: string) => void; validators: Validator[]; validatorIdentities: Record<string, Identity>; validatorSupers: Record<string, AnyJson>; avgCommission: number; - meta: AnyMetaBatch; sessionValidators: string[]; sessionParaValidators: string[]; favorites: string[]; diff --git a/src/library/GenerateNominations/index.tsx b/src/library/GenerateNominations/index.tsx index 210d02d2a9..61668cead8 100644 --- a/src/library/GenerateNominations/index.tsx +++ b/src/library/GenerateNominations/index.tsx @@ -23,6 +23,7 @@ import { SelectItems } from 'library/SelectItems'; import { SelectItem } from 'library/SelectItems/Item'; import { ValidatorList } from 'library/ValidatorList'; import { Wrapper } from 'pages/Overview/NetworkSats/Wrappers'; +import { useStaking } from 'contexts/Staking'; import type { GenerateNominationsInnerProps, Nominations, @@ -39,13 +40,8 @@ export const GenerateNominations = ({ const { isReady, consts } = useApi(); const { isFastUnstaking } = useUnstaking(); const { activeAccount, isReadOnlyAccount } = useConnect(); - const { - removeValidatorMetaBatch, - validators, - meta, - validatorIdentities, - validatorSupers, - } = useValidators(); + const { stakers } = useStaking().eraStakers; + const { validators, validatorIdentities, validatorSupers } = useValidators(); const { fetch: fetchFromMethod, add: addNomination, @@ -74,12 +70,9 @@ export const GenerateNominations = ({ // ref for the height of the container const heightRef = useRef<HTMLDivElement>(null); - const rawBatchKey = 'validators_browse'; - // update nominations on account switch useEffect(() => { if (nominations !== defaultNominations) { - removeValidatorMetaBatch(batchKey); setNominations([...defaultNominations]); } }, [activeAccount]); @@ -90,13 +83,8 @@ export const GenerateNominations = ({ return; } - // wait for validator meta data to be fetched - const batch = meta[rawBatchKey]; - if (batch === undefined) { - return; - } if ( - batch.stake === undefined || + !stakers.length || !Object.values(validatorIdentities).length || !Object.values(validatorSupers).length ) { @@ -135,7 +123,6 @@ export const GenerateNominations = ({ const addNominationByType = (type: string) => { if (method) { const newNominations = addNomination(nominations, type); - removeValidatorMetaBatch(batchKey); setNominations([...newNominations]); updateSetters([...newNominations]); } @@ -156,7 +143,6 @@ export const GenerateNominations = ({ setSelectActive(false); const updateList = (_nominations: Nominations) => { - removeValidatorMetaBatch(batchKey); setNominations([..._nominations]); updateSetters(_nominations); }; @@ -173,7 +159,6 @@ export const GenerateNominations = ({ // function for clearing nomination list const clearNominations = () => { setMethod(null); - removeValidatorMetaBatch(batchKey); setNominations([]); updateSetters([]); }; @@ -184,7 +169,6 @@ export const GenerateNominations = ({ resetSelected, setSelectActive, }: any) => { - removeValidatorMetaBatch(batchKey); const newNominations = [...nominations].filter( (n: any) => !selected.map((_s: any) => _s.address).includes(n.address) ); @@ -208,7 +192,6 @@ export const GenerateNominations = ({ icon: faChartPie, onClick: () => { setMethod('Optimal Selection'); - removeValidatorMetaBatch(batchKey); setNominations([]); setFetching(true); }, @@ -219,7 +202,6 @@ export const GenerateNominations = ({ icon: faCoins, onClick: () => { setMethod('Active Low Commission'); - removeValidatorMetaBatch(batchKey); setNominations([]); setFetching(true); }, @@ -230,7 +212,6 @@ export const GenerateNominations = ({ icon: faHeart, onClick: () => { setMethod('From Favorites'); - removeValidatorMetaBatch(batchKey); setNominations([]); setFetching(true); }, @@ -241,7 +222,6 @@ export const GenerateNominations = ({ icon: faUserEdit, onClick: () => { setMethod('Manual'); - removeValidatorMetaBatch(batchKey); setNominations([]); }, }, @@ -308,7 +288,6 @@ export const GenerateNominations = ({ // set a temporary height to prevent height snapping on re-renders. setHeight(heightRef?.current?.clientHeight || null); setTimeout(() => setHeight(null), 200); - removeValidatorMetaBatch(batchKey); setFetching(true); }} > diff --git a/src/library/GenerateNominations/useFetchMethods.tsx b/src/library/GenerateNominations/useFetchMethods.tsx index 6522aca7c9..0d67198084 100644 --- a/src/library/GenerateNominations/useFetchMethods.tsx +++ b/src/library/GenerateNominations/useFetchMethods.tsx @@ -14,8 +14,6 @@ export const useFetchMehods = () => { favoritesList = []; } - const rawBatchKey = 'validators_browse'; - const fetch = (method: string) => { let nominations; switch (method) { @@ -72,8 +70,7 @@ export const useFetchMehods = () => { filtered = applyFilter( ['active'], ['all_commission', 'blockedall', 'missing_identity'], - filtered, - rawBatchKey + filtered ); // order validators to find profitable candidates @@ -94,16 +91,14 @@ export const useFetchMehods = () => { waiting = applyFilter( null, ['all_commission', 'blockedall', 'missing_identity', 'in_session'], - waiting, - rawBatchKey + waiting ); // filter validators to find active candidates active = applyFilter( ['active'], ['all_commission', 'blockedall', 'missing_identity'], - active, - rawBatchKey + active ); // choose shuffled subset of waiting @@ -129,8 +124,7 @@ export const useFetchMehods = () => { 'missing_identity', 'not_parachain_validator', ], - all, - rawBatchKey + all ).filter( (n: any) => !nominations.find((o: any) => o.address === n.address) ); @@ -138,8 +132,7 @@ export const useFetchMehods = () => { const active = applyFilter( ['active'], ['all_commission', 'blockedall', 'missing_identity'], - all, - rawBatchKey + all ) .filter( (n: any) => !nominations.find((o: any) => o.address === n.address) @@ -149,8 +142,7 @@ export const useFetchMehods = () => { const random = applyFilter( null, ['all_commission', 'blockedall', 'missing_identity'], - all, - rawBatchKey + all ).filter( (n: any) => !nominations.find((o: any) => o.address === n.address) ); diff --git a/src/library/Hooks/useNominationStatus/index.tsx b/src/library/Hooks/useNominationStatus/index.tsx index ff2c4fc51d..4aeb1b9266 100644 --- a/src/library/Hooks/useNominationStatus/index.tsx +++ b/src/library/Hooks/useNominationStatus/index.tsx @@ -16,10 +16,16 @@ export const useNominationStatus = () => { const { t } = useTranslation(); const { network } = useApi(); const { isSyncing } = useUi(); - const { meta, validators } = useValidators(); + const { validators } = useValidators(); const { poolNominations } = useActivePools(); const { getAccountNominations } = useBonded(); - const { inSetup, eraStakers, getNominationsStatusFromTargets } = useStaking(); + const { + inSetup, + eraStakers, + erasStakersSyncing, + getNominationsStatusFromTargets, + getLowestRewardFromStaker, + } = useStaking(); // Utility to get an account's nominees alongside their status. const getNomineesStatus = (who: MaybeAccount, type: 'nominator' | 'pool') => { @@ -46,13 +52,10 @@ export const useNominationStatus = () => { const nominees = Object.entries(getNomineesStatus(who, type)); const activeNominees = getNomineesByStatus(nominees, 'active'); - // Attempt to get validator stake from meta batch (may still be syncing). - const stake = meta.validators_browse?.stake ?? []; - // Determine whether active nominees are earning rewards. This function exists once the - // first reward-earning nominee is found. + // eras stakers has synced. let earningRewards = false; - if (stake.length > 0) { + if (!erasStakersSyncing) { getNomineesByStatus(nominees, 'active').every((nominee) => { const validator = validators.find(({ address }) => address === nominee); @@ -68,12 +71,12 @@ export const useNominationStatus = () => { const stakedValue = others?.find((o) => o.who === who)?.value ?? false; if (stakedValue) { - const { lowestReward } = stake[validators.indexOf(validator)]; + const { lowest } = getLowestRewardFromStaker(nominee); if ( planckToUnit( new BigNumber(rmCommas(stakedValue)), network.units - ).isGreaterThanOrEqualTo(lowestReward) + ).isGreaterThanOrEqualTo(lowest) ) { earningRewards = true; return false; diff --git a/src/library/Hooks/useValidatorFilters/index.tsx b/src/library/Hooks/useValidatorFilters/index.tsx index b22cbe9e48..e38d9e39fb 100644 --- a/src/library/Hooks/useValidatorFilters/index.tsx +++ b/src/library/Hooks/useValidatorFilters/index.tsx @@ -3,55 +3,39 @@ import { u8aToString, u8aUnwrapBytes } from '@polkadot/util'; import { useTranslation } from 'react-i18next'; -import { useApi } from 'contexts/Api'; import { useValidators } from 'contexts/Validators'; import type { AnyFunction, AnyJson } from 'types'; +import { useStaking } from 'contexts/Staking'; export const useValidatorFilters = () => { const { t } = useTranslation('library'); - const { consts } = useApi(); const { - meta, sessionValidators, sessionParaValidators, validatorIdentities, + validatorSupers, } = useValidators(); - const { maxNominatorRewardedPerValidator } = consts; + const { erasStakersSyncing, getLowestRewardFromStaker } = useStaking(); /* - * filterMissingIdentity - * Iterates through the supplied list and refers to the meta - * batch of the list to filter those list items with - * missing identities. - * Returns the updated filtered list. + * filterMissingIdentity: Iterates through the supplied list and filters those with missing + * identities. Returns the updated filtered list. */ - const filterMissingIdentity = (list: any, batchKey: string) => { - if (meta[batchKey] === undefined) { + const filterMissingIdentity = (list: any) => { + // Return lsit early if identity sync has not completed. + if ( + !Object.values(validatorIdentities).length || + !Object.values(validatorSupers).length + ) { return list; } const filteredList: any = []; for (const validator of list) { - const addressBatchIndex = - meta[batchKey].addresses?.indexOf(validator.address) ?? -1; + const identityExists = validatorIdentities[validator.address] ?? false; + const superExists = validatorSupers[validator.address] ?? false; - // if we cannot derive data, fallback to include validator in filtered list - if (addressBatchIndex === -1) { - filteredList.push(validator); - continue; - } - - const supers = meta[batchKey]?.supers ?? []; - - // push validator if sync has not completed - if (!Object.values(validatorIdentities).length || !supers.length) { - filteredList.push(validator); - } - - const identityExists = validatorIdentities[validator.address] ?? null; - const superExists = supers[addressBatchIndex] ?? null; - - // validator included if identity or super identity has been set - if (identityExists !== null || superExists !== null) { + // Validator included if identity or super identity has been set. + if (!!identityExists || !!superExists) { filteredList.push(validator); continue; } @@ -60,33 +44,20 @@ export const useValidatorFilters = () => { }; /* - * filterOverSubscribed - * Iterates through the supplied list and refers to the meta - * batch of the list to filter those list items that are - * over subscribed. - * Returns the updated filtered list. + * filterOverSubscribed: Iterates through the supplied list and filters those who are over + * subscribed. Returns the updated filtered list. */ - const filterOverSubscribed = (list: any, batchKey: string) => { - if (meta[batchKey] === undefined) { + const filterOverSubscribed = (list: any) => { + // Return list early if eraStakers is still syncing. + if (erasStakersSyncing) { return list; } + const filteredList: any = []; for (const validator of list) { - const addressBatchIndex = - meta[batchKey].addresses?.indexOf(validator.address) ?? -1; - const stake = meta[batchKey]?.stake ?? false; + const { oversubscribed } = getLowestRewardFromStaker(validator.address); - // if we cannot derive data, fallback to include validator in filtered list - if (addressBatchIndex === -1 || !stake) { - filteredList.push(validator); - continue; - } - const totalNominations = stake[addressBatchIndex].total_nominations ?? 0; - if ( - maxNominatorRewardedPerValidator.isGreaterThanOrEqualTo( - totalNominations - ) - ) { + if (!oversubscribed) { filteredList.push(validator); continue; } @@ -95,29 +66,22 @@ export const useValidatorFilters = () => { }; /* - * filterAllCommission - * Filters the supplied list and removes items with 100% commission. - * Returns the updated filtered list. + * filterAllCommission: Filters the supplied list and removes items with 100% commission. Returns + * the updated filtered list. */ - const filterAllCommission = (list: any) => { - list = list.filter( - (validator: any) => validator?.prefs?.commission !== 100 - ); - return list; - }; + const filterAllCommission = (list: any) => + list.filter((validator: any) => validator?.prefs?.commission !== 100); /* - * filterBlockedNominations - * Filters the supplied list and removes items that have blocked nominations. - * Returns the updated filtered list. + * filterBlockedNominations: Filters the supplied list and removes items that have blocked + * nominations. Returns the updated filtered list. */ const filterBlockedNominations = (list: any) => list.filter((validator: any) => validator?.prefs?.blocked !== true); /* - * filterActive - * Filters the supplied list and removes items that are inactive. - * Returns the updated filtered list. + * filterActive: Filters the supplied list and removes items that are inactive. Returns the + * updated filtered list. */ const filterActive = (list: any) => { // if list has not yet been populated, return original list @@ -128,8 +92,7 @@ export const useValidatorFilters = () => { }; /* - * filterNonParachainValidator - * Filters the supplied list and removes items that are inactive. + * filterNonParachainValidator: Filters the supplied list and removes items that are inactive. * Returns the updated filtered list. */ const filterNonParachainValidator = (list: any) => { @@ -141,8 +104,7 @@ export const useValidatorFilters = () => { }; /* - * filterInSession - * Filters the supplied list and removes items that are in the current session. + * filterInSession: Filters the supplied list and removes items that are in the current session. * Returns the updated filtered list. */ const filterInSession = (list: any) => { @@ -187,37 +149,34 @@ export const useValidatorFilters = () => { const applyFilter = ( includes: string[] | null, excludes: string[] | null, - list: AnyJson, - batchKey: string + list: AnyJson ) => { if (!excludes && !includes) { return list; } if (includes) { for (const fn of getFiltersToApply(includes)) { - list = fn(list, batchKey); + list = fn(list); } } if (excludes) { for (const fn of getFiltersToApply(excludes)) { - list = fn(list, batchKey); + list = fn(list); } } return list; }; /* - * orderLowestCommission - * Orders a list by commission, lowest first. - * Returns the updated ordered list. + * orderLowestCommission: Orders a list by commission, lowest first. Returns the updated ordered + * list. */ const orderLowestCommission = (list: any) => [...list].sort((a: any, b: any) => a.prefs.commission - b.prefs.commission); /* - * orderHighestCommission - * Orders a list by commission, highest first. - * Returns the updated ordered list. + * orderHighestCommission: Orders a list by commission, highest first. Returns the updated ordered + * list. */ const orderHighestCommission = (list: any) => [...list].sort((a: any, b: any) => b.prefs.commission - a.prefs.commission); @@ -242,39 +201,29 @@ export const useValidatorFilters = () => { }; /* - * applySearch - * Iterates through the supplied list and refers to the meta - * batch of the list to filter those list items that match - * the search term. + * applySearch Iterates through the supplied list and filters those that match the search term. * Returns the updated filtered list. */ - const applySearch = (list: any, batchKey: string, searchTerm: string) => { - if (meta[batchKey] === undefined || !searchTerm) { + const applySearch = (list: any, searchTerm: string) => { + // If we cannot derive data, fallback to include validator in filtered list. + if ( + !searchTerm || + !Object.values(validatorIdentities).length || + !Object.values(validatorSupers).length + ) { return list; } + const filteredList: any = []; for (const validator of list) { - const batchIndex = - meta[batchKey].addresses?.indexOf(validator.address) ?? -1; - const identities = meta[batchKey]?.identities ?? false; - const supers = meta[batchKey]?.supers ?? false; - - // if we cannot derive data, fallback to include validator in filtered list - if (batchIndex === -1 || !identities || !supers) { - filteredList.push(validator); - continue; - } - - const address = meta[batchKey].addresses[batchIndex]; - - const identity = identities[batchIndex] ?? ''; + const identity = validatorIdentities[validator.address] ?? ''; const identityRaw = identity?.info?.display?.Raw ?? ''; const identityAsBytes = u8aToString(u8aUnwrapBytes(identityRaw)); const identitySearch = ( identityAsBytes === '' ? identityRaw : identityAsBytes ).toLowerCase(); - const superIdentity = supers[batchIndex] ?? null; + const superIdentity = validatorSupers[validator.address] ?? null; const superIdentityRaw = superIdentity?.identity?.info?.display?.Raw ?? ''; const superIdentityAsBytes = u8aToString( @@ -284,7 +233,7 @@ export const useValidatorFilters = () => { superIdentityAsBytes === '' ? superIdentityRaw : superIdentityAsBytes ).toLowerCase(); - if (address.toLowerCase().includes(searchTerm.toLowerCase())) + if (validator.address.toLowerCase().includes(searchTerm.toLowerCase())) filteredList.push(validator); if ( identitySearch.includes(searchTerm.toLowerCase()) || diff --git a/src/library/ListItem/Labels/Identity.tsx b/src/library/ListItem/Labels/Identity.tsx index 595a509a95..610e642333 100644 --- a/src/library/ListItem/Labels/Identity.tsx +++ b/src/library/ListItem/Labels/Identity.tsx @@ -9,10 +9,8 @@ import { IdentityWrapper } from 'library/ListItem/Wrappers'; import { getIdentityDisplay } from '../../ValidatorList/Validator/Utils'; import type { IdentityProps } from '../types'; -export const Identity = ({ address, batchKey }: IdentityProps) => { - const { meta, validatorIdentities, validatorSupers } = useValidators(); - - const stake = meta[batchKey]?.stake ?? []; +export const Identity = ({ address }: IdentityProps) => { + const { validatorIdentities, validatorSupers } = useValidators(); const [display, setDisplay] = useState( getIdentityDisplay(validatorIdentities[address], validatorSupers[address]) @@ -24,11 +22,6 @@ export const Identity = ({ address, batchKey }: IdentityProps) => { const supersSynced = Object.values(validatorSupers).length > 0 ?? false; - const synced = { - identities: identitiesSynced && supersSynced, - stake: stake.length > 0 ?? false, - }; - useEffect(() => { setDisplay( getIdentityDisplay(validatorIdentities[address], validatorSupers[address]) @@ -44,7 +37,7 @@ export const Identity = ({ address, batchKey }: IdentityProps) => { > <Identicon value={address} size={24} /> <div className="inner"> - {synced.identities && display !== null ? ( + {identitiesSynced && supersSynced && display !== null ? ( <h4>{display}</h4> ) : ( <h4>{clipAddress(address)}</h4> diff --git a/src/library/ListItem/Labels/Oversubscribed.tsx b/src/library/ListItem/Labels/Oversubscribed.tsx index bd81fbf386..169830cc65 100644 --- a/src/library/ListItem/Labels/Oversubscribed.tsx +++ b/src/library/ListItem/Labels/Oversubscribed.tsx @@ -3,50 +3,29 @@ import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import BigNumber from 'bignumber.js'; import { motion } from 'framer-motion'; import { useTranslation } from 'react-i18next'; import { MinBondPrecision } from 'consts'; import { useApi } from 'contexts/Api'; import { useTooltip } from 'contexts/Tooltip'; -import { useValidators } from 'contexts/Validators'; import { OverSubscribedWrapper, TooltipTrigger, } from 'library/ListItem/Wrappers'; +import { useStaking } from 'contexts/Staking'; import type { OversubscribedProps } from '../types'; -export const Oversubscribed = ({ - batchIndex, - batchKey, -}: OversubscribedProps) => { +export const Oversubscribed = ({ address }: OversubscribedProps) => { const { t } = useTranslation('library'); - const { consts, network } = useApi(); - const { meta } = useValidators(); + const { network } = useApi(); const { setTooltipTextAndOpen } = useTooltip(); + const { erasStakersSyncing, getLowestRewardFromStaker } = useStaking(); - const identities = meta[batchKey]?.identities ?? []; - const supers = meta[batchKey]?.supers ?? []; - const stake = meta[batchKey]?.stake ?? []; + const { lowest, oversubscribed } = getLowestRewardFromStaker(address); - // aggregate synced status - const identitiesSynced = identities.length > 0 ?? false; - const supersSynced = supers.length > 0 ?? false; + const displayOversubscribed = !erasStakersSyncing && oversubscribed; - const synced = { - identities: identitiesSynced && supersSynced, - stake: stake.length > 0 ?? false, - }; - - const eraStakers = stake[batchIndex]; - - const totalNominations = eraStakers?.total_nominations ?? 0; - const lowestReward = eraStakers?.lowestReward ?? 0; - - const displayOversubscribed = - synced.stake && totalNominations >= consts.maxNominatorRewardedPerValidator; - - const lowestRewardFormatted = new BigNumber(lowestReward) + const lowestRewardFormatted = lowest .decimalPlaces(MinBondPrecision) .toFormat(); diff --git a/src/library/ListItem/types.ts b/src/library/ListItem/types.ts index 436b4ad3da..176d08889c 100644 --- a/src/library/ListItem/types.ts +++ b/src/library/ListItem/types.ts @@ -22,8 +22,6 @@ export interface FavoriteProps { export interface IdentityProps { address: string; - batchIndex: number; - batchKey: string; } export interface PoolIdentityProps { @@ -44,8 +42,7 @@ export interface NominationStatusProps { } export interface OversubscribedProps { - batchIndex: number; - batchKey: string; + address: MaybeAccount; } export interface SelectProps { diff --git a/src/library/ValidatorList/Validator/Default.tsx b/src/library/ValidatorList/Validator/Default.tsx index a448252414..9b33713a65 100644 --- a/src/library/ValidatorList/Validator/Default.tsx +++ b/src/library/ValidatorList/Validator/Default.tsx @@ -33,30 +33,25 @@ import type { DefaultProps } from './types'; export const Default = ({ validator, toggleFavorites, - batchIndex, - batchKey, showMenu, inModal, }: DefaultProps) => { const { t } = useTranslation('library'); + const { selectActive } = useList(); const { openModalWith } = useModal(); const { addNotification } = useNotifications(); const { setMenuPosition, setMenuItems, open }: any = useMenu(); - const { meta } = useValidators(); - const { selectActive } = useList(); - - const identities = meta[batchKey]?.identities ?? []; - const supers = meta[batchKey]?.supers ?? []; + const { validatorIdentities, validatorSupers } = useValidators(); const { address, prefs } = validator; const commission = prefs?.commission ?? null; const identity = getIdentityDisplay( - identities[batchIndex], - supers[batchIndex] + validatorIdentities[address], + validatorSupers[address] ); - // copy address notification + // copy address notification. const notificationCopyAddress: NotificationText | null = address == null ? null @@ -109,14 +104,10 @@ export const Default = ({ <MenuPosition ref={posRef} /> <div className="row"> {selectActive && <Select item={validator} />} - <Identity - address={address} - batchIndex={batchIndex} - batchKey={batchKey} - /> + <Identity address={address} /> <div> <Labels> - <Oversubscribed batchIndex={batchIndex} batchKey={batchKey} /> + <Oversubscribed address={address} /> <Blocked prefs={prefs} /> <Commission commission={commission} /> <ParaValidator address={address} /> diff --git a/src/library/ValidatorList/Validator/Nomination.tsx b/src/library/ValidatorList/Validator/Nomination.tsx index a1e23a0736..388320d1d6 100644 --- a/src/library/ValidatorList/Validator/Nomination.tsx +++ b/src/library/ValidatorList/Validator/Nomination.tsx @@ -21,15 +21,11 @@ export const Nomination = ({ validator, nominator, toggleFavorites, - batchIndex, - batchKey, bondFor, inModal, }: NominationProps) => { - const { meta } = useValidators(); const { selectActive } = useList(); - const identities = meta[batchKey]?.identities ?? []; - const supers = meta[batchKey]?.supers ?? []; + const { validatorIdentities, validatorSupers } = useValidators(); const { address, prefs } = validator; const commission = prefs?.commission ?? null; @@ -39,11 +35,7 @@ export const Nomination = ({ <div className="inner"> <div className="row"> {selectActive && <Select item={validator} />} - <Identity - address={address} - batchIndex={batchIndex} - batchKey={batchKey} - /> + <Identity address={address} /> <div> <Labels> <CopyAddress address={address} /> @@ -59,7 +51,7 @@ export const Nomination = ({ nominator={nominator} /> <Labels> - <Oversubscribed batchIndex={batchIndex} batchKey={batchKey} /> + <Oversubscribed address={address} /> <Blocked prefs={prefs} /> <Commission commission={commission} /> <ParaValidator address={address} /> @@ -69,8 +61,8 @@ export const Nomination = ({ <Metrics address={address} display={getIdentityDisplay( - identities[batchIndex], - supers[batchIndex] + validatorIdentities[address], + validatorSupers[address] )} /> )} diff --git a/src/library/ValidatorList/Validator/types.ts b/src/library/ValidatorList/Validator/types.ts index c0792f6942..c50a5cbc0f 100644 --- a/src/library/ValidatorList/Validator/types.ts +++ b/src/library/ValidatorList/Validator/types.ts @@ -7,8 +7,6 @@ export interface NominationProps { validator: any; nominator: MaybeAccount; toggleFavorites: boolean; - batchIndex: number; - batchKey: string; bondFor: BondFor; inModal: boolean; } @@ -16,8 +14,6 @@ export interface NominationProps { export interface DefaultProps { validator: any; toggleFavorites: boolean; - batchIndex: number; - batchKey: string; showMenu: boolean; inModal: boolean; } diff --git a/src/library/ValidatorList/index.tsx b/src/library/ValidatorList/index.tsx index aea4d73fb8..b484cdd501 100644 --- a/src/library/ValidatorList/index.tsx +++ b/src/library/ValidatorList/index.tsx @@ -16,7 +16,6 @@ import { useNetworkMetrics } from 'contexts/Network'; import { StakingContext } from 'contexts/Staking'; import { useTheme } from 'contexts/Themes'; import { useUi } from 'contexts/UI'; -import { useValidators } from 'contexts/Validators'; import { Header, List, Wrapper as ListWrapper } from 'library/List'; import { MotionContainer } from 'library/List/MotionContainer'; import { Pagination } from 'library/List/Pagination'; @@ -30,7 +29,6 @@ import { Filters } from './Filters'; export const ValidatorListInner = ({ nominator: initialNominator, validators: initialValidators, - batchKey, allowMoreCols, allowFilters, toggleFavorites, @@ -48,20 +46,18 @@ export const ValidatorListInner = ({ alwaysRefetchValidators = false, defaultFilters = undefined, disableThrottle = false, - refetchOnListUpdate = false, }: any) => { const { t } = useTranslation('library'); - const { mode } = useTheme(); const { isReady, network: { colors }, } = useApi(); - const { activeAccount } = useConnect(); - const { activeEra } = useNetworkMetrics(); - const { fetchValidatorMetaBatch } = useValidators(); - const provider = useList(); const modal = useModal(); + const provider = useList(); + const { mode } = useTheme(); const { isSyncing } = useUi(); + const { activeAccount } = useConnect(); + const { activeEra } = useNetworkMetrics(); // determine the nominator of the validator list. // By default this will be the activeAccount. But for pools, @@ -210,7 +206,6 @@ export const ValidatorListInner = ({ setValidatorsDefault(initialValidators); setValidators(initialValidators); setFetched(true); - fetchValidatorMetaBatch(batchKey, initialValidators, refetchOnListUpdate); }; // handle filter / order update @@ -221,18 +216,9 @@ export const ValidatorListInner = ({ if (order !== 'default') { filteredValidators = applyOrder(order, filteredValidators); } - filteredValidators = applyFilter( - includes, - excludes, - filteredValidators, - batchKey - ); + filteredValidators = applyFilter(includes, excludes, filteredValidators); if (searchTerm) { - filteredValidators = applySearch( - filteredValidators, - batchKey, - searchTerm - ); + filteredValidators = applySearch(filteredValidators, searchTerm); } setValidators(filteredValidators); setPage(1); @@ -263,13 +249,8 @@ export const ValidatorListInner = ({ if (order !== 'default') { filteredValidators = applyOrder(order, filteredValidators); } - filteredValidators = applyFilter( - includes, - excludes, - filteredValidators, - batchKey - ); - filteredValidators = applySearch(filteredValidators, batchKey, newValue); + filteredValidators = applyFilter(includes, excludes, filteredValidators); + filteredValidators = applySearch(filteredValidators, newValue); // ensure no duplicates filteredValidators = filteredValidators.filter( @@ -343,39 +324,32 @@ export const ValidatorListInner = ({ <MotionContainer> {listValidators.length ? ( <> - {listValidators.map((validator: any, index: number) => { - // fetch batch data by referring to default list index. - const batchIndex = validatorsDefault.indexOf(validator); - - return ( - <motion.div - className={`item ${listFormat === 'row' ? 'row' : 'col'}`} - key={`nomination_${index}`} - variants={{ - hidden: { - y: 15, - opacity: 0, - }, - show: { - y: 0, - opacity: 1, - }, - }} - > - <Validator - validator={validator} - nominator={nominator} - toggleFavorites={toggleFavorites} - batchIndex={batchIndex} - batchKey={batchKey} - format={format} - showMenu={showMenu} - bondFor={bondFor} - inModal={inModal} - /> - </motion.div> - ); - })} + {listValidators.map((validator: any, index: number) => ( + <motion.div + key={`nomination_${index}`} + className={`item ${listFormat === 'row' ? 'row' : 'col'}`} + variants={{ + hidden: { + y: 15, + opacity: 0, + }, + show: { + y: 0, + opacity: 1, + }, + }} + > + <Validator + validator={validator} + nominator={nominator} + toggleFavorites={toggleFavorites} + format={format} + showMenu={showMenu} + bondFor={bondFor} + inModal={inModal} + /> + </motion.div> + ))} </> ) : ( <h4 style={{ marginTop: '1rem' }}> diff --git a/src/pages/Community/Entity.tsx b/src/pages/Community/Entity.tsx index 916f090cdf..3d7117580b 100644 --- a/src/pages/Community/Entity.tsx +++ b/src/pages/Community/Entity.tsx @@ -16,8 +16,7 @@ import { useCommunitySections } from './context'; export const Entity = () => { const { t } = useTranslation('pages'); const { isReady, network } = useApi(); - const { validators: allValidators, removeValidatorMetaBatch } = - useValidators(); + const { validators: allValidators } = useValidators(); const { setActiveSection, activeItem } = useCommunitySections(); const { name, validators: entityAllValidators } = activeItem; @@ -35,7 +34,6 @@ export const Entity = () => { }, [allValidators, network]); useEffect(() => { - removeValidatorMetaBatch(batchKey); const newValidators = [...activeValidators]; setActiveValidators(newValidators); }, [name, activeItem, network]); diff --git a/src/pages/Payouts/PayoutList/index.tsx b/src/pages/Payouts/PayoutList/index.tsx index b83a14563f..6d33519996 100644 --- a/src/pages/Payouts/PayoutList/index.tsx +++ b/src/pages/Payouts/PayoutList/index.tsx @@ -210,11 +210,7 @@ export const PayoutListInner = ({ {label === t('payouts.payout') && ( <> {batchIndex > 0 ? ( - <Identity - address={p.validator_stash} - batchIndex={batchIndex} - batchKey="validators_browse" - /> + <Identity address={p.validator_stash} /> ) : ( <div>{clipAddress(p.validator_stash)}</div> )} diff --git a/src/pages/Pools/Home/MembersList/Member.tsx b/src/pages/Pools/Home/MembersList/Member.tsx index 36f5edc3be..aded763b16 100644 --- a/src/pages/Pools/Home/MembersList/Member.tsx +++ b/src/pages/Pools/Home/MembersList/Member.tsx @@ -105,7 +105,7 @@ export const Member = ({ who, batchKey, batchIndex }: any) => { <MenuPosition ref={posRef} /> <div className="row"> {selectActive && <Select item={who} />} - <Identity address={who} batchIndex={batchIndex} batchKey={batchKey} /> + <Identity address={who} /> <div> <Labels> {menuItems.length > 0 && ( diff --git a/src/pages/Validators/AllValidators.tsx b/src/pages/Validators/AllValidators.tsx index 1c0cc6b03f..ffb894eec1 100644 --- a/src/pages/Validators/AllValidators.tsx +++ b/src/pages/Validators/AllValidators.tsx @@ -42,7 +42,6 @@ export const AllValidators = () => { <ValidatorList bondFor="nominator" validators={validators} - batchKey="validators_browse" title={t('validators.networkValidators')} selectable={false} defaultFilters={{ From ebb7df4e2e66f3ae44d3c4fd5606ddfec7eb5025 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Mon, 21 Aug 2023 10:12:21 +0700 Subject: [PATCH 251/435] rmCommas in stakers worker --- src/contexts/Pools/ActivePools/index.tsx | 4 +--- src/contexts/Validators/index.tsx | 1 - .../Hooks/useNominationStatus/index.tsx | 4 ++-- src/library/ListItem/Labels/EraStatus.tsx | 19 ++++++++---------- .../ListItem/Labels/NominationStatus.tsx | 15 +++++++------- src/modals/ValidatorMetrics/index.tsx | 20 +++++++++---------- .../Active/Stats/ActiveNominators.tsx | 3 +-- .../Validators/Stats/ActiveValidators.tsx | 8 ++++---- src/workers/stakers.ts | 10 ++++++++-- 9 files changed, 42 insertions(+), 42 deletions(-) diff --git a/src/contexts/Pools/ActivePools/index.tsx b/src/contexts/Pools/ActivePools/index.tsx index 123214f37b..56a833814c 100644 --- a/src/contexts/Pools/ActivePools/index.tsx +++ b/src/contexts/Pools/ActivePools/index.tsx @@ -389,9 +389,7 @@ export const ActivePoolsProvider = ({ statuses[nomination] = 'waiting'; continue; } - const exists = (s.others ?? []).find( - ({ who }: any) => who === activeAccount - ); + const exists = (s.others ?? []).find(({ who }) => who === activeAccount); if (exists === undefined) { statuses[nomination] = 'inactive'; continue; diff --git a/src/contexts/Validators/index.tsx b/src/contexts/Validators/index.tsx index 52057defc3..0cd1cd82bb 100644 --- a/src/contexts/Validators/index.tsx +++ b/src/contexts/Validators/index.tsx @@ -261,7 +261,6 @@ export const ValidatorsProvider = ({ fetchValidatorIdentities(addresses), fetchValidatorSupers(addresses), ]); - setValidatorIdentities(identities); setValidatorSupers(supers); }; diff --git a/src/library/Hooks/useNominationStatus/index.tsx b/src/library/Hooks/useNominationStatus/index.tsx index 4aeb1b9266..5830ac8ed0 100644 --- a/src/library/Hooks/useNominationStatus/index.tsx +++ b/src/library/Hooks/useNominationStatus/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { planckToUnit, rmCommas } from '@polkadot-cloud/utils'; +import { planckToUnit } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; @@ -74,7 +74,7 @@ export const useNominationStatus = () => { const { lowest } = getLowestRewardFromStaker(nominee); if ( planckToUnit( - new BigNumber(rmCommas(stakedValue)), + new BigNumber(stakedValue), network.units ).isGreaterThanOrEqualTo(lowest) ) { diff --git a/src/library/ListItem/Labels/EraStatus.tsx b/src/library/ListItem/Labels/EraStatus.tsx index f98cd5c3d1..820629af0d 100644 --- a/src/library/ListItem/Labels/EraStatus.tsx +++ b/src/library/ListItem/Labels/EraStatus.tsx @@ -1,11 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { - capitalizeFirstLetter, - planckToUnit, - rmCommas, -} from '@polkadot-cloud/utils'; +import { capitalizeFirstLetter, planckToUnit } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; @@ -19,13 +15,14 @@ export const EraStatus = ({ address }: { address: MaybeAccount }) => { const { network: { unit, units }, } = useApi(); + const { + eraStakers: { stakers }, + erasStakersSyncing, + } = useStaking(); const { isSyncing } = useUi(); - const { eraStakers, erasStakersSyncing } = useStaking(); - const { stakers } = eraStakers; // is the validator in the active era - const validatorInEra = - stakers.find((s: any) => s.address === address) || null; + const validatorInEra = stakers.find((s) => s.address === address) || null; // flag whether validator is active const validatorStatus = isSyncing @@ -38,10 +35,10 @@ export const EraStatus = ({ address }: { address: MaybeAccount }) => { if (validatorInEra) { const { others, own } = validatorInEra; others.forEach((o: any) => { - totalStakePlanck = totalStakePlanck.plus(rmCommas(o.value)); + totalStakePlanck = totalStakePlanck.plus(o.value); }); if (own) { - totalStakePlanck = totalStakePlanck.plus(rmCommas(own)); + totalStakePlanck = totalStakePlanck.plus(own); } } diff --git a/src/library/ListItem/Labels/NominationStatus.tsx b/src/library/ListItem/Labels/NominationStatus.tsx index 08791dcb5e..c9194122d7 100644 --- a/src/library/ListItem/Labels/NominationStatus.tsx +++ b/src/library/ListItem/Labels/NominationStatus.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { greaterThanZero, planckToUnit, rmCommas } from '@polkadot-cloud/utils'; +import { greaterThanZero, planckToUnit } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; @@ -24,9 +24,10 @@ export const NominationStatus = ({ const { activeAccount } = useConnect(); const { getPoolNominationStatus } = useBondedPools(); const { getNomineesStatus } = useNominationStatus(); - const { eraStakers, erasStakersSyncing } = useStaking(); - - const { activeAccountOwnStake, stakers } = eraStakers; + const { + eraStakers: { activeAccountOwnStake, stakers }, + erasStakersSyncing, + } = useStaking(); let nominationStatus; if (bondFor === 'pool') { @@ -50,10 +51,10 @@ export const NominationStatus = ({ ) : new BigNumber(0); } else { - const s = stakers?.find((_n: any) => _n.address === address); - const exists = (s?.others ?? []).find((_o: any) => _o.who === nominator); + const staker = stakers?.find((s) => s.address === address); + const exists = (staker?.others || []).find(({ who }) => who === nominator); if (exists) { - stakedAmount = planckToUnit(new BigNumber(rmCommas(exists.value)), units); + stakedAmount = planckToUnit(new BigNumber(exists.value), units); } } diff --git a/src/modals/ValidatorMetrics/index.tsx b/src/modals/ValidatorMetrics/index.tsx index 531b7ce921..f417cd0a82 100644 --- a/src/modals/ValidatorMetrics/index.tsx +++ b/src/modals/ValidatorMetrics/index.tsx @@ -2,9 +2,9 @@ // SPDX-License-Identifier: GPL-3.0-only import { ButtonHelp, ModalPadding } from '@polkadot-cloud/react'; -import { clipAddress, planckToUnit, rmCommas } from '@polkadot-cloud/utils'; +import { clipAddress, planckToUnit } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; -import React, { useEffect, useState } from 'react'; +import { useEffect, useState, useRef } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useHelp } from 'contexts/Help'; @@ -32,29 +32,29 @@ export const ValidatorMetrics = () => { const { address, identity } = config; const { fetchEraPoints }: any = useSubscan(); const { activeEra } = useNetworkMetrics(); - const { eraStakers } = useStaking(); - const { stakers } = eraStakers; + const { + eraStakers: { stakers }, + } = useStaking(); const { openHelp } = useHelp(); // is the validator in the active era - const validatorInEra = - stakers.find((s: any) => s.address === address) || null; + const validatorInEra = stakers.find((s) => s.address === address) || null; let validatorOwnStake = new BigNumber(0); let otherStake = new BigNumber(0); if (validatorInEra) { const { others, own } = validatorInEra; - others.forEach((o: any) => { - otherStake = otherStake.plus(rmCommas(o.value)); + others.forEach(({ value }) => { + otherStake = otherStake.plus(value); }); if (own) { - validatorOwnStake = new BigNumber(rmCommas(own)); + validatorOwnStake = new BigNumber(own); } } const [list, setList] = useState([]); - const ref: any = React.useRef(); + const ref = useRef<HTMLDivElement>(null); const size = useSize(ref.current); const { width, height, minHeight } = formatSize(size, 300); diff --git a/src/pages/Nominate/Active/Stats/ActiveNominators.tsx b/src/pages/Nominate/Active/Stats/ActiveNominators.tsx index b1b3c318f3..393c4ee8ab 100644 --- a/src/pages/Nominate/Active/Stats/ActiveNominators.tsx +++ b/src/pages/Nominate/Active/Stats/ActiveNominators.tsx @@ -11,8 +11,7 @@ export const ActiveNominatorsStat = () => { const { t } = useTranslation('pages'); const { consts } = useApi(); const { maxElectingVoters } = consts; - const { eraStakers } = useStaking(); - const { totalActiveNominators } = eraStakers; + const { totalActiveNominators } = useStaking().eraStakers; // active nominators as percent let totalNominatorsAsPercent = 0; diff --git a/src/pages/Validators/Stats/ActiveValidators.tsx b/src/pages/Validators/Stats/ActiveValidators.tsx index b718349ad4..5accb0fcd8 100644 --- a/src/pages/Validators/Stats/ActiveValidators.tsx +++ b/src/pages/Validators/Stats/ActiveValidators.tsx @@ -9,10 +9,10 @@ import { Pie } from 'library/StatBoxList/Pie'; export const ActiveValidatorsStat = () => { const { t } = useTranslation('pages'); - const { staking, eraStakers } = useStaking(); - - const { validatorCount } = staking; - const { activeValidators } = eraStakers; + const { + staking: { validatorCount }, + eraStakers: { activeValidators }, + } = useStaking(); // active validators as percent. Avoiding dividing by zero. let activeValidatorsAsPercent = new BigNumber(0); diff --git a/src/workers/stakers.ts b/src/workers/stakers.ts index a4ae056a58..4d3cc8c674 100644 --- a/src/workers/stakers.ts +++ b/src/workers/stakers.ts @@ -80,7 +80,11 @@ const processExposures = (data: DataInitialiseExposures) => { activeValidators++; const address = keys[1]; - let others = val?.others ?? []; + let others = + val?.others.map((o) => ({ + ...o, + value: rmCommas(o.value), + })) ?? []; // Accumulate active nominators and min active stake threshold. if (others.length) { @@ -109,7 +113,9 @@ const processExposures = (data: DataInitialiseExposures) => { address, lowestReward, oversubscribed, - ...val, + others, + own: rmCommas(val.own), + total: rmCommas(val.total), }); // Accumulate active stake for all nominators. From b5f0d45edb18b87a97d3f65333a97f0c5b130664 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Mon, 21 Aug 2023 10:29:25 +0700 Subject: [PATCH 252/435] types / defaults --- src/contexts/Staking/defaults.ts | 5 ++--- src/contexts/Staking/types.ts | 9 ++++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/contexts/Staking/defaults.ts b/src/contexts/Staking/defaults.ts index 4181219f8c..53ba2000c9 100644 --- a/src/contexts/Staking/defaults.ts +++ b/src/contexts/Staking/defaults.ts @@ -27,11 +27,10 @@ export const defaultStakingMetrics: StakingMetrics = { }; export const defaultEraStakers: EraStakers = { + activeAccountOwnStake: [], + activeValidators: 0, stakers: [], - nominators: undefined, totalActiveNominators: 0, - activeValidators: 0, - activeAccountOwnStake: [], }; export const defaultTargets: StakingTargets = { diff --git a/src/contexts/Staking/types.ts b/src/contexts/Staking/types.ts index 17e44b1a68..8712acd103 100644 --- a/src/contexts/Staking/types.ts +++ b/src/contexts/Staking/types.ts @@ -17,12 +17,15 @@ export interface StakingMetrics { totalStaked: BigNumber; } +export interface ActiveAccountOwnStake { + address: string; + value: string; +} export interface EraStakers { + activeAccountOwnStake: ActiveAccountOwnStake[]; + activeValidators: number; stakers: Staker[]; - nominators: any[] | undefined; totalActiveNominators: number; - activeValidators: number; - activeAccountOwnStake: any[]; } export type NominationStatuses = Record<string, string>; From 4edd89582ba1ff424d77ef6accc73b13439a31bf Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Mon, 21 Aug 2023 10:33:08 +0700 Subject: [PATCH 253/435] + ValidatorSuper type --- src/contexts/Validators/index.tsx | 7 ++++--- src/contexts/Validators/types.ts | 5 +++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/contexts/Validators/index.tsx b/src/contexts/Validators/index.tsx index 0cd1cd82bb..702f52c950 100644 --- a/src/contexts/Validators/index.tsx +++ b/src/contexts/Validators/index.tsx @@ -9,6 +9,7 @@ import type { Identity, Validator, ValidatorAddresses, + ValidatorSuper, ValidatorsContextInterface, } from 'contexts/Validators/types'; import type { AnyApi, Fn, Sync } from 'types'; @@ -50,9 +51,9 @@ export const ValidatorsProvider = ({ >({}); // Store validator super identity data. - const [validatorSupers, setValidatorSupers] = useState<Record<string, any>>( - {} - ); + const [validatorSupers, setValidatorSupers] = useState< + Record<string, ValidatorSuper> + >({}); // Stores the currently active validator set. const [sessionValidators, setSessionValidators] = useState<string[]>([]); diff --git a/src/contexts/Validators/types.ts b/src/contexts/Validators/types.ts index 93a03ec5be..5ef56bc2c0 100644 --- a/src/contexts/Validators/types.ts +++ b/src/contexts/Validators/types.ts @@ -25,6 +25,11 @@ export interface Identity { judgements: AnyJson[]; } +export interface ValidatorSuper { + identity: Identity; + superOf: [string, { Raw: string }]; +} + export type ValidatorAddresses = { address: string; }[]; From 7735f1122796f14e58ca948ee69af52e973ba412 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Mon, 21 Aug 2023 11:06:07 +0700 Subject: [PATCH 254/435] combine Account and PoolAccount --- .../Account/{index.tsx => Default.tsx} | 8 +-- .../index.tsx => Account/Pool.tsx} | 14 ++-- src/library/Account/Wrapper.ts | 25 +++----- src/library/Account/types.ts | 3 +- src/library/Headers/Connected.tsx | 12 ++-- src/library/PoolAccount/Wrapper.ts | 64 ------------------- src/library/PoolAccount/types.ts | 19 ------ 7 files changed, 19 insertions(+), 126 deletions(-) rename src/library/Account/{index.tsx => Default.tsx} (94%) rename src/library/{PoolAccount/index.tsx => Account/Pool.tsx} (90%) delete mode 100644 src/library/PoolAccount/Wrapper.ts delete mode 100644 src/library/PoolAccount/types.ts diff --git a/src/library/Account/index.tsx b/src/library/Account/Default.tsx similarity index 94% rename from src/library/Account/index.tsx rename to src/library/Account/Default.tsx index f7942b02ef..33acd01292 100644 --- a/src/library/Account/index.tsx +++ b/src/library/Account/Default.tsx @@ -12,7 +12,6 @@ import { Wrapper } from './Wrapper'; import type { AccountProps } from './types'; export const Account = ({ - filled = false, fontSize = '1.05rem', format, value, @@ -51,12 +50,7 @@ export const Account = ({ }, [value, title]); return ( - <Wrapper - onClick={onClick} - $canClick={canClick} - $filled={filled} - $fontSize={fontSize} - > + <Wrapper onClick={onClick} $canClick={canClick} $fontSize={fontSize}> {label !== undefined && ( <div className="account-label"> {label}{' '} diff --git a/src/library/PoolAccount/index.tsx b/src/library/Account/Pool.tsx similarity index 90% rename from src/library/PoolAccount/index.tsx rename to src/library/Account/Pool.tsx index bac040df9b..ca0a5d3263 100644 --- a/src/library/PoolAccount/index.tsx +++ b/src/library/Account/Pool.tsx @@ -10,16 +10,15 @@ import { useConnect } from 'contexts/Connect'; import { useBondedPools } from 'contexts/Pools/BondedPools'; import { Identicon } from 'library/Identicon'; import { Wrapper } from './Wrapper'; -import type { PoolAccountProps } from './types'; +import type { AccountProps } from './types'; -export const PoolAccount = ({ +export const Account = ({ label, pool, onClick, canClick, - filled = false, fontSize = '1.05rem', -}: PoolAccountProps) => { +}: AccountProps) => { const { t } = useTranslation('library'); const { isReady } = useApi(); const { activeAccount } = useConnect(); @@ -71,12 +70,7 @@ export const PoolAccount = ({ } return ( - <Wrapper - $canClick={canClick} - $filled={filled} - onClick={onClick} - fontSize={fontSize} - > + <Wrapper $canClick={canClick} $fontSize={fontSize} onClick={onClick}> {label !== undefined && <div className="account-label">{label}</div>} <span className="identicon"> diff --git a/src/library/Account/Wrapper.ts b/src/library/Account/Wrapper.ts index e97d748a55..5ae64b85ba 100644 --- a/src/library/Account/Wrapper.ts +++ b/src/library/Account/Wrapper.ts @@ -7,8 +7,6 @@ import type { WrapperProps } from './types'; export const Wrapper = styled.button<WrapperProps>` border: 1px solid var(--border-primary-color); cursor: ${(props) => (props.$canClick ? 'pointer' : 'default')}; - background: ${(props) => - props.$filled ? 'var(--button-tab-background)' : 'none'}; font-size: ${(props) => props.$fontSize}; border-radius: 1.25rem; box-shadow: none; @@ -16,7 +14,7 @@ export const Wrapper = styled.button<WrapperProps>` flex-flow: row wrap; align-items: center; padding: 0 1rem; - max-width: 225px; + max-width: 235px; flex: 1; transition: transform var(--transition-duration) ease-out; &:hover { @@ -27,7 +25,7 @@ export const Wrapper = styled.button<WrapperProps>` } .account-label { border-right: 1px solid var(--border-secondary-color); - color: var(--text-color-primary); + color: var(--text-color-secondary); font-size: 0.8em; display: flex; align-items: center; @@ -46,28 +44,21 @@ export const Wrapper = styled.button<WrapperProps>` .title { font-family: InterSemiBold, sans-serif; - color: var(--text-color-primary); + color: var(--text-color-secondary); margin-left: 0.25rem; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; - line-height: 2.15rem; + line-height: 2.25rem; flex: 1; + &.syncing { + opacity: 0.4; + } + &.unassigned { color: var(--text-color-secondary); opacity: 0.45; } } - - .wallet { - width: 1em; - height: 1em; - margin-left: 0.8rem; - opacity: 0.8; - - path { - fill: var(--text-color-primary); - } - } `; diff --git a/src/library/Account/types.ts b/src/library/Account/types.ts index 0b73143352..a869a08ace 100644 --- a/src/library/Account/types.ts +++ b/src/library/Account/types.ts @@ -7,14 +7,13 @@ export interface AccountProps { format: string; label?: string; canClick: boolean; - filled: boolean; fontSize?: string; title?: string; readOnly?: boolean; + pool?: any; } export interface WrapperProps { $canClick: boolean; - $filled: boolean; $fontSize: string; } diff --git a/src/library/Headers/Connected.tsx b/src/library/Headers/Connected.tsx index fcd539a2be..08cd7824aa 100644 --- a/src/library/Headers/Connected.tsx +++ b/src/library/Headers/Connected.tsx @@ -6,16 +6,16 @@ import { useConnect } from 'contexts/Connect'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { useStaking } from 'contexts/Staking'; import { useUi } from 'contexts/UI'; -import { PoolAccount } from 'library/PoolAccount'; -import { Account } from '../Account'; +import { Account } from '../Account/Default'; +import { Account as PoolAccount } from '../Account/Pool'; import { HeadingWrapper } from './Wrappers'; export const Connected = () => { const { t } = useTranslation('library'); - const { activeAccount, activeProxy, accountHasSigner } = useConnect(); + const { isNetworkSyncing } = useUi(); const { isNominating } = useStaking(); const { selectedActivePool } = useActivePools(); - const { isNetworkSyncing } = useUi(); + const { activeAccount, activeProxy, accountHasSigner } = useConnect(); let poolAddress = ''; if (selectedActivePool) { @@ -41,7 +41,6 @@ export const Connected = () => { : undefined } format="name" - filled /> </HeadingWrapper> @@ -49,12 +48,12 @@ export const Connected = () => { {selectedActivePool !== null && !isNetworkSyncing && ( <HeadingWrapper> <PoolAccount + format="name" value={poolAddress} pool={selectedActivePool} label={t('pool')} canClick={false} onClick={() => {}} - filled /> </HeadingWrapper> )} @@ -68,7 +67,6 @@ export const Connected = () => { readOnly={!accountHasSigner(activeProxy)} label={t('proxy')} format="name" - filled /> </HeadingWrapper> )} diff --git a/src/library/PoolAccount/Wrapper.ts b/src/library/PoolAccount/Wrapper.ts deleted file mode 100644 index 95759ddb8e..0000000000 --- a/src/library/PoolAccount/Wrapper.ts +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: GPL-3.0-only - -import styled from 'styled-components'; -import type { WrapperProps } from './types'; - -export const Wrapper = styled.button<WrapperProps>` - cursor: ${(props) => (props.$canClick ? 'pointer' : 'default')}; - background: ${(props) => - props.$filled ? 'var(--button-tab-background)' : 'none'}; - font-size: ${(props) => props.fontSize}; - border-radius: 1rem; - box-shadow: none; - display: flex; - flex-flow: row wrap; - align-items: center; - padding: 0 1rem; - max-width: 250px; - flex: 1; - transition: transform var(--transition-duration) ease-out; - - &:hover { - transform: scale(1.03); - } - - .identicon { - margin: 0.15rem 0.25rem 0 0; - } - - .account-label { - border-right: 1px solid var(--border-secondary-color); - color: var(--text-color-primary); - font-size: 0.8em; - display: flex; - align-items: center; - justify-content: flex-end; - margin-right: 0.5rem; - padding-right: 0.5rem; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - flex-shrink: 1; - } - - .title { - color: var(--text-color-primary); - font-family: InterSemiBold, sans-serif; - margin-left: 0.25rem; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - line-height: 2.2rem; - flex: 1; - - &.syncing { - opacity: 0.4; - } - - &.unassigned { - color: var(--text-color-primary); - opacity: 0.45; - } - } -`; diff --git a/src/library/PoolAccount/types.ts b/src/library/PoolAccount/types.ts deleted file mode 100644 index c2af9a749f..0000000000 --- a/src/library/PoolAccount/types.ts +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: GPL-3.0-only - -export interface PoolAccountProps { - label?: string; - pool?: any; - filled?: boolean; - fontSize?: string; - canClick: any; - onClick?: () => void; - value?: string; - title?: string | undefined; -} - -export interface WrapperProps { - $canClick: boolean; - $filled: boolean; - fontSize: string; -} From 540c1477e8302a4a42017b23a19ee65b67b72ff5 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Mon, 21 Aug 2023 11:07:58 +0700 Subject: [PATCH 255/435] ordering --- src/library/Account/Wrapper.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/library/Account/Wrapper.ts b/src/library/Account/Wrapper.ts index 5ae64b85ba..6a912c8ce2 100644 --- a/src/library/Account/Wrapper.ts +++ b/src/library/Account/Wrapper.ts @@ -6,6 +6,7 @@ import type { WrapperProps } from './types'; export const Wrapper = styled.button<WrapperProps>` border: 1px solid var(--border-primary-color); + transition: transform var(--transition-duration) ease-out; cursor: ${(props) => (props.$canClick ? 'pointer' : 'default')}; font-size: ${(props) => props.$fontSize}; border-radius: 1.25rem; @@ -16,7 +17,6 @@ export const Wrapper = styled.button<WrapperProps>` padding: 0 1rem; max-width: 235px; flex: 1; - transition: transform var(--transition-duration) ease-out; &:hover { transform: scale(1.03); } @@ -43,8 +43,8 @@ export const Wrapper = styled.button<WrapperProps>` } .title { - font-family: InterSemiBold, sans-serif; color: var(--text-color-secondary); + font-family: InterSemiBold, sans-serif; margin-left: 0.25rem; text-overflow: ellipsis; white-space: nowrap; From 6dd76c3378b416308d9964eb765d816fc6e8a418 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Aug 2023 21:56:39 +0000 Subject: [PATCH 256/435] Bump vite-plugin-checker from 0.6.1 to 0.6.2 Bumps [vite-plugin-checker](https://github.com/fi3ework/vite-plugin-checker) from 0.6.1 to 0.6.2. - [Release notes](https://github.com/fi3ework/vite-plugin-checker/releases) - [Changelog](https://github.com/fi3ework/vite-plugin-checker/blob/main/CHANGELOG.md) - [Commits](https://github.com/fi3ework/vite-plugin-checker/compare/vite-plugin-checker@0.6.1...vite-plugin-checker@0.6.2) --- updated-dependencies: - dependency-name: vite-plugin-checker dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 931ac5798f..9741f20cdf 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "typescript": "^5.1.6", "vite": "^4.4.9", "vite-bundle-visualizer": "^0.10.0", - "vite-plugin-checker": "^0.6.1", + "vite-plugin-checker": "^0.6.2", "vite-plugin-eslint": "^1.8.1", "vite-plugin-svgr": "^3.2.0", "vite-tsconfig-paths": "^4.2.0", diff --git a/yarn.lock b/yarn.lock index 84f489cb18..61df87d60e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5863,10 +5863,10 @@ vite-node@0.34.2: picocolors "^1.0.0" vite "^3.0.0 || ^4.0.0" -vite-plugin-checker@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/vite-plugin-checker/-/vite-plugin-checker-0.6.1.tgz#51a0e654e033b5b9ad6301ae4d0ed0f5886d437c" - integrity sha512-4fAiu3W/IwRJuJkkUZlWbLunSzsvijDf0eDN6g/MGh6BUK4SMclOTGbLJCPvdAcMOQvVmm8JyJeYLYd4//8CkA== +vite-plugin-checker@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/vite-plugin-checker/-/vite-plugin-checker-0.6.2.tgz#3790381734440033e6cb3cee9d92fcfdd69a4d71" + integrity sha512-YvvvQ+IjY09BX7Ab+1pjxkELQsBd4rPhWNw8WLBeFVxu/E7O+n6VYAqNsKdK/a2luFlX/sMpoWdGFfg4HvwdJQ== dependencies: "@babel/code-frame" "^7.12.13" ansi-escapes "^4.3.0" From 13d7cd3bd3b383155938513beedacbb2b5752d31 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Aug 2023 21:58:08 +0000 Subject: [PATCH 257/435] Bump @typescript-eslint/parser from 6.4.0 to 6.4.1 Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 6.4.0 to 6.4.1. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.4.1/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 52 +++++++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 44 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 9741f20cdf..4f756d31d8 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ "@types/react-qr-reader": "^2.1.4", "@types/react-scroll": "^1.8.6", "@typescript-eslint/eslint-plugin": "^6.4.0", - "@typescript-eslint/parser": "^6.4.0", + "@typescript-eslint/parser": "^6.4.1", "@vitejs/plugin-react-swc": "^3.3.2", "eslint": "^8.47.0", "eslint-config-airbnb": "^19.0.4", diff --git a/yarn.lock b/yarn.lock index 61df87d60e..fc977c846a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2197,15 +2197,15 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/parser@^6.4.0": - version "6.4.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.4.0.tgz#47e7c6e22ff1248e8675d95f488890484de67600" - integrity sha512-I1Ah1irl033uxjxO9Xql7+biL3YD7w9IU8zF+xlzD/YxY6a4b7DYA08PXUUCbm2sEljwJF6ERFy2kTGAGcNilg== - dependencies: - "@typescript-eslint/scope-manager" "6.4.0" - "@typescript-eslint/types" "6.4.0" - "@typescript-eslint/typescript-estree" "6.4.0" - "@typescript-eslint/visitor-keys" "6.4.0" +"@typescript-eslint/parser@^6.4.1": + version "6.4.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.4.1.tgz#85ad550bf4ac4aa227504f1becb828f8e46c44e3" + integrity sha512-610G6KHymg9V7EqOaNBMtD1GgpAmGROsmfHJPXNLCU9bfIuLrkdOygltK784F6Crboyd5tBFayPB7Sf0McrQwg== + dependencies: + "@typescript-eslint/scope-manager" "6.4.1" + "@typescript-eslint/types" "6.4.1" + "@typescript-eslint/typescript-estree" "6.4.1" + "@typescript-eslint/visitor-keys" "6.4.1" debug "^4.3.4" "@typescript-eslint/scope-manager@6.4.0": @@ -2216,6 +2216,14 @@ "@typescript-eslint/types" "6.4.0" "@typescript-eslint/visitor-keys" "6.4.0" +"@typescript-eslint/scope-manager@6.4.1": + version "6.4.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.4.1.tgz#4b073a30be2dbe603e44e9ae0cff7e1d3ed19278" + integrity sha512-p/OavqOQfm4/Hdrr7kvacOSFjwQ2rrDVJRPxt/o0TOWdFnjJptnjnZ+sYDR7fi4OimvIuKp+2LCkc+rt9fIW+A== + dependencies: + "@typescript-eslint/types" "6.4.1" + "@typescript-eslint/visitor-keys" "6.4.1" + "@typescript-eslint/type-utils@6.4.0": version "6.4.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.4.0.tgz#c8ac92716ed6a9d5443aa3e342910355b0796ba0" @@ -2231,6 +2239,11 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.4.0.tgz#5b109a59a805f0d8d375895e42d9e5f0037f66ee" integrity sha512-+FV9kVFrS7w78YtzkIsNSoYsnOtrYVnKWSTVXoL1761CsCRv5wpDOINgsXpxD67YCLZtVQekDDyaxfjVWUJmmg== +"@typescript-eslint/types@6.4.1": + version "6.4.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.4.1.tgz#b2c61159f46dda210fed9f117f5d027f65bb5c3b" + integrity sha512-zAAopbNuYu++ijY1GV2ylCsQsi3B8QvfPHVqhGdDcbx/NK5lkqMnCGU53amAjccSpk+LfeONxwzUhDzArSfZJg== + "@typescript-eslint/typescript-estree@6.4.0": version "6.4.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.4.0.tgz#3c58d20632db93fec3d6ab902acbedf593d37276" @@ -2244,6 +2257,19 @@ semver "^7.5.4" ts-api-utils "^1.0.1" +"@typescript-eslint/typescript-estree@6.4.1": + version "6.4.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.4.1.tgz#91ff88101c710adb0f70a317f2f65efa9441da45" + integrity sha512-xF6Y7SatVE/OyV93h1xGgfOkHr2iXuo8ip0gbfzaKeGGuKiAnzS+HtVhSPx8Www243bwlW8IF7X0/B62SzFftg== + dependencies: + "@typescript-eslint/types" "6.4.1" + "@typescript-eslint/visitor-keys" "6.4.1" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.5.4" + ts-api-utils "^1.0.1" + "@typescript-eslint/utils@6.4.0": version "6.4.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.4.0.tgz#23e996b693603c5924b1fbb733cc73196256baa5" @@ -2265,6 +2291,14 @@ "@typescript-eslint/types" "6.4.0" eslint-visitor-keys "^3.4.1" +"@typescript-eslint/visitor-keys@6.4.1": + version "6.4.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.4.1.tgz#e3ccf7b8d42e625946ac5094ed92a405fb4115e0" + integrity sha512-y/TyRJsbZPkJIZQXrHfdnxVnxyKegnpEvnRGNam7s3TRR2ykGefEWOhaef00/UUN3IZxizS7BTO3svd3lCOJRQ== + dependencies: + "@typescript-eslint/types" "6.4.1" + eslint-visitor-keys "^3.4.1" + "@vitejs/plugin-react-swc@^3.3.2": version "3.3.2" resolved "https://registry.yarnpkg.com/@vitejs/plugin-react-swc/-/plugin-react-swc-3.3.2.tgz#34a82c1728066f48a86dfecb2f15df60f89207fb" From b924bd868632042b108021cd4bd26055a7493f92 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Aug 2023 21:57:47 +0000 Subject: [PATCH 258/435] Bump sass from 1.66.0 to 1.66.1 Bumps [sass](https://github.com/sass/dart-sass) from 1.66.0 to 1.66.1. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.66.0...1.66.1) --- updated-dependencies: - dependency-name: sass dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 4f756d31d8..d5b5589729 100644 --- a/package.json +++ b/package.json @@ -85,7 +85,7 @@ "gh-pages": "^6.0.0", "prettier": "^3.0.2", "prettier-plugin-organize-imports": "^3.2.3", - "sass": "^1.66.0", + "sass": "^1.66.1", "typescript": "^5.1.6", "vite": "^4.4.9", "vite-bundle-visualizer": "^0.10.0", diff --git a/yarn.lock b/yarn.lock index fc977c846a..b023134b64 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5367,10 +5367,10 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.1.3" is-regex "^1.1.4" -sass@^1.66.0: - version "1.66.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.66.0.tgz#74728eed49b0e490cd729c233e7f1c6ce356e638" - integrity sha512-C3U+RgpAAlTXULZkWwzfysgbbBBo8IZudNAOJAVBLslFbIaZv4MBPkTqhuvpK4lqgdoFiWhnOGMoV4L1FyOBag== +sass@^1.66.1: + version "1.66.1" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.66.1.tgz#04b51c4671e4650aa393740e66a4e58b44d055b1" + integrity sha512-50c+zTsZOJVgFfTgwwEzkjA3/QACgdNsKueWPyAR0mRINIvLAStVQBbPg14iuqEQ74NPDbXzJARJ/O4SI1zftA== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" From 9d289d2d876d53fae87a7c5f9b9a7fafb17b445c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Aug 2023 21:58:24 +0000 Subject: [PATCH 259/435] Bump framer-motion from 10.16.0 to 10.16.1 Bumps [framer-motion](https://github.com/framer/motion) from 10.16.0 to 10.16.1. - [Changelog](https://github.com/framer/motion/blob/main/CHANGELOG.md) - [Commits](https://github.com/framer/motion/compare/v10.16.0...v10.16.1) --- updated-dependencies: - dependency-name: framer-motion dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index d5b5589729..6761897392 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "buffer": "^6.0.3", "chart.js": "^4.3.3", "date-fns": "^2.29.3", - "framer-motion": "^10.16.0", + "framer-motion": "^10.16.1", "i18next": "^23.4.4", "i18next-browser-languagedetector": "^7.1.0", "lodash.throttle": "^4.1.1", diff --git a/yarn.lock b/yarn.lock index b023134b64..8e6c5b933c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3728,10 +3728,10 @@ formdata-polyfill@^4.0.10: dependencies: fetch-blob "^3.1.2" -framer-motion@^10.16.0: - version "10.16.0" - resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-10.16.0.tgz#c8020d05d98662ba01d294b7d4c2e263073829cf" - integrity sha512-R+88Mkr/1dr7XHjacwptfJyrywRzQ1HZX3YSZtN4tFMBq1O8GGCbDEv31Nf/H08o0hUXLC87GkxsR/1bZgwXfw== +framer-motion@^10.16.1: + version "10.16.1" + resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-10.16.1.tgz#0ff5de554bbb35ee6605357d80f92b27d0271a94" + integrity sha512-K6TXr5mZtitC/dxQCBdg7xzdN0d5IAIrlaqCPKtIQVdzVPGC0qBuJKXggHX1vjnP5gPOFwB1KbCCTWcnFc3kWg== dependencies: tslib "^2.4.0" optionalDependencies: From 9e82dfcbea62515d6b0ffd4763b05495b3d0362e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Aug 2023 22:04:29 +0000 Subject: [PATCH 260/435] Bump @typescript-eslint/eslint-plugin from 6.4.0 to 6.4.1 Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 6.4.0 to 6.4.1. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.4.1/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 76 +++++++++++++++------------------------------------- 2 files changed, 22 insertions(+), 56 deletions(-) diff --git a/package.json b/package.json index 6761897392..941d7b767f 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "@types/react-helmet": "^6.1.6", "@types/react-qr-reader": "^2.1.4", "@types/react-scroll": "^1.8.6", - "@typescript-eslint/eslint-plugin": "^6.4.0", + "@typescript-eslint/eslint-plugin": "^6.4.1", "@typescript-eslint/parser": "^6.4.1", "@vitejs/plugin-react-swc": "^3.3.2", "eslint": "^8.47.0", diff --git a/yarn.lock b/yarn.lock index 8e6c5b933c..d09983ab46 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2180,16 +2180,16 @@ resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.3.tgz#a136f83b0758698df454e328759dbd3d44555311" integrity sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g== -"@typescript-eslint/eslint-plugin@^6.4.0": - version "6.4.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.4.0.tgz#53428b616f7d80fe879f45a08f11cc0f0b62cf13" - integrity sha512-62o2Hmc7Gs3p8SLfbXcipjWAa6qk2wZGChXG2JbBtYpwSRmti/9KHLqfbLs9uDigOexG+3PaQ9G2g3201FWLKg== +"@typescript-eslint/eslint-plugin@^6.4.1": + version "6.4.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.4.1.tgz#bc0c6f000134b53c304ad0bec4ee4753cd3e89d2" + integrity sha512-3F5PtBzUW0dYlq77Lcqo13fv+58KDwUib3BddilE8ajPJT+faGgxmI9Sw+I8ZS22BYwoir9ZhNXcLi+S+I2bkw== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.4.0" - "@typescript-eslint/type-utils" "6.4.0" - "@typescript-eslint/utils" "6.4.0" - "@typescript-eslint/visitor-keys" "6.4.0" + "@typescript-eslint/scope-manager" "6.4.1" + "@typescript-eslint/type-utils" "6.4.1" + "@typescript-eslint/utils" "6.4.1" + "@typescript-eslint/visitor-keys" "6.4.1" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" @@ -2208,14 +2208,6 @@ "@typescript-eslint/visitor-keys" "6.4.1" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.4.0": - version "6.4.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.4.0.tgz#3048e4262ba3eafa4e2e69b08912d9037ec646ae" - integrity sha512-TUS7vaKkPWDVvl7GDNHFQMsMruD+zhkd3SdVW0d7b+7Zo+bd/hXJQ8nsiUZMi1jloWo6c9qt3B7Sqo+flC1nig== - dependencies: - "@typescript-eslint/types" "6.4.0" - "@typescript-eslint/visitor-keys" "6.4.0" - "@typescript-eslint/scope-manager@6.4.1": version "6.4.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.4.1.tgz#4b073a30be2dbe603e44e9ae0cff7e1d3ed19278" @@ -2224,39 +2216,21 @@ "@typescript-eslint/types" "6.4.1" "@typescript-eslint/visitor-keys" "6.4.1" -"@typescript-eslint/type-utils@6.4.0": - version "6.4.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.4.0.tgz#c8ac92716ed6a9d5443aa3e342910355b0796ba0" - integrity sha512-TvqrUFFyGY0cX3WgDHcdl2/mMCWCDv/0thTtx/ODMY1QhEiyFtv/OlLaNIiYLwRpAxAtOLOY9SUf1H3Q3dlwAg== +"@typescript-eslint/type-utils@6.4.1": + version "6.4.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.4.1.tgz#fa21cb13016c8d6f352fe9b2d6c9ab6edc2d1857" + integrity sha512-7ON8M8NXh73SGZ5XvIqWHjgX2f+vvaOarNliGhjrJnv1vdjG0LVIz+ToYfPirOoBi56jxAKLfsLm40+RvxVVXA== dependencies: - "@typescript-eslint/typescript-estree" "6.4.0" - "@typescript-eslint/utils" "6.4.0" + "@typescript-eslint/typescript-estree" "6.4.1" + "@typescript-eslint/utils" "6.4.1" debug "^4.3.4" ts-api-utils "^1.0.1" -"@typescript-eslint/types@6.4.0": - version "6.4.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.4.0.tgz#5b109a59a805f0d8d375895e42d9e5f0037f66ee" - integrity sha512-+FV9kVFrS7w78YtzkIsNSoYsnOtrYVnKWSTVXoL1761CsCRv5wpDOINgsXpxD67YCLZtVQekDDyaxfjVWUJmmg== - "@typescript-eslint/types@6.4.1": version "6.4.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.4.1.tgz#b2c61159f46dda210fed9f117f5d027f65bb5c3b" integrity sha512-zAAopbNuYu++ijY1GV2ylCsQsi3B8QvfPHVqhGdDcbx/NK5lkqMnCGU53amAjccSpk+LfeONxwzUhDzArSfZJg== -"@typescript-eslint/typescript-estree@6.4.0": - version "6.4.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.4.0.tgz#3c58d20632db93fec3d6ab902acbedf593d37276" - integrity sha512-iDPJArf/K2sxvjOR6skeUCNgHR/tCQXBsa+ee1/clRKr3olZjZ/dSkXPZjG6YkPtnW6p5D1egeEPMCW6Gn4yLA== - dependencies: - "@typescript-eslint/types" "6.4.0" - "@typescript-eslint/visitor-keys" "6.4.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" - "@typescript-eslint/typescript-estree@6.4.1": version "6.4.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.4.1.tgz#91ff88101c710adb0f70a317f2f65efa9441da45" @@ -2270,27 +2244,19 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.4.0": - version "6.4.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.4.0.tgz#23e996b693603c5924b1fbb733cc73196256baa5" - integrity sha512-BvvwryBQpECPGo8PwF/y/q+yacg8Hn/2XS+DqL/oRsOPK+RPt29h5Ui5dqOKHDlbXrAeHUTnyG3wZA0KTDxRZw== +"@typescript-eslint/utils@6.4.1": + version "6.4.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.4.1.tgz#81bf62ff0c3119a26c19fab683582e29450717bc" + integrity sha512-F/6r2RieNeorU0zhqZNv89s9bDZSovv3bZQpUNOmmQK1L80/cV4KEu95YUJWi75u5PhboFoKUJBnZ4FQcoqhDw== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.4.0" - "@typescript-eslint/types" "6.4.0" - "@typescript-eslint/typescript-estree" "6.4.0" + "@typescript-eslint/scope-manager" "6.4.1" + "@typescript-eslint/types" "6.4.1" + "@typescript-eslint/typescript-estree" "6.4.1" semver "^7.5.4" -"@typescript-eslint/visitor-keys@6.4.0": - version "6.4.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.4.0.tgz#96a426cdb1add28274abd7a34aefe27f8b7d51ef" - integrity sha512-yJSfyT+uJm+JRDWYRYdCm2i+pmvXJSMtPR9Cq5/XQs4QIgNoLcoRtDdzsLbLsFM/c6um6ohQkg/MLxWvoIndJA== - dependencies: - "@typescript-eslint/types" "6.4.0" - eslint-visitor-keys "^3.4.1" - "@typescript-eslint/visitor-keys@6.4.1": version "6.4.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.4.1.tgz#e3ccf7b8d42e625946ac5094ed92a405fb4115e0" From a8a97245db95e2f43c5632195a4082c6cefb0b43 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 22 Aug 2023 02:49:11 +0100 Subject: [PATCH 261/435] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4e22e03ad7..88904c64cc 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,9 @@ The Polkadot Staking Dashboard is a community-driven project, and we welcome contributions to bolster the dashboard's functionality and features. -- **Web Extensions**: Submit PR to the [Polkadot Cloud repository](https://github.com/paritytech/polkadot-cloud) to add a web extension. The extension will then be available in the `@polkadot-cloud/community` NPM package. Full instructions can be found [here](https://github.com/paritytech/polkadot-cloud/tree/main/packages/community#adding-web-extension-wallets). +- **Web Extensions**: Submit PR to the [Polkadot Cloud repository](https://github.com/paritytech/polkadot-cloud/tree/main/packages/community#adding-web-extension-wallets) to add a web extension. The extension will then be available in the `@polkadot-cloud/community` NPM package. Full instructions can be found [here](https://github.com/paritytech/polkadot-cloud/tree/main/packages/community#adding-web-extension-wallets). -- **Validator Operators**: Submit PR to the [Polkadot Cloud repository](https://github.com/paritytech/polkadot-cloud) to add a validator operator. The operator will then be available in the `@polkadot-cloud/community` NPM package. Full instructions can be found [here](https://github.com/paritytech/polkadot-cloud/tree/main/packages/community#adding-validator-operators). +- **Validator Operators**: Submit PR to the [Polkadot Cloud repository](https://github.com/paritytech/polkadot-cloud/tree/main/packages/community#adding-validator-operators) to add a validator operator. The operator will then be available in the `@polkadot-cloud/community` NPM package. Full instructions can be found [here](https://github.com/paritytech/polkadot-cloud/tree/main/packages/community#adding-validator-operators). ## URL Variable Support From 1dc0b0fecf51141de85dffe8a390423109026625 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 22 Aug 2023 08:57:42 +0700 Subject: [PATCH 262/435] fix up comments --- src/contexts/Staking/index.tsx | 61 +++++++++------------------------- 1 file changed, 15 insertions(+), 46 deletions(-) diff --git a/src/contexts/Staking/index.tsx b/src/contexts/Staking/index.tsx index fda8294da9..deaf183928 100644 --- a/src/contexts/Staking/index.tsx +++ b/src/contexts/Staking/index.tsx @@ -86,7 +86,7 @@ export const StakingProvider = ({ } }, [apiStatus]); - // handle staking metrics subscription + // Handle staking metrics subscription useEffectIgnoreInitial(() => { if (isReady) { unsubscribeMetrics(); @@ -160,7 +160,7 @@ export const StakingProvider = ({ } }; - // subscribe to account ledger + // Multi subscription to staking metrics. const subscribeToStakingkMetrics = async () => { if (api !== null && isReady && isNotZero(activeEra.index)) { const previousEra = activeEra.index.minus(1); @@ -177,7 +177,7 @@ export const StakingProvider = ({ [api.query.staking.payee, activeAccount], [api.query.staking.erasTotalStake, activeEra.index.toString()], ], - (q: AnyApi) => { + (q) => { setStakingMetrics({ totalNominators: new BigNumber(q[0].toString()), totalValidators: new BigNumber(q[1].toString()), @@ -196,7 +196,7 @@ export const StakingProvider = ({ } }; - // process raw payee object from API. payee with `Account` type is returned as an key value pair, + // Process raw payee object from API. payee with `Account` type is returned as an key value pair, // with all others strings. This function handles both cases and formats into a unified structure. const processPayee = (rawPayee: AnyApi) => { const payeeHuman = rawPayee.toHuman(); @@ -220,12 +220,7 @@ export const StakingProvider = ({ return payeeFinal; }; - /* - * Fetches the active nominator set. - * The top 256 nominators get rewarded. Nominators may have their bond spread - * among multiple nominees. - * the minimum nominator bond is calculated by summing a particular bond of a nominator. - */ + // Fetches the active nominator set and metadata around it. const fetchEraStakers = async () => { if (!isReady || activeEra.index.isZero() || !api) { return; @@ -254,15 +249,13 @@ export const StakingProvider = ({ }); }; - /* Sets an account's stored target validators */ + // Sets an account's stored target validators. const setTargets = (value: StakingTargets) => { localStorage.setItem(`${activeAccount}_targets`, JSON.stringify(value)); setTargetsState(value); }; - /* - * Gets the nomination statuses of passed in nominations. - */ + // Gets the nomination statuses of passed in nominations. const getNominationsStatusFromTargets = ( who: MaybeAccount, fromTargets: AnyJson[] @@ -292,10 +285,7 @@ export const StakingProvider = ({ return statuses; }; - /* - * Helper function to determine whether the controller account - * is the same as the stash account. - */ + // Helper function to determine whether the controller account is the same as the stash account. const addressDifferentToStash = (address: MaybeAccount) => { // check if controller is imported. if (!connectAccounts.find((acc) => acc.address === address)) { @@ -304,10 +294,7 @@ export const StakingProvider = ({ return address !== activeAccount && activeAccount !== null; }; - /* - * Helper function to determine whether the controller account - * has been imported. - */ + // Helper function to determine whether the controller account has been imported. const getControllerNotImported = (address: MaybeAccount) => { if (address === null || !activeAccount) { return false; @@ -331,48 +318,30 @@ export const StakingProvider = ({ return !Object.prototype.hasOwnProperty.call(exists, 'signer'); }; - /* - * Helper function to determine whether the active account - * has set a controller account. - */ + // Helper function to determine whether the active account. const hasController = () => getBondedAccount(activeAccount) !== null; - /* - * Helper function to determine whether the active account - * is bonding, or is yet to start. - */ + // Helper function to determine whether the active account is bonding, or is yet to start. const isBonding = () => hasController() && greaterThanZero(getStashLedger(activeAccount).active); - /* - * Helper function to determine whether the active account - * has funds unlocking. - */ + // Helper function to determine whether the active account. const isUnlocking = () => hasController() && getStashLedger(activeAccount).unlocking.length; - /* - * Helper function to determine whether the active account - * is nominating, or is yet to start. - */ + // Helper function to determine whether the active account is nominating, or is yet to start. const isNominating = () => getAccountNominations(activeAccount).length > 0; - /* - * Helper function to determine whether the active account - * is nominating, or is yet to start. - */ + // Helper function to determine whether the active account is nominating, or is yet to start. const inSetup = () => !activeAccount || (!hasController() && !isBonding() && !isNominating() && !isUnlocking()); - /* - * Helper function to get the lowest reward from an active validaor - */ + // Helper function to get the lowest reward from an active validator. const getLowestRewardFromStaker = (address: MaybeAccount) => { const staker = eraStakersRef.current.stakers.find( (s) => s.address === address ); - const lowest = new BigNumber(staker?.lowestReward || 0); const oversubscribed = staker?.oversubscribed || false; From 2d363a50a3332a9b5b40621a3c4a1ab19c52ff92 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 22 Aug 2023 09:31:34 +0700 Subject: [PATCH 263/435] bootstrap payout provider --- src/Providers.tsx | 2 ++ src/contexts/Bonded/index.tsx | 2 +- src/contexts/Payouts/defaults.ts | 8 +++++ src/contexts/Payouts/index.tsx | 56 ++++++++++++++++++++++++++++++++ src/contexts/Payouts/types.ts | 8 +++++ 5 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 src/contexts/Payouts/defaults.ts create mode 100644 src/contexts/Payouts/index.tsx create mode 100644 src/contexts/Payouts/types.ts diff --git a/src/Providers.tsx b/src/Providers.tsx index 8d7509ce1e..cac72dc477 100644 --- a/src/Providers.tsx +++ b/src/Providers.tsx @@ -37,6 +37,7 @@ import { UIProvider } from 'contexts/UI'; import { ValidatorsProvider } from 'contexts/Validators'; import { withProviders } from 'library/Hooks'; import { CanvasProvider } from 'contexts/Canvas'; +import { PayoutsProvider } from 'contexts/Payouts'; // !! Provider order matters. export const Providers = withProviders( @@ -62,6 +63,7 @@ export const Providers = withProviders( TransferOptionsProvider, ValidatorsProvider, FastUnstakeProvider, + PayoutsProvider, UIProvider, PluginsProvider, SetupProvider, diff --git a/src/contexts/Bonded/index.tsx b/src/contexts/Bonded/index.tsx index 38d1ae58f4..d639cb44ff 100644 --- a/src/contexts/Bonded/index.tsx +++ b/src/contexts/Bonded/index.tsx @@ -87,7 +87,7 @@ export const BondedProvider = ({ children }: { children: React.ReactNode }) => { [api.query.staking.bonded, address], [api.query.staking.nominators, address], ], - async ([controller, nominations]): Promise<void> => { + async ([controller, nominations]) => { const newAccount: BondedAccount = { address, }; diff --git a/src/contexts/Payouts/defaults.ts b/src/contexts/Payouts/defaults.ts new file mode 100644 index 0000000000..a4fe91186f --- /dev/null +++ b/src/contexts/Payouts/defaults.ts @@ -0,0 +1,8 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: GPL-3.0-only + +import type { PayoutsContextInterface } from './types'; + +export const defaultPayoutsContext: PayoutsContextInterface = { + payouts: null, +}; diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx new file mode 100644 index 0000000000..f222ab2ae0 --- /dev/null +++ b/src/contexts/Payouts/index.tsx @@ -0,0 +1,56 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: GPL-3.0-only + +import React, { useEffect } from 'react'; +import { useStaking } from 'contexts/Staking'; +import { useApi } from 'contexts/Api'; +import type { Sync, AnyJson } from 'types'; +import { useConnect } from 'contexts/Connect'; +import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import { defaultPayoutsContext } from './defaults'; +import type { PayoutsContextInterface } from './types'; + +export const PayoutsProvider = ({ + children, +}: { + children: React.ReactNode; +}) => { + const { network } = useApi(); + const { isNominating } = useStaking(); + const { activeAccount } = useConnect(); + + // Store active accont's payout state. + const [payouts, setPayouts] = React.useState<AnyJson>(null); + + // Track whether payouts have been fetched. + const payoutsSynced = React.useRef<Sync>('unsynced'); + + // Fetch payouts if active account is nominating. + useEffect(() => { + if (isNominating() && payoutsSynced.current === 'unsynced') { + payoutsSynced.current = 'syncing'; + setPayouts({}); + payoutsSynced.current = 'synced'; + } + }, [isNominating()]); + + // Clear payout state on network / active account change. + useEffectIgnoreInitial(() => { + if (payouts !== null) { + setPayouts(null); + payoutsSynced.current = 'unsynced'; + } + }, [network, activeAccount]); + + return ( + <PayoutsContext.Provider value={{ payouts }}> + {children} + </PayoutsContext.Provider> + ); +}; + +export const PayoutsContext = React.createContext<PayoutsContextInterface>( + defaultPayoutsContext +); + +export const useBonded = () => React.useContext(PayoutsContext); diff --git a/src/contexts/Payouts/types.ts b/src/contexts/Payouts/types.ts new file mode 100644 index 0000000000..3ac7cae4ce --- /dev/null +++ b/src/contexts/Payouts/types.ts @@ -0,0 +1,8 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: GPL-3.0-only + +import type { AnyJson } from 'types'; + +export type PayoutsContextInterface = { + payouts: AnyJson; +}; From 96c989e4f2049d9fe37bd69d7d8bfb26db36c3b2 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 22 Aug 2023 09:48:40 +0700 Subject: [PATCH 264/435] init fetchPendingPayouts, add todos --- src/contexts/Payouts/index.tsx | 42 +++++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 6 deletions(-) diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index f222ab2ae0..7c64d007c9 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -4,9 +4,10 @@ import React, { useEffect } from 'react'; import { useStaking } from 'contexts/Staking'; import { useApi } from 'contexts/Api'; -import type { Sync, AnyJson } from 'types'; +import type { AnyApi, Sync, AnyJson } from 'types'; import { useConnect } from 'contexts/Connect'; import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import { useNetworkMetrics } from 'contexts/Network'; import { defaultPayoutsContext } from './defaults'; import type { PayoutsContextInterface } from './types'; @@ -15,9 +16,10 @@ export const PayoutsProvider = ({ }: { children: React.ReactNode; }) => { - const { network } = useApi(); + const { api, network } = useApi(); const { isNominating } = useStaking(); const { activeAccount } = useConnect(); + const { activeEra } = useNetworkMetrics(); // Store active accont's payout state. const [payouts, setPayouts] = React.useState<AnyJson>(null); @@ -25,14 +27,42 @@ export const PayoutsProvider = ({ // Track whether payouts have been fetched. const payoutsSynced = React.useRef<Sync>('unsynced'); + // Fetch pending payouts. + const fetchPendingPayouts = async () => { + if (!api) return; + + // Fetch last era payouts. + // TODO: Loop through last `MaxSupportedPayoutEras`. + // TODO: clear local storage eras that are older than `MaxSupportedPayoutEras`. + const lastEra = activeEra.index.minus(1); + + // TODO: only fetch if not in local storage. + const lastEraPayout = await api.query.staking.erasRewardPoints<AnyApi>( + lastEra.toString() + ); + + // eslint-disable-next-line + const { total, individual } = lastEraPayout; + + // TODO: store this era payout in local storage. + // TODO: Check if active account had a payout in this era. If so, store in Payouts and in local stoarage. + + // TODO: commit all payouts to state once all synced. + setPayouts({}); + payoutsSynced.current = 'synced'; + }; + // Fetch payouts if active account is nominating. useEffect(() => { - if (isNominating() && payoutsSynced.current === 'unsynced') { + if ( + isNominating() && + !activeEra.index.isZero() && + payoutsSynced.current === 'unsynced' + ) { payoutsSynced.current = 'syncing'; - setPayouts({}); - payoutsSynced.current = 'synced'; + fetchPendingPayouts(); } - }, [isNominating()]); + }, [isNominating(), activeEra]); // Clear payout state on network / active account change. useEffectIgnoreInitial(() => { From b44fdc46d5dfa276a2825944209efbaa086317cd Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 22 Aug 2023 10:10:36 +0700 Subject: [PATCH 265/435] construct payout call loop --- src/contexts/Payouts/defaults.ts | 2 ++ src/contexts/Payouts/index.tsx | 29 +++++++++++++++++------------ 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/contexts/Payouts/defaults.ts b/src/contexts/Payouts/defaults.ts index a4fe91186f..2f134def81 100644 --- a/src/contexts/Payouts/defaults.ts +++ b/src/contexts/Payouts/defaults.ts @@ -6,3 +6,5 @@ import type { PayoutsContextInterface } from './types'; export const defaultPayoutsContext: PayoutsContextInterface = { payouts: null, }; + +export const MaxSupportedPayoutEras = 7; diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index 7c64d007c9..62be2cfaed 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -8,7 +8,7 @@ import type { AnyApi, Sync, AnyJson } from 'types'; import { useConnect } from 'contexts/Connect'; import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import { useNetworkMetrics } from 'contexts/Network'; -import { defaultPayoutsContext } from './defaults'; +import { MaxSupportedPayoutEras, defaultPayoutsContext } from './defaults'; import type { PayoutsContextInterface } from './types'; export const PayoutsProvider = ({ @@ -31,21 +31,26 @@ export const PayoutsProvider = ({ const fetchPendingPayouts = async () => { if (!api) return; - // Fetch last era payouts. - // TODO: Loop through last `MaxSupportedPayoutEras`. // TODO: clear local storage eras that are older than `MaxSupportedPayoutEras`. - const lastEra = activeEra.index.minus(1); - // TODO: only fetch if not in local storage. - const lastEraPayout = await api.query.staking.erasRewardPoints<AnyApi>( - lastEra.toString() - ); + // Fetch last era payouts. + const startEra = activeEra?.index.minus(1).toNumber() || 1; + const finishEra = Math.max(startEra - MaxSupportedPayoutEras, 1); + const calls = []; + for (let i = startEra; i >= finishEra; i--) { + // TODO: only fetch eras that are not in local storage. + calls.push(api.query.staking.erasRewardPoints<AnyApi>(i)); + } - // eslint-disable-next-line - const { total, individual } = lastEraPayout; + const eraPayouts = await Promise.all(calls); + for (const eraPayout of eraPayouts) { + // eslint-disable-next-line + const { total, individual } = eraPayout; - // TODO: store this era payout in local storage. - // TODO: Check if active account had a payout in this era. If so, store in Payouts and in local stoarage. + // TODO: store this era payout in local storage. + + // TODO: Check if active account had a payout in this era. If so, store in Payouts and in local stoarage. + } // TODO: commit all payouts to state once all synced. setPayouts({}); From a69266546e737aa86f7fdf2938b01fa5fc49ccf9 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 22 Aug 2023 11:13:13 +0700 Subject: [PATCH 266/435] fast unstake exposures -> processEraForExposure --- src/contexts/FastUnstake/index.tsx | 12 ++++++------ src/contexts/Staking/index.tsx | 4 ++-- src/workers/stakers.ts | 16 ++++++++++------ 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/src/contexts/FastUnstake/index.tsx b/src/contexts/FastUnstake/index.tsx index c8dec05ccf..23e2264b65 100644 --- a/src/contexts/FastUnstake/index.tsx +++ b/src/contexts/FastUnstake/index.tsx @@ -158,15 +158,15 @@ export const FastUnstakeProvider = ({ // handle worker message on completed exposure check. worker.onmessage = (message: MessageEvent) => { if (message) { - // ensure correct task received + // ensure correct task received. const { data } = message; const { task } = data; - if (task !== 'process_fast_unstake_era') { + if (task !== 'processEraForExposure') { return; } // ensure still same conditions. - const { where, who } = data; - if (where !== network.name || who !== activeAccount) { + const { networkName, who } = data; + if (networkName !== network.name || who !== activeAccount) { // checkpoint: conditions have changed, cancel fast unstake. return; } @@ -250,10 +250,10 @@ export const FastUnstakeProvider = ({ val: val.toHuman(), })); worker.postMessage({ - task: 'process_fast_unstake_era', + task: 'processEraForExposure', currentEra: era.toString(), who: activeAccount, - where: network.name, + networkName: network.name, exposures, }); }; diff --git a/src/contexts/Staking/index.tsx b/src/contexts/Staking/index.tsx index deaf183928..83875884f4 100644 --- a/src/contexts/Staking/index.tsx +++ b/src/contexts/Staking/index.tsx @@ -129,7 +129,7 @@ export const StakingProvider = ({ if (message) { const { data }: { data: ResponseInitialiseExposures } = message; const { task } = data; - if (task !== 'initialise_exposures') { + if (task !== 'processExposures') { return; } const { @@ -240,7 +240,7 @@ export const StakingProvider = ({ // worker to calculate stats worker.postMessage({ - task: 'initialise_exposures', + task: 'processExposures', activeAccount, units: network.units, exposures, diff --git a/src/workers/stakers.ts b/src/workers/stakers.ts index 4d3cc8c674..13bd5c06fe 100644 --- a/src/workers/stakers.ts +++ b/src/workers/stakers.ts @@ -20,11 +20,11 @@ ctx.addEventListener('message', (event: AnyJson) => { const { task } = data; let message: AnyJson = {}; switch (task) { - case 'initialise_exposures': + case 'processExposures': message = processExposures(data as DataInitialiseExposures); break; - case 'process_fast_unstake_era': - message = processFastUnstakeEra(data); + case 'processEraForExposure': + message = processEraForExposure(data); break; default: } @@ -35,20 +35,23 @@ ctx.addEventListener('message', (event: AnyJson) => { // // checks if an account has been exposed in an // era. -const processFastUnstakeEra = (data: AnyJson) => { - const { currentEra, exposures, task, where, who } = data; +const processEraForExposure = (data: AnyJson) => { + const { currentEra, exposures, task, networkName, who } = data; let exposed = false; // check exposed as validator or nominator. + let exposedValidator: string | null = null; exposures.every(({ keys, val }: any) => { const validator = keys[1]; if (validator === who) { + exposedValidator = validator; exposed = true; return false; } const others = val?.others ?? []; const inOthers = others.find((o: AnyJson) => o.who === who); if (inOthers) { + exposedValidator = validator; exposed = true; return false; } @@ -58,8 +61,9 @@ const processFastUnstakeEra = (data: AnyJson) => { return { currentEra, exposed, + exposedValidator, task, - where, + networkName, who, }; }; From 130916a4bcdc79f1c389a7fa13b29a8f87f81699 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 22 Aug 2023 11:41:22 +0700 Subject: [PATCH 267/435] add fetchExposureData layer --- src/contexts/FastUnstake/index.tsx | 14 +++-- src/contexts/Payouts/index.tsx | 83 +++++++++++++++++++++++++++--- src/workers/stakers.ts | 9 ++-- 3 files changed, 86 insertions(+), 20 deletions(-) diff --git a/src/contexts/FastUnstake/index.tsx b/src/contexts/FastUnstake/index.tsx index 23e2264b65..3f9289e599 100644 --- a/src/contexts/FastUnstake/index.tsx +++ b/src/contexts/FastUnstake/index.tsx @@ -147,11 +147,11 @@ export const FastUnstakeProvider = ({ } }; }, [ + inSetup(), isReady, - activeAccount, network.name, + activeAccount, activeEra.index, - inSetup(), fastUnstakeErasToCheckPerBlock, ]); @@ -240,15 +240,13 @@ export const FastUnstakeProvider = ({ const checkEra = async (era: BigNumber) => { if (!api) return; - // checkpoint: checking era: era - - const exposuresRaw = await api.query.staking.erasStakers.entries( - era.toString() - ); - const exposures = exposuresRaw.map(([keys, val]: AnyApi) => ({ + const exposures = ( + await api.query.staking.erasStakers.entries(era.toString()) + ).map(([keys, val]: AnyApi) => ({ keys: keys.toHuman(), val: val.toHuman(), })); + worker.postMessage({ task: 'processEraForExposure', currentEra: era.toString(), diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index 62be2cfaed..ed27803f86 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -8,9 +8,12 @@ import type { AnyApi, Sync, AnyJson } from 'types'; import { useConnect } from 'contexts/Connect'; import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import { useNetworkMetrics } from 'contexts/Network'; +import Worker from 'workers/stakers?worker'; import { MaxSupportedPayoutEras, defaultPayoutsContext } from './defaults'; import type { PayoutsContextInterface } from './types'; +const worker = new Worker(); + export const PayoutsProvider = ({ children, }: { @@ -27,17 +30,50 @@ export const PayoutsProvider = ({ // Track whether payouts have been fetched. const payoutsSynced = React.useRef<Sync>('unsynced'); + // Calculate eras to check for pending payouts. + const getErasToCheck = () => { + const start = activeEra?.index.minus(1).toNumber() || 1; + const end = Math.max(start - MaxSupportedPayoutEras, 1); + return { + start, + end, + }; + }; + + // Fetch exposure data required for pending payouts. + const fetchExposureData = async () => { + if (!api || !activeAccount) return; + + const calls = []; + const { start, end } = getErasToCheck(); + for (let i = start; i >= end; i--) { + // TODO: only fetch eras that are not in local storage. + calls.push(api.query.staking.erasStakers.entries(i)); + } + + const eraExposures = await Promise.all(calls); + for (const eraExposure of eraExposures) { + // eslint-disable-next-line + const exposures = eraExposure.map(([keys, val]: AnyApi) => ({ + keys: keys.toHuman(), + val: val.toHuman(), + })); + // TODO: store exposure data in local storage. + } + }; + // Fetch pending payouts. const fetchPendingPayouts = async () => { - if (!api) return; + if (!api || !activeAccount) return; + + // TODO: clear local storage eras that are older than `HistoryDepth`. - // TODO: clear local storage eras that are older than `MaxSupportedPayoutEras`. + // Get eras required for payout calculation. + const { start, end } = getErasToCheck(); - // Fetch last era payouts. - const startEra = activeEra?.index.minus(1).toNumber() || 1; - const finishEra = Math.max(startEra - MaxSupportedPayoutEras, 1); + // Accumulate needed calls for reward data. const calls = []; - for (let i = startEra; i >= finishEra; i--) { + for (let i = start; i >= end; i--) { // TODO: only fetch eras that are not in local storage. calls.push(api.query.staking.erasRewardPoints<AnyApi>(i)); } @@ -48,15 +84,48 @@ export const PayoutsProvider = ({ const { total, individual } = eraPayout; // TODO: store this era payout in local storage. + // const activeAccountPayout = rmCommas(individual[activeAccount] || 0); + // console.log(activeAccountPayout); // TODO: Check if active account had a payout in this era. If so, store in Payouts and in local stoarage. + // do this next. } // TODO: commit all payouts to state once all synced. setPayouts({}); + }; + + // Start pending payout process. + const startPendingPayoutProcess = async () => { + // Populate localStorage with the needed exposure data. + await fetchExposureData(); + // Fetch reward data and determine whether there are pending payouts. + await fetchPendingPayouts(); payoutsSynced.current = 'synced'; }; + // Handle worker message on completed exposure check. + worker.onmessage = (message: MessageEvent) => { + if (message) { + // ensure correct task received. + const { data } = message; + const { task } = data; + if (task !== 'processEraForExposure') { + return; + } + // ensure still same conditions. + const { networkName, who } = data; + if (networkName !== network.name || who !== activeAccount) { + return; + } + + // eslint-disable-next-line + const { currentEra, exposed, exposeValidator } = data; + + // TODO: process received era exposure data, set in local storage. + } + }; + // Fetch payouts if active account is nominating. useEffect(() => { if ( @@ -65,7 +134,7 @@ export const PayoutsProvider = ({ payoutsSynced.current === 'unsynced' ) { payoutsSynced.current = 'syncing'; - fetchPendingPayouts(); + startPendingPayoutProcess(); } }, [isNominating(), activeEra]); diff --git a/src/workers/stakers.ts b/src/workers/stakers.ts index 13bd5c06fe..c2e2f96c7d 100644 --- a/src/workers/stakers.ts +++ b/src/workers/stakers.ts @@ -31,16 +31,15 @@ ctx.addEventListener('message', (event: AnyJson) => { postMessage({ task, ...message }); }); -// process fast unstake era exposures. -// -// checks if an account has been exposed in an -// era. +// Process era exposures and return if an account was exposed, along with the validator they backed. const processEraForExposure = (data: AnyJson) => { const { currentEra, exposures, task, networkName, who } = data; let exposed = false; - // check exposed as validator or nominator. + // If exposed, the validator that was backed. let exposedValidator: string | null = null; + + // Check exposed as validator or nominator. exposures.every(({ keys, val }: any) => { const validator = keys[1]; if (validator === who) { From 67626e2cb275e3169ed1c1fb9dcfb7f8c78e9a7a Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 22 Aug 2023 11:47:01 +0700 Subject: [PATCH 268/435] validateMeta -> validateLocalExposure to Validators --- src/contexts/FastUnstake/index.tsx | 65 ++++-------------------------- src/contexts/Validators/Utils.ts | 55 ++++++++++++++++++++++++- 2 files changed, 61 insertions(+), 59 deletions(-) diff --git a/src/contexts/FastUnstake/index.tsx b/src/contexts/FastUnstake/index.tsx index 3f9289e599..3e9f57c715 100644 --- a/src/contexts/FastUnstake/index.tsx +++ b/src/contexts/FastUnstake/index.tsx @@ -17,6 +17,7 @@ import type { AnyApi, AnyJson, MaybeAccount } from 'types'; import Worker from 'workers/stakers?worker'; import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import { useNominationStatus } from 'library/Hooks/useNominationStatus'; +import { validateLocalExposure } from 'contexts/Validators/Utils'; import { defaultFastUnstakeContext, defaultMeta } from './defaults'; import type { FastUnstakeContextInterface, @@ -300,15 +301,13 @@ export const FastUnstakeProvider = ({ // gets any existing fast unstake metadata for an account. const getLocalMeta = (): LocalMeta | null => { - let localMeta: AnyJson = localStorage.getItem(getLocalkey(activeAccount)); + const localMeta: AnyJson = localStorage.getItem(getLocalkey(activeAccount)); + if (!localMeta) return null; - if (!localMeta) { - return null; - } - - localMeta = JSON.parse(localMeta); - - const localMetaValidated = validateMeta(localMeta); + const localMetaValidated = validateLocalExposure( + JSON.parse(localMeta), + checkToEra + ); if (!localMetaValidated) { // remove if not valid. localStorage.removeItem(getLocalkey(activeAccount)); @@ -322,56 +321,6 @@ export const FastUnstakeProvider = ({ return localMetaValidated; }; - // validates stored fast unstake metadata for an account. - const validateMeta = (localMeta: AnyJson): LocalMeta | null => { - const localIsExposed = localMeta?.isExposed ?? null; - let localChecked = localMeta?.checked ?? null; - - // check types saved - if (typeof localIsExposed !== 'boolean' || !Array.isArray(localChecked)) { - return null; - } - // check checked only contains numbers - const checkedNumeric = localChecked.every( - (e: AnyJson) => typeof e === 'number' - ); - if (!checkedNumeric) { - return null; - } - - // remove any expired eras and sort highest first - localChecked = localChecked - .filter((e: number) => checkToEra.isLessThan(e)) - .sort((a: number, b: number) => b - a); - - // if no remaining eras, invalid - if (!localChecked.length) { - return null; - } - - // check if highest -> lowest are decremented, no missing eras. - let i = 0; - let prev = 0; - const noMissingEras = localChecked.every((e: number) => { - i++; - if (i === 1) { - prev = e; - return true; - } - const p = prev; - prev = e; - if (e === p - 1) return true; - return false; - }); - if (!noMissingEras) { - return null; - } - return { - isExposed: localIsExposed, - checked: localChecked, - }; - }; - return ( <FastUnstakeContext.Provider value={{ diff --git a/src/contexts/Validators/Utils.ts b/src/contexts/Validators/Utils.ts index 8ec03c99f6..7a60ba4119 100644 --- a/src/contexts/Validators/Utils.ts +++ b/src/contexts/Validators/Utils.ts @@ -1,8 +1,10 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +import type BigNumber from 'bignumber.js'; +import type { LocalMeta } from 'contexts/FastUnstake/types'; import type { LocalExposureData, Validator } from 'contexts/Validators/types'; -import type { NetworkName } from 'types'; +import type { AnyJson, NetworkName } from 'types'; // Get favorite validators from local storage. export const getLocalFavorites = (network: NetworkName) => { @@ -39,3 +41,54 @@ export const setEraLocalExposures = ( }) ); }; + +// Validate local exposure metadata. +export const validateLocalExposure = ( + localMeta: AnyJson, + endEra: BigNumber +): LocalMeta | null => { + const localIsExposed = localMeta?.isExposed ?? null; + let localChecked = localMeta?.checked ?? null; + + // check types saved. + if (typeof localIsExposed !== 'boolean' || !Array.isArray(localChecked)) { + return null; + } + // check checked only contains numbers. + const checkedNumeric = localChecked.every((e) => typeof e === 'number'); + if (!checkedNumeric) { + return null; + } + + // remove any expired eras and sort highest first. + localChecked = localChecked + .filter((e: number) => endEra.isLessThan(e)) + .sort((a: number, b: number) => b - a); + + // if no remaining eras, invalid. + if (!localChecked.length) { + return null; + } + + // check if highest -> lowest are decremented, no missing eras. + let i = 0; + let prev = 0; + const noMissingEras = localChecked.every((e: number) => { + i++; + if (i === 1) { + prev = e; + return true; + } + const p = prev; + prev = e; + if (e === p - 1) return true; + return false; + }); + if (!noMissingEras) { + return null; + } + return { + isExposed: localIsExposed, + checked: localChecked, + }; +}; From d77073e5f3d8d602609c26b181b4044e7571c66c Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 22 Aug 2023 12:06:16 +0700 Subject: [PATCH 269/435] add checkExposures, comments --- src/contexts/FastUnstake/index.tsx | 2 ++ src/contexts/Payouts/index.tsx | 28 ++++++++++++++++++++++++---- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/src/contexts/FastUnstake/index.tsx b/src/contexts/FastUnstake/index.tsx index 3e9f57c715..204383dfe1 100644 --- a/src/contexts/FastUnstake/index.tsx +++ b/src/contexts/FastUnstake/index.tsx @@ -248,6 +248,8 @@ export const FastUnstakeProvider = ({ val: val.toHuman(), })); + // TODO: store `exposures` into local `exposures` data. + worker.postMessage({ task: 'processEraForExposure', currentEra: era.toString(), diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index ed27803f86..ee49557f8f 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -40,6 +40,20 @@ export const PayoutsProvider = ({ }; }; + // Calls service worker to check exppsures for given era. + // eslint-disable-next-line + const checkExposures = async (era: number, exposures: AnyJson) => { + if (!api) return; + + worker.postMessage({ + task: 'processEraForExposure', + currentEra: String(era), + who: activeAccount, + networkName: network.name, + exposures, + }); + }; + // Fetch exposure data required for pending payouts. const fetchExposureData = async () => { if (!api || !activeAccount) return; @@ -52,22 +66,24 @@ export const PayoutsProvider = ({ } const eraExposures = await Promise.all(calls); + + // TODO: store all exposure data in local storage. for (const eraExposure of eraExposures) { // eslint-disable-next-line const exposures = eraExposure.map(([keys, val]: AnyApi) => ({ keys: keys.toHuman(), val: val.toHuman(), })); - // TODO: store exposure data in local storage. } + + // get first era exposures in localStorage from `start` era. + // checkExposures(start, exposures); }; // Fetch pending payouts. const fetchPendingPayouts = async () => { if (!api || !activeAccount) return; - // TODO: clear local storage eras that are older than `HistoryDepth`. - // Get eras required for payout calculation. const { start, end } = getErasToCheck(); @@ -84,8 +100,8 @@ export const PayoutsProvider = ({ const { total, individual } = eraPayout; // TODO: store this era payout in local storage. + // const activeAccountPayout = rmCommas(individual[activeAccount] || 0); - // console.log(activeAccountPayout); // TODO: Check if active account had a payout in this era. If so, store in Payouts and in local stoarage. // do this next. @@ -99,7 +115,9 @@ export const PayoutsProvider = ({ const startPendingPayoutProcess = async () => { // Populate localStorage with the needed exposure data. await fetchExposureData(); + // Fetch reward data and determine whether there are pending payouts. + // TODO: move this to `useEffect` once all required workers have completed. await fetchPendingPayouts(); payoutsSynced.current = 'synced'; }; @@ -123,6 +141,8 @@ export const PayoutsProvider = ({ const { currentEra, exposed, exposeValidator } = data; // TODO: process received era exposure data, set in local storage. + // TODO: if there are more exposures to process, check next era. + // checkExposures(nextEra, exposures); } }; From c78cd16a1a841a7c8b3d49b8740fe245375b0757 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 22 Aug 2023 13:28:37 +0700 Subject: [PATCH 270/435] remove useTxMeta from Modal context --- src/contexts/Modal/index.tsx | 7 ------ src/modals/BalanceTest/index.tsx | 9 ++++++-- src/modals/Bond/index.tsx | 10 +++++---- src/modals/ChangeNominations/index.tsx | 14 +++++++----- src/modals/ChangePoolRoles/index.tsx | 11 ++++++--- src/modals/ClaimReward/index.tsx | 8 +++---- src/modals/JoinPool/index.tsx | 7 +++--- src/modals/ManageFastUnstake/index.tsx | 19 +++++++++------- src/modals/ManagePool/index.tsx | 10 ++++++++- src/modals/Nominate/index.tsx | 8 +++++-- src/modals/NominateFromFavorites/index.tsx | 12 +++++----- src/modals/NominatePool/index.tsx | 11 +++++---- src/modals/Unbond/index.tsx | 26 ++++++++++++---------- src/modals/UnbondPoolMember/index.tsx | 11 +++++---- src/modals/UnlockChunks/index.tsx | 8 ++++--- src/modals/Unstake/index.tsx | 10 ++++----- src/modals/UpdateController/index.tsx | 9 ++++++-- src/modals/UpdatePayee/index.tsx | 11 ++++++--- src/modals/WithdrawPoolMember/index.tsx | 8 +++++-- 19 files changed, 125 insertions(+), 84 deletions(-) diff --git a/src/contexts/Modal/index.tsx b/src/contexts/Modal/index.tsx index 01967e810f..5acecf9380 100644 --- a/src/contexts/Modal/index.tsx +++ b/src/contexts/Modal/index.tsx @@ -4,7 +4,6 @@ import { setStateWithRef } from '@polkadot-cloud/utils'; import type { RefObject } from 'react'; import React, { useRef, useState } from 'react'; -import { useTxMeta } from 'contexts/TxMeta'; import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import { defaultModalContext } from './defaults'; import type { @@ -15,8 +14,6 @@ import type { } from './types'; export const ModalProvider = ({ children }: { children: React.ReactNode }) => { - const { notEnoughFunds } = useTxMeta(); - // Store the modal configuration options. const [options, setOptionsState] = useState<ModalOptions>({ modal: '', @@ -41,10 +38,6 @@ export const ModalProvider = ({ children }: { children: React.ReactNode }) => { // Store the ref to the modal height container. Used for controlling whether height is transitionable. const [heightRef, setHeightRef] = useState<RefObject<HTMLDivElement>>(); - useEffectIgnoreInitial(() => { - setResize(); - }, [notEnoughFunds]); - useEffectIgnoreInitial(() => { const h = modalRef?.current?.clientHeight || 0; if (statusRef.current === 'opening') { diff --git a/src/modals/BalanceTest/index.tsx b/src/modals/BalanceTest/index.tsx index 7442d74cc6..b077433cfe 100644 --- a/src/modals/BalanceTest/index.tsx +++ b/src/modals/BalanceTest/index.tsx @@ -6,16 +6,19 @@ import { unitToPlanck } from '@polkadot-cloud/utils'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; import { useModal } from 'contexts/Modal'; +import { useTxMeta } from 'contexts/TxMeta'; import { useBatchCall } from 'library/Hooks/useBatchCall'; import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; +import { useEffect } from 'react'; export const BalanceTest = () => { - const { newBatchCall } = useBatchCall(); const { api, network } = useApi(); const { activeAccount } = useConnect(); - const { setStatus: setModalStatus } = useModal(); + const { notEnoughFunds } = useTxMeta(); + const { newBatchCall } = useBatchCall(); + const { setStatus: setModalStatus, setResize } = useModal(); const { units } = network; // tx to submit @@ -54,6 +57,8 @@ export const BalanceTest = () => { callbackInBlock: () => {}, }); + useEffect(() => setResize(), [notEnoughFunds]); + return ( <> <Close /> diff --git a/src/modals/Bond/index.tsx b/src/modals/Bond/index.tsx index d7fd76a3d8..e98a740e80 100644 --- a/src/modals/Bond/index.tsx +++ b/src/modals/Bond/index.tsx @@ -18,16 +18,18 @@ import { useSignerWarnings } from 'library/Hooks/useSignerWarnings'; import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; +import { useTxMeta } from 'contexts/TxMeta'; export const Bond = () => { const { t } = useTranslation('modals'); const { api, network } = useApi(); - const { units } = network; - const { setStatus: setModalStatus, config, setResize } = useModal(); const { activeAccount } = useConnect(); - const { feeReserve, getTransferOptions } = useTransferOptions(); + const { notEnoughFunds } = useTxMeta(); const { selectedActivePool } = useActivePools(); const { getSignerWarnings } = useSignerWarnings(); + const { feeReserve, getTransferOptions } = useTransferOptions(); + const { setStatus: setModalStatus, config, setResize } = useModal(); + const { units } = network; const { bondFor } = config; const isStaking = bondFor === 'nominator'; const isPooling = bondFor === 'pool'; @@ -129,7 +131,7 @@ export const Bond = () => { // modal resize on form update useEffect(() => { setResize(); - }, [bond, bondValid, feedbackErrors.length, warnings.length]); + }, [bond, bondValid, notEnoughFunds, feedbackErrors.length, warnings.length]); return ( <> diff --git a/src/modals/ChangeNominations/index.tsx b/src/modals/ChangeNominations/index.tsx index 78ecccc305..cb6316e468 100644 --- a/src/modals/ChangeNominations/index.tsx +++ b/src/modals/ChangeNominations/index.tsx @@ -18,17 +18,18 @@ import { useSignerWarnings } from 'library/Hooks/useSignerWarnings'; import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; +import { useTxMeta } from 'contexts/TxMeta'; export const ChangeNominations = () => { const { t } = useTranslation('modals'); const { api } = useApi(); const { activeAccount } = useConnect(); + const { notEnoughFunds } = useTxMeta(); + const { getSignerWarnings } = useSignerWarnings(); const { getBondedAccount, getAccountNominations } = useBonded(); - const { setStatus: setModalStatus, config } = useModal(); + const { setStatus: setModalStatus, config, setResize } = useModal(); const { poolNominations, isNominator, isOwner, selectedActivePool } = useActivePools(); - const { getSignerWarnings } = useSignerWarnings(); - const { nominations: newNominations, provider, bondFor } = config; const isPool = bondFor === 'pool'; @@ -56,9 +57,10 @@ export const ChangeNominations = () => { if (isPool) { isValid = (isNominator() || isOwner()) ?? false; } - useEffect(() => { - setValid(isValid); - }, [isValid]); + + useEffect(() => setResize(), [notEnoughFunds]); + + useEffect(() => setValid(isValid), [isValid]); // tx to submit const getTx = () => { diff --git a/src/modals/ChangePoolRoles/index.tsx b/src/modals/ChangePoolRoles/index.tsx index 6bf44a7b7a..f976ad638a 100644 --- a/src/modals/ChangePoolRoles/index.tsx +++ b/src/modals/ChangePoolRoles/index.tsx @@ -10,16 +10,19 @@ import { useBondedPools } from 'contexts/Pools/BondedPools'; import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; +import { useTxMeta } from 'contexts/TxMeta'; +import { useEffect } from 'react'; import { RoleChange } from './RoleChange'; import { Wrapper } from './Wrapper'; export const ChangePoolRoles = () => { const { t } = useTranslation('modals'); const { api } = useApi(); - const { setStatus: setModalStatus } = useModal(); - const { replacePoolRoles } = useBondedPools(); const { activeAccount } = useConnect(); - const { config } = useModal(); + const { notEnoughFunds } = useTxMeta(); + const { config, setResize } = useModal(); + const { replacePoolRoles } = useBondedPools(); + const { setStatus: setModalStatus } = useModal(); const { id: poolId, roleEdits } = config; // tx to submit @@ -53,6 +56,8 @@ export const ChangePoolRoles = () => { }, }); + useEffect(() => setResize(), [notEnoughFunds]); + return ( <> <Close /> diff --git a/src/modals/ClaimReward/index.tsx b/src/modals/ClaimReward/index.tsx index 0730ca136e..eadc28994c 100644 --- a/src/modals/ClaimReward/index.tsx +++ b/src/modals/ClaimReward/index.tsx @@ -15,14 +15,16 @@ import { useSignerWarnings } from 'library/Hooks/useSignerWarnings'; import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; +import { useTxMeta } from 'contexts/TxMeta'; export const ClaimReward = () => { const { t } = useTranslation('modals'); const { api, network } = useApi(); const { activeAccount } = useConnect(); - const { setStatus: setModalStatus, config, setResize } = useModal(); + const { notEnoughFunds } = useTxMeta(); const { selectedActivePool } = useActivePools(); const { getSignerWarnings } = useSignerWarnings(); + const { setStatus: setModalStatus, config, setResize } = useModal(); const { units, unit } = network; let { pendingRewards } = selectedActivePool || {}; @@ -76,9 +78,7 @@ export const ClaimReward = () => { warnings.push(`${t('noRewards')}`); } - useEffect(() => { - setResize(); - }, [warnings.length]); + useEffect(() => setResize(), [notEnoughFunds, warnings.length]); return ( <> diff --git a/src/modals/JoinPool/index.tsx b/src/modals/JoinPool/index.tsx index 68c349a412..843df8b88e 100644 --- a/src/modals/JoinPool/index.tsx +++ b/src/modals/JoinPool/index.tsx @@ -27,14 +27,15 @@ import { SubmitTx } from 'library/SubmitTx'; export const JoinPool = () => { const { t } = useTranslation('modals'); const { api, network } = useApi(); - const { txFees } = useTxMeta(); const { activeAccount } = useConnect(); const { newBatchCall } = useBatchCall(); const { setActiveAccountSetup } = useSetup(); + const { txFees, notEnoughFunds } = useTxMeta(); const { getSignerWarnings } = useSignerWarnings(); const { getTransferOptions } = useTransferOptions(); const { queryPoolMember, addToPoolMembers } = usePoolMembers(); const { setStatus: setModalStatus, config, setResize } = useModal(); + const { id: poolId, setActiveTab } = config; const { units } = network; @@ -63,9 +64,7 @@ export const JoinPool = () => { const [feedbackErrors, setFeedbackErrors] = useState<string[]>([]); // modal resize on form update - useEffect(() => { - setResize(); - }, [bond, feedbackErrors.length]); + useEffect(() => setResize(), [bond, notEnoughFunds, feedbackErrors.length]); // tx to submit const getTx = () => { diff --git a/src/modals/ManageFastUnstake/index.tsx b/src/modals/ManageFastUnstake/index.tsx index 2376b2d28b..1a98ab3d8b 100644 --- a/src/modals/ManageFastUnstake/index.tsx +++ b/src/modals/ManageFastUnstake/index.tsx @@ -24,18 +24,20 @@ import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { useUnstaking } from 'library/Hooks/useUnstaking'; import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; +import { useTxMeta } from 'contexts/TxMeta'; export const ManageFastUnstake = () => { const { t } = useTranslation('modals'); - const { api, consts, network } = useApi(); const { activeAccount } = useConnect(); + const { notEnoughFunds } = useTxMeta(); const { getBondedAccount } = useBonded(); - const { activeEra, metrics } = useNetworkMetrics(); - const { isExposed, counterForQueue, queueDeposit, meta } = useFastUnstake(); - const { setResize, setStatus } = useModal(); - const { feeReserve, getTransferOptions } = useTransferOptions(); + const { api, consts, network } = useApi(); const { isFastUnstaking } = useUnstaking(); + const { setResize, setStatus } = useModal(); const { getSignerWarnings } = useSignerWarnings(); + const { activeEra, metrics } = useNetworkMetrics(); + const { feeReserve, getTransferOptions } = useTransferOptions(); + const { isExposed, counterForQueue, queueDeposit, meta } = useFastUnstake(); const { bondDuration, fastUnstakeDeposit } = consts; const { fastUnstakeErasToCheckPerBlock } = metrics; @@ -71,9 +73,10 @@ export const ManageFastUnstake = () => { feeReserve, ]); - useEffect(() => { - setResize(); - }, [isExposed, queueDeposit, isFastUnstaking]); + useEffect( + () => setResize(), + [notEnoughFunds, isExposed, queueDeposit, isFastUnstaking] + ); // tx to submit const getTx = () => { diff --git a/src/modals/ManagePool/index.tsx b/src/modals/ManagePool/index.tsx index c089840b8a..dd51b7c79c 100644 --- a/src/modals/ManagePool/index.tsx +++ b/src/modals/ManagePool/index.tsx @@ -11,12 +11,14 @@ import { useTranslation } from 'react-i18next'; import { useModal } from 'contexts/Modal'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { Title } from 'library/Modal/Title'; +import { useTxMeta } from 'contexts/TxMeta'; import { Forms } from './Forms'; import { Tasks } from './Tasks'; export const ManagePool = () => { const { t } = useTranslation('modals'); const { setModalHeight } = useModal(); + const { notEnoughFunds } = useTxMeta(); const { isOwner, selectedActivePool } = useActivePools(); // modal task @@ -44,7 +46,13 @@ export const ManagePool = () => { height += formsRef.current?.clientHeight || 0; } setModalHeight(height); - }, [section, task, calculateHeight, selectedActivePool?.bondedPool?.state]); + }, [ + section, + task, + notEnoughFunds, + calculateHeight, + selectedActivePool?.bondedPool?.state, + ]); return ( <ModalSection type="carousel"> diff --git a/src/modals/Nominate/index.tsx b/src/modals/Nominate/index.tsx index 800a894ac3..214439adf0 100644 --- a/src/modals/Nominate/index.tsx +++ b/src/modals/Nominate/index.tsx @@ -16,16 +16,18 @@ import { useSignerWarnings } from 'library/Hooks/useSignerWarnings'; import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; +import { useTxMeta } from 'contexts/TxMeta'; export const Nominate = () => { const { t } = useTranslation('modals'); const { api, network } = useApi(); const { activeAccount } = useConnect(); - const { targets, staking } = useStaking(); + const { notEnoughFunds } = useTxMeta(); const { getBondedAccount } = useBonded(); const { getStashLedger } = useBalances(); - const { setStatus: setModalStatus } = useModal(); + const { targets, staking } = useStaking(); const { getSignerWarnings } = useSignerWarnings(); + const { setStatus: setModalStatus, setResize } = useModal(); const { units, unit } = network; const { minNominatorBond } = staking; @@ -48,6 +50,8 @@ export const Nominate = () => { ); }, [targets]); + useEffect(() => setResize(), [notEnoughFunds]); + // tx to submit const getTx = () => { let tx = null; diff --git a/src/modals/NominateFromFavorites/index.tsx b/src/modals/NominateFromFavorites/index.tsx index 089191986f..c31f1a8111 100644 --- a/src/modals/NominateFromFavorites/index.tsx +++ b/src/modals/NominateFromFavorites/index.tsx @@ -21,19 +21,21 @@ import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { Title } from 'library/Modal/Title'; import { SubmitTx } from 'library/SubmitTx'; import { ValidatorList } from 'library/ValidatorList'; +import { useTxMeta } from 'contexts/TxMeta'; import { ListWrapper } from './Wrappers'; export const NominateFromFavorites = () => { const { t } = useTranslation('modals'); const { consts, api } = useApi(); const { activeAccount } = useConnect(); + const { notEnoughFunds } = useTxMeta(); const { getBondedAccount } = useBonded(); - const { config, setStatus: setModalStatus, setResize } = useModal(); const { favoritesList } = useValidators(); - const { selectedActivePool, isNominator, isOwner } = useActivePools(); - const controller = getBondedAccount(activeAccount); const { getSignerWarnings } = useSignerWarnings(); + const { config, setStatus: setModalStatus, setResize } = useModal(); + const { selectedActivePool, isNominator, isOwner } = useActivePools(); + const controller = getBondedAccount(activeAccount); const { maxNominations } = consts; const { bondFor, nominations } = config; const signingAccount = bondFor === 'pool' ? activeAccount : controller; @@ -66,9 +68,7 @@ export const NominateFromFavorites = () => { // valid to submit transaction const [valid, setValid] = useState<boolean>(false); - useEffect(() => { - setResize(); - }, [selectedFavorites]); + useEffect(() => setResize(), [notEnoughFunds, selectedFavorites]); // ensure selected list is within limits useEffect(() => { diff --git a/src/modals/NominatePool/index.tsx b/src/modals/NominatePool/index.tsx index ff8064f0ec..bc011f2c68 100644 --- a/src/modals/NominatePool/index.tsx +++ b/src/modals/NominatePool/index.tsx @@ -13,15 +13,17 @@ import { useSignerWarnings } from 'library/Hooks/useSignerWarnings'; import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; +import { useTxMeta } from 'contexts/TxMeta'; export const NominatePool = () => { const { t } = useTranslation('modals'); const { api } = useApi(); - const { setStatus: setModalStatus } = useModal(); + const { setStatus: setModalStatus, setResize } = useModal(); const { activeAccount } = useConnect(); const { selectedActivePool, isOwner, isNominator, targets } = useActivePools(); const { getSignerWarnings } = useSignerWarnings(); + const { notEnoughFunds } = useTxMeta(); const { nominations } = targets; @@ -33,9 +35,6 @@ export const NominatePool = () => { // ensure selected roles are valid const isValid = (poolId !== null && isNominator() && nominations.length > 0) ?? false; - useEffect(() => { - setValid(isValid); - }, [isValid]); // tx to submit const getTx = () => { @@ -48,6 +47,10 @@ export const NominatePool = () => { return tx; }; + useEffect(() => setValid(isValid), [isValid]); + + useEffect(() => setResize(), [notEnoughFunds]); + const submitExtrinsic = useSubmitExtrinsic({ tx: getTx(), from: activeAccount, diff --git a/src/modals/Unbond/index.tsx b/src/modals/Unbond/index.tsx index 0c452054cf..b250a5b1b7 100644 --- a/src/modals/Unbond/index.tsx +++ b/src/modals/Unbond/index.tsx @@ -28,20 +28,21 @@ import { StaticNote } from 'modals/Utils/StaticNote'; export const Unbond = () => { const { t } = useTranslation('modals'); - const { api, network, consts } = useApi(); - const { units } = network; - const { setStatus: setModalStatus, setResize, config } = useModal(); - const { activeAccount } = useConnect(); + const { txFees } = useTxMeta(); const { staking } = useStaking(); - const { getBondedAccount } = useBonded(); - const { bondFor } = config; const { stats } = usePoolsConfig(); - const { isDepositor, selectedActivePool } = useActivePools(); - const { txFees } = useTxMeta(); - const { getTransferOptions } = useTransferOptions(); + const { activeAccount } = useConnect(); + const { notEnoughFunds } = useTxMeta(); + const { getBondedAccount } = useBonded(); + const { api, network, consts } = useApi(); const { erasToSeconds } = useErasToTimeLeft(); const { getSignerWarnings } = useSignerWarnings(); + const { getTransferOptions } = useTransferOptions(); + const { isDepositor, selectedActivePool } = useActivePools(); + const { setStatus: setModalStatus, setResize, config } = useModal(); + const { units } = network; + const { bondFor } = config; const controller = getBondedAccount(activeAccount); const { minNominatorBond: minNominatorBondBn } = staking; const { minJoinBond: minJoinBondBn, minCreateBond: minCreateBondBn } = stats; @@ -168,9 +169,10 @@ export const Unbond = () => { } // modal resize on form update - useEffect(() => { - setResize(); - }, [bond, feedbackErrors.length, warnings.length]); + useEffect( + () => setResize(), + [bond, notEnoughFunds, feedbackErrors.length, warnings.length] + ); return ( <> diff --git a/src/modals/UnbondPoolMember/index.tsx b/src/modals/UnbondPoolMember/index.tsx index c128d4da20..21d6f4d442 100644 --- a/src/modals/UnbondPoolMember/index.tsx +++ b/src/modals/UnbondPoolMember/index.tsx @@ -23,14 +23,16 @@ import { timeleftAsString } from 'library/Hooks/useTimeLeft/utils'; import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; import { StaticNote } from 'modals/Utils/StaticNote'; +import { useTxMeta } from 'contexts/TxMeta'; export const UnbondPoolMember = () => { const { t } = useTranslation('modals'); - const { api, network, consts } = useApi(); - const { setStatus: setModalStatus, setResize, config } = useModal(); const { activeAccount } = useConnect(); + const { notEnoughFunds } = useTxMeta(); + const { api, network, consts } = useApi(); const { erasToSeconds } = useErasToTimeLeft(); const { getSignerWarnings } = useSignerWarnings(); + const { setStatus: setModalStatus, setResize, config } = useModal(); const { units } = network; const { bondDuration } = consts; @@ -62,10 +64,7 @@ export const UnbondPoolMember = () => { setBondValid(isValid); }, [freeToUnbond.toString(), isValid]); - // modal resize on form update - useEffect(() => { - setResize(); - }, [bond]); + useEffect(() => setResize(), [bond, notEnoughFunds]); // tx to submit const getTx = () => { diff --git a/src/modals/UnlockChunks/index.tsx b/src/modals/UnlockChunks/index.tsx index b2ae99d072..204bdfc9be 100644 --- a/src/modals/UnlockChunks/index.tsx +++ b/src/modals/UnlockChunks/index.tsx @@ -14,16 +14,18 @@ import { useConnect } from 'contexts/Connect'; import { useModal } from 'contexts/Modal'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { Title } from 'library/Modal/Title'; +import { useTxMeta } from 'contexts/TxMeta'; import { Forms } from './Forms'; import { Overview } from './Overview'; export const UnlockChunks = () => { const { t } = useTranslation('modals'); const { activeAccount } = useConnect(); - const { config, setModalHeight } = useModal(); - const { bondFor } = config || {}; + const { notEnoughFunds } = useTxMeta(); const { getStashLedger } = useBalances(); + const { config, setModalHeight } = useModal(); const { getPoolUnlocking } = useActivePools(); + const { bondFor } = config || {}; // get the unlocking per bondFor const getUnlocking = () => { @@ -75,7 +77,7 @@ export const UnlockChunks = () => { // resize modal on state change useEffect(() => { setModalHeight(getModalHeight()); - }, [task, sectionRef.current, unlocking]); + }, [task, notEnoughFunds, sectionRef.current, unlocking]); // resize this modal on window resize useEffect(() => { diff --git a/src/modals/Unstake/index.tsx b/src/modals/Unstake/index.tsx index 0b6d79f070..e9b22995aa 100644 --- a/src/modals/Unstake/index.tsx +++ b/src/modals/Unstake/index.tsx @@ -24,19 +24,21 @@ import { timeleftAsString } from 'library/Hooks/useTimeLeft/utils'; import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; import { StaticNote } from 'modals/Utils/StaticNote'; +import { useTxMeta } from 'contexts/TxMeta'; export const Unstake = () => { const { t } = useTranslation('modals'); const { newBatchCall } = useBatchCall(); - const { api, network, consts } = useApi(); + const { notEnoughFunds } = useTxMeta(); const { activeAccount } = useConnect(); + const { api, network, consts } = useApi(); const { erasToSeconds } = useErasToTimeLeft(); const { getSignerWarnings } = useSignerWarnings(); const { getTransferOptions } = useTransferOptions(); const { setStatus: setModalStatus, setResize } = useModal(); const { getBondedAccount, getAccountNominations } = useBonded(); - const { units } = network; + const { units } = network; const controller = getBondedAccount(activeAccount); const nominations = getAccountNominations(activeAccount); const { bondDuration } = consts; @@ -71,9 +73,7 @@ export const Unstake = () => { }, [freeToUnbond.toString(), isValid]); // modal resize on form update - useEffect(() => { - setResize(); - }, [bond]); + useEffect(() => setResize(), [bond, notEnoughFunds]); // tx to submit const getTx = () => { diff --git a/src/modals/UpdateController/index.tsx b/src/modals/UpdateController/index.tsx index efdd26d153..8ea287dc93 100644 --- a/src/modals/UpdateController/index.tsx +++ b/src/modals/UpdateController/index.tsx @@ -12,16 +12,19 @@ import { useSignerWarnings } from 'library/Hooks/useSignerWarnings'; import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; +import { useTxMeta } from 'contexts/TxMeta'; +import { useEffect } from 'react'; import { Switch } from './Switch'; import { Wrapper } from './Wrapper'; export const UpdateController = () => { const { t } = useTranslation('modals'); const { api } = useApi(); - const { setStatus: setModalStatus } = useModal(); - const { activeAccount, getAccount } = useConnect(); + const { notEnoughFunds } = useTxMeta(); const { getBondedAccount } = useBonded(); const { getSignerWarnings } = useSignerWarnings(); + const { activeAccount, getAccount } = useConnect(); + const { setStatus: setModalStatus, setResize } = useModal(); const controller = getBondedAccount(activeAccount); const account = getAccount(controller); @@ -36,6 +39,8 @@ export const UpdateController = () => { return tx; }; + useEffect(() => setResize(), [notEnoughFunds]); + // handle extrinsic const submitExtrinsic = useSubmitExtrinsic({ tx: getTx(), diff --git a/src/modals/UpdatePayee/index.tsx b/src/modals/UpdatePayee/index.tsx index e9cbf47691..88efd4b034 100644 --- a/src/modals/UpdatePayee/index.tsx +++ b/src/modals/UpdatePayee/index.tsx @@ -21,17 +21,20 @@ import { SelectItems } from 'library/SelectItems'; import { SelectItem } from 'library/SelectItems/Item'; import { SubmitTx } from 'library/SubmitTx'; import type { MaybeAccount } from 'types'; +import { useTxMeta } from 'contexts/TxMeta'; export const UpdatePayee = () => { const { t } = useTranslation('modals'); const { api } = useApi(); + const { staking } = useStaking(); const { activeAccount } = useConnect(); + const { notEnoughFunds } = useTxMeta(); const { getBondedAccount } = useBonded(); - const { setStatus: setModalStatus } = useModal(); - const controller = getBondedAccount(activeAccount); - const { staking } = useStaking(); const { getPayeeItems } = usePayeeConfig(); const { getSignerWarnings } = useSignerWarnings(); + const { setStatus: setModalStatus, setResize } = useModal(); + + const controller = getBondedAccount(activeAccount); const { payee } = staking; const DefaultSelected: PayeeConfig = { @@ -115,6 +118,8 @@ export const UpdatePayee = () => { ); }, []); + useEffect(() => setResize(), [notEnoughFunds]); + const warnings = getSignerWarnings( activeAccount, true, diff --git a/src/modals/WithdrawPoolMember/index.tsx b/src/modals/WithdrawPoolMember/index.tsx index 534447bfde..92e079233c 100644 --- a/src/modals/WithdrawPoolMember/index.tsx +++ b/src/modals/WithdrawPoolMember/index.tsx @@ -4,7 +4,7 @@ import { ActionItem, ModalPadding, ModalWarnings } from '@polkadot-cloud/react'; import { isNotZero, planckToUnit, rmCommas } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; -import { useState } from 'react'; +import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; @@ -16,15 +16,17 @@ import { useSignerWarnings } from 'library/Hooks/useSignerWarnings'; import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; +import { useTxMeta } from 'contexts/TxMeta'; export const WithdrawPoolMember = () => { const { t } = useTranslation('modals'); const { api, network, consts } = useApi(); const { activeAccount } = useConnect(); - const { setStatus: setModalStatus, config } = useModal(); + const { setStatus: setModalStatus, config, setResize } = useModal(); const { activeEra } = useNetworkMetrics(); const { removePoolMember } = usePoolMembers(); const { getSignerWarnings } = useSignerWarnings(); + const { notEnoughFunds } = useTxMeta(); const { member, who } = config; const { historyDepth } = consts; @@ -76,6 +78,8 @@ export const WithdrawPoolMember = () => { }, }); + useEffect(() => setResize(), [notEnoughFunds]); + const warnings = getSignerWarnings( activeAccount, false, From 15a5e194c109d974fc43e3b6fd95759924d4bf63 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 22 Aug 2023 14:05:21 +0700 Subject: [PATCH 271/435] design Overlay provider with modal --- src/Providers.tsx | 2 + src/contexts/Overlay/defaults.tsx | 23 ++++ src/contexts/Overlay/index.tsx | 170 ++++++++++++++++++++++++++++++ src/contexts/Overlay/types.ts | 53 ++++++++++ 4 files changed, 248 insertions(+) create mode 100644 src/contexts/Overlay/defaults.tsx create mode 100644 src/contexts/Overlay/index.tsx create mode 100644 src/contexts/Overlay/types.ts diff --git a/src/Providers.tsx b/src/Providers.tsx index 8d7509ce1e..5a53ca7d52 100644 --- a/src/Providers.tsx +++ b/src/Providers.tsx @@ -37,6 +37,7 @@ import { UIProvider } from 'contexts/UI'; import { ValidatorsProvider } from 'contexts/Validators'; import { withProviders } from 'library/Hooks'; import { CanvasProvider } from 'contexts/Canvas'; +import { OverlayProvider } from 'contexts/Overlay'; // !! Provider order matters. export const Providers = withProviders( @@ -70,6 +71,7 @@ export const Providers = withProviders( TooltipProvider, TxMetaProvider, ExtrinsicsProvider, + OverlayProvider, ModalProvider, CanvasProvider, PromptProvider, diff --git a/src/contexts/Overlay/defaults.tsx b/src/contexts/Overlay/defaults.tsx new file mode 100644 index 0000000000..c38afb3688 --- /dev/null +++ b/src/contexts/Overlay/defaults.tsx @@ -0,0 +1,23 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ + +import type { OverlayContextInterface } from './types'; + +export const defaultOverlayContext: OverlayContextInterface = { + status: 'closed', + setStatus: () => {}, + openOverlay: (type, config) => {}, + modal: { + config: {}, + height: 0, + resize: 0, + maxHeight: 0, + setResize: () => {}, + setHeight: () => {}, + setRef: (ref) => {}, + setHeightRef: (height) => {}, + replaceWith: (config) => {}, + openWith: (config) => {}, + }, +}; diff --git a/src/contexts/Overlay/index.tsx b/src/contexts/Overlay/index.tsx new file mode 100644 index 0000000000..45ba8e9ada --- /dev/null +++ b/src/contexts/Overlay/index.tsx @@ -0,0 +1,170 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: GPL-3.0-only + +import type { RefObject } from 'react'; +import React, { useRef, useState } from 'react'; +import { setStateWithRef } from '@polkadot-cloud/utils'; +import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import type { + CanvasConfig, + ModalConfig, + ModalStatus, + OverlayContextInterface, + OverlayStatus, + OverlayType, + PromptConfig, +} from './types'; +import { defaultOverlayContext } from './defaults'; + +export const OverlayProvider = ({ + children, +}: { + children: React.ReactNode; +}) => { + // Store the overlay status. + const [status, setStatusState] = useState<OverlayStatus>('closed'); + const statusRef = useRef(status); + + // Store the modal status. + const [modalStatus, setModalStatusState] = useState<ModalStatus>('closed'); + const modalStatusRef = useRef(modalStatus); + + // Store modal configuration. + const [modalConfig, setModalConfigState] = useState<ModalConfig>({ + key: '', + config: {}, + size: 'large', + }); + const modalConfigRef = useRef(modalConfig); + + // Store the modal's current height. + const [modalHeight, setModalHeightState] = useState<number>(0); + + // Store the modal's resize counter. + const [modalResize, setModalResizeState] = useState<number>(0); + + // Store the ref to the modal height container. Used for controlling whether height is transitionable. + const [modalRef, setModalRef] = useState<RefObject<HTMLDivElement>>(); + + // Store the ref to the modal height container. Used for controlling whether height is transitionable. + const [modalHeightRef, setModalHeightRef] = + useState<RefObject<HTMLDivElement>>(); + + // The maximum allowed height for the modal. + const modalMaxHeight = window.innerHeight * 0.8; + + const setStatus = (newStatus: OverlayStatus) => { + setStateWithRef(newStatus, setStatusState, statusRef); + }; + + const setModalConfig = (config: ModalConfig) => { + setStateWithRef(config, setModalConfigState, modalConfigRef); + }; + + const setModalStatus = (newStatus: ModalStatus) => { + setStateWithRef(newStatus, setModalStatusState, modalStatusRef); + }; + + const openModalWith = ({ key, size = 'large', config = {} }: ModalConfig) => { + setModalConfig({ key, size, config }); + setModalStatus('opening'); + }; + + // Closes one modal and opens another. + const replaceModalWith = ({ + key, + size = 'large', + config = {}, + }: ModalConfig) => { + setModalStatus('replacing'); + setTimeout(() => { + openModalWith({ + key, + size, + config, + }); + }, 10); + }; + + const setModalHeight = (height: number, transition: boolean = true) => { + if (statusRef.current === 'closed') return; + + // Ensrue transition class is removed if not transitioning. Otherwise, ensure class exists. + if (transition) transitionOn(); + else transitionOff(); + + // If transitioning, ensure the class exists. + if (transition) transitionOn(); + + // Limit maximum height to 80% of window height, and set. + const maxHeight = window.innerHeight * 0.8; + height = height > maxHeight ? maxHeight : height; + setModalHeightState(height); + + // If transitioning, remove after enough time to finish transition. + if (transition) setTimeout(() => transitionOff(), 500); + }; + + // Increments modal resize to trigger a height transition. + const setModalResize = () => { + transitionOn(); + setModalResizeState(modalResize + 1); + setTimeout(() => transitionOff(), 500); + }; + + // Helper to set the transition height class of the modal. + const transitionOn = () => + modalHeightRef?.current?.classList.add('transition-height'); + + // Helper to remove the transition height class of the modal. + const transitionOff = () => + modalHeightRef?.current?.classList.remove('transition-height'); + + const openOverlay = ( + type: OverlayType, + config: ModalConfig | CanvasConfig | PromptConfig + ) => { + setStatus('open'); + if (type === 'modal') openModalWith(config as ModalConfig); + }; + + useEffectIgnoreInitial(() => { + const height = modalRef?.current?.clientHeight || 0; + if (modalStatusRef.current === 'opening') { + setModalHeight(height, false); + if (height > 0) { + setModalStatus('open'); + } + } + }, [statusRef.current, modalRef?.current]); + + return ( + <OverlayContext.Provider + value={{ + status: statusRef.current, + setStatus, + openOverlay, + modal: { + config: modalConfigRef.current, + height: modalHeight, + resize: modalResize, + maxHeight: modalMaxHeight, + setResize: setModalResize, + setHeight: setModalHeight, + setRef: setModalRef, + setHeightRef: setModalHeightRef, + openWith: openModalWith, + replaceWith: replaceModalWith, + }, + }} + > + {children} + </OverlayContext.Provider> + ); +}; + +export const OverlayContext = React.createContext<OverlayContextInterface>( + defaultOverlayContext +); + +export const useOverlay = () => React.useContext(OverlayContext); diff --git a/src/contexts/Overlay/types.ts b/src/contexts/Overlay/types.ts new file mode 100644 index 0000000000..bd9f17a8ba --- /dev/null +++ b/src/contexts/Overlay/types.ts @@ -0,0 +1,53 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: GPL-3.0-only + +import type { RefObject } from 'react'; +import type { AnyJson } from 'types'; + +export interface OverlayContextInterface { + status: OverlayStatus; + setStatus: (status: OverlayStatus) => void; + openOverlay: ( + ype: OverlayType, + config: ModalConfig | CanvasConfig | PromptConfig + ) => void; + modal: { + config: AnyJson; + height: number; + resize: number; + maxHeight: number; + setResize: () => void; + setHeight: (v: number) => void; + setRef: (v: RefObject<HTMLDivElement>) => void; + setHeightRef: (v: RefObject<HTMLDivElement>) => void; + replaceWith: (config: ModalConfig) => void; + openWith: (config: ModalConfig) => void; + }; +} + +export type OverlayType = 'modal' | 'canvas' | 'prompt'; + +export type OverlayStatus = 'open' | 'closed'; + +export type ModalStatus = + | 'closed' + | 'opening' + | 'open' + | 'closing' + | 'replacing'; + +export type ConfigOptions = Record<string, AnyJson>; + +export type ModalSize = 'small' | 'large' | 'xl'; + +export interface ModalConfig { + key: string; + config?: ConfigOptions; + size?: ModalSize; +} + +// TODO: implement +export type CanvasConfig = AnyJson; + +// TODO: implement +export type PromptConfig = AnyJson; From 392a3daf073854ce8613f606e4580d6b49c110d8 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 22 Aug 2023 14:08:58 +0700 Subject: [PATCH 272/435] amend names --- src/contexts/Overlay/defaults.tsx | 4 ++-- src/contexts/Overlay/index.tsx | 16 ++++++---------- src/contexts/Overlay/types.ts | 4 ++-- 3 files changed, 10 insertions(+), 14 deletions(-) diff --git a/src/contexts/Overlay/defaults.tsx b/src/contexts/Overlay/defaults.tsx index c38afb3688..72787882c3 100644 --- a/src/contexts/Overlay/defaults.tsx +++ b/src/contexts/Overlay/defaults.tsx @@ -17,7 +17,7 @@ export const defaultOverlayContext: OverlayContextInterface = { setHeight: () => {}, setRef: (ref) => {}, setHeightRef: (height) => {}, - replaceWith: (config) => {}, - openWith: (config) => {}, + replaceModal: (config) => {}, + openModal: (config) => {}, }, }; diff --git a/src/contexts/Overlay/index.tsx b/src/contexts/Overlay/index.tsx index 45ba8e9ada..d16966cecb 100644 --- a/src/contexts/Overlay/index.tsx +++ b/src/contexts/Overlay/index.tsx @@ -65,20 +65,16 @@ export const OverlayProvider = ({ setStateWithRef(newStatus, setModalStatusState, modalStatusRef); }; - const openModalWith = ({ key, size = 'large', config = {} }: ModalConfig) => { + const openModal = ({ key, size = 'large', config = {} }: ModalConfig) => { setModalConfig({ key, size, config }); setModalStatus('opening'); }; // Closes one modal and opens another. - const replaceModalWith = ({ - key, - size = 'large', - config = {}, - }: ModalConfig) => { + const replaceModal = ({ key, size = 'large', config = {} }: ModalConfig) => { setModalStatus('replacing'); setTimeout(() => { - openModalWith({ + openModal({ key, size, config, @@ -125,7 +121,7 @@ export const OverlayProvider = ({ config: ModalConfig | CanvasConfig | PromptConfig ) => { setStatus('open'); - if (type === 'modal') openModalWith(config as ModalConfig); + if (type === 'modal') openModal(config as ModalConfig); }; useEffectIgnoreInitial(() => { @@ -153,8 +149,8 @@ export const OverlayProvider = ({ setHeight: setModalHeight, setRef: setModalRef, setHeightRef: setModalHeightRef, - openWith: openModalWith, - replaceWith: replaceModalWith, + openModal, + replaceModal, }, }} > diff --git a/src/contexts/Overlay/types.ts b/src/contexts/Overlay/types.ts index bd9f17a8ba..cbf4d970ba 100644 --- a/src/contexts/Overlay/types.ts +++ b/src/contexts/Overlay/types.ts @@ -20,8 +20,8 @@ export interface OverlayContextInterface { setHeight: (v: number) => void; setRef: (v: RefObject<HTMLDivElement>) => void; setHeightRef: (v: RefObject<HTMLDivElement>) => void; - replaceWith: (config: ModalConfig) => void; - openWith: (config: ModalConfig) => void; + replaceModal: (config: ModalConfig) => void; + openModal: (config: ModalConfig) => void; }; } From 17c5707486dc0fcd9361f484c5db99d55aa2b2ad Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 22 Aug 2023 14:16:07 +0700 Subject: [PATCH 273/435] add setModalStatus to provider --- src/contexts/Overlay/defaults.tsx | 1 + src/contexts/Overlay/index.tsx | 1 + src/contexts/Overlay/types.ts | 1 + 3 files changed, 3 insertions(+) diff --git a/src/contexts/Overlay/defaults.tsx b/src/contexts/Overlay/defaults.tsx index 72787882c3..dff84f0961 100644 --- a/src/contexts/Overlay/defaults.tsx +++ b/src/contexts/Overlay/defaults.tsx @@ -17,6 +17,7 @@ export const defaultOverlayContext: OverlayContextInterface = { setHeight: () => {}, setRef: (ref) => {}, setHeightRef: (height) => {}, + setModalStatus: (status) => {}, replaceModal: (config) => {}, openModal: (config) => {}, }, diff --git a/src/contexts/Overlay/index.tsx b/src/contexts/Overlay/index.tsx index d16966cecb..ccca7a39c2 100644 --- a/src/contexts/Overlay/index.tsx +++ b/src/contexts/Overlay/index.tsx @@ -149,6 +149,7 @@ export const OverlayProvider = ({ setHeight: setModalHeight, setRef: setModalRef, setHeightRef: setModalHeightRef, + setModalStatus, openModal, replaceModal, }, diff --git a/src/contexts/Overlay/types.ts b/src/contexts/Overlay/types.ts index cbf4d970ba..1445a2b756 100644 --- a/src/contexts/Overlay/types.ts +++ b/src/contexts/Overlay/types.ts @@ -20,6 +20,7 @@ export interface OverlayContextInterface { setHeight: (v: number) => void; setRef: (v: RefObject<HTMLDivElement>) => void; setHeightRef: (v: RefObject<HTMLDivElement>) => void; + setModalStatus: (status: ModalStatus) => void; replaceModal: (config: ModalConfig) => void; openModal: (config: ModalConfig) => void; }; From 547aa080db85441ed2028efd64a970ce9bf1ca00 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 22 Aug 2023 14:17:50 +0700 Subject: [PATCH 274/435] add status to provider --- src/contexts/Overlay/defaults.tsx | 1 + src/contexts/Overlay/index.tsx | 1 + src/contexts/Overlay/types.ts | 1 + 3 files changed, 3 insertions(+) diff --git a/src/contexts/Overlay/defaults.tsx b/src/contexts/Overlay/defaults.tsx index dff84f0961..08f037ff11 100644 --- a/src/contexts/Overlay/defaults.tsx +++ b/src/contexts/Overlay/defaults.tsx @@ -9,6 +9,7 @@ export const defaultOverlayContext: OverlayContextInterface = { setStatus: () => {}, openOverlay: (type, config) => {}, modal: { + status: 'closed', config: {}, height: 0, resize: 0, diff --git a/src/contexts/Overlay/index.tsx b/src/contexts/Overlay/index.tsx index ccca7a39c2..5362ab3dfc 100644 --- a/src/contexts/Overlay/index.tsx +++ b/src/contexts/Overlay/index.tsx @@ -141,6 +141,7 @@ export const OverlayProvider = ({ setStatus, openOverlay, modal: { + status: modalStatusRef.current, config: modalConfigRef.current, height: modalHeight, resize: modalResize, diff --git a/src/contexts/Overlay/types.ts b/src/contexts/Overlay/types.ts index 1445a2b756..2d64274e9d 100644 --- a/src/contexts/Overlay/types.ts +++ b/src/contexts/Overlay/types.ts @@ -12,6 +12,7 @@ export interface OverlayContextInterface { config: ModalConfig | CanvasConfig | PromptConfig ) => void; modal: { + status: ModalStatus; config: AnyJson; height: number; resize: number; From 6d4616ea06ed1fb9c438c7f8283948c57b42f14a Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 22 Aug 2023 14:59:33 +0700 Subject: [PATCH 275/435] use Overlay context for modals --- src/Providers.tsx | 2 - src/contexts/Modal/defaults.ts | 22 --- src/contexts/Modal/index.tsx | 148 ------------------ src/contexts/Modal/types.ts | 43 ----- src/contexts/Overlay/index.tsx | 14 +- src/contexts/Overlay/types.ts | 2 +- src/library/AccountInput/index.tsx | 4 +- src/library/GenerateNominations/index.tsx | 14 +- src/library/Headers/Connect.tsx | 15 +- src/library/Import/NoAccounts.tsx | 6 +- src/library/ListItem/Labels/JoinPool.tsx | 14 +- src/library/ListItem/Labels/Metrics.tsx | 13 +- src/library/Modal/Close.tsx | 6 +- src/library/Modal/Title.tsx | 6 +- src/library/Overlay/index.tsx | 4 +- src/library/Pool/index.tsx | 13 +- src/library/SideMenu/index.tsx | 15 +- src/library/SubmitTx/ManualSign/Ledger.tsx | 4 +- src/library/SubmitTx/index.tsx | 6 +- .../ValidatorList/Validator/Default.tsx | 13 +- src/library/ValidatorList/index.tsx | 6 +- src/modals/AccountPoolRoles/index.tsx | 10 +- src/modals/Accounts/Account.tsx | 6 +- src/modals/Accounts/index.tsx | 6 +- src/modals/BalanceTest/index.tsx | 4 +- src/modals/Bio/index.tsx | 5 +- src/modals/Bond/index.tsx | 10 +- src/modals/ChangeNominations/index.tsx | 10 +- src/modals/ChangePoolRoles/index.tsx | 11 +- src/modals/ChooseLanguage/index.tsx | 6 +- src/modals/ClaimReward/index.tsx | 10 +- src/modals/Connect/Ledger.tsx | 8 +- src/modals/Connect/ReadOnly.tsx | 6 +- src/modals/Connect/Vault.tsx | 6 +- src/modals/Connect/index.tsx | 11 +- src/modals/DismissTips/index.tsx | 6 +- src/modals/ImportLedger/Manage.tsx | 6 +- src/modals/ImportLedger/Reset.tsx | 6 +- src/modals/ImportLedger/Splash.tsx | 6 +- src/modals/ImportLedger/index.tsx | 4 +- src/modals/ImportVault/index.tsx | 8 +- src/modals/JoinPool/index.tsx | 10 +- src/modals/ManageFastUnstake/index.tsx | 6 +- .../ManagePool/Forms/ClaimCommission.tsx | 4 +- src/modals/ManagePool/Forms/Commission.tsx | 4 +- src/modals/ManagePool/Forms/LeavePool.tsx | 4 +- .../ManagePool/Forms/SetClaimPermission.tsx | 4 +- src/modals/ManagePool/Forms/SetMetadata.tsx | 4 +- src/modals/ManagePool/Forms/SetState.tsx | 4 +- src/modals/ManagePool/index.tsx | 6 +- src/modals/Networks/index.tsx | 10 +- src/modals/Nominate/index.tsx | 4 +- src/modals/NominateFromFavorites/index.tsx | 10 +- src/modals/NominatePool/index.tsx | 4 +- src/modals/PoolNominations/index.tsx | 8 +- src/modals/SelectFavorites/index.tsx | 12 +- src/modals/Unbond/index.tsx | 10 +- src/modals/UnbondPoolMember/index.tsx | 10 +- src/modals/UnlockChunks/Forms.tsx | 9 +- src/modals/UnlockChunks/index.tsx | 13 +- src/modals/Unstake/index.tsx | 4 +- src/modals/UpdateController/index.tsx | 4 +- src/modals/UpdatePayee/index.tsx | 4 +- src/modals/UpdateReserve/index.tsx | 8 +- src/modals/ValidatorMetrics/index.tsx | 6 +- src/modals/WithdrawPoolMember/index.tsx | 10 +- src/modals/index.tsx | 95 ++++++----- src/pages/Community/Item.tsx | 6 +- .../Nominate/Active/ControllerNotStash.tsx | 8 +- src/pages/Nominate/Active/ManageBond.tsx | 26 +-- .../Nominate/Active/Nominations/index.tsx | 34 ++-- .../Active/Status/NominationStatus.tsx | 8 +- .../Active/Status/PayoutDestinationStatus.tsx | 6 +- src/pages/Nominate/Active/UnstakePrompts.tsx | 16 +- src/pages/Nominate/Active/index.tsx | 6 +- src/pages/Overview/BalanceChart.tsx | 6 +- src/pages/Pools/Home/ClosurePrompts.tsx | 24 +-- src/pages/Pools/Home/ManageBond.tsx | 28 ++-- src/pages/Pools/Home/ManagePool/index.tsx | 8 +- src/pages/Pools/Home/MembersList/Member.tsx | 20 ++- .../Pools/Home/Status/MembershipStatus.tsx | 10 +- src/pages/Pools/Home/Status/RewardsStatus.tsx | 16 +- src/pages/Pools/Home/index.tsx | 9 +- src/pages/Pools/Roles/index.tsx | 10 +- 84 files changed, 438 insertions(+), 585 deletions(-) delete mode 100644 src/contexts/Modal/defaults.ts delete mode 100644 src/contexts/Modal/index.tsx delete mode 100644 src/contexts/Modal/types.ts diff --git a/src/Providers.tsx b/src/Providers.tsx index 5a53ca7d52..9b9e9b9a5c 100644 --- a/src/Providers.tsx +++ b/src/Providers.tsx @@ -16,7 +16,6 @@ import { HelpProvider } from 'contexts/Help'; import { IdentitiesProvider } from 'contexts/Identities'; import { MenuProvider } from 'contexts/Menu'; import { MigrateProvider } from 'contexts/Migrate'; -import { ModalProvider } from 'contexts/Modal'; import { NetworkMetricsProvider } from 'contexts/Network'; import { NotificationsProvider } from 'contexts/Notifications'; import { PromptProvider } from 'contexts/Prompt'; @@ -72,7 +71,6 @@ export const Providers = withProviders( TxMetaProvider, ExtrinsicsProvider, OverlayProvider, - ModalProvider, CanvasProvider, PromptProvider, MigrateProvider diff --git a/src/contexts/Modal/defaults.ts b/src/contexts/Modal/defaults.ts deleted file mode 100644 index 9d1ef0792a..0000000000 --- a/src/contexts/Modal/defaults.ts +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: GPL-3.0-only -/* eslint-disable @typescript-eslint/no-unused-vars */ - -import type { ModalContextInterface } from './types'; - -export const defaultModalContext: ModalContextInterface = { - status: 'closed', - setStatus: (status) => {}, - openModalWith: (m, c, s) => {}, - replaceModalWith: (m, c, s) => {}, - setModalHeight: (v) => {}, - setModalRef: (v) => {}, - setHeightRef: (v) => {}, - setResize: () => {}, - modalMaxHeight: () => 0, - modal: '', - config: {}, - size: 'large', - height: 0, - resize: 0, -}; diff --git a/src/contexts/Modal/index.tsx b/src/contexts/Modal/index.tsx deleted file mode 100644 index 5acecf9380..0000000000 --- a/src/contexts/Modal/index.tsx +++ /dev/null @@ -1,148 +0,0 @@ -// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: GPL-3.0-only - -import { setStateWithRef } from '@polkadot-cloud/utils'; -import type { RefObject } from 'react'; -import React, { useRef, useState } from 'react'; -import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; -import { defaultModalContext } from './defaults'; -import type { - ModalConfig, - ModalContextInterface, - ModalOptions, - ModalStatus, -} from './types'; - -export const ModalProvider = ({ children }: { children: React.ReactNode }) => { - // Store the modal configuration options. - const [options, setOptionsState] = useState<ModalOptions>({ - modal: '', - config: {}, - size: 'large', - }); - const optionsRef = useRef(options); - - // Store the modal's current height. - const [height, setHeight] = useState<number>(0); - - // Store the modal status. - const [status, setStatusState] = useState<ModalStatus>('closed'); - const statusRef = useRef(status); - - // Store the modal's resize counter. - const [resize, setModalResize] = useState<number>(0); - - // Store the ref to the modal height container. Used for controlling whether height is transitionable. - const [modalRef, setModalRef] = useState<RefObject<HTMLDivElement>>(); - - // Store the ref to the modal height container. Used for controlling whether height is transitionable. - const [heightRef, setHeightRef] = useState<RefObject<HTMLDivElement>>(); - - useEffectIgnoreInitial(() => { - const h = modalRef?.current?.clientHeight || 0; - if (statusRef.current === 'opening') { - setModalHeight(h, false); - if (h > 0) { - setStatus('open'); - } - } - }, [statusRef.current, modalRef?.current]); - - const setOptions = (o: ModalOptions) => { - setStateWithRef(o, setOptionsState, optionsRef); - }; - - const setStatus = (newStatus: ModalStatus) => { - setStateWithRef(newStatus, setStatusState, statusRef); - }; - - const openModalWith = ( - modal: string, - config: ModalConfig = {}, - size = 'large' - ) => { - setOptions({ - modal, - config, - size, - }); - setStatus('opening'); - }; - - const setModalHeight = (h: number, transition: boolean = true) => { - if (statusRef.current === 'closed') return; - - // Ensrue transition class is removed if not transitioning. Otherwise, ensure class exists. - if (transition) transitionOn(); - else transitionOff(); - - // If transitioning, ensure the class exists. - if (transition) transitionOn(); - - // Limit maximum height to 80% of window height, and set. - const maxHeight = window.innerHeight * 0.8; - h = h > maxHeight ? maxHeight : h; - setHeight(h); - - // If transitioning, remove after enough time to finish transition. - if (transition) setTimeout(() => transitionOff(), 500); - }; - - // Increments resize to trigger a height transition. - const setResize = () => { - transitionOn(); - setModalResize(resize + 1); - setTimeout(() => transitionOff(), 500); - }; - - // Closes one modal and opens another. - const replaceModalWith = ( - modal: string, - config: ModalConfig = {}, - size = 'large' - ) => { - setStatus('replacing'); - setTimeout(() => { - openModalWith(modal, config, size); - }, 10); - }; - - // Helper to calculate the maximum height of the modal. - const modalMaxHeight = () => window.innerHeight * 0.8; - - // helper to set the transition height class of the modal. - const transitionOn = () => - heightRef?.current?.classList.add('transition-height'); - - // helper to remove the transition height class of the modal. - const transitionOff = () => - heightRef?.current?.classList.remove('transition-height'); - - return ( - <ModalContext.Provider - value={{ - status: statusRef.current, - setStatus, - openModalWith, - replaceModalWith, - setModalHeight, - setResize, - height, - resize, - modalMaxHeight, - setModalRef, - setHeightRef, - modal: optionsRef.current.modal, - config: optionsRef.current.config, - size: optionsRef.current.size, - }} - > - {children} - </ModalContext.Provider> - ); -}; - -export const ModalContext = - React.createContext<ModalContextInterface>(defaultModalContext); - -export const useModal = () => React.useContext(ModalContext); diff --git a/src/contexts/Modal/types.ts b/src/contexts/Modal/types.ts deleted file mode 100644 index da18f764e0..0000000000 --- a/src/contexts/Modal/types.ts +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: GPL-3.0-only - -import type { RefObject } from 'react'; -import type { AnyJson } from 'types'; - -export type ModalSize = 'small' | 'large' | 'xl'; - -export type ModalStatus = - | 'closed' - | 'opening' - | 'open' - | 'closing' - | 'replacing'; - -export interface ModalContextInterface { - setStatus: (status: ModalStatus) => void; - openModalWith: (modal: string, options?: ModalConfig, size?: string) => void; - replaceModalWith: ( - modal: string, - options?: ModalConfig, - size?: string - ) => void; - setModalHeight: (v: number) => void; - setResize: () => void; - modalMaxHeight: () => number; - setModalRef: (v: RefObject<HTMLDivElement>) => void; - setHeightRef: (v: RefObject<HTMLDivElement>) => void; - status: ModalStatus; - modal: string; - config: AnyJson; - size: string; - height: number; - resize: number; -} - -export interface ModalOptions { - modal: string; - config: ModalConfig; - size: string; -} - -export type ModalConfig = Record<string, string | any>; diff --git a/src/contexts/Overlay/index.tsx b/src/contexts/Overlay/index.tsx index 5362ab3dfc..d21ea88c1d 100644 --- a/src/contexts/Overlay/index.tsx +++ b/src/contexts/Overlay/index.tsx @@ -32,7 +32,7 @@ export const OverlayProvider = ({ // Store modal configuration. const [modalConfig, setModalConfigState] = useState<ModalConfig>({ key: '', - config: {}, + options: {}, size: 'large', }); const modalConfigRef = useRef(modalConfig); @@ -65,25 +65,25 @@ export const OverlayProvider = ({ setStateWithRef(newStatus, setModalStatusState, modalStatusRef); }; - const openModal = ({ key, size = 'large', config = {} }: ModalConfig) => { - setModalConfig({ key, size, config }); + const openModal = ({ key, size = 'large', options = {} }: ModalConfig) => { + setModalConfig({ key, size, options }); setModalStatus('opening'); }; // Closes one modal and opens another. - const replaceModal = ({ key, size = 'large', config = {} }: ModalConfig) => { + const replaceModal = ({ key, size = 'large', options = {} }: ModalConfig) => { setModalStatus('replacing'); setTimeout(() => { openModal({ key, size, - config, + options, }); }, 10); }; const setModalHeight = (height: number, transition: boolean = true) => { - if (statusRef.current === 'closed') return; + if (modalStatusRef.current === 'closed') return; // Ensrue transition class is removed if not transitioning. Otherwise, ensure class exists. if (transition) transitionOn(); @@ -132,7 +132,7 @@ export const OverlayProvider = ({ setModalStatus('open'); } } - }, [statusRef.current, modalRef?.current]); + }, [modalStatusRef.current, modalRef?.current]); return ( <OverlayContext.Provider diff --git a/src/contexts/Overlay/types.ts b/src/contexts/Overlay/types.ts index 2d64274e9d..13e7103771 100644 --- a/src/contexts/Overlay/types.ts +++ b/src/contexts/Overlay/types.ts @@ -44,7 +44,7 @@ export type ModalSize = 'small' | 'large' | 'xl'; export interface ModalConfig { key: string; - config?: ConfigOptions; + options?: ConfigOptions; size?: ModalSize; } diff --git a/src/library/AccountInput/index.tsx b/src/library/AccountInput/index.tsx index 300b7ebbec..037f8d24c4 100644 --- a/src/library/AccountInput/index.tsx +++ b/src/library/AccountInput/index.tsx @@ -8,8 +8,8 @@ import { isValidAddress } from '@polkadot-cloud/utils'; import React, { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { Identicon } from 'library/Identicon'; +import { useOverlay } from 'contexts/Overlay'; import { AccountInputWrapper } from './Wrapper'; import type { AccountInputProps } from './types'; @@ -28,7 +28,7 @@ export const AccountInput = ({ const { t } = useTranslation('library'); const { formatAccountSs58, accounts } = useConnect(); - const { setResize } = useModal(); + const { setResize } = useOverlay().modal; // store current input value const [value, setValue] = useState(initialValue || ''); diff --git a/src/library/GenerateNominations/index.tsx b/src/library/GenerateNominations/index.tsx index 61668cead8..f83e4fb224 100644 --- a/src/library/GenerateNominations/index.tsx +++ b/src/library/GenerateNominations/index.tsx @@ -15,7 +15,6 @@ import { useEffect, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { useValidators } from 'contexts/Validators'; import { useUnstaking } from 'library/Hooks/useUnstaking'; import { SelectableWrapper } from 'library/List'; @@ -24,6 +23,7 @@ import { SelectItem } from 'library/SelectItems/Item'; import { ValidatorList } from 'library/ValidatorList'; import { Wrapper } from 'pages/Overview/NetworkSats/Wrappers'; import { useStaking } from 'contexts/Staking'; +import { useOverlay } from 'contexts/Overlay'; import type { GenerateNominationsInnerProps, Nominations, @@ -36,7 +36,7 @@ export const GenerateNominations = ({ batchKey, }: GenerateNominationsInnerProps) => { const { t } = useTranslation('library'); - const { openModalWith } = useModal(); + const { openModal } = useOverlay().modal; const { isReady, consts } = useApi(); const { isFastUnstaking } = useUnstaking(); const { activeAccount, isReadOnlyAccount } = useConnect(); @@ -146,14 +146,14 @@ export const GenerateNominations = ({ setNominations([..._nominations]); updateSetters(_nominations); }; - openModalWith( - 'SelectFavorites', - { + openModal({ + key: 'SelectFavorites', + options: { nominations, callback: updateList, }, - 'xl' - ); + size: 'xl', + }); }; // function for clearing nomination list diff --git a/src/library/Headers/Connect.tsx b/src/library/Headers/Connect.tsx index dbe5254244..905262120c 100644 --- a/src/library/Headers/Connect.tsx +++ b/src/library/Headers/Connect.tsx @@ -5,13 +5,14 @@ import { faPlug, faWallet } from '@fortawesome/free-solid-svg-icons'; import { ButtonText } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; +import { useOverlay } from 'contexts/Overlay'; import { ConnectedAccount, HeadingWrapper } from './Wrappers'; export const Connect = () => { const { t } = useTranslation('library'); - const { openModalWith } = useModal(); const { accounts } = useConnect(); + const { openModal } = useOverlay().modal; + return ( <HeadingWrapper> <ConnectedAccount> @@ -21,7 +22,7 @@ export const Connect = () => { text={t('accounts')} iconLeft={faWallet} onClick={() => { - openModalWith('Accounts', {}, 'large'); + openModal({ key: 'Accounts' }); }} style={{ color: 'white', fontSize: '1.05rem' }} /> @@ -31,7 +32,7 @@ export const Connect = () => { iconRight={faPlug} iconTransform="grow-1" onClick={() => { - openModalWith('Connect', {}, 'large'); + openModal({ key: 'Connect' }); }} style={{ color: 'white', fontSize: '1.05rem' }} /> @@ -42,11 +43,7 @@ export const Connect = () => { iconRight={faPlug} iconTransform="grow-1" onClick={() => { - openModalWith( - accounts.length ? 'Accounts' : 'Connect', - {}, - 'large' - ); + openModal({ key: accounts.length ? 'Accounts' : 'Connect' }); }} style={{ color: 'white', fontSize: '1.05rem' }} /> diff --git a/src/library/Import/NoAccounts.tsx b/src/library/Import/NoAccounts.tsx index 462288c018..9ff2bf583a 100644 --- a/src/library/Import/NoAccounts.tsx +++ b/src/library/Import/NoAccounts.tsx @@ -4,12 +4,12 @@ import { faChevronLeft } from '@fortawesome/free-solid-svg-icons'; import { ButtonSecondary } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; -import { useModal } from 'contexts/Modal'; +import { useOverlay } from 'contexts/Overlay'; import { NoAccountsWrapper } from './Wrappers'; export const NoAccounts = ({ children, text, Icon }: any) => { const { t } = useTranslation('modals'); - const { replaceModalWith } = useModal(); + const { replaceModal } = useOverlay().modal; return ( <> @@ -20,7 +20,7 @@ export const NoAccounts = ({ children, text, Icon }: any) => { iconLeft={faChevronLeft} iconTransform="shrink-3" onClick={async () => - replaceModalWith('Connect', { disableScroll: true }, 'large') + replaceModal({ key: 'Connect', options: { disableScroll: true } }) } /> </h1> diff --git a/src/library/ListItem/Labels/JoinPool.tsx b/src/library/ListItem/Labels/JoinPool.tsx index 2ff70308b3..a10b93a105 100644 --- a/src/library/ListItem/Labels/JoinPool.tsx +++ b/src/library/ListItem/Labels/JoinPool.tsx @@ -4,7 +4,7 @@ import { faCaretRight } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { useTranslation } from 'react-i18next'; -import { useModal } from 'contexts/Modal'; +import { useOverlay } from 'contexts/Overlay'; export const JoinPool = ({ id, @@ -14,21 +14,21 @@ export const JoinPool = ({ setActiveTab: any; }) => { const { t } = useTranslation('library'); - const { openModalWith } = useModal(); + const { openModal } = useOverlay().modal; return ( <div className="label button-with-text"> <button type="button" onClick={() => { - openModalWith( - 'JoinPool', - { + openModal({ + key: 'JoinPool', + options: { id, setActiveTab, }, - 'small' - ); + size: 'small', + }); }} > {t('join')} diff --git a/src/library/ListItem/Labels/Metrics.tsx b/src/library/ListItem/Labels/Metrics.tsx index 592816d287..080b7e502a 100644 --- a/src/library/ListItem/Labels/Metrics.tsx +++ b/src/library/ListItem/Labels/Metrics.tsx @@ -3,25 +3,24 @@ import { faChartLine } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { useModal } from 'contexts/Modal'; +import { useOverlay } from 'contexts/Overlay'; import type { MetricsProps } from '../types'; export const Metrics = ({ display, address }: MetricsProps) => { - const { openModalWith } = useModal(); + const { openModal } = useOverlay().modal; return ( <div className="label"> <button type="button" onClick={() => - openModalWith( - 'ValidatorMetrics', - { + openModal({ + key: 'ValidatorMetrics', + options: { address, identity: display, }, - 'large' - ) + }) } > <FontAwesomeIcon icon={faChartLine} transform="shrink-2" /> diff --git a/src/library/Modal/Close.tsx b/src/library/Modal/Close.tsx index 0acb6ea222..2b94e78074 100644 --- a/src/library/Modal/Close.tsx +++ b/src/library/Modal/Close.tsx @@ -1,16 +1,16 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { useModal } from 'contexts/Modal'; import { ReactComponent as CrossSVG } from 'img/cross.svg'; +import { useOverlay } from 'contexts/Overlay'; import { CloseWrapper } from './Wrappers'; export const Close = () => { - const { setStatus } = useModal(); + const { setModalStatus } = useOverlay().modal; return ( <CloseWrapper> - <button type="button" onClick={() => setStatus('closing')}> + <button type="button" onClick={() => setModalStatus('closing')}> <CrossSVG style={{ width: '1.25rem', height: '1.25rem' }} /> </button> </CloseWrapper> diff --git a/src/library/Modal/Title.tsx b/src/library/Modal/Title.tsx index a50bdc11c6..b09e39d561 100644 --- a/src/library/Modal/Title.tsx +++ b/src/library/Modal/Title.tsx @@ -7,8 +7,8 @@ import { ButtonHelp } from '@polkadot-cloud/react'; import type { FunctionComponent } from 'react'; import React from 'react'; import { useHelp } from 'contexts/Help'; -import { useModal } from 'contexts/Modal'; import { ReactComponent as CrossSVG } from 'img/cross.svg'; +import { useOverlay } from 'contexts/Overlay'; import { TitleWrapper } from './Wrappers'; interface TitleProps { @@ -28,7 +28,7 @@ export const Title = ({ Svg, style, }: TitleProps) => { - const { setStatus } = useModal(); + const { setModalStatus } = useOverlay().modal; const { openHelp } = useHelp(); const graphic = Svg ? ( @@ -49,7 +49,7 @@ export const Title = ({ </h2> </div> <div> - <button type="button" onClick={() => setStatus('closing')}> + <button type="button" onClick={() => setModalStatus('closing')}> <CrossSVG style={{ width: '1.25rem', height: '1.25rem' }} /> </button> </div> diff --git a/src/library/Overlay/index.tsx b/src/library/Overlay/index.tsx index cb2e913a83..24beec52dc 100644 --- a/src/library/Overlay/index.tsx +++ b/src/library/Overlay/index.tsx @@ -4,14 +4,14 @@ import { ModalOverlay } from '@polkadot-cloud/react'; import { useAnimation } from 'framer-motion'; import { useEffect } from 'react'; -import { useModal } from 'contexts/Modal'; import { useHelp } from 'contexts/Help'; import { useCanvas } from 'contexts/Canvas'; +import { useOverlay } from 'contexts/Overlay'; export const Overlay = () => { const controls = useAnimation(); const { status: helpStatus } = useHelp(); - const { status: modalStatus } = useModal(); + const { status: modalStatus } = useOverlay().modal; const { status: canvasStatus } = useCanvas(); const onFadeIn = async () => { diff --git a/src/library/Pool/index.tsx b/src/library/Pool/index.tsx index 87fb10e158..8c33a3bfb9 100644 --- a/src/library/Pool/index.tsx +++ b/src/library/Pool/index.tsx @@ -8,7 +8,6 @@ import { useRef } from 'react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; import { useMenu } from 'contexts/Menu'; -import { useModal } from 'contexts/Modal'; import { useNotifications } from 'contexts/Notifications'; import type { NotificationText } from 'contexts/Notifications/types'; import { useBondedPools } from 'contexts/Pools/BondedPools'; @@ -27,6 +26,7 @@ import { Wrapper, } from 'library/ListItem/Wrappers'; import { usePoolsTabs } from 'pages/Pools/Home/context'; +import { useOverlay } from 'contexts/Overlay'; import { JoinPool } from '../ListItem/Labels/JoinPool'; import { Members } from '../ListItem/Labels/Members'; import { PoolId } from '../ListItem/Labels/PoolId'; @@ -35,7 +35,7 @@ import type { PoolProps } from './types'; export const Pool = ({ pool, batchKey, batchIndex }: PoolProps) => { const { t } = useTranslation('library'); const { memberCounter, addresses, id, state } = pool; - const { openModalWith } = useModal(); + const { openModal } = useOverlay().modal; const { activeAccount, isReadOnlyAccount } = useConnect(); const { meta } = useBondedPools(); const { membership } = usePoolMemberships(); @@ -80,14 +80,13 @@ export const Pool = ({ pool, batchKey, batchIndex }: PoolProps) => { wrap: null, title: `${t('viewPoolNominations')}`, cb: () => { - openModalWith( - 'PoolNominations', - { + openModal({ + key: 'PoolNominations', + options: { nominator: addresses.stash, targets: targetValidators, }, - 'large' - ); + }); }, }); diff --git a/src/library/SideMenu/index.tsx b/src/library/SideMenu/index.tsx index ca569ca2a7..99ee73065a 100644 --- a/src/library/SideMenu/index.tsx +++ b/src/library/SideMenu/index.tsx @@ -10,7 +10,6 @@ import { useTranslation } from 'react-i18next'; import { SideMenuStickyThreshold } from 'consts'; import { useApi } from 'contexts/Api'; import { useHelp } from 'contexts/Help'; -import { useModal } from 'contexts/Modal'; import { useTheme } from 'contexts/Themes'; import { useUi } from 'contexts/UI'; import type { UIContextInterface } from 'contexts/UI/types'; @@ -22,6 +21,7 @@ import { ReactComponent as LogoGithubSVG } from 'img/logo-github.svg'; import { ReactComponent as MoonOutlineSVG } from 'img/moon-outline.svg'; import { ReactComponent as SunnyOutlineSVG } from 'img/sunny-outline.svg'; import { useOutsideAlerter } from 'library/Hooks'; +import { useOverlay } from 'contexts/Overlay'; import { Heading } from './Heading/Heading'; import { Main } from './Main'; import { Secondary } from './Secondary'; @@ -31,7 +31,7 @@ export const SideMenu = () => { const { t } = useTranslation('base'); const { network, apiStatus } = useApi(); const { mode, toggleTheme } = useTheme(); - const { openModalWith } = useModal(); + const { openModal } = useOverlay().modal; const { setSideMenu, sideMenuMinimised, @@ -87,7 +87,7 @@ export const SideMenu = () => { }} /> <Secondary - onClick={() => openModalWith('GoToFeedback')} + onClick={() => openModal({ key: 'GoToFeedback' })} name={t('feedback')} minimised={sideMenuMinimised} icon={{ @@ -100,7 +100,7 @@ export const SideMenu = () => { <Secondary classes={[apiStatusClass]} name={capitalizeFirstLetter(network.name)} - onClick={() => openModalWith('Networks')} + onClick={() => openModal({ key: 'Networks' })} icon={{ Svg: network.brand.inline.svg, size: network.brand.inline.size, @@ -135,15 +135,12 @@ export const SideMenu = () => { > <LogoGithubSVG width="1.2em" height="1.2em" /> </button> - <button - type="button" - onClick={() => openModalWith('Settings', {}, 'large')} - > + <button type="button" onClick={() => openModal({ key: 'Settings' })}> <CogOutlineSVG width="1.3em" height="1.3em" /> </button> <button type="button" - onClick={() => openModalWith('ChooseLanguage', {}, 'small')} + onClick={() => openModal({ key: 'ChooseLanguage' })} > <LanguageSVG width="1.25em" height="1.25em" /> </button> diff --git a/src/library/SubmitTx/ManualSign/Ledger.tsx b/src/library/SubmitTx/ManualSign/Ledger.tsx index cc516dbaf7..2b234c3708 100644 --- a/src/library/SubmitTx/ManualSign/Ledger.tsx +++ b/src/library/SubmitTx/ManualSign/Ledger.tsx @@ -10,10 +10,10 @@ import type { LedgerAccount } from 'contexts/Connect/types'; import { useLedgerHardware } from 'contexts/Hardware/Ledger'; import type { LedgerResponse } from 'contexts/Hardware/types'; import { useHelp } from 'contexts/Help'; -import { useModal } from 'contexts/Modal'; import { useTxMeta } from 'contexts/TxMeta'; import { EstimatedTxFee } from 'library/EstimatedTxFee'; import { useLedgerLoop } from 'library/Hooks/useLedgerLoop'; +import { useOverlay } from 'contexts/Overlay'; import type { SubmitProps } from '../types'; export const Ledger = ({ @@ -40,7 +40,7 @@ export const Ledger = ({ handleUnmount, } = useLedgerHardware(); const { openHelp } = useHelp(); - const { setResize } = useModal(); + const { setResize } = useOverlay().modal; const { activeAccount, accountHasSigner, getAccount } = useConnect(); const { txFeesValid, setTxSignature, getTxSignature } = useTxMeta(); diff --git a/src/library/SubmitTx/index.tsx b/src/library/SubmitTx/index.tsx index 0a94daa043..a2e548f213 100644 --- a/src/library/SubmitTx/index.tsx +++ b/src/library/SubmitTx/index.tsx @@ -7,8 +7,8 @@ import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useBonded } from 'contexts/Bonded'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { useTxMeta } from 'contexts/TxMeta'; +import { useOverlay } from 'contexts/Overlay'; import { Default } from './Default'; import { ManualSign } from './ManualSign'; import type { SubmitTxProps } from './types'; @@ -26,11 +26,11 @@ export const SubmitTx = ({ }: SubmitTxProps) => { const { t } = useTranslation(); const { unit } = useApi().network; + const { getBondedAccount } = useBonded(); + const { setResize } = useOverlay().modal; const { notEnoughFunds, sender, setTxSignature } = useTxMeta(); const { requiresManualSign, activeAccount, activeProxy, getAccount } = useConnect(); - const { setResize } = useModal(); - const { getBondedAccount } = useBonded(); const controller = getBondedAccount(activeAccount); // Default to active account diff --git a/src/library/ValidatorList/Validator/Default.tsx b/src/library/ValidatorList/Validator/Default.tsx index 9b33713a65..f1c2f1d6f4 100644 --- a/src/library/ValidatorList/Validator/Default.tsx +++ b/src/library/ValidatorList/Validator/Default.tsx @@ -7,7 +7,6 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { useRef } from 'react'; import { useTranslation } from 'react-i18next'; import { useMenu } from 'contexts/Menu'; -import { useModal } from 'contexts/Modal'; import { useNotifications } from 'contexts/Notifications'; import type { NotificationText } from 'contexts/Notifications/types'; import { CopyAddress } from 'library/ListItem/Labels/CopyAddress'; @@ -18,6 +17,7 @@ import { Separator, Wrapper, } from 'library/ListItem/Wrappers'; +import { useOverlay } from 'contexts/Overlay'; import { useValidators } from '../../../contexts/Validators'; import { useList } from '../../List/context'; import { Blocked } from '../../ListItem/Labels/Blocked'; @@ -38,7 +38,7 @@ export const Default = ({ }: DefaultProps) => { const { t } = useTranslation('library'); const { selectActive } = useList(); - const { openModalWith } = useModal(); + const { openModal } = useOverlay().modal; const { addNotification } = useNotifications(); const { setMenuPosition, setMenuItems, open }: any = useMenu(); const { validatorIdentities, validatorSupers } = useValidators(); @@ -68,14 +68,13 @@ export const Default = ({ wrap: null, title: `${t('viewMetrics')}`, cb: () => { - openModalWith( - 'ValidatorMetrics', - { + openModal({ + key: 'ValidatorMetrics', + options: { address, identity, }, - 'large' - ); + }); }, }, { diff --git a/src/library/ValidatorList/index.tsx b/src/library/ValidatorList/index.tsx index b484cdd501..a7354be29b 100644 --- a/src/library/ValidatorList/index.tsx +++ b/src/library/ValidatorList/index.tsx @@ -11,7 +11,6 @@ import { ListItemsPerBatch, ListItemsPerPage } from 'consts'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; import { useFilters } from 'contexts/Filters'; -import { useModal } from 'contexts/Modal'; import { useNetworkMetrics } from 'contexts/Network'; import { StakingContext } from 'contexts/Staking'; import { useTheme } from 'contexts/Themes'; @@ -22,6 +21,7 @@ import { Pagination } from 'library/List/Pagination'; import { SearchInput } from 'library/List/SearchInput'; import { Selectable } from 'library/List/Selectable'; import { Validator } from 'library/ValidatorList/Validator'; +import { useOverlay } from 'contexts/Overlay'; import { useValidatorFilters } from '../Hooks/useValidatorFilters'; import { ListProvider, useList } from '../List/context'; import { Filters } from './Filters'; @@ -52,7 +52,7 @@ export const ValidatorListInner = ({ isReady, network: { colors }, } = useApi(); - const modal = useModal(); + const { setResize } = useOverlay().modal; const provider = useList(); const { mode } = useTheme(); const { isSyncing } = useUi(); @@ -239,7 +239,7 @@ export const ValidatorListInner = ({ // if in modal, handle resize const maybeHandleModalResize = () => { if (!inModal) return; - modal.setResize(); + setResize(); }; const handleSearchChange = (e: React.FormEvent<HTMLInputElement>) => { diff --git a/src/modals/AccountPoolRoles/index.tsx b/src/modals/AccountPoolRoles/index.tsx index 223cbdff68..63185f64c4 100644 --- a/src/modals/AccountPoolRoles/index.tsx +++ b/src/modals/AccountPoolRoles/index.tsx @@ -4,21 +4,21 @@ import { faBars } from '@fortawesome/free-solid-svg-icons'; import { ButtonOption, ModalPadding } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; -import { useModal } from 'contexts/Modal'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { useBondedPools } from 'contexts/Pools/BondedPools'; import { usePoolMemberships } from 'contexts/Pools/PoolMemberships'; import { Identicon } from 'library/Identicon'; import { Title } from 'library/Modal/Title'; import { useStatusButtons } from 'pages/Pools/Home/Status/useStatusButtons'; +import { useOverlay } from 'contexts/Overlay'; import { ContentWrapper } from './Wrappers'; export const AccountPoolRoles = () => { const { t } = useTranslation('modals'); - const { config } = useModal(); + const { options } = useOverlay().modal.config; const { getAccountPools } = useBondedPools(); const { membership } = usePoolMemberships(); - const { who } = config; + const { who } = options; const accountPools = getAccountPools(who); const totalAccountPools = Object.entries(accountPools).length; const { label } = useStatusButtons(); @@ -54,7 +54,7 @@ export const AccountPoolRoles = () => { const Button = ({ item, poolId }: { item: string[]; poolId: string }) => { const { t } = useTranslation('modals'); - const { setStatus } = useModal(); + const { setModalStatus } = useOverlay().modal; const { bondedPools } = useBondedPools(); const { setSelectedPoolId } = useActivePools(); const pool = bondedPools.find((b) => String(b.id) === poolId); @@ -66,7 +66,7 @@ const Button = ({ item, poolId }: { item: string[]; poolId: string }) => { disabled={false} onClick={() => { setSelectedPoolId(poolId); - setStatus('closing'); + setModalStatus('closing'); }} > <div className="icon"> diff --git a/src/modals/Accounts/Account.tsx b/src/modals/Accounts/Account.tsx index 36cb4ba4ec..f8daaead81 100644 --- a/src/modals/Accounts/Account.tsx +++ b/src/modals/Accounts/Account.tsx @@ -7,12 +7,12 @@ import { clipAddress, planckToUnit } from '@polkadot-cloud/utils'; import { useTranslation } from 'react-i18next'; import { Extensions } from '@polkadot-cloud/community/extensions'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { ReactComponent as LedgerIconSVG } from 'img/ledgerIcon.svg'; import { ReactComponent as PolkadotVaultIconSVG } from 'img/polkadotVault.svg'; import { Identicon } from 'library/Identicon'; import { useApi } from 'contexts/Api'; import { useTransferOptions } from 'contexts/TransferOptions'; +import { useOverlay } from 'contexts/Overlay'; import { AccountWrapper } from './Wrappers'; import type { AccountItemProps } from './types'; @@ -32,7 +32,7 @@ export const AccountButton = ({ activeProxyType, connectToAccount, } = useConnect(); - const { setStatus } = useModal(); + const { setModalStatus } = useOverlay().modal; const { units, unit } = useApi().network; const { getTransferOptions } = useTransferOptions(); const { freeBalance } = getTransferOptions(address || ''); @@ -66,7 +66,7 @@ export const AccountButton = ({ if (!imported) return; connectToAccount(getAccount(connectTo)); setActiveProxy(proxyType ? { address: connectProxy, proxyType } : null); - setStatus('closing'); + setModalStatus('closing'); }; return ( diff --git a/src/modals/Accounts/index.tsx b/src/modals/Accounts/index.tsx index a5626cbad6..0530ce36d6 100644 --- a/src/modals/Accounts/index.tsx +++ b/src/modals/Accounts/index.tsx @@ -15,10 +15,10 @@ import { useBalances } from 'contexts/Balances'; import { useBonded } from 'contexts/Bonded'; import { useConnect } from 'contexts/Connect'; import { useExtensions } from 'contexts/Extensions'; -import { useModal } from 'contexts/Modal'; import { usePoolMemberships } from 'contexts/Pools/PoolMemberships'; import { useProxies } from 'contexts/Proxies'; import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import { useOverlay } from 'contexts/Overlay'; import { AccountButton } from './Account'; import { Delegates } from './Delegates'; import { AccountSeparator, AccountWrapper } from './Wrappers'; @@ -37,7 +37,7 @@ export const Accounts = () => { const { bondedAccounts } = useBonded(); const { ledgers, getLocks } = useBalances(); const { memberships } = usePoolMemberships(); - const { replaceModalWith, status: modalStatus, setResize } = useModal(); + const { replaceModal, status: modalStatus, setResize } = useOverlay().modal; const { activeAccount, disconnectFromAccount, setActiveProxy, accounts } = useConnect(); @@ -130,7 +130,7 @@ export const Accounts = () => { iconLeft={faChevronLeft} iconTransform="shrink-3" onClick={() => - replaceModalWith('Connect', { disableScroll: true }, 'large') + replaceModal({ key: 'Connect', options: { disableScroll: true } }) } marginLeft /> diff --git a/src/modals/BalanceTest/index.tsx b/src/modals/BalanceTest/index.tsx index b077433cfe..193d7b15a8 100644 --- a/src/modals/BalanceTest/index.tsx +++ b/src/modals/BalanceTest/index.tsx @@ -5,7 +5,7 @@ import { ModalPadding } from '@polkadot-cloud/react'; import { unitToPlanck } from '@polkadot-cloud/utils'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; +import { useOverlay } from 'contexts/Overlay'; import { useTxMeta } from 'contexts/TxMeta'; import { useBatchCall } from 'library/Hooks/useBatchCall'; import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; @@ -18,7 +18,7 @@ export const BalanceTest = () => { const { activeAccount } = useConnect(); const { notEnoughFunds } = useTxMeta(); const { newBatchCall } = useBatchCall(); - const { setStatus: setModalStatus, setResize } = useModal(); + const { setModalStatus, setResize } = useOverlay().modal; const { units } = network; // tx to submit diff --git a/src/modals/Bio/index.tsx b/src/modals/Bio/index.tsx index e8d3c62d5a..c18b05a305 100644 --- a/src/modals/Bio/index.tsx +++ b/src/modals/Bio/index.tsx @@ -2,13 +2,12 @@ // SPDX-License-Identifier: GPL-3.0-only import { ModalPadding } from '@polkadot-cloud/react'; -import { useModal } from 'contexts/Modal'; import { Title } from 'library/Modal/Title'; +import { useOverlay } from 'contexts/Overlay'; import { Wrapper } from './Wrapper'; export const Bio = () => { - const { config } = useModal(); - const { name, bio } = config; + const { name, bio } = useOverlay().modal.config.options; return ( <> diff --git a/src/modals/Bond/index.tsx b/src/modals/Bond/index.tsx index e98a740e80..bea4813e95 100644 --- a/src/modals/Bond/index.tsx +++ b/src/modals/Bond/index.tsx @@ -8,7 +8,6 @@ import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { useTransferOptions } from 'contexts/TransferOptions'; import { BondFeedback } from 'library/Form/Bond/BondFeedback'; @@ -19,6 +18,7 @@ import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; import { useTxMeta } from 'contexts/TxMeta'; +import { useOverlay } from 'contexts/Overlay'; export const Bond = () => { const { t } = useTranslation('modals'); @@ -28,9 +28,13 @@ export const Bond = () => { const { selectedActivePool } = useActivePools(); const { getSignerWarnings } = useSignerWarnings(); const { feeReserve, getTransferOptions } = useTransferOptions(); - const { setStatus: setModalStatus, config, setResize } = useModal(); + const { + setModalStatus, + config: { options }, + setResize, + } = useOverlay().modal; const { units } = network; - const { bondFor } = config; + const { bondFor } = options; const isStaking = bondFor === 'nominator'; const isPooling = bondFor === 'pool'; const { nominate, pool } = getTransferOptions(activeAccount); diff --git a/src/modals/ChangeNominations/index.tsx b/src/modals/ChangeNominations/index.tsx index cb6316e468..f69cca803a 100644 --- a/src/modals/ChangeNominations/index.tsx +++ b/src/modals/ChangeNominations/index.tsx @@ -11,7 +11,6 @@ import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useBonded } from 'contexts/Bonded'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { Warning } from 'library/Form/Warning'; import { useSignerWarnings } from 'library/Hooks/useSignerWarnings'; @@ -19,6 +18,7 @@ import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; import { useTxMeta } from 'contexts/TxMeta'; +import { useOverlay } from 'contexts/Overlay'; export const ChangeNominations = () => { const { t } = useTranslation('modals'); @@ -27,10 +27,14 @@ export const ChangeNominations = () => { const { notEnoughFunds } = useTxMeta(); const { getSignerWarnings } = useSignerWarnings(); const { getBondedAccount, getAccountNominations } = useBonded(); - const { setStatus: setModalStatus, config, setResize } = useModal(); + const { + setModalStatus, + config: { options }, + setResize, + } = useOverlay().modal; const { poolNominations, isNominator, isOwner, selectedActivePool } = useActivePools(); - const { nominations: newNominations, provider, bondFor } = config; + const { nominations: newNominations, provider, bondFor } = options; const isPool = bondFor === 'pool'; const isStaking = bondFor === 'nominator'; diff --git a/src/modals/ChangePoolRoles/index.tsx b/src/modals/ChangePoolRoles/index.tsx index f976ad638a..44bff1eea1 100644 --- a/src/modals/ChangePoolRoles/index.tsx +++ b/src/modals/ChangePoolRoles/index.tsx @@ -5,13 +5,13 @@ import { ModalPadding } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { useBondedPools } from 'contexts/Pools/BondedPools'; import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; import { useTxMeta } from 'contexts/TxMeta'; import { useEffect } from 'react'; +import { useOverlay } from 'contexts/Overlay'; import { RoleChange } from './RoleChange'; import { Wrapper } from './Wrapper'; @@ -20,10 +20,13 @@ export const ChangePoolRoles = () => { const { api } = useApi(); const { activeAccount } = useConnect(); const { notEnoughFunds } = useTxMeta(); - const { config, setResize } = useModal(); const { replacePoolRoles } = useBondedPools(); - const { setStatus: setModalStatus } = useModal(); - const { id: poolId, roleEdits } = config; + const { + setModalStatus, + config: { options }, + setResize, + } = useOverlay().modal; + const { id: poolId, roleEdits } = options; // tx to submit const getTx = () => { diff --git a/src/modals/ChooseLanguage/index.tsx b/src/modals/ChooseLanguage/index.tsx index 741086b791..6921a1a6d5 100644 --- a/src/modals/ChooseLanguage/index.tsx +++ b/src/modals/ChooseLanguage/index.tsx @@ -3,16 +3,16 @@ import { ModalPadding } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; -import { useModal } from 'contexts/Modal'; import { ReactComponent as LanguageSVG } from 'img/language.svg'; import { Title } from 'library/Modal/Title'; import { availableLanguages } from 'locale'; import { changeLanguage } from 'locale/utils'; +import { useOverlay } from 'contexts/Overlay'; import { ContentWrapper, LocaleButton } from './Wrapper'; export const ChooseLanguage = () => { const { i18n, t } = useTranslation('modals'); - const { setStatus } = useModal(); + const { setModalStatus } = useOverlay().modal; return ( <> @@ -31,7 +31,7 @@ export const ChooseLanguage = () => { type="button" onClick={() => { changeLanguage(code, i18n); - setStatus('closing'); + setModalStatus('closing'); }} > {label} diff --git a/src/modals/ClaimReward/index.tsx b/src/modals/ClaimReward/index.tsx index eadc28994c..565ab7b861 100644 --- a/src/modals/ClaimReward/index.tsx +++ b/src/modals/ClaimReward/index.tsx @@ -8,7 +8,6 @@ import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { Warning } from 'library/Form/Warning'; import { useSignerWarnings } from 'library/Hooks/useSignerWarnings'; @@ -16,6 +15,7 @@ import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; import { useTxMeta } from 'contexts/TxMeta'; +import { useOverlay } from 'contexts/Overlay'; export const ClaimReward = () => { const { t } = useTranslation('modals'); @@ -24,12 +24,16 @@ export const ClaimReward = () => { const { notEnoughFunds } = useTxMeta(); const { selectedActivePool } = useActivePools(); const { getSignerWarnings } = useSignerWarnings(); - const { setStatus: setModalStatus, config, setResize } = useModal(); + const { + setModalStatus, + config: { options }, + setResize, + } = useOverlay().modal; const { units, unit } = network; let { pendingRewards } = selectedActivePool || {}; pendingRewards = pendingRewards ?? new BigNumber(0); - const { claimType } = config; + const { claimType } = options; // ensure selected payout is valid useEffect(() => { diff --git a/src/modals/Connect/Ledger.tsx b/src/modals/Connect/Ledger.tsx index 7035958cac..686a7e95a0 100644 --- a/src/modals/Connect/Ledger.tsx +++ b/src/modals/Connect/Ledger.tsx @@ -18,12 +18,12 @@ import { inChrome } from '@polkadot-cloud/utils'; import React from 'react'; import { useApi } from 'contexts/Api'; import { useHelp } from 'contexts/Help'; -import { useModal } from 'contexts/Modal'; import { ReactComponent as LedgerLogoSVG } from 'img/ledgerLogo.svg'; +import { useOverlay } from 'contexts/Overlay'; export const Ledger = (): React.ReactElement => { const { openHelp } = useHelp(); - const { replaceModalWith } = useModal(); + const { replaceModal } = useOverlay().modal; const { name } = useApi().network; const url = 'ledger.com'; @@ -60,9 +60,7 @@ export const Ledger = (): React.ReactElement => { <div className="row margin"> <ButtonPrimaryInvert text="USB" - onClick={() => { - replaceModalWith('ImportLedger', {}, 'large'); - }} + onClick={() => replaceModal({ key: 'ImportLedger' })} iconLeft={faUsb} iconTransform="shrink-1" disabled={!inChrome()} diff --git a/src/modals/Connect/ReadOnly.tsx b/src/modals/Connect/ReadOnly.tsx index d50e9c3144..f3f8f0066d 100644 --- a/src/modals/Connect/ReadOnly.tsx +++ b/src/modals/Connect/ReadOnly.tsx @@ -16,9 +16,9 @@ import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; import type { ExternalAccount } from 'contexts/Connect/types'; import { useHelp } from 'contexts/Help'; -import { useModal } from 'contexts/Modal'; import { AccountInput } from 'library/AccountInput'; import { Identicon } from 'library/Identicon'; +import { useOverlay } from 'contexts/Overlay'; import { ActionWithButton, ManualAccount, @@ -28,9 +28,9 @@ import type { ListWithInputProps } from './types'; export const ReadOnly = ({ setInputOpen, inputOpen }: ListWithInputProps) => { const { t } = useTranslation('modals'); - const { accounts, forgetAccounts, addExternalAccount } = useConnect(); - const { setResize } = useModal(); const { openHelp } = useHelp(); + const { setResize } = useOverlay().modal; + const { accounts, forgetAccounts, addExternalAccount } = useConnect(); // get all external accounts const externalAccountsOnly = accounts.filter( diff --git a/src/modals/Connect/Vault.tsx b/src/modals/Connect/Vault.tsx index 9f1433a8eb..c31ef54b76 100644 --- a/src/modals/Connect/Vault.tsx +++ b/src/modals/Connect/Vault.tsx @@ -13,13 +13,13 @@ import { import React from 'react'; import { useTranslation } from 'react-i18next'; import { useHelp } from 'contexts/Help'; -import { useModal } from 'contexts/Modal'; import { ReactComponent as VaultSVG } from 'img/polkadotVault.svg'; +import { useOverlay } from 'contexts/Overlay'; export const Vault = (): React.ReactElement => { const { t } = useTranslation('modals'); const { openHelp } = useHelp(); - const { replaceModalWith } = useModal(); + const { replaceModal } = useOverlay().modal; const url = 'signer.parity.io'; return ( @@ -48,7 +48,7 @@ export const Vault = (): React.ReactElement => { <ButtonPrimaryInvert text={t('import')} onClick={() => { - replaceModalWith('ImportVault', {}, 'large'); + replaceModal({ key: 'ImportVault' }); }} iconLeft={faQrcode} iconTransform="shrink-1" diff --git a/src/modals/Connect/index.tsx b/src/modals/Connect/index.tsx index a0c108762e..6c498e3447 100644 --- a/src/modals/Connect/index.tsx +++ b/src/modals/Connect/index.tsx @@ -16,11 +16,11 @@ import { ExtensionsArray } from '@polkadot-cloud/community/extensions'; import { useEffect, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useExtensions } from 'contexts/Extensions'; -import { useModal } from 'contexts/Modal'; import { Close } from 'library/Modal/Close'; import { SelectItems } from 'library/SelectItems'; import type { AnyFunction } from 'types'; import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import { useOverlay } from 'contexts/Overlay'; import { Extension } from './Extension'; import { Ledger } from './Ledger'; import { Proxies } from './Proxies'; @@ -31,7 +31,7 @@ import { ExtensionsWrapper } from './Wrappers'; export const Connect = () => { const { t } = useTranslation('modals'); const { extensions } = useExtensions(); - const { replaceModalWith, setModalHeight, modalMaxHeight } = useModal(); + const { replaceModal, setHeight, maxHeight } = useOverlay().modal; const installed = ExtensionsArray.filter((a) => extensions.find((b) => b.id === a.id) @@ -64,7 +64,7 @@ export const Connect = () => { readOnlyRef.current?.clientHeight || 0, proxiesRef.current?.clientHeight || 0 ); - setModalHeight(height); + setHeight(height); }; // Resize modal on state change. @@ -91,7 +91,7 @@ export const Connect = () => { text={t('goToAccounts')} iconRight={faChevronRight} iconTransform="shrink-3" - onClick={() => replaceModalWith('Accounts', {}, 'large')} + onClick={() => replaceModal({ key: 'Accounts' })} marginLeft /> </div> @@ -117,8 +117,7 @@ export const Connect = () => { <ModalMotionThreeSection style={{ - maxHeight: - modalMaxHeight() - (headerRef.current?.clientHeight || 0), + maxHeight: maxHeight - (headerRef.current?.clientHeight || 0), }} animate={ section === 0 ? 'home' : section === 1 ? 'readOnly' : 'proxies' diff --git a/src/modals/DismissTips/index.tsx b/src/modals/DismissTips/index.tsx index 58ab699f03..7cff2e3538 100644 --- a/src/modals/DismissTips/index.tsx +++ b/src/modals/DismissTips/index.tsx @@ -3,14 +3,14 @@ import { ButtonSubmit, ModalPadding } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; -import { useModal } from 'contexts/Modal'; import { usePlugins } from 'contexts/Plugins'; import { Title } from 'library/Modal/Title'; +import { useOverlay } from 'contexts/Overlay'; export const DismissTips = () => { const { t } = useTranslation('tips'); const { togglePlugin } = usePlugins(); - const { setStatus } = useModal(); + const { setModalStatus } = useOverlay().modal; return ( <> @@ -32,7 +32,7 @@ export const DismissTips = () => { text={t('module.disableTips')} onClick={() => { togglePlugin('tips'); - setStatus('closing'); + setModalStatus('closing'); }} /> </div> diff --git a/src/modals/ImportLedger/Manage.tsx b/src/modals/ImportLedger/Manage.tsx index 646472a39d..549cd1b24d 100644 --- a/src/modals/ImportLedger/Manage.tsx +++ b/src/modals/ImportLedger/Manage.tsx @@ -7,11 +7,11 @@ import { useApi } from 'contexts/Api'; import { useLedgerHardware } from 'contexts/Hardware/Ledger'; import { getLedgerApp } from 'contexts/Hardware/Utils'; import { useHelp } from 'contexts/Help'; -import { useModal } from 'contexts/Modal'; import { usePrompt } from 'contexts/Prompt'; import { ReactComponent as StatusBarIcon } from 'img/ledgerIcon.svg'; import { Heading } from 'library/Import/Heading'; import type { AnyJson } from 'types'; +import { useOverlay } from 'contexts/Overlay'; import { Addresess } from './Addresses'; import { Reset } from './Reset'; @@ -25,7 +25,7 @@ export const Manage = ({ const { setIsExecuting, getIsExecuting, resetStatusCodes, getFeedback } = useLedgerHardware(); const { openPromptWith } = usePrompt(); - const { replaceModalWith } = useModal(); + const { replaceModal } = useOverlay().modal; const { openHelp } = useHelp(); const { appName, Icon } = getLedgerApp(name); @@ -75,7 +75,7 @@ export const Manage = ({ resetStatusCodes(); }} handleDone={() => - replaceModalWith('Connect', { disableScroll: true }, 'large') + replaceModal({ key: 'Connect', options: { disableScroll: true } }) } t={{ tDone: t('done', { ns: 'library' }), diff --git a/src/modals/ImportLedger/Reset.tsx b/src/modals/ImportLedger/Reset.tsx index 8c021a619c..777af3dab0 100644 --- a/src/modals/ImportLedger/Reset.tsx +++ b/src/modals/ImportLedger/Reset.tsx @@ -8,16 +8,16 @@ import type { LedgerAccount } from 'contexts/Connect/types'; import { useLedgerHardware } from 'contexts/Hardware/Ledger'; import { getLocalLedgerAddresses } from 'contexts/Hardware/Utils'; import type { LedgerAddress } from 'contexts/Hardware/types'; -import { useModal } from 'contexts/Modal'; import { usePrompt } from 'contexts/Prompt'; import { ConfirmWrapper } from 'library/Import/Wrappers'; import type { AnyJson } from 'types'; +import { useOverlay } from 'contexts/Overlay'; export const Reset = ({ removeLedgerAddress }: AnyJson) => { const { t } = useTranslation('modals'); const { forgetAccounts } = useConnect(); const { setStatus } = usePrompt(); - const { replaceModalWith } = useModal(); + const { replaceModal } = useOverlay().modal; const { ledgerAccounts, removeLedgerAccount } = useLedgerHardware(); const removeAccounts = () => { @@ -33,7 +33,7 @@ export const Reset = ({ removeLedgerAddress }: AnyJson) => { }); // Go back to Connect modal. - replaceModalWith('Connect', { disableScroll: true }, 'large'); + replaceModal({ key: 'Connect', options: { disableScroll: true } }); }; return ( diff --git a/src/modals/ImportLedger/Splash.tsx b/src/modals/ImportLedger/Splash.tsx index 10fe0deb6a..eebe49f6b4 100644 --- a/src/modals/ImportLedger/Splash.tsx +++ b/src/modals/ImportLedger/Splash.tsx @@ -7,10 +7,10 @@ import { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { useLedgerHardware } from 'contexts/Hardware/Ledger'; import { useHelp } from 'contexts/Help'; -import { useModal } from 'contexts/Modal'; import { useTheme } from 'contexts/Themes'; import { ReactComponent as LogoSVG } from 'img/ledgerLogo.svg'; import type { AnyFunction } from 'types'; +import { useOverlay } from 'contexts/Overlay'; import { SplashWrapper } from './Wrappers'; export const Splash = ({ handleLedgerLoop }: AnyFunction) => { @@ -25,7 +25,7 @@ export const Splash = ({ handleLedgerLoop }: AnyFunction) => { } = useLedgerHardware(); const { mode } = useTheme(); const { openHelp } = useHelp(); - const { replaceModalWith, setResize } = useModal(); + const { replaceModal, setResize } = useOverlay().modal; const statusCodes = getStatusCodes(); @@ -67,7 +67,7 @@ export const Splash = ({ handleLedgerLoop }: AnyFunction) => { iconLeft={faChevronLeft} iconTransform="shrink-3" onClick={async () => - replaceModalWith('Connect', { disableScroll: true }, 'large') + replaceModal({ key: 'Connect', options: { disableScroll: true } }) } /> </h1> diff --git a/src/modals/ImportLedger/index.tsx b/src/modals/ImportLedger/index.tsx index 3ce6586f34..4636ada611 100644 --- a/src/modals/ImportLedger/index.tsx +++ b/src/modals/ImportLedger/index.tsx @@ -7,15 +7,15 @@ import { useApi } from 'contexts/Api'; import { useLedgerHardware } from 'contexts/Hardware/Ledger'; import { getLocalLedgerAddresses } from 'contexts/Hardware/Utils'; import type { LedgerAddress, LedgerResponse } from 'contexts/Hardware/types'; -import { useModal } from 'contexts/Modal'; import { useLedgerLoop } from 'library/Hooks/useLedgerLoop'; import type { AnyJson } from 'types'; +import { useOverlay } from 'contexts/Overlay'; import { Manage } from './Manage'; import { Splash } from './Splash'; export const ImportLedger: React.FC = () => { const { network } = useApi(); - const { setResize } = useModal(); + const { setResize } = useOverlay().modal; const { transportResponse, getIsExecuting, diff --git a/src/modals/ImportVault/index.tsx b/src/modals/ImportVault/index.tsx index 503362c169..b8e357454d 100644 --- a/src/modals/ImportVault/index.tsx +++ b/src/modals/ImportVault/index.tsx @@ -12,7 +12,6 @@ import { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; import { useVaultHardware } from 'contexts/Hardware/Vault'; -import { useModal } from 'contexts/Modal'; import { usePrompt } from 'contexts/Prompt'; import { ReactComponent as Icon } from 'img/polkadotVault.svg'; import { Identicon } from 'library/Identicon'; @@ -22,11 +21,12 @@ import { NoAccounts } from 'library/Import/NoAccounts'; import { Remove } from 'library/Import/Remove'; import { AddressesWrapper } from 'library/Import/Wrappers'; import type { AnyJson } from 'types'; +import { useOverlay } from 'contexts/Overlay'; import { Reader } from './Reader'; export const ImportVault = () => { const { t } = useTranslation(); - const { replaceModalWith } = useModal(); + const { replaceModal } = useOverlay().modal; const { renameImportedAccount } = useConnect(); const { openPromptWith, status: promptStatus } = usePrompt(); @@ -38,7 +38,7 @@ export const ImportVault = () => { removeVaultAccount, getVaultAccount, } = useVaultHardware(); - const { setResize } = useModal(); + const { setResize } = useOverlay().modal; const renameHandler = (address: string, newName: string) => { renameVaultAccount(address, newName); @@ -129,7 +129,7 @@ export const ImportVault = () => { })} inProgress={false} handleDone={() => - replaceModalWith('Connect', { disableScroll: true }, 'large') + replaceModal({ key: 'Connect', options: { disableScroll: true } }) } t={{ tDone: t('done', { ns: 'library' }), diff --git a/src/modals/JoinPool/index.tsx b/src/modals/JoinPool/index.tsx index 843df8b88e..739dc2718b 100644 --- a/src/modals/JoinPool/index.tsx +++ b/src/modals/JoinPool/index.tsx @@ -8,7 +8,6 @@ import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { usePoolMembers } from 'contexts/Pools/PoolMembers'; import type { ClaimPermission } from 'contexts/Pools/types'; import { useSetup } from 'contexts/Setup'; @@ -23,6 +22,7 @@ import { useSignerWarnings } from 'library/Hooks/useSignerWarnings'; import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; +import { useOverlay } from 'contexts/Overlay'; export const JoinPool = () => { const { t } = useTranslation('modals'); @@ -34,9 +34,13 @@ export const JoinPool = () => { const { getSignerWarnings } = useSignerWarnings(); const { getTransferOptions } = useTransferOptions(); const { queryPoolMember, addToPoolMembers } = usePoolMembers(); - const { setStatus: setModalStatus, config, setResize } = useModal(); + const { + setModalStatus, + config: { options }, + setResize, + } = useOverlay().modal; - const { id: poolId, setActiveTab } = config; + const { id: poolId, setActiveTab } = options; const { units } = network; const { totalPossibleBond, totalAdditionalBond } = diff --git a/src/modals/ManageFastUnstake/index.tsx b/src/modals/ManageFastUnstake/index.tsx index 1a98ab3d8b..c4d5f5e431 100644 --- a/src/modals/ManageFastUnstake/index.tsx +++ b/src/modals/ManageFastUnstake/index.tsx @@ -15,7 +15,6 @@ import { useApi } from 'contexts/Api'; import { useBonded } from 'contexts/Bonded'; import { useConnect } from 'contexts/Connect'; import { useFastUnstake } from 'contexts/FastUnstake'; -import { useModal } from 'contexts/Modal'; import { useNetworkMetrics } from 'contexts/Network'; import { useTransferOptions } from 'contexts/TransferOptions'; import { Warning } from 'library/Form/Warning'; @@ -25,6 +24,7 @@ import { useUnstaking } from 'library/Hooks/useUnstaking'; import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; import { useTxMeta } from 'contexts/TxMeta'; +import { useOverlay } from 'contexts/Overlay'; export const ManageFastUnstake = () => { const { t } = useTranslation('modals'); @@ -33,7 +33,7 @@ export const ManageFastUnstake = () => { const { getBondedAccount } = useBonded(); const { api, consts, network } = useApi(); const { isFastUnstaking } = useUnstaking(); - const { setResize, setStatus } = useModal(); + const { setResize, setModalStatus } = useOverlay().modal; const { getSignerWarnings } = useSignerWarnings(); const { activeEra, metrics } = useNetworkMetrics(); const { feeReserve, getTransferOptions } = useTransferOptions(); @@ -98,7 +98,7 @@ export const ManageFastUnstake = () => { shouldSubmit: valid, callbackSubmit: () => {}, callbackInBlock: () => { - setStatus('closing'); + setModalStatus('closing'); }, }); diff --git a/src/modals/ManagePool/Forms/ClaimCommission.tsx b/src/modals/ManagePool/Forms/ClaimCommission.tsx index 9ba6577783..63df9d887c 100644 --- a/src/modals/ManagePool/Forms/ClaimCommission.tsx +++ b/src/modals/ManagePool/Forms/ClaimCommission.tsx @@ -14,17 +14,17 @@ import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { Warning } from 'library/Form/Warning'; import { useSignerWarnings } from 'library/Hooks/useSignerWarnings'; import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { SubmitTx } from 'library/SubmitTx'; +import { useOverlay } from 'contexts/Overlay'; export const ClaimCommission = ({ setSection }: any) => { const { t } = useTranslation('modals'); const { api, network } = useApi(); - const { setStatus: setModalStatus } = useModal(); + const { setModalStatus } = useOverlay().modal; const { activeAccount } = useConnect(); const { isOwner, selectedActivePool } = useActivePools(); const { getSignerWarnings } = useSignerWarnings(); diff --git a/src/modals/ManagePool/Forms/Commission.tsx b/src/modals/ManagePool/Forms/Commission.tsx index ec6cd7e284..cc618e0f78 100644 --- a/src/modals/ManagePool/Forms/Commission.tsx +++ b/src/modals/ManagePool/Forms/Commission.tsx @@ -17,7 +17,6 @@ import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; import { useHelp } from 'contexts/Help'; -import { useModal } from 'contexts/Modal'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { useBondedPools } from 'contexts/Pools/BondedPools'; import { usePoolsConfig } from 'contexts/Pools/PoolsConfig'; @@ -30,6 +29,7 @@ import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { SubmitTx } from 'library/SubmitTx'; import 'rc-slider/assets/index.css'; import type { MaybeAccount } from 'types'; +import { useOverlay } from 'contexts/Overlay'; import { SliderWrapper } from '../Wrappers'; import type { ChangeRateInput } from './types'; @@ -40,7 +40,7 @@ export const Commission = ({ setSection, incrementCalculateHeight }: any) => { const { activeAccount } = useConnect(); const { newBatchCall } = useBatchCall(); const { stats } = usePoolsConfig(); - const { setStatus: setModalStatus } = useModal(); + const { setModalStatus } = useOverlay().modal; const { getSignerWarnings } = useSignerWarnings(); const { isOwner, selectedActivePool } = useActivePools(); const { getBondedPool, updateBondedPools } = useBondedPools(); diff --git a/src/modals/ManagePool/Forms/LeavePool.tsx b/src/modals/ManagePool/Forms/LeavePool.tsx index 5d4dc8518b..9887aea6c1 100644 --- a/src/modals/ManagePool/Forms/LeavePool.tsx +++ b/src/modals/ManagePool/Forms/LeavePool.tsx @@ -18,7 +18,6 @@ import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { useTransferOptions } from 'contexts/TransferOptions'; import { Warning } from 'library/Form/Warning'; @@ -28,13 +27,14 @@ import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { timeleftAsString } from 'library/Hooks/useTimeLeft/utils'; import { SubmitTx } from 'library/SubmitTx'; import { StaticNote } from 'modals/Utils/StaticNote'; +import { useOverlay } from 'contexts/Overlay'; export const LeavePool = ({ setSection }: any) => { const { t } = useTranslation('modals'); const { api, network, consts } = useApi(); const { activeAccount } = useConnect(); const { units } = network; - const { setStatus: setModalStatus, setResize } = useModal(); + const { setModalStatus, setResize } = useOverlay().modal; const { getTransferOptions } = useTransferOptions(); const { selectedActivePool } = useActivePools(); const { erasToSeconds } = useErasToTimeLeft(); diff --git a/src/modals/ManagePool/Forms/SetClaimPermission.tsx b/src/modals/ManagePool/Forms/SetClaimPermission.tsx index de74a251ac..0c3a0d38c6 100644 --- a/src/modals/ManagePool/Forms/SetClaimPermission.tsx +++ b/src/modals/ManagePool/Forms/SetClaimPermission.tsx @@ -7,7 +7,6 @@ import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { usePoolMemberships } from 'contexts/Pools/PoolMemberships'; import type { ClaimPermission } from 'contexts/Pools/types'; @@ -16,12 +15,13 @@ import { Warning } from 'library/Form/Warning'; import { useSignerWarnings } from 'library/Hooks/useSignerWarnings'; import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { SubmitTx } from 'library/SubmitTx'; +import { useOverlay } from 'contexts/Overlay'; export const SetClaimPermission = ({ setSection, section }: any) => { const { t } = useTranslation('modals'); const { api } = useApi(); - const { setStatus: setModalStatus } = useModal(); const { activeAccount } = useConnect(); + const { setModalStatus } = useOverlay().modal; const { isOwner, isMember } = useActivePools(); const { getSignerWarnings } = useSignerWarnings(); const { membership } = usePoolMemberships(); diff --git a/src/modals/ManagePool/Forms/SetMetadata.tsx b/src/modals/ManagePool/Forms/SetMetadata.tsx index 38b1536043..1645d0d7cd 100644 --- a/src/modals/ManagePool/Forms/SetMetadata.tsx +++ b/src/modals/ManagePool/Forms/SetMetadata.tsx @@ -8,18 +8,18 @@ import React, { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { useBondedPools } from 'contexts/Pools/BondedPools'; import { Warning } from 'library/Form/Warning'; import { useSignerWarnings } from 'library/Hooks/useSignerWarnings'; import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { SubmitTx } from 'library/SubmitTx'; +import { useOverlay } from 'contexts/Overlay'; export const SetMetadata = ({ setSection, section }: any) => { const { t } = useTranslation('modals'); const { api } = useApi(); - const { setStatus: setModalStatus } = useModal(); + const { setModalStatus } = useOverlay().modal; const { activeAccount } = useConnect(); const { isOwner, selectedActivePool } = useActivePools(); const { bondedPools, meta } = useBondedPools(); diff --git a/src/modals/ManagePool/Forms/SetState.tsx b/src/modals/ManagePool/Forms/SetState.tsx index 2a388a9ca7..e7fb393b2d 100644 --- a/src/modals/ManagePool/Forms/SetState.tsx +++ b/src/modals/ManagePool/Forms/SetState.tsx @@ -11,18 +11,18 @@ import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { useBondedPools } from 'contexts/Pools/BondedPools'; import { Warning } from 'library/Form/Warning'; import { useSignerWarnings } from 'library/Hooks/useSignerWarnings'; import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { SubmitTx } from 'library/SubmitTx'; +import { useOverlay } from 'contexts/Overlay'; export const SetState = ({ setSection, task }: any) => { const { t } = useTranslation('modals'); const { api } = useApi(); - const { setStatus: setModalStatus } = useModal(); + const { setModalStatus } = useOverlay().modal; const { activeAccount } = useConnect(); const { isOwner, isBouncer, selectedActivePool } = useActivePools(); const { updateBondedPools, getBondedPool } = useBondedPools(); diff --git a/src/modals/ManagePool/index.tsx b/src/modals/ManagePool/index.tsx index dd51b7c79c..ebad219b84 100644 --- a/src/modals/ManagePool/index.tsx +++ b/src/modals/ManagePool/index.tsx @@ -8,17 +8,17 @@ import { } from '@polkadot-cloud/react'; import { useEffect, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; -import { useModal } from 'contexts/Modal'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { Title } from 'library/Modal/Title'; import { useTxMeta } from 'contexts/TxMeta'; +import { useOverlay } from 'contexts/Overlay'; import { Forms } from './Forms'; import { Tasks } from './Tasks'; export const ManagePool = () => { const { t } = useTranslation('modals'); - const { setModalHeight } = useModal(); const { notEnoughFunds } = useTxMeta(); + const { setHeight } = useOverlay().modal; const { isOwner, selectedActivePool } = useActivePools(); // modal task @@ -45,7 +45,7 @@ export const ManagePool = () => { } else { height += formsRef.current?.clientHeight || 0; } - setModalHeight(height); + setHeight(height); }, [ section, task, diff --git a/src/modals/Networks/index.tsx b/src/modals/Networks/index.tsx index 4002e48c52..f54d0be26c 100644 --- a/src/modals/Networks/index.tsx +++ b/src/modals/Networks/index.tsx @@ -9,9 +9,9 @@ import { useEffect, useState } from 'react'; import { Trans, useTranslation } from 'react-i18next'; import { NetworkList } from 'config/networks'; import { useApi } from 'contexts/Api'; -import { useModal } from 'contexts/Modal'; import { Title } from 'library/Modal/Title'; import type { AnyJson, NetworkName } from 'types'; +import { useOverlay } from 'contexts/Overlay'; import { ReactComponent as BraveIconSVG } from '../../img/brave-logo.svg'; import { BraveWarning, @@ -23,7 +23,7 @@ import { export const Networks = () => { const { t } = useTranslation('modals'); - const { setStatus, setResize } = useModal(); + const { setModalStatus, setResize } = useOverlay().modal; const { switchNetwork, network, isLightClient } = useApi(); const networkKey: string = network.name; @@ -61,7 +61,7 @@ export const Networks = () => { onClick={() => { if (networkKey !== key) { switchNetwork(key, isLightClient); - setStatus('closing'); + setModalStatus('closing'); } }} > @@ -94,7 +94,7 @@ export const Networks = () => { type="button" onClick={() => { switchNetwork(networkKey as NetworkName, false); - setStatus('closing'); + setModalStatus('closing'); }} > <h3>RPC</h3> @@ -106,7 +106,7 @@ export const Networks = () => { type="button" onClick={() => { switchNetwork(networkKey as NetworkName, true); - setStatus('closing'); + setModalStatus('closing'); }} > <h3>{t('lightClient')}</h3> diff --git a/src/modals/Nominate/index.tsx b/src/modals/Nominate/index.tsx index 214439adf0..2529698838 100644 --- a/src/modals/Nominate/index.tsx +++ b/src/modals/Nominate/index.tsx @@ -9,7 +9,6 @@ import { useApi } from 'contexts/Api'; import { useBalances } from 'contexts/Balances'; import { useBonded } from 'contexts/Bonded'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { useStaking } from 'contexts/Staking'; import { Warning } from 'library/Form/Warning'; import { useSignerWarnings } from 'library/Hooks/useSignerWarnings'; @@ -17,6 +16,7 @@ import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; import { useTxMeta } from 'contexts/TxMeta'; +import { useOverlay } from 'contexts/Overlay'; export const Nominate = () => { const { t } = useTranslation('modals'); @@ -27,7 +27,7 @@ export const Nominate = () => { const { getStashLedger } = useBalances(); const { targets, staking } = useStaking(); const { getSignerWarnings } = useSignerWarnings(); - const { setStatus: setModalStatus, setResize } = useModal(); + const { setModalStatus, setResize } = useOverlay().modal; const { units, unit } = network; const { minNominatorBond } = staking; diff --git a/src/modals/NominateFromFavorites/index.tsx b/src/modals/NominateFromFavorites/index.tsx index c31f1a8111..99d3cb0763 100644 --- a/src/modals/NominateFromFavorites/index.tsx +++ b/src/modals/NominateFromFavorites/index.tsx @@ -11,7 +11,6 @@ import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useBonded } from 'contexts/Bonded'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { useValidators } from 'contexts/Validators'; import type { Validator } from 'contexts/Validators/types'; @@ -22,6 +21,7 @@ import { Title } from 'library/Modal/Title'; import { SubmitTx } from 'library/SubmitTx'; import { ValidatorList } from 'library/ValidatorList'; import { useTxMeta } from 'contexts/TxMeta'; +import { useOverlay } from 'contexts/Overlay'; import { ListWrapper } from './Wrappers'; export const NominateFromFavorites = () => { @@ -32,12 +32,16 @@ export const NominateFromFavorites = () => { const { getBondedAccount } = useBonded(); const { favoritesList } = useValidators(); const { getSignerWarnings } = useSignerWarnings(); - const { config, setStatus: setModalStatus, setResize } = useModal(); + const { + config: { options }, + setModalStatus, + setResize, + } = useOverlay().modal; const { selectedActivePool, isNominator, isOwner } = useActivePools(); const controller = getBondedAccount(activeAccount); const { maxNominations } = consts; - const { bondFor, nominations } = config; + const { bondFor, nominations } = options; const signingAccount = bondFor === 'pool' ? activeAccount : controller; // store filtered favorites diff --git a/src/modals/NominatePool/index.tsx b/src/modals/NominatePool/index.tsx index bc011f2c68..e3daa5eee5 100644 --- a/src/modals/NominatePool/index.tsx +++ b/src/modals/NominatePool/index.tsx @@ -6,7 +6,6 @@ import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { Warning } from 'library/Form/Warning'; import { useSignerWarnings } from 'library/Hooks/useSignerWarnings'; @@ -14,11 +13,12 @@ import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; import { useTxMeta } from 'contexts/TxMeta'; +import { useOverlay } from 'contexts/Overlay'; export const NominatePool = () => { const { t } = useTranslation('modals'); const { api } = useApi(); - const { setStatus: setModalStatus, setResize } = useModal(); + const { setModalStatus, setResize } = useOverlay().modal; const { activeAccount } = useConnect(); const { selectedActivePool, isOwner, isNominator, targets } = useActivePools(); diff --git a/src/modals/PoolNominations/index.tsx b/src/modals/PoolNominations/index.tsx index c6ad4bc007..eb92274fb6 100644 --- a/src/modals/PoolNominations/index.tsx +++ b/src/modals/PoolNominations/index.tsx @@ -3,14 +3,16 @@ import { ModalPadding } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; -import { useModal } from 'contexts/Modal'; import { Title } from 'library/Modal/Title'; import { ValidatorList } from 'library/ValidatorList'; +import { useOverlay } from 'contexts/Overlay'; import { ListWrapper } from './Wrappers'; export const PoolNominations = () => { - const { config } = useModal(); - const { nominator, targets } = config; + const { + config: { options }, + } = useOverlay().modal; + const { nominator, targets } = options; const batchKey = 'pool_nominations'; const { t } = useTranslation('modals'); diff --git a/src/modals/SelectFavorites/index.tsx b/src/modals/SelectFavorites/index.tsx index f8e926200e..d9970fcca1 100644 --- a/src/modals/SelectFavorites/index.tsx +++ b/src/modals/SelectFavorites/index.tsx @@ -5,20 +5,24 @@ import { ModalPadding } from '@polkadot-cloud/react'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; -import { useModal } from 'contexts/Modal'; import { useValidators } from 'contexts/Validators'; import type { Validator } from 'contexts/Validators/types'; import { Title } from 'library/Modal/Title'; import { ValidatorList } from 'library/ValidatorList'; +import { useOverlay } from 'contexts/Overlay'; import { FooterWrapper, ListWrapper } from './Wrappers'; export const SelectFavorites = () => { const { t } = useTranslation('modals'); const { consts } = useApi(); - const { config, setStatus, setResize } = useModal(); + const { + config: { options }, + setModalStatus, + setResize, + } = useOverlay().modal; const { favoritesList } = useValidators(); const { maxNominations } = consts; - const { nominations, callback: generateNominationsCallback } = config; + const { nominations, callback: generateNominationsCallback } = options; // store filtered favorites const [availableFavorites, setAvailableFavorites] = useState<Validator[]>([]); @@ -55,7 +59,7 @@ export const SelectFavorites = () => { if (!selectedFavorites.length) return; const newNominations = [...nominations].concat(...selectedFavorites); generateNominationsCallback(newNominations); - setStatus('closing'); + setModalStatus('closing'); }; const totalAfterSelection = nominations.length + selectedFavorites.length; diff --git a/src/modals/Unbond/index.tsx b/src/modals/Unbond/index.tsx index b250a5b1b7..bf30c56628 100644 --- a/src/modals/Unbond/index.tsx +++ b/src/modals/Unbond/index.tsx @@ -10,7 +10,6 @@ import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useBonded } from 'contexts/Bonded'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { usePoolsConfig } from 'contexts/Pools/PoolsConfig'; import { useStaking } from 'contexts/Staking'; @@ -25,6 +24,7 @@ import { timeleftAsString } from 'library/Hooks/useTimeLeft/utils'; import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; import { StaticNote } from 'modals/Utils/StaticNote'; +import { useOverlay } from 'contexts/Overlay'; export const Unbond = () => { const { t } = useTranslation('modals'); @@ -39,10 +39,14 @@ export const Unbond = () => { const { getSignerWarnings } = useSignerWarnings(); const { getTransferOptions } = useTransferOptions(); const { isDepositor, selectedActivePool } = useActivePools(); - const { setStatus: setModalStatus, setResize, config } = useModal(); + const { + setModalStatus, + setResize, + config: { options }, + } = useOverlay().modal; const { units } = network; - const { bondFor } = config; + const { bondFor } = options; const controller = getBondedAccount(activeAccount); const { minNominatorBond: minNominatorBondBn } = staking; const { minJoinBond: minJoinBondBn, minCreateBond: minCreateBondBn } = stats; diff --git a/src/modals/UnbondPoolMember/index.tsx b/src/modals/UnbondPoolMember/index.tsx index 21d6f4d442..c79d51ef52 100644 --- a/src/modals/UnbondPoolMember/index.tsx +++ b/src/modals/UnbondPoolMember/index.tsx @@ -14,7 +14,6 @@ import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { Warning } from 'library/Form/Warning'; import { useErasToTimeLeft } from 'library/Hooks/useErasToTimeLeft'; import { useSignerWarnings } from 'library/Hooks/useSignerWarnings'; @@ -24,6 +23,7 @@ import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; import { StaticNote } from 'modals/Utils/StaticNote'; import { useTxMeta } from 'contexts/TxMeta'; +import { useOverlay } from 'contexts/Overlay'; export const UnbondPoolMember = () => { const { t } = useTranslation('modals'); @@ -32,11 +32,15 @@ export const UnbondPoolMember = () => { const { api, network, consts } = useApi(); const { erasToSeconds } = useErasToTimeLeft(); const { getSignerWarnings } = useSignerWarnings(); - const { setStatus: setModalStatus, setResize, config } = useModal(); + const { + setModalStatus, + setResize, + config: { options }, + } = useOverlay().modal; const { units } = network; const { bondDuration } = consts; - const { member, who } = config; + const { member, who } = options; const { points } = member; const freeToUnbond = planckToUnit(new BigNumber(rmCommas(points)), units); diff --git a/src/modals/UnlockChunks/Forms.tsx b/src/modals/UnlockChunks/Forms.tsx index e7dd33facd..c8624b63ba 100644 --- a/src/modals/UnlockChunks/Forms.tsx +++ b/src/modals/UnlockChunks/Forms.tsx @@ -14,7 +14,6 @@ import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useBonded } from 'contexts/Bonded'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { useBondedPools } from 'contexts/Pools/BondedPools'; import { usePoolMembers } from 'contexts/Pools/PoolMembers'; @@ -24,6 +23,7 @@ import { Warning } from 'library/Form/Warning'; import { useSignerWarnings } from 'library/Hooks/useSignerWarnings'; import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { SubmitTx } from 'library/SubmitTx'; +import { useOverlay } from 'contexts/Overlay'; import { ContentWrapper } from './Wrappers'; export const Forms = forwardRef( @@ -36,11 +36,14 @@ export const Forms = forwardRef( const { selectedActivePool } = useActivePools(); const { removeFromBondedPools } = useBondedPools(); const { removePoolMember } = usePoolMembers(); - const { setStatus: setModalStatus, config } = useModal(); + const { + setModalStatus, + config: { options }, + } = useOverlay().modal; const { getBondedAccount } = useBonded(); const { getSignerWarnings } = useSignerWarnings(); - const { bondFor, poolClosure } = config || {}; + const { bondFor, poolClosure } = options || {}; const { historyDepth } = consts; const { units } = network; const controller = getBondedAccount(activeAccount); diff --git a/src/modals/UnlockChunks/index.tsx b/src/modals/UnlockChunks/index.tsx index 204bdfc9be..bcab0f5b09 100644 --- a/src/modals/UnlockChunks/index.tsx +++ b/src/modals/UnlockChunks/index.tsx @@ -11,10 +11,10 @@ import { useEffect, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useBalances } from 'contexts/Balances'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { Title } from 'library/Modal/Title'; import { useTxMeta } from 'contexts/TxMeta'; +import { useOverlay } from 'contexts/Overlay'; import { Forms } from './Forms'; import { Overview } from './Overview'; @@ -23,9 +23,12 @@ export const UnlockChunks = () => { const { activeAccount } = useConnect(); const { notEnoughFunds } = useTxMeta(); const { getStashLedger } = useBalances(); - const { config, setModalHeight } = useModal(); + const { + config: { options }, + setHeight, + } = useOverlay().modal; const { getPoolUnlocking } = useActivePools(); - const { bondFor } = config || {}; + const { bondFor } = options || {}; // get the unlocking per bondFor const getUnlocking = () => { @@ -76,7 +79,7 @@ export const UnlockChunks = () => { // resize modal on state change useEffect(() => { - setModalHeight(getModalHeight()); + setHeight(getModalHeight()); }, [task, notEnoughFunds, sectionRef.current, unlocking]); // resize this modal on window resize @@ -87,7 +90,7 @@ export const UnlockChunks = () => { }; }, []); const resizeCallback = () => { - setModalHeight(getModalHeight()); + setHeight(getModalHeight()); }; return ( diff --git a/src/modals/Unstake/index.tsx b/src/modals/Unstake/index.tsx index e9b22995aa..24b380137b 100644 --- a/src/modals/Unstake/index.tsx +++ b/src/modals/Unstake/index.tsx @@ -13,7 +13,6 @@ import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useBonded } from 'contexts/Bonded'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { useTransferOptions } from 'contexts/TransferOptions'; import { Warning } from 'library/Form/Warning'; import { useBatchCall } from 'library/Hooks/useBatchCall'; @@ -25,6 +24,7 @@ import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; import { StaticNote } from 'modals/Utils/StaticNote'; import { useTxMeta } from 'contexts/TxMeta'; +import { useOverlay } from 'contexts/Overlay'; export const Unstake = () => { const { t } = useTranslation('modals'); @@ -35,7 +35,7 @@ export const Unstake = () => { const { erasToSeconds } = useErasToTimeLeft(); const { getSignerWarnings } = useSignerWarnings(); const { getTransferOptions } = useTransferOptions(); - const { setStatus: setModalStatus, setResize } = useModal(); + const { setModalStatus, setResize } = useOverlay().modal; const { getBondedAccount, getAccountNominations } = useBonded(); const { units } = network; diff --git a/src/modals/UpdateController/index.tsx b/src/modals/UpdateController/index.tsx index 8ea287dc93..1849da3aeb 100644 --- a/src/modals/UpdateController/index.tsx +++ b/src/modals/UpdateController/index.tsx @@ -6,7 +6,6 @@ import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useBonded } from 'contexts/Bonded'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { Warning } from 'library/Form/Warning'; import { useSignerWarnings } from 'library/Hooks/useSignerWarnings'; import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; @@ -14,6 +13,7 @@ import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; import { useTxMeta } from 'contexts/TxMeta'; import { useEffect } from 'react'; +import { useOverlay } from 'contexts/Overlay'; import { Switch } from './Switch'; import { Wrapper } from './Wrapper'; @@ -24,7 +24,7 @@ export const UpdateController = () => { const { getBondedAccount } = useBonded(); const { getSignerWarnings } = useSignerWarnings(); const { activeAccount, getAccount } = useConnect(); - const { setStatus: setModalStatus, setResize } = useModal(); + const { setModalStatus, setResize } = useOverlay().modal; const controller = getBondedAccount(activeAccount); const account = getAccount(controller); diff --git a/src/modals/UpdatePayee/index.tsx b/src/modals/UpdatePayee/index.tsx index 88efd4b034..82d798753b 100644 --- a/src/modals/UpdatePayee/index.tsx +++ b/src/modals/UpdatePayee/index.tsx @@ -8,7 +8,6 @@ import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useBonded } from 'contexts/Bonded'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import type { PayeeConfig, PayeeOptions } from 'contexts/Setup/types'; import { useStaking } from 'contexts/Staking'; import { Warning } from 'library/Form/Warning'; @@ -22,6 +21,7 @@ import { SelectItem } from 'library/SelectItems/Item'; import { SubmitTx } from 'library/SubmitTx'; import type { MaybeAccount } from 'types'; import { useTxMeta } from 'contexts/TxMeta'; +import { useOverlay } from 'contexts/Overlay'; export const UpdatePayee = () => { const { t } = useTranslation('modals'); @@ -32,7 +32,7 @@ export const UpdatePayee = () => { const { getBondedAccount } = useBonded(); const { getPayeeItems } = usePayeeConfig(); const { getSignerWarnings } = useSignerWarnings(); - const { setStatus: setModalStatus, setResize } = useModal(); + const { setModalStatus, setResize } = useOverlay().modal; const controller = getBondedAccount(activeAccount); const { payee } = staking; diff --git a/src/modals/UpdateReserve/index.tsx b/src/modals/UpdateReserve/index.tsx index e1f5455c47..ac55565322 100644 --- a/src/modals/UpdateReserve/index.tsx +++ b/src/modals/UpdateReserve/index.tsx @@ -16,13 +16,13 @@ import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; import { useHelp } from 'contexts/Help'; -import { useModal } from 'contexts/Modal'; import { useTransferOptions } from 'contexts/TransferOptions'; import { CardHeaderWrapper } from 'library/Card/Wrappers'; import { Close } from 'library/Modal/Close'; import { Title } from 'library/Modal/Title'; import { SliderWrapper } from 'modals/ManagePool/Wrappers'; import 'rc-slider/assets/index.css'; +import { useOverlay } from 'contexts/Overlay'; export const UpdateReserve = () => { const { t } = useTranslation('modals'); @@ -30,7 +30,7 @@ export const UpdateReserve = () => { network: { units, unit }, } = useApi(); const { network } = useApi(); - const { setStatus } = useModal(); + const { setModalStatus } = useOverlay().modal; const { openHelp } = useHelp(); const { feeReserve, setFeeReserveBalance, getTransferOptions } = useTransferOptions(); @@ -140,9 +140,7 @@ export const UpdateReserve = () => { <div className="done"> <ButtonPrimaryInvert text={t('done')} - onClick={() => { - setStatus('closing'); - }} + onClick={() => setModalStatus('closing')} disabled={!accountHasSigner(activeAccount)} /> </div> diff --git a/src/modals/ValidatorMetrics/index.tsx b/src/modals/ValidatorMetrics/index.tsx index f417cd0a82..8c83697609 100644 --- a/src/modals/ValidatorMetrics/index.tsx +++ b/src/modals/ValidatorMetrics/index.tsx @@ -8,7 +8,6 @@ import { useEffect, useState, useRef } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useHelp } from 'contexts/Help'; -import { useModal } from 'contexts/Modal'; import { useNetworkMetrics } from 'contexts/Network'; import { useStaking } from 'contexts/Staking'; import { useSubscan } from 'contexts/Subscan'; @@ -22,14 +21,15 @@ import { Title } from 'library/Modal/Title'; import { StatWrapper, StatsWrapper } from 'library/Modal/Wrappers'; import { StatusLabel } from 'library/StatusLabel'; import { SubscanButton } from 'library/SubscanButton'; +import { useOverlay } from 'contexts/Overlay'; export const ValidatorMetrics = () => { const { t } = useTranslation('modals'); const { network: { units, unit }, } = useApi(); - const { config } = useModal(); - const { address, identity } = config; + const { options } = useOverlay().modal.config; + const { address, identity } = options; const { fetchEraPoints }: any = useSubscan(); const { activeEra } = useNetworkMetrics(); const { diff --git a/src/modals/WithdrawPoolMember/index.tsx b/src/modals/WithdrawPoolMember/index.tsx index 92e079233c..37ff8aa16f 100644 --- a/src/modals/WithdrawPoolMember/index.tsx +++ b/src/modals/WithdrawPoolMember/index.tsx @@ -8,7 +8,6 @@ import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { useNetworkMetrics } from 'contexts/Network'; import { usePoolMembers } from 'contexts/Pools/PoolMembers'; import { Warning } from 'library/Form/Warning'; @@ -17,18 +16,23 @@ import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; import { useTxMeta } from 'contexts/TxMeta'; +import { useOverlay } from 'contexts/Overlay'; export const WithdrawPoolMember = () => { const { t } = useTranslation('modals'); const { api, network, consts } = useApi(); const { activeAccount } = useConnect(); - const { setStatus: setModalStatus, config, setResize } = useModal(); + const { + setModalStatus, + config: { options }, + setResize, + } = useOverlay().modal; const { activeEra } = useNetworkMetrics(); const { removePoolMember } = usePoolMembers(); const { getSignerWarnings } = useSignerWarnings(); const { notEnoughFunds } = useTxMeta(); - const { member, who } = config; + const { member, who } = options; const { historyDepth } = consts; const { unbondingEras, points } = member; diff --git a/src/modals/index.tsx b/src/modals/index.tsx index a2632e643f..cee3efcdc3 100644 --- a/src/modals/index.tsx +++ b/src/modals/index.tsx @@ -6,9 +6,9 @@ import { useAnimation } from 'framer-motion'; import { useEffect, useRef } from 'react'; import { ErrorBoundary } from 'react-error-boundary'; import { ErrorFallbackModal } from 'library/ErrorBoundary'; -import { useModal } from 'contexts/Modal'; import { useHelp } from 'contexts/Help'; import { useCanvas } from 'contexts/Canvas'; +import { useOverlay } from 'contexts/Overlay'; import { AccountPoolRoles } from './AccountPoolRoles'; import { Accounts } from './Accounts'; import { Bio } from './Bio'; @@ -43,20 +43,17 @@ import { WithdrawPoolMember } from './WithdrawPoolMember'; export const Modal = () => { const { - size, - modal, + config: { key, size, options }, status, height, resize, - config, - setStatus, - setModalRef, + setModalStatus, + setRef, setHeightRef, - modalMaxHeight, - setModalHeight, - } = useModal(); + maxHeight, + setHeight, + } = useOverlay().modal; const controls = useAnimation(); - const maxHeight = modalMaxHeight(); const { status: helpStatus } = useHelp(); const { status: canvasStatus } = useCanvas(); const modalRef = useRef<HTMLDivElement>(null); @@ -64,7 +61,7 @@ export const Modal = () => { const onOutClose = async () => { await controls.start('out'); - setStatus('closed'); + setModalStatus('closed'); }; const onIn = async () => { await controls.start('in'); @@ -74,17 +71,17 @@ export const Modal = () => { }; const windowResize = () => { - if (!config?.disableWindowResize) { + if (!options?.disableWindowResize) { window.addEventListener('resize', handleResize); } }; const handleResize = () => { - if (status !== 'open' || config?.disableWindowResize) return; + if (status !== 'open' || options?.disableWindowResize) return; let h = modalRef.current?.clientHeight ?? 0; h = h > maxHeight ? maxHeight : h; - setModalHeight(h); + setHeight(h); }; // Control on modal status change. @@ -119,7 +116,7 @@ export const Modal = () => { // store the modal's content ref. useEffect(() => { - setModalRef(modalRef); + setRef(modalRef); setHeightRef(heightRef); }, [modalRef?.current, heightRef?.current]); @@ -162,7 +159,7 @@ export const Modal = () => { style={{ height, overflow: - height >= maxHeight && !config?.disableScroll + height >= maxHeight && !options?.disableScroll ? 'scroll' : 'hidden', }} @@ -174,39 +171,37 @@ export const Modal = () => { } > <ErrorBoundary FallbackComponent={ErrorFallbackModal}> - {modal === 'AccountPoolRoles' && <AccountPoolRoles />} - {modal === 'Bio' && <Bio />} - {modal === 'Bond' && <Bond />} - {modal === 'ChangeNominations' && <ChangeNominations />} - {modal === 'ChangePoolRoles' && <ChangePoolRoles />} - {modal === 'ChooseLanguage' && <ChooseLanguage />} - {modal === 'ClaimReward' && <ClaimReward />} - {modal === 'Connect' && <Connect />} - {modal === 'Accounts' && <Accounts />} - {modal === 'GoToFeedback' && <GoToFeedback />} - {modal === 'JoinPool' && <JoinPool />} - {modal === 'ImportLedger' && <ImportLedger />} - {modal === 'ImportVault' && <ImportVault />} - {modal === 'ManagePool' && <ManagePool />} - {modal === 'ManageFastUnstake' && <ManageFastUnstake />} - {modal === 'Networks' && <Networks />} - {modal === 'Nominate' && <Nominate />} - {modal === 'NominateFromFavorites' && ( - <NominateFromFavorites /> - )} - {modal === 'NominatePool' && <NominatePool />} - {modal === 'PoolNominations' && <PoolNominations />} - {modal === 'SelectFavorites' && <SelectFavorites />} - {modal === 'Settings' && <Settings />} - {modal === 'ValidatorMetrics' && <ValidatorMetrics />} - {modal === 'UnbondPoolMember' && <UnbondPoolMember />} - {modal === 'UnlockChunks' && <UnlockChunks />} - {modal === 'Unstake' && <Unstake />} - {modal === 'UpdateController' && <UpdateController />} - {modal === 'Unbond' && <Unbond />} - {modal === 'UpdatePayee' && <UpdatePayee />} - {modal === 'UpdateReserve' && <UpdateReserve />} - {modal === 'WithdrawPoolMember' && <WithdrawPoolMember />} + {key === 'AccountPoolRoles' && <AccountPoolRoles />} + {key === 'Bio' && <Bio />} + {key === 'Bond' && <Bond />} + {key === 'ChangeNominations' && <ChangeNominations />} + {key === 'ChangePoolRoles' && <ChangePoolRoles />} + {key === 'ChooseLanguage' && <ChooseLanguage />} + {key === 'ClaimReward' && <ClaimReward />} + {key === 'Connect' && <Connect />} + {key === 'Accounts' && <Accounts />} + {key === 'GoToFeedback' && <GoToFeedback />} + {key === 'JoinPool' && <JoinPool />} + {key === 'ImportLedger' && <ImportLedger />} + {key === 'ImportVault' && <ImportVault />} + {key === 'ManagePool' && <ManagePool />} + {key === 'ManageFastUnstake' && <ManageFastUnstake />} + {key === 'Networks' && <Networks />} + {key === 'Nominate' && <Nominate />} + {key === 'NominateFromFavorites' && <NominateFromFavorites />} + {key === 'NominatePool' && <NominatePool />} + {key === 'PoolNominations' && <PoolNominations />} + {key === 'SelectFavorites' && <SelectFavorites />} + {key === 'Settings' && <Settings />} + {key === 'ValidatorMetrics' && <ValidatorMetrics />} + {key === 'UnbondPoolMember' && <UnbondPoolMember />} + {key === 'UnlockChunks' && <UnlockChunks />} + {key === 'Unstake' && <Unstake />} + {key === 'UpdateController' && <UpdateController />} + {key === 'Unbond' && <Unbond />} + {key === 'UpdatePayee' && <UpdatePayee />} + {key === 'UpdateReserve' && <UpdateReserve />} + {key === 'WithdrawPoolMember' && <WithdrawPoolMember />} </ErrorBoundary> </ModalCard> </ModalHeight> @@ -214,7 +209,7 @@ export const Modal = () => { type="button" className="close" onClick={() => { - setStatus('closing'); + setModalStatus('closing'); }} >   diff --git a/src/pages/Community/Item.tsx b/src/pages/Community/Item.tsx index a7639bf8b1..ab96bbfaa6 100644 --- a/src/pages/Community/Item.tsx +++ b/src/pages/Community/Item.tsx @@ -11,14 +11,14 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { Suspense, lazy, useMemo } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; -import { useModal } from 'contexts/Modal'; +import { useOverlay } from 'contexts/Overlay'; import { ItemWrapper } from './Wrappers'; import { useCommunitySections } from './context'; import type { ItemProps } from './types'; export const Item = ({ item, actionable }: ItemProps) => { const { t } = useTranslation('pages'); - const { openModalWith } = useModal(); + const { openModal } = useOverlay().modal; const { network } = useApi(); const { @@ -76,7 +76,7 @@ export const Item = ({ item, actionable }: ItemProps) => { {name} <button type="button" - onClick={() => openModalWith('Bio', { name, bio }, 'large')} + onClick={() => openModal({ key: 'Bio', options: { name, bio } })} className="active" > <span>{t('community.bio')}</span> diff --git a/src/pages/Nominate/Active/ControllerNotStash.tsx b/src/pages/Nominate/Active/ControllerNotStash.tsx index 7a6f1add23..be7017ca83 100644 --- a/src/pages/Nominate/Active/ControllerNotStash.tsx +++ b/src/pages/Nominate/Active/ControllerNotStash.tsx @@ -13,10 +13,10 @@ import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useBonded } from 'contexts/Bonded'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { useStaking } from 'contexts/Staking'; import { useUi } from 'contexts/UI'; import { CardHeaderWrapper, CardWrapper } from 'library/Card/Wrappers'; +import { useOverlay } from 'contexts/Overlay'; export const ControllerNotStash = () => { const { t } = useTranslation('pages'); @@ -24,7 +24,7 @@ export const ControllerNotStash = () => { const { activeAccount, isReadOnlyAccount } = useConnect(); const { addressDifferentToStash } = useStaking(); const { getBondedAccount } = useBonded(); - const { openModalWith } = useModal(); + const { openModal } = useOverlay().modal; const { isSyncing } = useUi(); const controller = getBondedAccount(activeAccount); @@ -57,9 +57,7 @@ export const ControllerNotStash = () => { <ButtonPrimary text={t('nominate.updateToStash')} iconLeft={faCircleArrowRight} - onClick={() => - openModalWith('UpdateController', {}, 'large') - } + onClick={() => openModal({ key: 'UpdateController' })} /> </div> </CardWrapper> diff --git a/src/pages/Nominate/Active/ManageBond.tsx b/src/pages/Nominate/Active/ManageBond.tsx index 859fb6c2ae..047db40d05 100644 --- a/src/pages/Nominate/Active/ManageBond.tsx +++ b/src/pages/Nominate/Active/ManageBond.tsx @@ -10,18 +10,18 @@ import { useApi } from 'contexts/Api'; import { useBalances } from 'contexts/Balances'; import { useConnect } from 'contexts/Connect'; import { useHelp } from 'contexts/Help'; -import { useModal } from 'contexts/Modal'; import { useStaking } from 'contexts/Staking'; import { useTransferOptions } from 'contexts/TransferOptions'; import { useUi } from 'contexts/UI'; import { CardHeaderWrapper } from 'library/Card/Wrappers'; import { useUnstaking } from 'library/Hooks/useUnstaking'; +import { useOverlay } from 'contexts/Overlay'; import { BondedChart } from '../../../library/BarChart/BondedChart'; export const ManageBond = () => { const { t } = useTranslation('pages'); const { network } = useApi(); - const { openModalWith } = useModal(); + const { openModal } = useOverlay().modal; const { activeAccount, isReadOnlyAccount } = useConnect(); const { getStashLedger } = useBalances(); const { getTransferOptions } = useTransferOptions(); @@ -57,7 +57,11 @@ export const ManageBond = () => { } marginRight onClick={() => - openModalWith('Bond', { bondFor: 'nominator' }, 'small') + openModal({ + key: 'Bond', + options: { bondFor: 'nominator' }, + size: 'small', + }) } text="+" /> @@ -70,7 +74,11 @@ export const ManageBond = () => { } marginRight onClick={() => - openModalWith('Unbond', { bondFor: 'nominator' }, 'small') + openModal({ + key: 'Unbond', + options: { bondFor: 'nominator' }, + size: 'small', + }) } text="-" /> @@ -81,11 +89,11 @@ export const ManageBond = () => { iconLeft={faLockOpen} marginRight onClick={() => - openModalWith( - 'UnlockChunks', - { bondFor: 'nominator', disableWindowResize: true }, - 'small' - ) + openModal({ + key: 'UnlockChunks', + options: { bondFor: 'nominator', disableWindowResize: true }, + size: 'small', + }) } text={String(totalUnlockChuncks ?? 0)} /> diff --git a/src/pages/Nominate/Active/Nominations/index.tsx b/src/pages/Nominate/Active/Nominations/index.tsx index 8904c0a745..d2783e8bdc 100644 --- a/src/pages/Nominate/Active/Nominations/index.tsx +++ b/src/pages/Nominate/Active/Nominations/index.tsx @@ -7,7 +7,6 @@ import { useTranslation } from 'react-i18next'; import { useBonded } from 'contexts/Bonded'; import { useConnect } from 'contexts/Connect'; import { useHelp } from 'contexts/Help'; -import { useModal } from 'contexts/Modal'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { useStaking } from 'contexts/Staking'; import { useUi } from 'contexts/UI'; @@ -16,6 +15,7 @@ import { CardHeaderWrapper } from 'library/Card/Wrappers'; import { useUnstaking } from 'library/Hooks/useUnstaking'; import { ValidatorList } from 'library/ValidatorList'; import type { MaybeAccount } from 'types'; +import { useOverlay } from 'contexts/Overlay'; import { Wrapper } from './Wrapper'; export const Nominations = ({ @@ -26,7 +26,7 @@ export const Nominations = ({ nominator: MaybeAccount; }) => { const { t } = useTranslation('pages'); - const { openModalWith } = useModal(); + const { openModal } = useOverlay().modal; const { inSetup } = useStaking(); const { isSyncing } = useUi(); const { activeAccount, isReadOnlyAccount } = useConnect(); @@ -58,30 +58,30 @@ export const Nominations = ({ // callback function to stop nominating selected validators const cbStopNominatingSelected = (provider: any) => { const { selected } = provider; - openModalWith( - 'ChangeNominations', - { + openModal({ + key: 'ChangeNominations', + options: { nominations: [...nominations].filter( (n) => !selected.map((_s: any) => _s.address).includes(n) ), provider, bondFor, }, - 'small' - ); + size: 'small', + }); }; // callback function for adding nominations const cbAddNominations = ({ setSelectActive }: any) => { setSelectActive(false); - openModalWith( - 'NominateFromFavorites', - { + openModal({ + key: 'NominateFromFavorites', + options: { nominations, bondFor, }, - 'xl' - ); + size: 'xl', + }); }; // determine whether buttons are disabled @@ -116,14 +116,14 @@ export const Nominations = ({ text={t('nominate.stop')} disabled={stopBtnDisabled} onClick={() => - openModalWith( - 'ChangeNominations', - { + openModal({ + key: 'ChangeNominations', + options: { nominations: [], bondFor, }, - 'small' - ) + size: 'small', + }) } /> )} diff --git a/src/pages/Nominate/Active/Status/NominationStatus.tsx b/src/pages/Nominate/Active/Status/NominationStatus.tsx index f19a5a93b9..18cb84460d 100644 --- a/src/pages/Nominate/Active/Status/NominationStatus.tsx +++ b/src/pages/Nominate/Active/Status/NominationStatus.tsx @@ -11,7 +11,6 @@ import { useApi } from 'contexts/Api'; import { useBonded } from 'contexts/Bonded'; import { useConnect } from 'contexts/Connect'; import { useFastUnstake } from 'contexts/FastUnstake'; -import { useModal } from 'contexts/Modal'; import { useNetworkMetrics } from 'contexts/Network'; import { useSetup } from 'contexts/Setup'; import { useStaking } from 'contexts/Staking'; @@ -19,6 +18,7 @@ import { useUi } from 'contexts/UI'; import { useNominationStatus } from 'library/Hooks/useNominationStatus'; import { useUnstaking } from 'library/Hooks/useUnstaking'; import { Stat } from 'library/Stat'; +import { useOverlay } from 'contexts/Overlay'; export const NominationStatus = ({ showButtons = true, @@ -31,7 +31,7 @@ export const NominationStatus = ({ const { isReady } = useApi(); const { inSetup } = useStaking(); const { isNetworkSyncing } = useUi(); - const { openModalWith } = useModal(); + const { openModal } = useOverlay().modal; const { metrics } = useNetworkMetrics(); const { getBondedAccount } = useBonded(); const { checking, isExposed } = useFastUnstake(); @@ -55,14 +55,14 @@ export const NominationStatus = ({ title: fastUnstakeText, icon: faBolt, onClick: () => { - openModalWith('ManageFastUnstake', {}, 'small'); + openModal({ key: 'ManageFastUnstake', size: 'small' }); }, } : { title: t('nominate.unstake'), icon: faSignOutAlt, disabled: !isReady || isReadOnlyAccount(controller) || !activeAccount, - onClick: () => openModalWith('Unstake', {}, 'small'), + onClick: () => openModal({ key: 'Unstake', size: 'small' }), }; // Display progress alongside start title if exists and in setup. diff --git a/src/pages/Nominate/Active/Status/PayoutDestinationStatus.tsx b/src/pages/Nominate/Active/Status/PayoutDestinationStatus.tsx index 746108053e..cd0ac4599e 100644 --- a/src/pages/Nominate/Active/Status/PayoutDestinationStatus.tsx +++ b/src/pages/Nominate/Active/Status/PayoutDestinationStatus.tsx @@ -4,17 +4,17 @@ import { faGear, faWallet } from '@fortawesome/free-solid-svg-icons'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { useStaking } from 'contexts/Staking'; import { useUi } from 'contexts/UI'; import { usePayeeConfig } from 'library/Hooks/usePayeeConfig'; import { useUnstaking } from 'library/Hooks/useUnstaking'; import { Stat } from 'library/Stat'; +import { useOverlay } from 'contexts/Overlay'; export const PayoutDestinationStatus = () => { const { t } = useTranslation('pages'); const { isSyncing } = useUi(); - const { openModalWith } = useModal(); + const { openModal } = useOverlay().modal; const { staking, inSetup } = useStaking(); const { isFastUnstaking } = useUnstaking(); const { getPayeeItems } = usePayeeConfig(); @@ -60,7 +60,7 @@ export const PayoutDestinationStatus = () => { isSyncing || isReadOnlyAccount(activeAccount) || isFastUnstaking, - onClick: () => openModalWith('UpdatePayee', {}, 'small'), + onClick: () => openModal({ key: 'UpdatePayee', size: 'small' }), }, ] : [] diff --git a/src/pages/Nominate/Active/UnstakePrompts.tsx b/src/pages/Nominate/Active/UnstakePrompts.tsx index 87d2bc605f..147b03fb6b 100644 --- a/src/pages/Nominate/Active/UnstakePrompts.tsx +++ b/src/pages/Nominate/Active/UnstakePrompts.tsx @@ -7,19 +7,19 @@ import { isNotZero } from '@polkadot-cloud/utils'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { useTheme } from 'contexts/Themes'; import { useTransferOptions } from 'contexts/TransferOptions'; import { useUi } from 'contexts/UI'; import { CardWrapper } from 'library/Card/Wrappers'; import { useUnstaking } from 'library/Hooks/useUnstaking'; +import { useOverlay } from 'contexts/Overlay'; export const UnstakePrompts = () => { const { t } = useTranslation('pages'); const { unit, colors } = useApi().network; const { activeAccount } = useConnect(); const { mode } = useTheme(); - const { openModalWith } = useModal(); + const { openModal } = useOverlay().modal; const { isNetworkSyncing } = useUi(); const { isFastUnstaking, isUnstaking, getFastUnstakeText } = useUnstaking(); const { getTransferOptions } = useTransferOptions(); @@ -64,7 +64,7 @@ export const UnstakePrompts = () => { iconLeft={faBolt} text={getFastUnstakeText()} onClick={() => - openModalWith('ManageFastUnstake', {}, 'small') + openModal({ key: 'ManageFastUnstake', size: 'small' }) } /> ) : ( @@ -77,15 +77,15 @@ export const UnstakePrompts = () => { } disabled={false} onClick={() => - openModalWith( - 'UnlockChunks', - { + openModal({ + key: 'UnlockChunks', + options: { bondFor: 'nominator', poolClosure: true, disableWindowResize: true, }, - 'small' - ) + size: 'small', + }) } /> )} diff --git a/src/pages/Nominate/Active/index.tsx b/src/pages/Nominate/Active/index.tsx index 4181effb3f..688fb3f9b2 100644 --- a/src/pages/Nominate/Active/index.tsx +++ b/src/pages/Nominate/Active/index.tsx @@ -13,13 +13,13 @@ import { useTranslation } from 'react-i18next'; import { useBonded } from 'contexts/Bonded'; import { useConnect } from 'contexts/Connect'; import { useHelp } from 'contexts/Help'; -import { useModal } from 'contexts/Modal'; import { useStaking } from 'contexts/Staking'; import { useUi } from 'contexts/UI'; import { CardHeaderWrapper, CardWrapper } from 'library/Card/Wrappers'; import { GenerateNominations } from 'library/GenerateNominations'; import { useUnstaking } from 'library/Hooks/useUnstaking'; import { StatBoxList } from 'library/StatBoxList'; +import { useOverlay } from 'contexts/Overlay'; import { ControllerNotStash } from './ControllerNotStash'; import { ManageBond } from './ManageBond'; import { Nominations } from './Nominations'; @@ -31,7 +31,7 @@ import { UnstakePrompts } from './UnstakePrompts'; export const Active = () => { const { t } = useTranslation('pages'); - const { openModalWith } = useModal(); + const { openModal } = useOverlay().modal; const { activeAccount } = useConnect(); const { isSyncing } = useUi(); const { targets, setTargets, inSetup } = useStaking(); @@ -87,7 +87,7 @@ export const Active = () => { isSyncing || isFastUnstaking } - onClick={() => openModalWith('Nominate', {}, 'small')} + onClick={() => openModal({ key: 'Nominate' })} /> </div> </CardHeaderWrapper> diff --git a/src/pages/Overview/BalanceChart.tsx b/src/pages/Overview/BalanceChart.tsx index ef51e542a1..e8ccdf6bc4 100644 --- a/src/pages/Overview/BalanceChart.tsx +++ b/src/pages/Overview/BalanceChart.tsx @@ -9,7 +9,6 @@ import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useBalances } from 'contexts/Balances'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { usePlugins } from 'contexts/Plugins'; import { useTransferOptions } from 'contexts/TransferOptions'; import { useUi } from 'contexts/UI'; @@ -18,6 +17,7 @@ import { LegendItem } from 'library/BarChart/LegendItem'; import { Bar, BarChartWrapper, Legend } from 'library/BarChart/Wrappers'; import { CardHeaderWrapper } from 'library/Card/Wrappers'; import { usePrices } from 'library/Hooks/usePrices'; +import { useOverlay } from 'contexts/Overlay'; export const BalanceChart = () => { const { t } = useTranslation('pages'); @@ -27,7 +27,7 @@ export const BalanceChart = () => { const prices = usePrices(); const { plugins } = usePlugins(); const { isNetworkSyncing } = useUi(); - const { openModalWith } = useModal(); + const { openModal } = useOverlay().modal; const { getBalance, getLocks } = useBalances(); const { activeAccount, accountHasSigner } = useConnect(); const { feeReserve, getTransferOptions } = useTransferOptions(); @@ -234,7 +234,7 @@ export const BalanceChart = () => { <ButtonTertiary text="Reserve Balance" onClick={() => - openModalWith('UpdateReserve', {}, 'small') + openModal({ key: 'UpdateReserve', size: 'small' }) } iconRight={ isNetworkSyncing diff --git a/src/pages/Pools/Home/ClosurePrompts.tsx b/src/pages/Pools/Home/ClosurePrompts.tsx index 254739364d..7ef1217183 100644 --- a/src/pages/Pools/Home/ClosurePrompts.tsx +++ b/src/pages/Pools/Home/ClosurePrompts.tsx @@ -6,20 +6,20 @@ import { ButtonPrimary, ButtonRow, PageRow } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { usePoolMemberships } from 'contexts/Pools/PoolMemberships'; import { useTheme } from 'contexts/Themes'; import { useTransferOptions } from 'contexts/TransferOptions'; import { useUi } from 'contexts/UI'; import { CardWrapper } from 'library/Card/Wrappers'; +import { useOverlay } from 'contexts/Overlay'; export const ClosurePrompts = () => { const { t } = useTranslation('pages'); const { colors } = useApi().network; const { activeAccount } = useConnect(); const { mode } = useTheme(); - const { openModalWith } = useModal(); + const { openModal } = useOverlay().modal; const { membership } = usePoolMemberships(); const { isPoolSyncing } = useUi(); const { isBonding, selectedActivePool, isDepositor, poolNominations } = @@ -73,11 +73,11 @@ export const ClosurePrompts = () => { (!depositorCanWithdraw && !depositorCanUnbond) } onClick={() => - openModalWith( - 'UnbondPoolMember', - { who: activeAccount, member: membership }, - 'small' - ) + openModal({ + key: 'UnbondPoolMember', + options: { who: activeAccount, member: membership }, + size: 'small', + }) } /> <ButtonPrimary @@ -89,15 +89,15 @@ export const ClosurePrompts = () => { } disabled={isPoolSyncing || !isBonding()} onClick={() => - openModalWith( - 'UnlockChunks', - { + openModal({ + key: 'UnlockChunks', + options: { bondFor: 'pool', poolClosure: true, disableWindowResize: true, }, - 'small' - ) + size: 'small', + }) } /> </ButtonRow> diff --git a/src/pages/Pools/Home/ManageBond.tsx b/src/pages/Pools/Home/ManageBond.tsx index af7ec44039..f4c449d68e 100644 --- a/src/pages/Pools/Home/ManageBond.tsx +++ b/src/pages/Pools/Home/ManageBond.tsx @@ -8,19 +8,19 @@ import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; import { useHelp } from 'contexts/Help'; -import { useModal } from 'contexts/Modal'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { useTransferOptions } from 'contexts/TransferOptions'; import { useUi } from 'contexts/UI'; import { BondedChart } from 'library/BarChart/BondedChart'; import { CardHeaderWrapper } from 'library/Card/Wrappers'; +import { useOverlay } from 'contexts/Overlay'; export const ManageBond = () => { const { t } = useTranslation('pages'); const { network } = useApi(); const { units } = network; - const { openModalWith } = useModal(); + const { openModal } = useOverlay().modal; const { activeAccount, isReadOnlyAccount } = useConnect(); const { isPoolSyncing } = useUi(); const { isBonding, isMember, selectedActivePool } = useActivePools(); @@ -56,7 +56,13 @@ export const ManageBond = () => { state === 'Destroying' } marginRight - onClick={() => openModalWith('Bond', { bondFor: 'pool' }, 'small')} + onClick={() => + openModal({ + key: 'Bond', + options: { bondFor: 'pool' }, + size: 'small', + }) + } text="+" /> <ButtonPrimary @@ -69,7 +75,11 @@ export const ManageBond = () => { } marginRight onClick={() => - openModalWith('Unbond', { bondFor: 'pool' }, 'small') + openModal({ + key: 'Unbond', + options: { bondFor: 'pool' }, + size: 'small', + }) } text="-" /> @@ -79,11 +89,11 @@ export const ManageBond = () => { } iconLeft={faLockOpen} onClick={() => - openModalWith( - 'UnlockChunks', - { bondFor: 'pool', disableWindowResize: true }, - 'small' - ) + openModal({ + key: 'UnlockChunks', + options: { bondFor: 'pool', disableWindowResize: true }, + size: 'small', + }) } text={String(totalUnlockChuncks ?? 0)} /> diff --git a/src/pages/Pools/Home/ManagePool/index.tsx b/src/pages/Pools/Home/ManagePool/index.tsx index 578f932873..2c614ecca7 100644 --- a/src/pages/Pools/Home/ManagePool/index.tsx +++ b/src/pages/Pools/Home/ManagePool/index.tsx @@ -6,17 +6,17 @@ import { ButtonHelp, ButtonPrimary, PageRow } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; import { useHelp } from 'contexts/Help'; -import { useModal } from 'contexts/Modal'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { useUi } from 'contexts/UI'; import { CardHeaderWrapper, CardWrapper } from 'library/Card/Wrappers'; import { GenerateNominations } from 'library/GenerateNominations'; import { Nominations } from 'pages/Nominate/Active/Nominations'; +import { useOverlay } from 'contexts/Overlay'; export const ManagePool = () => { const { t } = useTranslation('pages'); const { isSyncing } = useUi(); - const { openModalWith } = useModal(); + const { openModal } = useOverlay().modal; const { activeAccount } = useConnect(); const { isOwner, @@ -55,7 +55,9 @@ export const ManagePool = () => { iconTransform="grow-1" text={t('pools.nominate')} disabled={!canNominate} - onClick={() => openModalWith('NominatePool', {}, 'small')} + onClick={() => + openModal({ key: 'NominatePool', size: 'small' }) + } /> </div> </CardHeaderWrapper> diff --git a/src/pages/Pools/Home/MembersList/Member.tsx b/src/pages/Pools/Home/MembersList/Member.tsx index aded763b16..57f1e30e14 100644 --- a/src/pages/Pools/Home/MembersList/Member.tsx +++ b/src/pages/Pools/Home/MembersList/Member.tsx @@ -10,7 +10,6 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { useRef } from 'react'; import { useTranslation } from 'react-i18next'; import { useMenu } from 'contexts/Menu'; -import { useModal } from 'contexts/Modal'; import { useNetworkMetrics } from 'contexts/Network'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { usePoolMembers } from 'contexts/Pools/PoolMembers'; @@ -24,11 +23,12 @@ import { Separator, Wrapper, } from 'library/ListItem/Wrappers'; +import { useOverlay } from 'contexts/Overlay'; export const Member = ({ who, batchKey, batchIndex }: any) => { const { t } = useTranslation('pages'); const { meta } = usePoolMembers(); - const { openModalWith } = useModal(); + const { openModal } = useOverlay().modal; const { selectActive } = useList(); const { activeEra } = useNetworkMetrics(); const { selectedActivePool, isOwner, isBouncer } = useActivePools(); @@ -57,14 +57,14 @@ export const Member = ({ who, batchKey, batchIndex }: any) => { wrap: null, title: `${t('pools.unbondFunds')}`, cb: () => { - openModalWith( - 'UnbondPoolMember', - { + openModal({ + key: 'UnbondPoolMember', + options: { who, member, }, - 'small' - ); + size: 'small', + }); }, }); } @@ -83,7 +83,11 @@ export const Member = ({ who, batchKey, batchIndex }: any) => { wrap: null, title: `${t('pools.withdrawFunds')}`, cb: () => { - openModalWith('WithdrawPoolMember', { who, member }, 'small'); + openModal({ + key: 'WithdrawPoolMember', + options: { who, member }, + size: 'small', + }); }, }); } diff --git a/src/pages/Pools/Home/Status/MembershipStatus.tsx b/src/pages/Pools/Home/Status/MembershipStatus.tsx index fd37b5a4e8..eb7e68593a 100644 --- a/src/pages/Pools/Home/Status/MembershipStatus.tsx +++ b/src/pages/Pools/Home/Status/MembershipStatus.tsx @@ -6,12 +6,12 @@ import { determinePoolDisplay } from '@polkadot-cloud/utils'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { useBondedPools } from 'contexts/Pools/BondedPools'; import { useTransferOptions } from 'contexts/TransferOptions'; import { useUi } from 'contexts/UI'; import { Stat } from 'library/Stat'; +import { useOverlay } from 'contexts/Overlay'; import { useStatusButtons } from './useStatusButtons'; export const MembershipStatus = ({ @@ -24,7 +24,7 @@ export const MembershipStatus = ({ const { t } = useTranslation('pages'); const { isReady } = useApi(); const { isPoolSyncing } = useUi(); - const { openModalWith } = useModal(); + const { openModal } = useOverlay().modal; const { label, buttons } = useStatusButtons(); const { bondedPools, meta } = useBondedPools(); const { getTransferOptions } = useTransferOptions(); @@ -63,7 +63,11 @@ export const MembershipStatus = ({ disabled: !isReady || isReadOnlyAccount(activeAccount), small: true, onClick: () => - openModalWith('ManagePool', { disableWindowResize: true }, 'small'), + openModal({ + key: 'ManagePool', + options: { disableWindowResize: true }, + size: 'small', + }), }); } } diff --git a/src/pages/Pools/Home/Status/RewardsStatus.tsx b/src/pages/Pools/Home/Status/RewardsStatus.tsx index 1dcaacdd22..334c6537b7 100644 --- a/src/pages/Pools/Home/Status/RewardsStatus.tsx +++ b/src/pages/Pools/Home/Status/RewardsStatus.tsx @@ -7,10 +7,10 @@ import BigNumber from 'bignumber.js'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { useUi } from 'contexts/UI'; import { Stat } from 'library/Stat'; +import { useOverlay } from 'contexts/Overlay'; export const RewardsStatus = () => { const { t } = useTranslation('pages'); @@ -19,7 +19,7 @@ export const RewardsStatus = () => { isReady, } = useApi(); const { isPoolSyncing } = useUi(); - const { openModalWith } = useModal(); + const { openModal } = useOverlay().modal; const { selectedActivePool } = useActivePools(); const { activeAccount, isReadOnlyAccount } = useConnect(); @@ -42,7 +42,11 @@ export const RewardsStatus = () => { disabled: !isReady || isReadOnlyAccount(activeAccount), small: true, onClick: () => - openModalWith('ClaimReward', { claimType: 'withdraw' }, 'small'), + openModal({ + key: 'ClaimReward', + options: { claimType: 'withdraw' }, + size: 'small', + }), }, { title: t('pools.compound'), @@ -53,7 +57,11 @@ export const RewardsStatus = () => { selectedActivePool?.bondedPool?.state === 'Destroying', small: true, onClick: () => - openModalWith('ClaimReward', { claimType: 'bond' }, 'small'), + openModal({ + key: 'ClaimReward', + options: { claimType: 'bond' }, + size: 'small', + }), }, ] : undefined; diff --git a/src/pages/Pools/Home/index.tsx b/src/pages/Pools/Home/index.tsx index f19e684fa7..61b2d3b14b 100644 --- a/src/pages/Pools/Home/index.tsx +++ b/src/pages/Pools/Home/index.tsx @@ -6,7 +6,6 @@ import { useEffect, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; import type { PageTitleTabProps } from '@polkadot-cloud/react/core/types'; import { useConnect } from 'contexts/Connect'; -import { useModal } from 'contexts/Modal'; import { usePlugins } from 'contexts/Plugins'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { useBondedPools } from 'contexts/Pools/BondedPools'; @@ -17,6 +16,7 @@ import { CardWrapper } from 'library/Card/Wrappers'; import { PoolList } from 'library/PoolList/Default'; import { StatBoxList } from 'library/StatBoxList'; import { usePoolsConfig } from 'contexts/Pools/PoolsConfig'; +import { useOverlay } from 'contexts/Overlay'; import { Roles } from '../Roles'; import { ClosurePrompts } from './ClosurePrompts'; import { PoolFavorites } from './Favorites'; @@ -33,7 +33,7 @@ import { PoolsTabsProvider, usePoolsTabs } from './context'; export const HomeInner = () => { const { t } = useTranslation('pages'); const { pluginEnabled } = usePlugins(); - const { openModalWith } = useModal(); + const { openModal } = useOverlay().modal; const { activeAccount } = useConnect(); const { favorites, @@ -130,7 +130,10 @@ export const HomeInner = () => { ? { title: t('pools.allRoles'), onClick: () => - openModalWith('AccountPoolRoles', { who: activeAccount }), + openModal({ + key: 'AccountPoolRoles', + options: { who: activeAccount }, + }), } : undefined } diff --git a/src/pages/Pools/Roles/index.tsx b/src/pages/Pools/Roles/index.tsx index 5fe3499390..c74d4f56c0 100644 --- a/src/pages/Pools/Roles/index.tsx +++ b/src/pages/Pools/Roles/index.tsx @@ -13,10 +13,10 @@ import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; import { useHelp } from 'contexts/Help'; import { useIdentities } from 'contexts/Identities'; -import { useModal } from 'contexts/Modal'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { useUi } from 'contexts/UI'; import { CardHeaderWrapper } from 'library/Card/Wrappers'; +import { useOverlay } from 'contexts/Overlay'; import { RolesWrapper } from '../Home/ManagePool/Wrappers'; import { PoolAccount } from '../PoolAccount'; import { RoleEditInput } from './RoleEditInput'; @@ -31,7 +31,7 @@ export const Roles = ({ const { t } = useTranslation('pages'); const { openHelp } = useHelp(); const { isPoolSyncing } = useUi(); - const { openModalWith } = useModal(); + const { openModal } = useOverlay().modal; const { isReady, network } = useApi(); const { fetchIdentitiesMetaBatch } = useIdentities(); const { isOwner, selectedActivePool } = useActivePools(); @@ -111,7 +111,11 @@ export const Roles = ({ } } else { // else, open modal with role edits data to update pool roles. - openModalWith('ChangePoolRoles', { id, roleEdits }, 'small'); + openModal({ + key: 'ChangePoolRoles', + options: { id, roleEdits }, + size: 'small', + }); } }; From 3f4cd2c44b89d0557b195ba92c196bfcbe3a2130 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 22 Aug 2023 15:29:38 +0700 Subject: [PATCH 276/435] separate modal components from context component --- src/Router.tsx | 4 +-- src/modals/index.tsx | 76 +++++++++++++++++++++++++------------------- 2 files changed, 45 insertions(+), 35 deletions(-) diff --git a/src/Router.tsx b/src/Router.tsx index 2790009794..0c7fe3b442 100644 --- a/src/Router.tsx +++ b/src/Router.tsx @@ -30,7 +30,7 @@ import { NetworkBar } from 'library/NetworkBar'; import { Notifications } from 'library/Notifications'; import { SideMenu } from 'library/SideMenu'; import { Tooltip } from 'library/Tooltip'; -import { Modal } from 'modals'; +import { Modals } from 'modals'; import { Overlay } from 'library/Overlay'; export const RouterInner = () => { @@ -83,7 +83,7 @@ export const RouterInner = () => { <Overlay /> {/* Modal: closed by default */} - <Modal /> + <Modals /> {/* Help: closed by default */} <Help /> diff --git a/src/modals/index.tsx b/src/modals/index.tsx index cee3efcdc3..cadf3f0c06 100644 --- a/src/modals/index.tsx +++ b/src/modals/index.tsx @@ -3,7 +3,7 @@ import { ModalContainer, ModalCard, ModalHeight } from '@polkadot-cloud/react'; import { useAnimation } from 'framer-motion'; -import { useEffect, useRef } from 'react'; +import React, { useEffect, useRef } from 'react'; import { ErrorBoundary } from 'react-error-boundary'; import { ErrorFallbackModal } from 'library/ErrorBoundary'; import { useHelp } from 'contexts/Help'; @@ -41,7 +41,45 @@ import { UpdateReserve } from './UpdateReserve'; import { ValidatorMetrics } from './ValidatorMetrics'; import { WithdrawPoolMember } from './WithdrawPoolMember'; -export const Modal = () => { +export const Modals = () => ( + <Modal + modals={{ + Bio, + AccountPoolRoles, + Bond, + ChangeNominations, + ChangePoolRoles, + ChooseLanguage, + ClaimReward, + Connect, + Accounts, + GoToFeedback, + JoinPool, + ImportLedger, + ImportVault, + ManagePool, + ManageFastUnstake, + Networks, + Nominate, + NominateFromFavorites, + NominatePool, + PoolNominations, + SelectFavorites, + Settings, + ValidatorMetrics, + UnbondPoolMember, + UnlockChunks, + Unstake, + UpdateController, + Unbond, + UpdatePayee, + UpdateReserve, + WithdrawPoolMember, + }} + /> +); + +export const Modal = ({ modals }: { modals: Record<string, React.FC> }) => { const { config: { key, size, options }, status, @@ -142,6 +180,8 @@ export const Modal = () => { scale: 0.9, }; + const ActiveModal: React.FC = modals[key] || null; + return ( <> {status !== 'replacing' ? ( @@ -171,37 +211,7 @@ export const Modal = () => { } > <ErrorBoundary FallbackComponent={ErrorFallbackModal}> - {key === 'AccountPoolRoles' && <AccountPoolRoles />} - {key === 'Bio' && <Bio />} - {key === 'Bond' && <Bond />} - {key === 'ChangeNominations' && <ChangeNominations />} - {key === 'ChangePoolRoles' && <ChangePoolRoles />} - {key === 'ChooseLanguage' && <ChooseLanguage />} - {key === 'ClaimReward' && <ClaimReward />} - {key === 'Connect' && <Connect />} - {key === 'Accounts' && <Accounts />} - {key === 'GoToFeedback' && <GoToFeedback />} - {key === 'JoinPool' && <JoinPool />} - {key === 'ImportLedger' && <ImportLedger />} - {key === 'ImportVault' && <ImportVault />} - {key === 'ManagePool' && <ManagePool />} - {key === 'ManageFastUnstake' && <ManageFastUnstake />} - {key === 'Networks' && <Networks />} - {key === 'Nominate' && <Nominate />} - {key === 'NominateFromFavorites' && <NominateFromFavorites />} - {key === 'NominatePool' && <NominatePool />} - {key === 'PoolNominations' && <PoolNominations />} - {key === 'SelectFavorites' && <SelectFavorites />} - {key === 'Settings' && <Settings />} - {key === 'ValidatorMetrics' && <ValidatorMetrics />} - {key === 'UnbondPoolMember' && <UnbondPoolMember />} - {key === 'UnlockChunks' && <UnlockChunks />} - {key === 'Unstake' && <Unstake />} - {key === 'UpdateController' && <UpdateController />} - {key === 'Unbond' && <Unbond />} - {key === 'UpdatePayee' && <UpdatePayee />} - {key === 'UpdateReserve' && <UpdateReserve />} - {key === 'WithdrawPoolMember' && <WithdrawPoolMember />} + {ActiveModal && <ActiveModal />} </ErrorBoundary> </ModalCard> </ModalHeight> From 21f612b68853bfd506479cf24eaab13972e1e55e Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 22 Aug 2023 15:34:23 +0700 Subject: [PATCH 277/435] remove help hook from `Modal` --- src/contexts/Overlay/types.ts | 5 +++ src/modals/index.tsx | 84 ++++++++++++++++++----------------- 2 files changed, 49 insertions(+), 40 deletions(-) diff --git a/src/contexts/Overlay/types.ts b/src/contexts/Overlay/types.ts index 13e7103771..e6e27d82f1 100644 --- a/src/contexts/Overlay/types.ts +++ b/src/contexts/Overlay/types.ts @@ -2,6 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only import type { RefObject } from 'react'; +import type React from 'react'; import type { AnyJson } from 'types'; export interface OverlayContextInterface { @@ -26,6 +27,10 @@ export interface OverlayContextInterface { openModal: (config: ModalConfig) => void; }; } +export interface ModalProps { + modals: Record<string, React.FC>; + helpStatus?: number; +} export type OverlayType = 'modal' | 'canvas' | 'prompt'; diff --git a/src/modals/index.tsx b/src/modals/index.tsx index cadf3f0c06..2481232f9c 100644 --- a/src/modals/index.tsx +++ b/src/modals/index.tsx @@ -9,6 +9,7 @@ import { ErrorFallbackModal } from 'library/ErrorBoundary'; import { useHelp } from 'contexts/Help'; import { useCanvas } from 'contexts/Canvas'; import { useOverlay } from 'contexts/Overlay'; +import type { ModalProps } from 'contexts/Overlay/types'; import { AccountPoolRoles } from './AccountPoolRoles'; import { Accounts } from './Accounts'; import { Bio } from './Bio'; @@ -41,45 +42,49 @@ import { UpdateReserve } from './UpdateReserve'; import { ValidatorMetrics } from './ValidatorMetrics'; import { WithdrawPoolMember } from './WithdrawPoolMember'; -export const Modals = () => ( - <Modal - modals={{ - Bio, - AccountPoolRoles, - Bond, - ChangeNominations, - ChangePoolRoles, - ChooseLanguage, - ClaimReward, - Connect, - Accounts, - GoToFeedback, - JoinPool, - ImportLedger, - ImportVault, - ManagePool, - ManageFastUnstake, - Networks, - Nominate, - NominateFromFavorites, - NominatePool, - PoolNominations, - SelectFavorites, - Settings, - ValidatorMetrics, - UnbondPoolMember, - UnlockChunks, - Unstake, - UpdateController, - Unbond, - UpdatePayee, - UpdateReserve, - WithdrawPoolMember, - }} - /> -); - -export const Modal = ({ modals }: { modals: Record<string, React.FC> }) => { +export const Modals = () => { + const { status } = useHelp(); + return ( + <Modal + helpStatus={status} + modals={{ + Bio, + AccountPoolRoles, + Bond, + ChangeNominations, + ChangePoolRoles, + ChooseLanguage, + ClaimReward, + Connect, + Accounts, + GoToFeedback, + JoinPool, + ImportLedger, + ImportVault, + ManagePool, + ManageFastUnstake, + Networks, + Nominate, + NominateFromFavorites, + NominatePool, + PoolNominations, + SelectFavorites, + Settings, + ValidatorMetrics, + UnbondPoolMember, + UnlockChunks, + Unstake, + UpdateController, + Unbond, + UpdatePayee, + UpdateReserve, + WithdrawPoolMember, + }} + /> + ); +}; + +export const Modal = ({ modals, helpStatus }: ModalProps) => { const { config: { key, size, options }, status, @@ -92,7 +97,6 @@ export const Modal = ({ modals }: { modals: Record<string, React.FC> }) => { setHeight, } = useOverlay().modal; const controls = useAnimation(); - const { status: helpStatus } = useHelp(); const { status: canvasStatus } = useCanvas(); const modalRef = useRef<HTMLDivElement>(null); const heightRef = useRef<HTMLDivElement>(null); From 385eed5eef72f7975501b64b4a038048eddc4bc3 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 22 Aug 2023 15:37:35 +0700 Subject: [PATCH 278/435] prep for Overlay.canvas --- src/contexts/Overlay/defaults.tsx | 3 --- src/contexts/Overlay/index.tsx | 23 ----------------------- src/contexts/Overlay/types.ts | 6 ------ src/modals/index.tsx | 10 ++++------ 4 files changed, 4 insertions(+), 38 deletions(-) diff --git a/src/contexts/Overlay/defaults.tsx b/src/contexts/Overlay/defaults.tsx index 08f037ff11..51bfc74c29 100644 --- a/src/contexts/Overlay/defaults.tsx +++ b/src/contexts/Overlay/defaults.tsx @@ -5,9 +5,6 @@ import type { OverlayContextInterface } from './types'; export const defaultOverlayContext: OverlayContextInterface = { - status: 'closed', - setStatus: () => {}, - openOverlay: (type, config) => {}, modal: { status: 'closed', config: {}, diff --git a/src/contexts/Overlay/index.tsx b/src/contexts/Overlay/index.tsx index d21ea88c1d..825a0d75a4 100644 --- a/src/contexts/Overlay/index.tsx +++ b/src/contexts/Overlay/index.tsx @@ -6,13 +6,9 @@ import React, { useRef, useState } from 'react'; import { setStateWithRef } from '@polkadot-cloud/utils'; import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import type { - CanvasConfig, ModalConfig, ModalStatus, OverlayContextInterface, - OverlayStatus, - OverlayType, - PromptConfig, } from './types'; import { defaultOverlayContext } from './defaults'; @@ -21,10 +17,6 @@ export const OverlayProvider = ({ }: { children: React.ReactNode; }) => { - // Store the overlay status. - const [status, setStatusState] = useState<OverlayStatus>('closed'); - const statusRef = useRef(status); - // Store the modal status. const [modalStatus, setModalStatusState] = useState<ModalStatus>('closed'); const modalStatusRef = useRef(modalStatus); @@ -53,10 +45,6 @@ export const OverlayProvider = ({ // The maximum allowed height for the modal. const modalMaxHeight = window.innerHeight * 0.8; - const setStatus = (newStatus: OverlayStatus) => { - setStateWithRef(newStatus, setStatusState, statusRef); - }; - const setModalConfig = (config: ModalConfig) => { setStateWithRef(config, setModalConfigState, modalConfigRef); }; @@ -116,14 +104,6 @@ export const OverlayProvider = ({ const transitionOff = () => modalHeightRef?.current?.classList.remove('transition-height'); - const openOverlay = ( - type: OverlayType, - config: ModalConfig | CanvasConfig | PromptConfig - ) => { - setStatus('open'); - if (type === 'modal') openModal(config as ModalConfig); - }; - useEffectIgnoreInitial(() => { const height = modalRef?.current?.clientHeight || 0; if (modalStatusRef.current === 'opening') { @@ -137,9 +117,6 @@ export const OverlayProvider = ({ return ( <OverlayContext.Provider value={{ - status: statusRef.current, - setStatus, - openOverlay, modal: { status: modalStatusRef.current, config: modalConfigRef.current, diff --git a/src/contexts/Overlay/types.ts b/src/contexts/Overlay/types.ts index e6e27d82f1..ce222e7735 100644 --- a/src/contexts/Overlay/types.ts +++ b/src/contexts/Overlay/types.ts @@ -6,12 +6,6 @@ import type React from 'react'; import type { AnyJson } from 'types'; export interface OverlayContextInterface { - status: OverlayStatus; - setStatus: (status: OverlayStatus) => void; - openOverlay: ( - ype: OverlayType, - config: ModalConfig | CanvasConfig | PromptConfig - ) => void; modal: { status: ModalStatus; config: AnyJson; diff --git a/src/modals/index.tsx b/src/modals/index.tsx index 2481232f9c..2a9ea84484 100644 --- a/src/modals/index.tsx +++ b/src/modals/index.tsx @@ -120,7 +120,6 @@ export const Modal = ({ modals, helpStatus }: ModalProps) => { const handleResize = () => { if (status !== 'open' || options?.disableWindowResize) return; - let h = modalRef.current?.clientHeight ?? 0; h = h > maxHeight ? maxHeight : h; setHeight(h); @@ -144,11 +143,10 @@ export const Modal = ({ modals, helpStatus }: ModalProps) => { if (helpStatus === 2) if (status === 'open') onIn(); }, [helpStatus]); - // resize modal on status or resize change - useEffect(() => { - handleResize(); - }, [resize]); + // resize modal on status or resize change. + useEffect(() => handleResize(), [resize]); + // resize modal on window size change. useEffect(() => { windowResize(); return () => { @@ -156,7 +154,7 @@ export const Modal = ({ modals, helpStatus }: ModalProps) => { }; }); - // store the modal's content ref. + // update the modal's content ref. useEffect(() => { setRef(modalRef); setHeightRef(heightRef); From 4698db63a503f8cdda12cda28832177a6fba020f Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 22 Aug 2023 17:43:06 +0700 Subject: [PATCH 279/435] combine modals & overlay --- src/Providers.tsx | 2 - src/Router.tsx | 10 +- src/canvas/TestCanvas/index.tsx | 25 +++++ src/contexts/Canvas/defaults.ts | 12 -- src/contexts/Canvas/index.tsx | 66 ----------- src/contexts/Canvas/types.ts | 37 ------- src/contexts/Overlay/defaults.tsx | 26 ++++- src/contexts/Overlay/index.tsx | 52 ++++++++- src/contexts/Overlay/types.ts | 20 +++- src/library/Canvas/index.tsx | 61 ----------- src/library/Overlay/index.tsx | 19 ++-- src/modals/UpdateReserve/index.tsx | 5 + src/{modals => overlay}/index.tsx | 169 ++++++++++++++++++++++------- 13 files changed, 260 insertions(+), 244 deletions(-) create mode 100644 src/canvas/TestCanvas/index.tsx delete mode 100644 src/contexts/Canvas/defaults.ts delete mode 100644 src/contexts/Canvas/index.tsx delete mode 100644 src/contexts/Canvas/types.ts delete mode 100644 src/library/Canvas/index.tsx rename src/{modals => overlay}/index.tsx (54%) diff --git a/src/Providers.tsx b/src/Providers.tsx index 9b9e9b9a5c..f7df0c228b 100644 --- a/src/Providers.tsx +++ b/src/Providers.tsx @@ -35,7 +35,6 @@ import { TxMetaProvider } from 'contexts/TxMeta'; import { UIProvider } from 'contexts/UI'; import { ValidatorsProvider } from 'contexts/Validators'; import { withProviders } from 'library/Hooks'; -import { CanvasProvider } from 'contexts/Canvas'; import { OverlayProvider } from 'contexts/Overlay'; // !! Provider order matters. @@ -71,7 +70,6 @@ export const Providers = withProviders( TxMetaProvider, ExtrinsicsProvider, OverlayProvider, - CanvasProvider, PromptProvider, MigrateProvider )(ThemedRouter); diff --git a/src/Router.tsx b/src/Router.tsx index 0c7fe3b442..ff2367789f 100644 --- a/src/Router.tsx +++ b/src/Router.tsx @@ -15,7 +15,6 @@ import { Routes, useLocation, } from 'react-router-dom'; -import { Canvas } from 'library/Canvas'; import { Prompt } from 'library/Prompt'; import { PagesConfig } from 'config/pages'; import { useApi } from 'contexts/Api'; @@ -30,7 +29,7 @@ import { NetworkBar } from 'library/NetworkBar'; import { Notifications } from 'library/Notifications'; import { SideMenu } from 'library/SideMenu'; import { Tooltip } from 'library/Tooltip'; -import { Modals } from 'modals'; +import { Overlays } from 'overlay'; import { Overlay } from 'library/Overlay'; export const RouterInner = () => { @@ -82,15 +81,12 @@ export const RouterInner = () => { {/* Prompting background: closed by default */} <Overlay /> - {/* Modal: closed by default */} - <Modals /> + {/* Overlays: modal and canvas. Closed by default */} + <Overlays /> {/* Help: closed by default */} <Help /> - {/* Canvas: closed by default */} - <Canvas /> - {/* Menu: closed by default */} <Menu /> diff --git a/src/canvas/TestCanvas/index.tsx b/src/canvas/TestCanvas/index.tsx new file mode 100644 index 0000000000..20941f87f8 --- /dev/null +++ b/src/canvas/TestCanvas/index.tsx @@ -0,0 +1,25 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: GPL-3.0-only + +import { ButtonHelp } from '@polkadot-cloud/react'; +import { useHelp } from 'contexts/Help'; +import { useOverlay } from 'contexts/Overlay'; +import { CanvasCardWrapper } from 'library/Canvas/Wrappers'; + +export const TestCanvas = () => { + const { closeCanvas } = useOverlay().canvas; + const { openHelp } = useHelp(); + + return ( + <CanvasCardWrapper> + <h1>Test</h1> + <button type="button" onClick={() => closeCanvas()}> + Close + </button> + <ButtonHelp + onClick={() => openHelp('Reserve Balance For Existential Deposit')} + style={{ marginLeft: '0.65rem' }} + /> + </CanvasCardWrapper> + ); +}; diff --git a/src/contexts/Canvas/defaults.ts b/src/contexts/Canvas/defaults.ts deleted file mode 100644 index 270ca94532..0000000000 --- a/src/contexts/Canvas/defaults.ts +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: GPL-3.0-only -/* eslint-disable @typescript-eslint/no-unused-vars */ - -import type { CanvasContextInterface } from './types'; - -export const defaultCanvasContext: CanvasContextInterface = { - openCanvas: () => {}, - closeCanvas: () => {}, - setStatus: (s) => {}, - status: 0, -}; diff --git a/src/contexts/Canvas/index.tsx b/src/contexts/Canvas/index.tsx deleted file mode 100644 index c48f4a3b39..0000000000 --- a/src/contexts/Canvas/index.tsx +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: GPL-3.0-only - -import React, { useState } from 'react'; -import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; -import * as defaults from './defaults'; -import type { - CanvasContextInterface, - CanvasContextProps, - CanvasContextState, -} from './types'; - -export const CanvasProvider = ({ children }: CanvasContextProps) => { - const [state, setState] = useState<CanvasContextState>({ - status: 0, - }); - - // when fade out completes, reset active definiton. - useEffectIgnoreInitial(() => { - if (state.status === 0) { - setState({ - ...state, - }); - } - }, [state.status]); - - const setStatus = (newStatus: number) => { - setState({ - ...state, - status: newStatus, - }); - }; - - const openCanvas = () => { - setState({ - ...state, - status: 1, - }); - }; - - const closeCanvas = () => { - setState({ - ...state, - status: 2, - }); - }; - - return ( - <CanvasContext.Provider - value={{ - openCanvas, - closeCanvas, - setStatus, - status: state.status, - }} - > - {children} - </CanvasContext.Provider> - ); -}; - -export const CanvasContext = React.createContext<CanvasContextInterface>( - defaults.defaultCanvasContext -); - -export const useCanvas = () => React.useContext(CanvasContext); diff --git a/src/contexts/Canvas/types.ts b/src/contexts/Canvas/types.ts deleted file mode 100644 index f4823ba917..0000000000 --- a/src/contexts/Canvas/types.ts +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: GPL-3.0-only - -import type { ReactNode } from 'react'; - -export type CanvasItems = CanvasItem[]; - -export interface CanvasItem { - key?: string; - external?: ExternalItems; -} - -export type ExternalItems = ExternalItem[]; -export type ExternalItem = [string, string, string]; - -export interface ExternalWithKeys { - title: string; - url: string; - website?: string; -} - -export interface CanvasContextInterface { - openCanvas: () => void; - closeCanvas: () => void; - setStatus: (s: number) => void; - status: number; -} - -export interface CanvasContextState { - status: number; -} - -export interface CanvasContextProps { - children: ReactNode; -} - -export type CanvasConfig = Record<string, string | any>; diff --git a/src/contexts/Overlay/defaults.tsx b/src/contexts/Overlay/defaults.tsx index 51bfc74c29..a1e5690c58 100644 --- a/src/contexts/Overlay/defaults.tsx +++ b/src/contexts/Overlay/defaults.tsx @@ -2,12 +2,34 @@ // SPDX-License-Identifier: GPL-3.0-only /* eslint-disable @typescript-eslint/no-unused-vars */ -import type { OverlayContextInterface } from './types'; +import type { + CanvasConfig, + ModalConfig, + OverlayContextInterface, +} from './types'; + +export const defaultModalConfig: ModalConfig = { + key: '', + options: {}, + size: 'large', +}; + +export const defaultCanvasConfig: CanvasConfig = { + key: '', + options: {}, +}; export const defaultOverlayContext: OverlayContextInterface = { + canvas: { + status: 'closed', + config: defaultCanvasConfig, + openCanvas: (config) => {}, + closeCanvas: () => {}, + setCanvasStatus: (s) => {}, + }, modal: { status: 'closed', - config: {}, + config: defaultModalConfig, height: 0, resize: 0, maxHeight: 0, diff --git a/src/contexts/Overlay/index.tsx b/src/contexts/Overlay/index.tsx index 825a0d75a4..1154070cad 100644 --- a/src/contexts/Overlay/index.tsx +++ b/src/contexts/Overlay/index.tsx @@ -7,10 +7,12 @@ import { setStateWithRef } from '@polkadot-cloud/utils'; import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import type { ModalConfig, + CanvasConfig, ModalStatus, OverlayContextInterface, + CanvasStatus, } from './types'; -import { defaultOverlayContext } from './defaults'; +import { defaultModalConfig, defaultOverlayContext } from './defaults'; export const OverlayProvider = ({ children, @@ -22,11 +24,8 @@ export const OverlayProvider = ({ const modalStatusRef = useRef(modalStatus); // Store modal configuration. - const [modalConfig, setModalConfigState] = useState<ModalConfig>({ - key: '', - options: {}, - size: 'large', - }); + const [modalConfig, setModalConfigState] = + useState<ModalConfig>(defaultModalConfig); const modalConfigRef = useRef(modalConfig); // Store the modal's current height. @@ -104,6 +103,30 @@ export const OverlayProvider = ({ const transitionOff = () => modalHeightRef?.current?.classList.remove('transition-height'); + // Store canvas status + const [canvasStatus, setCanvasStatus] = useState<CanvasStatus>('closed'); + + // Store config options of the canvas. + const [canvasConfig, setCanvasConfig] = useState<CanvasConfig>({ + key: '', + options: {}, + }); + + // Open the canvas. + const openCanvas = ({ key, options }: CanvasConfig) => { + setCanvasStatus('open'); + setCanvasConfig({ + key, + options: options || {}, + }); + }; + + // Close the canvas. + const closeCanvas = () => { + setCanvasStatus('closing'); + }; + + // Update modal height and open modal once refs are initialised. useEffectIgnoreInitial(() => { const height = modalRef?.current?.clientHeight || 0; if (modalStatusRef.current === 'opening') { @@ -114,9 +137,26 @@ export const OverlayProvider = ({ } }, [modalStatusRef.current, modalRef?.current]); + // When canvas fade out completes, reset active definiton. + useEffectIgnoreInitial(() => { + if (canvasStatus === 'closed') { + setCanvasConfig({ + key: '', + options: {}, + }); + } + }, [canvasStatus]); + return ( <OverlayContext.Provider value={{ + canvas: { + status: canvasStatus, + config: canvasConfig, + openCanvas, + closeCanvas, + setCanvasStatus, + }, modal: { status: modalStatusRef.current, config: modalConfigRef.current, diff --git a/src/contexts/Overlay/types.ts b/src/contexts/Overlay/types.ts index ce222e7735..f6187a2bda 100644 --- a/src/contexts/Overlay/types.ts +++ b/src/contexts/Overlay/types.ts @@ -6,6 +6,13 @@ import type React from 'react'; import type { AnyJson } from 'types'; export interface OverlayContextInterface { + canvas: { + status: CanvasStatus; + config: CanvasConfig; + openCanvas: (config: CanvasConfig) => void; + closeCanvas: () => void; + setCanvasStatus: (status: CanvasStatus) => void; + }; modal: { status: ModalStatus; config: AnyJson; @@ -21,14 +28,20 @@ export interface OverlayContextInterface { openModal: (config: ModalConfig) => void; }; } + +export interface CanvasProps { + canvas: Record<string, React.FC>; +} + export interface ModalProps { modals: Record<string, React.FC>; helpStatus?: number; } +export type OverlayProps = ModalProps & CanvasProps; export type OverlayType = 'modal' | 'canvas' | 'prompt'; -export type OverlayStatus = 'open' | 'closed'; +export type CanvasStatus = 'open' | 'closing' | 'closed'; export type ModalStatus = | 'closed' @@ -48,7 +61,10 @@ export interface ModalConfig { } // TODO: implement -export type CanvasConfig = AnyJson; +export interface CanvasConfig { + key: string; + options?: ConfigOptions; +} // TODO: implement export type PromptConfig = AnyJson; diff --git a/src/library/Canvas/index.tsx b/src/library/Canvas/index.tsx deleted file mode 100644 index fdf460120c..0000000000 --- a/src/library/Canvas/index.tsx +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: GPL-3.0-only - -import { useAnimation } from 'framer-motion'; -import { ModalCanvas, ModalContent, ModalScroll } from '@polkadot-cloud/react'; -import { useCanvas } from 'contexts/Canvas'; -import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; -import { CanvasWrapper } from './Wrappers'; - -export const Canvas = () => { - const controls = useAnimation(); - const { status, setStatus } = useCanvas(); - - const onFadeIn = async () => { - await controls.start('visible'); - }; - const onFadeOut = async () => { - await controls.start('hidden'); - setStatus(0); - }; - useEffectIgnoreInitial(() => { - // canvas has been opened - fade in. - if (status === 1) { - onFadeIn(); - } - // canvas closure triggered - fade out. - if (status === 2) { - onFadeOut(); - } - }, [status]); - - if (status === 0) { - return <></>; - } - - return ( - <ModalCanvas - initial={{ - opacity: 0, - }} - animate={controls} - transition={{ - duration: 0.15, - }} - variants={{ - hidden: { - opacity: 0, - }, - visible: { - opacity: 1, - }, - }} - > - <ModalScroll> - <ModalContent> - <CanvasWrapper>{/* TODO: Canvas Content */}</CanvasWrapper> - </ModalContent> - </ModalScroll> - </ModalCanvas> - ); -}; diff --git a/src/library/Overlay/index.tsx b/src/library/Overlay/index.tsx index 24beec52dc..0d80c0aa66 100644 --- a/src/library/Overlay/index.tsx +++ b/src/library/Overlay/index.tsx @@ -5,14 +5,13 @@ import { ModalOverlay } from '@polkadot-cloud/react'; import { useAnimation } from 'framer-motion'; import { useEffect } from 'react'; import { useHelp } from 'contexts/Help'; -import { useCanvas } from 'contexts/Canvas'; import { useOverlay } from 'contexts/Overlay'; export const Overlay = () => { const controls = useAnimation(); const { status: helpStatus } = useHelp(); const { status: modalStatus } = useOverlay().modal; - const { status: canvasStatus } = useCanvas(); + const { status: canvasStatus } = useOverlay().canvas; const onFadeIn = async () => { await controls.start('visible'); @@ -27,27 +26,31 @@ export const Overlay = () => { }, [modalStatus]); useEffect(() => { - if (canvasStatus === 1 && modalStatus !== 'open') onFadeIn(); - if (canvasStatus === 2 && modalStatus !== 'open') onFadeOut(); + if (canvasStatus === 'open' && modalStatus !== 'open') onFadeIn(); + if (canvasStatus === 'closing' && modalStatus !== 'open') onFadeOut(); }, [canvasStatus]); // Managing fade is more complex with help, as it can overlay modal and canvas. Do not fade in/out // if modal or canvas is open. (help can be opened in a modal, canvas can be summoned in an open // modal). useEffect(() => { - if (helpStatus === 1 && modalStatus !== 'open' && canvasStatus !== 1) + if (helpStatus === 1 && modalStatus !== 'open' && canvasStatus !== 'open') onFadeIn(); - if (helpStatus === 2 && modalStatus !== 'open' && canvasStatus !== 1) + if (helpStatus === 2 && modalStatus !== 'open' && canvasStatus !== 'open') onFadeOut(); }, [helpStatus]); - if (modalStatus === 'closed' && helpStatus === 0 && canvasStatus === 0) { + if ( + modalStatus === 'closed' && + helpStatus === 0 && + canvasStatus === 'closed' + ) { return <></>; } return ( <ModalOverlay - blur={canvasStatus === 1 || helpStatus === 1 ? '14px' : '4px'} + blur={canvasStatus === 'open' || helpStatus === 1 ? '14px' : '4px'} initial={{ opacity: 0, }} diff --git a/src/modals/UpdateReserve/index.tsx b/src/modals/UpdateReserve/index.tsx index ac55565322..e2994b8bf8 100644 --- a/src/modals/UpdateReserve/index.tsx +++ b/src/modals/UpdateReserve/index.tsx @@ -32,6 +32,7 @@ export const UpdateReserve = () => { const { network } = useApi(); const { setModalStatus } = useOverlay().modal; const { openHelp } = useHelp(); + const { openCanvas } = useOverlay().canvas; const { feeReserve, setFeeReserveBalance, getTransferOptions } = useTransferOptions(); const { activeAccount, accountHasSigner } = useConnect(); @@ -114,6 +115,10 @@ export const UpdateReserve = () => { } style={{ marginLeft: '0.65rem' }} /> + <ButtonHelp + onClick={() => openCanvas({ key: 'TestCanvas' })} + style={{ marginLeft: '0.65rem' }} + /> </> ) : ( `${minReserve.decimalPlaces(4).toString()} ${unit}` diff --git a/src/modals/index.tsx b/src/overlay/index.tsx similarity index 54% rename from src/modals/index.tsx rename to src/overlay/index.tsx index 2a9ea84484..d8e5fc200c 100644 --- a/src/modals/index.tsx +++ b/src/overlay/index.tsx @@ -1,52 +1,67 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ModalContainer, ModalCard, ModalHeight } from '@polkadot-cloud/react'; +import { + ModalContainer, + ModalCard, + ModalHeight, + ModalScroll, + ModalContent, + ModalCanvas, +} from '@polkadot-cloud/react'; import { useAnimation } from 'framer-motion'; import React, { useEffect, useRef } from 'react'; import { ErrorBoundary } from 'react-error-boundary'; import { ErrorFallbackModal } from 'library/ErrorBoundary'; import { useHelp } from 'contexts/Help'; -import { useCanvas } from 'contexts/Canvas'; import { useOverlay } from 'contexts/Overlay'; -import type { ModalProps } from 'contexts/Overlay/types'; -import { AccountPoolRoles } from './AccountPoolRoles'; -import { Accounts } from './Accounts'; -import { Bio } from './Bio'; -import { Bond } from './Bond'; -import { ChangeNominations } from './ChangeNominations'; -import { ChangePoolRoles } from './ChangePoolRoles'; -import { ChooseLanguage } from './ChooseLanguage'; -import { ClaimReward } from './ClaimReward'; -import { Connect } from './Connect'; -import { GoToFeedback } from './GoToFeedback'; -import { ImportLedger } from './ImportLedger'; -import { ImportVault } from './ImportVault'; -import { JoinPool } from './JoinPool'; -import { ManageFastUnstake } from './ManageFastUnstake'; -import { ManagePool } from './ManagePool'; -import { Networks } from './Networks'; -import { Nominate } from './Nominate'; -import { NominateFromFavorites } from './NominateFromFavorites'; -import { NominatePool } from './NominatePool'; -import { PoolNominations } from './PoolNominations'; -import { SelectFavorites } from './SelectFavorites'; -import { Settings } from './Settings'; -import { Unbond } from './Unbond'; -import { UnbondPoolMember } from './UnbondPoolMember'; -import { UnlockChunks } from './UnlockChunks'; -import { Unstake } from './Unstake'; -import { UpdateController } from './UpdateController'; -import { UpdatePayee } from './UpdatePayee'; -import { UpdateReserve } from './UpdateReserve'; -import { ValidatorMetrics } from './ValidatorMetrics'; -import { WithdrawPoolMember } from './WithdrawPoolMember'; - -export const Modals = () => { +import type { + CanvasProps, + ModalProps, + OverlayProps, +} from 'contexts/Overlay/types'; +import { CanvasWrapper } from 'library/Canvas/Wrappers'; +import { TestCanvas } from 'canvas/TestCanvas'; +import { AccountPoolRoles } from '../modals/AccountPoolRoles'; +import { Accounts } from '../modals/Accounts'; +import { Bio } from '../modals/Bio'; +import { Bond } from '../modals/Bond'; +import { ChangeNominations } from '../modals/ChangeNominations'; +import { ChangePoolRoles } from '../modals/ChangePoolRoles'; +import { ChooseLanguage } from '../modals/ChooseLanguage'; +import { ClaimReward } from '../modals/ClaimReward'; +import { Connect } from '../modals/Connect'; +import { GoToFeedback } from '../modals/GoToFeedback'; +import { ImportLedger } from '../modals/ImportLedger'; +import { ImportVault } from '../modals/ImportVault'; +import { JoinPool } from '../modals/JoinPool'; +import { ManageFastUnstake } from '../modals/ManageFastUnstake'; +import { ManagePool } from '../modals/ManagePool'; +import { Networks } from '../modals/Networks'; +import { Nominate } from '../modals/Nominate'; +import { NominateFromFavorites } from '../modals/NominateFromFavorites'; +import { NominatePool } from '../modals/NominatePool'; +import { PoolNominations } from '../modals/PoolNominations'; +import { SelectFavorites } from '../modals/SelectFavorites'; +import { Settings } from '../modals/Settings'; +import { Unbond } from '../modals/Unbond'; +import { UnbondPoolMember } from '../modals/UnbondPoolMember'; +import { UnlockChunks } from '../modals/UnlockChunks'; +import { Unstake } from '../modals/Unstake'; +import { UpdateController } from '../modals/UpdateController'; +import { UpdatePayee } from '../modals/UpdatePayee'; +import { UpdateReserve } from '../modals/UpdateReserve'; +import { ValidatorMetrics } from '../modals/ValidatorMetrics'; +import { WithdrawPoolMember } from '../modals/WithdrawPoolMember'; + +export const Overlays = () => { const { status } = useHelp(); return ( - <Modal + <Overlay helpStatus={status} + canvas={{ + TestCanvas, + }} modals={{ Bio, AccountPoolRoles, @@ -84,6 +99,15 @@ export const Modals = () => { ); }; +export const Overlay = ({ modals, canvas, helpStatus }: OverlayProps) => { + return ( + <> + <Modal modals={modals} helpStatus={helpStatus} /> + <Canvas canvas={canvas} /> + </> + ); +}; + export const Modal = ({ modals, helpStatus }: ModalProps) => { const { config: { key, size, options }, @@ -97,7 +121,7 @@ export const Modal = ({ modals, helpStatus }: ModalProps) => { setHeight, } = useOverlay().modal; const controls = useAnimation(); - const { status: canvasStatus } = useCanvas(); + const { status: canvasStatus } = useOverlay().canvas; const modalRef = useRef<HTMLDivElement>(null); const heightRef = useRef<HTMLDivElement>(null); @@ -133,8 +157,8 @@ export const Modal = ({ modals, helpStatus }: ModalProps) => { // Control on canvas status change. useEffect(() => { - if (canvasStatus === 1) if (status === 'open') onOut(); - if (canvasStatus === 2) if (status === 'open') onIn(); + if (canvasStatus === 'open') if (status === 'open') onOut(); + if (canvasStatus === 'closing') if (status === 'open') onIn(); }, [canvasStatus]); // Control dim help status change. @@ -209,7 +233,9 @@ export const Modal = ({ modals, helpStatus }: ModalProps) => { <ModalCard ref={modalRef} className={ - helpStatus === 1 || canvasStatus === 1 ? 'dimmed' : undefined + helpStatus === 1 || canvasStatus === 'open' + ? 'dimmed' + : undefined } > <ErrorBoundary FallbackComponent={ErrorFallbackModal}> @@ -232,3 +258,64 @@ export const Modal = ({ modals, helpStatus }: ModalProps) => { </> ); }; + +export const Canvas = ({ canvas }: CanvasProps) => { + const controls = useAnimation(); + const { + status, + setCanvasStatus, + config: { key }, + } = useOverlay().canvas; + + const onFadeIn = async () => { + await controls.start('visible'); + }; + + const onFadeOut = async () => { + await controls.start('hidden'); + setCanvasStatus('closed'); + }; + + useEffect(() => { + // canvas has been opened - fade in. + if (status === 'open') { + onFadeIn(); + } + // canvas closure triggered - fade out. + if (status === 'closing') { + onFadeOut(); + } + }, [status]); + + if (status === 'closed') { + return <></>; + } + + const ActiveCanvas: React.FC = canvas[key] || null; + + return ( + <ModalCanvas + initial={{ + opacity: 0, + }} + animate={controls} + transition={{ + duration: 0.15, + }} + variants={{ + hidden: { + opacity: 0, + }, + visible: { + opacity: 1, + }, + }} + > + <ModalScroll> + <ModalContent> + <CanvasWrapper>{ActiveCanvas && <ActiveCanvas />}</CanvasWrapper> + </ModalContent> + </ModalScroll> + </ModalCanvas> + ); +}; From 197cebd8402a712f4690876b1f3dcfc3a492e793 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 22 Aug 2023 17:45:28 +0700 Subject: [PATCH 280/435] Overlay -> OverlayBackground --- src/Router.tsx | 8 +--- src/library/Overlay/index.tsx | 71 ----------------------------------- src/overlay/index.tsx | 65 ++++++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+), 77 deletions(-) delete mode 100644 src/library/Overlay/index.tsx diff --git a/src/Router.tsx b/src/Router.tsx index ff2367789f..bebba09b2d 100644 --- a/src/Router.tsx +++ b/src/Router.tsx @@ -30,7 +30,6 @@ import { Notifications } from 'library/Notifications'; import { SideMenu } from 'library/SideMenu'; import { Tooltip } from 'library/Tooltip'; import { Overlays } from 'overlay'; -import { Overlay } from 'library/Overlay'; export const RouterInner = () => { const { t } = useTranslation(); @@ -78,15 +77,12 @@ export const RouterInner = () => { return ( <ErrorBoundary FallbackComponent={ErrorFallbackApp}> <Body> - {/* Prompting background: closed by default */} - <Overlay /> + {/* Help: closed by default */} + <Help /> {/* Overlays: modal and canvas. Closed by default */} <Overlays /> - {/* Help: closed by default */} - <Help /> - {/* Menu: closed by default */} <Menu /> diff --git a/src/library/Overlay/index.tsx b/src/library/Overlay/index.tsx deleted file mode 100644 index 0d80c0aa66..0000000000 --- a/src/library/Overlay/index.tsx +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: GPL-3.0-only - -import { ModalOverlay } from '@polkadot-cloud/react'; -import { useAnimation } from 'framer-motion'; -import { useEffect } from 'react'; -import { useHelp } from 'contexts/Help'; -import { useOverlay } from 'contexts/Overlay'; - -export const Overlay = () => { - const controls = useAnimation(); - const { status: helpStatus } = useHelp(); - const { status: modalStatus } = useOverlay().modal; - const { status: canvasStatus } = useOverlay().canvas; - - const onFadeIn = async () => { - await controls.start('visible'); - }; - const onFadeOut = async () => { - await controls.start('hidden'); - }; - - useEffect(() => { - if (modalStatus === 'open') onFadeIn(); - if (modalStatus === 'closing') onFadeOut(); - }, [modalStatus]); - - useEffect(() => { - if (canvasStatus === 'open' && modalStatus !== 'open') onFadeIn(); - if (canvasStatus === 'closing' && modalStatus !== 'open') onFadeOut(); - }, [canvasStatus]); - - // Managing fade is more complex with help, as it can overlay modal and canvas. Do not fade in/out - // if modal or canvas is open. (help can be opened in a modal, canvas can be summoned in an open - // modal). - useEffect(() => { - if (helpStatus === 1 && modalStatus !== 'open' && canvasStatus !== 'open') - onFadeIn(); - if (helpStatus === 2 && modalStatus !== 'open' && canvasStatus !== 'open') - onFadeOut(); - }, [helpStatus]); - - if ( - modalStatus === 'closed' && - helpStatus === 0 && - canvasStatus === 'closed' - ) { - return <></>; - } - - return ( - <ModalOverlay - blur={canvasStatus === 'open' || helpStatus === 1 ? '14px' : '4px'} - initial={{ - opacity: 0, - }} - animate={controls} - transition={{ - duration: 0.15, - }} - variants={{ - hidden: { - opacity: 0, - }, - visible: { - opacity: 1, - }, - }} - /> - ); -}; diff --git a/src/overlay/index.tsx b/src/overlay/index.tsx index d8e5fc200c..9983d0c600 100644 --- a/src/overlay/index.tsx +++ b/src/overlay/index.tsx @@ -8,6 +8,7 @@ import { ModalScroll, ModalContent, ModalCanvas, + ModalOverlay, } from '@polkadot-cloud/react'; import { useAnimation } from 'framer-motion'; import React, { useEffect, useRef } from 'react'; @@ -102,6 +103,7 @@ export const Overlays = () => { export const Overlay = ({ modals, canvas, helpStatus }: OverlayProps) => { return ( <> + <OverlayBackground /> <Modal modals={modals} helpStatus={helpStatus} /> <Canvas canvas={canvas} /> </> @@ -319,3 +321,66 @@ export const Canvas = ({ canvas }: CanvasProps) => { </ModalCanvas> ); }; + +export const OverlayBackground = () => { + const controls = useAnimation(); + const { status: helpStatus } = useHelp(); + const { status: modalStatus } = useOverlay().modal; + const { status: canvasStatus } = useOverlay().canvas; + + const onFadeIn = async () => { + await controls.start('visible'); + }; + const onFadeOut = async () => { + await controls.start('hidden'); + }; + + useEffect(() => { + if (modalStatus === 'open') onFadeIn(); + if (modalStatus === 'closing') onFadeOut(); + }, [modalStatus]); + + useEffect(() => { + if (canvasStatus === 'open' && modalStatus !== 'open') onFadeIn(); + if (canvasStatus === 'closing' && modalStatus !== 'open') onFadeOut(); + }, [canvasStatus]); + + // Managing fade is more complex with help, as it can overlay modal and canvas. Do not fade in/out + // if modal or canvas is open. (help can be opened in a modal, canvas can be summoned in an open + // modal). + useEffect(() => { + if (helpStatus === 1 && modalStatus !== 'open' && canvasStatus !== 'open') + onFadeIn(); + if (helpStatus === 2 && modalStatus !== 'open' && canvasStatus !== 'open') + onFadeOut(); + }, [helpStatus]); + + if ( + modalStatus === 'closed' && + helpStatus === 0 && + canvasStatus === 'closed' + ) { + return <></>; + } + + return ( + <ModalOverlay + blur={canvasStatus === 'open' || helpStatus === 1 ? '14px' : '4px'} + initial={{ + opacity: 0, + }} + animate={controls} + transition={{ + duration: 0.15, + }} + variants={{ + hidden: { + opacity: 0, + }, + visible: { + opacity: 1, + }, + }} + /> + ); +}; From 508d993e1f518ac61c0efabc608037a487c79fbb Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 22 Aug 2023 18:51:41 +0700 Subject: [PATCH 281/435] modal, canvas & external working --- src/contexts/Help/defaults.ts | 2 +- src/contexts/Help/index.tsx | 11 +- src/contexts/Help/types.ts | 8 +- src/contexts/Overlay/defaults.tsx | 4 + src/contexts/Overlay/index.tsx | 27 +++++ src/contexts/Overlay/types.ts | 12 ++- src/library/Help/index.tsx | 11 +- src/overlay/index.tsx | 170 +++++++++++++++++++----------- 8 files changed, 168 insertions(+), 77 deletions(-) diff --git a/src/contexts/Help/defaults.ts b/src/contexts/Help/defaults.ts index c824ac48b1..4c2411813d 100644 --- a/src/contexts/Help/defaults.ts +++ b/src/contexts/Help/defaults.ts @@ -9,6 +9,6 @@ export const defaultHelpContext: HelpContextInterface = { closeHelp: () => {}, setStatus: (status) => {}, setDefinition: (definition) => {}, - status: 0, + status: 'closed', definition: null, }; diff --git a/src/contexts/Help/index.tsx b/src/contexts/Help/index.tsx index 122687d7d1..c95cf15269 100644 --- a/src/contexts/Help/index.tsx +++ b/src/contexts/Help/index.tsx @@ -9,18 +9,19 @@ import type { HelpContextInterface, HelpContextProps, HelpContextState, + HelpStatus, } from './types'; export const HelpProvider = ({ children }: HelpContextProps) => { // help module state const [state, setState] = useState<HelpContextState>({ - status: 0, + status: 'closed', definition: null, }); // when fade out completes, reset active definiton useEffectIgnoreInitial(() => { - if (state.status === 0) { + if (state.status === 'closed') { setState({ ...state, definition: null, @@ -35,7 +36,7 @@ export const HelpProvider = ({ children }: HelpContextProps) => { }); }; - const setStatus = (newStatus: number) => { + const setStatus = (newStatus: HelpStatus) => { setState({ ...state, status: newStatus, @@ -46,14 +47,14 @@ export const HelpProvider = ({ children }: HelpContextProps) => { setState({ ...state, definition, - status: 1, + status: 'open', }); }; const closeHelp = () => { setState({ ...state, - status: 2, + status: 'closing', }); }; diff --git a/src/contexts/Help/types.ts b/src/contexts/Help/types.ts index f9e1dd646b..d51c07ee21 100644 --- a/src/contexts/Help/types.ts +++ b/src/contexts/Help/types.ts @@ -26,17 +26,19 @@ export interface ExternalWithKeys { website?: string; } +export type HelpStatus = 'closed' | 'open' | 'closing'; + export interface HelpContextInterface { openHelp: (d: MaybeString) => void; closeHelp: () => void; - setStatus: (s: number) => void; + setStatus: (s: HelpStatus) => void; setDefinition: (d: MaybeString) => void; - status: number; + status: HelpStatus; definition: MaybeString; } export interface HelpContextState { - status: number; + status: HelpStatus; definition: MaybeString; } diff --git a/src/contexts/Overlay/defaults.tsx b/src/contexts/Overlay/defaults.tsx index a1e5690c58..ebb225ac4d 100644 --- a/src/contexts/Overlay/defaults.tsx +++ b/src/contexts/Overlay/defaults.tsx @@ -20,6 +20,10 @@ export const defaultCanvasConfig: CanvasConfig = { }; export const defaultOverlayContext: OverlayContextInterface = { + openOverlayInstances: 0, + setOpenOverlayInstances: (direction, instanceType) => {}, + activeOverlayInstance: null, + setActiveOverlayInstance: (instance) => {}, canvas: { status: 'closed', config: defaultCanvasConfig, diff --git a/src/contexts/Overlay/index.tsx b/src/contexts/Overlay/index.tsx index 1154070cad..9cc22cc38e 100644 --- a/src/contexts/Overlay/index.tsx +++ b/src/contexts/Overlay/index.tsx @@ -11,6 +11,7 @@ import type { ModalStatus, OverlayContextInterface, CanvasStatus, + ActiveOverlayInstance, } from './types'; import { defaultModalConfig, defaultOverlayContext } from './defaults'; @@ -19,6 +20,26 @@ export const OverlayProvider = ({ }: { children: React.ReactNode; }) => { + // Store the modal status. + const [openOverlayInstances, setOpenOverlayInstancesState] = + useState<number>(0); + + const setOpenOverlayInstances = ( + direction: 'inc' | 'dec', + instanceType: 'modal' | 'canvas' + ) => { + if (direction === 'inc') { + setOpenOverlayInstancesState(openOverlayInstances + 1); + setActiveOverlayInstance(instanceType); + } else { + setOpenOverlayInstancesState(Math.max(openOverlayInstances - 1, 0)); + } + }; + + // Store the currently active overlay instance. + const [activeOverlayInstance, setActiveOverlayInstance] = + useState<ActiveOverlayInstance>(null); + // Store the modal status. const [modalStatus, setModalStatusState] = useState<ModalStatus>('closed'); const modalStatusRef = useRef(modalStatus); @@ -55,6 +76,7 @@ export const OverlayProvider = ({ const openModal = ({ key, size = 'large', options = {} }: ModalConfig) => { setModalConfig({ key, size, options }); setModalStatus('opening'); + setOpenOverlayInstances('inc', 'modal'); }; // Closes one modal and opens another. @@ -115,6 +137,7 @@ export const OverlayProvider = ({ // Open the canvas. const openCanvas = ({ key, options }: CanvasConfig) => { setCanvasStatus('open'); + setOpenOverlayInstances('inc', 'canvas'); setCanvasConfig({ key, options: options || {}, @@ -150,6 +173,10 @@ export const OverlayProvider = ({ return ( <OverlayContext.Provider value={{ + openOverlayInstances, + setOpenOverlayInstances, + activeOverlayInstance, + setActiveOverlayInstance, canvas: { status: canvasStatus, config: canvasConfig, diff --git a/src/contexts/Overlay/types.ts b/src/contexts/Overlay/types.ts index f6187a2bda..ef1b4f3302 100644 --- a/src/contexts/Overlay/types.ts +++ b/src/contexts/Overlay/types.ts @@ -6,6 +6,13 @@ import type React from 'react'; import type { AnyJson } from 'types'; export interface OverlayContextInterface { + openOverlayInstances: number; + setOpenOverlayInstances: ( + direction: 'inc' | 'dec', + instanceType: 'modal' | 'canvas' + ) => void; + activeOverlayInstance: ActiveOverlayInstance; + setActiveOverlayInstance: (instance: ActiveOverlayInstance) => void; canvas: { status: CanvasStatus; config: CanvasConfig; @@ -31,14 +38,17 @@ export interface OverlayContextInterface { export interface CanvasProps { canvas: Record<string, React.FC>; + externalOverlayStatus: CanvasStatus; } export interface ModalProps { modals: Record<string, React.FC>; - helpStatus?: number; + externalOverlayStatus: CanvasStatus; } export type OverlayProps = ModalProps & CanvasProps; +export type ActiveOverlayInstance = 'modal' | 'canvas' | null; + export type OverlayType = 'modal' | 'canvas' | 'prompt'; export type CanvasStatus = 'open' | 'closing' | 'closed'; diff --git a/src/library/Help/index.tsx b/src/library/Help/index.tsx index b4218be63d..78023e4571 100644 --- a/src/library/Help/index.tsx +++ b/src/library/Help/index.tsx @@ -37,17 +37,17 @@ export const Help = () => { const onFadeOut = useCallback(async () => { await controls.start('hidden'); - setStatus(0); + setStatus('closed'); }, []); // control canvas fade. useEffect(() => { - if (status === 1) onFadeIn(); - if (status === 2) onFadeOut(); + if (status === 'open') onFadeIn(); + if (status === 'closing') onFadeOut(); }, [status]); // render early if help not open - if (status === 0) return <></>; + if (status === 'closed') return <></>; let meta: HelpItem | undefined; @@ -150,6 +150,9 @@ export const Help = () => { scale: 1, }, }} + style={{ + zIndex: 20, + }} > <ModalScroll> <ModalContent> diff --git a/src/overlay/index.tsx b/src/overlay/index.tsx index 9983d0c600..de730604df 100644 --- a/src/overlay/index.tsx +++ b/src/overlay/index.tsx @@ -18,6 +18,7 @@ import { useHelp } from 'contexts/Help'; import { useOverlay } from 'contexts/Overlay'; import type { CanvasProps, + CanvasStatus, ModalProps, OverlayProps, } from 'contexts/Overlay/types'; @@ -59,7 +60,7 @@ export const Overlays = () => { const { status } = useHelp(); return ( <Overlay - helpStatus={status} + externalOverlayStatus={status} canvas={{ TestCanvas, }} @@ -100,34 +101,45 @@ export const Overlays = () => { ); }; -export const Overlay = ({ modals, canvas, helpStatus }: OverlayProps) => { +export const Overlay = ({ + modals, + canvas, + externalOverlayStatus, +}: OverlayProps) => { return ( <> - <OverlayBackground /> - <Modal modals={modals} helpStatus={helpStatus} /> - <Canvas canvas={canvas} /> + <OverlayBackground externalOverlayStatus={externalOverlayStatus} /> + <Modal modals={modals} externalOverlayStatus={externalOverlayStatus} /> + <Canvas canvas={canvas} externalOverlayStatus={externalOverlayStatus} /> </> ); }; -export const Modal = ({ modals, helpStatus }: ModalProps) => { +export const Modal = ({ modals, externalOverlayStatus }: ModalProps) => { const { - config: { key, size, options }, - status, - height, - resize, - setModalStatus, - setRef, - setHeightRef, - maxHeight, - setHeight, - } = useOverlay().modal; + activeOverlayInstance, + setOpenOverlayInstances, + setActiveOverlayInstance, + modal: { + config: { key, size, options }, + status, + height, + resize, + setModalStatus, + setRef, + setHeightRef, + maxHeight, + setHeight, + }, + } = useOverlay(); const controls = useAnimation(); const { status: canvasStatus } = useOverlay().canvas; const modalRef = useRef<HTMLDivElement>(null); const heightRef = useRef<HTMLDivElement>(null); const onOutClose = async () => { + setOpenOverlayInstances('dec', 'modal'); + setActiveOverlayInstance(null); await controls.start('out'); setModalStatus('closed'); }; @@ -153,26 +165,36 @@ export const Modal = ({ modals, helpStatus }: ModalProps) => { // Control on modal status change. useEffect(() => { - if (status === 'open') onIn(); + if (activeOverlayInstance === 'modal' && status === 'open') onIn(); if (status === 'closing') onOutClose(); }, [status]); // Control on canvas status change. useEffect(() => { - if (canvasStatus === 'open') if (status === 'open') onOut(); - if (canvasStatus === 'closing') if (status === 'open') onIn(); + // fade out modal if canvas has been opened. + if (canvasStatus === 'open' && status === 'open') onOut(); + // fade in modal if its open & canvas is closing. + if (canvasStatus === 'closing') { + if (status === 'open') onIn(); + } }, [canvasStatus]); - // Control dim help status change. + // Control dim external overlay change. useEffect(() => { - if (helpStatus === 1) if (status === 'open') onOut(); - if (helpStatus === 2) if (status === 'open') onIn(); - }, [helpStatus]); + // fade out modal if external overlay has been opened. + if (externalOverlayStatus === 'open' && status === 'open') onOut(); + // fade in modal if its open & external overlay is closing. + if ( + externalOverlayStatus === 'closing' && + activeOverlayInstance === 'modal' + ) + onIn(); + }, [externalOverlayStatus]); - // resize modal on status or resize change. + // Resize modal on status or resize change. useEffect(() => handleResize(), [resize]); - // resize modal on window size change. + // Resize modal on window size change. useEffect(() => { windowResize(); return () => { @@ -180,7 +202,7 @@ export const Modal = ({ modals, helpStatus }: ModalProps) => { }; }); - // update the modal's content ref. + // Update the modal's content ref as they are initialised. useEffect(() => { setRef(modalRef); setHeightRef(heightRef); @@ -235,7 +257,7 @@ export const Modal = ({ modals, helpStatus }: ModalProps) => { <ModalCard ref={modalRef} className={ - helpStatus === 1 || canvasStatus === 'open' + externalOverlayStatus === 'open' || canvasStatus === 'open' ? 'dimmed' : undefined } @@ -261,31 +283,54 @@ export const Modal = ({ modals, helpStatus }: ModalProps) => { ); }; -export const Canvas = ({ canvas }: CanvasProps) => { +export const Canvas = ({ canvas, externalOverlayStatus }: CanvasProps) => { const controls = useAnimation(); const { - status, - setCanvasStatus, - config: { key }, - } = useOverlay().canvas; + setOpenOverlayInstances, + activeOverlayInstance, + setActiveOverlayInstance, + modal: { status: modalStatus }, + canvas: { + status, + setCanvasStatus, + config: { key }, + }, + } = useOverlay(); - const onFadeIn = async () => { + const onIn = async () => { await controls.start('visible'); }; - const onFadeOut = async () => { + const onOut = async (closing: boolean) => { + if (closing) { + setOpenOverlayInstances('dec', 'canvas'); + setActiveOverlayInstance(modalStatus === 'open' ? 'modal' : null); + } await controls.start('hidden'); - setCanvasStatus('closed'); + + if (closing) setCanvasStatus('closed'); }; + // Control dim help status change. + useEffect(() => { + if (externalOverlayStatus === 'open' && status === 'open') onOut(false); + + if (externalOverlayStatus === 'closing') { + if (activeOverlayInstance === 'canvas') { + setCanvasStatus('open'); + onIn(); + } + } + }, [externalOverlayStatus]); + useEffect(() => { // canvas has been opened - fade in. if (status === 'open') { - onFadeIn(); + onIn(); } // canvas closure triggered - fade out. if (status === 'closing') { - onFadeOut(); + onOut(true); } }, [status]); @@ -322,42 +367,37 @@ export const Canvas = ({ canvas }: CanvasProps) => { ); }; -export const OverlayBackground = () => { +export const OverlayBackground = ({ + externalOverlayStatus, +}: { + externalOverlayStatus?: CanvasStatus; +}) => { const controls = useAnimation(); - const { status: helpStatus } = useHelp(); - const { status: modalStatus } = useOverlay().modal; - const { status: canvasStatus } = useOverlay().canvas; + const { + modal: { status: modalStatus }, + canvas: { status: canvasStatus }, + } = useOverlay(); + + let { openOverlayInstances } = useOverlay(); + if (externalOverlayStatus === 'open') { + openOverlayInstances++; + } - const onFadeIn = async () => { + const onIn = async () => { await controls.start('visible'); }; - const onFadeOut = async () => { + const onOut = async () => { await controls.start('hidden'); }; useEffect(() => { - if (modalStatus === 'open') onFadeIn(); - if (modalStatus === 'closing') onFadeOut(); - }, [modalStatus]); - - useEffect(() => { - if (canvasStatus === 'open' && modalStatus !== 'open') onFadeIn(); - if (canvasStatus === 'closing' && modalStatus !== 'open') onFadeOut(); - }, [canvasStatus]); - - // Managing fade is more complex with help, as it can overlay modal and canvas. Do not fade in/out - // if modal or canvas is open. (help can be opened in a modal, canvas can be summoned in an open - // modal). - useEffect(() => { - if (helpStatus === 1 && modalStatus !== 'open' && canvasStatus !== 'open') - onFadeIn(); - if (helpStatus === 2 && modalStatus !== 'open' && canvasStatus !== 'open') - onFadeOut(); - }, [helpStatus]); + if (openOverlayInstances > 0) onIn(); + if (openOverlayInstances === 0) onOut(); + }, [openOverlayInstances]); if ( modalStatus === 'closed' && - helpStatus === 0 && + externalOverlayStatus === 'closed' && canvasStatus === 'closed' ) { return <></>; @@ -365,7 +405,11 @@ export const OverlayBackground = () => { return ( <ModalOverlay - blur={canvasStatus === 'open' || helpStatus === 1 ? '14px' : '4px'} + blur={ + canvasStatus === 'open' || externalOverlayStatus === 'open' + ? '14px' + : '4px' + } initial={{ opacity: 0, }} From 9389ed859f1ebd685f78bdb2418ef7f03831515d Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 22 Aug 2023 18:55:47 +0700 Subject: [PATCH 282/435] tidy up --- src/canvas/TestCanvas/index.tsx | 25 ------------------------- src/contexts/Overlay/types.ts | 4 ++-- src/modals/UpdateReserve/index.tsx | 11 +++-------- src/overlay/index.tsx | 12 ++++-------- 4 files changed, 9 insertions(+), 43 deletions(-) delete mode 100644 src/canvas/TestCanvas/index.tsx diff --git a/src/canvas/TestCanvas/index.tsx b/src/canvas/TestCanvas/index.tsx deleted file mode 100644 index 20941f87f8..0000000000 --- a/src/canvas/TestCanvas/index.tsx +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: GPL-3.0-only - -import { ButtonHelp } from '@polkadot-cloud/react'; -import { useHelp } from 'contexts/Help'; -import { useOverlay } from 'contexts/Overlay'; -import { CanvasCardWrapper } from 'library/Canvas/Wrappers'; - -export const TestCanvas = () => { - const { closeCanvas } = useOverlay().canvas; - const { openHelp } = useHelp(); - - return ( - <CanvasCardWrapper> - <h1>Test</h1> - <button type="button" onClick={() => closeCanvas()}> - Close - </button> - <ButtonHelp - onClick={() => openHelp('Reserve Balance For Existential Deposit')} - style={{ marginLeft: '0.65rem' }} - /> - </CanvasCardWrapper> - ); -}; diff --git a/src/contexts/Overlay/types.ts b/src/contexts/Overlay/types.ts index ef1b4f3302..bebf499bb8 100644 --- a/src/contexts/Overlay/types.ts +++ b/src/contexts/Overlay/types.ts @@ -37,12 +37,12 @@ export interface OverlayContextInterface { } export interface CanvasProps { - canvas: Record<string, React.FC>; + canvas?: Record<string, React.FC>; externalOverlayStatus: CanvasStatus; } export interface ModalProps { - modals: Record<string, React.FC>; + modals?: Record<string, React.FC>; externalOverlayStatus: CanvasStatus; } export type OverlayProps = ModalProps & CanvasProps; diff --git a/src/modals/UpdateReserve/index.tsx b/src/modals/UpdateReserve/index.tsx index e2994b8bf8..7c0a8ebaa6 100644 --- a/src/modals/UpdateReserve/index.tsx +++ b/src/modals/UpdateReserve/index.tsx @@ -30,14 +30,13 @@ export const UpdateReserve = () => { network: { units, unit }, } = useApi(); const { network } = useApi(); - const { setModalStatus } = useOverlay().modal; const { openHelp } = useHelp(); - const { openCanvas } = useOverlay().canvas; + const { setModalStatus } = useOverlay().modal; + const { activeAccount, accountHasSigner } = useConnect(); const { feeReserve, setFeeReserveBalance, getTransferOptions } = useTransferOptions(); - const { activeAccount, accountHasSigner } = useConnect(); - const { edReserved } = getTransferOptions(activeAccount); + const { edReserved } = getTransferOptions(activeAccount); const minReserve = planckToUnit(edReserved, units); const maxReserve = minReserve.plus( ['polkadot', 'westend'].includes(network.name) ? 3 : 1 @@ -115,10 +114,6 @@ export const UpdateReserve = () => { } style={{ marginLeft: '0.65rem' }} /> - <ButtonHelp - onClick={() => openCanvas({ key: 'TestCanvas' })} - style={{ marginLeft: '0.65rem' }} - /> </> ) : ( `${minReserve.decimalPlaces(4).toString()} ${unit}` diff --git a/src/overlay/index.tsx b/src/overlay/index.tsx index de730604df..72ca1c073e 100644 --- a/src/overlay/index.tsx +++ b/src/overlay/index.tsx @@ -23,7 +23,6 @@ import type { OverlayProps, } from 'contexts/Overlay/types'; import { CanvasWrapper } from 'library/Canvas/Wrappers'; -import { TestCanvas } from 'canvas/TestCanvas'; import { AccountPoolRoles } from '../modals/AccountPoolRoles'; import { Accounts } from '../modals/Accounts'; import { Bio } from '../modals/Bio'; @@ -61,9 +60,6 @@ export const Overlays = () => { return ( <Overlay externalOverlayStatus={status} - canvas={{ - TestCanvas, - }} modals={{ Bio, AccountPoolRoles, @@ -102,8 +98,8 @@ export const Overlays = () => { }; export const Overlay = ({ - modals, - canvas, + modals = {}, + canvas = {}, externalOverlayStatus, }: OverlayProps) => { return ( @@ -230,7 +226,7 @@ export const Modal = ({ modals, externalOverlayStatus }: ModalProps) => { scale: 0.9, }; - const ActiveModal: React.FC = modals[key] || null; + const ActiveModal: React.FC | null = modals?.[key] || null; return ( <> @@ -338,7 +334,7 @@ export const Canvas = ({ canvas, externalOverlayStatus }: CanvasProps) => { return <></>; } - const ActiveCanvas: React.FC = canvas[key] || null; + const ActiveCanvas: React.FC | null = canvas?.[key] || null; return ( <ModalCanvas From f2a3ea28c2be3f40bef1086bd39f88121bf5b1bb Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 22 Aug 2023 19:07:40 +0700 Subject: [PATCH 283/435] fix don't inc on replacing modal --- src/contexts/Overlay/index.tsx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/contexts/Overlay/index.tsx b/src/contexts/Overlay/index.tsx index 9cc22cc38e..5959795682 100644 --- a/src/contexts/Overlay/index.tsx +++ b/src/contexts/Overlay/index.tsx @@ -76,7 +76,9 @@ export const OverlayProvider = ({ const openModal = ({ key, size = 'large', options = {} }: ModalConfig) => { setModalConfig({ key, size, options }); setModalStatus('opening'); - setOpenOverlayInstances('inc', 'modal'); + if (!options?.replacing) { + setOpenOverlayInstances('inc', 'modal'); + } }; // Closes one modal and opens another. @@ -86,7 +88,10 @@ export const OverlayProvider = ({ openModal({ key, size, - options, + options: { + ...options, + replacing: true, + }, }); }, 10); }; From 103b9ec2063b370bac615c8ef2cd579587fb77bf Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 22 Aug 2023 19:30:20 +0700 Subject: [PATCH 284/435] improve naming --- src/contexts/Overlay/defaults.tsx | 14 ++++++------ src/contexts/Overlay/index.tsx | 18 +++++++-------- src/contexts/Overlay/types.ts | 14 ++++++------ src/library/AccountInput/index.tsx | 4 ++-- src/library/SubmitTx/ManualSign/Ledger.tsx | 4 ++-- src/library/SubmitTx/index.tsx | 4 ++-- src/library/ValidatorList/index.tsx | 5 ++--- src/modals/Accounts/index.tsx | 14 ++++++------ src/modals/BalanceTest/index.tsx | 4 ++-- src/modals/Bond/index.tsx | 9 ++++---- src/modals/ChangeNominations/index.tsx | 4 ++-- src/modals/ChangePoolRoles/index.tsx | 4 ++-- src/modals/ClaimReward/index.tsx | 4 ++-- src/modals/Connect/ReadOnly.tsx | 4 ++-- src/modals/Connect/index.tsx | 6 ++--- src/modals/ImportLedger/Splash.tsx | 6 ++--- src/modals/ImportLedger/index.tsx | 4 ++-- src/modals/ImportVault/index.tsx | 4 ++-- src/modals/JoinPool/index.tsx | 7 ++++-- src/modals/ManageFastUnstake/index.tsx | 4 ++-- src/modals/ManagePool/Forms/LeavePool.tsx | 6 ++--- src/modals/ManagePool/index.tsx | 4 ++-- src/modals/Networks/index.tsx | 6 ++--- src/modals/Nominate/index.tsx | 4 ++-- src/modals/NominateFromFavorites/index.tsx | 4 ++-- src/modals/NominatePool/index.tsx | 4 ++-- src/modals/SelectFavorites/index.tsx | 6 ++--- src/modals/Unbond/index.tsx | 4 ++-- src/modals/UnbondPoolMember/index.tsx | 4 ++-- src/modals/UnlockChunks/index.tsx | 6 ++--- src/modals/Unstake/index.tsx | 4 ++-- src/modals/UpdateController/index.tsx | 4 ++-- src/modals/UpdatePayee/index.tsx | 4 ++-- src/modals/WithdrawPoolMember/index.tsx | 4 ++-- src/overlay/index.tsx | 26 +++++++++++----------- 35 files changed, 111 insertions(+), 116 deletions(-) diff --git a/src/contexts/Overlay/defaults.tsx b/src/contexts/Overlay/defaults.tsx index ebb225ac4d..7fba07db29 100644 --- a/src/contexts/Overlay/defaults.tsx +++ b/src/contexts/Overlay/defaults.tsx @@ -34,13 +34,13 @@ export const defaultOverlayContext: OverlayContextInterface = { modal: { status: 'closed', config: defaultModalConfig, - height: 0, - resize: 0, - maxHeight: 0, - setResize: () => {}, - setHeight: () => {}, - setRef: (ref) => {}, - setHeightRef: (height) => {}, + modalHeight: 0, + modalResizeCounter: 0, + modalMaxHeight: 0, + setModalResize: () => {}, + setModalHeight: () => {}, + setModalRef: (ref) => {}, + setModalHeightRef: (height) => {}, setModalStatus: (status) => {}, replaceModal: (config) => {}, openModal: (config) => {}, diff --git a/src/contexts/Overlay/index.tsx b/src/contexts/Overlay/index.tsx index 5959795682..e206371d7e 100644 --- a/src/contexts/Overlay/index.tsx +++ b/src/contexts/Overlay/index.tsx @@ -53,7 +53,7 @@ export const OverlayProvider = ({ const [modalHeight, setModalHeightState] = useState<number>(0); // Store the modal's resize counter. - const [modalResize, setModalResizeState] = useState<number>(0); + const [modalResizeCounter, setModalResizeCounterState] = useState<number>(0); // Store the ref to the modal height container. Used for controlling whether height is transitionable. const [modalRef, setModalRef] = useState<RefObject<HTMLDivElement>>(); @@ -118,7 +118,7 @@ export const OverlayProvider = ({ // Increments modal resize to trigger a height transition. const setModalResize = () => { transitionOn(); - setModalResizeState(modalResize + 1); + setModalResizeCounterState(modalResizeCounter + 1); setTimeout(() => transitionOff(), 500); }; @@ -192,13 +192,13 @@ export const OverlayProvider = ({ modal: { status: modalStatusRef.current, config: modalConfigRef.current, - height: modalHeight, - resize: modalResize, - maxHeight: modalMaxHeight, - setResize: setModalResize, - setHeight: setModalHeight, - setRef: setModalRef, - setHeightRef: setModalHeightRef, + modalHeight, + modalResizeCounter, + modalMaxHeight, + setModalResize, + setModalHeight, + setModalRef, + setModalHeightRef, setModalStatus, openModal, replaceModal, diff --git a/src/contexts/Overlay/types.ts b/src/contexts/Overlay/types.ts index bebf499bb8..41553394c4 100644 --- a/src/contexts/Overlay/types.ts +++ b/src/contexts/Overlay/types.ts @@ -23,13 +23,13 @@ export interface OverlayContextInterface { modal: { status: ModalStatus; config: AnyJson; - height: number; - resize: number; - maxHeight: number; - setResize: () => void; - setHeight: (v: number) => void; - setRef: (v: RefObject<HTMLDivElement>) => void; - setHeightRef: (v: RefObject<HTMLDivElement>) => void; + modalHeight: number; + modalResizeCounter: number; + modalMaxHeight: number; + setModalResize: () => void; + setModalHeight: (v: number) => void; + setModalRef: (v: RefObject<HTMLDivElement>) => void; + setModalHeightRef: (v: RefObject<HTMLDivElement>) => void; setModalStatus: (status: ModalStatus) => void; replaceModal: (config: ModalConfig) => void; openModal: (config: ModalConfig) => void; diff --git a/src/library/AccountInput/index.tsx b/src/library/AccountInput/index.tsx index 037f8d24c4..7a13612ec0 100644 --- a/src/library/AccountInput/index.tsx +++ b/src/library/AccountInput/index.tsx @@ -28,7 +28,7 @@ export const AccountInput = ({ const { t } = useTranslation('library'); const { formatAccountSs58, accounts } = useConnect(); - const { setResize } = useOverlay().modal; + const { setModalResize } = useOverlay().modal; // store current input value const [value, setValue] = useState(initialValue || ''); @@ -138,7 +138,7 @@ export const AccountInput = ({ setReformatted(false); setValue(''); setValid(null); - setResize(); + setModalResize(); setSuccessLocked(false); if (resetCallback) { resetCallback(); diff --git a/src/library/SubmitTx/ManualSign/Ledger.tsx b/src/library/SubmitTx/ManualSign/Ledger.tsx index 2b234c3708..860ddd740e 100644 --- a/src/library/SubmitTx/ManualSign/Ledger.tsx +++ b/src/library/SubmitTx/ManualSign/Ledger.tsx @@ -40,7 +40,7 @@ export const Ledger = ({ handleUnmount, } = useLedgerHardware(); const { openHelp } = useHelp(); - const { setResize } = useOverlay().modal; + const { setModalResize } = useOverlay().modal; const { activeAccount, accountHasSigner, getAccount } = useConnect(); const { txFeesValid, setTxSignature, getTxSignature } = useTxMeta(); @@ -88,7 +88,7 @@ export const Ledger = ({ // Resize modal on content change. useEffect(() => { - setResize(); + setModalResize(); }, [isPaired, getStatusCodes()]); // Listen for new Ledger status reports. diff --git a/src/library/SubmitTx/index.tsx b/src/library/SubmitTx/index.tsx index a2e548f213..6494a284c5 100644 --- a/src/library/SubmitTx/index.tsx +++ b/src/library/SubmitTx/index.tsx @@ -27,7 +27,7 @@ export const SubmitTx = ({ const { t } = useTranslation(); const { unit } = useApi().network; const { getBondedAccount } = useBonded(); - const { setResize } = useOverlay().modal; + const { setModalResize } = useOverlay().modal; const { notEnoughFunds, sender, setTxSignature } = useTxMeta(); const { requiresManualSign, activeAccount, activeProxy, getAccount } = useConnect(); @@ -61,7 +61,7 @@ export const SubmitTx = ({ // Set resize on not enough funds. useEffect(() => { - setResize(); + setModalResize(); }, [notEnoughFunds, fromController]); // Reset tx metadata on unmount. diff --git a/src/library/ValidatorList/index.tsx b/src/library/ValidatorList/index.tsx index a7354be29b..c891dc7cda 100644 --- a/src/library/ValidatorList/index.tsx +++ b/src/library/ValidatorList/index.tsx @@ -52,7 +52,7 @@ export const ValidatorListInner = ({ isReady, network: { colors }, } = useApi(); - const { setResize } = useOverlay().modal; + const { setModalResize } = useOverlay().modal; const provider = useList(); const { mode } = useTheme(); const { isSyncing } = useUi(); @@ -238,8 +238,7 @@ export const ValidatorListInner = ({ // if in modal, handle resize const maybeHandleModalResize = () => { - if (!inModal) return; - setResize(); + if (inModal) setModalResize(); }; const handleSearchChange = (e: React.FormEvent<HTMLInputElement>) => { diff --git a/src/modals/Accounts/index.tsx b/src/modals/Accounts/index.tsx index 0530ce36d6..dbfd6bcdfc 100644 --- a/src/modals/Accounts/index.tsx +++ b/src/modals/Accounts/index.tsx @@ -37,7 +37,11 @@ export const Accounts = () => { const { bondedAccounts } = useBonded(); const { ledgers, getLocks } = useBalances(); const { memberships } = usePoolMemberships(); - const { replaceModal, status: modalStatus, setResize } = useOverlay().modal; + const { + replaceModal, + status: modalStatus, + setModalResize, + } = useOverlay().modal; const { activeAccount, disconnectFromAccount, setActiveProxy, accounts } = useConnect(); @@ -110,14 +114,10 @@ export const Accounts = () => { } } - useEffect(() => { - setLocalAccounts(accounts); - }, [accounts]); + useEffect(() => setLocalAccounts(accounts), [accounts]); useEffectIgnoreInitial(() => { - if (modalStatus === 'open') { - setResize(); - } + if (modalStatus === 'open') setModalResize(); }, [activeAccount, accounts, bondedAccounts, balances, ledgers, extensions]); return ( diff --git a/src/modals/BalanceTest/index.tsx b/src/modals/BalanceTest/index.tsx index 193d7b15a8..2dc41de562 100644 --- a/src/modals/BalanceTest/index.tsx +++ b/src/modals/BalanceTest/index.tsx @@ -18,7 +18,7 @@ export const BalanceTest = () => { const { activeAccount } = useConnect(); const { notEnoughFunds } = useTxMeta(); const { newBatchCall } = useBatchCall(); - const { setModalStatus, setResize } = useOverlay().modal; + const { setModalStatus, setModalResize } = useOverlay().modal; const { units } = network; // tx to submit @@ -57,7 +57,7 @@ export const BalanceTest = () => { callbackInBlock: () => {}, }); - useEffect(() => setResize(), [notEnoughFunds]); + useEffect(() => setModalResize(), [notEnoughFunds]); return ( <> diff --git a/src/modals/Bond/index.tsx b/src/modals/Bond/index.tsx index bea4813e95..622f80b92a 100644 --- a/src/modals/Bond/index.tsx +++ b/src/modals/Bond/index.tsx @@ -31,7 +31,7 @@ export const Bond = () => { const { setModalStatus, config: { options }, - setResize, + setModalResize, } = useOverlay().modal; const { units } = network; const { bondFor } = options; @@ -133,9 +133,10 @@ export const Bond = () => { ); // modal resize on form update - useEffect(() => { - setResize(); - }, [bond, bondValid, notEnoughFunds, feedbackErrors.length, warnings.length]); + useEffect( + () => setModalResize(), + [bond, bondValid, notEnoughFunds, feedbackErrors.length, warnings.length] + ); return ( <> diff --git a/src/modals/ChangeNominations/index.tsx b/src/modals/ChangeNominations/index.tsx index f69cca803a..5b76756f72 100644 --- a/src/modals/ChangeNominations/index.tsx +++ b/src/modals/ChangeNominations/index.tsx @@ -30,7 +30,7 @@ export const ChangeNominations = () => { const { setModalStatus, config: { options }, - setResize, + setModalResize, } = useOverlay().modal; const { poolNominations, isNominator, isOwner, selectedActivePool } = useActivePools(); @@ -62,7 +62,7 @@ export const ChangeNominations = () => { isValid = (isNominator() || isOwner()) ?? false; } - useEffect(() => setResize(), [notEnoughFunds]); + useEffect(() => setModalResize(), [notEnoughFunds]); useEffect(() => setValid(isValid), [isValid]); diff --git a/src/modals/ChangePoolRoles/index.tsx b/src/modals/ChangePoolRoles/index.tsx index 44bff1eea1..ce31768c08 100644 --- a/src/modals/ChangePoolRoles/index.tsx +++ b/src/modals/ChangePoolRoles/index.tsx @@ -24,7 +24,7 @@ export const ChangePoolRoles = () => { const { setModalStatus, config: { options }, - setResize, + setModalResize, } = useOverlay().modal; const { id: poolId, roleEdits } = options; @@ -59,7 +59,7 @@ export const ChangePoolRoles = () => { }, }); - useEffect(() => setResize(), [notEnoughFunds]); + useEffect(() => setModalResize(), [notEnoughFunds]); return ( <> diff --git a/src/modals/ClaimReward/index.tsx b/src/modals/ClaimReward/index.tsx index 565ab7b861..f966aed2b2 100644 --- a/src/modals/ClaimReward/index.tsx +++ b/src/modals/ClaimReward/index.tsx @@ -27,7 +27,7 @@ export const ClaimReward = () => { const { setModalStatus, config: { options }, - setResize, + setModalResize, } = useOverlay().modal; const { units, unit } = network; @@ -82,7 +82,7 @@ export const ClaimReward = () => { warnings.push(`${t('noRewards')}`); } - useEffect(() => setResize(), [notEnoughFunds, warnings.length]); + useEffect(() => setModalResize(), [notEnoughFunds, warnings.length]); return ( <> diff --git a/src/modals/Connect/ReadOnly.tsx b/src/modals/Connect/ReadOnly.tsx index f3f8f0066d..7eba843b11 100644 --- a/src/modals/Connect/ReadOnly.tsx +++ b/src/modals/Connect/ReadOnly.tsx @@ -29,7 +29,7 @@ import type { ListWithInputProps } from './types'; export const ReadOnly = ({ setInputOpen, inputOpen }: ListWithInputProps) => { const { t } = useTranslation('modals'); const { openHelp } = useHelp(); - const { setResize } = useOverlay().modal; + const { setModalResize } = useOverlay().modal; const { accounts, forgetAccounts, addExternalAccount } = useConnect(); // get all external accounts @@ -45,7 +45,7 @@ export const ReadOnly = ({ setInputOpen, inputOpen }: ListWithInputProps) => { // forget account const forgetAccount = (account: ExternalAccount) => { forgetAccounts([account]); - setResize(); + setModalResize(); }; return ( <> diff --git a/src/modals/Connect/index.tsx b/src/modals/Connect/index.tsx index 6c498e3447..7b304adb4f 100644 --- a/src/modals/Connect/index.tsx +++ b/src/modals/Connect/index.tsx @@ -31,7 +31,7 @@ import { ExtensionsWrapper } from './Wrappers'; export const Connect = () => { const { t } = useTranslation('modals'); const { extensions } = useExtensions(); - const { replaceModal, setHeight, maxHeight } = useOverlay().modal; + const { replaceModal, setModalHeight, modalMaxHeight } = useOverlay().modal; const installed = ExtensionsArray.filter((a) => extensions.find((b) => b.id === a.id) @@ -64,7 +64,7 @@ export const Connect = () => { readOnlyRef.current?.clientHeight || 0, proxiesRef.current?.clientHeight || 0 ); - setHeight(height); + setModalHeight(height); }; // Resize modal on state change. @@ -117,7 +117,7 @@ export const Connect = () => { <ModalMotionThreeSection style={{ - maxHeight: maxHeight - (headerRef.current?.clientHeight || 0), + maxHeight: modalMaxHeight - (headerRef.current?.clientHeight || 0), }} animate={ section === 0 ? 'home' : section === 1 ? 'readOnly' : 'proxies' diff --git a/src/modals/ImportLedger/Splash.tsx b/src/modals/ImportLedger/Splash.tsx index eebe49f6b4..4838f565aa 100644 --- a/src/modals/ImportLedger/Splash.tsx +++ b/src/modals/ImportLedger/Splash.tsx @@ -25,7 +25,7 @@ export const Splash = ({ handleLedgerLoop }: AnyFunction) => { } = useLedgerHardware(); const { mode } = useTheme(); const { openHelp } = useHelp(); - const { replaceModal, setResize } = useOverlay().modal; + const { replaceModal, setModalResize } = useOverlay().modal; const statusCodes = getStatusCodes(); @@ -54,9 +54,7 @@ export const Splash = ({ handleLedgerLoop }: AnyFunction) => { }, [isPaired]); // Resize modal on new message - useEffect(() => { - setResize(); - }, [statusCodes, feedback]); + useEffect(() => setModalResize(), [statusCodes, feedback]); return ( <> diff --git a/src/modals/ImportLedger/index.tsx b/src/modals/ImportLedger/index.tsx index 4636ada611..128ba2a562 100644 --- a/src/modals/ImportLedger/index.tsx +++ b/src/modals/ImportLedger/index.tsx @@ -15,7 +15,7 @@ import { Splash } from './Splash'; export const ImportLedger: React.FC = () => { const { network } = useApi(); - const { setResize } = useOverlay().modal; + const { setModalResize } = useOverlay().modal; const { transportResponse, getIsExecuting, @@ -137,7 +137,7 @@ export const ImportLedger: React.FC = () => { // Resize modal on content change. useEffect(() => { - setResize(); + setModalResize(); }, [isPaired, getStatusCodes(), addressesRef.current]); // Listen for new Ledger status reports. diff --git a/src/modals/ImportVault/index.tsx b/src/modals/ImportVault/index.tsx index b8e357454d..4c12f23908 100644 --- a/src/modals/ImportVault/index.tsx +++ b/src/modals/ImportVault/index.tsx @@ -38,7 +38,7 @@ export const ImportVault = () => { removeVaultAccount, getVaultAccount, } = useVaultHardware(); - const { setResize } = useOverlay().modal; + const { setModalResize } = useOverlay().modal; const renameHandler = (address: string, newName: string) => { renameVaultAccount(address, newName); @@ -64,7 +64,7 @@ export const ImportVault = () => { }; useEffect(() => { - setResize(); + setModalResize(); }, [vaultAccounts]); return ( diff --git a/src/modals/JoinPool/index.tsx b/src/modals/JoinPool/index.tsx index 739dc2718b..20d698a4a5 100644 --- a/src/modals/JoinPool/index.tsx +++ b/src/modals/JoinPool/index.tsx @@ -37,7 +37,7 @@ export const JoinPool = () => { const { setModalStatus, config: { options }, - setResize, + setModalResize, } = useOverlay().modal; const { id: poolId, setActiveTab } = options; @@ -68,7 +68,10 @@ export const JoinPool = () => { const [feedbackErrors, setFeedbackErrors] = useState<string[]>([]); // modal resize on form update - useEffect(() => setResize(), [bond, notEnoughFunds, feedbackErrors.length]); + useEffect( + () => setModalResize(), + [bond, notEnoughFunds, feedbackErrors.length] + ); // tx to submit const getTx = () => { diff --git a/src/modals/ManageFastUnstake/index.tsx b/src/modals/ManageFastUnstake/index.tsx index c4d5f5e431..bc3c3ae5f6 100644 --- a/src/modals/ManageFastUnstake/index.tsx +++ b/src/modals/ManageFastUnstake/index.tsx @@ -33,7 +33,7 @@ export const ManageFastUnstake = () => { const { getBondedAccount } = useBonded(); const { api, consts, network } = useApi(); const { isFastUnstaking } = useUnstaking(); - const { setResize, setModalStatus } = useOverlay().modal; + const { setModalResize, setModalStatus } = useOverlay().modal; const { getSignerWarnings } = useSignerWarnings(); const { activeEra, metrics } = useNetworkMetrics(); const { feeReserve, getTransferOptions } = useTransferOptions(); @@ -74,7 +74,7 @@ export const ManageFastUnstake = () => { ]); useEffect( - () => setResize(), + () => setModalResize(), [notEnoughFunds, isExposed, queueDeposit, isFastUnstaking] ); diff --git a/src/modals/ManagePool/Forms/LeavePool.tsx b/src/modals/ManagePool/Forms/LeavePool.tsx index 9887aea6c1..8e5daaf6d4 100644 --- a/src/modals/ManagePool/Forms/LeavePool.tsx +++ b/src/modals/ManagePool/Forms/LeavePool.tsx @@ -34,7 +34,7 @@ export const LeavePool = ({ setSection }: any) => { const { api, network, consts } = useApi(); const { activeAccount } = useConnect(); const { units } = network; - const { setModalStatus, setResize } = useOverlay().modal; + const { setModalStatus, setModalResize } = useOverlay().modal; const { getTransferOptions } = useTransferOptions(); const { selectedActivePool } = useActivePools(); const { erasToSeconds } = useErasToTimeLeft(); @@ -76,9 +76,7 @@ export const LeavePool = ({ setSection }: any) => { }, [freeToUnbond.toString(), isValid]); // modal resize on form update - useEffect(() => { - setResize(); - }, [bond]); + useEffect(() => setModalResize(), [bond]); // tx to submit const getTx = () => { diff --git a/src/modals/ManagePool/index.tsx b/src/modals/ManagePool/index.tsx index ebad219b84..03b63dd544 100644 --- a/src/modals/ManagePool/index.tsx +++ b/src/modals/ManagePool/index.tsx @@ -18,7 +18,7 @@ import { Tasks } from './Tasks'; export const ManagePool = () => { const { t } = useTranslation('modals'); const { notEnoughFunds } = useTxMeta(); - const { setHeight } = useOverlay().modal; + const { setModalHeight } = useOverlay().modal; const { isOwner, selectedActivePool } = useActivePools(); // modal task @@ -45,7 +45,7 @@ export const ManagePool = () => { } else { height += formsRef.current?.clientHeight || 0; } - setHeight(height); + setModalHeight(height); }, [ section, task, diff --git a/src/modals/Networks/index.tsx b/src/modals/Networks/index.tsx index f54d0be26c..0b114816fd 100644 --- a/src/modals/Networks/index.tsx +++ b/src/modals/Networks/index.tsx @@ -23,7 +23,7 @@ import { export const Networks = () => { const { t } = useTranslation('modals'); - const { setModalStatus, setResize } = useOverlay().modal; + const { setModalStatus, setModalResize } = useOverlay().modal; const { switchNetwork, network, isLightClient } = useApi(); const networkKey: string = network.name; @@ -36,9 +36,7 @@ export const Networks = () => { }); }); - useEffect(() => { - setResize(); - }, [braveBrowser]); + useEffect(() => setModalResize(), [braveBrowser]); return ( <> diff --git a/src/modals/Nominate/index.tsx b/src/modals/Nominate/index.tsx index 2529698838..b06ea9c69c 100644 --- a/src/modals/Nominate/index.tsx +++ b/src/modals/Nominate/index.tsx @@ -27,7 +27,7 @@ export const Nominate = () => { const { getStashLedger } = useBalances(); const { targets, staking } = useStaking(); const { getSignerWarnings } = useSignerWarnings(); - const { setModalStatus, setResize } = useOverlay().modal; + const { setModalStatus, setModalResize } = useOverlay().modal; const { units, unit } = network; const { minNominatorBond } = staking; @@ -50,7 +50,7 @@ export const Nominate = () => { ); }, [targets]); - useEffect(() => setResize(), [notEnoughFunds]); + useEffect(() => setModalResize(), [notEnoughFunds]); // tx to submit const getTx = () => { diff --git a/src/modals/NominateFromFavorites/index.tsx b/src/modals/NominateFromFavorites/index.tsx index 99d3cb0763..33512d13c4 100644 --- a/src/modals/NominateFromFavorites/index.tsx +++ b/src/modals/NominateFromFavorites/index.tsx @@ -35,7 +35,7 @@ export const NominateFromFavorites = () => { const { config: { options }, setModalStatus, - setResize, + setModalResize, } = useOverlay().modal; const { selectedActivePool, isNominator, isOwner } = useActivePools(); @@ -72,7 +72,7 @@ export const NominateFromFavorites = () => { // valid to submit transaction const [valid, setValid] = useState<boolean>(false); - useEffect(() => setResize(), [notEnoughFunds, selectedFavorites]); + useEffect(() => setModalResize(), [notEnoughFunds, selectedFavorites]); // ensure selected list is within limits useEffect(() => { diff --git a/src/modals/NominatePool/index.tsx b/src/modals/NominatePool/index.tsx index e3daa5eee5..37f68153e5 100644 --- a/src/modals/NominatePool/index.tsx +++ b/src/modals/NominatePool/index.tsx @@ -18,7 +18,7 @@ import { useOverlay } from 'contexts/Overlay'; export const NominatePool = () => { const { t } = useTranslation('modals'); const { api } = useApi(); - const { setModalStatus, setResize } = useOverlay().modal; + const { setModalStatus, setModalResize } = useOverlay().modal; const { activeAccount } = useConnect(); const { selectedActivePool, isOwner, isNominator, targets } = useActivePools(); @@ -49,7 +49,7 @@ export const NominatePool = () => { useEffect(() => setValid(isValid), [isValid]); - useEffect(() => setResize(), [notEnoughFunds]); + useEffect(() => setModalResize(), [notEnoughFunds]); const submitExtrinsic = useSubmitExtrinsic({ tx: getTx(), diff --git a/src/modals/SelectFavorites/index.tsx b/src/modals/SelectFavorites/index.tsx index d9970fcca1..49ae23afd4 100644 --- a/src/modals/SelectFavorites/index.tsx +++ b/src/modals/SelectFavorites/index.tsx @@ -18,7 +18,7 @@ export const SelectFavorites = () => { const { config: { options }, setModalStatus, - setResize, + setModalResize, } = useOverlay().modal; const { favoritesList } = useValidators(); const { maxNominations } = consts; @@ -44,9 +44,7 @@ export const SelectFavorites = () => { } }, []); - useEffect(() => { - setResize(); - }, [selectedFavorites]); + useEffect(() => setModalResize(), [selectedFavorites]); const batchKey = 'favorite_validators'; diff --git a/src/modals/Unbond/index.tsx b/src/modals/Unbond/index.tsx index bf30c56628..a1f7d3c927 100644 --- a/src/modals/Unbond/index.tsx +++ b/src/modals/Unbond/index.tsx @@ -41,7 +41,7 @@ export const Unbond = () => { const { isDepositor, selectedActivePool } = useActivePools(); const { setModalStatus, - setResize, + setModalResize, config: { options }, } = useOverlay().modal; @@ -174,7 +174,7 @@ export const Unbond = () => { // modal resize on form update useEffect( - () => setResize(), + () => setModalResize(), [bond, notEnoughFunds, feedbackErrors.length, warnings.length] ); diff --git a/src/modals/UnbondPoolMember/index.tsx b/src/modals/UnbondPoolMember/index.tsx index c79d51ef52..f5f73065d2 100644 --- a/src/modals/UnbondPoolMember/index.tsx +++ b/src/modals/UnbondPoolMember/index.tsx @@ -34,7 +34,7 @@ export const UnbondPoolMember = () => { const { getSignerWarnings } = useSignerWarnings(); const { setModalStatus, - setResize, + setModalResize, config: { options }, } = useOverlay().modal; @@ -68,7 +68,7 @@ export const UnbondPoolMember = () => { setBondValid(isValid); }, [freeToUnbond.toString(), isValid]); - useEffect(() => setResize(), [bond, notEnoughFunds]); + useEffect(() => setModalResize(), [bond, notEnoughFunds]); // tx to submit const getTx = () => { diff --git a/src/modals/UnlockChunks/index.tsx b/src/modals/UnlockChunks/index.tsx index bcab0f5b09..0556020c00 100644 --- a/src/modals/UnlockChunks/index.tsx +++ b/src/modals/UnlockChunks/index.tsx @@ -25,7 +25,7 @@ export const UnlockChunks = () => { const { getStashLedger } = useBalances(); const { config: { options }, - setHeight, + setModalHeight, } = useOverlay().modal; const { getPoolUnlocking } = useActivePools(); const { bondFor } = options || {}; @@ -79,7 +79,7 @@ export const UnlockChunks = () => { // resize modal on state change useEffect(() => { - setHeight(getModalHeight()); + setModalHeight(getModalHeight()); }, [task, notEnoughFunds, sectionRef.current, unlocking]); // resize this modal on window resize @@ -90,7 +90,7 @@ export const UnlockChunks = () => { }; }, []); const resizeCallback = () => { - setHeight(getModalHeight()); + setModalHeight(getModalHeight()); }; return ( diff --git a/src/modals/Unstake/index.tsx b/src/modals/Unstake/index.tsx index 24b380137b..3fc6af156e 100644 --- a/src/modals/Unstake/index.tsx +++ b/src/modals/Unstake/index.tsx @@ -35,7 +35,7 @@ export const Unstake = () => { const { erasToSeconds } = useErasToTimeLeft(); const { getSignerWarnings } = useSignerWarnings(); const { getTransferOptions } = useTransferOptions(); - const { setModalStatus, setResize } = useOverlay().modal; + const { setModalStatus, setModalResize } = useOverlay().modal; const { getBondedAccount, getAccountNominations } = useBonded(); const { units } = network; @@ -73,7 +73,7 @@ export const Unstake = () => { }, [freeToUnbond.toString(), isValid]); // modal resize on form update - useEffect(() => setResize(), [bond, notEnoughFunds]); + useEffect(() => setModalResize(), [bond, notEnoughFunds]); // tx to submit const getTx = () => { diff --git a/src/modals/UpdateController/index.tsx b/src/modals/UpdateController/index.tsx index 1849da3aeb..eeb784d98d 100644 --- a/src/modals/UpdateController/index.tsx +++ b/src/modals/UpdateController/index.tsx @@ -24,7 +24,7 @@ export const UpdateController = () => { const { getBondedAccount } = useBonded(); const { getSignerWarnings } = useSignerWarnings(); const { activeAccount, getAccount } = useConnect(); - const { setModalStatus, setResize } = useOverlay().modal; + const { setModalStatus, setModalResize } = useOverlay().modal; const controller = getBondedAccount(activeAccount); const account = getAccount(controller); @@ -39,7 +39,7 @@ export const UpdateController = () => { return tx; }; - useEffect(() => setResize(), [notEnoughFunds]); + useEffect(() => setModalResize(), [notEnoughFunds]); // handle extrinsic const submitExtrinsic = useSubmitExtrinsic({ diff --git a/src/modals/UpdatePayee/index.tsx b/src/modals/UpdatePayee/index.tsx index 82d798753b..822fbcc701 100644 --- a/src/modals/UpdatePayee/index.tsx +++ b/src/modals/UpdatePayee/index.tsx @@ -32,7 +32,7 @@ export const UpdatePayee = () => { const { getBondedAccount } = useBonded(); const { getPayeeItems } = usePayeeConfig(); const { getSignerWarnings } = useSignerWarnings(); - const { setModalStatus, setResize } = useOverlay().modal; + const { setModalStatus, setModalResize } = useOverlay().modal; const controller = getBondedAccount(activeAccount); const { payee } = staking; @@ -118,7 +118,7 @@ export const UpdatePayee = () => { ); }, []); - useEffect(() => setResize(), [notEnoughFunds]); + useEffect(() => setModalResize(), [notEnoughFunds]); const warnings = getSignerWarnings( activeAccount, diff --git a/src/modals/WithdrawPoolMember/index.tsx b/src/modals/WithdrawPoolMember/index.tsx index 37ff8aa16f..188eb0fa07 100644 --- a/src/modals/WithdrawPoolMember/index.tsx +++ b/src/modals/WithdrawPoolMember/index.tsx @@ -25,7 +25,7 @@ export const WithdrawPoolMember = () => { const { setModalStatus, config: { options }, - setResize, + setModalResize, } = useOverlay().modal; const { activeEra } = useNetworkMetrics(); const { removePoolMember } = usePoolMembers(); @@ -82,7 +82,7 @@ export const WithdrawPoolMember = () => { }, }); - useEffect(() => setResize(), [notEnoughFunds]); + useEffect(() => setModalResize(), [notEnoughFunds]); const warnings = getSignerWarnings( activeAccount, diff --git a/src/overlay/index.tsx b/src/overlay/index.tsx index 72ca1c073e..7048edf003 100644 --- a/src/overlay/index.tsx +++ b/src/overlay/index.tsx @@ -119,13 +119,13 @@ export const Modal = ({ modals, externalOverlayStatus }: ModalProps) => { modal: { config: { key, size, options }, status, - height, - resize, + modalHeight, + modalResizeCounter, + setModalRef, + modalMaxHeight, + setModalHeight, setModalStatus, - setRef, - setHeightRef, - maxHeight, - setHeight, + setModalHeightRef, }, } = useOverlay(); const controls = useAnimation(); @@ -155,8 +155,8 @@ export const Modal = ({ modals, externalOverlayStatus }: ModalProps) => { const handleResize = () => { if (status !== 'open' || options?.disableWindowResize) return; let h = modalRef.current?.clientHeight ?? 0; - h = h > maxHeight ? maxHeight : h; - setHeight(h); + h = h > modalMaxHeight ? modalMaxHeight : h; + setModalHeight(h); }; // Control on modal status change. @@ -188,7 +188,7 @@ export const Modal = ({ modals, externalOverlayStatus }: ModalProps) => { }, [externalOverlayStatus]); // Resize modal on status or resize change. - useEffect(() => handleResize(), [resize]); + useEffect(() => handleResize(), [modalResizeCounter]); // Resize modal on window size change. useEffect(() => { @@ -200,8 +200,8 @@ export const Modal = ({ modals, externalOverlayStatus }: ModalProps) => { // Update the modal's content ref as they are initialised. useEffect(() => { - setRef(modalRef); - setHeightRef(heightRef); + setModalRef(modalRef); + setModalHeightRef(heightRef); }, [modalRef?.current, heightRef?.current]); if (status === 'closed') { @@ -243,9 +243,9 @@ export const Modal = ({ modals, externalOverlayStatus }: ModalProps) => { ref={heightRef} size={size} style={{ - height, + height: modalHeight, overflow: - height >= maxHeight && !options?.disableScroll + modalHeight >= modalMaxHeight && !options?.disableScroll ? 'scroll' : 'hidden', }} From 8dd3ba5d64d9e4b1bb0220d265c39cb8c775d7b0 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 22 Aug 2023 19:32:51 +0700 Subject: [PATCH 285/435] + OverlayInstanceDirection type --- src/contexts/Overlay/index.tsx | 3 ++- src/contexts/Overlay/types.ts | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/contexts/Overlay/index.tsx b/src/contexts/Overlay/index.tsx index e206371d7e..907865b8bc 100644 --- a/src/contexts/Overlay/index.tsx +++ b/src/contexts/Overlay/index.tsx @@ -12,6 +12,7 @@ import type { OverlayContextInterface, CanvasStatus, ActiveOverlayInstance, + OverlayInstanceDirection, } from './types'; import { defaultModalConfig, defaultOverlayContext } from './defaults'; @@ -25,7 +26,7 @@ export const OverlayProvider = ({ useState<number>(0); const setOpenOverlayInstances = ( - direction: 'inc' | 'dec', + direction: OverlayInstanceDirection, instanceType: 'modal' | 'canvas' ) => { if (direction === 'inc') { diff --git a/src/contexts/Overlay/types.ts b/src/contexts/Overlay/types.ts index 41553394c4..776c5dc845 100644 --- a/src/contexts/Overlay/types.ts +++ b/src/contexts/Overlay/types.ts @@ -8,7 +8,7 @@ import type { AnyJson } from 'types'; export interface OverlayContextInterface { openOverlayInstances: number; setOpenOverlayInstances: ( - direction: 'inc' | 'dec', + direction: OverlayInstanceDirection, instanceType: 'modal' | 'canvas' ) => void; activeOverlayInstance: ActiveOverlayInstance; @@ -47,6 +47,8 @@ export interface ModalProps { } export type OverlayProps = ModalProps & CanvasProps; +export type OverlayInstanceDirection = 'inc' | 'dec'; + export type ActiveOverlayInstance = 'modal' | 'canvas' | null; export type OverlayType = 'modal' | 'canvas' | 'prompt'; From 0c0b96c60b3524a1d279a99aaaaf83646b24da96 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 22 Aug 2023 19:33:32 +0700 Subject: [PATCH 286/435] remove TODOs --- src/contexts/Overlay/types.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/contexts/Overlay/types.ts b/src/contexts/Overlay/types.ts index 776c5dc845..34ec4e5504 100644 --- a/src/contexts/Overlay/types.ts +++ b/src/contexts/Overlay/types.ts @@ -72,11 +72,7 @@ export interface ModalConfig { size?: ModalSize; } -// TODO: implement export interface CanvasConfig { key: string; options?: ConfigOptions; } - -// TODO: implement -export type PromptConfig = AnyJson; From 47ec8d7ef0159a631881bf265449dcc46ce9406f Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 22 Aug 2023 21:06:34 +0700 Subject: [PATCH 287/435] bump cloud, use canvas wrappers --- package.json | 6 +-- src/library/BarChart/Wrappers.ts | 4 +- src/library/Canvas/Wrappers.ts | 47 ------------------- src/library/Filter/Wrappers.ts | 6 +-- .../Form/CreatePoolStatusBar/Wrapper.ts | 4 +- src/library/Form/NominateStatusBar/Wrapper.ts | 4 +- src/library/Headers/Wrappers.ts | 8 ++-- src/library/Help/Wrappers.ts | 2 +- src/library/Import/Wrappers.ts | 4 +- src/library/List/index.ts | 4 +- src/library/ListItem/Wrappers.ts | 4 +- src/library/NetworkBar/Wrappers.ts | 2 +- src/library/Notifications/Wrapper.ts | 2 +- src/library/PayeeInput/Wrapper.ts | 2 +- src/library/Prompt/Wrappers.ts | 8 ++-- src/library/SelectItems/Wrapper.ts | 10 ++-- src/library/SetupSteps/Header/Wrapper.ts | 2 +- src/library/SideMenu/Primary/Wrappers.ts | 6 +-- src/library/SideMenu/Wrapper.ts | 2 +- src/library/Stat/Wrapper.ts | 2 +- src/library/StatBoxList/Wrapper.ts | 4 +- src/library/StatsHead/Wrapper.ts | 2 +- src/library/SubscanButton/index.tsx | 2 +- src/modals/Accounts/Wrappers.ts | 4 +- src/modals/Accounts/index.tsx | 2 +- src/modals/Connect/Vault.tsx | 2 +- src/modals/Connect/Wrappers.ts | 2 +- src/modals/ManagePool/Forms/Commission.tsx | 4 +- src/modals/ManagePool/Wrappers.ts | 4 +- src/modals/SelectFavorites/Wrappers.ts | 2 +- src/modals/UpdateReserve/index.tsx | 4 +- src/overlay/index.tsx | 6 ++- src/pages/Nominate/Setup/Summary/Wrapper.ts | 2 +- src/pages/Overview/NetworkSats/Wrappers.ts | 4 +- .../Overview/StakeStatus/Tips/Wrappers.ts | 6 +-- src/pages/Overview/Wrappers.ts | 6 +-- src/pages/Payouts/Wrappers.ts | 12 ++--- src/pages/Pools/Create/Summary/Wrapper.ts | 2 +- src/pages/Pools/Home/PoolStats/Wrappers.ts | 4 +- yarn.lock | 18 +++---- 40 files changed, 88 insertions(+), 133 deletions(-) delete mode 100644 src/library/Canvas/Wrappers.ts diff --git a/package.json b/package.json index 931ac5798f..cbabb38de0 100644 --- a/package.json +++ b/package.json @@ -24,11 +24,11 @@ "@fortawesome/free-regular-svg-icons": "^6.4.2", "@fortawesome/free-solid-svg-icons": "^6.4.2", "@fortawesome/react-fontawesome": "^0.2.0", + "@ledgerhq/hw-transport-webhid": "^6.27.19", "@polkadot-cloud/community": "^0.1.10", - "@polkadot-cloud/core": "^0.0.5", - "@polkadot-cloud/react": "^0.1.2", + "@polkadot-cloud/core": "^0.1.1", + "@polkadot-cloud/react": "^0.1.3", "@polkadot-cloud/utils": "^0.0.1", - "@ledgerhq/hw-transport-webhid": "^6.27.19", "@polkadot/api": "^10.9.1", "@polkadot/keyring": "^12.1.1", "@polkadot/rpc-provider": "^10.9.1", diff --git a/src/library/BarChart/Wrappers.ts b/src/library/BarChart/Wrappers.ts index c26a4fe8c0..e00bc2fd5f 100644 --- a/src/library/BarChart/Wrappers.ts +++ b/src/library/BarChart/Wrappers.ts @@ -25,11 +25,11 @@ export const BarChartWrapper = styled.div<{ $lessPadding?: boolean }>` } } .d1 { - background: var(--network-color-primary); + background: var(--accent-color-primary); color: rgba(255, 255, 255, 0.95); } .d2 { - background: var(--network-color-secondary); + background: var(--accent-color-secondary); color: rgba(255, 255, 255, 0.95); } .d3 { diff --git a/src/library/Canvas/Wrappers.ts b/src/library/Canvas/Wrappers.ts deleted file mode 100644 index 87c15c8c2a..0000000000 --- a/src/library/Canvas/Wrappers.ts +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: GPL-3.0-only - -import { motion } from 'framer-motion'; -import styled from 'styled-components'; - -export const CanvasWrapper = styled(motion.div)` - width: 100%; - width: 100%; - display: flex; - flex-direction: column; - align-items: center; - - > div { - width: inherit; - } - - .header { - display: flex; - flex-direction: column; - width: 100%; - - > div { - margin-bottom: 1.75rem; - } - } -`; - -export const CanvasCardWrapper = styled(motion.div)` - background: var(--background-floating-card); - border-radius: 1.5rem; - display: flex; - flex-flow: row wrap; - align-items: center; - position: relative; - overflow: hidden; - margin-bottom: 1.25rem; - padding: 1rem; - width: 100%; - - h2 { - color: var(--text-color-primary); - padding: 0 0.75rem; - margin: 0.5rem 0; - width: 100%; - } -`; diff --git a/src/library/Filter/Wrappers.ts b/src/library/Filter/Wrappers.ts index f9790eb847..7c9e74b2c3 100644 --- a/src/library/Filter/Wrappers.ts +++ b/src/library/Filter/Wrappers.ts @@ -94,7 +94,7 @@ export const LargeItemWrapper = styled.div` align-items: center; } svg { - color: var(--network-color-primary); + color: var(--accent-color-primary); margin-right: 0.75rem; } p { @@ -127,11 +127,11 @@ export const TabWrapper = styled.button<{ $active?: boolean }>` border: 1px solid ${(props) => props.$active - ? 'var(--network-color-primary)' + ? 'var(--accent-color-primary)' : 'var(--border-primary-color)'}; color: ${(props) => props.$active - ? 'var(--network-color-primary)' + ? 'var(--accent-color-primary)' : 'var(--text-color-secondary)'}; font-size: 0.9rem; padding: 0.5rem 1.25rem; diff --git a/src/library/Form/CreatePoolStatusBar/Wrapper.ts b/src/library/Form/CreatePoolStatusBar/Wrapper.ts index 0240cea252..10d736a083 100644 --- a/src/library/Form/CreatePoolStatusBar/Wrapper.ts +++ b/src/library/Form/CreatePoolStatusBar/Wrapper.ts @@ -63,14 +63,14 @@ export const Wrapper = styled.div` &.invert { h4 { - color: var(--network-color-primary); + color: var(--accent-color-primary); } h5 { opacity: 1; color: var(--text-color-invert); } .bar { - background: var(--network-color-primary); + background: var(--accent-color-primary); } } } diff --git a/src/library/Form/NominateStatusBar/Wrapper.ts b/src/library/Form/NominateStatusBar/Wrapper.ts index f1481ad27b..dd1b5d9089 100644 --- a/src/library/Form/NominateStatusBar/Wrapper.ts +++ b/src/library/Form/NominateStatusBar/Wrapper.ts @@ -66,14 +66,14 @@ export const Wrapper = styled.div` &.invert { h4 { - color: var(--network-color-primary); + color: var(--accent-color-primary); } h5 { opacity: 1; color: var(--text-color-invert); } .bar { - background: var(--network-color-primary); + background: var(--accent-color-primary); } } } diff --git a/src/library/Headers/Wrappers.ts b/src/library/Headers/Wrappers.ts index 8764a41a91..516e437efa 100644 --- a/src/library/Headers/Wrappers.ts +++ b/src/library/Headers/Wrappers.ts @@ -40,7 +40,7 @@ export const Wrapper = styled.div` `; export const ConnectedAccount = styled(motion.div)` - background: var(--network-color-primary); + background: var(--accent-color-primary); border-radius: 1.5rem; display: flex; transition: transform var(--transition-duration); @@ -83,8 +83,8 @@ export const Item = styled.button` } .label { - color: var(--network-color-primary); - border: 0.125rem solid var(--network-color-primary); + color: var(--accent-color-primary); + border: 0.125rem solid var(--accent-color-primary); border-radius: 0.8rem; font-size: 0.85rem; margin-right: 0.6rem; @@ -101,7 +101,7 @@ export const Item = styled.button` } &.connect { - background: var(--network-color-primary); + background: var(--accent-color-primary); > span { color: white; } diff --git a/src/library/Help/Wrappers.ts b/src/library/Help/Wrappers.ts index 3dd3a0594e..face240cd7 100644 --- a/src/library/Help/Wrappers.ts +++ b/src/library/Help/Wrappers.ts @@ -122,7 +122,7 @@ export const ItemWrapper = styled(motion.div)<any>` text-align: left; &.icon { - color: var(--network-color-primary); + color: var(--accent-color-primary); margin-bottom: 0; } } diff --git a/src/library/Import/Wrappers.ts b/src/library/Import/Wrappers.ts index 7c1290e0c7..3e53a26ec1 100644 --- a/src/library/Import/Wrappers.ts +++ b/src/library/Import/Wrappers.ts @@ -112,7 +112,7 @@ export const QRViewerWrapper = styled.div` padding: 2rem 1rem; .title { - color: var(--network-color-primary); + color: var(--accent-color-primary); font-family: 'Unbounded'; margin-bottom: 1rem; } @@ -144,7 +144,7 @@ export const QRViewerWrapper = styled.div` &.withBorder { padding: 0.95rem; - border: 3.75px solid var(--network-color-pending); + border: 3.75px solid var(--accent-color-pending); } } .foot { diff --git a/src/library/List/index.ts b/src/library/List/index.ts index c3ca3cb781..772d55fd39 100644 --- a/src/library/List/index.ts +++ b/src/library/List/index.ts @@ -67,7 +67,7 @@ export const PaginationWrapper = styled.div<PaginationWrapperProps>` &.next { color: ${(props) => props.$next - ? 'var(--network-color-primary)' + ? 'var(--accent-color-primary)' : 'var(--text-color-secondary)'}; cursor: ${(props) => (props.$next ? 'pointer' : 'default')}; opacity: ${(props) => (props.$next ? 1 : 0.4)}; @@ -75,7 +75,7 @@ export const PaginationWrapper = styled.div<PaginationWrapperProps>` &.prev { color: ${(props) => props.$prev - ? 'var(--network-color-primary)' + ? 'var(--accent-color-primary)' : 'var(--text-color-secondary)'}; cursor: ${(props) => (props.$prev ? 'pointer' : 'default')}; opacity: ${(props) => (props.$prev ? 1 : 0.4)}; diff --git a/src/library/ListItem/Wrappers.ts b/src/library/ListItem/Wrappers.ts index 520c492247..c6020ea5b7 100644 --- a/src/library/ListItem/Wrappers.ts +++ b/src/library/ListItem/Wrappers.ts @@ -75,7 +75,7 @@ export const Labels = styled.div` opacity: 0.75; } &.active { - color: var(--network-color-primary); + color: var(--accent-color-primary); } &:disabled { opacity: var(--opacity-disabled); @@ -103,7 +103,7 @@ export const Labels = styled.div` margin-right: 0; button { - color: var(--network-color-primary); + color: var(--accent-color-primary); font-size: 0.95rem; display: flex; flex-flow: row wrap; diff --git a/src/library/NetworkBar/Wrappers.ts b/src/library/NetworkBar/Wrappers.ts index f40e82fb89..ce9f2c195d 100644 --- a/src/library/NetworkBar/Wrappers.ts +++ b/src/library/NetworkBar/Wrappers.ts @@ -55,7 +55,7 @@ export const Summary = styled.div` opacity: 0.75; } p { - border-left: 1px solid var(--network-color-transparent); + border-left: 1px solid var(--accent-color-transparent); margin: 0.25rem 0.5rem 0.25rem 0.15rem; font-size: 0.85rem; padding-left: 0.5rem; diff --git a/src/library/Notifications/Wrapper.ts b/src/library/Notifications/Wrapper.ts index 28b7710e6b..bb0054ec49 100644 --- a/src/library/Notifications/Wrapper.ts +++ b/src/library/Notifications/Wrapper.ts @@ -27,7 +27,7 @@ export const Wrapper = styled.ul` overflow: hidden; h3 { - color: var(--network-color-primary); + color: var(--accent-color-primary); margin: 0 0 0.5rem; flex: 1; } diff --git a/src/library/PayeeInput/Wrapper.ts b/src/library/PayeeInput/Wrapper.ts index 75e563c9ba..5f0fee4294 100644 --- a/src/library/PayeeInput/Wrapper.ts +++ b/src/library/PayeeInput/Wrapper.ts @@ -11,7 +11,7 @@ export const Wrapper = styled.div<{ $activeInput?: boolean }>` border-bottom: 1.5px solid ${(props) => props.$activeInput - ? 'var(--network-color-primary)' + ? 'var(--accent-color-primary)' : 'var(--border-primary-color)'}; padding: 0rem 0 0.4rem 0; transition: border var(--transition-duration); diff --git a/src/library/Prompt/Wrappers.ts b/src/library/Prompt/Wrappers.ts index 60fc945a17..13bb4076c3 100644 --- a/src/library/Prompt/Wrappers.ts +++ b/src/library/Prompt/Wrappers.ts @@ -49,7 +49,7 @@ export const ContentWrapper = styled.div` position: relative; a { - color: var(--network-color-primary); + color: var(--accent-color-primary); } .header { width: 100%; @@ -121,7 +121,7 @@ export const FilterListButton = styled.button<{ $active: boolean }>` border: 1px solid ${(props) => props.$active - ? 'var(--network-color-stroke)' + ? 'var(--accent-color-stroke)' : 'var(--button-primary-background)'}; background: var(--button-primary-background); width: 100%; @@ -136,7 +136,7 @@ export const FilterListButton = styled.button<{ $active: boolean }>` h4 { color: ${(props) => props.$active - ? 'var(--network-color-stroke)' + ? 'var(--accent-color-stroke)' : 'var(--text-color-secondary)'}; transition: color var(--transition-duration); } @@ -144,7 +144,7 @@ export const FilterListButton = styled.button<{ $active: boolean }>` svg { color: ${(props) => props.$active - ? 'var(--network-color-stroke)' + ? 'var(--accent-color-stroke)' : 'var(--text-color-secondary)'}; opacity: ${(props) => (props.$active ? 1 : 0.7)}; transition: color var(--transition-duration); diff --git a/src/library/SelectItems/Wrapper.ts b/src/library/SelectItems/Wrapper.ts index d7aed436f9..a5fb290062 100644 --- a/src/library/SelectItems/Wrapper.ts +++ b/src/library/SelectItems/Wrapper.ts @@ -84,7 +84,7 @@ export const Wrapper = styled.div<{ border: 1.75px solid ${(props) => props.$selected - ? 'var(--network-color-primary)' + ? 'var(--accent-color-primary)' : 'var(--border-primary-color)'}; border-radius: 1rem; width: 100%; @@ -95,9 +95,9 @@ export const Wrapper = styled.div<{ &:hover { border-color: ${(props) => props.$hoverBorder - ? 'var(--network-color-primary)' + ? 'var(--accent-color-primary)' : props.$selected - ? 'var(--network-color-primary)' + ? 'var(--accent-color-primary)' : 'var(--border-primary-color)'}; } @@ -117,7 +117,7 @@ export const Wrapper = styled.div<{ > .icon { background: var(--background-list-item); - color: var(--network-color-primary); + color: var(--accent-color-primary); width: 6rem; display: flex; align-items: center; @@ -144,7 +144,7 @@ export const Wrapper = styled.div<{ > .toggle { color: ${(props) => props.$selected - ? 'var(--network-color-primary)' + ? 'var(--accent-color-primary)' : 'var(--text-color-secondary)'}; opacity: ${(props) => (props.$selected ? 1 : 0.5)}; width: 4rem; diff --git a/src/library/SetupSteps/Header/Wrapper.ts b/src/library/SetupSteps/Header/Wrapper.ts index d6c32cec58..bc5db5e3b6 100644 --- a/src/library/SetupSteps/Header/Wrapper.ts +++ b/src/library/SetupSteps/Header/Wrapper.ts @@ -27,7 +27,7 @@ export const Wrapper = styled.div` .complete { margin: 0; - color: var(--network-color-primary); + color: var(--accent-color-primary); } span { diff --git a/src/library/SideMenu/Primary/Wrappers.ts b/src/library/SideMenu/Primary/Wrappers.ts index 329892e13f..6db03b9792 100644 --- a/src/library/SideMenu/Primary/Wrappers.ts +++ b/src/library/SideMenu/Primary/Wrappers.ts @@ -24,7 +24,7 @@ export const Wrapper = styled(motion.div)` padding: 0.65rem 0rem; &.success { - border: 1px solid var(--network-color-primary); + border: 1px solid var(--accent-color-primary); } &.warning { border: 1px solid var(--status-warning-color); @@ -64,8 +64,8 @@ export const Wrapper = styled(motion.div)` > span { &.success { - color: var(--network-color-primary); - border: 1px solid var(--network-color-primary); + color: var(--accent-color-primary); + border: 1px solid var(--accent-color-primary); } &.warning { color: var(--status-warning-color); diff --git a/src/library/SideMenu/Wrapper.ts b/src/library/SideMenu/Wrapper.ts index 4f006534e1..939563287e 100644 --- a/src/library/SideMenu/Wrapper.ts +++ b/src/library/SideMenu/Wrapper.ts @@ -78,7 +78,7 @@ export const LogoWrapper = styled.button<MinimisedProps>` position: relative; ellipse { - fill: var(--network-color-primary); + fill: var(--accent-color-primary); } `; diff --git a/src/library/Stat/Wrapper.ts b/src/library/Stat/Wrapper.ts index 83f70f2ab5..2775477d67 100644 --- a/src/library/Stat/Wrapper.ts +++ b/src/library/Stat/Wrapper.ts @@ -26,7 +26,7 @@ export const Wrapper = styled.div<{ $isAddress?: boolean }>` margin-left: 0.65rem; transition: color var(--transition-duration); &:hover { - color: var(--network-color-primary); + color: var(--accent-color-primary); } } } diff --git a/src/library/StatBoxList/Wrapper.ts b/src/library/StatBoxList/Wrapper.ts index 49544ae567..cad251469e 100644 --- a/src/library/StatBoxList/Wrapper.ts +++ b/src/library/StatBoxList/Wrapper.ts @@ -154,7 +154,7 @@ export const StatBoxWrapper = styled(motion.div)` export const TextTitleWrapper = styled.div<{ $primary?: boolean }>` color: ${(props) => props.$primary === true - ? 'var(--network-color-primary)' + ? 'var(--accent-color-primary)' : 'var(--text-color-primary)'}; font-family: InterBold, sans-serif; display: flex; @@ -183,7 +183,7 @@ export const TextTitleWrapper = styled.div<{ $primary?: boolean }>` export const TimeLeftWrapper = styled.div<{ primary?: boolean }>` color: ${(props) => props.primary === true - ? 'var(--network-color-primary)' + ? 'var(--accent-color-primary)' : 'var(--text-color-primary)'}; font-family: InterBold, sans-serif; display: flex; diff --git a/src/library/StatsHead/Wrapper.ts b/src/library/StatsHead/Wrapper.ts index a7d2a361f9..ba80c8702d 100644 --- a/src/library/StatsHead/Wrapper.ts +++ b/src/library/StatsHead/Wrapper.ts @@ -49,7 +49,7 @@ export const Wrapper = styled.div` } h2 { - color: var(--network-color-primary); + color: var(--accent-color-primary); } h4 { diff --git a/src/library/SubscanButton/index.tsx b/src/library/SubscanButton/index.tsx index ee6b00ce2b..aadcc91058 100644 --- a/src/library/SubscanButton/index.tsx +++ b/src/library/SubscanButton/index.tsx @@ -15,7 +15,7 @@ const Wrapper = styled.div<{ $active: boolean }>` padding: 0.25rem 0.4rem; color: ${(props) => props.$active - ? 'var(--network-color-primary)' + ? 'var(--accent-color-primary)' : 'var(--text-color-secondary)'}; opacity: ${(props) => (props.$active ? 1 : 0.5)}; z-index: 2; diff --git a/src/modals/Accounts/Wrappers.ts b/src/modals/Accounts/Wrappers.ts index 476234979c..2256a62e72 100644 --- a/src/modals/Accounts/Wrappers.ts +++ b/src/modals/Accounts/Wrappers.ts @@ -10,7 +10,7 @@ export const AccountWrapper = styled.div` &.active { > div { - border: 1px solid var(--network-color-primary); + border: 1px solid var(--accent-color-primary); } } @@ -57,7 +57,7 @@ export const AccountWrapper = styled.div` &:hover { .name { - color: var(--network-color-primary); + color: var(--accent-color-primary); } } diff --git a/src/modals/Accounts/index.tsx b/src/modals/Accounts/index.tsx index dbfd6bcdfc..8f2de0921c 100644 --- a/src/modals/Accounts/index.tsx +++ b/src/modals/Accounts/index.tsx @@ -139,7 +139,7 @@ export const Accounts = () => { {activeAccount && ( <ButtonText style={{ - color: 'var(--network-color-primary)', + color: 'var(--accent-color-primary)', }} text={t('disconnect')} iconRight={faLinkSlash} diff --git a/src/modals/Connect/Vault.tsx b/src/modals/Connect/Vault.tsx index c31ef54b76..9037b718be 100644 --- a/src/modals/Connect/Vault.tsx +++ b/src/modals/Connect/Vault.tsx @@ -39,7 +39,7 @@ export const Vault = (): React.ReactElement => { marginRight style={{ opacity: 1, - color: 'var(--network-color-primary)', + color: 'var(--accent-color-primary)', fontFamily: 'Unbounded', }} /> diff --git a/src/modals/Connect/Wrappers.ts b/src/modals/Connect/Wrappers.ts index 86cd6aeb59..ce9211fa8d 100644 --- a/src/modals/Connect/Wrappers.ts +++ b/src/modals/Connect/Wrappers.ts @@ -69,7 +69,7 @@ export const ExtensionInner = styled.div` color: var(--status-success-color); } .active { - color: var(--network-color-primary); + color: var(--accent-color-primary); } } .icon { diff --git a/src/modals/ManagePool/Forms/Commission.tsx b/src/modals/ManagePool/Forms/Commission.tsx index cc618e0f78..f68e8816e8 100644 --- a/src/modals/ManagePool/Forms/Commission.tsx +++ b/src/modals/ManagePool/Forms/Commission.tsx @@ -431,14 +431,14 @@ export const Commission = ({ setSection, incrementCalculateHeight }: any) => { const sliderProps = { trackStyle: { - backgroundColor: 'var(--network-color-primary)', + backgroundColor: 'var(--accent-color-primary)', }, railStyle: { backgroundColor: 'var(--button-secondary-background)', }, handleStyle: { backgroundColor: 'var(--background-primary)', - borderColor: 'var(--network-color-primary)', + borderColor: 'var(--accent-color-primary)', opacity: 1, }, activeDotStyle: { diff --git a/src/modals/ManagePool/Wrappers.ts b/src/modals/ManagePool/Wrappers.ts index f1ea849172..2683239755 100644 --- a/src/modals/ManagePool/Wrappers.ts +++ b/src/modals/ManagePool/Wrappers.ts @@ -61,7 +61,7 @@ export const SliderWrapper = styled.div` } &.neutral, .neutral { - color: var(--network-color-primary); + color: var(--accent-color-primary); opacity: 0.8; } &.danger, @@ -103,7 +103,7 @@ export const SliderWrapper = styled.div` } .rc-slider-handle-dragging { - box-shadow: 0 0 0 5px var(--network-color-transparent) !important; + box-shadow: 0 0 0 5px var(--accent-color-transparent) !important; } } } diff --git a/src/modals/SelectFavorites/Wrappers.ts b/src/modals/SelectFavorites/Wrappers.ts index 48921d487b..1d55e67d27 100644 --- a/src/modals/SelectFavorites/Wrappers.ts +++ b/src/modals/SelectFavorites/Wrappers.ts @@ -26,7 +26,7 @@ export const FooterWrapper = styled.div` button { font-size: 1.2rem; - color: var(--network-color-primary); + color: var(--accent-color-primary); &:disabled { color: var(--text-color-secondary); diff --git a/src/modals/UpdateReserve/index.tsx b/src/modals/UpdateReserve/index.tsx index 7c0a8ebaa6..222286804a 100644 --- a/src/modals/UpdateReserve/index.tsx +++ b/src/modals/UpdateReserve/index.tsx @@ -48,11 +48,11 @@ export const UpdateReserve = () => { const sliderProps = { trackStyle: { - backgroundColor: 'var(--network-color-primary)', + backgroundColor: 'var(--accent-color-primary)', }, handleStyle: { backgroundColor: 'var(--background-primary)', - borderColor: 'var(--network-color-primary)', + borderColor: 'var(--accent-color-primary)', opacity: 1, }, }; diff --git a/src/overlay/index.tsx b/src/overlay/index.tsx index 7048edf003..ae77ed6603 100644 --- a/src/overlay/index.tsx +++ b/src/overlay/index.tsx @@ -9,6 +9,7 @@ import { ModalContent, ModalCanvas, ModalOverlay, + ModalCanvasContent, } from '@polkadot-cloud/react'; import { useAnimation } from 'framer-motion'; import React, { useEffect, useRef } from 'react'; @@ -22,7 +23,6 @@ import type { ModalProps, OverlayProps, } from 'contexts/Overlay/types'; -import { CanvasWrapper } from 'library/Canvas/Wrappers'; import { AccountPoolRoles } from '../modals/AccountPoolRoles'; import { Accounts } from '../modals/Accounts'; import { Bio } from '../modals/Bio'; @@ -356,7 +356,9 @@ export const Canvas = ({ canvas, externalOverlayStatus }: CanvasProps) => { > <ModalScroll> <ModalContent> - <CanvasWrapper>{ActiveCanvas && <ActiveCanvas />}</CanvasWrapper> + <ModalCanvasContent> + {ActiveCanvas && <ActiveCanvas />} + </ModalCanvasContent> </ModalContent> </ModalScroll> </ModalCanvas> diff --git a/src/pages/Nominate/Setup/Summary/Wrapper.ts b/src/pages/Nominate/Setup/Summary/Wrapper.ts index 0ccd468d2a..63cb28611e 100644 --- a/src/pages/Nominate/Setup/Summary/Wrapper.ts +++ b/src/pages/Nominate/Setup/Summary/Wrapper.ts @@ -25,7 +25,7 @@ export const SummaryWrapper = styled.div` align-items: center; svg { - color: var(--network-color-primary); + color: var(--accent-color-primary); } } diff --git a/src/pages/Overview/NetworkSats/Wrappers.ts b/src/pages/Overview/NetworkSats/Wrappers.ts index 98e3fb6bc1..ba1b243e41 100644 --- a/src/pages/Overview/NetworkSats/Wrappers.ts +++ b/src/pages/Overview/NetworkSats/Wrappers.ts @@ -31,7 +31,7 @@ export const Item = styled(motion.div)` padding-bottom: 0.2rem; &.neutral { - color: var(--network-color-primary); + color: var(--accent-color-primary); } &.danger { color: #d2545d; @@ -40,7 +40,7 @@ export const Item = styled(motion.div)` color: #b5a200; } &.pools { - color: var(--network-color-secondary); + color: var(--accent-color-secondary); } } diff --git a/src/pages/Overview/StakeStatus/Tips/Wrappers.ts b/src/pages/Overview/StakeStatus/Tips/Wrappers.ts index 46a70ae664..58efb14be3 100644 --- a/src/pages/Overview/StakeStatus/Tips/Wrappers.ts +++ b/src/pages/Overview/StakeStatus/Tips/Wrappers.ts @@ -66,9 +66,9 @@ export const ItemInnerWrapper = styled.div` &.active { h4:hover { - color: var(--network-color-primary); + color: var(--accent-color-primary); .more { - color: var(--network-color-primary); + color: var(--accent-color-primary); opacity: 1; } } @@ -132,7 +132,7 @@ export const PageToggleWrapper = styled.div` } &:hover { opacity: 1; - color: var(--network-color-primary); + color: var(--accent-color-primary); } &:disabled { color: var(--text-color-secondary); diff --git a/src/pages/Overview/Wrappers.ts b/src/pages/Overview/Wrappers.ts index 796faf2006..4f9525237d 100644 --- a/src/pages/Overview/Wrappers.ts +++ b/src/pages/Overview/Wrappers.ts @@ -41,17 +41,17 @@ export const MoreWrapper = styled.div` export const BannerWrapper = styled.div` &.light { - border: 1px solid var(--network-color-primary); + border: 1px solid var(--accent-color-primary); background: var(--background-primary); .label, > div h3 { - color: var(--network-color-primary); + color: var(--accent-color-primary); } } &.dark { border: 1px solid var(--border-secondary-color); - background: var(--network-color-secondary); + background: var(--accent-color-secondary); .label, > div h3 { diff --git a/src/pages/Payouts/Wrappers.ts b/src/pages/Payouts/Wrappers.ts index fe8e37d6af..85981a9a27 100644 --- a/src/pages/Payouts/Wrappers.ts +++ b/src/pages/Payouts/Wrappers.ts @@ -49,24 +49,24 @@ export const ItemWrapper = styled(motion.div)` color: var(--text-color-secondary); font-family: InterSemiBold, sans-serif; &.claim { - color: var(--network-color-secondary); + color: var(--accent-color-secondary); } &.reward { - color: var(--network-color-primary); + color: var(--accent-color-primary); } } h5 { color: var(--text-color-secondary); &.claim { - color: var(--network-color-secondary); - border: 1px solid var(--network-color-secondary); + color: var(--accent-color-secondary); + border: 1px solid var(--accent-color-secondary); border-radius: 0.75rem; padding: 0.2rem 0.5rem; } &.reward { - color: var(--network-color-primary); - border: 1px solid var(--network-color-primary); + color: var(--accent-color-primary); + border: 1px solid var(--accent-color-primary); border-radius: 0.75rem; padding: 0.2rem 0.5rem; } diff --git a/src/pages/Pools/Create/Summary/Wrapper.ts b/src/pages/Pools/Create/Summary/Wrapper.ts index aba7c632d3..fb8d016312 100644 --- a/src/pages/Pools/Create/Summary/Wrapper.ts +++ b/src/pages/Pools/Create/Summary/Wrapper.ts @@ -26,7 +26,7 @@ export const SummaryWrapper = styled.div` align-items: center; svg { - color: var(--network-color-primary); + color: var(--accent-color-primary); } } diff --git a/src/pages/Pools/Home/PoolStats/Wrappers.ts b/src/pages/Pools/Home/PoolStats/Wrappers.ts index e15dbbaa16..07f2c82a24 100644 --- a/src/pages/Pools/Home/PoolStats/Wrappers.ts +++ b/src/pages/Pools/Home/PoolStats/Wrappers.ts @@ -32,7 +32,7 @@ export const Item = styled(motion.div)` padding-bottom: 0.2rem; &.neutral { - color: var(--network-color-primary); + color: var(--accent-color-primary); } &.danger { color: #d2545d; @@ -41,7 +41,7 @@ export const Item = styled(motion.div)` color: #b5a200; } &.pools { - color: var(--network-color-secondary); + color: var(--accent-color-secondary); } } diff --git a/yarn.lock b/yarn.lock index 84f489cb18..31931c67c9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1507,15 +1507,15 @@ resolved "https://registry.npmjs.org/@polkadot-cloud/community/-/community-0.1.10.tgz#d2a99190c0a89a67275264084e6e750269990986" integrity sha512-VT38rqOvORuYdPLigS8UNwvitoc0DFZWEazsvHxz9bTnPBL/7M3LujWXO14OSGw+FTvfz4RzPwovmW4u7RoT/Q== -"@polkadot-cloud/core@^0.0.5": - version "0.0.5" - resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.0.5.tgz#7c30b7e02a68ee686bef67d7aa7126c9d13beb53" - integrity sha512-a0kV6G4mzZobHv9MV20EkkfsKELfHygFII8TjjTCotqy++7omYDNdNiXAV/UBg5pVKWQljL2W/Kq0eBtiSd/cg== - -"@polkadot-cloud/react@^0.1.2": - version "0.1.2" - resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.2.tgz#6ede7e72e13f7e021f7b42b1d2ea84738b22555f" - integrity sha512-3hGFOYlfOfBtrrguiBh/Hk+51Z7BTdEWvLY8WHswsPYlk/1qNoNIRtW7tr1gFs6cJm3BBOWqNUp0lurIQ3KxPQ== +"@polkadot-cloud/core@^0.1.1": + version "0.1.1" + resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.1.1.tgz#7a185ba672da1cd6dc9e1d2677c641020177403a" + integrity sha512-MM7CPYbtm7eAqmOm7sIKynADgGf++GMFl9jE0k+lITopXhQ7lCAxAHElzl6TDP/bnHf12RxuMpTRfQyFoLxP0w== + +"@polkadot-cloud/react@^0.1.3": + version "0.1.3" + resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.3.tgz#635ac69043acf69e158b8e0dc8c65dbab74f0ae1" + integrity sha512-Q+7V9QY6AAgevug0t2d4H1NgnQ3b7Ci3h0yiP0x8KGU9jdWRIxqf+78t1BENmK2wYtI6zV2V4hQA9JTwGB6pbg== "@polkadot-cloud/utils@^0.0.1": version "0.0.1" From 8b1af26201413761dc642a1d1917a169b6950e02 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 22 Aug 2023 21:54:44 +0000 Subject: [PATCH 288/435] Bump @types/react from 18.2.20 to 18.2.21 Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.2.20 to 18.2.21. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) --- updated-dependencies: - dependency-name: "@types/react" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index b99a15e07a..39849c7d46 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "devDependencies": { "@ledgerhq/logs": "^6.10.1", "@types/lodash.throttle": "^4.1.7", - "@types/react": "^18.2.20", + "@types/react": "^18.2.21", "@types/react-dom": "^18.2.7", "@types/react-helmet": "^6.1.6", "@types/react-qr-reader": "^2.1.4", diff --git a/yarn.lock b/yarn.lock index 17b97eb3a2..3c901bc82b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2151,10 +2151,10 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^18.2.20": - version "18.2.20" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.20.tgz#1605557a83df5c8a2cc4eeb743b3dfc0eb6aaeb2" - integrity sha512-WKNtmsLWJM/3D5mG4U84cysVY31ivmyw85dE84fOCk5Hx78wezB/XEjVPWl2JTZ5FkEeaTJf+VgUAUn3PE7Isw== +"@types/react@*", "@types/react@^18.2.21": + version "18.2.21" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.21.tgz#774c37fd01b522d0b91aed04811b58e4e0514ed9" + integrity sha512-neFKG/sBAwGxHgXiIxnbm3/AAVQ/cMRS93hvBpg8xYRbeQSPVABp9U2bRnPf0iI4+Ucdv3plSxKK+3CW2ENJxA== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" From 7f5cd3243bb98a820c01e0f422a81f1381fb6a90 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 22 Aug 2023 21:53:28 +0000 Subject: [PATCH 289/435] Bump react-i18next from 13.1.2 to 13.2.0 Bumps [react-i18next](https://github.com/i18next/react-i18next) from 13.1.2 to 13.2.0. - [Changelog](https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md) - [Commits](https://github.com/i18next/react-i18next/compare/v13.1.2...v13.2.0) --- updated-dependencies: - dependency-name: react-i18next dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index b99a15e07a..aba6e427df 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "react-dom": "^18.2.0", "react-error-boundary": "^4.0.11", "react-helmet": "^6.1.0", - "react-i18next": "^13.1.2", + "react-i18next": "^13.2.0", "react-qr-reader": "^2.2.1", "react-router-dom": "^6.15.0", "react-scroll": "^1.8.9", diff --git a/yarn.lock b/yarn.lock index 17b97eb3a2..48ffb357ba 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5055,10 +5055,10 @@ react-helmet@^6.1.0: react-fast-compare "^3.1.1" react-side-effect "^2.1.0" -react-i18next@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-13.1.2.tgz#dbb1b18c364295af2a9072333ee4e0b43cbc2da8" - integrity sha512-D/OJ/8ZQYscabsvbCAiOgvJq8W3feQF/VIV0to1w7V7UvrUE1IZ3hcalOckUYvKBd7BP3b8EPm+hop3J8sS+Mw== +react-i18next@^13.2.0: + version "13.2.0" + resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-13.2.0.tgz#9d7a574144738e46dd4c66573907f56942435ced" + integrity sha512-YD8xMc+I0jkHHLotd8ERMzZ53hMaCBVLCndbcbBveJn3FbppRP4jyYOAkmR8XItN01sTD9ilAjoEjpH1i42IgA== dependencies: "@babel/runtime" "^7.22.5" html-parse-stringify "^3.0.1" From 6def48d4971833cf83dfa0f0ef5de30343fc1e61 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 22 Aug 2023 21:53:42 +0000 Subject: [PATCH 290/435] Bump @polkadot-cloud/utils from 0.0.1 to 0.0.2 Bumps [@polkadot-cloud/utils](https://github.com/paritytech/polkadot-cloud) from 0.0.1 to 0.0.2. - [Release notes](https://github.com/paritytech/polkadot-cloud/releases) - [Commits](https://github.com/paritytech/polkadot-cloud/commits) --- updated-dependencies: - dependency-name: "@polkadot-cloud/utils" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index aba6e427df..9c09cecfd6 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "@polkadot-cloud/community": "^0.1.10", "@polkadot-cloud/core": "^0.1.1", "@polkadot-cloud/react": "^0.1.3", - "@polkadot-cloud/utils": "^0.0.1", + "@polkadot-cloud/utils": "^0.0.2", "@polkadot/api": "^10.9.1", "@polkadot/keyring": "^12.1.1", "@polkadot/rpc-provider": "^10.9.1", diff --git a/yarn.lock b/yarn.lock index 48ffb357ba..5523c41685 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1517,10 +1517,10 @@ resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.3.tgz#635ac69043acf69e158b8e0dc8c65dbab74f0ae1" integrity sha512-Q+7V9QY6AAgevug0t2d4H1NgnQ3b7Ci3h0yiP0x8KGU9jdWRIxqf+78t1BENmK2wYtI6zV2V4hQA9JTwGB6pbg== -"@polkadot-cloud/utils@^0.0.1": - version "0.0.1" - resolved "https://registry.npmjs.org/@polkadot-cloud/utils/-/utils-0.0.1.tgz#24b0d569c4637e4d539ba3a2c669339144162133" - integrity sha512-YWSQ/sPRwVcO1LBJAVS7E7TI+dYpVY/Oe/sDwLThMVaVXzaIx18tBBhoEXXU85a8N0bXJHYVOMIWoCnAem4ZJw== +"@polkadot-cloud/utils@^0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@polkadot-cloud/utils/-/utils-0.0.2.tgz#ace08864399311db57d54e86e8aeaecbe303fdcd" + integrity sha512-bxO9Z1Nf29YcLGUL3DGmdVe0AD0b+cPex2VsRvQjNQCZZSanun12ErccZTQ1Z+PTEumnthPkfXEYBcQmxcMNMw== "@polkadot/api-augment@10.9.1": version "10.9.1" From 4520fa8080e693b744c254d54fa6e8e2e665119e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 22 Aug 2023 22:03:21 +0000 Subject: [PATCH 291/435] Bump i18next from 23.4.4 to 23.4.5 Bumps [i18next](https://github.com/i18next/i18next) from 23.4.4 to 23.4.5. - [Release notes](https://github.com/i18next/i18next/releases) - [Changelog](https://github.com/i18next/i18next/blob/master/CHANGELOG.md) - [Commits](https://github.com/i18next/i18next/compare/v23.4.4...v23.4.5) --- updated-dependencies: - dependency-name: i18next dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 9c09cecfd6..f30474eab6 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "chart.js": "^4.3.3", "date-fns": "^2.29.3", "framer-motion": "^10.16.1", - "i18next": "^23.4.4", + "i18next": "^23.4.5", "i18next-browser-languagedetector": "^7.1.0", "lodash.throttle": "^4.1.1", "qrcode-generator": "1.4.4", diff --git a/yarn.lock b/yarn.lock index 5523c41685..10199a8694 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3991,10 +3991,10 @@ i18next-browser-languagedetector@^7.1.0: dependencies: "@babel/runtime" "^7.19.4" -i18next@^23.4.4: - version "23.4.4" - resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.4.4.tgz#ec8fb2b5f3c5d8e3bf3f8ab1b19e743be91300e0" - integrity sha512-+c9B0txp/x1m5zn+QlwHaCS9vyFtmIAEXbVSFzwCX7vupm5V7va8F9cJGNJZ46X9ZtoGzhIiRC7eTIIh93TxPA== +i18next@^23.4.5: + version "23.4.5" + resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.4.5.tgz#3405926b7cd4a4682d6521633e9f836b3d81c5e7" + integrity sha512-XXALnva7/5H+kg7TjDsmzY3jRypuSJvjR1eUWtt11yUgsOqjZFq/mnaujJ/XpVWhUJU75QhCUhrZqAarlYpOSQ== dependencies: "@babel/runtime" "^7.22.5" From 80e38ea07e582f68497ae882ad1a0e036ff8fe2c Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Wed, 23 Aug 2023 12:08:16 +0700 Subject: [PATCH 292/435] validator exposures -> entries --- src/contexts/Validators/Utils.ts | 27 +++++++------ src/contexts/Validators/defaults.ts | 4 +- src/contexts/Validators/index.tsx | 60 +++++++++++++++-------------- src/contexts/Validators/types.ts | 4 +- 4 files changed, 50 insertions(+), 45 deletions(-) diff --git a/src/contexts/Validators/Utils.ts b/src/contexts/Validators/Utils.ts index 7a60ba4119..b18a1553e3 100644 --- a/src/contexts/Validators/Utils.ts +++ b/src/contexts/Validators/Utils.ts @@ -3,7 +3,10 @@ import type BigNumber from 'bignumber.js'; import type { LocalMeta } from 'contexts/FastUnstake/types'; -import type { LocalExposureData, Validator } from 'contexts/Validators/types'; +import type { + LocalValidatorEntriesData, + Validator, +} from 'contexts/Validators/types'; import type { AnyJson, NetworkName } from 'types'; // Get favorite validators from local storage. @@ -14,35 +17,35 @@ export const getLocalFavorites = (network: NetworkName) => { : []; }; -// Get validator exposures for an era. -export const getEraLocalExposures = (network: NetworkName, era: string) => { - const data = localStorage.getItem('exposures'); - const current = data ? (JSON.parse(data) as LocalExposureData) : null; +// Get local validator entries data for an era. +export const getLocalEraValidators = (network: NetworkName, era: string) => { + const data = localStorage.getItem('validators'); + const current = data ? (JSON.parse(data) as LocalValidatorEntriesData) : null; return current?.[network]?.era === era ? current[network] : null; }; -// Set validator exposure data to local storage. -export const setEraLocalExposures = ( +// Set local validator entries data for an era. +export const setLocalEraValidators = ( network: NetworkName, era: string, - exposures: Validator[], + entries: Validator[], avgCommission: number ) => { - const data = localStorage.getItem('exposures') || '{}'; + const data = localStorage.getItem('validators') || '{}'; localStorage.setItem( - 'exposures', + 'validators', JSON.stringify({ ...JSON.parse(data), [network]: { era, - exposures, + entries, avgCommission, }, }) ); }; -// Validate local exposure metadata. +// Validate local exposure metadata, currently used for fast unstake only. export const validateLocalExposure = ( localMeta: AnyJson, endEra: BigNumber diff --git a/src/contexts/Validators/defaults.ts b/src/contexts/Validators/defaults.ts index e58ce3b959..acf7581dcd 100644 --- a/src/contexts/Validators/defaults.ts +++ b/src/contexts/Validators/defaults.ts @@ -5,8 +5,8 @@ import BigNumber from 'bignumber.js'; import type { ValidatorsContextInterface } from 'contexts/Validators/types'; -export const defaultExposureData = { - exposures: [], +export const defaultValidatorsData = { + entries: [], notFullCommissionCount: 0, totalNonAllCommission: new BigNumber(0), }; diff --git a/src/contexts/Validators/index.tsx b/src/contexts/Validators/index.tsx index 702f52c950..f3ffe352c2 100644 --- a/src/contexts/Validators/index.tsx +++ b/src/contexts/Validators/index.tsx @@ -19,11 +19,11 @@ import { useBonded } from '../Bonded'; import { useConnect } from '../Connect'; import { useNetworkMetrics } from '../Network'; import { useActivePools } from '../Pools/ActivePools'; -import { defaultExposureData, defaultValidatorsContext } from './defaults'; +import { defaultValidatorsData, defaultValidatorsContext } from './defaults'; import { - getEraLocalExposures, + getLocalEraValidators, getLocalFavorites, - setEraLocalExposures, + setLocalEraValidators, } from './Utils'; export const ValidatorsProvider = ({ @@ -183,15 +183,15 @@ export const ValidatorsProvider = ({ }; // Fetch validator entries and format the returning data. - const getDataFromExposures = async () => { - if (!isReady || !api) return defaultExposureData; + const getValidatorEntries = async () => { + if (!isReady || !api) return defaultValidatorsData; - const entries = await api.query.staking.validators.entries(); + const result = await api.query.staking.validators.entries(); - const exposures: Validator[] = []; + const entries: Validator[] = []; let notFullCommissionCount = 0; let totalNonAllCommission = new BigNumber(0); - entries.forEach(([a, p]: AnyApi) => { + result.forEach(([a, p]: AnyApi) => { const address = a.toHuman().pop(); const prefs = p.toHuman(); const commission = new BigNumber(prefs.commission.replace(/%/g, '')); @@ -202,7 +202,7 @@ export const ValidatorsProvider = ({ notFullCommissionCount++; } - exposures.push({ + entries.push({ address, prefs: { commission: Number(commission.toFixed(2)), @@ -211,7 +211,7 @@ export const ValidatorsProvider = ({ }); }); - return { exposures, notFullCommissionCount, totalNonAllCommission }; + return { entries, notFullCommissionCount, totalNonAllCommission }; }; // Fetches and formats the active validator set, and derives metrics from the result. @@ -219,29 +219,26 @@ export const ValidatorsProvider = ({ if (!isReady || !api || validatorsFetched !== 'unsynced') return; setValidatorsFetched('syncing'); - // If local exposure data exists for the current active era, store these values in state. - // Otherwise, fetch exposures from API. - const localExposures = getEraLocalExposures( + // If local validator entries exist for the current era, store these values in state. Otherwise, + // fetch entries from API. + const localEraValidators = getLocalEraValidators( name, activeEra.index.toString() ); - // The current exposures for the active era. - let exposures: Validator[] = []; - // Average network commission for all non-100% commissioned exposures. + // The validator entries for the current active era. + let validatorEntries: Validator[] = []; + // Average network commission for all non-100% commissioned validators. let avg = 0; - if (localExposures) { - exposures = localExposures.exposures; - avg = localExposures.avgCommission; + if (localEraValidators) { + validatorEntries = localEraValidators.entries; + avg = localEraValidators.avgCommission; } else { - const { - exposures: newExposures, - notFullCommissionCount, - totalNonAllCommission, - } = await getDataFromExposures(); + const { entries, notFullCommissionCount, totalNonAllCommission } = + await getValidatorEntries(); - exposures = newExposures; + validatorEntries = entries; avg = notFullCommissionCount ? totalNonAllCommission .dividedBy(notFullCommissionCount) @@ -250,14 +247,19 @@ export const ValidatorsProvider = ({ : 0; } - // Set exposure data for the era to local storage. - setEraLocalExposures(name, activeEra.index.toString(), exposures, avg); + // Set entries data for the era to local storage. + setLocalEraValidators( + name, + activeEra.index.toString(), + validatorEntries, + avg + ); setValidatorsFetched('synced'); setAvgCommission(avg); // Validators are shuffled before committed to state. - setValidators(shuffle(exposures)); + setValidators(shuffle(validatorEntries)); - const addresses = exposures.map(({ address }) => address); + const addresses = validatorEntries.map(({ address }) => address); const [identities, supers] = await Promise.all([ fetchValidatorIdentities(addresses), fetchValidatorSupers(addresses), diff --git a/src/contexts/Validators/types.ts b/src/contexts/Validators/types.ts index 5ef56bc2c0..7d765cda1d 100644 --- a/src/contexts/Validators/types.ts +++ b/src/contexts/Validators/types.ts @@ -44,11 +44,11 @@ export interface ValidatorPrefs { blocked: boolean; } -export type LocalExposureData = Record< +export type LocalValidatorEntriesData = Record< string, { avgCommission: number; era: string; - exposures: Validator[]; + entries: Validator[]; } >; From e544cd863a19cbd97e6f2b7ef2cc397c0c8cbe90 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Wed, 23 Aug 2023 12:30:41 +0700 Subject: [PATCH 293/435] pass era & networkName to all worker tasks --- src/contexts/FastUnstake/index.tsx | 11 +++++------ src/contexts/Payouts/index.tsx | 4 ++-- src/contexts/Staking/index.tsx | 14 +++++++++++--- src/contexts/Staking/types.ts | 8 ++++++++ src/workers/stakers.ts | 18 +++++++++++++----- src/workers/types.ts | 6 +++++- 6 files changed, 44 insertions(+), 17 deletions(-) diff --git a/src/contexts/FastUnstake/index.tsx b/src/contexts/FastUnstake/index.tsx index 204383dfe1..d6c9fa1471 100644 --- a/src/contexts/FastUnstake/index.tsx +++ b/src/contexts/FastUnstake/index.tsx @@ -168,17 +168,16 @@ export const FastUnstakeProvider = ({ // ensure still same conditions. const { networkName, who } = data; if (networkName !== network.name || who !== activeAccount) { - // checkpoint: conditions have changed, cancel fast unstake. return; } - const { currentEra, exposed } = data; + const { era, exposed } = data; // ensure checked eras are in order highest first. const checked = metaRef.current.checked - .concat(Number(currentEra)) + .concat(Number(era)) .sort((a: number, b: number) => b - a); - if (!metaRef.current.checked.includes(Number(currentEra))) { + if (!metaRef.current.checked.includes(Number(era))) { // update localStorage with updated changes. localStorage.setItem( getLocalkey(who), @@ -215,7 +214,7 @@ export const FastUnstakeProvider = ({ subscribeToFastUnstakeQueue(); } else { // continue checking the next era. - checkEra(new BigNumber(currentEra).minus(1)); + checkEra(new BigNumber(era).minus(1)); } } }; @@ -252,7 +251,7 @@ export const FastUnstakeProvider = ({ worker.postMessage({ task: 'processEraForExposure', - currentEra: era.toString(), + era: era.toString(), who: activeAccount, networkName: network.name, exposures, diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index ee49557f8f..c2954a3936 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -47,7 +47,7 @@ export const PayoutsProvider = ({ worker.postMessage({ task: 'processEraForExposure', - currentEra: String(era), + era: String(era), who: activeAccount, networkName: network.name, exposures, @@ -138,7 +138,7 @@ export const PayoutsProvider = ({ } // eslint-disable-next-line - const { currentEra, exposed, exposeValidator } = data; + const { era, exposed, exposeValidator } = data; // TODO: process received era exposure data, set in local storage. // TODO: if there are more exposures to process, check next era. diff --git a/src/contexts/Staking/index.tsx b/src/contexts/Staking/index.tsx index 83875884f4..d52b440284 100644 --- a/src/contexts/Staking/index.tsx +++ b/src/contexts/Staking/index.tsx @@ -128,10 +128,16 @@ export const StakingProvider = ({ worker.onmessage = (message: MessageEvent) => { if (message) { const { data }: { data: ResponseInitialiseExposures } = message; - const { task } = data; - if (task !== 'processExposures') { + const { task, networkName, era } = data; + + // ensure task matches, & era is still the same. + if ( + task !== 'processExposures' || + networkName !== network.name || + era !== activeEra.index.toString() + ) return; - } + const { stakers, totalActiveNominators, @@ -240,6 +246,8 @@ export const StakingProvider = ({ // worker to calculate stats worker.postMessage({ + era: activeEra.index.toString(), + networkName: network.name, task: 'processExposures', activeAccount, units: network.units, diff --git a/src/contexts/Staking/types.ts b/src/contexts/Staking/types.ts index 8712acd103..0b9093e5ad 100644 --- a/src/contexts/Staking/types.ts +++ b/src/contexts/Staking/types.ts @@ -84,3 +84,11 @@ export interface StakingContextInterface { targets: any; erasStakersSyncing: any; } + +export type LocalExposuresData = Record< + string, + { + era: string; + exposures: EraStakers; + } +>; diff --git a/src/workers/stakers.ts b/src/workers/stakers.ts index c2e2f96c7d..e9e50637a0 100644 --- a/src/workers/stakers.ts +++ b/src/workers/stakers.ts @@ -33,7 +33,7 @@ ctx.addEventListener('message', (event: AnyJson) => { // Process era exposures and return if an account was exposed, along with the validator they backed. const processEraForExposure = (data: AnyJson) => { - const { currentEra, exposures, task, networkName, who } = data; + const { era, exposures, task, networkName, who } = data; let exposed = false; // If exposed, the validator that was backed. @@ -58,11 +58,11 @@ const processEraForExposure = (data: AnyJson) => { }); return { - currentEra, + networkName, + era, exposed, exposedValidator, task, - networkName, who, }; }; @@ -71,8 +71,14 @@ const processEraForExposure = (data: AnyJson) => { // // abstracts active nominators erasStakers. const processExposures = (data: DataInitialiseExposures) => { - const { units, exposures, activeAccount, maxNominatorRewardedPerValidator } = - data; + const { + networkName, + era, + units, + exposures, + activeAccount, + maxNominatorRewardedPerValidator, + } = data; const stakers: Staker[] = []; let activeValidators = 0; @@ -156,6 +162,8 @@ const processExposures = (data: DataInitialiseExposures) => { }); return { + networkName, + era, stakers, totalActiveNominators: nominators.length, activeAccountOwnStake, diff --git a/src/workers/types.ts b/src/workers/types.ts index 70e0e89271..86519d14fb 100644 --- a/src/workers/types.ts +++ b/src/workers/types.ts @@ -6,10 +6,12 @@ import type { Exposure, Staker, } from 'contexts/Staking/types'; -import type { MaybeAccount } from 'types'; +import type { MaybeAccount, NetworkName } from 'types'; export interface DataInitialiseExposures { task: string; + networkName: NetworkName; + era: string; activeAccount: MaybeAccount; units: number; exposures: Exposure[]; @@ -18,6 +20,8 @@ export interface DataInitialiseExposures { export interface ResponseInitialiseExposures { task: string; + networkName: NetworkName; + era: string; stakers: Staker[]; totalActiveNominators: number; activeAccountOwnStake: ActiveAccountStaker[]; From 6715f38a8b61a3d53b799ee31858f8abce94cf06 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Wed, 23 Aug 2023 12:35:57 +0700 Subject: [PATCH 294/435] fix task --- src/workers/stakers.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/workers/stakers.ts b/src/workers/stakers.ts index e9e50637a0..ff5f0daaeb 100644 --- a/src/workers/stakers.ts +++ b/src/workers/stakers.ts @@ -72,6 +72,7 @@ const processEraForExposure = (data: AnyJson) => { // abstracts active nominators erasStakers. const processExposures = (data: DataInitialiseExposures) => { const { + task, networkName, era, units, @@ -168,6 +169,7 @@ const processExposures = (data: DataInitialiseExposures) => { totalActiveNominators: nominators.length, activeAccountOwnStake, activeValidators, + task, who: activeAccount, }; }; From 14dc5921114ee8205ff070cf80909862e999fe1b Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Wed, 23 Aug 2023 12:59:23 +0700 Subject: [PATCH 295/435] use fetchEraStakers for erasStakers calls --- src/contexts/FastUnstake/index.tsx | 11 +-- src/contexts/Payouts/index.tsx | 12 +--- src/contexts/Staking/Utils.ts | 31 +++++++++ src/contexts/Staking/defaults.ts | 1 + src/contexts/Staking/index.tsx | 107 +++++++++++++++-------------- src/contexts/Staking/types.ts | 1 + 6 files changed, 94 insertions(+), 69 deletions(-) create mode 100644 src/contexts/Staking/Utils.ts diff --git a/src/contexts/FastUnstake/index.tsx b/src/contexts/FastUnstake/index.tsx index d6c9fa1471..066ea2435e 100644 --- a/src/contexts/FastUnstake/index.tsx +++ b/src/contexts/FastUnstake/index.tsx @@ -32,8 +32,8 @@ export const FastUnstakeProvider = ({ }: { children: React.ReactNode; }) => { - const { inSetup } = useStaking(); const { activeAccount } = useConnect(); + const { inSetup, fetchEraStakers } = useStaking(); const { api, isReady, consts, network } = useApi(); const { metrics, activeEra } = useNetworkMetrics(); const { getNominationStatus } = useNominationStatus(); @@ -240,14 +240,7 @@ export const FastUnstakeProvider = ({ const checkEra = async (era: BigNumber) => { if (!api) return; - const exposures = ( - await api.query.staking.erasStakers.entries(era.toString()) - ).map(([keys, val]: AnyApi) => ({ - keys: keys.toHuman(), - val: val.toHuman(), - })); - - // TODO: store `exposures` into local `exposures` data. + const exposures = await fetchEraStakers(era.toString()); worker.postMessage({ task: 'processEraForExposure', diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index c2954a3936..8027cbf975 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -20,9 +20,9 @@ export const PayoutsProvider = ({ children: React.ReactNode; }) => { const { api, network } = useApi(); - const { isNominating } = useStaking(); const { activeAccount } = useConnect(); const { activeEra } = useNetworkMetrics(); + const { isNominating, fetchEraStakers } = useStaking(); // Store active accont's payout state. const [payouts, setPayouts] = React.useState<AnyJson>(null); @@ -62,19 +62,13 @@ export const PayoutsProvider = ({ const { start, end } = getErasToCheck(); for (let i = start; i >= end; i--) { // TODO: only fetch eras that are not in local storage. - calls.push(api.query.staking.erasStakers.entries(i)); + calls.push(fetchEraStakers(String(i))); } + // eslint-disable-next-line const eraExposures = await Promise.all(calls); // TODO: store all exposure data in local storage. - for (const eraExposure of eraExposures) { - // eslint-disable-next-line - const exposures = eraExposure.map(([keys, val]: AnyApi) => ({ - keys: keys.toHuman(), - val: val.toHuman(), - })); - } // get first era exposures in localStorage from `start` era. // checkExposures(start, exposures); diff --git a/src/contexts/Staking/Utils.ts b/src/contexts/Staking/Utils.ts new file mode 100644 index 0000000000..c55fe7c70b --- /dev/null +++ b/src/contexts/Staking/Utils.ts @@ -0,0 +1,31 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: GPL-3.0-only + +import type { NetworkName } from 'types'; +import type { Exposure, LocalExposuresData } from './types'; + +// Get local `erasStakers` entries for an era. +export const getLocalEraExposures = (network: NetworkName, era: string) => { + const data = localStorage.getItem('exposures'); + const current = data ? (JSON.parse(data) as LocalExposuresData) : null; + return current?.[network]?.era === era ? current[network] : null; +}; + +// Set local stakers entries data for an era. +export const setLocalEraExposures = ( + network: NetworkName, + era: string, + exposures: Exposure[] +) => { + const data = localStorage.getItem('exposures') || '{}'; + localStorage.setItem( + 'exposures', + JSON.stringify({ + ...JSON.parse(data), + [network]: { + era, + exposures, + }, + }) + ); +}; diff --git a/src/contexts/Staking/defaults.ts b/src/contexts/Staking/defaults.ts index 53ba2000c9..20f5bdfb2d 100644 --- a/src/contexts/Staking/defaults.ts +++ b/src/contexts/Staking/defaults.ts @@ -45,6 +45,7 @@ const defaultLowestReward = { export const defaultNominationStatus: NominationStatuses = {}; export const defaultStakingContext: StakingContextInterface = { + fetchEraStakers: async (e) => new Promise((resolve) => resolve([])), getNominationsStatusFromTargets: (w, t) => defaultNominationStatus, setTargets: (t) => {}, hasController: () => false, diff --git a/src/contexts/Staking/index.tsx b/src/contexts/Staking/index.tsx index d52b440284..090e9619c0 100644 --- a/src/contexts/Staking/index.tsx +++ b/src/contexts/Staking/index.tsx @@ -15,7 +15,6 @@ import type { ExternalAccount } from 'contexts/Connect/types'; import type { PayeeConfig, PayeeOptions } from 'contexts/Setup/types'; import type { EraStakers, - Exposure, StakingContextInterface, StakingMetrics, StakingTargets, @@ -34,6 +33,7 @@ import { defaultStakingMetrics, defaultTargets, } from './defaults'; +import { setLocalEraExposures } from './Utils'; const worker = new Worker(); @@ -79,24 +79,6 @@ export const StakingProvider = ({ ) as StakingTargets ); - useEffectIgnoreInitial(() => { - if (apiStatus === 'connecting') { - setStateWithRef(defaultEraStakers, setEraStakers, eraStakersRef); - setStakingMetrics(stakingMetrics); - } - }, [apiStatus]); - - // Handle staking metrics subscription - useEffectIgnoreInitial(() => { - if (isReady) { - unsubscribeMetrics(); - subscribeToStakingkMetrics(); - } - return () => { - unsubscribeMetrics(); - }; - }, [isReady, activeEra, activeAccount]); - // Handle metrics unsubscribe. const unsubscribeMetrics = () => { if (unsub.current !== null) { @@ -105,26 +87,6 @@ export const StakingProvider = ({ } }; - // handle syncing with eraStakers - useEffectIgnoreInitial(() => { - if (isReady) { - fetchEraStakers(); - } - }, [isReady, activeEra.index, activeAccount]); - - useEffectIgnoreInitial(() => { - if (activeAccount) { - // set account's targets - setTargetsState( - localStorageOrDefault( - `${activeAccount}_targets`, - defaultTargets, - true - ) as StakingTargets - ); - } - }, [isReady, bondedAccounts, activeAccount, eraStakersRef.current?.stakers]); - worker.onmessage = (message: MessageEvent) => { if (message) { const { data }: { data: ResponseInitialiseExposures } = message; @@ -226,23 +188,29 @@ export const StakingProvider = ({ return payeeFinal; }; - // Fetches the active nominator set and metadata around it. - const fetchEraStakers = async () => { - if (!isReady || activeEra.index.isZero() || !api) { - return; - } - const exposuresRaw = await api.query.staking.erasStakers.entries( - activeEra.index.toString() + // Fetches erasStakers exposures for an era, and saves to `localStorage`. + const fetchEraStakers = async (era: string) => { + if (!isReady || activeEra.index.isZero() || !api) return []; + + const exposures = (await api.query.staking.erasStakers.entries(era)).map( + ([keys, val]: AnyApi) => ({ + keys: keys.toHuman(), + val: val.toHuman(), + }) ); + setLocalEraExposures(network.name, era, exposures); + return exposures; + }; + + // Fetches the active nominator set and metadata around it. + const fetchActiveEraStakers = async () => { + if (!isReady || activeEra.index.isZero() || !api) return; + // flag eraStakers is recyncing setStateWithRef(true, setErasStakersSyncing, erasStakersSyncingRef); - // humanise exposures to send to worker - const exposures: Exposure[] = exposuresRaw.map(([keys, val]: AnyApi) => ({ - keys: keys.toHuman(), - val: val.toHuman(), - })); + const exposures = await fetchEraStakers(activeEra.index.toString()); // worker to calculate stats worker.postMessage({ @@ -359,9 +327,46 @@ export const StakingProvider = ({ }; }; + useEffectIgnoreInitial(() => { + if (apiStatus === 'connecting') { + setStateWithRef(defaultEraStakers, setEraStakers, eraStakersRef); + setStakingMetrics(stakingMetrics); + } + }, [apiStatus]); + + // Handle staking metrics subscription + useEffectIgnoreInitial(() => { + if (isReady) { + unsubscribeMetrics(); + subscribeToStakingkMetrics(); + } + return () => { + unsubscribeMetrics(); + }; + }, [isReady, activeEra, activeAccount]); + + // handle syncing with eraStakers + useEffectIgnoreInitial(() => { + if (isReady) fetchActiveEraStakers(); + }, [isReady, activeEra.index, activeAccount]); + + useEffectIgnoreInitial(() => { + if (activeAccount) { + // set account's targets + setTargetsState( + localStorageOrDefault( + `${activeAccount}_targets`, + defaultTargets, + true + ) as StakingTargets + ); + } + }, [isReady, bondedAccounts, activeAccount, eraStakersRef.current?.stakers]); + return ( <StakingContext.Provider value={{ + fetchEraStakers, getNominationsStatusFromTargets, setTargets, hasController, diff --git a/src/contexts/Staking/types.ts b/src/contexts/Staking/types.ts index 0b9093e5ad..11fb6bdd3e 100644 --- a/src/contexts/Staking/types.ts +++ b/src/contexts/Staking/types.ts @@ -70,6 +70,7 @@ interface LowestReward { } export interface StakingContextInterface { + fetchEraStakers: (era: string) => Promise<Exposure[]>; getNominationsStatusFromTargets: (w: MaybeAccount, t: any[]) => any; setTargets: (t: any) => any; hasController: () => boolean; From b550c013338f71fb7cdcc771f400c0311d9008fd Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Wed, 23 Aug 2023 14:07:47 +0700 Subject: [PATCH 296/435] minify local exposure data, limit to current era, store per-network --- src/contexts/Staking/Utils.ts | 77 ++++++++++++++++++++++++++++------ src/contexts/Staking/index.tsx | 30 +++++++++---- src/contexts/Staking/types.ts | 20 +++++---- 3 files changed, 101 insertions(+), 26 deletions(-) diff --git a/src/contexts/Staking/Utils.ts b/src/contexts/Staking/Utils.ts index c55fe7c70b..b41151958c 100644 --- a/src/contexts/Staking/Utils.ts +++ b/src/contexts/Staking/Utils.ts @@ -1,14 +1,27 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import type { NetworkName } from 'types'; -import type { Exposure, LocalExposuresData } from './types'; +import type { AnyApi, NetworkName } from 'types'; +import { rmCommas } from '@polkadot-cloud/utils'; +import type { Exposure, LocalExposure, LocalExposuresData } from './types'; // Get local `erasStakers` entries for an era. -export const getLocalEraExposures = (network: NetworkName, era: string) => { - const data = localStorage.getItem('exposures'); +export const getLocalEraExposures = ( + network: NetworkName, + era: string, + activeEra: string +) => { + const data = localStorage.getItem(`${network}_exposures`); const current = data ? (JSON.parse(data) as LocalExposuresData) : null; - return current?.[network]?.era === era ? current[network] : null; + const currentEra = current?.era; + + if (currentEra && currentEra !== activeEra) + localStorage.removeItem(`${network}_exposures`); + + if (currentEra === era && current?.exposures) + return maxifyExposures(current.exposures) as Exposure[]; + + return null; }; // Set local stakers entries data for an era. @@ -17,15 +30,55 @@ export const setLocalEraExposures = ( era: string, exposures: Exposure[] ) => { - const data = localStorage.getItem('exposures') || '{}'; localStorage.setItem( - 'exposures', + `${network}_exposures`, JSON.stringify({ - ...JSON.parse(data), - [network]: { - era, - exposures, - }, + era, + exposures: minifyExposures(exposures), }) ); }; + +// Humanise and remove commas from fetched exposures. +export const formatRawExposures = (exposures: AnyApi) => + exposures.map(([k, v]: AnyApi) => { + const keys = k.toHuman(); + const { own, total, others } = v.toHuman(); + + return { + keys: [rmCommas(keys[0]), keys[1]], + val: { + others: others.map(({ who, value }: AnyApi) => ({ + who, + value: rmCommas(value), + })), + own: rmCommas(own), + total: rmCommas(total), + }, + }; + }); + +// Minify exposures data structure for local storage. +const minifyExposures = (exposures: Exposure[]) => + exposures.map(({ keys, val: { others, own, total } }: AnyApi) => ({ + k: [keys[0], keys[1]], + v: { + o: others.map(({ who, value }: AnyApi) => [who, value]), + w: own, + t: total, + }, + })); + +// Expand local exposure data into JSON format. +const maxifyExposures = (exposures: LocalExposure[]) => + exposures.map(({ k, v }: AnyApi) => ({ + keys: [k[0], k[1]], + val: { + others: v.o.map(([who, value]: AnyApi) => ({ + who, + value, + })), + own: v.w, + total: v.t, + }, + })); diff --git a/src/contexts/Staking/index.tsx b/src/contexts/Staking/index.tsx index 090e9619c0..4c11be482f 100644 --- a/src/contexts/Staking/index.tsx +++ b/src/contexts/Staking/index.tsx @@ -15,6 +15,7 @@ import type { ExternalAccount } from 'contexts/Connect/types'; import type { PayeeConfig, PayeeOptions } from 'contexts/Setup/types'; import type { EraStakers, + Exposure, StakingContextInterface, StakingMetrics, StakingTargets, @@ -33,7 +34,11 @@ import { defaultStakingMetrics, defaultTargets, } from './defaults'; -import { setLocalEraExposures } from './Utils'; +import { + setLocalEraExposures, + getLocalEraExposures, + formatRawExposures, +} from './Utils'; const worker = new Worker(); @@ -192,14 +197,25 @@ export const StakingProvider = ({ const fetchEraStakers = async (era: string) => { if (!isReady || activeEra.index.isZero() || !api) return []; - const exposures = (await api.query.staking.erasStakers.entries(era)).map( - ([keys, val]: AnyApi) => ({ - keys: keys.toHuman(), - val: val.toHuman(), - }) + let exposures: Exposure[] = []; + const localExposures = getLocalEraExposures( + network.name, + era, + activeEra.index.toString() ); - setLocalEraExposures(network.name, era, exposures); + if (localExposures) { + exposures = localExposures; + } else { + exposures = formatRawExposures( + await api.query.staking.erasStakers.entries(era) + ); + } + + // For resource limitation concerns, only store the current era in local storage. + if (era === activeEra.index.toString()) + setLocalEraExposures(network.name, era, exposures); + return exposures; }; diff --git a/src/contexts/Staking/types.ts b/src/contexts/Staking/types.ts index 11fb6bdd3e..006bc8a7e2 100644 --- a/src/contexts/Staking/types.ts +++ b/src/contexts/Staking/types.ts @@ -86,10 +86,16 @@ export interface StakingContextInterface { erasStakersSyncing: any; } -export type LocalExposuresData = Record< - string, - { - era: string; - exposures: EraStakers; - } ->; +export interface LocalExposuresData { + era: string; + exposures: LocalExposure[]; +} + +export interface LocalExposure { + k: [string, string]; + v: { + o: [string, string]; + w: string; + t: string; + }; +} From 27df50e3afff0cc96d4e69c5088ba71f57f09876 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Wed, 23 Aug 2023 14:15:58 +0700 Subject: [PATCH 297/435] validators per-network, remove when stale --- src/contexts/Validators/Utils.ts | 21 +++++++++++---------- src/contexts/Validators/types.ts | 13 +++++-------- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/src/contexts/Validators/Utils.ts b/src/contexts/Validators/Utils.ts index b18a1553e3..bb302eca57 100644 --- a/src/contexts/Validators/Utils.ts +++ b/src/contexts/Validators/Utils.ts @@ -19,9 +19,14 @@ export const getLocalFavorites = (network: NetworkName) => { // Get local validator entries data for an era. export const getLocalEraValidators = (network: NetworkName, era: string) => { - const data = localStorage.getItem('validators'); + const data = localStorage.getItem(`${network}_validators`); const current = data ? (JSON.parse(data) as LocalValidatorEntriesData) : null; - return current?.[network]?.era === era ? current[network] : null; + const currentEra = current?.era; + + if (currentEra && currentEra !== era) + localStorage.removeItem(`${network}_validators`); + + return currentEra === era ? current : null; }; // Set local validator entries data for an era. @@ -31,16 +36,12 @@ export const setLocalEraValidators = ( entries: Validator[], avgCommission: number ) => { - const data = localStorage.getItem('validators') || '{}'; localStorage.setItem( - 'validators', + `${network}_validators`, JSON.stringify({ - ...JSON.parse(data), - [network]: { - era, - entries, - avgCommission, - }, + era, + entries, + avgCommission, }) ); }; diff --git a/src/contexts/Validators/types.ts b/src/contexts/Validators/types.ts index 7d765cda1d..9c1a8df5a1 100644 --- a/src/contexts/Validators/types.ts +++ b/src/contexts/Validators/types.ts @@ -44,11 +44,8 @@ export interface ValidatorPrefs { blocked: boolean; } -export type LocalValidatorEntriesData = Record< - string, - { - avgCommission: number; - era: string; - entries: Validator[]; - } ->; +export interface LocalValidatorEntriesData { + avgCommission: number; + era: string; + entries: Validator[]; +} From cc1f9c54f09b31b4fe5ec3cca9e064026e9e9b5a Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Wed, 23 Aug 2023 14:20:18 +0700 Subject: [PATCH 298/435] tidy up --- src/contexts/Payouts/index.tsx | 1 - src/contexts/Staking/index.tsx | 11 +++-------- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index 8027cbf975..6fcd7f89f9 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -61,7 +61,6 @@ export const PayoutsProvider = ({ const calls = []; const { start, end } = getErasToCheck(); for (let i = start; i >= end; i--) { - // TODO: only fetch eras that are not in local storage. calls.push(fetchEraStakers(String(i))); } diff --git a/src/contexts/Staking/index.tsx b/src/contexts/Staking/index.tsx index 4c11be482f..0068be4ef7 100644 --- a/src/contexts/Staking/index.tsx +++ b/src/contexts/Staking/index.tsx @@ -197,20 +197,15 @@ export const StakingProvider = ({ const fetchEraStakers = async (era: string) => { if (!isReady || activeEra.index.isZero() || !api) return []; - let exposures: Exposure[] = []; const localExposures = getLocalEraExposures( network.name, era, activeEra.index.toString() ); - if (localExposures) { - exposures = localExposures; - } else { - exposures = formatRawExposures( - await api.query.staking.erasStakers.entries(era) - ); - } + const exposures: Exposure[] = + localExposures || + formatRawExposures(await api.query.staking.erasStakers.entries(era)); // For resource limitation concerns, only store the current era in local storage. if (era === activeEra.index.toString()) From d9e07c3ffb0eb6d0e7e3c0d4ba0ae13b3c3a5cc0 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Wed, 23 Aug 2023 14:21:31 +0700 Subject: [PATCH 299/435] comments --- src/contexts/Payouts/index.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index 6fcd7f89f9..b073a76950 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -59,6 +59,8 @@ export const PayoutsProvider = ({ if (!api || !activeAccount) return; const calls = []; + // TODO: reformat to only fetch one era exposures at a time, keep track in same fashion as fast + // unstake. const { start, end } = getErasToCheck(); for (let i = start; i >= end; i--) { calls.push(fetchEraStakers(String(i))); From e03aa5c8e724cdc50b41e19e4ad148e633dffc87 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Wed, 23 Aug 2023 14:23:21 +0700 Subject: [PATCH 300/435] revert --- src/contexts/Staking/index.tsx | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/contexts/Staking/index.tsx b/src/contexts/Staking/index.tsx index 0068be4ef7..4c11be482f 100644 --- a/src/contexts/Staking/index.tsx +++ b/src/contexts/Staking/index.tsx @@ -197,15 +197,20 @@ export const StakingProvider = ({ const fetchEraStakers = async (era: string) => { if (!isReady || activeEra.index.isZero() || !api) return []; + let exposures: Exposure[] = []; const localExposures = getLocalEraExposures( network.name, era, activeEra.index.toString() ); - const exposures: Exposure[] = - localExposures || - formatRawExposures(await api.query.staking.erasStakers.entries(era)); + if (localExposures) { + exposures = localExposures; + } else { + exposures = formatRawExposures( + await api.query.staking.erasStakers.entries(era) + ); + } // For resource limitation concerns, only store the current era in local storage. if (era === activeEra.index.toString()) From f28201d1023bcefa697805d1b1c402e6dc27dd64 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Wed, 23 Aug 2023 14:30:26 +0700 Subject: [PATCH 301/435] rm legacy class --- src/library/ValidatorList/index.tsx | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/src/library/ValidatorList/index.tsx b/src/library/ValidatorList/index.tsx index c891dc7cda..20d4878542 100644 --- a/src/library/ValidatorList/index.tsx +++ b/src/library/ValidatorList/index.tsx @@ -12,7 +12,6 @@ import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; import { useFilters } from 'contexts/Filters'; import { useNetworkMetrics } from 'contexts/Network'; -import { StakingContext } from 'contexts/Staking'; import { useTheme } from 'contexts/Themes'; import { useUi } from 'contexts/UI'; import { Header, List, Wrapper as ListWrapper } from 'library/List'; @@ -368,19 +367,7 @@ export const ValidatorList = (props: any) => { selectActive={selectActive} selectToggleable={selectToggleable} > - <ValidatorListShouldUpdate {...props} /> + <ValidatorListInner {...props} /> </ListProvider> ); }; - -export class ValidatorListShouldUpdate extends React.Component<any, any> { - static contextType = StakingContext; - - shouldComponentUpdate(nextProps: any) { - return this.props.validators !== nextProps.validators; - } - - render() { - return <ValidatorListInner {...this.props} />; - } -} From b01d521ee88a5e5f5ecb219e007883ba489cfe83 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Wed, 23 Aug 2023 15:20:01 +0700 Subject: [PATCH 302/435] bumps --- package.json | 2 +- src/library/AccountInput/Wrapper.ts | 2 +- src/modals/Accounts/Wrappers.ts | 2 +- yarn.lock | 8 ++++---- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index b99a15e07a..67bb171dca 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "@polkadot-cloud/community": "^0.1.10", "@polkadot-cloud/core": "^0.1.1", "@polkadot-cloud/react": "^0.1.3", - "@polkadot-cloud/utils": "^0.0.1", + "@polkadot-cloud/utils": "^0.0.4", "@polkadot/api": "^10.9.1", "@polkadot/keyring": "^12.1.1", "@polkadot/rpc-provider": "^10.9.1", diff --git a/src/library/AccountInput/Wrapper.ts b/src/library/AccountInput/Wrapper.ts index e88a89a5d6..b0292c59a8 100644 --- a/src/library/AccountInput/Wrapper.ts +++ b/src/library/AccountInput/Wrapper.ts @@ -28,7 +28,7 @@ export const AccountInputWrapper = styled.div` } .input { - border: 1px solid var(--transparent-color); + border: 1px solid transparent; border-radius: 1rem; display: flex; flex-flow: row wrap; diff --git a/src/modals/Accounts/Wrappers.ts b/src/modals/Accounts/Wrappers.ts index 2256a62e72..01407c1aa1 100644 --- a/src/modals/Accounts/Wrappers.ts +++ b/src/modals/Accounts/Wrappers.ts @@ -20,9 +20,9 @@ export const AccountWrapper = styled.div` > div { background: var(--button-primary-background); - border: 1px solid var(--transparent-color); color: var(--text-color-primary); font-family: InterSemiBold, sans-serif; + border: 1px solid transparent; display: flex; align-items: flex-start; flex-direction: column; diff --git a/yarn.lock b/yarn.lock index 17b97eb3a2..4a9ae759fa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1517,10 +1517,10 @@ resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.3.tgz#635ac69043acf69e158b8e0dc8c65dbab74f0ae1" integrity sha512-Q+7V9QY6AAgevug0t2d4H1NgnQ3b7Ci3h0yiP0x8KGU9jdWRIxqf+78t1BENmK2wYtI6zV2V4hQA9JTwGB6pbg== -"@polkadot-cloud/utils@^0.0.1": - version "0.0.1" - resolved "https://registry.npmjs.org/@polkadot-cloud/utils/-/utils-0.0.1.tgz#24b0d569c4637e4d539ba3a2c669339144162133" - integrity sha512-YWSQ/sPRwVcO1LBJAVS7E7TI+dYpVY/Oe/sDwLThMVaVXzaIx18tBBhoEXXU85a8N0bXJHYVOMIWoCnAem4ZJw== +"@polkadot-cloud/utils@^0.0.4": + version "0.0.4" + resolved "https://registry.npmjs.org/@polkadot-cloud/utils/-/utils-0.0.4.tgz#660d5ea9dbf6548f0f7ae9d0d4b86e6016d90c23" + integrity sha512-cSjaNcB/DgmKjG+VUJuA/wOBvUqsBRIr7KhVfJgD6tozqCyyHUgVO041T2uQioX+HauExO+5/wOVExthtS4ewQ== "@polkadot/api-augment@10.9.1": version "10.9.1" From 1e34a6e0f5fc9db4b3b077e7083d9cf86e0f584a Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Wed, 23 Aug 2023 17:31:42 +0700 Subject: [PATCH 303/435] cloud per-component css imports --- package.json | 2 +- src/main.tsx | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index e2bc941975..767791db65 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "@ledgerhq/hw-transport-webhid": "^6.27.19", "@polkadot-cloud/community": "^0.1.10", "@polkadot-cloud/core": "^0.1.1", - "@polkadot-cloud/react": "^0.1.3", + "@polkadot-cloud/react": "^0.1.7", "@polkadot-cloud/utils": "^0.0.4", "@polkadot/api": "^10.9.1", "@polkadot/keyring": "^12.1.1", diff --git a/src/main.tsx b/src/main.tsx index d85f364020..e2b45896e1 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -13,7 +13,6 @@ import '@polkadot-cloud/core/template/default/index.css'; // Core UI styles. import '@polkadot-cloud/core/css/styles/index.css'; -import '@polkadot-cloud/react/index.css'; // Miscellaneous component styles. import '@polkadotcloud/react-odometer/index.css'; From 1d782a2ff0f130c584d342fef1944e1cb9fe9296 Mon Sep 17 00:00:00 2001 From: rafael <rvalle@privaz.io> Date: Wed, 23 Aug 2023 13:51:53 +0200 Subject: [PATCH 304/435] adds polkawatch direct link to decentralization analysis of nomination --- src/pages/Overview/BalanceLinks.tsx | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/pages/Overview/BalanceLinks.tsx b/src/pages/Overview/BalanceLinks.tsx index 7d39a377a5..64f8a9d7b5 100644 --- a/src/pages/Overview/BalanceLinks.tsx +++ b/src/pages/Overview/BalanceLinks.tsx @@ -29,8 +29,22 @@ export const BalanceLinks = () => { iconRight={faExternalLinkAlt} iconTransform="shrink-2" text="Subscan" + marginRight disabled={!activeAccount} /> + <ButtonPrimaryInvert + lg + onClick={() => + window.open( + `https://${name}.polkawatch.app/nomination/${activeAccount}`, + '_blank' + ) + } + iconRight={faExternalLinkAlt} + iconTransform="shrink-2" + text="Polkawatch" + disabled={!(activeAccount && ['polkadot', 'kusama'].includes(name))} + /> </section> </MoreWrapper> ); From 3e008c236ed85da7688636fc2477ea5f94562084 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Aug 2023 21:38:42 +0000 Subject: [PATCH 305/435] Bump @polkadot-cloud/react from 0.1.3 to 0.1.7 Bumps [@polkadot-cloud/react](https://github.com/paritytech/polkadot-cloud) from 0.1.3 to 0.1.7. - [Release notes](https://github.com/paritytech/polkadot-cloud/releases) - [Commits](https://github.com/paritytech/polkadot-cloud/commits) --- updated-dependencies: - dependency-name: "@polkadot-cloud/react" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- yarn.lock | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/yarn.lock b/yarn.lock index 29f685dfed..063b1712fb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1507,15 +1507,23 @@ resolved "https://registry.npmjs.org/@polkadot-cloud/community/-/community-0.1.10.tgz#d2a99190c0a89a67275264084e6e750269990986" integrity sha512-VT38rqOvORuYdPLigS8UNwvitoc0DFZWEazsvHxz9bTnPBL/7M3LujWXO14OSGw+FTvfz4RzPwovmW4u7RoT/Q== -"@polkadot-cloud/core@^0.1.1": - version "0.1.1" - resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.1.1.tgz#7a185ba672da1cd6dc9e1d2677c641020177403a" - integrity sha512-MM7CPYbtm7eAqmOm7sIKynADgGf++GMFl9jE0k+lITopXhQ7lCAxAHElzl6TDP/bnHf12RxuMpTRfQyFoLxP0w== - -"@polkadot-cloud/react@^0.1.3": - version "0.1.3" - resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.3.tgz#635ac69043acf69e158b8e0dc8c65dbab74f0ae1" - integrity sha512-Q+7V9QY6AAgevug0t2d4H1NgnQ3b7Ci3h0yiP0x8KGU9jdWRIxqf+78t1BENmK2wYtI6zV2V4hQA9JTwGB6pbg== +"@polkadot-cloud/core@^0.1.1", "@polkadot-cloud/core@^0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@polkadot-cloud/core/-/core-0.1.2.tgz#67cff1b96bbf13576bb6d307a55c1825fb435ad7" + integrity sha512-L2WpBPp04238aXZX2w44GHz5ozILPLuHibsvTWgswSmZPJuF5SVkEQnCKLXvPjP2o5RlpbiDl0rYUd+F9Qo7HA== + +"@polkadot-cloud/react@^0.1.7": + version "0.1.7" + resolved "https://registry.yarnpkg.com/@polkadot-cloud/react/-/react-0.1.7.tgz#badf6f0e958e0265501321182985a46f96f3b7ec" + integrity sha512-CkKLxxzWcChc46tSSLrrTXoHBjIHhcPDVAQI0bTeVSU4z36avxMwSXz1HjYIEh1RVdJLajonf69fWJtvzgFbgg== + dependencies: + "@polkadot-cloud/core" "^0.1.2" + "@polkadot-cloud/utils" "^0.0.1" + +"@polkadot-cloud/utils@^0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@polkadot-cloud/utils/-/utils-0.0.1.tgz#24b0d569c4637e4d539ba3a2c669339144162133" + integrity sha512-YWSQ/sPRwVcO1LBJAVS7E7TI+dYpVY/Oe/sDwLThMVaVXzaIx18tBBhoEXXU85a8N0bXJHYVOMIWoCnAem4ZJw== "@polkadot-cloud/utils@^0.0.4": version "0.0.4" From faf725c4a006d15adcbe664bb1e8f9253f7950b7 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Thu, 24 Aug 2023 11:52:09 +0700 Subject: [PATCH 306/435] unsub --- src/contexts/FastUnstake/index.tsx | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/contexts/FastUnstake/index.tsx b/src/contexts/FastUnstake/index.tsx index 066ea2435e..0532db0361 100644 --- a/src/contexts/FastUnstake/index.tsx +++ b/src/contexts/FastUnstake/index.tsx @@ -83,9 +83,7 @@ export const FastUnstakeProvider = ({ fastUnstakeErasToCheckPerBlock > 0 ) { // cancel fast unstake check on network change or account change. - for (const u of unsubs.current) { - u(); - } + for (const unsub of unsubs.current) unsub(); setStateWithRef(false, setChecking, checkingRef); setStateWithRef(null, setqueueDeposit, queueDepositRef); @@ -143,9 +141,7 @@ export const FastUnstakeProvider = ({ } return () => { - for (const u of unsubs.current) { - u(); - } + for (const unsub of unsubs.current) unsub(); }; }, [ inSetup(), From 3340f2e8cc3febb69e2a3d6bc515d8a95813805d Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Thu, 24 Aug 2023 11:52:32 +0700 Subject: [PATCH 307/435] inplement pending payout discovery flow --- src/contexts/Payouts/defaults.ts | 1 + src/contexts/Payouts/index.tsx | 180 ++++++++++++++++--------------- src/contexts/Payouts/types.ts | 3 +- 3 files changed, 95 insertions(+), 89 deletions(-) diff --git a/src/contexts/Payouts/defaults.ts b/src/contexts/Payouts/defaults.ts index 2f134def81..0266dda2c0 100644 --- a/src/contexts/Payouts/defaults.ts +++ b/src/contexts/Payouts/defaults.ts @@ -4,6 +4,7 @@ import type { PayoutsContextInterface } from './types'; export const defaultPayoutsContext: PayoutsContextInterface = { + payoutsSynced: 'unsynced', payouts: null, }; diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index b073a76950..600045cac1 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import React, { useEffect } from 'react'; +import React, { useState, useEffect, useRef } from 'react'; import { useStaking } from 'contexts/Staking'; import { useApi } from 'contexts/Api'; import type { AnyApi, Sync, AnyJson } from 'types'; @@ -9,6 +9,8 @@ import { useConnect } from 'contexts/Connect'; import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import { useNetworkMetrics } from 'contexts/Network'; import Worker from 'workers/stakers?worker'; +import { rmCommas, setStateWithRef } from '@polkadot-cloud/utils'; +import BigNumber from 'bignumber.js'; import { MaxSupportedPayoutEras, defaultPayoutsContext } from './defaults'; import type { PayoutsContextInterface } from './types'; @@ -25,26 +27,30 @@ export const PayoutsProvider = ({ const { isNominating, fetchEraStakers } = useStaking(); // Store active accont's payout state. - const [payouts, setPayouts] = React.useState<AnyJson>(null); + const [payouts, setPayouts] = useState<AnyJson>(null); // Track whether payouts have been fetched. - const payoutsSynced = React.useRef<Sync>('unsynced'); + const [payoutsSynced, setPayoutsSynced] = useState<Sync>('unsynced'); + const payoutsSyncedRef = useRef(payoutsSynced); // Calculate eras to check for pending payouts. const getErasToCheck = () => { - const start = activeEra?.index.minus(1).toNumber() || 1; - const end = Math.max(start - MaxSupportedPayoutEras, 1); + const startEra = activeEra?.index.minus(1) || new BigNumber(1); + const endEra = BigNumber.max( + startEra.minus(MaxSupportedPayoutEras).plus(1), + 1 + ); return { - start, - end, + startEra, + endEra, }; }; - // Calls service worker to check exppsures for given era. - // eslint-disable-next-line - const checkExposures = async (era: number, exposures: AnyJson) => { - if (!api) return; - + // Fetch exposure data for an era, and pass the data to the worker to determine the validator the + // active account was backing in that era. + const checkEra = async (era: BigNumber) => { + if (!activeAccount) return; + const exposures = await fetchEraStakers(era.toString()); worker.postMessage({ task: 'processEraForExposure', era: String(era), @@ -54,91 +60,86 @@ export const PayoutsProvider = ({ }); }; - // Fetch exposure data required for pending payouts. - const fetchExposureData = async () => { - if (!api || !activeAccount) return; + // Handle worker message on completed exposure check. + worker.onmessage = (message: MessageEvent) => { + if (message) { + // ensure correct task received. + const { data } = message; + const { task } = data; + if (task !== 'processEraForExposure') return; - const calls = []; - // TODO: reformat to only fetch one era exposures at a time, keep track in same fashion as fast - // unstake. - const { start, end } = getErasToCheck(); - for (let i = start; i >= end; i--) { - calls.push(fetchEraStakers(String(i))); - } + // Exit early if network or account conditions have changed. + const { networkName, who } = data; + if (networkName !== network.name || who !== activeAccount) return; - // eslint-disable-next-line - const eraExposures = await Promise.all(calls); + // eslint-disable-next-line + const { era, exposed, exposeValidator } = data; + const { endEra } = getErasToCheck(); - // TODO: store all exposure data in local storage. + // TODO: process received era exposure data results and set in local storage. - // get first era exposures in localStorage from `start` era. - // checkExposures(start, exposures); + // If there are more exposures to process, check next era. + if (new BigNumber(era).isGreaterThan(endEra)) + checkEra(new BigNumber(era).minus(1)); + // If all exposures have been processed, check for pending payouts. + else if (new BigNumber(era).isEqualTo(endEra)) { + checkPendingPayouts(); + } + } }; - // Fetch pending payouts. - const fetchPendingPayouts = async () => { - if (!api || !activeAccount) return; - - // Get eras required for payout calculation. - const { start, end } = getErasToCheck(); + // Start pending payout process once exposure data is fetched. + // eslint-disable-next-line + const checkPendingPayouts = async () => { + if (!api) return; - // Accumulate needed calls for reward data. + // Fetch reward data and determine whether there are pending payouts. + const { startEra, endEra } = getErasToCheck(); + let currentEra = startEra; const calls = []; - for (let i = start; i >= end; i--) { - // TODO: only fetch eras that are not in local storage. - calls.push(api.query.staking.erasRewardPoints<AnyApi>(i)); + while (currentEra.isGreaterThanOrEqualTo(endEra)) { + calls.push( + Promise.all([ + api.query.staking.erasValidatorReward<AnyApi>(currentEra.toString()), + api.query.staking.erasRewardPoints<AnyApi>(currentEra.toString()), + ]) + ); + currentEra = currentEra.minus(1); } - const eraPayouts = await Promise.all(calls); - for (const eraPayout of eraPayouts) { - // eslint-disable-next-line - const { total, individual } = eraPayout; - - // TODO: store this era payout in local storage. - - // const activeAccountPayout = rmCommas(individual[activeAccount] || 0); - - // TODO: Check if active account had a payout in this era. If so, store in Payouts and in local stoarage. - // do this next. + currentEra = startEra; + for (const result of await Promise.all(calls)) { + const eraValidatorReward = new BigNumber(rmCommas(result[0].toHuman())); + const eraRewardPoints = result[1].toHuman(); + + // TODO: get validator from earlier exposure data processing. + const validator = 0; + + const total = new BigNumber(rmCommas(eraRewardPoints.total)); + const individual = new BigNumber( + rmCommas(eraRewardPoints.individual?.[validator] || '0') + ); + const share = individual.isZero() + ? new BigNumber(0) + : individual.dividedBy(total); + const payout = eraValidatorReward.multipliedBy(share); + + console.log( + 'era ', + currentEra.toString(), + ' payout: ', + payout.toString() + ); + + // TODO: Store payout data in local stoarage. + + currentEra = currentEra.minus(1); } - // TODO: commit all payouts to state once all synced. + // TODO: commit all payout data to state. setPayouts({}); - }; - // Start pending payout process. - const startPendingPayoutProcess = async () => { - // Populate localStorage with the needed exposure data. - await fetchExposureData(); - - // Fetch reward data and determine whether there are pending payouts. - // TODO: move this to `useEffect` once all required workers have completed. - await fetchPendingPayouts(); - payoutsSynced.current = 'synced'; - }; - - // Handle worker message on completed exposure check. - worker.onmessage = (message: MessageEvent) => { - if (message) { - // ensure correct task received. - const { data } = message; - const { task } = data; - if (task !== 'processEraForExposure') { - return; - } - // ensure still same conditions. - const { networkName, who } = data; - if (networkName !== network.name || who !== activeAccount) { - return; - } - - // eslint-disable-next-line - const { era, exposed, exposeValidator } = data; - - // TODO: process received era exposure data, set in local storage. - // TODO: if there are more exposures to process, check next era. - // checkExposures(nextEra, exposures); - } + setStateWithRef('synced', setPayoutsSynced, payoutsSyncedRef); }; // Fetch payouts if active account is nominating. @@ -146,10 +147,11 @@ export const PayoutsProvider = ({ if ( isNominating() && !activeEra.index.isZero() && - payoutsSynced.current === 'unsynced' + payoutsSyncedRef.current === 'unsynced' ) { - payoutsSynced.current = 'syncing'; - startPendingPayoutProcess(); + payoutsSyncedRef.current = 'syncing'; + // Start checking eras for exposures, starting with the previous one. + checkEra(activeEra.index.minus(1)); } }, [isNominating(), activeEra]); @@ -157,12 +159,14 @@ export const PayoutsProvider = ({ useEffectIgnoreInitial(() => { if (payouts !== null) { setPayouts(null); - payoutsSynced.current = 'unsynced'; + setStateWithRef('unsynced', setPayoutsSynced, payoutsSyncedRef); } }, [network, activeAccount]); return ( - <PayoutsContext.Provider value={{ payouts }}> + <PayoutsContext.Provider + value={{ payouts, payoutsSynced: payoutsSyncedRef.current }} + > {children} </PayoutsContext.Provider> ); diff --git a/src/contexts/Payouts/types.ts b/src/contexts/Payouts/types.ts index 3ac7cae4ce..dda74a5462 100644 --- a/src/contexts/Payouts/types.ts +++ b/src/contexts/Payouts/types.ts @@ -1,8 +1,9 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import type { AnyJson } from 'types'; +import type { AnyJson, Sync } from 'types'; export type PayoutsContextInterface = { + payoutsSynced: Sync; payouts: AnyJson; }; From a5749ead285971a658a3b7ca1dbac3156deb6653 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Thu, 24 Aug 2023 12:24:33 +0700 Subject: [PATCH 308/435] cache exposures locally, abstract shouldContinueProcessing --- src/contexts/Payouts/Utils.ts | 47 ++++++++++++++++++++++++++ src/contexts/Payouts/index.tsx | 61 ++++++++++++++++++++++++---------- 2 files changed, 91 insertions(+), 17 deletions(-) create mode 100644 src/contexts/Payouts/Utils.ts diff --git a/src/contexts/Payouts/Utils.ts b/src/contexts/Payouts/Utils.ts new file mode 100644 index 0000000000..7b89fa5959 --- /dev/null +++ b/src/contexts/Payouts/Utils.ts @@ -0,0 +1,47 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: GPL-3.0-only + +import BigNumber from 'bignumber.js'; +import type { AnyJson, NetworkName } from 'types'; + +// Get local exposure entry for an era. +export const getLocalEraExposure = ( + network: NetworkName, + era: string, + who: string +) => { + const current = JSON.parse( + localStorage.getItem(`${network}_era_exposures`) || '{}' + ); + return current?.[who]?.[era] || null; +}; + +// Set local exposure entry for an era. +export const setLocalEraExposure = ( + network: NetworkName, + era: string, + who: string, + validator: string | null, + endEra: string +) => { + const current = JSON.parse( + localStorage.getItem(`${network}_era_exposures`) || '{}' + ); + + const whoRemoveStaleEras = Object.fromEntries( + Object.entries(current[who] || {}).filter(([k]: AnyJson) => + new BigNumber(k).isGreaterThanOrEqualTo(endEra) + ) + ); + + localStorage.setItem( + `${network}_era_exposures`, + JSON.stringify({ + ...current, + [who]: { + ...whoRemoveStaleEras, + [era]: validator, + }, + }) + ); +}; diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index 600045cac1..e6d0beb820 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -13,6 +13,7 @@ import { rmCommas, setStateWithRef } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { MaxSupportedPayoutEras, defaultPayoutsContext } from './defaults'; import type { PayoutsContextInterface } from './types'; +import { getLocalEraExposure, setLocalEraExposure } from './Utils'; const worker = new Worker(); @@ -46,18 +47,42 @@ export const PayoutsProvider = ({ }; }; + // Determine whether to keep processing a next era, or move onto checking for pending payouts. + const shouldContinueProcessing = (era: BigNumber, endEra: BigNumber) => { + // If there are more exposures to process, check next era. + if (new BigNumber(era).isGreaterThan(endEra)) + checkEra(new BigNumber(era).minus(1)); + // If all exposures have been processed, check for pending payouts. + else if (new BigNumber(era).isEqualTo(endEra)) { + checkPendingPayouts(); + } + }; + // Fetch exposure data for an era, and pass the data to the worker to determine the validator the // active account was backing in that era. const checkEra = async (era: BigNumber) => { if (!activeAccount) return; - const exposures = await fetchEraStakers(era.toString()); - worker.postMessage({ - task: 'processEraForExposure', - era: String(era), - who: activeAccount, - networkName: network.name, - exposures, - }); + + const localEraExposure = getLocalEraExposure( + network.name, + era.toString(), + activeAccount + ); + + // Bypass worker if local exposure data is available. + if (localEraExposure) { + // Continue processing eras, or move onto reward processing. + shouldContinueProcessing(era, getErasToCheck().endEra); + } else { + const exposures = await fetchEraStakers(era.toString()); + worker.postMessage({ + task: 'processEraForExposure', + era: String(era), + who: activeAccount, + networkName: network.name, + exposures, + }); + } }; // Handle worker message on completed exposure check. @@ -73,18 +98,20 @@ export const PayoutsProvider = ({ if (networkName !== network.name || who !== activeAccount) return; // eslint-disable-next-line - const { era, exposed, exposeValidator } = data; + const { era, exposedValidator } = data; const { endEra } = getErasToCheck(); - // TODO: process received era exposure data results and set in local storage. + // Store received era exposure data results in local storage. + setLocalEraExposure( + networkName, + era, + who, + exposedValidator, + endEra.toString() + ); - // If there are more exposures to process, check next era. - if (new BigNumber(era).isGreaterThan(endEra)) - checkEra(new BigNumber(era).minus(1)); - // If all exposures have been processed, check for pending payouts. - else if (new BigNumber(era).isEqualTo(endEra)) { - checkPendingPayouts(); - } + // Continue processing eras, or move onto reward processing. + shouldContinueProcessing(era, endEra); } }; From a03fe3c799c22d46bef54b665544043ffdb6ed30 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Thu, 24 Aug 2023 12:27:41 +0700 Subject: [PATCH 309/435] get validator from era_exposure processing --- src/contexts/Payouts/index.tsx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index e6d0beb820..acfb3ee784 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -118,7 +118,7 @@ export const PayoutsProvider = ({ // Start pending payout process once exposure data is fetched. // eslint-disable-next-line const checkPendingPayouts = async () => { - if (!api) return; + if (!api || !activeAccount) return; // Fetch reward data and determine whether there are pending payouts. const { startEra, endEra } = getErasToCheck(); @@ -139,8 +139,12 @@ export const PayoutsProvider = ({ const eraValidatorReward = new BigNumber(rmCommas(result[0].toHuman())); const eraRewardPoints = result[1].toHuman(); - // TODO: get validator from earlier exposure data processing. - const validator = 0; + // Get validator from era exposure data. Falls back no null if it cannot be found. + const validator = getLocalEraExposure( + network.name, + currentEra.toString(), + activeAccount + ); const total = new BigNumber(rmCommas(eraRewardPoints.total)); const individual = new BigNumber( From 2ddd5e5b701562c9436c81fe9c9024f8e4c8d7a4 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Thu, 24 Aug 2023 12:49:40 +0700 Subject: [PATCH 310/435] add validator share, TODOs for nominator share --- src/contexts/Payouts/defaults.ts | 2 +- src/contexts/Payouts/index.tsx | 45 ++++++++++++++++---------------- src/contexts/Payouts/types.ts | 10 +++++-- 3 files changed, 32 insertions(+), 25 deletions(-) diff --git a/src/contexts/Payouts/defaults.ts b/src/contexts/Payouts/defaults.ts index 0266dda2c0..48c643243e 100644 --- a/src/contexts/Payouts/defaults.ts +++ b/src/contexts/Payouts/defaults.ts @@ -5,7 +5,7 @@ import type { PayoutsContextInterface } from './types'; export const defaultPayoutsContext: PayoutsContextInterface = { payoutsSynced: 'unsynced', - payouts: null, + pendingPayouts: null, }; export const MaxSupportedPayoutEras = 7; diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index acfb3ee784..76d5c8fff9 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -4,7 +4,7 @@ import React, { useState, useEffect, useRef } from 'react'; import { useStaking } from 'contexts/Staking'; import { useApi } from 'contexts/Api'; -import type { AnyApi, Sync, AnyJson } from 'types'; +import type { AnyApi, Sync } from 'types'; import { useConnect } from 'contexts/Connect'; import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import { useNetworkMetrics } from 'contexts/Network'; @@ -12,7 +12,7 @@ import Worker from 'workers/stakers?worker'; import { rmCommas, setStateWithRef } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { MaxSupportedPayoutEras, defaultPayoutsContext } from './defaults'; -import type { PayoutsContextInterface } from './types'; +import type { EraPayout, PayoutsContextInterface } from './types'; import { getLocalEraExposure, setLocalEraExposure } from './Utils'; const worker = new Worker(); @@ -28,7 +28,9 @@ export const PayoutsProvider = ({ const { isNominating, fetchEraStakers } = useStaking(); // Store active accont's payout state. - const [payouts, setPayouts] = useState<AnyJson>(null); + const [pendingPayouts, setPendingPayouts] = useState<EraPayout[] | null>( + null + ); // Track whether payouts have been fetched. const [payoutsSynced, setPayoutsSynced] = useState<Sync>('unsynced'); @@ -135,8 +137,9 @@ export const PayoutsProvider = ({ } currentEra = startEra; + const eraPayouts: EraPayout[] = []; for (const result of await Promise.all(calls)) { - const eraValidatorReward = new BigNumber(rmCommas(result[0].toHuman())); + const eraTotalPayout = new BigNumber(rmCommas(result[0].toHuman())); const eraRewardPoints = result[1].toHuman(); // Get validator from era exposure data. Falls back no null if it cannot be found. @@ -146,30 +149,28 @@ export const PayoutsProvider = ({ activeAccount ); - const total = new BigNumber(rmCommas(eraRewardPoints.total)); - const individual = new BigNumber( + // Calculate the validator's share of total era payout. + const totalRewardPoints = new BigNumber(rmCommas(eraRewardPoints.total)); + const validatorRewardPoints = new BigNumber( rmCommas(eraRewardPoints.individual?.[validator] || '0') ); - const share = individual.isZero() + const validatorShare = validatorRewardPoints.isZero() ? new BigNumber(0) - : individual.dividedBy(total); - const payout = eraValidatorReward.multipliedBy(share); + : validatorRewardPoints.dividedBy(totalRewardPoints); - console.log( - 'era ', - currentEra.toString(), - ' payout: ', - payout.toString() - ); + // eslint-disable-next-line + const validatorReward = validatorShare.multipliedBy(eraTotalPayout); - // TODO: Store payout data in local stoarage. + // TODO: deduct validator commission from `validatorReward` to get leftover. (needs more worker data). + // TODO: calculate user share (individual `exposure.other.value` / exposure.total`). (needs more worker data). + // TODO: Calculate `activeAccount`'s share of the validator's payout: user share * leftover. + // TODO: Store payout data in local stoarage and push real reward to `payouts`. currentEra = currentEra.minus(1); + eraPayouts.push({ era: currentEra, reward: new BigNumber(0) }); } - // TODO: commit all payout data to state. - setPayouts({}); - + setPendingPayouts(eraPayouts); setStateWithRef('synced', setPayoutsSynced, payoutsSyncedRef); }; @@ -188,15 +189,15 @@ export const PayoutsProvider = ({ // Clear payout state on network / active account change. useEffectIgnoreInitial(() => { - if (payouts !== null) { - setPayouts(null); + if (pendingPayouts !== null) { + setPendingPayouts(null); setStateWithRef('unsynced', setPayoutsSynced, payoutsSyncedRef); } }, [network, activeAccount]); return ( <PayoutsContext.Provider - value={{ payouts, payoutsSynced: payoutsSyncedRef.current }} + value={{ pendingPayouts, payoutsSynced: payoutsSyncedRef.current }} > {children} </PayoutsContext.Provider> diff --git a/src/contexts/Payouts/types.ts b/src/contexts/Payouts/types.ts index dda74a5462..78dd39ac1f 100644 --- a/src/contexts/Payouts/types.ts +++ b/src/contexts/Payouts/types.ts @@ -1,9 +1,15 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import type { AnyJson, Sync } from 'types'; +import type BigNumber from 'bignumber.js'; +import type { Sync } from 'types'; export type PayoutsContextInterface = { payoutsSynced: Sync; - payouts: AnyJson; + pendingPayouts: EraPayout[] | null; }; + +export interface EraPayout { + era: BigNumber; + reward: BigNumber; +} From 408fb1c7692b64f7fd70db82055e06c522c4d280 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Thu, 24 Aug 2023 14:09:58 +0700 Subject: [PATCH 311/435] factor multiple validator exposures per era --- src/contexts/Payouts/Utils.ts | 18 +++++- src/contexts/Payouts/index.tsx | 100 +++++++++++++++++++++------------ src/contexts/Payouts/types.ts | 2 +- src/workers/stakers.ts | 26 +++++++-- 4 files changed, 101 insertions(+), 45 deletions(-) diff --git a/src/contexts/Payouts/Utils.ts b/src/contexts/Payouts/Utils.ts index 7b89fa5959..4efa605006 100644 --- a/src/contexts/Payouts/Utils.ts +++ b/src/contexts/Payouts/Utils.ts @@ -4,6 +4,18 @@ import BigNumber from 'bignumber.js'; import type { AnyJson, NetworkName } from 'types'; +// Check if local exposure entry exists for an era. +export const hasLocalEraExposure = ( + network: NetworkName, + era: string, + who: string +) => { + const current = JSON.parse( + localStorage.getItem(`${network}_era_exposures`) || '{}' + ); + return !!current?.[who]?.[era]; +}; + // Get local exposure entry for an era. export const getLocalEraExposure = ( network: NetworkName, @@ -13,7 +25,7 @@ export const getLocalEraExposure = ( const current = JSON.parse( localStorage.getItem(`${network}_era_exposures`) || '{}' ); - return current?.[who]?.[era] || null; + return current?.[who]?.[era] || []; }; // Set local exposure entry for an era. @@ -21,7 +33,7 @@ export const setLocalEraExposure = ( network: NetworkName, era: string, who: string, - validator: string | null, + exposedValidators: Record<string, string> | null, endEra: string ) => { const current = JSON.parse( @@ -40,7 +52,7 @@ export const setLocalEraExposure = ( ...current, [who]: { ...whoRemoveStaleEras, - [era]: validator, + [era]: exposedValidators, }, }) ); diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index 76d5c8fff9..05647ac3c9 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -4,7 +4,7 @@ import React, { useState, useEffect, useRef } from 'react'; import { useStaking } from 'contexts/Staking'; import { useApi } from 'contexts/Api'; -import type { AnyApi, Sync } from 'types'; +import type { AnyApi, AnyJson, Sync } from 'types'; import { useConnect } from 'contexts/Connect'; import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; import { useNetworkMetrics } from 'contexts/Network'; @@ -13,7 +13,11 @@ import { rmCommas, setStateWithRef } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { MaxSupportedPayoutEras, defaultPayoutsContext } from './defaults'; import type { EraPayout, PayoutsContextInterface } from './types'; -import { getLocalEraExposure, setLocalEraExposure } from './Utils'; +import { + getLocalEraExposure, + hasLocalEraExposure, + setLocalEraExposure, +} from './Utils'; const worker = new Worker(); @@ -65,14 +69,8 @@ export const PayoutsProvider = ({ const checkEra = async (era: BigNumber) => { if (!activeAccount) return; - const localEraExposure = getLocalEraExposure( - network.name, - era.toString(), - activeAccount - ); - // Bypass worker if local exposure data is available. - if (localEraExposure) { + if (hasLocalEraExposure(network.name, era.toString(), activeAccount)) { // Continue processing eras, or move onto reward processing. shouldContinueProcessing(era, getErasToCheck().endEra); } else { @@ -100,7 +98,7 @@ export const PayoutsProvider = ({ if (networkName !== network.name || who !== activeAccount) return; // eslint-disable-next-line - const { era, exposedValidator } = data; + const { era, exposedValidators } = data; const { endEra } = getErasToCheck(); // Store received era exposure data results in local storage. @@ -108,7 +106,7 @@ export const PayoutsProvider = ({ networkName, era, who, - exposedValidator, + exposedValidators, endEra.toString() ); @@ -125,12 +123,30 @@ export const PayoutsProvider = ({ // Fetch reward data and determine whether there are pending payouts. const { startEra, endEra } = getErasToCheck(); let currentEra = startEra; + const calls = []; while (currentEra.isGreaterThanOrEqualTo(endEra)) { + const thisEra = currentEra; + + const validatorPrefsCalls = + Object.keys( + getLocalEraExposure( + network.name, + currentEra.toString(), + activeAccount + ) + ).map((validator: AnyJson) => + api.query.staking.erasValidatorPrefs<AnyApi>( + thisEra.toString(), + validator + ) + ) || []; + calls.push( Promise.all([ - api.query.staking.erasValidatorReward<AnyApi>(currentEra.toString()), - api.query.staking.erasRewardPoints<AnyApi>(currentEra.toString()), + api.query.staking.erasValidatorReward<AnyApi>(thisEra.toString()), + api.query.staking.erasRewardPoints<AnyApi>(thisEra.toString()), + ...validatorPrefsCalls, ]) ); currentEra = currentEra.minus(1); @@ -138,36 +154,48 @@ export const PayoutsProvider = ({ currentEra = startEra; const eraPayouts: EraPayout[] = []; - for (const result of await Promise.all(calls)) { - const eraTotalPayout = new BigNumber(rmCommas(result[0].toHuman())); - const eraRewardPoints = result[1].toHuman(); + for (const [reward, points, ...prefs] of await Promise.all(calls)) { + const eraTotalPayout = new BigNumber(rmCommas(reward.toHuman())); + const eraRewardPoints = points.toHuman(); - // Get validator from era exposure data. Falls back no null if it cannot be found. - const validator = getLocalEraExposure( + const exposedValidators = getLocalEraExposure( network.name, currentEra.toString(), activeAccount ); - // Calculate the validator's share of total era payout. - const totalRewardPoints = new BigNumber(rmCommas(eraRewardPoints.total)); - const validatorRewardPoints = new BigNumber( - rmCommas(eraRewardPoints.individual?.[validator] || '0') - ); - const validatorShare = validatorRewardPoints.isZero() - ? new BigNumber(0) - : validatorRewardPoints.dividedBy(totalRewardPoints); - - // eslint-disable-next-line - const validatorReward = validatorShare.multipliedBy(eraTotalPayout); - - // TODO: deduct validator commission from `validatorReward` to get leftover. (needs more worker data). - // TODO: calculate user share (individual `exposure.other.value` / exposure.total`). (needs more worker data). - // TODO: Calculate `activeAccount`'s share of the validator's payout: user share * leftover. - - // TODO: Store payout data in local stoarage and push real reward to `payouts`. + const i = 0; + for (const pref of prefs) { + const eraValidatorPrefs = pref.toHuman(); + const commission = new BigNumber( + eraValidatorPrefs.commission.replace(/%/g, '') + ).multipliedBy(0.01); + + // Get validator from era exposure data. Falls back no null if it cannot be found. + const validator = Object.keys(exposedValidators)?.[i] || ''; + const share = (Object.values(exposedValidators)?.[i] as string) || '0'; + + // Calculate the validator's share of total era payout. + const totalRewardPoints = new BigNumber( + rmCommas(eraRewardPoints.total) + ); + const validatorRewardPoints = new BigNumber( + rmCommas(eraRewardPoints.individual?.[validator] || '0') + ); + const validatorShare = validatorRewardPoints.isZero() + ? new BigNumber(0) + : validatorRewardPoints.dividedBy(totalRewardPoints); + + const validatorReward = validatorShare.multipliedBy(eraTotalPayout); + const validatorCommission = validatorReward.multipliedBy(commission); + const leftoverReward = validatorReward.minus(validatorCommission); + const whoPayout = leftoverReward.multipliedBy(share); + + // TODO: Store payout data in local stoarage. + + eraPayouts.push({ era: currentEra, payout: whoPayout }); + } currentEra = currentEra.minus(1); - eraPayouts.push({ era: currentEra, reward: new BigNumber(0) }); } setPendingPayouts(eraPayouts); diff --git a/src/contexts/Payouts/types.ts b/src/contexts/Payouts/types.ts index 78dd39ac1f..e2cc4b72cb 100644 --- a/src/contexts/Payouts/types.ts +++ b/src/contexts/Payouts/types.ts @@ -11,5 +11,5 @@ export type PayoutsContextInterface = { export interface EraPayout { era: BigNumber; - reward: BigNumber; + payout: BigNumber; } diff --git a/src/workers/stakers.ts b/src/workers/stakers.ts index ff5f0daaeb..db4e5fede6 100644 --- a/src/workers/stakers.ts +++ b/src/workers/stakers.ts @@ -37,20 +37,33 @@ const processEraForExposure = (data: AnyJson) => { let exposed = false; // If exposed, the validator that was backed. - let exposedValidator: string | null = null; + const exposedValidators: Record<string, string> = {}; // Check exposed as validator or nominator. exposures.every(({ keys, val }: any) => { const validator = keys[1]; + const others = val?.others ?? []; + const own = val?.own || 0; + const total = val?.total || 0; + if (validator === who) { - exposedValidator = validator; + const share = new BigNumber(own).isZero() + ? '0' + : new BigNumber(own).dividedBy(total).toString(); + + exposedValidators[validator] = share; exposed = true; return false; } - const others = val?.others ?? []; + const inOthers = others.find((o: AnyJson) => o.who === who); + if (inOthers) { - exposedValidator = validator; + const share = new BigNumber(inOthers.value).isZero() + ? '0' + : new BigNumber(inOthers.value).dividedBy(total).toString(); + + exposedValidators[validator] = share; exposed = true; return false; } @@ -61,9 +74,12 @@ const processEraForExposure = (data: AnyJson) => { networkName, era, exposed, - exposedValidator, + exposedValidators: Object.keys(exposedValidators).length + ? exposedValidators + : null, task, who, + whoShare: '0', }; }; From 38e9eb9c7bf942b241fe28cc5963d5e0a9ae67fe Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Thu, 24 Aug 2023 14:10:47 +0700 Subject: [PATCH 312/435] add TODOs --- src/contexts/Payouts/index.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index 05647ac3c9..ce06816b1f 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -191,7 +191,8 @@ export const PayoutsProvider = ({ const leftoverReward = validatorReward.minus(validatorCommission); const whoPayout = leftoverReward.multipliedBy(share); - // TODO: Store payout data in local stoarage. + // TODO: Store payout data in local storage. + // TODO: Could store these payouts better, e.g. put all payouts for an era under one key. eraPayouts.push({ era: currentEra, payout: whoPayout }); } From 6f66fc0c891088f6013e01933541f54a59839c91 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Thu, 24 Aug 2023 14:12:36 +0700 Subject: [PATCH 313/435] add comments --- src/contexts/Payouts/index.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index ce06816b1f..eab742dcc4 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -186,9 +186,12 @@ export const PayoutsProvider = ({ ? new BigNumber(0) : validatorRewardPoints.dividedBy(totalRewardPoints); + // Deduct validator commission from it's share. const validatorReward = validatorShare.multipliedBy(eraTotalPayout); const validatorCommission = validatorReward.multipliedBy(commission); const leftoverReward = validatorReward.minus(validatorCommission); + + // Determine `who`'s share of the leftover reward. const whoPayout = leftoverReward.multipliedBy(share); // TODO: Store payout data in local storage. From eec4e4e4045b293d516dc6dc335e013aeec0519f Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Thu, 24 Aug 2023 15:53:48 +0700 Subject: [PATCH 314/435] restructure to factor ledgers, add TODOs --- src/contexts/Payouts/index.tsx | 68 +++++++++++++++++++++++++--------- 1 file changed, 51 insertions(+), 17 deletions(-) diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index eab742dcc4..7c63c18367 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -124,23 +124,58 @@ export const PayoutsProvider = ({ const { startEra, endEra } = getErasToCheck(); let currentEra = startEra; + const erasValidators = []; + // Loop eras and determine validator ledgers to fetch. + while (currentEra.isGreaterThanOrEqualTo(endEra)) { + const validators = Object.keys( + getLocalEraExposure(network.name, currentEra.toString(), activeAccount) + ); + erasValidators.push(...validators); + currentEra = currentEra.minus(1); + } + // Filter out duplicate validators. + const uniqueValidators = [...new Set(erasValidators)]; + + // Fetch ledgers to determine which rewards have been claimed. + const ledgerCalls = uniqueValidators.map((validator: AnyJson) => + api.query.staking.ledger(validator) + ); + + // TODO: determine if payouts need to be calculated. Cache claimed results to local storage so + // claimed validators do not need to be fetched again. If cached, only check `claimed: false` + // and update if they have been. + // + // eslint-disable-next-line + const ledgerResults = await Promise.all(ledgerCalls); + /* + polkadot_era_payouts_claimed = { + accountAddress: { + 1176: { + validatorAddress1: true, + validatorAddress2: true, + }, + 1175: { + validatorAddress1: false, + validatorAddress1: false, + } + } + }; + */ + const calls = []; + // TODO: instead of looping eras here, loop above `polkadot_era_payouts_claimed` eras for the + // accountAddress, to only fetch unclaimed payouts. while (currentEra.isGreaterThanOrEqualTo(endEra)) { - const thisEra = currentEra; - - const validatorPrefsCalls = - Object.keys( - getLocalEraExposure( - network.name, - currentEra.toString(), - activeAccount - ) - ).map((validator: AnyJson) => - api.query.staking.erasValidatorPrefs<AnyApi>( - thisEra.toString(), - validator - ) - ) || []; + const thisEra = currentEra.toString(); + + const validatorPrefsCalls = Object.keys( + getLocalEraExposure(network.name, currentEra.toString(), activeAccount) + ).map((validator: AnyJson) => + api.query.staking.erasValidatorPrefs<AnyApi>( + thisEra.toString(), + validator + ) + ); calls.push( Promise.all([ @@ -158,6 +193,7 @@ export const PayoutsProvider = ({ const eraTotalPayout = new BigNumber(rmCommas(reward.toHuman())); const eraRewardPoints = points.toHuman(); + // TODO: use `unclaimedValidators` instead. const exposedValidators = getLocalEraExposure( network.name, currentEra.toString(), @@ -195,8 +231,6 @@ export const PayoutsProvider = ({ const whoPayout = leftoverReward.multipliedBy(share); // TODO: Store payout data in local storage. - // TODO: Could store these payouts better, e.g. put all payouts for an era under one key. - eraPayouts.push({ era: currentEra, payout: whoPayout }); } currentEra = currentEra.minus(1); From 64b79acdaa7c708c4b0cf6e677b084a42fbd8f17 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Thu, 24 Aug 2023 16:08:12 +0700 Subject: [PATCH 315/435] add comments --- src/contexts/Payouts/index.tsx | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index 7c63c18367..9d6500675a 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -120,12 +120,10 @@ export const PayoutsProvider = ({ const checkPendingPayouts = async () => { if (!api || !activeAccount) return; - // Fetch reward data and determine whether there are pending payouts. + // Loop eras and determine validator ledgers to fetch. + const erasValidators = []; const { startEra, endEra } = getErasToCheck(); let currentEra = startEra; - - const erasValidators = []; - // Loop eras and determine validator ledgers to fetch. while (currentEra.isGreaterThanOrEqualTo(endEra)) { const validators = Object.keys( getLocalEraExposure(network.name, currentEra.toString(), activeAccount) @@ -137,18 +135,16 @@ export const PayoutsProvider = ({ const uniqueValidators = [...new Set(erasValidators)]; // Fetch ledgers to determine which rewards have been claimed. - const ledgerCalls = uniqueValidators.map((validator: AnyJson) => - api.query.staking.ledger(validator) + // eslint-disable-next-line + const ledgerResults = await Promise.all(uniqueValidators.map((validator: AnyJson) => + api.query.staking.ledger(validator) + ) ); - // TODO: determine if payouts need to be calculated. Cache claimed results to local storage so // claimed validators do not need to be fetched again. If cached, only check `claimed: false` // and update if they have been. - // - // eslint-disable-next-line - const ledgerResults = await Promise.all(ledgerCalls); /* - polkadot_era_payouts_claimed = { + polkadot_payouts_claimed = { accountAddress: { 1176: { validatorAddress1: true, @@ -163,13 +159,16 @@ export const PayoutsProvider = ({ */ const calls = []; - // TODO: instead of looping eras here, loop above `polkadot_era_payouts_claimed` eras for the + // TODO: instead of looping eras here, loop above `polkadot_payouts_claimed` eras for the // accountAddress, to only fetch unclaimed payouts. while (currentEra.isGreaterThanOrEqualTo(endEra)) { const thisEra = currentEra.toString(); + // TODO: iterate through new local storage era validators where claimed is false. Can + // also construct a new array for line 213, 214: call `getLocalEraExposure` again to get + // `share`. const validatorPrefsCalls = Object.keys( - getLocalEraExposure(network.name, currentEra.toString(), activeAccount) + getLocalEraExposure(network.name, thisEra.toString(), activeAccount) ).map((validator: AnyJson) => api.query.staking.erasValidatorPrefs<AnyApi>( thisEra.toString(), @@ -193,7 +192,7 @@ export const PayoutsProvider = ({ const eraTotalPayout = new BigNumber(rmCommas(reward.toHuman())); const eraRewardPoints = points.toHuman(); - // TODO: use `unclaimedValidators` instead. + // TODO: this will be replaced. const exposedValidators = getLocalEraExposure( network.name, currentEra.toString(), From 74f4ad3165b8c76a3dab782a1a251c313eb75103 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Thu, 24 Aug 2023 16:11:16 +0700 Subject: [PATCH 316/435] comment --- src/contexts/Payouts/index.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index 9d6500675a..b25846053d 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -134,15 +134,15 @@ export const PayoutsProvider = ({ // Filter out duplicate validators. const uniqueValidators = [...new Set(erasValidators)]; - // Fetch ledgers to determine which rewards have been claimed. + // Fetch ledgers to determine which rewards have been claimed (use local data if exists). // eslint-disable-next-line const ledgerResults = await Promise.all(uniqueValidators.map((validator: AnyJson) => api.query.staking.ledger(validator) ) ); // TODO: determine if payouts need to be calculated. Cache claimed results to local storage so - // claimed validators do not need to be fetched again. If cached, only check `claimed: false` - // and update if they have been. + // claimed validator ledgers do not need to be fetched again. If cached, only check `claimed: + // false` and update if they have been. /* polkadot_payouts_claimed = { accountAddress: { From 372fb2cb33385dc6d70e0f5e6a87fc2545dcabdd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Aug 2023 21:33:25 +0000 Subject: [PATCH 317/435] Bump chart.js from 4.3.3 to 4.4.0 Bumps [chart.js](https://github.com/chartjs/Chart.js) from 4.3.3 to 4.4.0. - [Release notes](https://github.com/chartjs/Chart.js/releases) - [Commits](https://github.com/chartjs/Chart.js/compare/v4.3.3...v4.4.0) --- updated-dependencies: - dependency-name: chart.js dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 767791db65..a87e5f17c7 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "bignumber.js": "^9.1.1", "bn.js": "^5.2.1", "buffer": "^6.0.3", - "chart.js": "^4.3.3", + "chart.js": "^4.4.0", "date-fns": "^2.29.3", "framer-motion": "^10.16.1", "i18next": "^23.4.5", diff --git a/yarn.lock b/yarn.lock index 063b1712fb..9973f97f05 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2780,10 +2780,10 @@ chalk@^4.0.0, chalk@^4.1.1: ansi-styles "^4.1.0" supports-color "^7.1.0" -chart.js@^4.3.3: - version "4.3.3" - resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-4.3.3.tgz#dcd98afadf9fcfa5219e72ace5912092ea48fd36" - integrity sha512-aTk7pBw+x6sQYhon/NR3ikfUJuym/LdgpTlgZRe2PaEhjUMKBKyNaFCMVRAyTEWYFNO7qRu7iQVqOw/OqzxZxQ== +chart.js@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-4.4.0.tgz#df843fdd9ec6bd88d7f07e2b95348d221bd2698c" + integrity sha512-vQEj6d+z0dcsKLlQvbKIMYFHd3t8W/7L2vfJIbYcfyPcRx92CsHqECpueN8qVGNlKyDcr5wBrYAYKnfu/9Q1hQ== dependencies: "@kurkle/color" "^0.3.0" From a096f6e7e0a5083e6cb6503c97ce05dd063b470a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Aug 2023 21:34:02 +0000 Subject: [PATCH 318/435] Bump typescript from 5.1.6 to 5.2.2 Bumps [typescript](https://github.com/Microsoft/TypeScript) from 5.1.6 to 5.2.2. - [Release notes](https://github.com/Microsoft/TypeScript/releases) - [Commits](https://github.com/Microsoft/TypeScript/commits) --- updated-dependencies: - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index a87e5f17c7..f9d7d30f0a 100644 --- a/package.json +++ b/package.json @@ -86,7 +86,7 @@ "prettier": "^3.0.2", "prettier-plugin-organize-imports": "^3.2.3", "sass": "^1.66.1", - "typescript": "^5.1.6", + "typescript": "^5.2.2", "vite": "^4.4.9", "vite-bundle-visualizer": "^0.10.0", "vite-plugin-checker": "^0.6.2", diff --git a/yarn.lock b/yarn.lock index 9973f97f05..88c5795f5d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5778,10 +5778,10 @@ typeforce@^1.11.5: resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.18.0.tgz#d7416a2c5845e085034d70fcc5b6cc4a90edbfdc" integrity sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g== -typescript@^5.1.6: - version "5.1.6" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274" - integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA== +typescript@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" + integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== ufo@^1.1.2: version "1.1.2" From e1c187651bf23a6305f56585f6939c6ab9b370f3 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Fri, 25 Aug 2023 12:43:09 +0700 Subject: [PATCH 319/435] tidy up, fixes --- src/contexts/Payouts/Utils.ts | 3 ++- src/contexts/Payouts/index.tsx | 44 +++++++++++++++++++++------------- src/contexts/Payouts/types.ts | 7 ++++++ src/workers/stakers.ts | 24 +++++++++++++++---- 4 files changed, 56 insertions(+), 22 deletions(-) diff --git a/src/contexts/Payouts/Utils.ts b/src/contexts/Payouts/Utils.ts index 4efa605006..4730f5b30e 100644 --- a/src/contexts/Payouts/Utils.ts +++ b/src/contexts/Payouts/Utils.ts @@ -3,6 +3,7 @@ import BigNumber from 'bignumber.js'; import type { AnyJson, NetworkName } from 'types'; +import type { LocalValidatorExposure } from './types'; // Check if local exposure entry exists for an era. export const hasLocalEraExposure = ( @@ -33,7 +34,7 @@ export const setLocalEraExposure = ( network: NetworkName, era: string, who: string, - exposedValidators: Record<string, string> | null, + exposedValidators: Record<string, LocalValidatorExposure> | null, endEra: string ) => { const current = JSON.parse( diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index b25846053d..65582ff641 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -12,7 +12,11 @@ import Worker from 'workers/stakers?worker'; import { rmCommas, setStateWithRef } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { MaxSupportedPayoutEras, defaultPayoutsContext } from './defaults'; -import type { EraPayout, PayoutsContextInterface } from './types'; +import type { + EraPayout, + LocalValidatorExposure, + PayoutsContextInterface, +} from './types'; import { getLocalEraExposure, hasLocalEraExposure, @@ -132,14 +136,15 @@ export const PayoutsProvider = ({ currentEra = currentEra.minus(1); } // Filter out duplicate validators. + // eslint-disable-next-line const uniqueValidators = [...new Set(erasValidators)]; // Fetch ledgers to determine which rewards have been claimed (use local data if exists). // eslint-disable-next-line - const ledgerResults = await Promise.all(uniqueValidators.map((validator: AnyJson) => - api.query.staking.ledger(validator) - ) - ); + // const ledgerResults = await Promise.all(uniqueValidators.map((validator: AnyJson) => + // api.query.staking.ledger(validator) + // ) + // ); // TODO: determine if payouts need to be calculated. Cache claimed results to local storage so // claimed validator ledgers do not need to be fetched again. If cached, only check `claimed: // false` and update if they have been. @@ -159,6 +164,7 @@ export const PayoutsProvider = ({ */ const calls = []; + currentEra = startEra; // TODO: instead of looping eras here, loop above `polkadot_payouts_claimed` eras for the // accountAddress, to only fetch unclaimed payouts. while (currentEra.isGreaterThanOrEqualTo(endEra)) { @@ -202,13 +208,19 @@ export const PayoutsProvider = ({ const i = 0; for (const pref of prefs) { const eraValidatorPrefs = pref.toHuman(); + const commission = new BigNumber( eraValidatorPrefs.commission.replace(/%/g, '') ).multipliedBy(0.01); // Get validator from era exposure data. Falls back no null if it cannot be found. const validator = Object.keys(exposedValidators)?.[i] || ''; - const share = (Object.values(exposedValidators)?.[i] as string) || '0'; + const localExposed: LocalValidatorExposure[] | null = + Object.values(exposedValidators); + + const staked = new BigNumber(localExposed?.[i]?.staked || '0'); + const total = new BigNumber(localExposed?.[i]?.total || '0'); + const isValidator = localExposed?.[i]?.isValidator || false; // Calculate the validator's share of total era payout. const totalRewardPoints = new BigNumber( @@ -217,20 +229,20 @@ export const PayoutsProvider = ({ const validatorRewardPoints = new BigNumber( rmCommas(eraRewardPoints.individual?.[validator] || '0') ); - const validatorShare = validatorRewardPoints.isZero() - ? new BigNumber(0) - : validatorRewardPoints.dividedBy(totalRewardPoints); + const avail = eraTotalPayout + .multipliedBy(validatorRewardPoints) + .dividedBy(totalRewardPoints); - // Deduct validator commission from it's share. - const validatorReward = validatorShare.multipliedBy(eraTotalPayout); - const validatorCommission = validatorReward.multipliedBy(commission); - const leftoverReward = validatorReward.minus(validatorCommission); + const valCut = commission.multipliedBy(avail); - // Determine `who`'s share of the leftover reward. - const whoPayout = leftoverReward.multipliedBy(share); + const rewardValue = avail + .minus(valCut) + .multipliedBy(staked) + .dividedBy(total) + .plus(isValidator ? valCut : 0); // TODO: Store payout data in local storage. - eraPayouts.push({ era: currentEra, payout: whoPayout }); + eraPayouts.push({ era: currentEra, payout: rewardValue }); } currentEra = currentEra.minus(1); } diff --git a/src/contexts/Payouts/types.ts b/src/contexts/Payouts/types.ts index e2cc4b72cb..9059f01d6e 100644 --- a/src/contexts/Payouts/types.ts +++ b/src/contexts/Payouts/types.ts @@ -13,3 +13,10 @@ export interface EraPayout { era: BigNumber; payout: BigNumber; } + +export interface LocalValidatorExposure { + staked: string; + total: string; + share: string; + isValidator: boolean; +} diff --git a/src/workers/stakers.ts b/src/workers/stakers.ts index db4e5fede6..86ca41652d 100644 --- a/src/workers/stakers.ts +++ b/src/workers/stakers.ts @@ -9,6 +9,7 @@ import type { Staker, } from 'contexts/Staking/types'; import type { AnyJson } from 'types'; +import type { LocalValidatorExposure } from 'contexts/Payouts/types'; import type { DataInitialiseExposures } from './types'; // eslint-disable-next-line no-restricted-globals @@ -37,7 +38,7 @@ const processEraForExposure = (data: AnyJson) => { let exposed = false; // If exposed, the validator that was backed. - const exposedValidators: Record<string, string> = {}; + const exposedValidators: Record<string, LocalValidatorExposure> = {}; // Check exposed as validator or nominator. exposures.every(({ keys, val }: any) => { @@ -45,13 +46,20 @@ const processEraForExposure = (data: AnyJson) => { const others = val?.others ?? []; const own = val?.own || 0; const total = val?.total || 0; + const isValidator = validator === who; - if (validator === who) { + if (isValidator) { const share = new BigNumber(own).isZero() ? '0' : new BigNumber(own).dividedBy(total).toString(); - exposedValidators[validator] = share; + exposedValidators[validator] = { + staked: own, + total, + share, + isValidator, + }; + exposed = true; return false; } @@ -63,8 +71,15 @@ const processEraForExposure = (data: AnyJson) => { ? '0' : new BigNumber(inOthers.value).dividedBy(total).toString(); - exposedValidators[validator] = share; + exposedValidators[validator] = { + staked: inOthers.value, + total, + share, + isValidator, + }; exposed = true; + + // TODO: only return false if processing fast unstake. return false; } return true; @@ -79,7 +94,6 @@ const processEraForExposure = (data: AnyJson) => { : null, task, who, - whoShare: '0', }; }; From e6a53efd3dd59a98ab7418a1a666fc8107fefcbb Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Fri, 25 Aug 2023 12:43:43 +0700 Subject: [PATCH 320/435] rm comments --- src/contexts/Payouts/index.tsx | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index 65582ff641..e0b496d01b 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -100,8 +100,6 @@ export const PayoutsProvider = ({ // Exit early if network or account conditions have changed. const { networkName, who } = data; if (networkName !== network.name || who !== activeAccount) return; - - // eslint-disable-next-line const { era, exposedValidators } = data; const { endEra } = getErasToCheck(); @@ -120,7 +118,6 @@ export const PayoutsProvider = ({ }; // Start pending payout process once exposure data is fetched. - // eslint-disable-next-line const checkPendingPayouts = async () => { if (!api || !activeAccount) return; @@ -140,7 +137,6 @@ export const PayoutsProvider = ({ const uniqueValidators = [...new Set(erasValidators)]; // Fetch ledgers to determine which rewards have been claimed (use local data if exists). - // eslint-disable-next-line // const ledgerResults = await Promise.all(uniqueValidators.map((validator: AnyJson) => // api.query.staking.ledger(validator) // ) From d23186ddb77bd70224e0886051a90711bf7126f0 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Fri, 25 Aug 2023 15:49:48 +0700 Subject: [PATCH 321/435] bump cloud --- package.json | 4 +- yarn.lock | 307 +++++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 287 insertions(+), 24 deletions(-) diff --git a/package.json b/package.json index f9d7d30f0a..915fadda41 100644 --- a/package.json +++ b/package.json @@ -26,8 +26,8 @@ "@fortawesome/react-fontawesome": "^0.2.0", "@ledgerhq/hw-transport-webhid": "^6.27.19", "@polkadot-cloud/community": "^0.1.10", - "@polkadot-cloud/core": "^0.1.1", - "@polkadot-cloud/react": "^0.1.7", + "@polkadot-cloud/core": "^0.1.4", + "@polkadot-cloud/react": "^0.1.8", "@polkadot-cloud/utils": "^0.0.4", "@polkadot/api": "^10.9.1", "@polkadot/keyring": "^12.1.1", diff --git a/yarn.lock b/yarn.lock index 88c5795f5d..00e7e71e8c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1507,23 +1507,21 @@ resolved "https://registry.npmjs.org/@polkadot-cloud/community/-/community-0.1.10.tgz#d2a99190c0a89a67275264084e6e750269990986" integrity sha512-VT38rqOvORuYdPLigS8UNwvitoc0DFZWEazsvHxz9bTnPBL/7M3LujWXO14OSGw+FTvfz4RzPwovmW4u7RoT/Q== -"@polkadot-cloud/core@^0.1.1", "@polkadot-cloud/core@^0.1.2": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@polkadot-cloud/core/-/core-0.1.2.tgz#67cff1b96bbf13576bb6d307a55c1825fb435ad7" - integrity sha512-L2WpBPp04238aXZX2w44GHz5ozILPLuHibsvTWgswSmZPJuF5SVkEQnCKLXvPjP2o5RlpbiDl0rYUd+F9Qo7HA== - -"@polkadot-cloud/react@^0.1.7": - version "0.1.7" - resolved "https://registry.yarnpkg.com/@polkadot-cloud/react/-/react-0.1.7.tgz#badf6f0e958e0265501321182985a46f96f3b7ec" - integrity sha512-CkKLxxzWcChc46tSSLrrTXoHBjIHhcPDVAQI0bTeVSU4z36avxMwSXz1HjYIEh1RVdJLajonf69fWJtvzgFbgg== +"@polkadot-cloud/core@^0.1.4": + version "0.1.4" + resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.1.4.tgz#852aac2d599c4e6b49d1e2b93310d4709c108b14" + integrity sha512-Tgs1h9Qlw0LtNFJ7CDZuQKd9TIYThhQRltQFIVZHxEzo7zgQ/a8uAmGa6S4y8CTLyVq+16HUiDy8sK9/KXBbKQ== dependencies: - "@polkadot-cloud/core" "^0.1.2" - "@polkadot-cloud/utils" "^0.0.1" + gulp-livereload "^4.0.2" + tiny-lr "^2.0.0" -"@polkadot-cloud/utils@^0.0.1": - version "0.0.1" - resolved "https://registry.yarnpkg.com/@polkadot-cloud/utils/-/utils-0.0.1.tgz#24b0d569c4637e4d539ba3a2c669339144162133" - integrity sha512-YWSQ/sPRwVcO1LBJAVS7E7TI+dYpVY/Oe/sDwLThMVaVXzaIx18tBBhoEXXU85a8N0bXJHYVOMIWoCnAem4ZJw== +"@polkadot-cloud/react@^0.1.8": + version "0.1.8" + resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.8.tgz#2fcb82df912d75dfb779c82f8987be0302674143" + integrity sha512-AlNNinQdx3hXEVo1sWHFguFt5+PDraIp/mARFAPdNRxsejsosrl4IpFmE8CEOQQwea49Jo0bZbFkuJVUlq4KtA== + dependencies: + "@polkadot-cloud/core" "^0.1.4" + "@polkadot-cloud/utils" "^0.0.4" "@polkadot-cloud/utils@^0.0.4": version "0.0.4" @@ -2368,6 +2366,13 @@ ansi-escapes@^4.3.0: dependencies: type-fest "^0.21.3" +ansi-gray@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" + integrity sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw== + dependencies: + ansi-wrap "0.1.0" + ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" @@ -2392,6 +2397,11 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== +ansi-wrap@0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" + integrity sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw== + anymatch@~3.1.2: version "3.1.3" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" @@ -2642,6 +2652,16 @@ bn.js@^5.1.1, bn.js@^5.2.1: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== +body@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/body/-/body-5.1.0.tgz#e4ba0ce410a46936323367609ecb4e6553125069" + integrity sha512-chUsBxGRtuElD6fmw1gHLpvnKdVLK302peeFa9ZqAEk8TyzZ3fygLyUEDDPTJvL9+Bor0dIwn6ePOsRM2y0zQQ== + dependencies: + continuable-cache "^0.3.1" + error "^7.0.0" + raw-body "~1.1.0" + safe-json-parse "~1.0.1" + bplist-parser@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" @@ -2717,6 +2737,11 @@ bundle-name@^3.0.0: dependencies: run-applescript "^5.0.0" +bytes@1: + version "1.0.0" + resolved "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" + integrity sha512-/x68VkHLeTl3/Ll8IvxdwzhrT+IyKc52e/oyHhA2RwqPqswSnjVbSddfPRwAsJtbilMAPSRWwAlpxdYsSWOTKQ== + cac@^6.7.14: version "6.7.14" resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" @@ -2763,7 +2788,7 @@ chai@^4.3.7: pathval "^1.1.1" type-detect "^4.0.5" -chalk@^2.0.0: +chalk@^2.0.0, chalk@^2.4.1: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -2829,6 +2854,30 @@ cliui@^8.0.1: strip-ansi "^6.0.1" wrap-ansi "^7.0.0" +clone-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" + integrity sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g== + +clone-stats@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" + integrity sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag== + +clone@^2.1.1: + version "2.1.2" + resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== + +cloneable-readable@^1.0.0: + version "1.1.3" + resolved "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz#120a00cb053bfb63a222e709f9683ea2e11d8cec" + integrity sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ== + dependencies: + inherits "^2.0.1" + process-nextick-args "^2.0.0" + readable-stream "^2.3.5" + color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -2853,6 +2902,11 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +color-support@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + commander@^11.0.0: version "11.0.0" resolved "https://registry.yarnpkg.com/commander/-/commander-11.0.0.tgz#43e19c25dbedc8256203538e8d7e9346877a6f67" @@ -2883,6 +2937,11 @@ confusing-browser-globals@^1.0.10: resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA== +continuable-cache@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz#bd727a7faed77e71ff3985ac93351a912733ad0f" + integrity sha512-TF30kpKhTH8AGCG3dut0rdd/19B7Z+qCnrMoBLpyQu/2drZdNrrpcjPEoJeSVsQM+8KmWG5O56oPDjSSUsuTyA== + convert-source-map@^1.1.0, convert-source-map@^1.7.0: version "1.9.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" @@ -2895,6 +2954,11 @@ core-js-compat@^3.31.0: dependencies: browserslist "^4.21.9" +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + cosmiconfig@^8.1.3: version "8.2.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.2.0.tgz#f7d17c56a590856cd1e7cee98734dca272b0d8fd" @@ -2961,7 +3025,7 @@ date-fns@^2.29.3: dependencies: "@babel/runtime" "^7.21.0" -debug@^3.2.7: +debug@^3.1.0, debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== @@ -3107,6 +3171,13 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" +error@^7.0.0: + version "7.2.1" + resolved "https://registry.npmjs.org/error/-/error-7.2.1.tgz#eab21a4689b5f684fc83da84a0e390de82d94894" + integrity sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA== + dependencies: + string-template "~0.2.1" + es-abstract@^1.19.0, es-abstract@^1.20.4: version "1.21.2" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" @@ -3576,6 +3647,16 @@ execa@^7.1.1: signal-exit "^3.0.7" strip-final-newline "^3.0.0" +fancy-log@^1.3.2: + version "1.3.3" + resolved "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7" + integrity sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw== + dependencies: + ansi-gray "^0.1.1" + color-support "^1.1.3" + parse-node-version "^1.0.0" + time-stamp "^1.0.0" + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -3614,6 +3695,20 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" +faye-websocket@^0.11.3: + version "0.11.4" + resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + dependencies: + websocket-driver ">=0.5.1" + +faye-websocket@~0.10.0: + version "0.10.0" + resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + integrity sha512-Xhj93RXbMSq8urNCUq4p9l0P6hnySJ/7YNRhYNug0bLOuii7pKO7xQFb5mx9xZXWCar88pLPb805PvUkwrLZpQ== + dependencies: + websocket-driver ">=0.5.1" + fetch-blob@^3.1.2, fetch-blob@^3.1.4: version "3.2.0" resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" @@ -3903,6 +3998,19 @@ graphemer@^1.4.0: resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== +gulp-livereload@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/gulp-livereload/-/gulp-livereload-4.0.2.tgz#fc8a75c7511cd65afd2202cbcdc8bb0f8dde377b" + integrity sha512-InmaR50Xl1xB1WdEk4mrUgGHv3VhhlRLrx7u60iY5AAer90FlK95KXitPcGGQoi28zrUJM189d/h6+V470Ncgg== + dependencies: + chalk "^2.4.1" + debug "^3.1.0" + fancy-log "^1.3.2" + lodash.assign "^4.2.0" + readable-stream "^3.0.6" + tiny-lr "^1.1.1" + vinyl "^2.2.0" + has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" @@ -3982,6 +4090,11 @@ html-parse-stringify@^3.0.1: dependencies: void-elements "3.1.0" +http-parser-js@>=0.5.1: + version "0.5.8" + resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" + integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== + human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" @@ -4042,7 +4155,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -4280,6 +4393,11 @@ isarray@^2.0.5: resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -4429,6 +4547,16 @@ lit@^2.7.5: lit-element "^3.3.0" lit-html "^2.7.0" +livereload-js@^2.3.0: + version "2.4.0" + resolved "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz#447c31cf1ea9ab52fc20db615c5ddf678f78009c" + integrity sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw== + +livereload-js@^3.3.1: + version "3.4.1" + resolved "https://registry.npmjs.org/livereload-js/-/livereload-js-3.4.1.tgz#ba90fbc708ed1b9a024bb89c4ee12c96ea03d66f" + integrity sha512-5MP0uUeVCec89ZbNOT/i97Mc+q3SxXmiUGhRFOTmhrGPn//uWVQdCvcLJDy64MSBR5MidFdOR7B9viumoavy6g== + local-pkg@^0.4.3: version "0.4.3" resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963" @@ -4448,6 +4576,11 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" +lodash.assign@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" + integrity sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw== + lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" @@ -4665,7 +4798,7 @@ npm-run-path@^5.1.0: dependencies: path-key "^4.0.0" -object-assign@^4.0.1, object-assign@^4.1.1: +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== @@ -4849,6 +4982,11 @@ parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" +parse-node-version@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" + integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== + path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -4982,6 +5120,11 @@ pretty-format@^29.5.0: ansi-styles "^5.0.0" react-is "^18.0.0" +process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + prop-types@^15.7.2, prop-types@^15.8.1: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" @@ -5006,11 +5149,26 @@ qrcode-generator@1.4.4: resolved "https://registry.yarnpkg.com/qrcode-generator/-/qrcode-generator-1.4.4.tgz#63f771224854759329a99048806a53ed278740e7" integrity sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw== +qs@^6.4.0: + version "6.11.2" + resolved "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" + integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== + dependencies: + side-channel "^1.0.4" + queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +raw-body@~1.1.0: + version "1.1.7" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz#1d027c2bfa116acc6623bca8f00016572a87d425" + integrity sha512-WmJJU2e9Y6M5UzTOkHaM7xJGAPQD8PNzx3bAd2+uhZAim6wDk6dAZxPVYLF67XhbR4hmKGh33Lpmh4XWrCH5Mg== + dependencies: + bytes "1" + string_decoder "0.10" + rc-slider@^10.2.1: version "10.2.1" resolved "https://registry.yarnpkg.com/rc-slider/-/rc-slider-10.2.1.tgz#9b571d19f740adcacdde271f44901a47717fd8da" @@ -5125,7 +5283,20 @@ react@^18.2.0: dependencies: loose-envify "^1.1.0" -readable-stream@^3.6.0: +readable-stream@^2.3.5: + version "2.3.8" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.6, readable-stream@^3.6.0: version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== @@ -5205,6 +5376,16 @@ regjsparser@^0.9.1: dependencies: jsesc "~0.5.0" +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== + +replace-ext@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz#2d6d996d04a15855d967443631dd5f77825b016a" + integrity sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw== + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -5327,11 +5508,21 @@ safe-array-concat@^1.0.0: has-symbols "^1.0.3" isarray "^2.0.5" -safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-json-parse@~1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz#3e76723e38dfdda13c9b1d29a1e07ffee4b30b57" + integrity sha512-o0JmTu17WGUaUOHa1l0FPGXKBfijbxK6qoHzlkihsDXxzBHvJcA7zgviKR92Xs841rX9pK16unfphLq0/KqX7A== + safe-regex-test@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" @@ -5468,6 +5659,11 @@ std-env@^3.3.3: resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.3.3.tgz#a54f06eb245fdcfef53d56f3c0251f1d5c3d01fe" integrity sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg== +string-template@~0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" + integrity sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw== + string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -5518,6 +5714,11 @@ string.prototype.trimstart@^1.0.6: define-properties "^1.1.4" es-abstract "^1.20.4" +string_decoder@0.10: + version "0.10.31" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== + string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" @@ -5525,6 +5726,13 @@ string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -5638,11 +5846,40 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== +time-stamp@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" + integrity sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw== + tiny-invariant@^1.1.0: version "1.3.1" resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.1.tgz#8560808c916ef02ecfd55e66090df23a4b7aa642" integrity sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw== +tiny-lr@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz#9fa547412f238fedb068ee295af8b682c98b2aab" + integrity sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA== + dependencies: + body "^5.1.0" + debug "^3.1.0" + faye-websocket "~0.10.0" + livereload-js "^2.3.0" + object-assign "^4.1.0" + qs "^6.4.0" + +tiny-lr@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/tiny-lr/-/tiny-lr-2.0.0.tgz#863659d7ce1ed201a117d8197d7f8b9a27bdc085" + integrity sha512-f6nh0VMRvhGx4KCeK1lQ/jaL0Zdb5WdR+Jk8q9OSUQnaSDxAEGH1fgqLZ+cMl5EW3F2MGnCsalBO1IsnnogW1Q== + dependencies: + body "^5.1.0" + debug "^3.1.0" + faye-websocket "^0.11.3" + livereload-js "^3.3.1" + object-assign "^4.1.0" + qs "^6.4.0" + tinybench@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.5.0.tgz#4711c99bbf6f3e986f67eb722fed9cddb3a68ba5" @@ -5846,11 +6083,23 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -util-deprecate@^1.0.1: +util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== +vinyl@^2.2.0: + version "2.2.1" + resolved "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz#23cfb8bbab5ece3803aa2c0a1eb28af7cbba1974" + integrity sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw== + dependencies: + clone "^2.1.1" + clone-buffer "^1.0.0" + clone-stats "^1.0.0" + cloneable-readable "^1.0.0" + remove-trailing-separator "^1.0.1" + replace-ext "^1.0.0" + vite-bundle-visualizer@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/vite-bundle-visualizer/-/vite-bundle-visualizer-0.10.0.tgz#bdeafe5f8e69eb4c157174ae8d852279272e3010" @@ -6024,6 +6273,20 @@ webrtc-adapter@^7.2.1: rtcpeerconnection-shim "^1.2.15" sdp "^2.12.0" +websocket-driver@>=0.5.1: + version "0.7.4" + resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" From 90b782087fd56f836905100862293d2367f192d9 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Fri, 25 Aug 2023 16:13:39 +0700 Subject: [PATCH 322/435] use cloud --- package.json | 2 +- src/contexts/Api/index.tsx | 2 +- src/contexts/Balances/index.tsx | 2 +- src/contexts/Bonded/index.tsx | 2 +- src/contexts/Connect/index.tsx | 2 +- src/contexts/FastUnstake/index.tsx | 2 +- src/contexts/Help/index.tsx | 2 +- src/contexts/Migrate/index.tsx | 2 +- src/contexts/Network/index.tsx | 2 +- src/contexts/Overlay/index.tsx | 2 +- src/contexts/Pools/ActivePools/index.tsx | 2 +- src/contexts/Pools/BondedPools/index.tsx | 2 +- src/contexts/Pools/PoolMembers/index.tsx | 2 +- src/contexts/Pools/PoolMemberships/index.tsx | 2 +- src/contexts/Pools/PoolsConfig/index.tsx | 2 +- src/contexts/Proxies/index.tsx | 2 +- src/contexts/Setup/index.tsx | 2 +- src/contexts/Staking/index.tsx | 2 +- src/contexts/Subscan/index.tsx | 2 +- src/contexts/TransferOptions/index.tsx | 2 +- src/contexts/TxMeta/index.tsx | 2 +- src/contexts/UI/index.tsx | 2 +- src/contexts/Validators/index.tsx | 2 +- .../Hooks/useEffectIgnoreInitial/index.tsx | 19 ------------------- src/modals/Accounts/index.tsx | 2 +- src/modals/Connect/index.tsx | 2 +- src/pages/Pools/Home/index.tsx | 2 +- yarn.lock | 8 ++++---- 28 files changed, 30 insertions(+), 49 deletions(-) delete mode 100644 src/library/Hooks/useEffectIgnoreInitial/index.tsx diff --git a/package.json b/package.json index 915fadda41..29c97b46a7 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "@ledgerhq/hw-transport-webhid": "^6.27.19", "@polkadot-cloud/community": "^0.1.10", "@polkadot-cloud/core": "^0.1.4", - "@polkadot-cloud/react": "^0.1.8", + "@polkadot-cloud/react": "0.1.13", "@polkadot-cloud/utils": "^0.0.4", "@polkadot/api": "^10.9.1", "@polkadot/keyring": "^12.1.1", diff --git a/src/contexts/Api/index.tsx b/src/contexts/Api/index.tsx index 1fa4dd498e..a94c2dbbd5 100644 --- a/src/contexts/Api/index.tsx +++ b/src/contexts/Api/index.tsx @@ -30,7 +30,7 @@ import type { NetworkState, } from 'contexts/Api/types'; import type { AnyApi, NetworkName } from 'types'; -import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; import * as defaults from './defaults'; export const APIProvider = ({ children }: { children: React.ReactNode }) => { diff --git a/src/contexts/Balances/index.tsx b/src/contexts/Balances/index.tsx index b20f290825..5d482cb944 100644 --- a/src/contexts/Balances/index.tsx +++ b/src/contexts/Balances/index.tsx @@ -14,7 +14,7 @@ import React, { useRef, useState } from 'react'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; import type { AnyApi, MaybeAccount } from 'types'; -import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; import { getLedger } from './Utils'; import * as defaults from './defaults'; import type { diff --git a/src/contexts/Bonded/index.tsx b/src/contexts/Bonded/index.tsx index 38d1ae58f4..62c9908849 100644 --- a/src/contexts/Bonded/index.tsx +++ b/src/contexts/Bonded/index.tsx @@ -12,7 +12,7 @@ import React, { useEffect, useRef, useState } from 'react'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; import type { AnyApi, MaybeAccount } from 'types'; -import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; import * as defaults from './defaults'; import type { BondedAccount, BondedContextInterface } from './types'; diff --git a/src/contexts/Connect/index.tsx b/src/contexts/Connect/index.tsx index b1df4a1502..0c8670c133 100644 --- a/src/contexts/Connect/index.tsx +++ b/src/contexts/Connect/index.tsx @@ -27,7 +27,7 @@ import { getLocalVaultAccounts, } from 'contexts/Hardware/Utils'; import type { AnyApi, MaybeAccount, NetworkName } from 'types'; -import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; import { useImportExtension } from './Hooks/useImportExtension'; import { extensionIsLocal, diff --git a/src/contexts/FastUnstake/index.tsx b/src/contexts/FastUnstake/index.tsx index c8dec05ccf..f5f7429c3d 100644 --- a/src/contexts/FastUnstake/index.tsx +++ b/src/contexts/FastUnstake/index.tsx @@ -15,7 +15,7 @@ import { useNetworkMetrics } from 'contexts/Network'; import { useStaking } from 'contexts/Staking'; import type { AnyApi, AnyJson, MaybeAccount } from 'types'; import Worker from 'workers/stakers?worker'; -import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; import { useNominationStatus } from 'library/Hooks/useNominationStatus'; import { defaultFastUnstakeContext, defaultMeta } from './defaults'; import type { diff --git a/src/contexts/Help/index.tsx b/src/contexts/Help/index.tsx index c95cf15269..270a1efb92 100644 --- a/src/contexts/Help/index.tsx +++ b/src/contexts/Help/index.tsx @@ -3,7 +3,7 @@ import React, { useState } from 'react'; import type { MaybeString } from 'types'; -import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; import * as defaults from './defaults'; import type { HelpContextInterface, diff --git a/src/contexts/Migrate/index.tsx b/src/contexts/Migrate/index.tsx index 17d7af1a12..93e5174906 100644 --- a/src/contexts/Migrate/index.tsx +++ b/src/contexts/Migrate/index.tsx @@ -7,7 +7,7 @@ import { AppVersion } from 'consts'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; import { useUi } from 'contexts/UI'; -import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; export const MigrateProvider = ({ children, diff --git a/src/contexts/Network/index.tsx b/src/contexts/Network/index.tsx index 630bf5c7d7..a47b7ef193 100644 --- a/src/contexts/Network/index.tsx +++ b/src/contexts/Network/index.tsx @@ -5,7 +5,7 @@ import { setStateWithRef } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import React, { useRef, useState } from 'react'; import type { AnyApi, AnyJson } from 'types'; -import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; import { useApi } from '../Api'; import * as defaults from './defaults'; import type { diff --git a/src/contexts/Overlay/index.tsx b/src/contexts/Overlay/index.tsx index 907865b8bc..e154244df4 100644 --- a/src/contexts/Overlay/index.tsx +++ b/src/contexts/Overlay/index.tsx @@ -4,7 +4,7 @@ import type { RefObject } from 'react'; import React, { useRef, useState } from 'react'; import { setStateWithRef } from '@polkadot-cloud/utils'; -import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; import type { ModalConfig, CanvasConfig, diff --git a/src/contexts/Pools/ActivePools/index.tsx b/src/contexts/Pools/ActivePools/index.tsx index 56a833814c..6ecb8c2c6a 100644 --- a/src/contexts/Pools/ActivePools/index.tsx +++ b/src/contexts/Pools/ActivePools/index.tsx @@ -11,7 +11,7 @@ import type { } from 'contexts/Pools/types'; import { useStaking } from 'contexts/Staking'; import type { AnyApi, AnyJson, Sync } from 'types'; -import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; import { useApi } from '../../Api'; import { useConnect } from '../../Connect'; import { useBondedPools } from '../BondedPools'; diff --git a/src/contexts/Pools/BondedPools/index.tsx b/src/contexts/Pools/BondedPools/index.tsx index 37d7d52e53..6204aa15df 100644 --- a/src/contexts/Pools/BondedPools/index.tsx +++ b/src/contexts/Pools/BondedPools/index.tsx @@ -12,7 +12,7 @@ import type { } from 'contexts/Pools/types'; import { useStaking } from 'contexts/Staking'; import type { AnyApi, AnyMetaBatch, Fn, MaybeAccount } from 'types'; -import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; import { useApi } from '../../Api'; import { usePoolsConfig } from '../PoolsConfig'; import { defaultBondedPoolsContext } from './defaults'; diff --git a/src/contexts/Pools/PoolMembers/index.tsx b/src/contexts/Pools/PoolMembers/index.tsx index 97e66af937..56958cb829 100644 --- a/src/contexts/Pools/PoolMembers/index.tsx +++ b/src/contexts/Pools/PoolMembers/index.tsx @@ -7,7 +7,7 @@ import { useConnect } from 'contexts/Connect'; import { usePlugins } from 'contexts/Plugins'; import type { PoolMember, PoolMemberContext } from 'contexts/Pools/types'; import type { AnyApi, AnyMetaBatch, Fn, MaybeAccount, Sync } from 'types'; -import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; import { useApi } from '../../Api'; import { defaultPoolMembers } from './defaults'; diff --git a/src/contexts/Pools/PoolMemberships/index.tsx b/src/contexts/Pools/PoolMemberships/index.tsx index 418958bc24..656f832762 100644 --- a/src/contexts/Pools/PoolMemberships/index.tsx +++ b/src/contexts/Pools/PoolMemberships/index.tsx @@ -11,7 +11,7 @@ import type { PoolMembershipsContextState, } from 'contexts/Pools/types'; import type { AnyApi, Fn } from 'types'; -import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; import { useApi } from '../../Api'; import { useConnect } from '../../Connect'; import * as defaults from './defaults'; diff --git a/src/contexts/Pools/PoolsConfig/index.tsx b/src/contexts/Pools/PoolsConfig/index.tsx index b32c669884..40735d4c40 100644 --- a/src/contexts/Pools/PoolsConfig/index.tsx +++ b/src/contexts/Pools/PoolsConfig/index.tsx @@ -12,7 +12,7 @@ import type { PoolsConfigContextState, } from 'contexts/Pools/types'; import type { AnyApi } from 'types'; -import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; import { useApi } from '../../Api'; import * as defaults from './defaults'; diff --git a/src/contexts/Proxies/index.tsx b/src/contexts/Proxies/index.tsx index 758df1056f..6031186e72 100644 --- a/src/contexts/Proxies/index.tsx +++ b/src/contexts/Proxies/index.tsx @@ -17,7 +17,7 @@ import { isSupportedProxy } from 'config/proxies'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; import type { AnyApi, MaybeAccount } from 'types'; -import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; import * as defaults from './defaults'; import type { Delegates, diff --git a/src/contexts/Setup/index.tsx b/src/contexts/Setup/index.tsx index b98bef8fa4..dfcebcfc6e 100644 --- a/src/contexts/Setup/index.tsx +++ b/src/contexts/Setup/index.tsx @@ -9,7 +9,7 @@ import { import React, { useState } from 'react'; import { usePoolMemberships } from 'contexts/Pools/PoolMemberships'; import type { BondFor, MaybeAccount } from 'types'; -import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; import { useApi } from '../Api'; import { useConnect } from '../Connect'; import { useStaking } from '../Staking'; diff --git a/src/contexts/Staking/index.tsx b/src/contexts/Staking/index.tsx index fda8294da9..a8d12356f3 100644 --- a/src/contexts/Staking/index.tsx +++ b/src/contexts/Staking/index.tsx @@ -23,7 +23,7 @@ import type { import type { AnyApi, AnyJson, MaybeAccount } from 'types'; import Worker from 'workers/stakers?worker'; import type { ResponseInitialiseExposures } from 'workers/types'; -import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; import { useApi } from '../Api'; import { useBonded } from '../Bonded'; import { useConnect } from '../Connect'; diff --git a/src/contexts/Subscan/index.tsx b/src/contexts/Subscan/index.tsx index ead9c69834..9585e48567 100644 --- a/src/contexts/Subscan/index.tsx +++ b/src/contexts/Subscan/index.tsx @@ -16,7 +16,7 @@ import { sortNonZeroPayouts } from 'library/Graphs/Utils'; import { useErasToTimeLeft } from 'library/Hooks/useErasToTimeLeft'; import { locales } from 'locale'; import type { AnyApi, AnySubscan } from 'types'; -import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; import { useApi } from '../Api'; import { useConnect } from '../Connect'; import { usePlugins } from '../Plugins'; diff --git a/src/contexts/TransferOptions/index.tsx b/src/contexts/TransferOptions/index.tsx index 90f3662b2e..1944a59eab 100644 --- a/src/contexts/TransferOptions/index.tsx +++ b/src/contexts/TransferOptions/index.tsx @@ -11,7 +11,7 @@ import { useConnect } from 'contexts/Connect'; import { useNetworkMetrics } from 'contexts/Network'; import { usePoolMemberships } from 'contexts/Pools/PoolMemberships'; import type { MaybeAccount } from 'types'; -import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; import * as defaults from './defaults'; import type { TransferOptions, TransferOptionsContextInterface } from './types'; diff --git a/src/contexts/TxMeta/index.tsx b/src/contexts/TxMeta/index.tsx index f82ca17001..34fe0191d1 100644 --- a/src/contexts/TxMeta/index.tsx +++ b/src/contexts/TxMeta/index.tsx @@ -9,7 +9,7 @@ import { useConnect } from 'contexts/Connect'; import { useStaking } from 'contexts/Staking'; import { useTransferOptions } from 'contexts/TransferOptions'; import type { AnyJson, MaybeAccount } from 'types'; -import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; import * as defaults from './defaults'; import type { TxMetaContextInterface } from './types'; diff --git a/src/contexts/UI/index.tsx b/src/contexts/UI/index.tsx index 2afef8371a..9dc384ca7f 100644 --- a/src/contexts/UI/index.tsx +++ b/src/contexts/UI/index.tsx @@ -8,7 +8,7 @@ import { SideMenuStickyThreshold } from 'consts'; import { useBalances } from 'contexts/Balances'; import type { ImportedAccount } from 'contexts/Connect/types'; import { useActivePools } from 'contexts/Pools/ActivePools'; -import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; import { useApi } from '../Api'; import { useConnect } from '../Connect'; import { useNetworkMetrics } from '../Network'; diff --git a/src/contexts/Validators/index.tsx b/src/contexts/Validators/index.tsx index 702f52c950..b2208bc327 100644 --- a/src/contexts/Validators/index.tsx +++ b/src/contexts/Validators/index.tsx @@ -13,7 +13,7 @@ import type { ValidatorsContextInterface, } from 'contexts/Validators/types'; import type { AnyApi, Fn, Sync } from 'types'; -import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; import { useApi } from '../Api'; import { useBonded } from '../Bonded'; import { useConnect } from '../Connect'; diff --git a/src/library/Hooks/useEffectIgnoreInitial/index.tsx b/src/library/Hooks/useEffectIgnoreInitial/index.tsx deleted file mode 100644 index 73f7ecf1dc..0000000000 --- a/src/library/Hooks/useEffectIgnoreInitial/index.tsx +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: GPL-3.0-only - -import { useEffect, useRef } from 'react'; -import type { AnyApi, AnyFunction } from 'types'; - -export const useEffectIgnoreInitial = (fn: AnyFunction, deps: AnyApi[]) => { - const isInitial = useRef<boolean>(true); - - useEffect( - () => { - if (!isInitial.current) { - fn(); - } - isInitial.current = false; - }, - deps ? [...deps] : undefined - ); -}; diff --git a/src/modals/Accounts/index.tsx b/src/modals/Accounts/index.tsx index 8f2de0921c..6ab7b18a8f 100644 --- a/src/modals/Accounts/index.tsx +++ b/src/modals/Accounts/index.tsx @@ -17,7 +17,7 @@ import { useConnect } from 'contexts/Connect'; import { useExtensions } from 'contexts/Extensions'; import { usePoolMemberships } from 'contexts/Pools/PoolMemberships'; import { useProxies } from 'contexts/Proxies'; -import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; import { useOverlay } from 'contexts/Overlay'; import { AccountButton } from './Account'; import { Delegates } from './Delegates'; diff --git a/src/modals/Connect/index.tsx b/src/modals/Connect/index.tsx index 7b304adb4f..c1c040b6ee 100644 --- a/src/modals/Connect/index.tsx +++ b/src/modals/Connect/index.tsx @@ -19,7 +19,7 @@ import { useExtensions } from 'contexts/Extensions'; import { Close } from 'library/Modal/Close'; import { SelectItems } from 'library/SelectItems'; import type { AnyFunction } from 'types'; -import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; import { useOverlay } from 'contexts/Overlay'; import { Extension } from './Extension'; import { Ledger } from './Ledger'; diff --git a/src/pages/Pools/Home/index.tsx b/src/pages/Pools/Home/index.tsx index 61b2d3b14b..c52fd6b1b0 100644 --- a/src/pages/Pools/Home/index.tsx +++ b/src/pages/Pools/Home/index.tsx @@ -4,7 +4,7 @@ import { PageRow, PageTitle, RowSection } from '@polkadot-cloud/react'; import { useEffect, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; -import type { PageTitleTabProps } from '@polkadot-cloud/react/core/types'; +import type { PageTitleTabProps } from '@polkadot-cloud/react/base/types'; import { useConnect } from 'contexts/Connect'; import { usePlugins } from 'contexts/Plugins'; import { useActivePools } from 'contexts/Pools/ActivePools'; diff --git a/yarn.lock b/yarn.lock index 00e7e71e8c..633047d850 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1515,10 +1515,10 @@ gulp-livereload "^4.0.2" tiny-lr "^2.0.0" -"@polkadot-cloud/react@^0.1.8": - version "0.1.8" - resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.8.tgz#2fcb82df912d75dfb779c82f8987be0302674143" - integrity sha512-AlNNinQdx3hXEVo1sWHFguFt5+PDraIp/mARFAPdNRxsejsosrl4IpFmE8CEOQQwea49Jo0bZbFkuJVUlq4KtA== +"@polkadot-cloud/react@0.1.13": + version "0.1.13" + resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.13.tgz#821e18b8fa47b3a2490a3ec3f0d112f9a9dd4a64" + integrity sha512-lDfh4biNyT7GI03pUDjrQwdNsTw5MxXR/qgpwxA411UmQqg702Aiuzpsjfi2Wgix9A03o2hNvOpXd8TZj0p1Bw== dependencies: "@polkadot-cloud/core" "^0.1.4" "@polkadot-cloud/utils" "^0.0.4" From 3db4b948e941f9a61017f7f1177ebbaf21e58d0f Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Fri, 25 Aug 2023 16:58:55 +0700 Subject: [PATCH 323/435] overlay to polkadot cloud --- package.json | 2 +- src/Providers.tsx | 2 +- src/contexts/Overlay/defaults.tsx | 48 --- src/contexts/Overlay/index.tsx | 218 ----------- src/contexts/Overlay/types.ts | 78 ---- src/library/AccountInput/index.tsx | 2 +- src/library/ErrorBoundary/index.tsx | 16 +- src/library/GenerateNominations/index.tsx | 2 +- src/library/Headers/Connect.tsx | 2 +- src/library/Import/NoAccounts.tsx | 2 +- src/library/ListItem/Labels/JoinPool.tsx | 2 +- src/library/ListItem/Labels/Metrics.tsx | 2 +- src/library/Modal/Close.tsx | 2 +- src/library/Modal/Title.tsx | 2 +- src/library/Pool/index.tsx | 2 +- src/library/SideMenu/index.tsx | 2 +- src/library/SubmitTx/ManualSign/Ledger.tsx | 2 +- src/library/SubmitTx/index.tsx | 2 +- .../ValidatorList/Validator/Default.tsx | 2 +- src/library/ValidatorList/index.tsx | 2 +- src/modals/AccountPoolRoles/index.tsx | 2 +- src/modals/Accounts/Account.tsx | 2 +- src/modals/Accounts/index.tsx | 6 +- src/modals/BalanceTest/index.tsx | 2 +- src/modals/Bio/index.tsx | 2 +- src/modals/Bond/index.tsx | 2 +- src/modals/ChangeNominations/index.tsx | 2 +- src/modals/ChangePoolRoles/index.tsx | 2 +- src/modals/ChooseLanguage/index.tsx | 2 +- src/modals/ClaimReward/index.tsx | 2 +- src/modals/Connect/Ledger.tsx | 2 +- src/modals/Connect/ReadOnly.tsx | 2 +- src/modals/Connect/Vault.tsx | 2 +- src/modals/Connect/index.tsx | 6 +- src/modals/DismissTips/index.tsx | 2 +- src/modals/ImportLedger/Manage.tsx | 2 +- src/modals/ImportLedger/Reset.tsx | 2 +- src/modals/ImportLedger/Splash.tsx | 2 +- src/modals/ImportLedger/index.tsx | 2 +- src/modals/ImportVault/index.tsx | 2 +- src/modals/JoinPool/index.tsx | 2 +- src/modals/ManageFastUnstake/index.tsx | 2 +- .../ManagePool/Forms/ClaimCommission.tsx | 2 +- src/modals/ManagePool/Forms/Commission.tsx | 2 +- src/modals/ManagePool/Forms/LeavePool.tsx | 2 +- .../ManagePool/Forms/SetClaimPermission.tsx | 2 +- src/modals/ManagePool/Forms/SetMetadata.tsx | 2 +- src/modals/ManagePool/Forms/SetState.tsx | 2 +- src/modals/ManagePool/index.tsx | 2 +- src/modals/Networks/index.tsx | 2 +- src/modals/Nominate/index.tsx | 2 +- src/modals/NominateFromFavorites/index.tsx | 2 +- src/modals/NominatePool/index.tsx | 2 +- src/modals/PoolNominations/index.tsx | 2 +- src/modals/SelectFavorites/index.tsx | 2 +- src/modals/Unbond/index.tsx | 2 +- src/modals/UnbondPoolMember/index.tsx | 2 +- src/modals/UnlockChunks/Forms.tsx | 2 +- src/modals/UnlockChunks/index.tsx | 2 +- src/modals/Unstake/index.tsx | 2 +- src/modals/UpdateController/index.tsx | 2 +- src/modals/UpdatePayee/index.tsx | 2 +- src/modals/UpdateReserve/index.tsx | 2 +- src/modals/ValidatorMetrics/index.tsx | 2 +- src/modals/WithdrawPoolMember/index.tsx | 2 +- src/overlay/index.tsx | 354 +----------------- src/pages/Community/Item.tsx | 2 +- .../Nominate/Active/ControllerNotStash.tsx | 2 +- src/pages/Nominate/Active/ManageBond.tsx | 2 +- .../Nominate/Active/Nominations/index.tsx | 2 +- .../Active/Status/NominationStatus.tsx | 2 +- .../Active/Status/PayoutDestinationStatus.tsx | 2 +- src/pages/Nominate/Active/UnstakePrompts.tsx | 2 +- src/pages/Nominate/Active/index.tsx | 2 +- src/pages/Overview/BalanceChart.tsx | 2 +- src/pages/Pools/Home/ClosurePrompts.tsx | 2 +- src/pages/Pools/Home/ManageBond.tsx | 2 +- src/pages/Pools/Home/ManagePool/index.tsx | 2 +- src/pages/Pools/Home/MembersList/Member.tsx | 2 +- .../Pools/Home/Status/MembershipStatus.tsx | 2 +- src/pages/Pools/Home/Status/RewardsStatus.tsx | 2 +- src/pages/Pools/Home/index.tsx | 2 +- src/pages/Pools/Roles/index.tsx | 2 +- yarn.lock | 9 +- 84 files changed, 102 insertions(+), 785 deletions(-) delete mode 100644 src/contexts/Overlay/defaults.tsx delete mode 100644 src/contexts/Overlay/index.tsx delete mode 100644 src/contexts/Overlay/types.ts diff --git a/package.json b/package.json index 29c97b46a7..a791ba71bf 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "@ledgerhq/hw-transport-webhid": "^6.27.19", "@polkadot-cloud/community": "^0.1.10", "@polkadot-cloud/core": "^0.1.4", - "@polkadot-cloud/react": "0.1.13", + "@polkadot-cloud/react": "0.1.15", "@polkadot-cloud/utils": "^0.0.4", "@polkadot/api": "^10.9.1", "@polkadot/keyring": "^12.1.1", diff --git a/src/Providers.tsx b/src/Providers.tsx index f7df0c228b..cd532d7ebc 100644 --- a/src/Providers.tsx +++ b/src/Providers.tsx @@ -35,7 +35,7 @@ import { TxMetaProvider } from 'contexts/TxMeta'; import { UIProvider } from 'contexts/UI'; import { ValidatorsProvider } from 'contexts/Validators'; import { withProviders } from 'library/Hooks'; -import { OverlayProvider } from 'contexts/Overlay'; +import { OverlayProvider } from '@polkadot-cloud/react'; // !! Provider order matters. export const Providers = withProviders( diff --git a/src/contexts/Overlay/defaults.tsx b/src/contexts/Overlay/defaults.tsx deleted file mode 100644 index 7fba07db29..0000000000 --- a/src/contexts/Overlay/defaults.tsx +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: GPL-3.0-only -/* eslint-disable @typescript-eslint/no-unused-vars */ - -import type { - CanvasConfig, - ModalConfig, - OverlayContextInterface, -} from './types'; - -export const defaultModalConfig: ModalConfig = { - key: '', - options: {}, - size: 'large', -}; - -export const defaultCanvasConfig: CanvasConfig = { - key: '', - options: {}, -}; - -export const defaultOverlayContext: OverlayContextInterface = { - openOverlayInstances: 0, - setOpenOverlayInstances: (direction, instanceType) => {}, - activeOverlayInstance: null, - setActiveOverlayInstance: (instance) => {}, - canvas: { - status: 'closed', - config: defaultCanvasConfig, - openCanvas: (config) => {}, - closeCanvas: () => {}, - setCanvasStatus: (s) => {}, - }, - modal: { - status: 'closed', - config: defaultModalConfig, - modalHeight: 0, - modalResizeCounter: 0, - modalMaxHeight: 0, - setModalResize: () => {}, - setModalHeight: () => {}, - setModalRef: (ref) => {}, - setModalHeightRef: (height) => {}, - setModalStatus: (status) => {}, - replaceModal: (config) => {}, - openModal: (config) => {}, - }, -}; diff --git a/src/contexts/Overlay/index.tsx b/src/contexts/Overlay/index.tsx deleted file mode 100644 index e154244df4..0000000000 --- a/src/contexts/Overlay/index.tsx +++ /dev/null @@ -1,218 +0,0 @@ -// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: GPL-3.0-only - -import type { RefObject } from 'react'; -import React, { useRef, useState } from 'react'; -import { setStateWithRef } from '@polkadot-cloud/utils'; -import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; -import type { - ModalConfig, - CanvasConfig, - ModalStatus, - OverlayContextInterface, - CanvasStatus, - ActiveOverlayInstance, - OverlayInstanceDirection, -} from './types'; -import { defaultModalConfig, defaultOverlayContext } from './defaults'; - -export const OverlayProvider = ({ - children, -}: { - children: React.ReactNode; -}) => { - // Store the modal status. - const [openOverlayInstances, setOpenOverlayInstancesState] = - useState<number>(0); - - const setOpenOverlayInstances = ( - direction: OverlayInstanceDirection, - instanceType: 'modal' | 'canvas' - ) => { - if (direction === 'inc') { - setOpenOverlayInstancesState(openOverlayInstances + 1); - setActiveOverlayInstance(instanceType); - } else { - setOpenOverlayInstancesState(Math.max(openOverlayInstances - 1, 0)); - } - }; - - // Store the currently active overlay instance. - const [activeOverlayInstance, setActiveOverlayInstance] = - useState<ActiveOverlayInstance>(null); - - // Store the modal status. - const [modalStatus, setModalStatusState] = useState<ModalStatus>('closed'); - const modalStatusRef = useRef(modalStatus); - - // Store modal configuration. - const [modalConfig, setModalConfigState] = - useState<ModalConfig>(defaultModalConfig); - const modalConfigRef = useRef(modalConfig); - - // Store the modal's current height. - const [modalHeight, setModalHeightState] = useState<number>(0); - - // Store the modal's resize counter. - const [modalResizeCounter, setModalResizeCounterState] = useState<number>(0); - - // Store the ref to the modal height container. Used for controlling whether height is transitionable. - const [modalRef, setModalRef] = useState<RefObject<HTMLDivElement>>(); - - // Store the ref to the modal height container. Used for controlling whether height is transitionable. - const [modalHeightRef, setModalHeightRef] = - useState<RefObject<HTMLDivElement>>(); - - // The maximum allowed height for the modal. - const modalMaxHeight = window.innerHeight * 0.8; - - const setModalConfig = (config: ModalConfig) => { - setStateWithRef(config, setModalConfigState, modalConfigRef); - }; - - const setModalStatus = (newStatus: ModalStatus) => { - setStateWithRef(newStatus, setModalStatusState, modalStatusRef); - }; - - const openModal = ({ key, size = 'large', options = {} }: ModalConfig) => { - setModalConfig({ key, size, options }); - setModalStatus('opening'); - if (!options?.replacing) { - setOpenOverlayInstances('inc', 'modal'); - } - }; - - // Closes one modal and opens another. - const replaceModal = ({ key, size = 'large', options = {} }: ModalConfig) => { - setModalStatus('replacing'); - setTimeout(() => { - openModal({ - key, - size, - options: { - ...options, - replacing: true, - }, - }); - }, 10); - }; - - const setModalHeight = (height: number, transition: boolean = true) => { - if (modalStatusRef.current === 'closed') return; - - // Ensrue transition class is removed if not transitioning. Otherwise, ensure class exists. - if (transition) transitionOn(); - else transitionOff(); - - // If transitioning, ensure the class exists. - if (transition) transitionOn(); - - // Limit maximum height to 80% of window height, and set. - const maxHeight = window.innerHeight * 0.8; - height = height > maxHeight ? maxHeight : height; - setModalHeightState(height); - - // If transitioning, remove after enough time to finish transition. - if (transition) setTimeout(() => transitionOff(), 500); - }; - - // Increments modal resize to trigger a height transition. - const setModalResize = () => { - transitionOn(); - setModalResizeCounterState(modalResizeCounter + 1); - setTimeout(() => transitionOff(), 500); - }; - - // Helper to set the transition height class of the modal. - const transitionOn = () => - modalHeightRef?.current?.classList.add('transition-height'); - - // Helper to remove the transition height class of the modal. - const transitionOff = () => - modalHeightRef?.current?.classList.remove('transition-height'); - - // Store canvas status - const [canvasStatus, setCanvasStatus] = useState<CanvasStatus>('closed'); - - // Store config options of the canvas. - const [canvasConfig, setCanvasConfig] = useState<CanvasConfig>({ - key: '', - options: {}, - }); - - // Open the canvas. - const openCanvas = ({ key, options }: CanvasConfig) => { - setCanvasStatus('open'); - setOpenOverlayInstances('inc', 'canvas'); - setCanvasConfig({ - key, - options: options || {}, - }); - }; - - // Close the canvas. - const closeCanvas = () => { - setCanvasStatus('closing'); - }; - - // Update modal height and open modal once refs are initialised. - useEffectIgnoreInitial(() => { - const height = modalRef?.current?.clientHeight || 0; - if (modalStatusRef.current === 'opening') { - setModalHeight(height, false); - if (height > 0) { - setModalStatus('open'); - } - } - }, [modalStatusRef.current, modalRef?.current]); - - // When canvas fade out completes, reset active definiton. - useEffectIgnoreInitial(() => { - if (canvasStatus === 'closed') { - setCanvasConfig({ - key: '', - options: {}, - }); - } - }, [canvasStatus]); - - return ( - <OverlayContext.Provider - value={{ - openOverlayInstances, - setOpenOverlayInstances, - activeOverlayInstance, - setActiveOverlayInstance, - canvas: { - status: canvasStatus, - config: canvasConfig, - openCanvas, - closeCanvas, - setCanvasStatus, - }, - modal: { - status: modalStatusRef.current, - config: modalConfigRef.current, - modalHeight, - modalResizeCounter, - modalMaxHeight, - setModalResize, - setModalHeight, - setModalRef, - setModalHeightRef, - setModalStatus, - openModal, - replaceModal, - }, - }} - > - {children} - </OverlayContext.Provider> - ); -}; - -export const OverlayContext = React.createContext<OverlayContextInterface>( - defaultOverlayContext -); - -export const useOverlay = () => React.useContext(OverlayContext); diff --git a/src/contexts/Overlay/types.ts b/src/contexts/Overlay/types.ts deleted file mode 100644 index 34ec4e5504..0000000000 --- a/src/contexts/Overlay/types.ts +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: GPL-3.0-only - -import type { RefObject } from 'react'; -import type React from 'react'; -import type { AnyJson } from 'types'; - -export interface OverlayContextInterface { - openOverlayInstances: number; - setOpenOverlayInstances: ( - direction: OverlayInstanceDirection, - instanceType: 'modal' | 'canvas' - ) => void; - activeOverlayInstance: ActiveOverlayInstance; - setActiveOverlayInstance: (instance: ActiveOverlayInstance) => void; - canvas: { - status: CanvasStatus; - config: CanvasConfig; - openCanvas: (config: CanvasConfig) => void; - closeCanvas: () => void; - setCanvasStatus: (status: CanvasStatus) => void; - }; - modal: { - status: ModalStatus; - config: AnyJson; - modalHeight: number; - modalResizeCounter: number; - modalMaxHeight: number; - setModalResize: () => void; - setModalHeight: (v: number) => void; - setModalRef: (v: RefObject<HTMLDivElement>) => void; - setModalHeightRef: (v: RefObject<HTMLDivElement>) => void; - setModalStatus: (status: ModalStatus) => void; - replaceModal: (config: ModalConfig) => void; - openModal: (config: ModalConfig) => void; - }; -} - -export interface CanvasProps { - canvas?: Record<string, React.FC>; - externalOverlayStatus: CanvasStatus; -} - -export interface ModalProps { - modals?: Record<string, React.FC>; - externalOverlayStatus: CanvasStatus; -} -export type OverlayProps = ModalProps & CanvasProps; - -export type OverlayInstanceDirection = 'inc' | 'dec'; - -export type ActiveOverlayInstance = 'modal' | 'canvas' | null; - -export type OverlayType = 'modal' | 'canvas' | 'prompt'; - -export type CanvasStatus = 'open' | 'closing' | 'closed'; - -export type ModalStatus = - | 'closed' - | 'opening' - | 'open' - | 'closing' - | 'replacing'; - -export type ConfigOptions = Record<string, AnyJson>; - -export type ModalSize = 'small' | 'large' | 'xl'; - -export interface ModalConfig { - key: string; - options?: ConfigOptions; - size?: ModalSize; -} - -export interface CanvasConfig { - key: string; - options?: ConfigOptions; -} diff --git a/src/library/AccountInput/index.tsx b/src/library/AccountInput/index.tsx index 7a13612ec0..90e116efe7 100644 --- a/src/library/AccountInput/index.tsx +++ b/src/library/AccountInput/index.tsx @@ -9,7 +9,7 @@ import React, { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; import { Identicon } from 'library/Identicon'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { AccountInputWrapper } from './Wrapper'; import type { AccountInputProps } from './types'; diff --git a/src/library/ErrorBoundary/index.tsx b/src/library/ErrorBoundary/index.tsx index ef03007d18..e92fa6318d 100644 --- a/src/library/ErrorBoundary/index.tsx +++ b/src/library/ErrorBoundary/index.tsx @@ -4,6 +4,7 @@ import { faBug } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { useTranslation } from 'react-i18next'; +import React from 'react'; import { Wrapper } from './Wrapper'; export const ErrorFallbackApp = ({ @@ -50,18 +51,21 @@ export const ErrorFallbackRoutes = ({ ); }; -export const ErrorFallbackModal = ({ - resetErrorBoundary, -}: { - resetErrorBoundary: () => void; -}) => { +interface ErrorFallbackProps { + resetErrorBoundary?: () => void; +} +export const ErrorFallbackModal: React.FC = (props: ErrorFallbackProps) => { + const { resetErrorBoundary } = props; const { t } = useTranslation('library'); return ( <Wrapper className="modal"> <h2>{t('errorUnknown')}</h2> <h4> - <button type="button" onClick={resetErrorBoundary}> + <button + type="button" + onClick={() => resetErrorBoundary && resetErrorBoundary()} + > {t('clickToReload')} </button> </h4> diff --git a/src/library/GenerateNominations/index.tsx b/src/library/GenerateNominations/index.tsx index f83e4fb224..7f3b6eadb8 100644 --- a/src/library/GenerateNominations/index.tsx +++ b/src/library/GenerateNominations/index.tsx @@ -23,7 +23,7 @@ import { SelectItem } from 'library/SelectItems/Item'; import { ValidatorList } from 'library/ValidatorList'; import { Wrapper } from 'pages/Overview/NetworkSats/Wrappers'; import { useStaking } from 'contexts/Staking'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import type { GenerateNominationsInnerProps, Nominations, diff --git a/src/library/Headers/Connect.tsx b/src/library/Headers/Connect.tsx index 905262120c..7fd273336b 100644 --- a/src/library/Headers/Connect.tsx +++ b/src/library/Headers/Connect.tsx @@ -5,7 +5,7 @@ import { faPlug, faWallet } from '@fortawesome/free-solid-svg-icons'; import { ButtonText } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { ConnectedAccount, HeadingWrapper } from './Wrappers'; export const Connect = () => { diff --git a/src/library/Import/NoAccounts.tsx b/src/library/Import/NoAccounts.tsx index 9ff2bf583a..dce67c8bc5 100644 --- a/src/library/Import/NoAccounts.tsx +++ b/src/library/Import/NoAccounts.tsx @@ -4,7 +4,7 @@ import { faChevronLeft } from '@fortawesome/free-solid-svg-icons'; import { ButtonSecondary } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { NoAccountsWrapper } from './Wrappers'; export const NoAccounts = ({ children, text, Icon }: any) => { diff --git a/src/library/ListItem/Labels/JoinPool.tsx b/src/library/ListItem/Labels/JoinPool.tsx index a10b93a105..1371d8a5b0 100644 --- a/src/library/ListItem/Labels/JoinPool.tsx +++ b/src/library/ListItem/Labels/JoinPool.tsx @@ -4,7 +4,7 @@ import { faCaretRight } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { useTranslation } from 'react-i18next'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const JoinPool = ({ id, diff --git a/src/library/ListItem/Labels/Metrics.tsx b/src/library/ListItem/Labels/Metrics.tsx index 080b7e502a..dabfe8a7ad 100644 --- a/src/library/ListItem/Labels/Metrics.tsx +++ b/src/library/ListItem/Labels/Metrics.tsx @@ -3,7 +3,7 @@ import { faChartLine } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import type { MetricsProps } from '../types'; export const Metrics = ({ display, address }: MetricsProps) => { diff --git a/src/library/Modal/Close.tsx b/src/library/Modal/Close.tsx index 2b94e78074..873ee947fa 100644 --- a/src/library/Modal/Close.tsx +++ b/src/library/Modal/Close.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only import { ReactComponent as CrossSVG } from 'img/cross.svg'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { CloseWrapper } from './Wrappers'; export const Close = () => { diff --git a/src/library/Modal/Title.tsx b/src/library/Modal/Title.tsx index b09e39d561..32b012c099 100644 --- a/src/library/Modal/Title.tsx +++ b/src/library/Modal/Title.tsx @@ -8,7 +8,7 @@ import type { FunctionComponent } from 'react'; import React from 'react'; import { useHelp } from 'contexts/Help'; import { ReactComponent as CrossSVG } from 'img/cross.svg'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { TitleWrapper } from './Wrappers'; interface TitleProps { diff --git a/src/library/Pool/index.tsx b/src/library/Pool/index.tsx index 8c33a3bfb9..10d9c5cd6f 100644 --- a/src/library/Pool/index.tsx +++ b/src/library/Pool/index.tsx @@ -26,7 +26,7 @@ import { Wrapper, } from 'library/ListItem/Wrappers'; import { usePoolsTabs } from 'pages/Pools/Home/context'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { JoinPool } from '../ListItem/Labels/JoinPool'; import { Members } from '../ListItem/Labels/Members'; import { PoolId } from '../ListItem/Labels/PoolId'; diff --git a/src/library/SideMenu/index.tsx b/src/library/SideMenu/index.tsx index 99ee73065a..8f962faf2d 100644 --- a/src/library/SideMenu/index.tsx +++ b/src/library/SideMenu/index.tsx @@ -21,7 +21,7 @@ import { ReactComponent as LogoGithubSVG } from 'img/logo-github.svg'; import { ReactComponent as MoonOutlineSVG } from 'img/moon-outline.svg'; import { ReactComponent as SunnyOutlineSVG } from 'img/sunny-outline.svg'; import { useOutsideAlerter } from 'library/Hooks'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { Heading } from './Heading/Heading'; import { Main } from './Main'; import { Secondary } from './Secondary'; diff --git a/src/library/SubmitTx/ManualSign/Ledger.tsx b/src/library/SubmitTx/ManualSign/Ledger.tsx index 860ddd740e..fa27d65bd1 100644 --- a/src/library/SubmitTx/ManualSign/Ledger.tsx +++ b/src/library/SubmitTx/ManualSign/Ledger.tsx @@ -13,7 +13,7 @@ import { useHelp } from 'contexts/Help'; import { useTxMeta } from 'contexts/TxMeta'; import { EstimatedTxFee } from 'library/EstimatedTxFee'; import { useLedgerLoop } from 'library/Hooks/useLedgerLoop'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import type { SubmitProps } from '../types'; export const Ledger = ({ diff --git a/src/library/SubmitTx/index.tsx b/src/library/SubmitTx/index.tsx index 6494a284c5..071fd3fc0c 100644 --- a/src/library/SubmitTx/index.tsx +++ b/src/library/SubmitTx/index.tsx @@ -8,7 +8,7 @@ import { useApi } from 'contexts/Api'; import { useBonded } from 'contexts/Bonded'; import { useConnect } from 'contexts/Connect'; import { useTxMeta } from 'contexts/TxMeta'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { Default } from './Default'; import { ManualSign } from './ManualSign'; import type { SubmitTxProps } from './types'; diff --git a/src/library/ValidatorList/Validator/Default.tsx b/src/library/ValidatorList/Validator/Default.tsx index f1c2f1d6f4..51dd759365 100644 --- a/src/library/ValidatorList/Validator/Default.tsx +++ b/src/library/ValidatorList/Validator/Default.tsx @@ -17,7 +17,7 @@ import { Separator, Wrapper, } from 'library/ListItem/Wrappers'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { useValidators } from '../../../contexts/Validators'; import { useList } from '../../List/context'; import { Blocked } from '../../ListItem/Labels/Blocked'; diff --git a/src/library/ValidatorList/index.tsx b/src/library/ValidatorList/index.tsx index c891dc7cda..8b7c936d69 100644 --- a/src/library/ValidatorList/index.tsx +++ b/src/library/ValidatorList/index.tsx @@ -21,7 +21,7 @@ import { Pagination } from 'library/List/Pagination'; import { SearchInput } from 'library/List/SearchInput'; import { Selectable } from 'library/List/Selectable'; import { Validator } from 'library/ValidatorList/Validator'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { useValidatorFilters } from '../Hooks/useValidatorFilters'; import { ListProvider, useList } from '../List/context'; import { Filters } from './Filters'; diff --git a/src/modals/AccountPoolRoles/index.tsx b/src/modals/AccountPoolRoles/index.tsx index 63185f64c4..90a99595ce 100644 --- a/src/modals/AccountPoolRoles/index.tsx +++ b/src/modals/AccountPoolRoles/index.tsx @@ -10,7 +10,7 @@ import { usePoolMemberships } from 'contexts/Pools/PoolMemberships'; import { Identicon } from 'library/Identicon'; import { Title } from 'library/Modal/Title'; import { useStatusButtons } from 'pages/Pools/Home/Status/useStatusButtons'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { ContentWrapper } from './Wrappers'; export const AccountPoolRoles = () => { diff --git a/src/modals/Accounts/Account.tsx b/src/modals/Accounts/Account.tsx index f8daaead81..fd31f4a996 100644 --- a/src/modals/Accounts/Account.tsx +++ b/src/modals/Accounts/Account.tsx @@ -12,7 +12,7 @@ import { ReactComponent as PolkadotVaultIconSVG } from 'img/polkadotVault.svg'; import { Identicon } from 'library/Identicon'; import { useApi } from 'contexts/Api'; import { useTransferOptions } from 'contexts/TransferOptions'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { AccountWrapper } from './Wrappers'; import type { AccountItemProps } from './types'; diff --git a/src/modals/Accounts/index.tsx b/src/modals/Accounts/index.tsx index 6ab7b18a8f..a6819ef2f8 100644 --- a/src/modals/Accounts/index.tsx +++ b/src/modals/Accounts/index.tsx @@ -17,8 +17,10 @@ import { useConnect } from 'contexts/Connect'; import { useExtensions } from 'contexts/Extensions'; import { usePoolMemberships } from 'contexts/Pools/PoolMemberships'; import { useProxies } from 'contexts/Proxies'; -import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; -import { useOverlay } from 'contexts/Overlay'; +import { + useEffectIgnoreInitial, + useOverlay, +} from '@polkadot-cloud/react/hooks'; import { AccountButton } from './Account'; import { Delegates } from './Delegates'; import { AccountSeparator, AccountWrapper } from './Wrappers'; diff --git a/src/modals/BalanceTest/index.tsx b/src/modals/BalanceTest/index.tsx index 2dc41de562..700ead361d 100644 --- a/src/modals/BalanceTest/index.tsx +++ b/src/modals/BalanceTest/index.tsx @@ -5,7 +5,7 @@ import { ModalPadding } from '@polkadot-cloud/react'; import { unitToPlanck } from '@polkadot-cloud/utils'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { useTxMeta } from 'contexts/TxMeta'; import { useBatchCall } from 'library/Hooks/useBatchCall'; import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; diff --git a/src/modals/Bio/index.tsx b/src/modals/Bio/index.tsx index c18b05a305..5afc2cc22c 100644 --- a/src/modals/Bio/index.tsx +++ b/src/modals/Bio/index.tsx @@ -3,7 +3,7 @@ import { ModalPadding } from '@polkadot-cloud/react'; import { Title } from 'library/Modal/Title'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { Wrapper } from './Wrapper'; export const Bio = () => { diff --git a/src/modals/Bond/index.tsx b/src/modals/Bond/index.tsx index 622f80b92a..d22ac25c66 100644 --- a/src/modals/Bond/index.tsx +++ b/src/modals/Bond/index.tsx @@ -18,7 +18,7 @@ import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; import { useTxMeta } from 'contexts/TxMeta'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const Bond = () => { const { t } = useTranslation('modals'); diff --git a/src/modals/ChangeNominations/index.tsx b/src/modals/ChangeNominations/index.tsx index 5b76756f72..df36bafa77 100644 --- a/src/modals/ChangeNominations/index.tsx +++ b/src/modals/ChangeNominations/index.tsx @@ -18,7 +18,7 @@ import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; import { useTxMeta } from 'contexts/TxMeta'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const ChangeNominations = () => { const { t } = useTranslation('modals'); diff --git a/src/modals/ChangePoolRoles/index.tsx b/src/modals/ChangePoolRoles/index.tsx index ce31768c08..e8fa4959cf 100644 --- a/src/modals/ChangePoolRoles/index.tsx +++ b/src/modals/ChangePoolRoles/index.tsx @@ -11,7 +11,7 @@ import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; import { useTxMeta } from 'contexts/TxMeta'; import { useEffect } from 'react'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { RoleChange } from './RoleChange'; import { Wrapper } from './Wrapper'; diff --git a/src/modals/ChooseLanguage/index.tsx b/src/modals/ChooseLanguage/index.tsx index 6921a1a6d5..7006a97cfc 100644 --- a/src/modals/ChooseLanguage/index.tsx +++ b/src/modals/ChooseLanguage/index.tsx @@ -7,7 +7,7 @@ import { ReactComponent as LanguageSVG } from 'img/language.svg'; import { Title } from 'library/Modal/Title'; import { availableLanguages } from 'locale'; import { changeLanguage } from 'locale/utils'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { ContentWrapper, LocaleButton } from './Wrapper'; export const ChooseLanguage = () => { diff --git a/src/modals/ClaimReward/index.tsx b/src/modals/ClaimReward/index.tsx index f966aed2b2..10eec3a1f4 100644 --- a/src/modals/ClaimReward/index.tsx +++ b/src/modals/ClaimReward/index.tsx @@ -15,7 +15,7 @@ import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; import { useTxMeta } from 'contexts/TxMeta'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const ClaimReward = () => { const { t } = useTranslation('modals'); diff --git a/src/modals/Connect/Ledger.tsx b/src/modals/Connect/Ledger.tsx index 686a7e95a0..c0c91d9379 100644 --- a/src/modals/Connect/Ledger.tsx +++ b/src/modals/Connect/Ledger.tsx @@ -19,7 +19,7 @@ import React from 'react'; import { useApi } from 'contexts/Api'; import { useHelp } from 'contexts/Help'; import { ReactComponent as LedgerLogoSVG } from 'img/ledgerLogo.svg'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const Ledger = (): React.ReactElement => { const { openHelp } = useHelp(); diff --git a/src/modals/Connect/ReadOnly.tsx b/src/modals/Connect/ReadOnly.tsx index 7eba843b11..d5ea368bc2 100644 --- a/src/modals/Connect/ReadOnly.tsx +++ b/src/modals/Connect/ReadOnly.tsx @@ -18,7 +18,7 @@ import type { ExternalAccount } from 'contexts/Connect/types'; import { useHelp } from 'contexts/Help'; import { AccountInput } from 'library/AccountInput'; import { Identicon } from 'library/Identicon'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { ActionWithButton, ManualAccount, diff --git a/src/modals/Connect/Vault.tsx b/src/modals/Connect/Vault.tsx index 9037b718be..b2e5119140 100644 --- a/src/modals/Connect/Vault.tsx +++ b/src/modals/Connect/Vault.tsx @@ -14,7 +14,7 @@ import React from 'react'; import { useTranslation } from 'react-i18next'; import { useHelp } from 'contexts/Help'; import { ReactComponent as VaultSVG } from 'img/polkadotVault.svg'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const Vault = (): React.ReactElement => { const { t } = useTranslation('modals'); diff --git a/src/modals/Connect/index.tsx b/src/modals/Connect/index.tsx index c1c040b6ee..b4fb78db2a 100644 --- a/src/modals/Connect/index.tsx +++ b/src/modals/Connect/index.tsx @@ -19,8 +19,10 @@ import { useExtensions } from 'contexts/Extensions'; import { Close } from 'library/Modal/Close'; import { SelectItems } from 'library/SelectItems'; import type { AnyFunction } from 'types'; -import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; -import { useOverlay } from 'contexts/Overlay'; +import { + useEffectIgnoreInitial, + useOverlay, +} from '@polkadot-cloud/react/hooks'; import { Extension } from './Extension'; import { Ledger } from './Ledger'; import { Proxies } from './Proxies'; diff --git a/src/modals/DismissTips/index.tsx b/src/modals/DismissTips/index.tsx index 7cff2e3538..0a56dfb6c5 100644 --- a/src/modals/DismissTips/index.tsx +++ b/src/modals/DismissTips/index.tsx @@ -5,7 +5,7 @@ import { ButtonSubmit, ModalPadding } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { usePlugins } from 'contexts/Plugins'; import { Title } from 'library/Modal/Title'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const DismissTips = () => { const { t } = useTranslation('tips'); diff --git a/src/modals/ImportLedger/Manage.tsx b/src/modals/ImportLedger/Manage.tsx index 549cd1b24d..f46fd6070a 100644 --- a/src/modals/ImportLedger/Manage.tsx +++ b/src/modals/ImportLedger/Manage.tsx @@ -11,7 +11,7 @@ import { usePrompt } from 'contexts/Prompt'; import { ReactComponent as StatusBarIcon } from 'img/ledgerIcon.svg'; import { Heading } from 'library/Import/Heading'; import type { AnyJson } from 'types'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { Addresess } from './Addresses'; import { Reset } from './Reset'; diff --git a/src/modals/ImportLedger/Reset.tsx b/src/modals/ImportLedger/Reset.tsx index 777af3dab0..11add0adce 100644 --- a/src/modals/ImportLedger/Reset.tsx +++ b/src/modals/ImportLedger/Reset.tsx @@ -11,7 +11,7 @@ import type { LedgerAddress } from 'contexts/Hardware/types'; import { usePrompt } from 'contexts/Prompt'; import { ConfirmWrapper } from 'library/Import/Wrappers'; import type { AnyJson } from 'types'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const Reset = ({ removeLedgerAddress }: AnyJson) => { const { t } = useTranslation('modals'); diff --git a/src/modals/ImportLedger/Splash.tsx b/src/modals/ImportLedger/Splash.tsx index 4838f565aa..a1816e2372 100644 --- a/src/modals/ImportLedger/Splash.tsx +++ b/src/modals/ImportLedger/Splash.tsx @@ -10,7 +10,7 @@ import { useHelp } from 'contexts/Help'; import { useTheme } from 'contexts/Themes'; import { ReactComponent as LogoSVG } from 'img/ledgerLogo.svg'; import type { AnyFunction } from 'types'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { SplashWrapper } from './Wrappers'; export const Splash = ({ handleLedgerLoop }: AnyFunction) => { diff --git a/src/modals/ImportLedger/index.tsx b/src/modals/ImportLedger/index.tsx index 128ba2a562..aa752c726b 100644 --- a/src/modals/ImportLedger/index.tsx +++ b/src/modals/ImportLedger/index.tsx @@ -9,7 +9,7 @@ import { getLocalLedgerAddresses } from 'contexts/Hardware/Utils'; import type { LedgerAddress, LedgerResponse } from 'contexts/Hardware/types'; import { useLedgerLoop } from 'library/Hooks/useLedgerLoop'; import type { AnyJson } from 'types'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { Manage } from './Manage'; import { Splash } from './Splash'; diff --git a/src/modals/ImportVault/index.tsx b/src/modals/ImportVault/index.tsx index 4c12f23908..f9794e2f51 100644 --- a/src/modals/ImportVault/index.tsx +++ b/src/modals/ImportVault/index.tsx @@ -21,7 +21,7 @@ import { NoAccounts } from 'library/Import/NoAccounts'; import { Remove } from 'library/Import/Remove'; import { AddressesWrapper } from 'library/Import/Wrappers'; import type { AnyJson } from 'types'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { Reader } from './Reader'; export const ImportVault = () => { diff --git a/src/modals/JoinPool/index.tsx b/src/modals/JoinPool/index.tsx index 20d698a4a5..c650f9ee59 100644 --- a/src/modals/JoinPool/index.tsx +++ b/src/modals/JoinPool/index.tsx @@ -22,7 +22,7 @@ import { useSignerWarnings } from 'library/Hooks/useSignerWarnings'; import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const JoinPool = () => { const { t } = useTranslation('modals'); diff --git a/src/modals/ManageFastUnstake/index.tsx b/src/modals/ManageFastUnstake/index.tsx index bc3c3ae5f6..93ff92226e 100644 --- a/src/modals/ManageFastUnstake/index.tsx +++ b/src/modals/ManageFastUnstake/index.tsx @@ -24,7 +24,7 @@ import { useUnstaking } from 'library/Hooks/useUnstaking'; import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; import { useTxMeta } from 'contexts/TxMeta'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const ManageFastUnstake = () => { const { t } = useTranslation('modals'); diff --git a/src/modals/ManagePool/Forms/ClaimCommission.tsx b/src/modals/ManagePool/Forms/ClaimCommission.tsx index 63df9d887c..f2559d644f 100644 --- a/src/modals/ManagePool/Forms/ClaimCommission.tsx +++ b/src/modals/ManagePool/Forms/ClaimCommission.tsx @@ -19,7 +19,7 @@ import { Warning } from 'library/Form/Warning'; import { useSignerWarnings } from 'library/Hooks/useSignerWarnings'; import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { SubmitTx } from 'library/SubmitTx'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const ClaimCommission = ({ setSection }: any) => { const { t } = useTranslation('modals'); diff --git a/src/modals/ManagePool/Forms/Commission.tsx b/src/modals/ManagePool/Forms/Commission.tsx index f68e8816e8..2f732cbbe0 100644 --- a/src/modals/ManagePool/Forms/Commission.tsx +++ b/src/modals/ManagePool/Forms/Commission.tsx @@ -29,7 +29,7 @@ import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { SubmitTx } from 'library/SubmitTx'; import 'rc-slider/assets/index.css'; import type { MaybeAccount } from 'types'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { SliderWrapper } from '../Wrappers'; import type { ChangeRateInput } from './types'; diff --git a/src/modals/ManagePool/Forms/LeavePool.tsx b/src/modals/ManagePool/Forms/LeavePool.tsx index 8e5daaf6d4..5c92b6840f 100644 --- a/src/modals/ManagePool/Forms/LeavePool.tsx +++ b/src/modals/ManagePool/Forms/LeavePool.tsx @@ -27,7 +27,7 @@ import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { timeleftAsString } from 'library/Hooks/useTimeLeft/utils'; import { SubmitTx } from 'library/SubmitTx'; import { StaticNote } from 'modals/Utils/StaticNote'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const LeavePool = ({ setSection }: any) => { const { t } = useTranslation('modals'); diff --git a/src/modals/ManagePool/Forms/SetClaimPermission.tsx b/src/modals/ManagePool/Forms/SetClaimPermission.tsx index 0c3a0d38c6..473b4c8993 100644 --- a/src/modals/ManagePool/Forms/SetClaimPermission.tsx +++ b/src/modals/ManagePool/Forms/SetClaimPermission.tsx @@ -15,7 +15,7 @@ import { Warning } from 'library/Form/Warning'; import { useSignerWarnings } from 'library/Hooks/useSignerWarnings'; import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { SubmitTx } from 'library/SubmitTx'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const SetClaimPermission = ({ setSection, section }: any) => { const { t } = useTranslation('modals'); diff --git a/src/modals/ManagePool/Forms/SetMetadata.tsx b/src/modals/ManagePool/Forms/SetMetadata.tsx index 1645d0d7cd..f2bee92c2a 100644 --- a/src/modals/ManagePool/Forms/SetMetadata.tsx +++ b/src/modals/ManagePool/Forms/SetMetadata.tsx @@ -14,7 +14,7 @@ import { Warning } from 'library/Form/Warning'; import { useSignerWarnings } from 'library/Hooks/useSignerWarnings'; import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { SubmitTx } from 'library/SubmitTx'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const SetMetadata = ({ setSection, section }: any) => { const { t } = useTranslation('modals'); diff --git a/src/modals/ManagePool/Forms/SetState.tsx b/src/modals/ManagePool/Forms/SetState.tsx index e7fb393b2d..c608eb7252 100644 --- a/src/modals/ManagePool/Forms/SetState.tsx +++ b/src/modals/ManagePool/Forms/SetState.tsx @@ -17,7 +17,7 @@ import { Warning } from 'library/Form/Warning'; import { useSignerWarnings } from 'library/Hooks/useSignerWarnings'; import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { SubmitTx } from 'library/SubmitTx'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const SetState = ({ setSection, task }: any) => { const { t } = useTranslation('modals'); diff --git a/src/modals/ManagePool/index.tsx b/src/modals/ManagePool/index.tsx index 03b63dd544..cc7ee659eb 100644 --- a/src/modals/ManagePool/index.tsx +++ b/src/modals/ManagePool/index.tsx @@ -11,7 +11,7 @@ import { useTranslation } from 'react-i18next'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { Title } from 'library/Modal/Title'; import { useTxMeta } from 'contexts/TxMeta'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { Forms } from './Forms'; import { Tasks } from './Tasks'; diff --git a/src/modals/Networks/index.tsx b/src/modals/Networks/index.tsx index 0b114816fd..d8be9dae98 100644 --- a/src/modals/Networks/index.tsx +++ b/src/modals/Networks/index.tsx @@ -11,7 +11,7 @@ import { NetworkList } from 'config/networks'; import { useApi } from 'contexts/Api'; import { Title } from 'library/Modal/Title'; import type { AnyJson, NetworkName } from 'types'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { ReactComponent as BraveIconSVG } from '../../img/brave-logo.svg'; import { BraveWarning, diff --git a/src/modals/Nominate/index.tsx b/src/modals/Nominate/index.tsx index b06ea9c69c..3af0c1f7ce 100644 --- a/src/modals/Nominate/index.tsx +++ b/src/modals/Nominate/index.tsx @@ -16,7 +16,7 @@ import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; import { useTxMeta } from 'contexts/TxMeta'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const Nominate = () => { const { t } = useTranslation('modals'); diff --git a/src/modals/NominateFromFavorites/index.tsx b/src/modals/NominateFromFavorites/index.tsx index 33512d13c4..bc31d0caba 100644 --- a/src/modals/NominateFromFavorites/index.tsx +++ b/src/modals/NominateFromFavorites/index.tsx @@ -21,7 +21,7 @@ import { Title } from 'library/Modal/Title'; import { SubmitTx } from 'library/SubmitTx'; import { ValidatorList } from 'library/ValidatorList'; import { useTxMeta } from 'contexts/TxMeta'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { ListWrapper } from './Wrappers'; export const NominateFromFavorites = () => { diff --git a/src/modals/NominatePool/index.tsx b/src/modals/NominatePool/index.tsx index 37f68153e5..1c413caafe 100644 --- a/src/modals/NominatePool/index.tsx +++ b/src/modals/NominatePool/index.tsx @@ -13,7 +13,7 @@ import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; import { useTxMeta } from 'contexts/TxMeta'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const NominatePool = () => { const { t } = useTranslation('modals'); diff --git a/src/modals/PoolNominations/index.tsx b/src/modals/PoolNominations/index.tsx index eb92274fb6..6fa683bcef 100644 --- a/src/modals/PoolNominations/index.tsx +++ b/src/modals/PoolNominations/index.tsx @@ -5,7 +5,7 @@ import { ModalPadding } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { Title } from 'library/Modal/Title'; import { ValidatorList } from 'library/ValidatorList'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { ListWrapper } from './Wrappers'; export const PoolNominations = () => { diff --git a/src/modals/SelectFavorites/index.tsx b/src/modals/SelectFavorites/index.tsx index 49ae23afd4..44d5714342 100644 --- a/src/modals/SelectFavorites/index.tsx +++ b/src/modals/SelectFavorites/index.tsx @@ -9,7 +9,7 @@ import { useValidators } from 'contexts/Validators'; import type { Validator } from 'contexts/Validators/types'; import { Title } from 'library/Modal/Title'; import { ValidatorList } from 'library/ValidatorList'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { FooterWrapper, ListWrapper } from './Wrappers'; export const SelectFavorites = () => { diff --git a/src/modals/Unbond/index.tsx b/src/modals/Unbond/index.tsx index a1f7d3c927..6d966f89e0 100644 --- a/src/modals/Unbond/index.tsx +++ b/src/modals/Unbond/index.tsx @@ -24,7 +24,7 @@ import { timeleftAsString } from 'library/Hooks/useTimeLeft/utils'; import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; import { StaticNote } from 'modals/Utils/StaticNote'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const Unbond = () => { const { t } = useTranslation('modals'); diff --git a/src/modals/UnbondPoolMember/index.tsx b/src/modals/UnbondPoolMember/index.tsx index f5f73065d2..5f95b36f6c 100644 --- a/src/modals/UnbondPoolMember/index.tsx +++ b/src/modals/UnbondPoolMember/index.tsx @@ -23,7 +23,7 @@ import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; import { StaticNote } from 'modals/Utils/StaticNote'; import { useTxMeta } from 'contexts/TxMeta'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const UnbondPoolMember = () => { const { t } = useTranslation('modals'); diff --git a/src/modals/UnlockChunks/Forms.tsx b/src/modals/UnlockChunks/Forms.tsx index c8624b63ba..1cda022fb8 100644 --- a/src/modals/UnlockChunks/Forms.tsx +++ b/src/modals/UnlockChunks/Forms.tsx @@ -23,7 +23,7 @@ import { Warning } from 'library/Form/Warning'; import { useSignerWarnings } from 'library/Hooks/useSignerWarnings'; import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { SubmitTx } from 'library/SubmitTx'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { ContentWrapper } from './Wrappers'; export const Forms = forwardRef( diff --git a/src/modals/UnlockChunks/index.tsx b/src/modals/UnlockChunks/index.tsx index 0556020c00..f604b92407 100644 --- a/src/modals/UnlockChunks/index.tsx +++ b/src/modals/UnlockChunks/index.tsx @@ -14,7 +14,7 @@ import { useConnect } from 'contexts/Connect'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { Title } from 'library/Modal/Title'; import { useTxMeta } from 'contexts/TxMeta'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { Forms } from './Forms'; import { Overview } from './Overview'; diff --git a/src/modals/Unstake/index.tsx b/src/modals/Unstake/index.tsx index 3fc6af156e..a46677f0a1 100644 --- a/src/modals/Unstake/index.tsx +++ b/src/modals/Unstake/index.tsx @@ -24,7 +24,7 @@ import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; import { StaticNote } from 'modals/Utils/StaticNote'; import { useTxMeta } from 'contexts/TxMeta'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const Unstake = () => { const { t } = useTranslation('modals'); diff --git a/src/modals/UpdateController/index.tsx b/src/modals/UpdateController/index.tsx index eeb784d98d..034eabc247 100644 --- a/src/modals/UpdateController/index.tsx +++ b/src/modals/UpdateController/index.tsx @@ -13,7 +13,7 @@ import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; import { useTxMeta } from 'contexts/TxMeta'; import { useEffect } from 'react'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { Switch } from './Switch'; import { Wrapper } from './Wrapper'; diff --git a/src/modals/UpdatePayee/index.tsx b/src/modals/UpdatePayee/index.tsx index 822fbcc701..78509e36c3 100644 --- a/src/modals/UpdatePayee/index.tsx +++ b/src/modals/UpdatePayee/index.tsx @@ -21,7 +21,7 @@ import { SelectItem } from 'library/SelectItems/Item'; import { SubmitTx } from 'library/SubmitTx'; import type { MaybeAccount } from 'types'; import { useTxMeta } from 'contexts/TxMeta'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const UpdatePayee = () => { const { t } = useTranslation('modals'); diff --git a/src/modals/UpdateReserve/index.tsx b/src/modals/UpdateReserve/index.tsx index 222286804a..e1d72fac85 100644 --- a/src/modals/UpdateReserve/index.tsx +++ b/src/modals/UpdateReserve/index.tsx @@ -22,7 +22,7 @@ import { Close } from 'library/Modal/Close'; import { Title } from 'library/Modal/Title'; import { SliderWrapper } from 'modals/ManagePool/Wrappers'; import 'rc-slider/assets/index.css'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const UpdateReserve = () => { const { t } = useTranslation('modals'); diff --git a/src/modals/ValidatorMetrics/index.tsx b/src/modals/ValidatorMetrics/index.tsx index 8c83697609..2fb2224858 100644 --- a/src/modals/ValidatorMetrics/index.tsx +++ b/src/modals/ValidatorMetrics/index.tsx @@ -21,7 +21,7 @@ import { Title } from 'library/Modal/Title'; import { StatWrapper, StatsWrapper } from 'library/Modal/Wrappers'; import { StatusLabel } from 'library/StatusLabel'; import { SubscanButton } from 'library/SubscanButton'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const ValidatorMetrics = () => { const { t } = useTranslation('modals'); diff --git a/src/modals/WithdrawPoolMember/index.tsx b/src/modals/WithdrawPoolMember/index.tsx index 188eb0fa07..11a8da8f03 100644 --- a/src/modals/WithdrawPoolMember/index.tsx +++ b/src/modals/WithdrawPoolMember/index.tsx @@ -16,7 +16,7 @@ import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { Close } from 'library/Modal/Close'; import { SubmitTx } from 'library/SubmitTx'; import { useTxMeta } from 'contexts/TxMeta'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const WithdrawPoolMember = () => { const { t } = useTranslation('modals'); diff --git a/src/overlay/index.tsx b/src/overlay/index.tsx index ae77ed6603..72e02d0ec1 100644 --- a/src/overlay/index.tsx +++ b/src/overlay/index.tsx @@ -1,28 +1,9 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { - ModalContainer, - ModalCard, - ModalHeight, - ModalScroll, - ModalContent, - ModalCanvas, - ModalOverlay, - ModalCanvasContent, -} from '@polkadot-cloud/react'; -import { useAnimation } from 'framer-motion'; -import React, { useEffect, useRef } from 'react'; -import { ErrorBoundary } from 'react-error-boundary'; -import { ErrorFallbackModal } from 'library/ErrorBoundary'; +import { Overlay } from '@polkadot-cloud/react'; import { useHelp } from 'contexts/Help'; -import { useOverlay } from 'contexts/Overlay'; -import type { - CanvasProps, - CanvasStatus, - ModalProps, - OverlayProps, -} from 'contexts/Overlay/types'; +import { ErrorFallbackModal } from 'library/ErrorBoundary'; import { AccountPoolRoles } from '../modals/AccountPoolRoles'; import { Accounts } from '../modals/Accounts'; import { Bio } from '../modals/Bio'; @@ -59,6 +40,7 @@ export const Overlays = () => { const { status } = useHelp(); return ( <Overlay + fallback={ErrorFallbackModal} externalOverlayStatus={status} modals={{ Bio, @@ -96,333 +78,3 @@ export const Overlays = () => { /> ); }; - -export const Overlay = ({ - modals = {}, - canvas = {}, - externalOverlayStatus, -}: OverlayProps) => { - return ( - <> - <OverlayBackground externalOverlayStatus={externalOverlayStatus} /> - <Modal modals={modals} externalOverlayStatus={externalOverlayStatus} /> - <Canvas canvas={canvas} externalOverlayStatus={externalOverlayStatus} /> - </> - ); -}; - -export const Modal = ({ modals, externalOverlayStatus }: ModalProps) => { - const { - activeOverlayInstance, - setOpenOverlayInstances, - setActiveOverlayInstance, - modal: { - config: { key, size, options }, - status, - modalHeight, - modalResizeCounter, - setModalRef, - modalMaxHeight, - setModalHeight, - setModalStatus, - setModalHeightRef, - }, - } = useOverlay(); - const controls = useAnimation(); - const { status: canvasStatus } = useOverlay().canvas; - const modalRef = useRef<HTMLDivElement>(null); - const heightRef = useRef<HTMLDivElement>(null); - - const onOutClose = async () => { - setOpenOverlayInstances('dec', 'modal'); - setActiveOverlayInstance(null); - await controls.start('out'); - setModalStatus('closed'); - }; - const onIn = async () => { - await controls.start('in'); - }; - const onOut = async () => { - await controls.start('out'); - }; - - const windowResize = () => { - if (!options?.disableWindowResize) { - window.addEventListener('resize', handleResize); - } - }; - - const handleResize = () => { - if (status !== 'open' || options?.disableWindowResize) return; - let h = modalRef.current?.clientHeight ?? 0; - h = h > modalMaxHeight ? modalMaxHeight : h; - setModalHeight(h); - }; - - // Control on modal status change. - useEffect(() => { - if (activeOverlayInstance === 'modal' && status === 'open') onIn(); - if (status === 'closing') onOutClose(); - }, [status]); - - // Control on canvas status change. - useEffect(() => { - // fade out modal if canvas has been opened. - if (canvasStatus === 'open' && status === 'open') onOut(); - // fade in modal if its open & canvas is closing. - if (canvasStatus === 'closing') { - if (status === 'open') onIn(); - } - }, [canvasStatus]); - - // Control dim external overlay change. - useEffect(() => { - // fade out modal if external overlay has been opened. - if (externalOverlayStatus === 'open' && status === 'open') onOut(); - // fade in modal if its open & external overlay is closing. - if ( - externalOverlayStatus === 'closing' && - activeOverlayInstance === 'modal' - ) - onIn(); - }, [externalOverlayStatus]); - - // Resize modal on status or resize change. - useEffect(() => handleResize(), [modalResizeCounter]); - - // Resize modal on window size change. - useEffect(() => { - windowResize(); - return () => { - window.removeEventListener('resize', handleResize); - }; - }); - - // Update the modal's content ref as they are initialised. - useEffect(() => { - setModalRef(modalRef); - setModalHeightRef(heightRef); - }, [modalRef?.current, heightRef?.current]); - - if (status === 'closed') { - return <></>; - } - - const variants = { - in: { - opacity: 1, - scale: 1, - }, - out: { - opacity: 0, - scale: 0.9, - }, - }; - const transition = { - duration: 0.2, - }; - const initial = { - opacity: 0, - scale: 0.9, - }; - - const ActiveModal: React.FC | null = modals?.[key] || null; - - return ( - <> - {status !== 'replacing' ? ( - <ModalContainer - initial={initial} - animate={controls} - transition={transition} - variants={variants} - style={{ opacity: status === 'opening' ? 0 : 1 }} - > - <div> - <ModalHeight - ref={heightRef} - size={size} - style={{ - height: modalHeight, - overflow: - modalHeight >= modalMaxHeight && !options?.disableScroll - ? 'scroll' - : 'hidden', - }} - > - <ModalCard - ref={modalRef} - className={ - externalOverlayStatus === 'open' || canvasStatus === 'open' - ? 'dimmed' - : undefined - } - > - <ErrorBoundary FallbackComponent={ErrorFallbackModal}> - {ActiveModal && <ActiveModal />} - </ErrorBoundary> - </ModalCard> - </ModalHeight> - <button - type="button" - className="close" - onClick={() => { - setModalStatus('closing'); - }} - > -   - </button> - </div> - </ModalContainer> - ) : null} - </> - ); -}; - -export const Canvas = ({ canvas, externalOverlayStatus }: CanvasProps) => { - const controls = useAnimation(); - const { - setOpenOverlayInstances, - activeOverlayInstance, - setActiveOverlayInstance, - modal: { status: modalStatus }, - canvas: { - status, - setCanvasStatus, - config: { key }, - }, - } = useOverlay(); - - const onIn = async () => { - await controls.start('visible'); - }; - - const onOut = async (closing: boolean) => { - if (closing) { - setOpenOverlayInstances('dec', 'canvas'); - setActiveOverlayInstance(modalStatus === 'open' ? 'modal' : null); - } - await controls.start('hidden'); - - if (closing) setCanvasStatus('closed'); - }; - - // Control dim help status change. - useEffect(() => { - if (externalOverlayStatus === 'open' && status === 'open') onOut(false); - - if (externalOverlayStatus === 'closing') { - if (activeOverlayInstance === 'canvas') { - setCanvasStatus('open'); - onIn(); - } - } - }, [externalOverlayStatus]); - - useEffect(() => { - // canvas has been opened - fade in. - if (status === 'open') { - onIn(); - } - // canvas closure triggered - fade out. - if (status === 'closing') { - onOut(true); - } - }, [status]); - - if (status === 'closed') { - return <></>; - } - - const ActiveCanvas: React.FC | null = canvas?.[key] || null; - - return ( - <ModalCanvas - initial={{ - opacity: 0, - }} - animate={controls} - transition={{ - duration: 0.15, - }} - variants={{ - hidden: { - opacity: 0, - }, - visible: { - opacity: 1, - }, - }} - > - <ModalScroll> - <ModalContent> - <ModalCanvasContent> - {ActiveCanvas && <ActiveCanvas />} - </ModalCanvasContent> - </ModalContent> - </ModalScroll> - </ModalCanvas> - ); -}; - -export const OverlayBackground = ({ - externalOverlayStatus, -}: { - externalOverlayStatus?: CanvasStatus; -}) => { - const controls = useAnimation(); - const { - modal: { status: modalStatus }, - canvas: { status: canvasStatus }, - } = useOverlay(); - - let { openOverlayInstances } = useOverlay(); - if (externalOverlayStatus === 'open') { - openOverlayInstances++; - } - - const onIn = async () => { - await controls.start('visible'); - }; - const onOut = async () => { - await controls.start('hidden'); - }; - - useEffect(() => { - if (openOverlayInstances > 0) onIn(); - if (openOverlayInstances === 0) onOut(); - }, [openOverlayInstances]); - - if ( - modalStatus === 'closed' && - externalOverlayStatus === 'closed' && - canvasStatus === 'closed' - ) { - return <></>; - } - - return ( - <ModalOverlay - blur={ - canvasStatus === 'open' || externalOverlayStatus === 'open' - ? '14px' - : '4px' - } - initial={{ - opacity: 0, - }} - animate={controls} - transition={{ - duration: 0.15, - }} - variants={{ - hidden: { - opacity: 0, - }, - visible: { - opacity: 1, - }, - }} - /> - ); -}; diff --git a/src/pages/Community/Item.tsx b/src/pages/Community/Item.tsx index ab96bbfaa6..060ba97da8 100644 --- a/src/pages/Community/Item.tsx +++ b/src/pages/Community/Item.tsx @@ -11,7 +11,7 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { Suspense, lazy, useMemo } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { ItemWrapper } from './Wrappers'; import { useCommunitySections } from './context'; import type { ItemProps } from './types'; diff --git a/src/pages/Nominate/Active/ControllerNotStash.tsx b/src/pages/Nominate/Active/ControllerNotStash.tsx index be7017ca83..e5b7e33de8 100644 --- a/src/pages/Nominate/Active/ControllerNotStash.tsx +++ b/src/pages/Nominate/Active/ControllerNotStash.tsx @@ -16,7 +16,7 @@ import { useConnect } from 'contexts/Connect'; import { useStaking } from 'contexts/Staking'; import { useUi } from 'contexts/UI'; import { CardHeaderWrapper, CardWrapper } from 'library/Card/Wrappers'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const ControllerNotStash = () => { const { t } = useTranslation('pages'); diff --git a/src/pages/Nominate/Active/ManageBond.tsx b/src/pages/Nominate/Active/ManageBond.tsx index 047db40d05..2928592f80 100644 --- a/src/pages/Nominate/Active/ManageBond.tsx +++ b/src/pages/Nominate/Active/ManageBond.tsx @@ -15,7 +15,7 @@ import { useTransferOptions } from 'contexts/TransferOptions'; import { useUi } from 'contexts/UI'; import { CardHeaderWrapper } from 'library/Card/Wrappers'; import { useUnstaking } from 'library/Hooks/useUnstaking'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { BondedChart } from '../../../library/BarChart/BondedChart'; export const ManageBond = () => { diff --git a/src/pages/Nominate/Active/Nominations/index.tsx b/src/pages/Nominate/Active/Nominations/index.tsx index d2783e8bdc..2cce496c05 100644 --- a/src/pages/Nominate/Active/Nominations/index.tsx +++ b/src/pages/Nominate/Active/Nominations/index.tsx @@ -15,7 +15,7 @@ import { CardHeaderWrapper } from 'library/Card/Wrappers'; import { useUnstaking } from 'library/Hooks/useUnstaking'; import { ValidatorList } from 'library/ValidatorList'; import type { MaybeAccount } from 'types'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { Wrapper } from './Wrapper'; export const Nominations = ({ diff --git a/src/pages/Nominate/Active/Status/NominationStatus.tsx b/src/pages/Nominate/Active/Status/NominationStatus.tsx index 18cb84460d..32a10cd24a 100644 --- a/src/pages/Nominate/Active/Status/NominationStatus.tsx +++ b/src/pages/Nominate/Active/Status/NominationStatus.tsx @@ -18,7 +18,7 @@ import { useUi } from 'contexts/UI'; import { useNominationStatus } from 'library/Hooks/useNominationStatus'; import { useUnstaking } from 'library/Hooks/useUnstaking'; import { Stat } from 'library/Stat'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const NominationStatus = ({ showButtons = true, diff --git a/src/pages/Nominate/Active/Status/PayoutDestinationStatus.tsx b/src/pages/Nominate/Active/Status/PayoutDestinationStatus.tsx index cd0ac4599e..068450ba39 100644 --- a/src/pages/Nominate/Active/Status/PayoutDestinationStatus.tsx +++ b/src/pages/Nominate/Active/Status/PayoutDestinationStatus.tsx @@ -9,7 +9,7 @@ import { useUi } from 'contexts/UI'; import { usePayeeConfig } from 'library/Hooks/usePayeeConfig'; import { useUnstaking } from 'library/Hooks/useUnstaking'; import { Stat } from 'library/Stat'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const PayoutDestinationStatus = () => { const { t } = useTranslation('pages'); diff --git a/src/pages/Nominate/Active/UnstakePrompts.tsx b/src/pages/Nominate/Active/UnstakePrompts.tsx index 147b03fb6b..4d9c84d182 100644 --- a/src/pages/Nominate/Active/UnstakePrompts.tsx +++ b/src/pages/Nominate/Active/UnstakePrompts.tsx @@ -12,7 +12,7 @@ import { useTransferOptions } from 'contexts/TransferOptions'; import { useUi } from 'contexts/UI'; import { CardWrapper } from 'library/Card/Wrappers'; import { useUnstaking } from 'library/Hooks/useUnstaking'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const UnstakePrompts = () => { const { t } = useTranslation('pages'); diff --git a/src/pages/Nominate/Active/index.tsx b/src/pages/Nominate/Active/index.tsx index 688fb3f9b2..337f93ee24 100644 --- a/src/pages/Nominate/Active/index.tsx +++ b/src/pages/Nominate/Active/index.tsx @@ -19,7 +19,7 @@ import { CardHeaderWrapper, CardWrapper } from 'library/Card/Wrappers'; import { GenerateNominations } from 'library/GenerateNominations'; import { useUnstaking } from 'library/Hooks/useUnstaking'; import { StatBoxList } from 'library/StatBoxList'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { ControllerNotStash } from './ControllerNotStash'; import { ManageBond } from './ManageBond'; import { Nominations } from './Nominations'; diff --git a/src/pages/Overview/BalanceChart.tsx b/src/pages/Overview/BalanceChart.tsx index e8ccdf6bc4..475702c26f 100644 --- a/src/pages/Overview/BalanceChart.tsx +++ b/src/pages/Overview/BalanceChart.tsx @@ -17,7 +17,7 @@ import { LegendItem } from 'library/BarChart/LegendItem'; import { Bar, BarChartWrapper, Legend } from 'library/BarChart/Wrappers'; import { CardHeaderWrapper } from 'library/Card/Wrappers'; import { usePrices } from 'library/Hooks/usePrices'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const BalanceChart = () => { const { t } = useTranslation('pages'); diff --git a/src/pages/Pools/Home/ClosurePrompts.tsx b/src/pages/Pools/Home/ClosurePrompts.tsx index 7ef1217183..5196bb20cf 100644 --- a/src/pages/Pools/Home/ClosurePrompts.tsx +++ b/src/pages/Pools/Home/ClosurePrompts.tsx @@ -12,7 +12,7 @@ import { useTheme } from 'contexts/Themes'; import { useTransferOptions } from 'contexts/TransferOptions'; import { useUi } from 'contexts/UI'; import { CardWrapper } from 'library/Card/Wrappers'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const ClosurePrompts = () => { const { t } = useTranslation('pages'); diff --git a/src/pages/Pools/Home/ManageBond.tsx b/src/pages/Pools/Home/ManageBond.tsx index f4c449d68e..a4947d44fe 100644 --- a/src/pages/Pools/Home/ManageBond.tsx +++ b/src/pages/Pools/Home/ManageBond.tsx @@ -13,7 +13,7 @@ import { useTransferOptions } from 'contexts/TransferOptions'; import { useUi } from 'contexts/UI'; import { BondedChart } from 'library/BarChart/BondedChart'; import { CardHeaderWrapper } from 'library/Card/Wrappers'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const ManageBond = () => { const { t } = useTranslation('pages'); diff --git a/src/pages/Pools/Home/ManagePool/index.tsx b/src/pages/Pools/Home/ManagePool/index.tsx index 2c614ecca7..491ec1b166 100644 --- a/src/pages/Pools/Home/ManagePool/index.tsx +++ b/src/pages/Pools/Home/ManagePool/index.tsx @@ -11,7 +11,7 @@ import { useUi } from 'contexts/UI'; import { CardHeaderWrapper, CardWrapper } from 'library/Card/Wrappers'; import { GenerateNominations } from 'library/GenerateNominations'; import { Nominations } from 'pages/Nominate/Active/Nominations'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const ManagePool = () => { const { t } = useTranslation('pages'); diff --git a/src/pages/Pools/Home/MembersList/Member.tsx b/src/pages/Pools/Home/MembersList/Member.tsx index 57f1e30e14..7e6c8cc7e1 100644 --- a/src/pages/Pools/Home/MembersList/Member.tsx +++ b/src/pages/Pools/Home/MembersList/Member.tsx @@ -23,7 +23,7 @@ import { Separator, Wrapper, } from 'library/ListItem/Wrappers'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const Member = ({ who, batchKey, batchIndex }: any) => { const { t } = useTranslation('pages'); diff --git a/src/pages/Pools/Home/Status/MembershipStatus.tsx b/src/pages/Pools/Home/Status/MembershipStatus.tsx index eb7e68593a..853ad31830 100644 --- a/src/pages/Pools/Home/Status/MembershipStatus.tsx +++ b/src/pages/Pools/Home/Status/MembershipStatus.tsx @@ -11,7 +11,7 @@ import { useBondedPools } from 'contexts/Pools/BondedPools'; import { useTransferOptions } from 'contexts/TransferOptions'; import { useUi } from 'contexts/UI'; import { Stat } from 'library/Stat'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { useStatusButtons } from './useStatusButtons'; export const MembershipStatus = ({ diff --git a/src/pages/Pools/Home/Status/RewardsStatus.tsx b/src/pages/Pools/Home/Status/RewardsStatus.tsx index 334c6537b7..641b6a864a 100644 --- a/src/pages/Pools/Home/Status/RewardsStatus.tsx +++ b/src/pages/Pools/Home/Status/RewardsStatus.tsx @@ -10,7 +10,7 @@ import { useConnect } from 'contexts/Connect'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { useUi } from 'contexts/UI'; import { Stat } from 'library/Stat'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const RewardsStatus = () => { const { t } = useTranslation('pages'); diff --git a/src/pages/Pools/Home/index.tsx b/src/pages/Pools/Home/index.tsx index c52fd6b1b0..58ff98deb8 100644 --- a/src/pages/Pools/Home/index.tsx +++ b/src/pages/Pools/Home/index.tsx @@ -16,7 +16,7 @@ import { CardWrapper } from 'library/Card/Wrappers'; import { PoolList } from 'library/PoolList/Default'; import { StatBoxList } from 'library/StatBoxList'; import { usePoolsConfig } from 'contexts/Pools/PoolsConfig'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { Roles } from '../Roles'; import { ClosurePrompts } from './ClosurePrompts'; import { PoolFavorites } from './Favorites'; diff --git a/src/pages/Pools/Roles/index.tsx b/src/pages/Pools/Roles/index.tsx index c74d4f56c0..3474a12122 100644 --- a/src/pages/Pools/Roles/index.tsx +++ b/src/pages/Pools/Roles/index.tsx @@ -16,7 +16,7 @@ import { useIdentities } from 'contexts/Identities'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { useUi } from 'contexts/UI'; import { CardHeaderWrapper } from 'library/Card/Wrappers'; -import { useOverlay } from 'contexts/Overlay'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; import { RolesWrapper } from '../Home/ManagePool/Wrappers'; import { PoolAccount } from '../PoolAccount'; import { RoleEditInput } from './RoleEditInput'; diff --git a/yarn.lock b/yarn.lock index 633047d850..1c5f8a3110 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1515,13 +1515,14 @@ gulp-livereload "^4.0.2" tiny-lr "^2.0.0" -"@polkadot-cloud/react@0.1.13": - version "0.1.13" - resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.13.tgz#821e18b8fa47b3a2490a3ec3f0d112f9a9dd4a64" - integrity sha512-lDfh4biNyT7GI03pUDjrQwdNsTw5MxXR/qgpwxA411UmQqg702Aiuzpsjfi2Wgix9A03o2hNvOpXd8TZj0p1Bw== +"@polkadot-cloud/react@0.1.15": + version "0.1.15" + resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.15.tgz#ddc7e1dffefe989a31931b933cb994d50d0fb899" + integrity sha512-oUTe16K/PgkRMtUhAQTW4EOn5HwJjaWkFU0+xaKlZZXp9blxQUUmMMPNCJQh9Za+aHl2s9B8CykEDF3yOJYAOg== dependencies: "@polkadot-cloud/core" "^0.1.4" "@polkadot-cloud/utils" "^0.0.4" + react-error-boundary "^4.0.11" "@polkadot-cloud/utils@^0.0.4": version "0.0.4" From 4a90ea674aa49692bc4c6d17d1acc028420a3ea2 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Fri, 25 Aug 2023 18:46:10 +0700 Subject: [PATCH 324/435] use updated overlay sizes --- package.json | 4 +- src/library/ListItem/Labels/JoinPool.tsx | 2 +- src/overlay/index.tsx | 2 +- src/pages/Nominate/Active/ManageBond.tsx | 6 +- .../Nominate/Active/Nominations/index.tsx | 4 +- .../Active/Status/NominationStatus.tsx | 4 +- .../Active/Status/PayoutDestinationStatus.tsx | 2 +- src/pages/Nominate/Active/UnstakePrompts.tsx | 4 +- src/pages/Overview/BalanceChart.tsx | 2 +- src/pages/Pools/Home/ClosurePrompts.tsx | 4 +- src/pages/Pools/Home/ManageBond.tsx | 6 +- src/pages/Pools/Home/ManagePool/index.tsx | 4 +- src/pages/Pools/Home/MembersList/Member.tsx | 4 +- .../Pools/Home/Status/MembershipStatus.tsx | 2 +- src/pages/Pools/Home/Status/RewardsStatus.tsx | 4 +- src/pages/Pools/Roles/index.tsx | 2 +- yarn.lock | 305 ++---------------- 17 files changed, 48 insertions(+), 313 deletions(-) diff --git a/package.json b/package.json index a791ba71bf..dbe1ee6c6a 100644 --- a/package.json +++ b/package.json @@ -26,8 +26,8 @@ "@fortawesome/react-fontawesome": "^0.2.0", "@ledgerhq/hw-transport-webhid": "^6.27.19", "@polkadot-cloud/community": "^0.1.10", - "@polkadot-cloud/core": "^0.1.4", - "@polkadot-cloud/react": "0.1.15", + "@polkadot-cloud/core": "0.1.7", + "@polkadot-cloud/react": "0.1.19", "@polkadot-cloud/utils": "^0.0.4", "@polkadot/api": "^10.9.1", "@polkadot/keyring": "^12.1.1", diff --git a/src/library/ListItem/Labels/JoinPool.tsx b/src/library/ListItem/Labels/JoinPool.tsx index 1371d8a5b0..11c96c0cad 100644 --- a/src/library/ListItem/Labels/JoinPool.tsx +++ b/src/library/ListItem/Labels/JoinPool.tsx @@ -27,7 +27,7 @@ export const JoinPool = ({ id, setActiveTab, }, - size: 'small', + size: 'sm', }); }} > diff --git a/src/overlay/index.tsx b/src/overlay/index.tsx index 72e02d0ec1..5fb5c5b10c 100644 --- a/src/overlay/index.tsx +++ b/src/overlay/index.tsx @@ -1,9 +1,9 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { Overlay } from '@polkadot-cloud/react'; import { useHelp } from 'contexts/Help'; import { ErrorFallbackModal } from 'library/ErrorBoundary'; +import { Overlay } from '@polkadot-cloud/react'; import { AccountPoolRoles } from '../modals/AccountPoolRoles'; import { Accounts } from '../modals/Accounts'; import { Bio } from '../modals/Bio'; diff --git a/src/pages/Nominate/Active/ManageBond.tsx b/src/pages/Nominate/Active/ManageBond.tsx index 2928592f80..f0e4c27537 100644 --- a/src/pages/Nominate/Active/ManageBond.tsx +++ b/src/pages/Nominate/Active/ManageBond.tsx @@ -60,7 +60,7 @@ export const ManageBond = () => { openModal({ key: 'Bond', options: { bondFor: 'nominator' }, - size: 'small', + size: 'sm', }) } text="+" @@ -77,7 +77,7 @@ export const ManageBond = () => { openModal({ key: 'Unbond', options: { bondFor: 'nominator' }, - size: 'small', + size: 'sm', }) } text="-" @@ -92,7 +92,7 @@ export const ManageBond = () => { openModal({ key: 'UnlockChunks', options: { bondFor: 'nominator', disableWindowResize: true }, - size: 'small', + size: 'sm', }) } text={String(totalUnlockChuncks ?? 0)} diff --git a/src/pages/Nominate/Active/Nominations/index.tsx b/src/pages/Nominate/Active/Nominations/index.tsx index 2cce496c05..a5d780e6ed 100644 --- a/src/pages/Nominate/Active/Nominations/index.tsx +++ b/src/pages/Nominate/Active/Nominations/index.tsx @@ -67,7 +67,7 @@ export const Nominations = ({ provider, bondFor, }, - size: 'small', + size: 'sm', }); }; @@ -122,7 +122,7 @@ export const Nominations = ({ nominations: [], bondFor, }, - size: 'small', + size: 'sm', }) } /> diff --git a/src/pages/Nominate/Active/Status/NominationStatus.tsx b/src/pages/Nominate/Active/Status/NominationStatus.tsx index 32a10cd24a..b93d523dd6 100644 --- a/src/pages/Nominate/Active/Status/NominationStatus.tsx +++ b/src/pages/Nominate/Active/Status/NominationStatus.tsx @@ -55,14 +55,14 @@ export const NominationStatus = ({ title: fastUnstakeText, icon: faBolt, onClick: () => { - openModal({ key: 'ManageFastUnstake', size: 'small' }); + openModal({ key: 'ManageFastUnstake', size: 'sm' }); }, } : { title: t('nominate.unstake'), icon: faSignOutAlt, disabled: !isReady || isReadOnlyAccount(controller) || !activeAccount, - onClick: () => openModal({ key: 'Unstake', size: 'small' }), + onClick: () => openModal({ key: 'Unstake', size: 'sm' }), }; // Display progress alongside start title if exists and in setup. diff --git a/src/pages/Nominate/Active/Status/PayoutDestinationStatus.tsx b/src/pages/Nominate/Active/Status/PayoutDestinationStatus.tsx index 068450ba39..723ffc50f8 100644 --- a/src/pages/Nominate/Active/Status/PayoutDestinationStatus.tsx +++ b/src/pages/Nominate/Active/Status/PayoutDestinationStatus.tsx @@ -60,7 +60,7 @@ export const PayoutDestinationStatus = () => { isSyncing || isReadOnlyAccount(activeAccount) || isFastUnstaking, - onClick: () => openModal({ key: 'UpdatePayee', size: 'small' }), + onClick: () => openModal({ key: 'UpdatePayee', size: 'sm' }), }, ] : [] diff --git a/src/pages/Nominate/Active/UnstakePrompts.tsx b/src/pages/Nominate/Active/UnstakePrompts.tsx index 4d9c84d182..627f1cb4af 100644 --- a/src/pages/Nominate/Active/UnstakePrompts.tsx +++ b/src/pages/Nominate/Active/UnstakePrompts.tsx @@ -64,7 +64,7 @@ export const UnstakePrompts = () => { iconLeft={faBolt} text={getFastUnstakeText()} onClick={() => - openModal({ key: 'ManageFastUnstake', size: 'small' }) + openModal({ key: 'ManageFastUnstake', size: 'sm' }) } /> ) : ( @@ -84,7 +84,7 @@ export const UnstakePrompts = () => { poolClosure: true, disableWindowResize: true, }, - size: 'small', + size: 'sm', }) } /> diff --git a/src/pages/Overview/BalanceChart.tsx b/src/pages/Overview/BalanceChart.tsx index 475702c26f..1669842bf9 100644 --- a/src/pages/Overview/BalanceChart.tsx +++ b/src/pages/Overview/BalanceChart.tsx @@ -234,7 +234,7 @@ export const BalanceChart = () => { <ButtonTertiary text="Reserve Balance" onClick={() => - openModal({ key: 'UpdateReserve', size: 'small' }) + openModal({ key: 'UpdateReserve', size: 'sm' }) } iconRight={ isNetworkSyncing diff --git a/src/pages/Pools/Home/ClosurePrompts.tsx b/src/pages/Pools/Home/ClosurePrompts.tsx index 5196bb20cf..663517885d 100644 --- a/src/pages/Pools/Home/ClosurePrompts.tsx +++ b/src/pages/Pools/Home/ClosurePrompts.tsx @@ -76,7 +76,7 @@ export const ClosurePrompts = () => { openModal({ key: 'UnbondPoolMember', options: { who: activeAccount, member: membership }, - size: 'small', + size: 'sm', }) } /> @@ -96,7 +96,7 @@ export const ClosurePrompts = () => { poolClosure: true, disableWindowResize: true, }, - size: 'small', + size: 'sm', }) } /> diff --git a/src/pages/Pools/Home/ManageBond.tsx b/src/pages/Pools/Home/ManageBond.tsx index a4947d44fe..7241d72693 100644 --- a/src/pages/Pools/Home/ManageBond.tsx +++ b/src/pages/Pools/Home/ManageBond.tsx @@ -60,7 +60,7 @@ export const ManageBond = () => { openModal({ key: 'Bond', options: { bondFor: 'pool' }, - size: 'small', + size: 'sm', }) } text="+" @@ -78,7 +78,7 @@ export const ManageBond = () => { openModal({ key: 'Unbond', options: { bondFor: 'pool' }, - size: 'small', + size: 'sm', }) } text="-" @@ -92,7 +92,7 @@ export const ManageBond = () => { openModal({ key: 'UnlockChunks', options: { bondFor: 'pool', disableWindowResize: true }, - size: 'small', + size: 'sm', }) } text={String(totalUnlockChuncks ?? 0)} diff --git a/src/pages/Pools/Home/ManagePool/index.tsx b/src/pages/Pools/Home/ManagePool/index.tsx index 491ec1b166..fdd8f07984 100644 --- a/src/pages/Pools/Home/ManagePool/index.tsx +++ b/src/pages/Pools/Home/ManagePool/index.tsx @@ -55,9 +55,7 @@ export const ManagePool = () => { iconTransform="grow-1" text={t('pools.nominate')} disabled={!canNominate} - onClick={() => - openModal({ key: 'NominatePool', size: 'small' }) - } + onClick={() => openModal({ key: 'NominatePool', size: 'sm' })} /> </div> </CardHeaderWrapper> diff --git a/src/pages/Pools/Home/MembersList/Member.tsx b/src/pages/Pools/Home/MembersList/Member.tsx index 7e6c8cc7e1..32e4b7e0d4 100644 --- a/src/pages/Pools/Home/MembersList/Member.tsx +++ b/src/pages/Pools/Home/MembersList/Member.tsx @@ -63,7 +63,7 @@ export const Member = ({ who, batchKey, batchIndex }: any) => { who, member, }, - size: 'small', + size: 'sm', }); }, }); @@ -86,7 +86,7 @@ export const Member = ({ who, batchKey, batchIndex }: any) => { openModal({ key: 'WithdrawPoolMember', options: { who, member }, - size: 'small', + size: 'sm', }); }, }); diff --git a/src/pages/Pools/Home/Status/MembershipStatus.tsx b/src/pages/Pools/Home/Status/MembershipStatus.tsx index 853ad31830..6668007a3e 100644 --- a/src/pages/Pools/Home/Status/MembershipStatus.tsx +++ b/src/pages/Pools/Home/Status/MembershipStatus.tsx @@ -66,7 +66,7 @@ export const MembershipStatus = ({ openModal({ key: 'ManagePool', options: { disableWindowResize: true }, - size: 'small', + size: 'sm', }), }); } diff --git a/src/pages/Pools/Home/Status/RewardsStatus.tsx b/src/pages/Pools/Home/Status/RewardsStatus.tsx index 641b6a864a..01dd2a64d7 100644 --- a/src/pages/Pools/Home/Status/RewardsStatus.tsx +++ b/src/pages/Pools/Home/Status/RewardsStatus.tsx @@ -45,7 +45,7 @@ export const RewardsStatus = () => { openModal({ key: 'ClaimReward', options: { claimType: 'withdraw' }, - size: 'small', + size: 'sm', }), }, { @@ -60,7 +60,7 @@ export const RewardsStatus = () => { openModal({ key: 'ClaimReward', options: { claimType: 'bond' }, - size: 'small', + size: 'sm', }), }, ] diff --git a/src/pages/Pools/Roles/index.tsx b/src/pages/Pools/Roles/index.tsx index 3474a12122..6793a4f2d6 100644 --- a/src/pages/Pools/Roles/index.tsx +++ b/src/pages/Pools/Roles/index.tsx @@ -114,7 +114,7 @@ export const Roles = ({ openModal({ key: 'ChangePoolRoles', options: { id, roleEdits }, - size: 'small', + size: 'sm', }); } }; diff --git a/yarn.lock b/yarn.lock index 1c5f8a3110..6f2863e117 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1507,20 +1507,22 @@ resolved "https://registry.npmjs.org/@polkadot-cloud/community/-/community-0.1.10.tgz#d2a99190c0a89a67275264084e6e750269990986" integrity sha512-VT38rqOvORuYdPLigS8UNwvitoc0DFZWEazsvHxz9bTnPBL/7M3LujWXO14OSGw+FTvfz4RzPwovmW4u7RoT/Q== -"@polkadot-cloud/core@^0.1.4": - version "0.1.4" - resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.1.4.tgz#852aac2d599c4e6b49d1e2b93310d4709c108b14" - integrity sha512-Tgs1h9Qlw0LtNFJ7CDZuQKd9TIYThhQRltQFIVZHxEzo7zgQ/a8uAmGa6S4y8CTLyVq+16HUiDy8sK9/KXBbKQ== - dependencies: - gulp-livereload "^4.0.2" - tiny-lr "^2.0.0" +"@polkadot-cloud/core@0.1.6": + version "0.1.6" + resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.1.6.tgz#c82934fdbc1fd5e9759de30f2bb6881cec2a5bf4" + integrity sha512-4nftY+1sXXG4qauZhlagafdWsBLewnuk+UtqA8z5AIADr2QmEfsuQMBXIwsAZIaHPvP2/VfjCwLEBKQR3uWAow== + +"@polkadot-cloud/core@0.1.7": + version "0.1.7" + resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.1.7.tgz#ec46b59efc2067d1fea26b3cccb36ee1b51be14a" + integrity sha512-5z4grPh78Z/BZS0hmwJHxEYB+oIUwxNorCaV1TwewyFGvmrLDkeCOVnH/J+mLZAj/v/3UkV+R1nOP4iJubFvnQ== -"@polkadot-cloud/react@0.1.15": - version "0.1.15" - resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.15.tgz#ddc7e1dffefe989a31931b933cb994d50d0fb899" - integrity sha512-oUTe16K/PgkRMtUhAQTW4EOn5HwJjaWkFU0+xaKlZZXp9blxQUUmMMPNCJQh9Za+aHl2s9B8CykEDF3yOJYAOg== +"@polkadot-cloud/react@0.1.19": + version "0.1.19" + resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.19.tgz#858cd8e7b8dc8e0c6c6b830f66961c627c5fc965" + integrity sha512-laauadQPtKTNmYS83uAPJF5T0fvefG2tV6cPIqTnaAgwVfKohkxMS9YfmbvlKdz+2mVNgSeZj7EBSFgMO9HFKA== dependencies: - "@polkadot-cloud/core" "^0.1.4" + "@polkadot-cloud/core" "0.1.6" "@polkadot-cloud/utils" "^0.0.4" react-error-boundary "^4.0.11" @@ -2367,13 +2369,6 @@ ansi-escapes@^4.3.0: dependencies: type-fest "^0.21.3" -ansi-gray@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" - integrity sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw== - dependencies: - ansi-wrap "0.1.0" - ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" @@ -2398,11 +2393,6 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== -ansi-wrap@0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" - integrity sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw== - anymatch@~3.1.2: version "3.1.3" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" @@ -2653,16 +2643,6 @@ bn.js@^5.1.1, bn.js@^5.2.1: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== -body@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/body/-/body-5.1.0.tgz#e4ba0ce410a46936323367609ecb4e6553125069" - integrity sha512-chUsBxGRtuElD6fmw1gHLpvnKdVLK302peeFa9ZqAEk8TyzZ3fygLyUEDDPTJvL9+Bor0dIwn6ePOsRM2y0zQQ== - dependencies: - continuable-cache "^0.3.1" - error "^7.0.0" - raw-body "~1.1.0" - safe-json-parse "~1.0.1" - bplist-parser@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" @@ -2738,11 +2718,6 @@ bundle-name@^3.0.0: dependencies: run-applescript "^5.0.0" -bytes@1: - version "1.0.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" - integrity sha512-/x68VkHLeTl3/Ll8IvxdwzhrT+IyKc52e/oyHhA2RwqPqswSnjVbSddfPRwAsJtbilMAPSRWwAlpxdYsSWOTKQ== - cac@^6.7.14: version "6.7.14" resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" @@ -2789,7 +2764,7 @@ chai@^4.3.7: pathval "^1.1.1" type-detect "^4.0.5" -chalk@^2.0.0, chalk@^2.4.1: +chalk@^2.0.0: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -2855,30 +2830,6 @@ cliui@^8.0.1: strip-ansi "^6.0.1" wrap-ansi "^7.0.0" -clone-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" - integrity sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g== - -clone-stats@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" - integrity sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag== - -clone@^2.1.1: - version "2.1.2" - resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== - -cloneable-readable@^1.0.0: - version "1.1.3" - resolved "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz#120a00cb053bfb63a222e709f9683ea2e11d8cec" - integrity sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ== - dependencies: - inherits "^2.0.1" - process-nextick-args "^2.0.0" - readable-stream "^2.3.5" - color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -2903,11 +2854,6 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-support@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" - integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== - commander@^11.0.0: version "11.0.0" resolved "https://registry.yarnpkg.com/commander/-/commander-11.0.0.tgz#43e19c25dbedc8256203538e8d7e9346877a6f67" @@ -2938,11 +2884,6 @@ confusing-browser-globals@^1.0.10: resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA== -continuable-cache@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz#bd727a7faed77e71ff3985ac93351a912733ad0f" - integrity sha512-TF30kpKhTH8AGCG3dut0rdd/19B7Z+qCnrMoBLpyQu/2drZdNrrpcjPEoJeSVsQM+8KmWG5O56oPDjSSUsuTyA== - convert-source-map@^1.1.0, convert-source-map@^1.7.0: version "1.9.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" @@ -2955,11 +2896,6 @@ core-js-compat@^3.31.0: dependencies: browserslist "^4.21.9" -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - cosmiconfig@^8.1.3: version "8.2.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.2.0.tgz#f7d17c56a590856cd1e7cee98734dca272b0d8fd" @@ -3026,7 +2962,7 @@ date-fns@^2.29.3: dependencies: "@babel/runtime" "^7.21.0" -debug@^3.1.0, debug@^3.2.7: +debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== @@ -3172,13 +3108,6 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -error@^7.0.0: - version "7.2.1" - resolved "https://registry.npmjs.org/error/-/error-7.2.1.tgz#eab21a4689b5f684fc83da84a0e390de82d94894" - integrity sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA== - dependencies: - string-template "~0.2.1" - es-abstract@^1.19.0, es-abstract@^1.20.4: version "1.21.2" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" @@ -3648,16 +3577,6 @@ execa@^7.1.1: signal-exit "^3.0.7" strip-final-newline "^3.0.0" -fancy-log@^1.3.2: - version "1.3.3" - resolved "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7" - integrity sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw== - dependencies: - ansi-gray "^0.1.1" - color-support "^1.1.3" - parse-node-version "^1.0.0" - time-stamp "^1.0.0" - fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -3696,20 +3615,6 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" -faye-websocket@^0.11.3: - version "0.11.4" - resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" - integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== - dependencies: - websocket-driver ">=0.5.1" - -faye-websocket@~0.10.0: - version "0.10.0" - resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" - integrity sha512-Xhj93RXbMSq8urNCUq4p9l0P6hnySJ/7YNRhYNug0bLOuii7pKO7xQFb5mx9xZXWCar88pLPb805PvUkwrLZpQ== - dependencies: - websocket-driver ">=0.5.1" - fetch-blob@^3.1.2, fetch-blob@^3.1.4: version "3.2.0" resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" @@ -3999,19 +3904,6 @@ graphemer@^1.4.0: resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== -gulp-livereload@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/gulp-livereload/-/gulp-livereload-4.0.2.tgz#fc8a75c7511cd65afd2202cbcdc8bb0f8dde377b" - integrity sha512-InmaR50Xl1xB1WdEk4mrUgGHv3VhhlRLrx7u60iY5AAer90FlK95KXitPcGGQoi28zrUJM189d/h6+V470Ncgg== - dependencies: - chalk "^2.4.1" - debug "^3.1.0" - fancy-log "^1.3.2" - lodash.assign "^4.2.0" - readable-stream "^3.0.6" - tiny-lr "^1.1.1" - vinyl "^2.2.0" - has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" @@ -4091,11 +3983,6 @@ html-parse-stringify@^3.0.1: dependencies: void-elements "3.1.0" -http-parser-js@>=0.5.1: - version "0.5.8" - resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" - integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== - human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" @@ -4156,7 +4043,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -4394,11 +4281,6 @@ isarray@^2.0.5: resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -4548,16 +4430,6 @@ lit@^2.7.5: lit-element "^3.3.0" lit-html "^2.7.0" -livereload-js@^2.3.0: - version "2.4.0" - resolved "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz#447c31cf1ea9ab52fc20db615c5ddf678f78009c" - integrity sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw== - -livereload-js@^3.3.1: - version "3.4.1" - resolved "https://registry.npmjs.org/livereload-js/-/livereload-js-3.4.1.tgz#ba90fbc708ed1b9a024bb89c4ee12c96ea03d66f" - integrity sha512-5MP0uUeVCec89ZbNOT/i97Mc+q3SxXmiUGhRFOTmhrGPn//uWVQdCvcLJDy64MSBR5MidFdOR7B9viumoavy6g== - local-pkg@^0.4.3: version "0.4.3" resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963" @@ -4577,11 +4449,6 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" -lodash.assign@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" - integrity sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw== - lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" @@ -4799,7 +4666,7 @@ npm-run-path@^5.1.0: dependencies: path-key "^4.0.0" -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4.0.1, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== @@ -4983,11 +4850,6 @@ parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse-node-version@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" - integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== - path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -5121,11 +4983,6 @@ pretty-format@^29.5.0: ansi-styles "^5.0.0" react-is "^18.0.0" -process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - prop-types@^15.7.2, prop-types@^15.8.1: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" @@ -5150,26 +5007,11 @@ qrcode-generator@1.4.4: resolved "https://registry.yarnpkg.com/qrcode-generator/-/qrcode-generator-1.4.4.tgz#63f771224854759329a99048806a53ed278740e7" integrity sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw== -qs@^6.4.0: - version "6.11.2" - resolved "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" - integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== - dependencies: - side-channel "^1.0.4" - queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -raw-body@~1.1.0: - version "1.1.7" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz#1d027c2bfa116acc6623bca8f00016572a87d425" - integrity sha512-WmJJU2e9Y6M5UzTOkHaM7xJGAPQD8PNzx3bAd2+uhZAim6wDk6dAZxPVYLF67XhbR4hmKGh33Lpmh4XWrCH5Mg== - dependencies: - bytes "1" - string_decoder "0.10" - rc-slider@^10.2.1: version "10.2.1" resolved "https://registry.yarnpkg.com/rc-slider/-/rc-slider-10.2.1.tgz#9b571d19f740adcacdde271f44901a47717fd8da" @@ -5284,20 +5126,7 @@ react@^18.2.0: dependencies: loose-envify "^1.1.0" -readable-stream@^2.3.5: - version "2.3.8" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.0.6, readable-stream@^3.6.0: +readable-stream@^3.6.0: version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== @@ -5377,16 +5206,6 @@ regjsparser@^0.9.1: dependencies: jsesc "~0.5.0" -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== - -replace-ext@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz#2d6d996d04a15855d967443631dd5f77825b016a" - integrity sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw== - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -5509,21 +5328,11 @@ safe-array-concat@^1.0.0: has-symbols "^1.0.3" isarray "^2.0.5" -safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: +safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-json-parse@~1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz#3e76723e38dfdda13c9b1d29a1e07ffee4b30b57" - integrity sha512-o0JmTu17WGUaUOHa1l0FPGXKBfijbxK6qoHzlkihsDXxzBHvJcA7zgviKR92Xs841rX9pK16unfphLq0/KqX7A== - safe-regex-test@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" @@ -5660,11 +5469,6 @@ std-env@^3.3.3: resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.3.3.tgz#a54f06eb245fdcfef53d56f3c0251f1d5c3d01fe" integrity sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg== -string-template@~0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" - integrity sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw== - string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -5715,11 +5519,6 @@ string.prototype.trimstart@^1.0.6: define-properties "^1.1.4" es-abstract "^1.20.4" -string_decoder@0.10: - version "0.10.31" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== - string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" @@ -5727,13 +5526,6 @@ string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -5847,40 +5639,11 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== -time-stamp@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" - integrity sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw== - tiny-invariant@^1.1.0: version "1.3.1" resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.1.tgz#8560808c916ef02ecfd55e66090df23a4b7aa642" integrity sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw== -tiny-lr@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz#9fa547412f238fedb068ee295af8b682c98b2aab" - integrity sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA== - dependencies: - body "^5.1.0" - debug "^3.1.0" - faye-websocket "~0.10.0" - livereload-js "^2.3.0" - object-assign "^4.1.0" - qs "^6.4.0" - -tiny-lr@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/tiny-lr/-/tiny-lr-2.0.0.tgz#863659d7ce1ed201a117d8197d7f8b9a27bdc085" - integrity sha512-f6nh0VMRvhGx4KCeK1lQ/jaL0Zdb5WdR+Jk8q9OSUQnaSDxAEGH1fgqLZ+cMl5EW3F2MGnCsalBO1IsnnogW1Q== - dependencies: - body "^5.1.0" - debug "^3.1.0" - faye-websocket "^0.11.3" - livereload-js "^3.3.1" - object-assign "^4.1.0" - qs "^6.4.0" - tinybench@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.5.0.tgz#4711c99bbf6f3e986f67eb722fed9cddb3a68ba5" @@ -6084,23 +5847,11 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -util-deprecate@^1.0.1, util-deprecate@~1.0.1: +util-deprecate@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -vinyl@^2.2.0: - version "2.2.1" - resolved "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz#23cfb8bbab5ece3803aa2c0a1eb28af7cbba1974" - integrity sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw== - dependencies: - clone "^2.1.1" - clone-buffer "^1.0.0" - clone-stats "^1.0.0" - cloneable-readable "^1.0.0" - remove-trailing-separator "^1.0.1" - replace-ext "^1.0.0" - vite-bundle-visualizer@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/vite-bundle-visualizer/-/vite-bundle-visualizer-0.10.0.tgz#bdeafe5f8e69eb4c157174ae8d852279272e3010" @@ -6274,20 +6025,6 @@ webrtc-adapter@^7.2.1: rtcpeerconnection-shim "^1.2.15" sdp "^2.12.0" -websocket-driver@>=0.5.1: - version "0.7.4" - resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" - integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== - dependencies: - http-parser-js ">=0.5.1" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== - which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" From 567df2a3e4a8a20d9fca23e9ee7ad9b1f7252fe3 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Fri, 25 Aug 2023 18:48:14 +0700 Subject: [PATCH 325/435] comment --- src/main.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.tsx b/src/main.tsx index e2b45896e1..ebdd09dc9a 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -11,7 +11,7 @@ import '@polkadot-cloud/core/template/default/fonts/index.css'; // Default template theme. import '@polkadot-cloud/core/template/default/index.css'; -// Core UI styles. +// Polkadot Cloud core styles. import '@polkadot-cloud/core/css/styles/index.css'; // Miscellaneous component styles. From 67c52c283cf71f9ce7e87be238c52a10c13e643d Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Fri, 25 Aug 2023 19:43:39 +0700 Subject: [PATCH 326/435] bumps --- package.json | 4 ++-- yarn.lock | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index dbe1ee6c6a..c6aae90967 100644 --- a/package.json +++ b/package.json @@ -26,8 +26,8 @@ "@fortawesome/react-fontawesome": "^0.2.0", "@ledgerhq/hw-transport-webhid": "^6.27.19", "@polkadot-cloud/community": "^0.1.10", - "@polkadot-cloud/core": "0.1.7", - "@polkadot-cloud/react": "0.1.19", + "@polkadot-cloud/core": "^0.1.7", + "@polkadot-cloud/react": "^0.1.20", "@polkadot-cloud/utils": "^0.0.4", "@polkadot/api": "^10.9.1", "@polkadot/keyring": "^12.1.1", diff --git a/yarn.lock b/yarn.lock index 6f2863e117..33dabe6b5e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1512,15 +1512,15 @@ resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.1.6.tgz#c82934fdbc1fd5e9759de30f2bb6881cec2a5bf4" integrity sha512-4nftY+1sXXG4qauZhlagafdWsBLewnuk+UtqA8z5AIADr2QmEfsuQMBXIwsAZIaHPvP2/VfjCwLEBKQR3uWAow== -"@polkadot-cloud/core@0.1.7": +"@polkadot-cloud/core@^0.1.7": version "0.1.7" resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.1.7.tgz#ec46b59efc2067d1fea26b3cccb36ee1b51be14a" integrity sha512-5z4grPh78Z/BZS0hmwJHxEYB+oIUwxNorCaV1TwewyFGvmrLDkeCOVnH/J+mLZAj/v/3UkV+R1nOP4iJubFvnQ== -"@polkadot-cloud/react@0.1.19": - version "0.1.19" - resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.19.tgz#858cd8e7b8dc8e0c6c6b830f66961c627c5fc965" - integrity sha512-laauadQPtKTNmYS83uAPJF5T0fvefG2tV6cPIqTnaAgwVfKohkxMS9YfmbvlKdz+2mVNgSeZj7EBSFgMO9HFKA== +"@polkadot-cloud/react@^0.1.20": + version "0.1.20" + resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.20.tgz#0386f58edb11617f074bc754b454ea2bef693ee8" + integrity sha512-K2d+YzPGfHF/eZ1TU7264VGKGpqEtg07nYCbmpThXCFnrPkO/oe9UT5ym/7Rpzq4aNSugIJ6YXtUL8UPCCheSQ== dependencies: "@polkadot-cloud/core" "0.1.6" "@polkadot-cloud/utils" "^0.0.4" From c0ab39b89019e3a00b034b2a38586cfeb6cf41a3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Aug 2023 21:45:47 +0000 Subject: [PATCH 327/435] Bump i18next from 23.4.5 to 23.4.6 Bumps [i18next](https://github.com/i18next/i18next) from 23.4.5 to 23.4.6. - [Release notes](https://github.com/i18next/i18next/releases) - [Changelog](https://github.com/i18next/i18next/blob/master/CHANGELOG.md) - [Commits](https://github.com/i18next/i18next/compare/v23.4.5...v23.4.6) --- updated-dependencies: - dependency-name: i18next dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index c6aae90967..4462923a6b 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "chart.js": "^4.4.0", "date-fns": "^2.29.3", "framer-motion": "^10.16.1", - "i18next": "^23.4.5", + "i18next": "^23.4.6", "i18next-browser-languagedetector": "^7.1.0", "lodash.throttle": "^4.1.1", "qrcode-generator": "1.4.4", diff --git a/yarn.lock b/yarn.lock index 33dabe6b5e..929f489d78 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4000,10 +4000,10 @@ i18next-browser-languagedetector@^7.1.0: dependencies: "@babel/runtime" "^7.19.4" -i18next@^23.4.5: - version "23.4.5" - resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.4.5.tgz#3405926b7cd4a4682d6521633e9f836b3d81c5e7" - integrity sha512-XXALnva7/5H+kg7TjDsmzY3jRypuSJvjR1eUWtt11yUgsOqjZFq/mnaujJ/XpVWhUJU75QhCUhrZqAarlYpOSQ== +i18next@^23.4.6: + version "23.4.6" + resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.4.6.tgz#10211e72d5bd29e274baae99c6cc0178b93a93f8" + integrity sha512-jBE8bui969Ygv7TVYp0pwDZB7+he0qsU+nz7EcfdqSh+QvKjEfl9YPRQd/KrGiMhTYFGkeuPaeITenKK/bSFDg== dependencies: "@babel/runtime" "^7.22.5" From 17ce0f213509c259972c90be7d075989263f28ad Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Aug 2023 21:46:14 +0000 Subject: [PATCH 328/435] Bump eslint from 8.47.0 to 8.48.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.47.0 to 8.48.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.47.0...v8.48.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 4462923a6b..410c286760 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,7 @@ "@typescript-eslint/eslint-plugin": "^6.4.1", "@typescript-eslint/parser": "^6.4.1", "@vitejs/plugin-react-swc": "^3.3.2", - "eslint": "^8.47.0", + "eslint": "^8.48.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb-typescript": "^17.1.0", "eslint-config-prettier": "^9.0.0", diff --git a/yarn.lock b/yarn.lock index 929f489d78..efa429584b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1283,10 +1283,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@^8.47.0": - version "8.47.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.47.0.tgz#5478fdf443ff8158f9de171c704ae45308696c7d" - integrity sha512-P6omY1zv5MItm93kLM8s2vr1HICJH8v0dvddDhysbIuZ+vcjOHg5Zbkf1mTkcmi2JA9oBG2anOkRnW8WJTS8Og== +"@eslint/js@8.48.0": + version "8.48.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.48.0.tgz#642633964e217905436033a2bd08bf322849b7fb" + integrity sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw== "@fortawesome/fontawesome-common-types@6.4.2": version "6.4.2" @@ -3451,15 +3451,15 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@^8.47.0: - version "8.47.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.47.0.tgz#c95f9b935463fb4fad7005e626c7621052e90806" - integrity sha512-spUQWrdPt+pRVP1TTJLmfRNJJHHZryFmptzcafwSvHsceV81djHOdnEeDmkdotZyLNjDhrOasNK8nikkoG1O8Q== +eslint@^8.48.0: + version "8.48.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.48.0.tgz#bf9998ba520063907ba7bfe4c480dc8be03c2155" + integrity sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" "@eslint/eslintrc" "^2.1.2" - "@eslint/js" "^8.47.0" + "@eslint/js" "8.48.0" "@humanwhocodes/config-array" "^0.11.10" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" From 246c515ca03cb3f67f840bcdee2a973eb747f556 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Aug 2023 21:47:12 +0000 Subject: [PATCH 329/435] Bump vitest from 0.34.2 to 0.34.3 Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 0.34.2 to 0.34.3. - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Commits](https://github.com/vitest-dev/vitest/commits/v0.34.3/packages/vitest) --- updated-dependencies: - dependency-name: vitest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 74 ++++++++++++++++++++++++++-------------------------- 2 files changed, 38 insertions(+), 38 deletions(-) diff --git a/package.json b/package.json index 410c286760..71f660294d 100644 --- a/package.json +++ b/package.json @@ -93,6 +93,6 @@ "vite-plugin-eslint": "^1.8.1", "vite-plugin-svgr": "^3.2.0", "vite-tsconfig-paths": "^4.2.0", - "vitest": "^0.34.2" + "vitest": "^0.34.3" } } diff --git a/yarn.lock b/yarn.lock index efa429584b..8c367166ac 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2281,44 +2281,44 @@ dependencies: "@swc/core" "^1.3.61" -"@vitest/expect@0.34.2": - version "0.34.2" - resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-0.34.2.tgz#2bd09c20b828f8f9da625c203d88003a2b69e314" - integrity sha512-EZm2dMNlLyIfDMha17QHSQcg2KjeAZaXd65fpPzXY5bvnfx10Lcaz3N55uEe8PhF+w4pw+hmrlHLLlRn9vkBJg== +"@vitest/expect@0.34.3": + version "0.34.3" + resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-0.34.3.tgz#576e1fd6a3a8b8b7a79a06477f3d450a77d67852" + integrity sha512-F8MTXZUYRBVsYL1uoIft1HHWhwDbSzwAU9Zgh8S6WFC3YgVb4AnFV2GXO3P5Em8FjEYaZtTnQYoNwwBrlOMXgg== dependencies: - "@vitest/spy" "0.34.2" - "@vitest/utils" "0.34.2" + "@vitest/spy" "0.34.3" + "@vitest/utils" "0.34.3" chai "^4.3.7" -"@vitest/runner@0.34.2": - version "0.34.2" - resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-0.34.2.tgz#3408682cd68475e733a3f151d27792be75d2f07d" - integrity sha512-8ydGPACVX5tK3Dl0SUwxfdg02h+togDNeQX3iXVFYgzF5odxvaou7HnquALFZkyVuYskoaHUOqOyOLpOEj5XTA== +"@vitest/runner@0.34.3": + version "0.34.3" + resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-0.34.3.tgz#ce09b777d133bbcf843e1a67f4a743365764e097" + integrity sha512-lYNq7N3vR57VMKMPLVvmJoiN4bqwzZ1euTW+XXYH5kzr3W/+xQG3b41xJn9ChJ3AhYOSoweu974S1V3qDcFESA== dependencies: - "@vitest/utils" "0.34.2" + "@vitest/utils" "0.34.3" p-limit "^4.0.0" pathe "^1.1.1" -"@vitest/snapshot@0.34.2": - version "0.34.2" - resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-0.34.2.tgz#fce1b89aa1e836e3fd0229c03ef4ef2f69cb1409" - integrity sha512-qhQ+xy3u4mwwLxltS4Pd4SR+XHv4EajiTPNY3jkIBLUApE6/ce72neJPSUQZ7bL3EBuKI+NhvzhGj3n5baRQUQ== +"@vitest/snapshot@0.34.3": + version "0.34.3" + resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-0.34.3.tgz#cb4767aa44711a1072bd2e06204b659275c4f0f2" + integrity sha512-QyPaE15DQwbnIBp/yNJ8lbvXTZxS00kRly0kfFgAD5EYmCbYcA+1EEyRalc93M0gosL/xHeg3lKAClIXYpmUiQ== dependencies: magic-string "^0.30.1" pathe "^1.1.1" pretty-format "^29.5.0" -"@vitest/spy@0.34.2": - version "0.34.2" - resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-0.34.2.tgz#5c483d71e4c2d42f90bef29cdf6e5f5559c52827" - integrity sha512-yd4L9OhfH6l0Av7iK3sPb3MykhtcRN5c5K5vm1nTbuN7gYn+yvUVVsyvzpHrjqS7EWqn9WsPJb7+0c3iuY60tA== +"@vitest/spy@0.34.3": + version "0.34.3" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-0.34.3.tgz#d4cf25e6ca9230991a0223ecd4ec2df30f0784ff" + integrity sha512-N1V0RFQ6AI7CPgzBq9kzjRdPIgThC340DGjdKdPSE8r86aUSmeliTUgkTqLSgtEwWWsGfBQ+UetZWhK0BgJmkQ== dependencies: tinyspy "^2.1.1" -"@vitest/utils@0.34.2": - version "0.34.2" - resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-0.34.2.tgz#5d291a1b0f5d01be99fd1801d212b837a610c53b" - integrity sha512-Lzw+kAsTPubhoQDp1uVAOP6DhNia1GMDsI9jgB0yMn+/nDaPieYQ88lKqz/gGjSHL4zwOItvpehec9OY+rS73w== +"@vitest/utils@0.34.3": + version "0.34.3" + resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-0.34.3.tgz#6e243189a358b736b9fc0216e6b6979bc857e897" + integrity sha512-kiSnzLG6m/tiT0XEl4U2H8JDBjFtwVlaE8I3QfGiMFR0QvnRDfYfdP3YvTBWM/6iJDAyaPY6yVQiCTUc7ZzTHA== dependencies: diff-sequences "^29.4.3" loupe "^2.3.6" @@ -5860,10 +5860,10 @@ vite-bundle-visualizer@^0.10.0: cac "^6.7.14" rollup-plugin-visualizer "^5.9.2" -vite-node@0.34.2: - version "0.34.2" - resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.34.2.tgz#1daa025f8cee8a141c9b4d051e979cf61adaba2c" - integrity sha512-JtW249Zm3FB+F7pQfH56uWSdlltCo1IOkZW5oHBzeQo0iX4jtC7o1t9aILMGd9kVekXBP2lfJBEQt9rBh07ebA== +vite-node@0.34.3: + version "0.34.3" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.34.3.tgz#de134fe38bc1555ac8ab5e489d7df6159a3e1a4c" + integrity sha512-+0TzJf1g0tYXj6tR2vEyiA42OPq68QkRZCu/ERSo2PtsDJfBpDyEfuKbRvLmZqi/CgC7SCBtyC+WjTGNMRIaig== dependencies: cac "^6.7.14" debug "^4.3.4" @@ -5933,19 +5933,19 @@ vite-tsconfig-paths@^4.2.0: optionalDependencies: fsevents "~2.3.2" -vitest@^0.34.2: - version "0.34.2" - resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.34.2.tgz#c90d563df18383f1749b8a4544adda1871bbc859" - integrity sha512-WgaIvBbjsSYMq/oiMlXUI7KflELmzM43BEvkdC/8b5CAod4ryAiY2z8uR6Crbi5Pjnu5oOmhKa9sy7uk6paBxQ== +vitest@^0.34.3: + version "0.34.3" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.34.3.tgz#863d61c133d01b16e49fd52d380c09fa5ac03188" + integrity sha512-7+VA5Iw4S3USYk+qwPxHl8plCMhA5rtfwMjgoQXMT7rO5ldWcdsdo3U1QD289JgglGK4WeOzgoLTsGFu6VISyQ== dependencies: "@types/chai" "^4.3.5" "@types/chai-subset" "^1.3.3" "@types/node" "*" - "@vitest/expect" "0.34.2" - "@vitest/runner" "0.34.2" - "@vitest/snapshot" "0.34.2" - "@vitest/spy" "0.34.2" - "@vitest/utils" "0.34.2" + "@vitest/expect" "0.34.3" + "@vitest/runner" "0.34.3" + "@vitest/snapshot" "0.34.3" + "@vitest/spy" "0.34.3" + "@vitest/utils" "0.34.3" acorn "^8.9.0" acorn-walk "^8.2.0" cac "^6.7.14" @@ -5960,7 +5960,7 @@ vitest@^0.34.2: tinybench "^2.5.0" tinypool "^0.7.0" vite "^3.0.0 || ^4.0.0" - vite-node "0.34.2" + vite-node "0.34.3" why-is-node-running "^2.2.2" void-elements@3.1.0: From c60ad07217e662d104918b9aa7feb217d1796aed Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sat, 26 Aug 2023 11:41:09 +0700 Subject: [PATCH 330/435] fix import --- src/contexts/Payouts/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index e0b496d01b..4cb12dd44a 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -6,7 +6,7 @@ import { useStaking } from 'contexts/Staking'; import { useApi } from 'contexts/Api'; import type { AnyApi, AnyJson, Sync } from 'types'; import { useConnect } from 'contexts/Connect'; -import { useEffectIgnoreInitial } from 'library/Hooks/useEffectIgnoreInitial'; +import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; import { useNetworkMetrics } from 'contexts/Network'; import Worker from 'workers/stakers?worker'; import { rmCommas, setStateWithRef } from '@polkadot-cloud/utils'; From 10f5cb9d669a5a4519725209f8b3ca7de28da7b6 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sat, 26 Aug 2023 12:32:25 +0700 Subject: [PATCH 331/435] calculate unclaimed from ledgers --- src/contexts/Payouts/index.tsx | 145 +++++++++++++++++++-------------- 1 file changed, 84 insertions(+), 61 deletions(-) diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index 4cb12dd44a..b81500949e 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -45,7 +45,7 @@ export const PayoutsProvider = ({ const payoutsSyncedRef = useRef(payoutsSynced); // Calculate eras to check for pending payouts. - const getErasToCheck = () => { + const getErasInterval = () => { const startEra = activeEra?.index.minus(1) || new BigNumber(1); const endEra = BigNumber.max( startEra.minus(MaxSupportedPayoutEras).plus(1), @@ -76,7 +76,7 @@ export const PayoutsProvider = ({ // Bypass worker if local exposure data is available. if (hasLocalEraExposure(network.name, era.toString(), activeAccount)) { // Continue processing eras, or move onto reward processing. - shouldContinueProcessing(era, getErasToCheck().endEra); + shouldContinueProcessing(era, getErasInterval().endEra); } else { const exposures = await fetchEraStakers(era.toString()); worker.postMessage({ @@ -101,7 +101,7 @@ export const PayoutsProvider = ({ const { networkName, who } = data; if (networkName !== network.name || who !== activeAccount) return; const { era, exposedValidators } = data; - const { endEra } = getErasToCheck(); + const { endEra } = getErasInterval(); // Store received era exposure data results in local storage. setLocalEraExposure( @@ -123,85 +123,106 @@ export const PayoutsProvider = ({ // Loop eras and determine validator ledgers to fetch. const erasValidators = []; - const { startEra, endEra } = getErasToCheck(); + const { startEra, endEra } = getErasInterval(); + let erasToCheck: string[] = []; let currentEra = startEra; while (currentEra.isGreaterThanOrEqualTo(endEra)) { const validators = Object.keys( getLocalEraExposure(network.name, currentEra.toString(), activeAccount) ); erasValidators.push(...validators); + erasToCheck.push(currentEra.toString()); currentEra = currentEra.minus(1); } - // Filter out duplicate validators. - // eslint-disable-next-line + + // Ensure `erasToCheck` is in order, highest first. + erasToCheck = erasToCheck.sort((a: string, b: string) => + new BigNumber(b).minus(a).toNumber() + ); + + // Fetch controllers in order to query ledgers. const uniqueValidators = [...new Set(erasValidators)]; + const bondedResults = + await api.query.staking.bonded.multi<AnyApi>(uniqueValidators); + + const validatorControllers: Record<string, string> = {}; + for (let i = 0; i < bondedResults.length; i++) { + const ctlr = bondedResults[i].unwrapOr(null); + if (ctlr) validatorControllers[uniqueValidators[i]] = ctlr; + } // Fetch ledgers to determine which rewards have been claimed (use local data if exists). - // const ledgerResults = await Promise.all(uniqueValidators.map((validator: AnyJson) => - // api.query.staking.ledger(validator) - // ) - // ); - // TODO: determine if payouts need to be calculated. Cache claimed results to local storage so - // claimed validator ledgers do not need to be fetched again. If cached, only check `claimed: - // false` and update if they have been. - /* - polkadot_payouts_claimed = { - accountAddress: { - 1176: { - validatorAddress1: true, - validatorAddress2: true, - }, - 1175: { - validatorAddress1: false, - validatorAddress1: false, - } + const ledgerResults = await api.query.staking.ledger.multi<AnyApi>( + Object.values(validatorControllers) + ); + const unclaimedRewards: Record<string, string[]> = {}; + for (const ledgerResult of ledgerResults) { + const ledger = ledgerResult.unwrapOr(null)?.toHuman(); + if (ledger) { + unclaimedRewards[ledger.stash] = ledger.claimedRewards + .map((r: string) => rmCommas(r)) + .filter( + (r: string) => + !erasToCheck.includes(r) && + new BigNumber(r).isLessThanOrEqualTo(startEra) && + new BigNumber(r).isGreaterThanOrEqualTo(endEra) + ); } - }; - */ + } - const calls = []; + // Reformat unclaimed rewards to be era => validators[]. + const unclaimedByEra: Record<string, string[]> = {}; + erasToCheck.forEach((era) => { + const eraValidators: string[] = []; + Object.entries(unclaimedRewards).forEach(([validator, eras]) => { + if (eras.includes(era.toString())) eraValidators.push(validator); + }); + if (eraValidators.length > 0) + unclaimedByEra[era.toString()] = eraValidators; + }); + + // TODO: Cache `unclaimedByEra` to local storage so claimed validator ledgers do not need to be + // fetched again. + + // Accumulate calls needed to fetch data to calculate rewards. + const calls: AnyApi[] = []; currentEra = startEra; - // TODO: instead of looping eras here, loop above `polkadot_payouts_claimed` eras for the - // accountAddress, to only fetch unclaimed payouts. - while (currentEra.isGreaterThanOrEqualTo(endEra)) { - const thisEra = currentEra.toString(); - - // TODO: iterate through new local storage era validators where claimed is false. Can - // also construct a new array for line 213, 214: call `getLocalEraExposure` again to get - // `share`. - const validatorPrefsCalls = Object.keys( - getLocalEraExposure(network.name, thisEra.toString(), activeAccount) - ).map((validator: AnyJson) => - api.query.staking.erasValidatorPrefs<AnyApi>( - thisEra.toString(), - validator - ) + Object.entries(unclaimedByEra).forEach(([era, validators]) => { + const validatorPrefsCalls = validators.map((validator: AnyJson) => + api.query.staking.erasValidatorPrefs<AnyApi>(era, validator) ); + if (validators.length > 0) + calls.push( + Promise.all([ + api.query.staking.erasValidatorReward<AnyApi>(era), + api.query.staking.erasRewardPoints<AnyApi>(era), + ...validatorPrefsCalls, + ]) + ); - calls.push( - Promise.all([ - api.query.staking.erasValidatorReward<AnyApi>(thisEra.toString()), - api.query.staking.erasRewardPoints<AnyApi>(thisEra.toString()), - ...validatorPrefsCalls, - ]) - ); currentEra = currentEra.minus(1); - } + }); + // Iterate calls and determine unclaimed payouts. currentEra = startEra; - const eraPayouts: EraPayout[] = []; + const unclaimedPayouts: EraPayout[] = []; + + let i = 0; for (const [reward, points, ...prefs] of await Promise.all(calls)) { + const thisEra = Object.keys(unclaimedByEra)[i]; const eraTotalPayout = new BigNumber(rmCommas(reward.toHuman())); const eraRewardPoints = points.toHuman(); - // TODO: this will be replaced. - const exposedValidators = getLocalEraExposure( + // Filter exposed validators for the era to only include those with unclaimed payouts. + const unclaimedValidators = getLocalEraExposure( network.name, currentEra.toString(), activeAccount + ).filter((v: string) => + Object.values(unclaimedByEra[thisEra.toString()]).includes(v) ); - const i = 0; + let j = 0; for (const pref of prefs) { const eraValidatorPrefs = pref.toHuman(); @@ -210,13 +231,13 @@ export const PayoutsProvider = ({ ).multipliedBy(0.01); // Get validator from era exposure data. Falls back no null if it cannot be found. - const validator = Object.keys(exposedValidators)?.[i] || ''; + const validator = Object.keys(unclaimedValidators)?.[j] || ''; const localExposed: LocalValidatorExposure[] | null = - Object.values(exposedValidators); + Object.values(unclaimedValidators); - const staked = new BigNumber(localExposed?.[i]?.staked || '0'); - const total = new BigNumber(localExposed?.[i]?.total || '0'); - const isValidator = localExposed?.[i]?.isValidator || false; + const staked = new BigNumber(localExposed?.[j]?.staked || '0'); + const total = new BigNumber(localExposed?.[j]?.total || '0'); + const isValidator = localExposed?.[j]?.isValidator || false; // Calculate the validator's share of total era payout. const totalRewardPoints = new BigNumber( @@ -238,12 +259,14 @@ export const PayoutsProvider = ({ .plus(isValidator ? valCut : 0); // TODO: Store payout data in local storage. - eraPayouts.push({ era: currentEra, payout: rewardValue }); + unclaimedPayouts.push({ era: currentEra, payout: rewardValue }); + j++; } + i++; currentEra = currentEra.minus(1); } - setPendingPayouts(eraPayouts); + setPendingPayouts(unclaimedPayouts); setStateWithRef('synced', setPayoutsSynced, payoutsSyncedRef); }; From cd887ca563fa9fd597157a9dca61bc1a291355fa Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sat, 26 Aug 2023 13:12:52 +0700 Subject: [PATCH 332/435] filter by exposed eras & fixes --- src/contexts/Payouts/index.tsx | 81 ++++++++++++++++++++-------------- src/contexts/Payouts/types.ts | 1 + 2 files changed, 50 insertions(+), 32 deletions(-) diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index b81500949e..d2ca5953a7 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -135,6 +135,19 @@ export const PayoutsProvider = ({ currentEra = currentEra.minus(1); } + const validatorExposedEras = (validator: string) => { + const exposedEras: string[] = []; + for (const era of erasToCheck) + if ( + Object.values( + Object.keys(getLocalEraExposure(network.name, era, activeAccount)) + )?.[0] === validator + ) + exposedEras.push(era); + + return exposedEras; + }; + // Ensure `erasToCheck` is in order, highest first. erasToCheck = erasToCheck.sort((a: string, b: string) => new BigNumber(b).minus(a).toNumber() @@ -160,12 +173,15 @@ export const PayoutsProvider = ({ const ledger = ledgerResult.unwrapOr(null)?.toHuman(); if (ledger) { unclaimedRewards[ledger.stash] = ledger.claimedRewards - .map((r: string) => rmCommas(r)) + .map((e: string) => rmCommas(e)) .filter( - (r: string) => - !erasToCheck.includes(r) && - new BigNumber(r).isLessThanOrEqualTo(startEra) && - new BigNumber(r).isGreaterThanOrEqualTo(endEra) + (e: string) => + erasToCheck.includes(e) && + new BigNumber(e).isLessThanOrEqualTo(startEra) && + new BigNumber(e).isGreaterThanOrEqualTo(endEra) + ) + .filter((r: string) => + validatorExposedEras(ledger.stash).includes(r) ); } } @@ -188,10 +204,10 @@ export const PayoutsProvider = ({ const calls: AnyApi[] = []; currentEra = startEra; Object.entries(unclaimedByEra).forEach(([era, validators]) => { - const validatorPrefsCalls = validators.map((validator: AnyJson) => - api.query.staking.erasValidatorPrefs<AnyApi>(era, validator) - ); - if (validators.length > 0) + if (validators.length > 0) { + const validatorPrefsCalls = validators.map((validator: AnyJson) => + api.query.staking.erasValidatorPrefs<AnyApi>(era, validator) + ); calls.push( Promise.all([ api.query.staking.erasValidatorReward<AnyApi>(era), @@ -199,7 +215,7 @@ export const PayoutsProvider = ({ ...validatorPrefsCalls, ]) ); - + } currentEra = currentEra.minus(1); }); @@ -212,32 +228,27 @@ export const PayoutsProvider = ({ const thisEra = Object.keys(unclaimedByEra)[i]; const eraTotalPayout = new BigNumber(rmCommas(reward.toHuman())); const eraRewardPoints = points.toHuman(); - - // Filter exposed validators for the era to only include those with unclaimed payouts. - const unclaimedValidators = getLocalEraExposure( - network.name, - currentEra.toString(), - activeAccount - ).filter((v: string) => - Object.values(unclaimedByEra[thisEra.toString()]).includes(v) - ); + const unclaimedValidators = unclaimedByEra[thisEra.toString()]; let j = 0; for (const pref of prefs) { const eraValidatorPrefs = pref.toHuman(); - const commission = new BigNumber( eraValidatorPrefs.commission.replace(/%/g, '') ).multipliedBy(0.01); // Get validator from era exposure data. Falls back no null if it cannot be found. - const validator = Object.keys(unclaimedValidators)?.[j] || ''; - const localExposed: LocalValidatorExposure[] | null = - Object.values(unclaimedValidators); + const validator = unclaimedValidators?.[j] || ''; + + const localExposed: LocalValidatorExposure | null = getLocalEraExposure( + network.name, + thisEra.toString(), + activeAccount + )?.[validator]; - const staked = new BigNumber(localExposed?.[j]?.staked || '0'); - const total = new BigNumber(localExposed?.[j]?.total || '0'); - const isValidator = localExposed?.[j]?.isValidator || false; + const staked = new BigNumber(localExposed?.staked || '0'); + const total = new BigNumber(localExposed?.total || '0'); + const isValidator = localExposed?.isValidator || false; // Calculate the validator's share of total era payout. const totalRewardPoints = new BigNumber( @@ -252,14 +263,20 @@ export const PayoutsProvider = ({ const valCut = commission.multipliedBy(avail); - const rewardValue = avail - .minus(valCut) - .multipliedBy(staked) - .dividedBy(total) - .plus(isValidator ? valCut : 0); + const rewardValue = total.isZero() + ? new BigNumber(0) + : avail + .minus(valCut) + .multipliedBy(staked) + .dividedBy(total) + .plus(isValidator ? valCut : 0); // TODO: Store payout data in local storage. - unclaimedPayouts.push({ era: currentEra, payout: rewardValue }); + unclaimedPayouts.push({ + era: currentEra, + validator, + payout: rewardValue, + }); j++; } i++; diff --git a/src/contexts/Payouts/types.ts b/src/contexts/Payouts/types.ts index 9059f01d6e..803d4ee0a2 100644 --- a/src/contexts/Payouts/types.ts +++ b/src/contexts/Payouts/types.ts @@ -11,6 +11,7 @@ export type PayoutsContextInterface = { export interface EraPayout { era: BigNumber; + validator: string; payout: BigNumber; } From 5f460a84e8e663920381cae799843f554e30bd96 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sat, 26 Aug 2023 13:31:26 +0700 Subject: [PATCH 333/435] reformat unclaimed payouts --- src/contexts/Payouts/defaults.ts | 2 +- src/contexts/Payouts/index.tsx | 54 +++++++++++++++----------------- src/contexts/Payouts/types.ts | 10 +++--- 3 files changed, 31 insertions(+), 35 deletions(-) diff --git a/src/contexts/Payouts/defaults.ts b/src/contexts/Payouts/defaults.ts index 48c643243e..0b47d87021 100644 --- a/src/contexts/Payouts/defaults.ts +++ b/src/contexts/Payouts/defaults.ts @@ -5,7 +5,7 @@ import type { PayoutsContextInterface } from './types'; export const defaultPayoutsContext: PayoutsContextInterface = { payoutsSynced: 'unsynced', - pendingPayouts: null, + unclaimedPayouts: null, }; export const MaxSupportedPayoutEras = 7; diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index d2ca5953a7..11d6f6d8c2 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -13,9 +13,9 @@ import { rmCommas, setStateWithRef } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { MaxSupportedPayoutEras, defaultPayoutsContext } from './defaults'; import type { - EraPayout, LocalValidatorExposure, PayoutsContextInterface, + UnclaimedPayouts, } from './types'; import { getLocalEraExposure, @@ -36,9 +36,8 @@ export const PayoutsProvider = ({ const { isNominating, fetchEraStakers } = useStaking(); // Store active accont's payout state. - const [pendingPayouts, setPendingPayouts] = useState<EraPayout[] | null>( - null - ); + const [unclaimedPayouts, setUnclaimedPayouts] = + useState<UnclaimedPayouts>(null); // Track whether payouts have been fetched. const [payoutsSynced, setPayoutsSynced] = useState<Sync>('unsynced'); @@ -131,10 +130,19 @@ export const PayoutsProvider = ({ getLocalEraExposure(network.name, currentEra.toString(), activeAccount) ); erasValidators.push(...validators); + + // TODO: only check eras that are not present in local storage. erasToCheck.push(currentEra.toString()); currentEra = currentEra.minus(1); } + // Ensure no validator duplicates. + const uniqueValidators = [...new Set(erasValidators)]; + // Ensure `erasToCheck` is in order, highest first. + erasToCheck = erasToCheck.sort((a: string, b: string) => + new BigNumber(b).minus(a).toNumber() + ); + const validatorExposedEras = (validator: string) => { const exposedEras: string[] = []; for (const era of erasToCheck) @@ -144,27 +152,19 @@ export const PayoutsProvider = ({ )?.[0] === validator ) exposedEras.push(era); - return exposedEras; }; - // Ensure `erasToCheck` is in order, highest first. - erasToCheck = erasToCheck.sort((a: string, b: string) => - new BigNumber(b).minus(a).toNumber() - ); - // Fetch controllers in order to query ledgers. - const uniqueValidators = [...new Set(erasValidators)]; const bondedResults = await api.query.staking.bonded.multi<AnyApi>(uniqueValidators); - const validatorControllers: Record<string, string> = {}; for (let i = 0; i < bondedResults.length; i++) { const ctlr = bondedResults[i].unwrapOr(null); if (ctlr) validatorControllers[uniqueValidators[i]] = ctlr; } - // Fetch ledgers to determine which rewards have been claimed (use local data if exists). + // Fetch ledgers to determine which rewards have not yet been claimed. const ledgerResults = await api.query.staking.ledger.multi<AnyApi>( Object.values(validatorControllers) ); @@ -193,13 +193,11 @@ export const PayoutsProvider = ({ Object.entries(unclaimedRewards).forEach(([validator, eras]) => { if (eras.includes(era.toString())) eraValidators.push(validator); }); + if (eraValidators.length > 0) unclaimedByEra[era.toString()] = eraValidators; }); - // TODO: Cache `unclaimedByEra` to local storage so claimed validator ledgers do not need to be - // fetched again. - // Accumulate calls needed to fetch data to calculate rewards. const calls: AnyApi[] = []; currentEra = startEra; @@ -221,7 +219,7 @@ export const PayoutsProvider = ({ // Iterate calls and determine unclaimed payouts. currentEra = startEra; - const unclaimedPayouts: EraPayout[] = []; + const unclaimed: UnclaimedPayouts = {}; let i = 0; for (const [reward, points, ...prefs] of await Promise.all(calls)) { @@ -263,7 +261,7 @@ export const PayoutsProvider = ({ const valCut = commission.multipliedBy(avail); - const rewardValue = total.isZero() + const unclaimedPayout = total.isZero() ? new BigNumber(0) : avail .minus(valCut) @@ -271,19 +269,19 @@ export const PayoutsProvider = ({ .dividedBy(total) .plus(isValidator ? valCut : 0); - // TODO: Store payout data in local storage. - unclaimedPayouts.push({ - era: currentEra, - validator, - payout: rewardValue, - }); + // TODO: Also store payout data in local storage. + + unclaimed[thisEra.toString()] = { + ...unclaimed[thisEra.toString()], + [validator]: unclaimedPayout, + }; j++; } i++; currentEra = currentEra.minus(1); } - setPendingPayouts(unclaimedPayouts); + setUnclaimedPayouts(unclaimed); setStateWithRef('synced', setPayoutsSynced, payoutsSyncedRef); }; @@ -302,15 +300,15 @@ export const PayoutsProvider = ({ // Clear payout state on network / active account change. useEffectIgnoreInitial(() => { - if (pendingPayouts !== null) { - setPendingPayouts(null); + if (unclaimedPayouts !== null) { + setUnclaimedPayouts(null); setStateWithRef('unsynced', setPayoutsSynced, payoutsSyncedRef); } }, [network, activeAccount]); return ( <PayoutsContext.Provider - value={{ pendingPayouts, payoutsSynced: payoutsSyncedRef.current }} + value={{ unclaimedPayouts, payoutsSynced: payoutsSyncedRef.current }} > {children} </PayoutsContext.Provider> diff --git a/src/contexts/Payouts/types.ts b/src/contexts/Payouts/types.ts index 803d4ee0a2..8621ef0dab 100644 --- a/src/contexts/Payouts/types.ts +++ b/src/contexts/Payouts/types.ts @@ -6,14 +6,12 @@ import type { Sync } from 'types'; export type PayoutsContextInterface = { payoutsSynced: Sync; - pendingPayouts: EraPayout[] | null; + unclaimedPayouts: UnclaimedPayouts; }; -export interface EraPayout { - era: BigNumber; - validator: string; - payout: BigNumber; -} +export type UnclaimedPayouts = Record<string, EraUnclaimedPayouts> | null; + +export type EraUnclaimedPayouts = Record<string, BigNumber>; export interface LocalValidatorExposure { staked: string; From 28d321acc0c2143a7754b665bb4a10d3c66955ed Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sat, 26 Aug 2023 13:32:05 +0700 Subject: [PATCH 334/435] turn off testing --- src/contexts/Payouts/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index 11d6f6d8c2..ebc5098ddd 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -176,7 +176,7 @@ export const PayoutsProvider = ({ .map((e: string) => rmCommas(e)) .filter( (e: string) => - erasToCheck.includes(e) && + !erasToCheck.includes(e) && new BigNumber(e).isLessThanOrEqualTo(startEra) && new BigNumber(e).isGreaterThanOrEqualTo(endEra) ) From 35e1d7c7e063851e31bf9bb06a8bcb39d07c9b5f Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sat, 26 Aug 2023 14:08:54 +0700 Subject: [PATCH 335/435] some local work --- src/contexts/Payouts/Utils.ts | 38 ++++++++++++++++++++++++++++++++++ src/contexts/Payouts/index.tsx | 23 ++++++++++++++------ src/contexts/Payouts/types.ts | 3 +-- 3 files changed, 56 insertions(+), 8 deletions(-) diff --git a/src/contexts/Payouts/Utils.ts b/src/contexts/Payouts/Utils.ts index 4730f5b30e..28bb1c53d4 100644 --- a/src/contexts/Payouts/Utils.ts +++ b/src/contexts/Payouts/Utils.ts @@ -58,3 +58,41 @@ export const setLocalEraExposure = ( }) ); }; + +// Get unclaimed payouts for an account. +export const getLocalUnclaimedPayouts = (network: NetworkName, who: string) => { + const current = JSON.parse( + localStorage.getItem(`${network}_unclaimed_payouts`) || '{}' + ); + return current?.[who] || {}; +}; + +// Set local unclaimed payouts for an account. +export const setLocalUnclaimedPayouts = ( + network: NetworkName, + era: string, + who: string, + unclaimdPayouts: Record<string, string>, + endEra: string +) => { + const current = JSON.parse( + localStorage.getItem(`${network}_unclaimed_payouts`) || '{}' + ); + + const whoRemoveStaleEras = Object.fromEntries( + Object.entries(current[who] || {}).filter(([k]: AnyJson) => + new BigNumber(k).isGreaterThanOrEqualTo(endEra) + ) + ); + + localStorage.setItem( + `${network}_unclaimed_payouts`, + JSON.stringify({ + ...current, + [who]: { + ...whoRemoveStaleEras, + [era]: unclaimdPayouts, + }, + }) + ); +}; diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index ebc5098ddd..f6d7dabee3 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -21,6 +21,7 @@ import { getLocalEraExposure, hasLocalEraExposure, setLocalEraExposure, + setLocalUnclaimedPayouts, } from './Utils'; const worker = new Worker(); @@ -130,8 +131,6 @@ export const PayoutsProvider = ({ getLocalEraExposure(network.name, currentEra.toString(), activeAccount) ); erasValidators.push(...validators); - - // TODO: only check eras that are not present in local storage. erasToCheck.push(currentEra.toString()); currentEra = currentEra.minus(1); } @@ -269,19 +268,31 @@ export const PayoutsProvider = ({ .dividedBy(total) .plus(isValidator ? valCut : 0); - // TODO: Also store payout data in local storage. - unclaimed[thisEra.toString()] = { ...unclaimed[thisEra.toString()], - [validator]: unclaimedPayout, + [validator]: unclaimedPayout.toString(), }; j++; } + + // This is not currently useful for preventing re-syncing. Need to know the eras that have + // been already. + setLocalUnclaimedPayouts( + network.name, + thisEra.toString(), + activeAccount, + unclaimed[thisEra.toString()], + endEra.toString() + ); + i++; currentEra = currentEra.minus(1); } - setUnclaimedPayouts(unclaimed); + setUnclaimedPayouts({ + ...unclaimedPayouts, + ...unclaimed, + }); setStateWithRef('synced', setPayoutsSynced, payoutsSyncedRef); }; diff --git a/src/contexts/Payouts/types.ts b/src/contexts/Payouts/types.ts index 8621ef0dab..e7ff062f36 100644 --- a/src/contexts/Payouts/types.ts +++ b/src/contexts/Payouts/types.ts @@ -1,7 +1,6 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import type BigNumber from 'bignumber.js'; import type { Sync } from 'types'; export type PayoutsContextInterface = { @@ -11,7 +10,7 @@ export type PayoutsContextInterface = { export type UnclaimedPayouts = Record<string, EraUnclaimedPayouts> | null; -export type EraUnclaimedPayouts = Record<string, BigNumber>; +export type EraUnclaimedPayouts = Record<string, string>; export interface LocalValidatorExposure { staked: string; From 23a372939bf149f37de40b75efb38ea55f0b0cd6 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sat, 26 Aug 2023 14:10:30 +0700 Subject: [PATCH 336/435] comment --- src/contexts/Payouts/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index f6d7dabee3..87186be82c 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -276,7 +276,7 @@ export const PayoutsProvider = ({ } // This is not currently useful for preventing re-syncing. Need to know the eras that have - // been already. + // been claimed already and remove them from `erasToCheck`. setLocalUnclaimedPayouts( network.name, thisEra.toString(), From 98f6c47cd00dd7614cb1120d552fa2eabee10ad9 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sat, 26 Aug 2023 14:15:33 +0700 Subject: [PATCH 337/435] exitOnExposed --- src/contexts/FastUnstake/index.tsx | 1 + src/workers/stakers.ts | 9 ++++----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/contexts/FastUnstake/index.tsx b/src/contexts/FastUnstake/index.tsx index dd81ac260d..302db54e8f 100644 --- a/src/contexts/FastUnstake/index.tsx +++ b/src/contexts/FastUnstake/index.tsx @@ -243,6 +243,7 @@ export const FastUnstakeProvider = ({ era: era.toString(), who: activeAccount, networkName: network.name, + exitOnExposed: true, exposures, }); }; diff --git a/src/workers/stakers.ts b/src/workers/stakers.ts index 86ca41652d..80beb59a5f 100644 --- a/src/workers/stakers.ts +++ b/src/workers/stakers.ts @@ -34,7 +34,7 @@ ctx.addEventListener('message', (event: AnyJson) => { // Process era exposures and return if an account was exposed, along with the validator they backed. const processEraForExposure = (data: AnyJson) => { - const { era, exposures, task, networkName, who } = data; + const { era, exposures, exitOnExposed, task, networkName, who } = data; let exposed = false; // If exposed, the validator that was backed. @@ -61,7 +61,7 @@ const processEraForExposure = (data: AnyJson) => { }; exposed = true; - return false; + if (exitOnExposed) return false; } const inOthers = others.find((o: AnyJson) => o.who === who); @@ -78,10 +78,9 @@ const processEraForExposure = (data: AnyJson) => { isValidator, }; exposed = true; - - // TODO: only return false if processing fast unstake. - return false; + if (exitOnExposed) return false; } + return true; }); From 8356c5629407b3e54150f8e6215edd3908a47a57 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sat, 26 Aug 2023 15:08:18 +0700 Subject: [PATCH 338/435] pending payouts UI, rm controller ui, locale --- src/contexts/Payouts/index.tsx | 2 +- src/locale/cn/pages.json | 1 + src/locale/en/pages.json | 1 + .../Active/Status/ControllerStatus.tsx | 41 ------------------- .../Active/Status/UnclaimedPayoutsStatus.tsx | 34 +++++++++++++++ src/pages/Nominate/Active/Status/index.tsx | 6 +-- 6 files changed, 40 insertions(+), 45 deletions(-) delete mode 100644 src/pages/Nominate/Active/Status/ControllerStatus.tsx create mode 100644 src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index 87186be82c..3369172b9d 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -330,4 +330,4 @@ export const PayoutsContext = React.createContext<PayoutsContextInterface>( defaultPayoutsContext ); -export const useBonded = () => React.useContext(PayoutsContext); +export const usePayouts = () => React.useContext(PayoutsContext); diff --git a/src/locale/cn/pages.json b/src/locale/cn/pages.json index a2487efb10..b04224001d 100644 --- a/src/locale/cn/pages.json +++ b/src/locale/cn/pages.json @@ -40,6 +40,7 @@ "notNominating": "未提名", "payoutDestination": "收益到账地址", "payoutDestinationSubtitle": "选择如何接收收益。收益可以是复合式增长,也可以作为自由余额发回账户", + "pendingPayouts": "待付", "poolDestroy": "提名池正在被摧毁,不能做提名操作", "poolNominations": "池的提名", "proxyprompt": "因本应用将很快取消对Controller帐户, 转而支持代理帐户. 请您尽快将Controller帐户切换到Stash帐户, 以便有更好体验", diff --git a/src/locale/en/pages.json b/src/locale/en/pages.json index 1410317c20..2e29683528 100644 --- a/src/locale/en/pages.json +++ b/src/locale/en/pages.json @@ -41,6 +41,7 @@ "notNominating": "Not Nominating", "payoutDestination": "Payout Destination", "payoutDestinationSubtitle": "Choose how payouts will be received. Payouts can either be compounded or sent to an account as free balance.", + "pendingPayouts": "Pending Payouts", "poolDestroy": "Pool is being destroyed and nominating is no longer possible.", "poolNominations": "Pool Nominations", "proxyprompt": "Staking dashboard will soon remove support for controller accounts in favour of proxies. Switch your controller account to your stash account to continue using the dashboard and to help in the transition to a better", diff --git a/src/pages/Nominate/Active/Status/ControllerStatus.tsx b/src/pages/Nominate/Active/Status/ControllerStatus.tsx deleted file mode 100644 index 22ddf5c080..0000000000 --- a/src/pages/Nominate/Active/Status/ControllerStatus.tsx +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: GPL-3.0-only - -import { clipAddress } from '@polkadot-cloud/utils'; -import { useTranslation } from 'react-i18next'; -import { useBonded } from 'contexts/Bonded'; -import { useConnect } from 'contexts/Connect'; -import { Stat } from 'library/Stat'; - -export const ControllerStatus = () => { - const { t } = useTranslation('pages'); - const { getBondedAccount } = useBonded(); - const { activeAccount, getAccount } = useConnect(); - const controller = getBondedAccount(activeAccount); - - return ( - <Stat - label={t('nominate.controllerAccount', { ns: 'pages' })} - helpKey="Stash and Controller Accounts" - stat={ - controller - ? { - address: controller, - display: getAccount(controller)?.name || clipAddress(controller), - } - : `${t('nominate.none')}` - } - copy={ - !controller - ? undefined - : { - content: controller, - notification: { - title: t('nominate.addressCopied'), - subtitle: controller, - }, - } - } - /> - ); -}; diff --git a/src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx b/src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx new file mode 100644 index 0000000000..1232a790fe --- /dev/null +++ b/src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx @@ -0,0 +1,34 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: GPL-3.0-only + +import { planckToUnit } from '@polkadot-cloud/utils'; +import { useTranslation } from 'react-i18next'; +import { Stat } from 'library/Stat'; +import { usePayouts } from 'contexts/Payouts'; +import BigNumber from 'bignumber.js'; +import { useApi } from 'contexts/Api'; + +export const UnclaimedPayoutsStatus = () => { + const { t } = useTranslation('pages'); + const { network } = useApi(); + const { unclaimedPayouts } = usePayouts(); + + const totalUnclaimed = Object.values(unclaimedPayouts || {}).reduce( + (total, validators) => + Object.values(validators) + .reduce((amount, value) => amount.plus(value), new BigNumber(0)) + .plus(total), + new BigNumber(0) + ); + + return ( + <Stat + label={t('nominate.pendingPayouts')} + helpKey="Payout" + stat={`${planckToUnit(totalUnclaimed, network.units) + .decimalPlaces(4) + .toFormat()} ${network.unit} + `} + /> + ); +}; diff --git a/src/pages/Nominate/Active/Status/index.tsx b/src/pages/Nominate/Active/Status/index.tsx index a5a5e406ee..1f28051986 100644 --- a/src/pages/Nominate/Active/Status/index.tsx +++ b/src/pages/Nominate/Active/Status/index.tsx @@ -3,7 +3,7 @@ import { Separator } from '@polkadot-cloud/react'; import { CardWrapper } from 'library/Card/Wrappers'; -import { ControllerStatus } from './ControllerStatus'; +import { UnclaimedPayoutsStatus } from './UnclaimedPayoutsStatus'; import { NominationStatus } from './NominationStatus'; import { PayoutDestinationStatus } from './PayoutDestinationStatus'; @@ -11,8 +11,8 @@ export const Status = ({ height }: { height: number }) => ( <CardWrapper height={height}> <NominationStatus /> <Separator /> - <PayoutDestinationStatus /> + <UnclaimedPayoutsStatus /> <Separator /> - <ControllerStatus /> + <PayoutDestinationStatus /> </CardWrapper> ); From 40f91d1d30a259908e70e3d51e3d0c5a63b17f82 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sat, 26 Aug 2023 15:09:40 +0700 Subject: [PATCH 339/435] re-order stats --- src/pages/Nominate/Active/Status/index.tsx | 4 ++-- src/pages/Pools/Home/Status/index.tsx | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pages/Nominate/Active/Status/index.tsx b/src/pages/Nominate/Active/Status/index.tsx index 1f28051986..70eb9216dc 100644 --- a/src/pages/Nominate/Active/Status/index.tsx +++ b/src/pages/Nominate/Active/Status/index.tsx @@ -11,8 +11,8 @@ export const Status = ({ height }: { height: number }) => ( <CardWrapper height={height}> <NominationStatus /> <Separator /> - <UnclaimedPayoutsStatus /> - <Separator /> <PayoutDestinationStatus /> + <Separator /> + <UnclaimedPayoutsStatus /> </CardWrapper> ); diff --git a/src/pages/Pools/Home/Status/index.tsx b/src/pages/Pools/Home/Status/index.tsx index 0a2036aeeb..7f096e93da 100644 --- a/src/pages/Pools/Home/Status/index.tsx +++ b/src/pages/Pools/Home/Status/index.tsx @@ -14,14 +14,14 @@ export const Status = ({ height }: { height: number }) => { return ( <CardWrapper height={height}> <MembershipStatus /> - <Separator /> - <RewardsStatus /> {selectedActivePool && ( <> <Separator /> <PoolStatus /> </> )} + <Separator /> + <RewardsStatus /> </CardWrapper> ); }; From d09cc5b2cb10313c6838293fe5c0c672c637c703 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sat, 26 Aug 2023 15:10:21 +0700 Subject: [PATCH 340/435] order stats --- src/pages/Pools/Home/Status/index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/Pools/Home/Status/index.tsx b/src/pages/Pools/Home/Status/index.tsx index 7f096e93da..0a2036aeeb 100644 --- a/src/pages/Pools/Home/Status/index.tsx +++ b/src/pages/Pools/Home/Status/index.tsx @@ -14,14 +14,14 @@ export const Status = ({ height }: { height: number }) => { return ( <CardWrapper height={height}> <MembershipStatus /> + <Separator /> + <RewardsStatus /> {selectedActivePool && ( <> <Separator /> <PoolStatus /> </> )} - <Separator /> - <RewardsStatus /> </CardWrapper> ); }; From b355c564d371722939a04a0ca09e23d1ba015e02 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sat, 26 Aug 2023 15:13:53 +0700 Subject: [PATCH 341/435] sync on nominate payouts fetch --- src/library/Headers/index.tsx | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/src/library/Headers/index.tsx b/src/library/Headers/index.tsx index 5aa33b9835..1d78f4e016 100644 --- a/src/library/Headers/index.tsx +++ b/src/library/Headers/index.tsx @@ -9,6 +9,7 @@ import { useBondedPools } from 'contexts/Pools/BondedPools'; import { usePoolMembers } from 'contexts/Pools/PoolMembers'; import { useUi } from 'contexts/UI'; import { useValidators } from 'contexts/Validators'; +import { usePayouts } from 'contexts/Payouts'; import { Connect } from './Connect'; import { Connected } from './Connected'; import { SideMenuToggle } from './SideMenuToggle'; @@ -19,22 +20,23 @@ export const Headers = () => { const { isSyncing } = useUi(); const { pathname } = useLocation(); const { pending } = useExtrinsics(); + const { unclaimedPayouts } = usePayouts(); const { pluginEnabled } = usePlugins(); const { validators } = useValidators(); const { bondedPools } = useBondedPools(); const { poolMembersNode } = usePoolMembers(); - // keep syncing if on validators page and still fetching - const onValidatorsSyncing = () => { - if (pageFromUri(pathname, 'overview') === 'validators') { - if (!validators.length) { + // keep syncing if on nominate page and still fetching payouts + const onNominateSyncing = () => { + if (pageFromUri(pathname, 'overview') === 'nominate') { + if (unclaimedPayouts === null) { return true; } } return false; }; - // keep syncing if on pools page and still fetching bonded pools or pool members. Ignore pool + // Keep syncing if on pools page and still fetching bonded pools or pool members. Ignore pool // member sync if Subscan is enabled. const onPoolsSyncing = () => { if (pageFromUri(pathname, 'overview') === 'pools') { @@ -48,7 +50,21 @@ export const Headers = () => { return false; }; - const syncing = isSyncing || onValidatorsSyncing() || onPoolsSyncing(); + // Keep syncing if on validators page and still fetching + const onValidatorsSyncing = () => { + if (pageFromUri(pathname, 'overview') === 'validators') { + if (!validators.length) { + return true; + } + } + return false; + }; + + const syncing = + isSyncing || + onNominateSyncing() || + onValidatorsSyncing() || + onPoolsSyncing(); return ( <> From 6cf4d932a86f89db7be12dd0c089740d5d99347e Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sat, 26 Aug 2023 15:35:35 +0700 Subject: [PATCH 342/435] fix syncing --- src/contexts/Payouts/index.tsx | 34 +++++++++++++++++++++------------- src/library/Headers/index.tsx | 25 ++++++++++--------------- 2 files changed, 31 insertions(+), 28 deletions(-) diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index 3369172b9d..d9c592813f 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -6,7 +6,6 @@ import { useStaking } from 'contexts/Staking'; import { useApi } from 'contexts/Api'; import type { AnyApi, AnyJson, Sync } from 'types'; import { useConnect } from 'contexts/Connect'; -import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; import { useNetworkMetrics } from 'contexts/Network'; import Worker from 'workers/stakers?worker'; import { rmCommas, setStateWithRef } from '@polkadot-cloud/utils'; @@ -58,13 +57,17 @@ export const PayoutsProvider = ({ }; // Determine whether to keep processing a next era, or move onto checking for pending payouts. - const shouldContinueProcessing = (era: BigNumber, endEra: BigNumber) => { + const shouldContinueProcessing = async ( + era: BigNumber, + endEra: BigNumber + ) => { // If there are more exposures to process, check next era. if (new BigNumber(era).isGreaterThan(endEra)) checkEra(new BigNumber(era).minus(1)); // If all exposures have been processed, check for pending payouts. else if (new BigNumber(era).isEqualTo(endEra)) { - checkPendingPayouts(); + await checkPendingPayouts(); + setStateWithRef('synced', setPayoutsSynced, payoutsSyncedRef); } }; @@ -293,26 +296,31 @@ export const PayoutsProvider = ({ ...unclaimedPayouts, ...unclaimed, }); - setStateWithRef('synced', setPayoutsSynced, payoutsSyncedRef); }; // Fetch payouts if active account is nominating. useEffect(() => { - if ( - isNominating() && - !activeEra.index.isZero() && - payoutsSyncedRef.current === 'unsynced' - ) { - payoutsSyncedRef.current = 'syncing'; - // Start checking eras for exposures, starting with the previous one. - checkEra(activeEra.index.minus(1)); + if (!activeEra.index.isZero()) { + if ( + isNominating() && + unclaimedPayouts === null && + payoutsSyncedRef.current !== 'syncing' + ) { + setStateWithRef('syncing', setPayoutsSynced, payoutsSyncedRef); + // Start checking eras for exposures, starting with the previous one. + checkEra(activeEra.index.minus(1)); + } } }, [isNominating(), activeEra]); // Clear payout state on network / active account change. - useEffectIgnoreInitial(() => { + useEffect(() => { if (unclaimedPayouts !== null) { setUnclaimedPayouts(null); + } + if (!isNominating()) { + setStateWithRef('synced', setPayoutsSynced, payoutsSyncedRef); + } else { setStateWithRef('unsynced', setPayoutsSynced, payoutsSyncedRef); } }, [network, activeAccount]); diff --git a/src/library/Headers/index.tsx b/src/library/Headers/index.tsx index 1d78f4e016..030a4658b8 100644 --- a/src/library/Headers/index.tsx +++ b/src/library/Headers/index.tsx @@ -20,7 +20,7 @@ export const Headers = () => { const { isSyncing } = useUi(); const { pathname } = useLocation(); const { pending } = useExtrinsics(); - const { unclaimedPayouts } = usePayouts(); + const { payoutsSynced } = usePayouts(); const { pluginEnabled } = usePlugins(); const { validators } = useValidators(); const { bondedPools } = useBondedPools(); @@ -28,35 +28,30 @@ export const Headers = () => { // keep syncing if on nominate page and still fetching payouts const onNominateSyncing = () => { - if (pageFromUri(pathname, 'overview') === 'nominate') { - if (unclaimedPayouts === null) { - return true; - } - } + if (pageFromUri(pathname, 'overview') === 'nominate') + if (payoutsSynced !== 'synced') return true; + return false; }; // Keep syncing if on pools page and still fetching bonded pools or pool members. Ignore pool // member sync if Subscan is enabled. const onPoolsSyncing = () => { - if (pageFromUri(pathname, 'overview') === 'pools') { + if (pageFromUri(pathname, 'overview') === 'pools') if ( !bondedPools.length || (!poolMembersNode.length && !pluginEnabled('subscan')) - ) { + ) return true; - } - } + return false; }; // Keep syncing if on validators page and still fetching const onValidatorsSyncing = () => { - if (pageFromUri(pathname, 'overview') === 'validators') { - if (!validators.length) { - return true; - } - } + if (pageFromUri(pathname, 'overview') === 'validators') + if (!validators.length) return true; + return false; }; From 815a53ad57dc6ea9fb1a1051a8482fd06e9b998d Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sat, 26 Aug 2023 21:17:29 +0700 Subject: [PATCH 343/435] tidy up --- src/contexts/FastUnstake/index.tsx | 10 ++++------ src/contexts/Payouts/index.tsx | 16 ++++++---------- src/contexts/Validators/Utils.ts | 14 ++++++-------- src/library/Headers/index.tsx | 4 ++-- 4 files changed, 18 insertions(+), 26 deletions(-) diff --git a/src/contexts/FastUnstake/index.tsx b/src/contexts/FastUnstake/index.tsx index 302db54e8f..7b7f288608 100644 --- a/src/contexts/FastUnstake/index.tsx +++ b/src/contexts/FastUnstake/index.tsx @@ -158,14 +158,12 @@ export const FastUnstakeProvider = ({ // ensure correct task received. const { data } = message; const { task } = data; - if (task !== 'processEraForExposure') { - return; - } + if (task !== 'processEraForExposure') return; + // ensure still same conditions. const { networkName, who } = data; - if (networkName !== network.name || who !== activeAccount) { - return; - } + if (networkName !== network.name || who !== activeAccount) return; + const { era, exposed } = data; // ensure checked eras are in order highest first. diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index d9c592813f..abde1d9f61 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -124,7 +124,7 @@ export const PayoutsProvider = ({ const checkPendingPayouts = async () => { if (!api || !activeAccount) return; - // Loop eras and determine validator ledgers to fetch. + // Accumulate eras to check, and determine all validator ledgers to fetch from exposures. const erasValidators = []; const { startEra, endEra } = getErasInterval(); let erasToCheck: string[] = []; @@ -140,11 +140,13 @@ export const PayoutsProvider = ({ // Ensure no validator duplicates. const uniqueValidators = [...new Set(erasValidators)]; + // Ensure `erasToCheck` is in order, highest first. erasToCheck = erasToCheck.sort((a: string, b: string) => new BigNumber(b).minus(a).toNumber() ); + // Helper function to check which eras a validator was exposed in. const validatorExposedEras = (validator: string) => { const exposedEras: string[] = []; for (const era of erasToCheck) @@ -166,7 +168,8 @@ export const PayoutsProvider = ({ if (ctlr) validatorControllers[uniqueValidators[i]] = ctlr; } - // Fetch ledgers to determine which rewards have not yet been claimed. + // Fetch ledgers to determine which eras have not yet been claimed per validator. Only includes + // eras that are in `erasToCheck`. const ledgerResults = await api.query.staking.ledger.multi<AnyApi>( Object.values(validatorControllers) ); @@ -188,21 +191,19 @@ export const PayoutsProvider = ({ } } - // Reformat unclaimed rewards to be era => validators[]. + // Reformat unclaimed rewards to be { era: validators[] }. const unclaimedByEra: Record<string, string[]> = {}; erasToCheck.forEach((era) => { const eraValidators: string[] = []; Object.entries(unclaimedRewards).forEach(([validator, eras]) => { if (eras.includes(era.toString())) eraValidators.push(validator); }); - if (eraValidators.length > 0) unclaimedByEra[era.toString()] = eraValidators; }); // Accumulate calls needed to fetch data to calculate rewards. const calls: AnyApi[] = []; - currentEra = startEra; Object.entries(unclaimedByEra).forEach(([era, validators]) => { if (validators.length > 0) { const validatorPrefsCalls = validators.map((validator: AnyJson) => @@ -216,13 +217,10 @@ export const PayoutsProvider = ({ ]) ); } - currentEra = currentEra.minus(1); }); // Iterate calls and determine unclaimed payouts. - currentEra = startEra; const unclaimed: UnclaimedPayouts = {}; - let i = 0; for (const [reward, points, ...prefs] of await Promise.all(calls)) { const thisEra = Object.keys(unclaimedByEra)[i]; @@ -287,9 +285,7 @@ export const PayoutsProvider = ({ unclaimed[thisEra.toString()], endEra.toString() ); - i++; - currentEra = currentEra.minus(1); } setUnclaimedPayouts({ diff --git a/src/contexts/Validators/Utils.ts b/src/contexts/Validators/Utils.ts index bb302eca57..e922fe113e 100644 --- a/src/contexts/Validators/Utils.ts +++ b/src/contexts/Validators/Utils.ts @@ -55,14 +55,12 @@ export const validateLocalExposure = ( let localChecked = localMeta?.checked ?? null; // check types saved. - if (typeof localIsExposed !== 'boolean' || !Array.isArray(localChecked)) { + if (typeof localIsExposed !== 'boolean' || !Array.isArray(localChecked)) return null; - } + // check checked only contains numbers. const checkedNumeric = localChecked.every((e) => typeof e === 'number'); - if (!checkedNumeric) { - return null; - } + if (!checkedNumeric) return null; // remove any expired eras and sort highest first. localChecked = localChecked @@ -88,9 +86,9 @@ export const validateLocalExposure = ( if (e === p - 1) return true; return false; }); - if (!noMissingEras) { - return null; - } + + if (!noMissingEras) return null; + return { isExposed: localIsExposed, checked: localChecked, diff --git a/src/library/Headers/index.tsx b/src/library/Headers/index.tsx index 030a4658b8..6e9206cfe3 100644 --- a/src/library/Headers/index.tsx +++ b/src/library/Headers/index.tsx @@ -26,7 +26,7 @@ export const Headers = () => { const { bondedPools } = useBondedPools(); const { poolMembersNode } = usePoolMembers(); - // keep syncing if on nominate page and still fetching payouts + // Keep syncing if on nominate page and still fetching payouts. const onNominateSyncing = () => { if (pageFromUri(pathname, 'overview') === 'nominate') if (payoutsSynced !== 'synced') return true; @@ -47,7 +47,7 @@ export const Headers = () => { return false; }; - // Keep syncing if on validators page and still fetching + // Keep syncing if on validators page and still fetching. const onValidatorsSyncing = () => { if (pageFromUri(pathname, 'overview') === 'validators') if (!validators.length) return true; From 53857e43cb255e39d2532d242adf5845b20a3119 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sat, 26 Aug 2023 21:21:26 +0700 Subject: [PATCH 344/435] rm toString --- src/contexts/Payouts/index.tsx | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index abde1d9f61..f531551d77 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -196,10 +196,9 @@ export const PayoutsProvider = ({ erasToCheck.forEach((era) => { const eraValidators: string[] = []; Object.entries(unclaimedRewards).forEach(([validator, eras]) => { - if (eras.includes(era.toString())) eraValidators.push(validator); + if (eras.includes(era)) eraValidators.push(validator); }); - if (eraValidators.length > 0) - unclaimedByEra[era.toString()] = eraValidators; + if (eraValidators.length > 0) unclaimedByEra[era] = eraValidators; }); // Accumulate calls needed to fetch data to calculate rewards. @@ -226,7 +225,7 @@ export const PayoutsProvider = ({ const thisEra = Object.keys(unclaimedByEra)[i]; const eraTotalPayout = new BigNumber(rmCommas(reward.toHuman())); const eraRewardPoints = points.toHuman(); - const unclaimedValidators = unclaimedByEra[thisEra.toString()]; + const unclaimedValidators = unclaimedByEra[thisEra]; let j = 0; for (const pref of prefs) { @@ -240,7 +239,7 @@ export const PayoutsProvider = ({ const localExposed: LocalValidatorExposure | null = getLocalEraExposure( network.name, - thisEra.toString(), + thisEra, activeAccount )?.[validator]; @@ -269,8 +268,8 @@ export const PayoutsProvider = ({ .dividedBy(total) .plus(isValidator ? valCut : 0); - unclaimed[thisEra.toString()] = { - ...unclaimed[thisEra.toString()], + unclaimed[thisEra] = { + ...unclaimed[thisEra], [validator]: unclaimedPayout.toString(), }; j++; @@ -280,9 +279,9 @@ export const PayoutsProvider = ({ // been claimed already and remove them from `erasToCheck`. setLocalUnclaimedPayouts( network.name, - thisEra.toString(), + thisEra, activeAccount, - unclaimed[thisEra.toString()], + unclaimed[thisEra], endEra.toString() ); i++; From 7e44116d4a579be137991af80a9ce65f1d5b55c6 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sat, 26 Aug 2023 21:25:06 +0700 Subject: [PATCH 345/435] small updates --- src/contexts/Payouts/index.tsx | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index f531551d77..d574160ae5 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -66,7 +66,7 @@ export const PayoutsProvider = ({ checkEra(new BigNumber(era).minus(1)); // If all exposures have been processed, check for pending payouts. else if (new BigNumber(era).isEqualTo(endEra)) { - await checkPendingPayouts(); + await getUnclaimedPayouts(); setStateWithRef('synced', setPayoutsSynced, payoutsSyncedRef); } }; @@ -121,7 +121,7 @@ export const PayoutsProvider = ({ }; // Start pending payout process once exposure data is fetched. - const checkPendingPayouts = async () => { + const getUnclaimedPayouts = async () => { if (!api || !activeAccount) return; // Accumulate eras to check, and determine all validator ledgers to fetch from exposures. @@ -204,28 +204,26 @@ export const PayoutsProvider = ({ // Accumulate calls needed to fetch data to calculate rewards. const calls: AnyApi[] = []; Object.entries(unclaimedByEra).forEach(([era, validators]) => { - if (validators.length > 0) { - const validatorPrefsCalls = validators.map((validator: AnyJson) => - api.query.staking.erasValidatorPrefs<AnyApi>(era, validator) - ); + if (validators.length > 0) calls.push( Promise.all([ api.query.staking.erasValidatorReward<AnyApi>(era), api.query.staking.erasRewardPoints<AnyApi>(era), - ...validatorPrefsCalls, + ...validators.map((validator: AnyJson) => + api.query.staking.erasValidatorPrefs<AnyApi>(era, validator) + ), ]) ); - } }); // Iterate calls and determine unclaimed payouts. const unclaimed: UnclaimedPayouts = {}; let i = 0; for (const [reward, points, ...prefs] of await Promise.all(calls)) { - const thisEra = Object.keys(unclaimedByEra)[i]; + const era = Object.keys(unclaimedByEra)[i]; const eraTotalPayout = new BigNumber(rmCommas(reward.toHuman())); const eraRewardPoints = points.toHuman(); - const unclaimedValidators = unclaimedByEra[thisEra]; + const unclaimedValidators = unclaimedByEra[era]; let j = 0; for (const pref of prefs) { @@ -239,7 +237,7 @@ export const PayoutsProvider = ({ const localExposed: LocalValidatorExposure | null = getLocalEraExposure( network.name, - thisEra, + era, activeAccount )?.[validator]; @@ -268,8 +266,8 @@ export const PayoutsProvider = ({ .dividedBy(total) .plus(isValidator ? valCut : 0); - unclaimed[thisEra] = { - ...unclaimed[thisEra], + unclaimed[era] = { + ...unclaimed[era], [validator]: unclaimedPayout.toString(), }; j++; @@ -279,9 +277,9 @@ export const PayoutsProvider = ({ // been claimed already and remove them from `erasToCheck`. setLocalUnclaimedPayouts( network.name, - thisEra, + era, activeAccount, - unclaimed[thisEra], + unclaimed[era], endEra.toString() ); i++; From 381bb9f91cc26638ef325be554da7b281c238a97 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sat, 26 Aug 2023 21:25:42 +0700 Subject: [PATCH 346/435] re-order --- src/contexts/Payouts/defaults.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/contexts/Payouts/defaults.ts b/src/contexts/Payouts/defaults.ts index 0b47d87021..0e77fe34dd 100644 --- a/src/contexts/Payouts/defaults.ts +++ b/src/contexts/Payouts/defaults.ts @@ -3,9 +3,9 @@ import type { PayoutsContextInterface } from './types'; +export const MaxSupportedPayoutEras = 7; + export const defaultPayoutsContext: PayoutsContextInterface = { payoutsSynced: 'unsynced', unclaimedPayouts: null, }; - -export const MaxSupportedPayoutEras = 7; From 438c9ca19c10f312e3307738d5696b8879539cca Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sun, 27 Aug 2023 00:22:41 +0700 Subject: [PATCH 347/435] payout fixes --- src/contexts/Payouts/index.tsx | 13 ++++++++----- .../Active/Status/UnclaimedPayoutsStatus.tsx | 2 +- src/pages/Nominate/Active/Status/index.tsx | 4 ++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index d574160ae5..c746724772 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -177,17 +177,20 @@ export const PayoutsProvider = ({ for (const ledgerResult of ledgerResults) { const ledger = ledgerResult.unwrapOr(null)?.toHuman(); if (ledger) { - unclaimedRewards[ledger.stash] = ledger.claimedRewards + // get claimed eras within `erasToCheck`. + const erasClaimed = ledger.claimedRewards .map((e: string) => rmCommas(e)) .filter( (e: string) => - !erasToCheck.includes(e) && new BigNumber(e).isLessThanOrEqualTo(startEra) && new BigNumber(e).isGreaterThanOrEqualTo(endEra) - ) - .filter((r: string) => - validatorExposedEras(ledger.stash).includes(r) ); + + // filter eras yet to be claimed + unclaimedRewards[ledger.stash] = erasToCheck + .map((e) => e.toString()) + .filter((r: string) => validatorExposedEras(ledger.stash).includes(r)) + .filter((r: string) => !erasClaimed.includes(r)); } } diff --git a/src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx b/src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx index 1232a790fe..6eb23113b1 100644 --- a/src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx +++ b/src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx @@ -26,7 +26,7 @@ export const UnclaimedPayoutsStatus = () => { label={t('nominate.pendingPayouts')} helpKey="Payout" stat={`${planckToUnit(totalUnclaimed, network.units) - .decimalPlaces(4) + .decimalPlaces(4, BigNumber.ROUND_DOWN) .toFormat()} ${network.unit} `} /> diff --git a/src/pages/Nominate/Active/Status/index.tsx b/src/pages/Nominate/Active/Status/index.tsx index 70eb9216dc..1f28051986 100644 --- a/src/pages/Nominate/Active/Status/index.tsx +++ b/src/pages/Nominate/Active/Status/index.tsx @@ -11,8 +11,8 @@ export const Status = ({ height }: { height: number }) => ( <CardWrapper height={height}> <NominationStatus /> <Separator /> - <PayoutDestinationStatus /> - <Separator /> <UnclaimedPayoutsStatus /> + <Separator /> + <PayoutDestinationStatus /> </CardWrapper> ); From dbeb8dfd09f2cd017735606ec600c2b8f9693cca Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Sun, 27 Aug 2023 00:24:04 +0700 Subject: [PATCH 348/435] show full balance --- src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx b/src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx index 6eb23113b1..330371bee8 100644 --- a/src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx +++ b/src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx @@ -25,9 +25,9 @@ export const UnclaimedPayoutsStatus = () => { <Stat label={t('nominate.pendingPayouts')} helpKey="Payout" - stat={`${planckToUnit(totalUnclaimed, network.units) - .decimalPlaces(4, BigNumber.ROUND_DOWN) - .toFormat()} ${network.unit} + stat={`${planckToUnit(totalUnclaimed, network.units).toFormat()} ${ + network.unit + } `} /> ); From 82be3b9e0656d0f5c7505b099535249e7b48dae2 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Mon, 28 Aug 2023 12:32:38 +0700 Subject: [PATCH 349/435] points to balance in PoolMemberships --- src/contexts/Pools/PoolMemberships/index.tsx | 15 ++++++++++++++- src/contexts/Pools/types.ts | 1 + src/contexts/TransferOptions/index.tsx | 4 ++-- src/pages/Pools/Home/ManageBond.tsx | 8 ++++---- 4 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/contexts/Pools/PoolMemberships/index.tsx b/src/contexts/Pools/PoolMemberships/index.tsx index 656f832762..639bc7ba11 100644 --- a/src/contexts/Pools/PoolMemberships/index.tsx +++ b/src/contexts/Pools/PoolMemberships/index.tsx @@ -76,7 +76,10 @@ export const PoolMembershipsProvider = ({ } ); - const handleMembership = (poolMember: AnyApi, claimPermission?: AnyApi) => { + const handleMembership = async ( + poolMember: AnyApi, + claimPermission?: AnyApi + ) => { let membership = poolMember?.unwrapOr(undefined)?.toHuman(); if (membership) { @@ -92,8 +95,18 @@ export const PoolMembershipsProvider = ({ membership.points = membership.points ? rmCommas(membership.points) : '0'; + + const balance = + ( + await api.call.nominationPoolsApi.pointsToBalance( + membership.poolId, + membership.points + ) + )?.toString() || '0'; + membership = { ...membership, + balance: new BigNumber(balance), address, unlocking, claimPermission: claimPermission?.toString() || 'Permissioned', diff --git a/src/contexts/Pools/types.ts b/src/contexts/Pools/types.ts index 9872747937..18f587a603 100644 --- a/src/contexts/Pools/types.ts +++ b/src/contexts/Pools/types.ts @@ -48,6 +48,7 @@ export interface PoolMembership { address: string; poolId: number; points: string; + balance: BigNumber; lastRecordedRewardCounter: string; unbondingEras: Record<number, string>; claimPermission: ClaimPermission; diff --git a/src/contexts/TransferOptions/index.tsx b/src/contexts/TransferOptions/index.tsx index 1944a59eab..2824240110 100644 --- a/src/contexts/TransferOptions/index.tsx +++ b/src/contexts/TransferOptions/index.tsx @@ -87,8 +87,8 @@ export const TransferOptionsProvider = ({ { amount: new BigNumber(0) } )?.amount || new BigNumber(0); - const points = membership?.points; - const activePool = points ? new BigNumber(points) : new BigNumber(0); + const poolBalance = membership?.balance; + const activePool = poolBalance || new BigNumber(0); // total amount actively unlocking let totalUnlocking = new BigNumber(0); diff --git a/src/pages/Pools/Home/ManageBond.tsx b/src/pages/Pools/Home/ManageBond.tsx index 7241d72693..32888e44f8 100644 --- a/src/pages/Pools/Home/ManageBond.tsx +++ b/src/pages/Pools/Home/ManageBond.tsx @@ -19,13 +19,13 @@ export const ManageBond = () => { const { t } = useTranslation('pages'); const { network } = useApi(); - const { units } = network; + const { openHelp } = useHelp(); + const { isPoolSyncing } = useUi(); const { openModal } = useOverlay().modal; + const { getTransferOptions } = useTransferOptions(); const { activeAccount, isReadOnlyAccount } = useConnect(); - const { isPoolSyncing } = useUi(); const { isBonding, isMember, selectedActivePool } = useActivePools(); - const { getTransferOptions } = useTransferOptions(); - const { openHelp } = useHelp(); + const { units } = network; const allTransferOptions = getTransferOptions(activeAccount); const { From 7a9175116f46c641c5ceae41c15fc4f06f18a0a0 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Mon, 28 Aug 2023 12:38:04 +0700 Subject: [PATCH 350/435] tweaks --- src/contexts/Pools/PoolMemberships/index.tsx | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/contexts/Pools/PoolMemberships/index.tsx b/src/contexts/Pools/PoolMemberships/index.tsx index 639bc7ba11..2069daf885 100644 --- a/src/contexts/Pools/PoolMemberships/index.tsx +++ b/src/contexts/Pools/PoolMemberships/index.tsx @@ -25,18 +25,18 @@ export const PoolMembershipsProvider = ({ const { api, network, isReady } = useApi(); const { accounts: connectAccounts, activeAccount } = useConnect(); - // stores pool membership + // Stores pool memberships for the imported accounts. const [poolMemberships, setPoolMemberships] = useState<PoolMembership[]>([]); const poolMembershipsRef = useRef(poolMemberships); - // stores pool subscription objects - const poolMembershipUnsubs = useRef<AnyApi[]>([]); + // Stores pool membership unsubs. + const unsubs = useRef<AnyApi[]>([]); useEffectIgnoreInitial(() => { if (isReady) { (() => { setStateWithRef([], setPoolMemberships, poolMembershipsRef); - unsubscribeAll(); + unsubAll(); getPoolMemberships(); })(); } @@ -45,21 +45,21 @@ export const PoolMembershipsProvider = ({ // subscribe to account pool memberships const getPoolMemberships = async () => { Promise.all( - connectAccounts.map((a) => subscribeToPoolMembership(a.address)) + connectAccounts.map(({ address }) => subscribeToPoolMembership(address)) ); }; // unsubscribe from pool memberships on unmount useEffect( () => () => { - unsubscribeAll(); + unsubAll(); }, [] ); // unsubscribe from all pool memberships - const unsubscribeAll = () => { - Object.values(poolMembershipUnsubs.current).forEach((v: Fn) => v()); + const unsubAll = () => { + Object.values(unsubs.current).forEach((v: Fn) => v()); }; // subscribe to an account's pool membership @@ -132,7 +132,7 @@ export const PoolMembershipsProvider = ({ } }; - poolMembershipUnsubs.current = poolMembershipUnsubs.current.concat(unsub); + unsubs.current = unsubs.current.concat(unsub); return unsub; }; From 430c92b1dfed4c899cdcf572f4ff68dd18a97bd5 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Mon, 28 Aug 2023 13:03:31 +0700 Subject: [PATCH 351/435] favorite validators to own context --- src/Providers.tsx | 4 +- .../Validators/FavoriteValidators/defaults.ts | 20 ++++ .../Validators/FavoriteValidators/index.tsx | 95 +++++++++++++++++++ .../{ => ValidatorEntries}/defaults.ts | 7 +- .../{ => ValidatorEntries}/index.tsx | 85 ++--------------- src/contexts/Validators/types.ts | 12 ++- src/library/GenerateNominations/index.tsx | 12 +-- .../GenerateNominations/useFetchMethods.tsx | 10 +- src/library/Headers/index.tsx | 2 +- .../Hooks/useNominationStatus/index.tsx | 2 +- .../Hooks/useValidatorFilters/index.tsx | 2 +- .../ListItem/Labels/FavoriteValidator.tsx | 6 +- src/library/ListItem/Labels/Identity.tsx | 2 +- src/library/ListItem/Labels/ParaValidator.tsx | 2 +- src/library/Pool/index.tsx | 2 +- .../ValidatorList/Validator/Default.tsx | 2 +- .../ValidatorList/Validator/Nomination.tsx | 2 +- src/modals/NominateFromFavorites/index.tsx | 4 +- src/modals/SelectFavorites/index.tsx | 4 +- src/pages/Community/Entity.tsx | 2 +- src/pages/Community/List.tsx | 2 +- .../Nominate/Active/Nominations/index.tsx | 18 ++-- src/pages/Payouts/PayoutList/index.tsx | 2 +- src/pages/Validators/AllValidators.tsx | 2 +- src/pages/Validators/Favorites.tsx | 4 +- .../Validators/Stats/AverageCommission.tsx | 2 +- 26 files changed, 177 insertions(+), 130 deletions(-) create mode 100644 src/contexts/Validators/FavoriteValidators/defaults.ts create mode 100644 src/contexts/Validators/FavoriteValidators/index.tsx rename src/contexts/Validators/{ => ValidatorEntries}/defaults.ts (78%) rename src/contexts/Validators/{ => ValidatorEntries}/index.tsx (84%) diff --git a/src/Providers.tsx b/src/Providers.tsx index 18129d9d1e..4415e5eecf 100644 --- a/src/Providers.tsx +++ b/src/Providers.tsx @@ -33,7 +33,8 @@ import { TooltipProvider } from 'contexts/Tooltip'; import { TransferOptionsProvider } from 'contexts/TransferOptions'; import { TxMetaProvider } from 'contexts/TxMeta'; import { UIProvider } from 'contexts/UI'; -import { ValidatorsProvider } from 'contexts/Validators'; +import { ValidatorsProvider } from 'contexts/Validators/ValidatorEntries'; +import { FavoriteValidatorsProvider } from 'contexts/Validators/FavoriteValidators'; import { withProviders } from 'library/Hooks'; import { PayoutsProvider } from 'contexts/Payouts'; import { OverlayProvider } from '@polkadot-cloud/react'; @@ -61,6 +62,7 @@ export const Providers = withProviders( ActivePoolsProvider, TransferOptionsProvider, ValidatorsProvider, + FavoriteValidatorsProvider, FastUnstakeProvider, PayoutsProvider, UIProvider, diff --git a/src/contexts/Validators/FavoriteValidators/defaults.ts b/src/contexts/Validators/FavoriteValidators/defaults.ts new file mode 100644 index 0000000000..5559364cec --- /dev/null +++ b/src/contexts/Validators/FavoriteValidators/defaults.ts @@ -0,0 +1,20 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ + +import BigNumber from 'bignumber.js'; +import type { FavoriteValidatorsContextInterface } from '../types'; + +export const defaultValidatorsData = { + entries: [], + notFullCommissionCount: 0, + totalNonAllCommission: new BigNumber(0), +}; + +export const defaultFavoriteValidatorsContext: FavoriteValidatorsContextInterface = + { + addFavorite: (a) => {}, + removeFavorite: (a) => {}, + favorites: [], + favoritesList: null, + }; diff --git a/src/contexts/Validators/FavoriteValidators/index.tsx b/src/contexts/Validators/FavoriteValidators/index.tsx new file mode 100644 index 0000000000..05547ec827 --- /dev/null +++ b/src/contexts/Validators/FavoriteValidators/index.tsx @@ -0,0 +1,95 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: GPL-3.0-only + +import React, { useState } from 'react'; +import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; +import { useApi } from 'contexts/Api'; +import type { Validator, FavoriteValidatorsContextInterface } from '../types'; +import { getLocalFavorites } from '../Utils'; +import { defaultFavoriteValidatorsContext } from './defaults'; +import { useValidators } from '../ValidatorEntries'; + +export const FavoriteValidatorsProvider = ({ + children, +}: { + children: React.ReactNode; +}) => { + const { isReady, network } = useApi(); + const { fetchValidatorPrefs } = useValidators(); + const { name } = network; + + // Stores the user's favorite validators. + const [favorites, setFavorites] = useState<string[]>(getLocalFavorites(name)); + + // Stores the user's favorites validators as list. + const [favoritesList, setFavoritesList] = useState<Validator[] | null>(null); + + const fetchFavoriteList = async () => { + // fetch preferences + const favoritesWithPrefs = await fetchValidatorPrefs( + [...favorites].map((address) => ({ + address, + })) + ); + setFavoritesList(favoritesWithPrefs || []); + }; + + // Adds a favorite validator. + const addFavorite = (address: string) => { + const newFavorites: any = Object.assign(favorites); + if (!newFavorites.includes(address)) { + newFavorites.push(address); + } + + localStorage.setItem( + `${network.name}_favorites`, + JSON.stringify(newFavorites) + ); + setFavorites([...newFavorites]); + }; + + // Removes a favorite validator if they exist. + const removeFavorite = (address: string) => { + const newFavorites = Object.assign(favorites).filter( + (validator: string) => validator !== address + ); + localStorage.setItem( + `${network.name}_favorites`, + JSON.stringify(newFavorites) + ); + setFavorites([...newFavorites]); + }; + + // Re-fetch favorites on network change + useEffectIgnoreInitial(() => { + setFavorites(getLocalFavorites(name)); + }, [network]); + + // Fetch favorites in validator list format + useEffectIgnoreInitial(() => { + if (isReady) { + fetchFavoriteList(); + } + }, [isReady, favorites]); + + return ( + <FavoriteValidatorsContext.Provider + value={{ + addFavorite, + removeFavorite, + favorites, + favoritesList, + }} + > + {children} + </FavoriteValidatorsContext.Provider> + ); +}; + +export const FavoriteValidatorsContext = + React.createContext<FavoriteValidatorsContextInterface>( + defaultFavoriteValidatorsContext + ); + +export const useFavoriteValidators = () => + React.useContext(FavoriteValidatorsContext); diff --git a/src/contexts/Validators/defaults.ts b/src/contexts/Validators/ValidatorEntries/defaults.ts similarity index 78% rename from src/contexts/Validators/defaults.ts rename to src/contexts/Validators/ValidatorEntries/defaults.ts index acf7581dcd..debbfe4af3 100644 --- a/src/contexts/Validators/defaults.ts +++ b/src/contexts/Validators/ValidatorEntries/defaults.ts @@ -3,7 +3,7 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ import BigNumber from 'bignumber.js'; -import type { ValidatorsContextInterface } from 'contexts/Validators/types'; +import type { ValidatorsContextInterface } from '../types'; export const defaultValidatorsData = { entries: [], @@ -12,17 +12,14 @@ export const defaultValidatorsData = { }; export const defaultValidatorsContext: ValidatorsContextInterface = { - addFavorite: (a) => {}, - removeFavorite: (a) => {}, + fetchValidatorPrefs: async (a) => new Promise((resolve) => resolve(null)), validators: [], validatorIdentities: {}, validatorSupers: {}, avgCommission: 0, sessionValidators: [], sessionParaValidators: [], - favorites: [], nominated: null, poolNominated: null, - favoritesList: null, validatorCommunity: [], }; diff --git a/src/contexts/Validators/index.tsx b/src/contexts/Validators/ValidatorEntries/index.tsx similarity index 84% rename from src/contexts/Validators/index.tsx rename to src/contexts/Validators/ValidatorEntries/index.tsx index 536aaff2c4..597dc71a3a 100644 --- a/src/contexts/Validators/index.tsx +++ b/src/contexts/Validators/ValidatorEntries/index.tsx @@ -5,26 +5,22 @@ import { greaterThanZero, shuffle } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import React, { useEffect, useRef, useState } from 'react'; import { ValidatorCommunity } from '@polkadot-cloud/community/validators'; +import type { AnyApi, Fn, Sync } from 'types'; +import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; +import { useApi } from 'contexts/Api'; +import { useBonded } from 'contexts/Bonded'; +import { useConnect } from 'contexts/Connect'; +import { useNetworkMetrics } from 'contexts/Network'; +import { useActivePools } from 'contexts/Pools/ActivePools'; import type { Identity, Validator, ValidatorAddresses, ValidatorSuper, ValidatorsContextInterface, -} from 'contexts/Validators/types'; -import type { AnyApi, Fn, Sync } from 'types'; -import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; -import { useApi } from '../Api'; -import { useBonded } from '../Bonded'; -import { useConnect } from '../Connect'; -import { useNetworkMetrics } from '../Network'; -import { useActivePools } from '../Pools/ActivePools'; +} from '../types'; import { defaultValidatorsData, defaultValidatorsContext } from './defaults'; -import { - getLocalEraValidators, - getLocalFavorites, - setLocalEraValidators, -} from './Utils'; +import { getLocalEraValidators, setLocalEraValidators } from '../Utils'; export const ValidatorsProvider = ({ children, @@ -68,18 +64,12 @@ export const ValidatorsProvider = ({ // Stores the average network commission rate. const [avgCommission, setAvgCommission] = useState(0); - // Stores the user's favorite validators. - const [favorites, setFavorites] = useState<string[]>(getLocalFavorites(name)); - // stores the user's nominated validators as list const [nominated, setNominated] = useState<Validator[] | null>(null); // stores the nominated validators by the members pool's as list const [poolNominated, setPoolNominated] = useState<Validator[] | null>(null); - // stores the user's favorites validators as list - const [favoritesList, setFavoritesList] = useState<Validator[] | null>(null); - // Stores a randomised validator community dataset. const [validatorCommunity] = useState<any>([...shuffle(ValidatorCommunity)]); @@ -160,28 +150,6 @@ export const ValidatorsProvider = ({ setPoolNominated(nominationsWithPrefs || []); }; - // re-fetch favorites on network change - useEffectIgnoreInitial(() => { - setFavorites(getLocalFavorites(name)); - }, [network]); - - // fetch favorites in validator list format - useEffectIgnoreInitial(() => { - if (isReady) { - fetchFavoriteList(); - } - }, [isReady, favorites]); - - const fetchFavoriteList = async () => { - // fetch preferences - const favoritesWithPrefs = await fetchValidatorPrefs( - [...favorites].map((address) => ({ - address, - })) - ); - setFavoritesList(favoritesWithPrefs || []); - }; - // Fetch validator entries and format the returning data. const getValidatorEntries = async () => { if (!isReady || !api) return defaultValidatorsData; @@ -366,51 +334,18 @@ export const ValidatorsProvider = ({ return supersWithIdentity; }; - /* - * Adds a favorite validator. - */ - const addFavorite = (address: string) => { - const newFavorites: any = Object.assign(favorites); - if (!newFavorites.includes(address)) { - newFavorites.push(address); - } - - localStorage.setItem( - `${network.name}_favorites`, - JSON.stringify(newFavorites) - ); - setFavorites([...newFavorites]); - }; - - /* - * Removes a favorite validator if they exist. - */ - const removeFavorite = (address: string) => { - const newFavorites = Object.assign(favorites).filter( - (validator: string) => validator !== address - ); - localStorage.setItem( - `${network.name}_favorites`, - JSON.stringify(newFavorites) - ); - setFavorites([...newFavorites]); - }; - return ( <ValidatorsContext.Provider value={{ - addFavorite, - removeFavorite, + fetchValidatorPrefs, validators, validatorIdentities, validatorSupers, avgCommission, sessionValidators, sessionParaValidators, - favorites, nominated, poolNominated, - favoritesList, validatorCommunity, }} > diff --git a/src/contexts/Validators/types.ts b/src/contexts/Validators/types.ts index 9c1a8df5a1..99cb7a220c 100644 --- a/src/contexts/Validators/types.ts +++ b/src/contexts/Validators/types.ts @@ -4,21 +4,25 @@ import type { AnyJson } from 'types'; export interface ValidatorsContextInterface { - addFavorite: (a: string) => void; - removeFavorite: (a: string) => void; + fetchValidatorPrefs: (a: ValidatorAddresses) => Promise<Validator[] | null>; validators: Validator[]; validatorIdentities: Record<string, Identity>; validatorSupers: Record<string, AnyJson>; avgCommission: number; sessionValidators: string[]; sessionParaValidators: string[]; - favorites: string[]; nominated: Validator[] | null; poolNominated: Validator[] | null; - favoritesList: Validator[] | null; validatorCommunity: any[]; } +export interface FavoriteValidatorsContextInterface { + addFavorite: (a: string) => void; + removeFavorite: (a: string) => void; + favorites: string[]; + favoritesList: Validator[] | null; +} + export interface Identity { deposit: string; info: AnyJson; diff --git a/src/library/GenerateNominations/index.tsx b/src/library/GenerateNominations/index.tsx index 7f3b6eadb8..14209cdae9 100644 --- a/src/library/GenerateNominations/index.tsx +++ b/src/library/GenerateNominations/index.tsx @@ -15,7 +15,7 @@ import { useEffect, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; -import { useValidators } from 'contexts/Validators'; +import { useValidators } from 'contexts/Validators/ValidatorEntries'; import { useUnstaking } from 'library/Hooks/useUnstaking'; import { SelectableWrapper } from 'library/List'; import { SelectItems } from 'library/SelectItems'; @@ -24,6 +24,7 @@ import { ValidatorList } from 'library/ValidatorList'; import { Wrapper } from 'pages/Overview/NetworkSats/Wrappers'; import { useStaking } from 'contexts/Staking'; import { useOverlay } from '@polkadot-cloud/react/hooks'; +import { useFavoriteValidators } from 'contexts/Validators/FavoriteValidators'; import type { GenerateNominationsInnerProps, Nominations, @@ -36,11 +37,12 @@ export const GenerateNominations = ({ batchKey, }: GenerateNominationsInnerProps) => { const { t } = useTranslation('library'); - const { openModal } = useOverlay().modal; const { isReady, consts } = useApi(); + const { openModal } = useOverlay().modal; const { isFastUnstaking } = useUnstaking(); - const { activeAccount, isReadOnlyAccount } = useConnect(); const { stakers } = useStaking().eraStakers; + const { favoritesList } = useFavoriteValidators(); + const { activeAccount, isReadOnlyAccount } = useConnect(); const { validators, validatorIdentities, validatorSupers } = useValidators(); const { fetch: fetchFromMethod, @@ -49,10 +51,6 @@ export const GenerateNominations = ({ } = useFetchMehods(); const { maxNominations } = consts; - let { favoritesList } = useValidators(); - if (favoritesList === null) { - favoritesList = []; - } // store the method of fetching validators const [method, setMethod] = useState<string | null>( defaultNominations.length ? 'Manual' : null diff --git a/src/library/GenerateNominations/useFetchMethods.tsx b/src/library/GenerateNominations/useFetchMethods.tsx index 0d67198084..bb9614ae6f 100644 --- a/src/library/GenerateNominations/useFetchMethods.tsx +++ b/src/library/GenerateNominations/useFetchMethods.tsx @@ -2,17 +2,15 @@ // SPDX-License-Identifier: GPL-3.0-only import { shuffle } from '@polkadot-cloud/utils'; -import { useValidators } from 'contexts/Validators'; +import { useFavoriteValidators } from 'contexts/Validators/FavoriteValidators'; +import { useValidators } from 'contexts/Validators/ValidatorEntries'; import type { Validator } from 'contexts/Validators/types'; import { useValidatorFilters } from 'library/Hooks/useValidatorFilters'; export const useFetchMehods = () => { const { validators, sessionParaValidators } = useValidators(); const { applyFilter, applyOrder } = useValidatorFilters(); - let { favoritesList } = useValidators(); - if (favoritesList === null) { - favoritesList = []; - } + const { favoritesList } = useFavoriteValidators(); const fetch = (method: string) => { let nominations; @@ -56,7 +54,7 @@ export const useFetchMehods = () => { return favs; } - if (favoritesList.length) { + if (favoritesList?.length) { // take subset of up to 16 favorites favs = favoritesList.slice(0, 16); } diff --git a/src/library/Headers/index.tsx b/src/library/Headers/index.tsx index 6e9206cfe3..c4db3ff5ec 100644 --- a/src/library/Headers/index.tsx +++ b/src/library/Headers/index.tsx @@ -8,7 +8,7 @@ import { usePlugins } from 'contexts/Plugins'; import { useBondedPools } from 'contexts/Pools/BondedPools'; import { usePoolMembers } from 'contexts/Pools/PoolMembers'; import { useUi } from 'contexts/UI'; -import { useValidators } from 'contexts/Validators'; +import { useValidators } from 'contexts/Validators/ValidatorEntries'; import { usePayouts } from 'contexts/Payouts'; import { Connect } from './Connect'; import { Connected } from './Connected'; diff --git a/src/library/Hooks/useNominationStatus/index.tsx b/src/library/Hooks/useNominationStatus/index.tsx index 5830ac8ed0..97eb1e3a09 100644 --- a/src/library/Hooks/useNominationStatus/index.tsx +++ b/src/library/Hooks/useNominationStatus/index.tsx @@ -9,7 +9,7 @@ import { useBonded } from 'contexts/Bonded'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { useStaking } from 'contexts/Staking'; import { useUi } from 'contexts/UI'; -import { useValidators } from 'contexts/Validators'; +import { useValidators } from 'contexts/Validators/ValidatorEntries'; import type { AnyJson, MaybeAccount } from 'types'; export const useNominationStatus = () => { diff --git a/src/library/Hooks/useValidatorFilters/index.tsx b/src/library/Hooks/useValidatorFilters/index.tsx index e38d9e39fb..a010b2044b 100644 --- a/src/library/Hooks/useValidatorFilters/index.tsx +++ b/src/library/Hooks/useValidatorFilters/index.tsx @@ -3,7 +3,7 @@ import { u8aToString, u8aUnwrapBytes } from '@polkadot/util'; import { useTranslation } from 'react-i18next'; -import { useValidators } from 'contexts/Validators'; +import { useValidators } from 'contexts/Validators/ValidatorEntries'; import type { AnyFunction, AnyJson } from 'types'; import { useStaking } from 'contexts/Staking'; diff --git a/src/library/ListItem/Labels/FavoriteValidator.tsx b/src/library/ListItem/Labels/FavoriteValidator.tsx index 7be27d77a5..043c2bf91c 100644 --- a/src/library/ListItem/Labels/FavoriteValidator.tsx +++ b/src/library/ListItem/Labels/FavoriteValidator.tsx @@ -7,15 +7,15 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { useTranslation } from 'react-i18next'; import { useNotifications } from 'contexts/Notifications'; import { useTooltip } from 'contexts/Tooltip'; -import { useValidators } from 'contexts/Validators'; import { TooltipTrigger } from 'library/ListItem/Wrappers'; +import { useFavoriteValidators } from 'contexts/Validators/FavoriteValidators'; import type { FavoriteProps } from '../types'; export const FavoriteValidator = ({ address }: FavoriteProps) => { const { t } = useTranslation('library'); - const { addNotification } = useNotifications(); - const { favorites, addFavorite, removeFavorite } = useValidators(); const { setTooltipTextAndOpen } = useTooltip(); + const { addNotification } = useNotifications(); + const { favorites, addFavorite, removeFavorite } = useFavoriteValidators(); const isFavorite = favorites.includes(address); diff --git a/src/library/ListItem/Labels/Identity.tsx b/src/library/ListItem/Labels/Identity.tsx index 610e642333..19df70cb25 100644 --- a/src/library/ListItem/Labels/Identity.tsx +++ b/src/library/ListItem/Labels/Identity.tsx @@ -3,7 +3,7 @@ import { clipAddress } from '@polkadot-cloud/utils'; import { useEffect, useState } from 'react'; -import { useValidators } from 'contexts/Validators'; +import { useValidators } from 'contexts/Validators/ValidatorEntries'; import { Identicon } from 'library/Identicon'; import { IdentityWrapper } from 'library/ListItem/Wrappers'; import { getIdentityDisplay } from '../../ValidatorList/Validator/Utils'; diff --git a/src/library/ListItem/Labels/ParaValidator.tsx b/src/library/ListItem/Labels/ParaValidator.tsx index bb4be28e99..0b83068372 100644 --- a/src/library/ListItem/Labels/ParaValidator.tsx +++ b/src/library/ListItem/Labels/ParaValidator.tsx @@ -5,7 +5,7 @@ import { faCubes } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { useTranslation } from 'react-i18next'; import { useTooltip } from 'contexts/Tooltip'; -import { useValidators } from 'contexts/Validators'; +import { useValidators } from 'contexts/Validators/ValidatorEntries'; import { TooltipTrigger } from 'library/ListItem/Wrappers'; import type { ParaValidatorProps } from '../types'; diff --git a/src/library/Pool/index.tsx b/src/library/Pool/index.tsx index 10d9c5cd6f..b3818ef3df 100644 --- a/src/library/Pool/index.tsx +++ b/src/library/Pool/index.tsx @@ -13,7 +13,7 @@ import type { NotificationText } from 'contexts/Notifications/types'; import { useBondedPools } from 'contexts/Pools/BondedPools'; import { usePoolMemberships } from 'contexts/Pools/PoolMemberships'; import { useUi } from 'contexts/UI'; -import { useValidators } from 'contexts/Validators'; +import { useValidators } from 'contexts/Validators/ValidatorEntries'; import { usePoolCommission } from 'library/Hooks/usePoolCommission'; import { FavoritePool } from 'library/ListItem/Labels/FavoritePool'; import { PoolBonded } from 'library/ListItem/Labels/PoolBonded'; diff --git a/src/library/ValidatorList/Validator/Default.tsx b/src/library/ValidatorList/Validator/Default.tsx index 51dd759365..aeabbba26b 100644 --- a/src/library/ValidatorList/Validator/Default.tsx +++ b/src/library/ValidatorList/Validator/Default.tsx @@ -18,7 +18,7 @@ import { Wrapper, } from 'library/ListItem/Wrappers'; import { useOverlay } from '@polkadot-cloud/react/hooks'; -import { useValidators } from '../../../contexts/Validators'; +import { useValidators } from '../../../contexts/Validators/ValidatorEntries'; import { useList } from '../../List/context'; import { Blocked } from '../../ListItem/Labels/Blocked'; import { Commission } from '../../ListItem/Labels/Commission'; diff --git a/src/library/ValidatorList/Validator/Nomination.tsx b/src/library/ValidatorList/Validator/Nomination.tsx index 388320d1d6..1f1be4097d 100644 --- a/src/library/ValidatorList/Validator/Nomination.tsx +++ b/src/library/ValidatorList/Validator/Nomination.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { useValidators } from 'contexts/Validators'; +import { useValidators } from 'contexts/Validators/ValidatorEntries'; import { ParaValidator } from 'library/ListItem/Labels/ParaValidator'; import { Labels, Separator, Wrapper } from 'library/ListItem/Wrappers'; import { useList } from '../../List/context'; diff --git a/src/modals/NominateFromFavorites/index.tsx b/src/modals/NominateFromFavorites/index.tsx index bc31d0caba..b586ebd32f 100644 --- a/src/modals/NominateFromFavorites/index.tsx +++ b/src/modals/NominateFromFavorites/index.tsx @@ -12,7 +12,6 @@ import { useApi } from 'contexts/Api'; import { useBonded } from 'contexts/Bonded'; import { useConnect } from 'contexts/Connect'; import { useActivePools } from 'contexts/Pools/ActivePools'; -import { useValidators } from 'contexts/Validators'; import type { Validator } from 'contexts/Validators/types'; import { Warning } from 'library/Form/Warning'; import { useSignerWarnings } from 'library/Hooks/useSignerWarnings'; @@ -22,6 +21,7 @@ import { SubmitTx } from 'library/SubmitTx'; import { ValidatorList } from 'library/ValidatorList'; import { useTxMeta } from 'contexts/TxMeta'; import { useOverlay } from '@polkadot-cloud/react/hooks'; +import { useFavoriteValidators } from 'contexts/Validators/FavoriteValidators'; import { ListWrapper } from './Wrappers'; export const NominateFromFavorites = () => { @@ -30,7 +30,7 @@ export const NominateFromFavorites = () => { const { activeAccount } = useConnect(); const { notEnoughFunds } = useTxMeta(); const { getBondedAccount } = useBonded(); - const { favoritesList } = useValidators(); + const { favoritesList } = useFavoriteValidators(); const { getSignerWarnings } = useSignerWarnings(); const { config: { options }, diff --git a/src/modals/SelectFavorites/index.tsx b/src/modals/SelectFavorites/index.tsx index 44d5714342..aa33077580 100644 --- a/src/modals/SelectFavorites/index.tsx +++ b/src/modals/SelectFavorites/index.tsx @@ -5,11 +5,11 @@ import { ModalPadding } from '@polkadot-cloud/react'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; -import { useValidators } from 'contexts/Validators'; import type { Validator } from 'contexts/Validators/types'; import { Title } from 'library/Modal/Title'; import { ValidatorList } from 'library/ValidatorList'; import { useOverlay } from '@polkadot-cloud/react/hooks'; +import { useFavoriteValidators } from 'contexts/Validators/FavoriteValidators'; import { FooterWrapper, ListWrapper } from './Wrappers'; export const SelectFavorites = () => { @@ -20,7 +20,7 @@ export const SelectFavorites = () => { setModalStatus, setModalResize, } = useOverlay().modal; - const { favoritesList } = useValidators(); + const { favoritesList } = useFavoriteValidators(); const { maxNominations } = consts; const { nominations, callback: generateNominationsCallback } = options; diff --git a/src/pages/Community/Entity.tsx b/src/pages/Community/Entity.tsx index 3d7117580b..0e721db6b3 100644 --- a/src/pages/Community/Entity.tsx +++ b/src/pages/Community/Entity.tsx @@ -6,7 +6,7 @@ import { ButtonSecondary, PageHeading, PageRow } from '@polkadot-cloud/react'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; -import { useValidators } from 'contexts/Validators'; +import { useValidators } from 'contexts/Validators/ValidatorEntries'; import { CardWrapper } from 'library/Card/Wrappers'; import { ValidatorList } from 'library/ValidatorList'; import { Item } from './Item'; diff --git a/src/pages/Community/List.tsx b/src/pages/Community/List.tsx index 24f2bccc56..0235ba48f0 100644 --- a/src/pages/Community/List.tsx +++ b/src/pages/Community/List.tsx @@ -4,7 +4,7 @@ import { PageRow } from '@polkadot-cloud/react'; import { useEffect, useState } from 'react'; import { useApi } from 'contexts/Api'; -import { useValidators } from 'contexts/Validators'; +import { useValidators } from 'contexts/Validators/ValidatorEntries'; import { Item } from './Item'; import { ItemsWrapper } from './Wrappers'; import { useCommunitySections } from './context'; diff --git a/src/pages/Nominate/Active/Nominations/index.tsx b/src/pages/Nominate/Active/Nominations/index.tsx index a5d780e6ed..04bc272d93 100644 --- a/src/pages/Nominate/Active/Nominations/index.tsx +++ b/src/pages/Nominate/Active/Nominations/index.tsx @@ -10,12 +10,13 @@ import { useHelp } from 'contexts/Help'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { useStaking } from 'contexts/Staking'; import { useUi } from 'contexts/UI'; -import { useValidators } from 'contexts/Validators'; +import { useValidators } from 'contexts/Validators/ValidatorEntries'; import { CardHeaderWrapper } from 'library/Card/Wrappers'; import { useUnstaking } from 'library/Hooks/useUnstaking'; import { ValidatorList } from 'library/ValidatorList'; import type { MaybeAccount } from 'types'; import { useOverlay } from '@polkadot-cloud/react/hooks'; +import { useFavoriteValidators } from 'contexts/Validators/FavoriteValidators'; import { Wrapper } from './Wrapper'; export const Nominations = ({ @@ -26,18 +27,15 @@ export const Nominations = ({ nominator: MaybeAccount; }) => { const { t } = useTranslation('pages'); - const { openModal } = useOverlay().modal; - const { inSetup } = useStaking(); const { isSyncing } = useUi(); - const { activeAccount, isReadOnlyAccount } = useConnect(); - const { getAccountNominations } = useBonded(); + const { openHelp } = useHelp(); + const { inSetup } = useStaking(); + const { openModal } = useOverlay().modal; const { isFastUnstaking } = useUnstaking(); + const { getAccountNominations } = useBonded(); + const { favoritesList } = useFavoriteValidators(); + const { activeAccount, isReadOnlyAccount } = useConnect(); const { nominated: stakeNominated, poolNominated } = useValidators(); - const { openHelp } = useHelp(); - let { favoritesList } = useValidators(); - if (favoritesList === null) { - favoritesList = []; - } const { poolNominations, diff --git a/src/pages/Payouts/PayoutList/index.tsx b/src/pages/Payouts/PayoutList/index.tsx index 6d33519996..0ec2d8c4e9 100644 --- a/src/pages/Payouts/PayoutList/index.tsx +++ b/src/pages/Payouts/PayoutList/index.tsx @@ -15,7 +15,7 @@ import { useNetworkMetrics } from 'contexts/Network'; import { useBondedPools } from 'contexts/Pools/BondedPools'; import { StakingContext } from 'contexts/Staking'; import { useTheme } from 'contexts/Themes'; -import { useValidators } from 'contexts/Validators'; +import { useValidators } from 'contexts/Validators/ValidatorEntries'; import { Header, List, Wrapper as ListWrapper } from 'library/List'; import { MotionContainer } from 'library/List/MotionContainer'; import { Pagination } from 'library/List/Pagination'; diff --git a/src/pages/Validators/AllValidators.tsx b/src/pages/Validators/AllValidators.tsx index ffb894eec1..6682901c68 100644 --- a/src/pages/Validators/AllValidators.tsx +++ b/src/pages/Validators/AllValidators.tsx @@ -4,7 +4,7 @@ import { PageRow } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; -import { useValidators } from 'contexts/Validators'; +import { useValidators } from 'contexts/Validators/ValidatorEntries'; import { CardWrapper } from 'library/Card/Wrappers'; import { StatBoxList } from 'library/StatBoxList'; import { ValidatorList } from 'library/ValidatorList'; diff --git a/src/pages/Validators/Favorites.tsx b/src/pages/Validators/Favorites.tsx index 94300842b7..88fee1fd5d 100644 --- a/src/pages/Validators/Favorites.tsx +++ b/src/pages/Validators/Favorites.tsx @@ -4,14 +4,14 @@ import { PageRow } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; -import { useValidators } from 'contexts/Validators'; import { CardWrapper } from 'library/Card/Wrappers'; import { ValidatorList } from 'library/ValidatorList'; +import { useFavoriteValidators } from 'contexts/Validators/FavoriteValidators'; export const ValidatorFavorites = () => { const { t } = useTranslation('pages'); const { isReady } = useApi(); - const { favoritesList } = useValidators(); + const { favoritesList } = useFavoriteValidators(); const batchKey = 'favorite_validators'; diff --git a/src/pages/Validators/Stats/AverageCommission.tsx b/src/pages/Validators/Stats/AverageCommission.tsx index 00a2d4d211..77c8c8f7df 100644 --- a/src/pages/Validators/Stats/AverageCommission.tsx +++ b/src/pages/Validators/Stats/AverageCommission.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only import { useTranslation } from 'react-i18next'; -import { useValidators } from 'contexts/Validators'; +import { useValidators } from 'contexts/Validators/ValidatorEntries'; import { Text } from 'library/StatBoxList/Text'; export const AverageCommissionStat = () => { From 30de89eee7242c7b1ddce949faa44ae68e93f68a Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Mon, 28 Aug 2023 13:20:17 +0700 Subject: [PATCH 352/435] make transparent prop a class --- src/library/Card/Wrappers.ts | 29 +++++++++++---------------- src/modals/ValidatorMetrics/index.tsx | 2 +- 2 files changed, 13 insertions(+), 18 deletions(-) diff --git a/src/library/Card/Wrappers.ts b/src/library/Card/Wrappers.ts index b245a16a53..6109ac26d5 100644 --- a/src/library/Card/Wrappers.ts +++ b/src/library/Card/Wrappers.ts @@ -74,25 +74,20 @@ export const CardWrapper = styled.div<CardWrapperProps>` flex: 1; position: relative; overflow: hidden; - margin-top: ${(props) => (props.$transparent ? '0rem' : '1.4rem')}; - padding: ${(props) => - props.$noPadding ? 0 : props.$transparent ? 0 : '1.5rem'}; - ${(props) => - props.$transparent && - ` - border: none; - box-shadow: none; - background: none; - border-radius: 0rem; - `} + margin-top: 1.4rem; + padding: ${(props) => (props.$noPadding ? 0 : '1.5rem')}; @media (max-width: ${SideMenuStickyThreshold}px) { - padding: ${(props) => - props.$noPadding - ? '0rem' - : props.$transparent - ? '0rem 0rem' - : '1rem 0.75rem'}; + padding: ${(props) => (props.$noPadding ? '0rem' : '1rem 0.75rem')}; + } + + &.transparent { + background: none; + border: none; + border-radius: 0; + box-shadow: none; + margin-top: 0; + padding: 0; } ${(props) => diff --git a/src/modals/ValidatorMetrics/index.tsx b/src/modals/ValidatorMetrics/index.tsx index 2fb2224858..1e2d3a339a 100644 --- a/src/modals/ValidatorMetrics/index.tsx +++ b/src/modals/ValidatorMetrics/index.tsx @@ -110,6 +110,7 @@ export const ValidatorMetrics = () => { > <SubscanButton /> <CardWrapper + className="transparent" style={{ margin: '0 0 0 0.5rem', height: 350, @@ -117,7 +118,6 @@ export const ValidatorMetrics = () => { boxShadow: 'none', }} $flex - $transparent > <CardHeaderWrapper> <h4> From 663ed4e92059c10effb20f66ad8cb206666fc412 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Mon, 28 Aug 2023 13:23:29 +0700 Subject: [PATCH 353/435] rm noPadding, $warning to class --- src/library/Card/Wrappers.ts | 9 +++++---- src/library/Graphs/types.ts | 1 - src/pages/Nominate/Active/ControllerNotStash.tsx | 2 +- src/pages/Overview/StakeStatus/index.tsx | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/library/Card/Wrappers.ts b/src/library/Card/Wrappers.ts index 6109ac26d5..c3ce245f10 100644 --- a/src/library/Card/Wrappers.ts +++ b/src/library/Card/Wrappers.ts @@ -75,10 +75,10 @@ export const CardWrapper = styled.div<CardWrapperProps>` position: relative; overflow: hidden; margin-top: 1.4rem; - padding: ${(props) => (props.$noPadding ? 0 : '1.5rem')}; + padding: 1.5rem; @media (max-width: ${SideMenuStickyThreshold}px) { - padding: ${(props) => (props.$noPadding ? '0rem' : '1rem 0.75rem')}; + padding: 1rem 0.75rem; } &.transparent { @@ -90,8 +90,9 @@ export const CardWrapper = styled.div<CardWrapperProps>` padding: 0; } - ${(props) => - props.$warning ? 'border: 1px solid var(--status-warning-color);' : ''} + &.warning { + border: 1px solid var(--status-warning-color); + } @media (min-width: ${SideMenuStickyThreshold + 1}px) { height: ${(props) => (props.height ? `${props.height}px` : 'inherit')}; diff --git a/src/library/Graphs/types.ts b/src/library/Graphs/types.ts index 8354cdf790..6fb59dfb8c 100644 --- a/src/library/Graphs/types.ts +++ b/src/library/Graphs/types.ts @@ -42,7 +42,6 @@ export interface CardWrapperProps { $flex?: boolean; $noPadding?: boolean; $transparent?: boolean; - $warning?: boolean; border?: string; height?: string | number; } diff --git a/src/pages/Nominate/Active/ControllerNotStash.tsx b/src/pages/Nominate/Active/ControllerNotStash.tsx index e5b7e33de8..3e45b0abe9 100644 --- a/src/pages/Nominate/Active/ControllerNotStash.tsx +++ b/src/pages/Nominate/Active/ControllerNotStash.tsx @@ -42,7 +42,7 @@ export const ControllerNotStash = () => { ? !isSyncing && !isReadOnlyAccount(activeAccount) && ( <PageRow> - <CardWrapper $warning> + <CardWrapper className="warning"> <CardHeaderWrapper> <h3> <FontAwesomeIcon icon={faExclamationTriangle} /> diff --git a/src/pages/Overview/StakeStatus/index.tsx b/src/pages/Overview/StakeStatus/index.tsx index 5f263b5b96..d689a64039 100644 --- a/src/pages/Overview/StakeStatus/index.tsx +++ b/src/pages/Overview/StakeStatus/index.tsx @@ -14,7 +14,7 @@ export const StakeStatus = () => { const showTips = plugins.includes('tips'); return ( - <CardWrapper $noPadding> + <CardWrapper style={{ padding: 0 }}> <StatusWrapper> <RowSection secondary> <section> From bdd97ca211c960f7e17c379115c20db48dae3c06 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Mon, 28 Aug 2023 13:31:26 +0700 Subject: [PATCH 354/435] rm .withMargin --- src/library/Card/Wrappers.ts | 5 ----- src/pages/Pools/Create/PoolRoles/index.tsx | 5 +++-- src/pages/Pools/Roles/index.tsx | 24 +++++++++++++++------- src/pages/Pools/Roles/types.ts | 1 + 4 files changed, 21 insertions(+), 14 deletions(-) diff --git a/src/library/Card/Wrappers.ts b/src/library/Card/Wrappers.ts index c3ce245f10..fd78669105 100644 --- a/src/library/Card/Wrappers.ts +++ b/src/library/Card/Wrappers.ts @@ -125,9 +125,4 @@ export const CardWrapper = styled.div<CardWrapperProps>` font-size: 1rem; text-align: left; } - h4 { - &.withMargin { - margin: 0.5rem 0; - } - } `; diff --git a/src/pages/Pools/Create/PoolRoles/index.tsx b/src/pages/Pools/Create/PoolRoles/index.tsx index d769d1cd8a..47aa431d20 100644 --- a/src/pages/Pools/Create/PoolRoles/index.tsx +++ b/src/pages/Pools/Create/PoolRoles/index.tsx @@ -68,16 +68,17 @@ export const PoolRoles = ({ section }: SetupStepProps) => { bondFor="pool" /> <MotionContainer thisSection={section} activeSection={setup.section}> - <h4 className="withMargin"> + <h4 style={{ margin: '0.5rem 0' }}> <Trans defaults={t('pools.poolCreator')} components={{ b: <b /> }} /> </h4> - <h4 className="withMargin"> + <h4 style={{ margin: '0.5rem 0 1.5rem 0' }}> <Trans defaults={t('pools.assignedToAnyAccount')} components={{ b: <b /> }} /> </h4> <Roles + inline batchKey="pool_roles_create" listenIsValid={setRolesValid} defaultRoles={initialValue} diff --git a/src/pages/Pools/Roles/index.tsx b/src/pages/Pools/Roles/index.tsx index 6793a4f2d6..0182b6f526 100644 --- a/src/pages/Pools/Roles/index.tsx +++ b/src/pages/Pools/Roles/index.tsx @@ -6,7 +6,11 @@ import { faEdit, faTimesCircle, } from '@fortawesome/free-solid-svg-icons'; -import { ButtonHelp, ButtonPrimary } from '@polkadot-cloud/react'; +import { + ButtonHelp, + ButtonPrimary, + ButtonPrimaryInvert, +} from '@polkadot-cloud/react'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; @@ -26,6 +30,7 @@ export const Roles = ({ batchKey, defaultRoles, setters = [], + inline = false, listenIsValid = () => {}, }: RolesProps) => { const { t } = useTranslation('pages'); @@ -140,20 +145,25 @@ export const Roles = ({ setRoleEdits(newEdit); }; + const ButtonType = inline ? ButtonPrimaryInvert : ButtonPrimary; + return ( <> <CardHeaderWrapper $withAction> - <h3> - {t('pools.roles')}{' '} - <ButtonHelp marginLeft onClick={() => openHelp('Pool Roles')} /> - </h3> + {!inline && ( + <h3> + {t('pools.roles')} + <ButtonHelp marginLeft onClick={() => openHelp('Pool Roles')} /> + </h3> + )} + {!(isOwner() === true || setters.length) ? ( <></> ) : ( <> {isEditing && ( <div> - <ButtonPrimary + <ButtonType iconLeft={faTimesCircle} iconTransform="grow-1" text={t('pools.cancel')} @@ -164,7 +174,7 @@ export const Roles = ({ )}    <div> - <ButtonPrimary + <ButtonType iconLeft={isEditing ? faCheckCircle : faEdit} iconTransform="grow-1" text={isEditing ? t('pools.save') : t('pools.edit')} diff --git a/src/pages/Pools/Roles/types.ts b/src/pages/Pools/Roles/types.ts index c56a1ac78c..326001e1dd 100644 --- a/src/pages/Pools/Roles/types.ts +++ b/src/pages/Pools/Roles/types.ts @@ -8,6 +8,7 @@ export interface RolesProps { defaultRoles: PoolRoles; listenIsValid?: any; setters?: any; + inline?: boolean; } export type RoleEditEntry = { From 70c73d00093c7e173279d989f611f2d5ff618543 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Mon, 28 Aug 2023 13:33:20 +0700 Subject: [PATCH 355/435] styling --- src/library/Card/Wrappers.ts | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/library/Card/Wrappers.ts b/src/library/Card/Wrappers.ts index fd78669105..b6d7486a76 100644 --- a/src/library/Card/Wrappers.ts +++ b/src/library/Card/Wrappers.ts @@ -77,10 +77,6 @@ export const CardWrapper = styled.div<CardWrapperProps>` margin-top: 1.4rem; padding: 1.5rem; - @media (max-width: ${SideMenuStickyThreshold}px) { - padding: 1rem 0.75rem; - } - &.transparent { background: none; border: none; @@ -94,19 +90,26 @@ export const CardWrapper = styled.div<CardWrapperProps>` border: 1px solid var(--status-warning-color); } + @media (max-width: ${SideMenuStickyThreshold}px) { + padding: 1rem 0.75rem; + } + @media (min-width: ${SideMenuStickyThreshold + 1}px) { height: ${(props) => (props.height ? `${props.height}px` : 'inherit')}; } .content { padding: 0 0.5rem; + + h3, + h4 { + margin-top: 0; + } h3 { - margin-top: 0rem; margin-bottom: 0.75rem; } h4 { - margin-top: 0; margin-bottom: 0; } } From 959f70ef3984ad9bcc044a79e0a4f42a2c7dd39a Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Mon, 28 Aug 2023 13:34:45 +0700 Subject: [PATCH 356/435] rm .option --- src/library/Card/Wrappers.ts | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/library/Card/Wrappers.ts b/src/library/Card/Wrappers.ts index b6d7486a76..836241a0d8 100644 --- a/src/library/Card/Wrappers.ts +++ b/src/library/Card/Wrappers.ts @@ -121,11 +121,4 @@ export const CardWrapper = styled.div<CardWrapperProps>` width: 100%; position: relative; } - - .option { - border-bottom: 1px solid #ddd; - padding: 0.75rem 1rem; - font-size: 1rem; - text-align: left; - } `; From 06ad9e77f310cc2ad53cd7e4d506c084ef627414 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Mon, 28 Aug 2023 13:38:09 +0700 Subject: [PATCH 357/435] styling --- src/library/Card/Wrappers.ts | 16 ++++++++-------- src/library/Graphs/types.ts | 4 ---- src/modals/ValidatorMetrics/index.tsx | 3 --- src/pages/Overview/index.tsx | 4 ++-- 4 files changed, 10 insertions(+), 17 deletions(-) diff --git a/src/library/Card/Wrappers.ts b/src/library/Card/Wrappers.ts index 836241a0d8..d2d8dbbc30 100644 --- a/src/library/Card/Wrappers.ts +++ b/src/library/Card/Wrappers.ts @@ -98,6 +98,14 @@ export const CardWrapper = styled.div<CardWrapperProps>` height: ${(props) => (props.height ? `${props.height}px` : 'inherit')}; } + .inner { + padding: 1rem; + display: flex; + flex-flow: column nowrap; + width: 100%; + position: relative; + } + .content { padding: 0 0.5rem; @@ -113,12 +121,4 @@ export const CardWrapper = styled.div<CardWrapperProps>` margin-bottom: 0; } } - - .inner { - padding: 1rem; - display: flex; - flex-flow: column nowrap; - width: 100%; - position: relative; - } `; diff --git a/src/library/Graphs/types.ts b/src/library/Graphs/types.ts index 6fb59dfb8c..ff2a90f60c 100644 --- a/src/library/Graphs/types.ts +++ b/src/library/Graphs/types.ts @@ -39,10 +39,6 @@ export interface CardHeaderWrapperProps { } export interface CardWrapperProps { - $flex?: boolean; - $noPadding?: boolean; - $transparent?: boolean; - border?: string; height?: string | number; } diff --git a/src/modals/ValidatorMetrics/index.tsx b/src/modals/ValidatorMetrics/index.tsx index 1e2d3a339a..1e28e59108 100644 --- a/src/modals/ValidatorMetrics/index.tsx +++ b/src/modals/ValidatorMetrics/index.tsx @@ -114,10 +114,7 @@ export const ValidatorMetrics = () => { style={{ margin: '0 0 0 0.5rem', height: 350, - border: 'none', - boxShadow: 'none', }} - $flex > <CardHeaderWrapper> <h4> diff --git a/src/pages/Overview/index.tsx b/src/pages/Overview/index.tsx index 3d9451552a..09cf275f5a 100644 --- a/src/pages/Overview/index.tsx +++ b/src/pages/Overview/index.tsx @@ -79,13 +79,13 @@ export const Overview = () => { </PageRow> <PageRow> <RowSection secondary> - <CardWrapper height={PAYOUTS_HEIGHT} $flex> + <CardWrapper height={PAYOUTS_HEIGHT}> <BalanceChart /> <BalanceLinks /> </CardWrapper> </RowSection> <RowSection hLast vLast> - <CardWrapper style={{ minHeight: PAYOUTS_HEIGHT }} $flex> + <CardWrapper style={{ minHeight: PAYOUTS_HEIGHT }}> <SubscanButton /> <CardHeaderWrapper> <h4>{t('overview.recentPayouts')}</h4> From 7beafde0424bca09af05ab6661100124fb2a2ee2 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Mon, 28 Aug 2023 15:01:39 +0700 Subject: [PATCH 358/435] fixes --- src/library/NetworkBar/Disclaimer.tsx | 4 ++-- src/pages/Nominate/Setup/Summary/index.tsx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/library/NetworkBar/Disclaimer.tsx b/src/library/NetworkBar/Disclaimer.tsx index da11a08cc2..e54cfdd8b1 100644 --- a/src/library/NetworkBar/Disclaimer.tsx +++ b/src/library/NetworkBar/Disclaimer.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -import { ModalPadding } from '@polkadotcloud/core-ui'; -import { Title } from 'library/Overlay/Title'; +import { ModalPadding } from '@polkadot-cloud/react'; +import { Title } from 'library/Prompt/Title'; export const Disclaimer = () => ( <> diff --git a/src/pages/Nominate/Setup/Summary/index.tsx b/src/pages/Nominate/Setup/Summary/index.tsx index b6b8b9b322..7c6a81a872 100644 --- a/src/pages/Nominate/Setup/Summary/index.tsx +++ b/src/pages/Nominate/Setup/Summary/index.tsx @@ -23,7 +23,7 @@ export const Summary = ({ section }: SetupStepProps) => { const { t } = useTranslation('pages'); const { api, - network: { units, unit }, + network: { units, unit, name }, } = useApi(); const { newBatchCall } = useBatchCall(); const { getPayeeItems } = usePayeeConfig(); From 46c182c0cfaeeec142aa9d6a56002594d2f319d4 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Mon, 28 Aug 2023 15:29:43 +0700 Subject: [PATCH 359/435] remove github ci --- .github/workflows/auto-merge.yml | 17 ----------------- .github/workflows/gh-publish.yml | 23 ----------------------- .github/workflows/stale.yml | 17 ----------------- 3 files changed, 57 deletions(-) delete mode 100644 .github/workflows/auto-merge.yml delete mode 100644 .github/workflows/gh-publish.yml delete mode 100644 .github/workflows/stale.yml diff --git a/.github/workflows/auto-merge.yml b/.github/workflows/auto-merge.yml deleted file mode 100644 index 718dcae1c6..0000000000 --- a/.github/workflows/auto-merge.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: Dependabot Auto Merge - -on: pull_request - -permissions: - contents: write - pull-requests: write - -jobs: - auto-merge: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: ahmadnassri/action-dependabot-auto-merge@v2 - with: - target: minor - github-token: ${{ secrets.DEPENDABOT_TOKEN }} diff --git a/.github/workflows/gh-publish.yml b/.github/workflows/gh-publish.yml deleted file mode 100644 index 728e84f833..0000000000 --- a/.github/workflows/gh-publish.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: GitHub Pages Publish - -on: - push: - branches: [main] - -jobs: - gh-deploy: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3.5.0 - - uses: actions/setup-node@v3 - with: - node-version: 18 - registry-url: https://registry.npmjs.org - - run: yarn install - - name: Build - working-directory: '.' - run: yarn build:pages - - name: Deploy - uses: JamesIves/github-pages-deploy-action@v4 - with: - folder: build diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml deleted file mode 100644 index a472af1ab9..0000000000 --- a/.github/workflows/stale.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: 'Close Stale PRs' - -on: - schedule: - - cron: '30 1 * * *' - -jobs: - stale: - runs-on: ubuntu-latest - steps: - - uses: actions/stale@v8 - with: - stale-pr-message: 'This PR is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days.' - close-pr-message: 'This PR was closed because it has been stale for 5 days with no activity.' - days-before-pr-stale: 30 - days-before-pr-close: 5 - repo-token: ${{ secrets.GITHUB_TOKEN }} From bfeddd62d9209090d195596d1d1bfc1eaff1ea5b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Aug 2023 21:56:53 +0000 Subject: [PATCH 360/435] Bump @polkadot/util from 12.3.2 to 12.4.2 Bumps [@polkadot/util](https://github.com/polkadot-js/common/tree/HEAD/packages/util) from 12.3.2 to 12.4.2. - [Release notes](https://github.com/polkadot-js/common/releases) - [Changelog](https://github.com/polkadot-js/common/blob/master/CHANGELOG.md) - [Commits](https://github.com/polkadot-js/common/commits/v12.4.2/packages/util) --- updated-dependencies: - dependency-name: "@polkadot/util" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 58 +++++++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 52 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 71f660294d..e811375411 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "@polkadot/api": "^10.9.1", "@polkadot/keyring": "^12.1.1", "@polkadot/rpc-provider": "^10.9.1", - "@polkadot/util": "^12.1.1", + "@polkadot/util": "^12.4.2", "@polkadot/util-crypto": "12.3.2", "@polkadotcloud/react-odometer": "^0.1.19", "@substrate/connect": "^0.7.31", diff --git a/yarn.lock b/yarn.lock index 8c367166ac..42f79e1964 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1733,7 +1733,7 @@ "@scure/base" "1.1.1" tslib "^2.5.3" -"@polkadot/util@12.3.2", "@polkadot/util@^12.1.1", "@polkadot/util@^12.3.1": +"@polkadot/util@12.3.2": version "12.3.2" resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-12.3.2.tgz#f46e147b0e6a426da5ba59df4ce65de1a3effe4a" integrity sha512-y/JShcGyOamCUiSIg++XZuLHt1ktSKBaSH2K5Nw5NXlgP0+7am+GZzqPB8fQ4qhYLruEOv+YRiz0GC1Zr9S+wg== @@ -1746,6 +1746,19 @@ bn.js "^5.2.1" tslib "^2.5.3" +"@polkadot/util@^12.3.1", "@polkadot/util@^12.4.2": + version "12.4.2" + resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-12.4.2.tgz#65759f4b366c2a787fd21abacab8cf8ab1aebbf9" + integrity sha512-NcTCbnIzMb/3TvJNEbaiu/9EvYIBuzDwZfqQ4hzL0GAptkF8aDkKMDCfQ/j3FI38rR+VTPQHNky9fvWglGKGRw== + dependencies: + "@polkadot/x-bigint" "12.4.2" + "@polkadot/x-global" "12.4.2" + "@polkadot/x-textdecoder" "12.4.2" + "@polkadot/x-textencoder" "12.4.2" + "@types/bn.js" "^5.1.1" + bn.js "^5.2.1" + tslib "^2.6.2" + "@polkadot/wasm-bridge@7.2.1": version "7.2.1" resolved "https://registry.yarnpkg.com/@polkadot/wasm-bridge/-/wasm-bridge-7.2.1.tgz#8464a96552207d2b49c6f32137b24132534b91ee" @@ -1799,7 +1812,7 @@ dependencies: tslib "^2.5.0" -"@polkadot/x-bigint@12.3.2", "@polkadot/x-bigint@^12.3.1": +"@polkadot/x-bigint@12.3.2": version "12.3.2" resolved "https://registry.yarnpkg.com/@polkadot/x-bigint/-/x-bigint-12.3.2.tgz#0e99489cc7938bed40762aaaed58ded6850ab54b" integrity sha512-JLqLgfGXe/x+hZJETd5ZqfpVsbwyMsH5Nn1Q20ineMMjXN/ig+kVR8Mc15LXBMuw4g7LldFW6UUrotWnuMI8Yw== @@ -1807,6 +1820,14 @@ "@polkadot/x-global" "12.3.2" tslib "^2.5.3" +"@polkadot/x-bigint@12.4.2", "@polkadot/x-bigint@^12.3.1": + version "12.4.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-bigint/-/x-bigint-12.4.2.tgz#a63c9c926443231206726103d06c117ac2248de8" + integrity sha512-VRbkhdIf7CyWiUSyHemYi2fFWjBetUGyqpzsIHEclmzvqhKPfs7Kd2ZRdoXKU5QM56eD0sV2pyJxL34dv36/rw== + dependencies: + "@polkadot/x-global" "12.4.2" + tslib "^2.6.2" + "@polkadot/x-fetch@^12.3.1": version "12.3.2" resolved "https://registry.yarnpkg.com/@polkadot/x-fetch/-/x-fetch-12.3.2.tgz#7e8d2113268e792dd5d1b259ef13839c6aa77996" @@ -1816,13 +1837,20 @@ node-fetch "^3.3.1" tslib "^2.5.3" -"@polkadot/x-global@12.3.2", "@polkadot/x-global@^12.3.1": +"@polkadot/x-global@12.3.2": version "12.3.2" resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-12.3.2.tgz#04ac0b0e559a35107f0b95ff7889fcade3796aa3" integrity sha512-yVZq6oIegjlyh5rUZiTklgu+fL+W/DG1ypEa02683tUCB3avV5cA3PAHKptMSlb6FpweHu37lKKrqfAWrraDxg== dependencies: tslib "^2.5.3" +"@polkadot/x-global@12.4.2", "@polkadot/x-global@^12.3.1": + version "12.4.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-12.4.2.tgz#cc6ed596698678f98a53547b9adb712eadfd5175" + integrity sha512-CwbjSt1Grmn56xAj+hGC8ZB0uZxMl92K+VkBH0KxjgcbAX/D24ZD/0ds8pAnUYrO4aYHYq2j2MAGVSMdHcMBAQ== + dependencies: + tslib "^2.6.2" + "@polkadot/x-randomvalues@12.3.2": version "12.3.2" resolved "https://registry.yarnpkg.com/@polkadot/x-randomvalues/-/x-randomvalues-12.3.2.tgz#43ac489a998098bdd40b3f82f28adb5b542db2a5" @@ -1839,6 +1867,14 @@ "@polkadot/x-global" "12.3.2" tslib "^2.5.3" +"@polkadot/x-textdecoder@12.4.2": + version "12.4.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-textdecoder/-/x-textdecoder-12.4.2.tgz#fea941decbe32d24aa3f951a511bf576dc104826" + integrity sha512-cyUoKwdSIiBXAaWnGdMYqnaNHc5NV9skQh/fITis3ufKKi3pMwxJ5IwhhfDZpuKDl/3fDXF40Z3fqtTeUnoRXA== + dependencies: + "@polkadot/x-global" "12.4.2" + tslib "^2.6.2" + "@polkadot/x-textencoder@12.3.2": version "12.3.2" resolved "https://registry.yarnpkg.com/@polkadot/x-textencoder/-/x-textencoder-12.3.2.tgz#223e6f6dd78e2d81c6dcc6f244c76ceae7b08e32" @@ -1847,6 +1883,14 @@ "@polkadot/x-global" "12.3.2" tslib "^2.5.3" +"@polkadot/x-textencoder@12.4.2": + version "12.4.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-textencoder/-/x-textencoder-12.4.2.tgz#a717fe2701ade5648600ff3a34d4d1224d916ee3" + integrity sha512-xrcwx55B2K7j9CnVucGLFl0qd5sb7W5Ei6dOsWgDnZNjZPBqsx9jTBQSBv9HmyHE4GEnF4z0rpO0msy3S7Sj9Q== + dependencies: + "@polkadot/x-global" "12.4.2" + tslib "^2.6.2" + "@polkadot/x-ws@^12.3.1": version "12.3.2" resolved "https://registry.yarnpkg.com/@polkadot/x-ws/-/x-ws-12.3.2.tgz#422559dfbdaac4c965d5e1b406b6cc4529214f94" @@ -5708,10 +5752,10 @@ tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.1.0, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.5.3, tslib@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.0.tgz#b295854684dbda164e181d259a22cd779dcd7bc3" - integrity sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA== +tslib@^2.1.0, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.5.3, tslib@^2.6.0, tslib@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" From 39ee4929090a73830e13f5aa3fcfe4257f0c0638 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Aug 2023 21:58:44 +0000 Subject: [PATCH 361/435] Bump @typescript-eslint/eslint-plugin from 6.4.1 to 6.5.0 Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 6.4.1 to 6.5.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.5.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 76 +++++++++++++++++++++++++++++++++++++--------------- 2 files changed, 56 insertions(+), 22 deletions(-) diff --git a/package.json b/package.json index e811375411..dc3127e180 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "@types/react-helmet": "^6.1.6", "@types/react-qr-reader": "^2.1.4", "@types/react-scroll": "^1.8.6", - "@typescript-eslint/eslint-plugin": "^6.4.1", + "@typescript-eslint/eslint-plugin": "^6.5.0", "@typescript-eslint/parser": "^6.4.1", "@vitejs/plugin-react-swc": "^3.3.2", "eslint": "^8.48.0", diff --git a/yarn.lock b/yarn.lock index 42f79e1964..bc1eaf5e2b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2233,16 +2233,16 @@ resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.3.tgz#a136f83b0758698df454e328759dbd3d44555311" integrity sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g== -"@typescript-eslint/eslint-plugin@^6.4.1": - version "6.4.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.4.1.tgz#bc0c6f000134b53c304ad0bec4ee4753cd3e89d2" - integrity sha512-3F5PtBzUW0dYlq77Lcqo13fv+58KDwUib3BddilE8ajPJT+faGgxmI9Sw+I8ZS22BYwoir9ZhNXcLi+S+I2bkw== +"@typescript-eslint/eslint-plugin@^6.5.0": + version "6.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.5.0.tgz#5cee33edf0d45d5ec773e3b3111206b098ac8599" + integrity sha512-2pktILyjvMaScU6iK3925uvGU87E+N9rh372uGZgiMYwafaw9SXq86U04XPq3UH6tzRvNgBsub6x2DacHc33lw== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.4.1" - "@typescript-eslint/type-utils" "6.4.1" - "@typescript-eslint/utils" "6.4.1" - "@typescript-eslint/visitor-keys" "6.4.1" + "@typescript-eslint/scope-manager" "6.5.0" + "@typescript-eslint/type-utils" "6.5.0" + "@typescript-eslint/utils" "6.5.0" + "@typescript-eslint/visitor-keys" "6.5.0" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" @@ -2269,13 +2269,21 @@ "@typescript-eslint/types" "6.4.1" "@typescript-eslint/visitor-keys" "6.4.1" -"@typescript-eslint/type-utils@6.4.1": - version "6.4.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.4.1.tgz#fa21cb13016c8d6f352fe9b2d6c9ab6edc2d1857" - integrity sha512-7ON8M8NXh73SGZ5XvIqWHjgX2f+vvaOarNliGhjrJnv1vdjG0LVIz+ToYfPirOoBi56jxAKLfsLm40+RvxVVXA== +"@typescript-eslint/scope-manager@6.5.0": + version "6.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.5.0.tgz#f2cb20895aaad41b3ad27cc3a338ce8598f261c5" + integrity sha512-A8hZ7OlxURricpycp5kdPTH3XnjG85UpJS6Fn4VzeoH4T388gQJ/PGP4ole5NfKt4WDVhmLaQ/dBLNDC4Xl/Kw== dependencies: - "@typescript-eslint/typescript-estree" "6.4.1" - "@typescript-eslint/utils" "6.4.1" + "@typescript-eslint/types" "6.5.0" + "@typescript-eslint/visitor-keys" "6.5.0" + +"@typescript-eslint/type-utils@6.5.0": + version "6.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.5.0.tgz#6d246c93739282bc0d2e623f28d0dec6cfcc38d7" + integrity sha512-f7OcZOkRivtujIBQ4yrJNIuwyCQO1OjocVqntl9dgSIZAdKqicj3xFDqDOzHDlGCZX990LqhLQXWRnQvsapq8A== + dependencies: + "@typescript-eslint/typescript-estree" "6.5.0" + "@typescript-eslint/utils" "6.5.0" debug "^4.3.4" ts-api-utils "^1.0.1" @@ -2284,6 +2292,11 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.4.1.tgz#b2c61159f46dda210fed9f117f5d027f65bb5c3b" integrity sha512-zAAopbNuYu++ijY1GV2ylCsQsi3B8QvfPHVqhGdDcbx/NK5lkqMnCGU53amAjccSpk+LfeONxwzUhDzArSfZJg== +"@typescript-eslint/types@6.5.0": + version "6.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.5.0.tgz#f4e55cfd99ac5346ea772770bf212a3e689a8f04" + integrity sha512-eqLLOEF5/lU8jW3Bw+8auf4lZSbbljHR2saKnYqON12G/WsJrGeeDHWuQePoEf9ro22+JkbPfWQwKEC5WwLQ3w== + "@typescript-eslint/typescript-estree@6.4.1": version "6.4.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.4.1.tgz#91ff88101c710adb0f70a317f2f65efa9441da45" @@ -2297,17 +2310,30 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.4.1": - version "6.4.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.4.1.tgz#81bf62ff0c3119a26c19fab683582e29450717bc" - integrity sha512-F/6r2RieNeorU0zhqZNv89s9bDZSovv3bZQpUNOmmQK1L80/cV4KEu95YUJWi75u5PhboFoKUJBnZ4FQcoqhDw== +"@typescript-eslint/typescript-estree@6.5.0": + version "6.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.5.0.tgz#1cef6bc822585e9ef89d88834bc902d911d747ed" + integrity sha512-q0rGwSe9e5Kk/XzliB9h2LBc9tmXX25G0833r7kffbl5437FPWb2tbpIV9wAATebC/018pGa9fwPDuvGN+LxWQ== + dependencies: + "@typescript-eslint/types" "6.5.0" + "@typescript-eslint/visitor-keys" "6.5.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/utils@6.5.0": + version "6.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.5.0.tgz#6668bee4f7f24978b11df8a2ea42d56eebc4662c" + integrity sha512-9nqtjkNykFzeVtt9Pj6lyR9WEdd8npPhhIPM992FWVkZuS6tmxHfGVnlUcjpUP2hv8r4w35nT33mlxd+Be1ACQ== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.4.1" - "@typescript-eslint/types" "6.4.1" - "@typescript-eslint/typescript-estree" "6.4.1" + "@typescript-eslint/scope-manager" "6.5.0" + "@typescript-eslint/types" "6.5.0" + "@typescript-eslint/typescript-estree" "6.5.0" semver "^7.5.4" "@typescript-eslint/visitor-keys@6.4.1": @@ -2318,6 +2344,14 @@ "@typescript-eslint/types" "6.4.1" eslint-visitor-keys "^3.4.1" +"@typescript-eslint/visitor-keys@6.5.0": + version "6.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.5.0.tgz#1a6f474a0170a447b76f0699ce6700110fd11436" + integrity sha512-yCB/2wkbv3hPsh02ZS8dFQnij9VVQXJMN/gbQsaaY+zxALkZnxa/wagvLEFsAWMPv7d7lxQmNsIzGU1w/T/WyA== + dependencies: + "@typescript-eslint/types" "6.5.0" + eslint-visitor-keys "^3.4.1" + "@vitejs/plugin-react-swc@^3.3.2": version "3.3.2" resolved "https://registry.yarnpkg.com/@vitejs/plugin-react-swc/-/plugin-react-swc-3.3.2.tgz#34a82c1728066f48a86dfecb2f15df60f89207fb" From c1211176ba8e517f1377d1e1ad33a40d1e29add9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Aug 2023 21:59:21 +0000 Subject: [PATCH 362/435] Bump bignumber.js from 9.1.1 to 9.1.2 Bumps [bignumber.js](https://github.com/MikeMcl/bignumber.js) from 9.1.1 to 9.1.2. - [Release notes](https://github.com/MikeMcl/bignumber.js/releases) - [Changelog](https://github.com/MikeMcl/bignumber.js/blob/master/CHANGELOG.md) - [Commits](https://github.com/MikeMcl/bignumber.js/compare/v9.1.1...v9.1.2) --- updated-dependencies: - dependency-name: bignumber.js dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index dc3127e180..015403b21e 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "@polkadotcloud/react-odometer": "^0.1.19", "@substrate/connect": "^0.7.31", "@zondax/ledger-substrate": "^0.41.1", - "bignumber.js": "^9.1.1", + "bignumber.js": "^9.1.2", "bn.js": "^5.2.1", "buffer": "^6.0.3", "chart.js": "^4.4.0", diff --git a/yarn.lock b/yarn.lock index bc1eaf5e2b..812168e179 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2671,10 +2671,10 @@ big-integer@^1.6.44: resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== -bignumber.js@^9.1.1: - version "9.1.1" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.1.tgz#c4df7dc496bd849d4c9464344c1aa74228b4dac6" - integrity sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig== +bignumber.js@^9.1.2: + version "9.1.2" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" + integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== binary-extensions@^2.0.0: version "2.2.0" From 328fac0e3bbb732c7f9fe3d4bb257f63c6703398 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Aug 2023 22:16:31 +0000 Subject: [PATCH 363/435] Bump @typescript-eslint/parser from 6.4.1 to 6.5.0 Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 6.4.1 to 6.5.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.5.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 52 +++++++++------------------------------------------- 2 files changed, 10 insertions(+), 44 deletions(-) diff --git a/package.json b/package.json index 015403b21e..f992b474c6 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ "@types/react-qr-reader": "^2.1.4", "@types/react-scroll": "^1.8.6", "@typescript-eslint/eslint-plugin": "^6.5.0", - "@typescript-eslint/parser": "^6.4.1", + "@typescript-eslint/parser": "^6.5.0", "@vitejs/plugin-react-swc": "^3.3.2", "eslint": "^8.48.0", "eslint-config-airbnb": "^19.0.4", diff --git a/yarn.lock b/yarn.lock index 812168e179..04bd2a1f56 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2250,24 +2250,16 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/parser@^6.4.1": - version "6.4.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.4.1.tgz#85ad550bf4ac4aa227504f1becb828f8e46c44e3" - integrity sha512-610G6KHymg9V7EqOaNBMtD1GgpAmGROsmfHJPXNLCU9bfIuLrkdOygltK784F6Crboyd5tBFayPB7Sf0McrQwg== - dependencies: - "@typescript-eslint/scope-manager" "6.4.1" - "@typescript-eslint/types" "6.4.1" - "@typescript-eslint/typescript-estree" "6.4.1" - "@typescript-eslint/visitor-keys" "6.4.1" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@6.4.1": - version "6.4.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.4.1.tgz#4b073a30be2dbe603e44e9ae0cff7e1d3ed19278" - integrity sha512-p/OavqOQfm4/Hdrr7kvacOSFjwQ2rrDVJRPxt/o0TOWdFnjJptnjnZ+sYDR7fi4OimvIuKp+2LCkc+rt9fIW+A== +"@typescript-eslint/parser@^6.5.0": + version "6.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.5.0.tgz#3d6ed231c5e307c5f5f4a0d86893ec01e92b8c77" + integrity sha512-LMAVtR5GN8nY0G0BadkG0XIe4AcNMeyEy3DyhKGAh9k4pLSMBO7rF29JvDBpZGCmp5Pgz5RLHP6eCpSYZJQDuQ== dependencies: - "@typescript-eslint/types" "6.4.1" - "@typescript-eslint/visitor-keys" "6.4.1" + "@typescript-eslint/scope-manager" "6.5.0" + "@typescript-eslint/types" "6.5.0" + "@typescript-eslint/typescript-estree" "6.5.0" + "@typescript-eslint/visitor-keys" "6.5.0" + debug "^4.3.4" "@typescript-eslint/scope-manager@6.5.0": version "6.5.0" @@ -2287,29 +2279,11 @@ debug "^4.3.4" ts-api-utils "^1.0.1" -"@typescript-eslint/types@6.4.1": - version "6.4.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.4.1.tgz#b2c61159f46dda210fed9f117f5d027f65bb5c3b" - integrity sha512-zAAopbNuYu++ijY1GV2ylCsQsi3B8QvfPHVqhGdDcbx/NK5lkqMnCGU53amAjccSpk+LfeONxwzUhDzArSfZJg== - "@typescript-eslint/types@6.5.0": version "6.5.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.5.0.tgz#f4e55cfd99ac5346ea772770bf212a3e689a8f04" integrity sha512-eqLLOEF5/lU8jW3Bw+8auf4lZSbbljHR2saKnYqON12G/WsJrGeeDHWuQePoEf9ro22+JkbPfWQwKEC5WwLQ3w== -"@typescript-eslint/typescript-estree@6.4.1": - version "6.4.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.4.1.tgz#91ff88101c710adb0f70a317f2f65efa9441da45" - integrity sha512-xF6Y7SatVE/OyV93h1xGgfOkHr2iXuo8ip0gbfzaKeGGuKiAnzS+HtVhSPx8Www243bwlW8IF7X0/B62SzFftg== - dependencies: - "@typescript-eslint/types" "6.4.1" - "@typescript-eslint/visitor-keys" "6.4.1" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" - "@typescript-eslint/typescript-estree@6.5.0": version "6.5.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.5.0.tgz#1cef6bc822585e9ef89d88834bc902d911d747ed" @@ -2336,14 +2310,6 @@ "@typescript-eslint/typescript-estree" "6.5.0" semver "^7.5.4" -"@typescript-eslint/visitor-keys@6.4.1": - version "6.4.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.4.1.tgz#e3ccf7b8d42e625946ac5094ed92a405fb4115e0" - integrity sha512-y/TyRJsbZPkJIZQXrHfdnxVnxyKegnpEvnRGNam7s3TRR2ykGefEWOhaef00/UUN3IZxizS7BTO3svd3lCOJRQ== - dependencies: - "@typescript-eslint/types" "6.4.1" - eslint-visitor-keys "^3.4.1" - "@typescript-eslint/visitor-keys@6.5.0": version "6.5.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.5.0.tgz#1a6f474a0170a447b76f0699ce6700110fd11436" From 93cb321c881f4e753d67e480eec0afb9f1824c5f Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 29 Aug 2023 11:35:44 +0700 Subject: [PATCH 364/435] replace package --- package.json | 4 ++-- src/library/StatBoxList/Number.tsx | 12 ++++++++---- src/library/StatBoxList/Pie.tsx | 11 +++++------ src/library/StatBoxList/Wrapper.ts | 7 ------- src/main.tsx | 2 -- yarn.lock | 18 ++++++++++++++---- 6 files changed, 29 insertions(+), 25 deletions(-) diff --git a/package.json b/package.json index 71f660294d..5cef797beb 100644 --- a/package.json +++ b/package.json @@ -26,8 +26,8 @@ "@fortawesome/react-fontawesome": "^0.2.0", "@ledgerhq/hw-transport-webhid": "^6.27.19", "@polkadot-cloud/community": "^0.1.10", - "@polkadot-cloud/core": "^0.1.7", - "@polkadot-cloud/react": "^0.1.20", + "@polkadot-cloud/core": "^0.1.10", + "@polkadot-cloud/react": "0.1.24", "@polkadot-cloud/utils": "^0.0.4", "@polkadot/api": "^10.9.1", "@polkadot/keyring": "^12.1.1", diff --git a/src/library/StatBoxList/Number.tsx b/src/library/StatBoxList/Number.tsx index ab0e795a99..410a8ba4bf 100644 --- a/src/library/StatBoxList/Number.tsx +++ b/src/library/StatBoxList/Number.tsx @@ -1,8 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ButtonHelp } from '@polkadot-cloud/react'; -import { ReactOdometer } from '@polkadotcloud/react-odometer'; +import { ButtonHelp, Odometer } from '@polkadot-cloud/react'; import { useHelp } from 'contexts/Help'; import { StatBox } from './Item'; import type { NumberProps } from './types'; @@ -22,8 +21,13 @@ export const Number = ({ <div className="content chart"> <div className="labels"> <h3> - <ReactOdometer duration={150} value={value} decimals={decimals} /> - {unit || null} + <Odometer value={value.toFixed(decimals)} /> + {unit ? ( + <> + <span style={{ paddingLeft: '0.2rem' }} /> + {unit} + </> + ) : null} </h3> <h4> {label} diff --git a/src/library/StatBoxList/Pie.tsx b/src/library/StatBoxList/Pie.tsx index fa73387610..c57af1dcf7 100644 --- a/src/library/StatBoxList/Pie.tsx +++ b/src/library/StatBoxList/Pie.tsx @@ -1,8 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ButtonHelp } from '@polkadot-cloud/react'; -import { ReactOdometer } from '@polkadotcloud/react-odometer'; +import { ButtonHelp, Odometer } from '@polkadot-cloud/react'; import { useEffect, useState } from 'react'; import { useHelp } from 'contexts/Help'; import { StatPie } from 'library/Graphs/StatBoxPie'; @@ -40,17 +39,17 @@ export const Pie = ({ label, stat, graph, tooltip, helpKey }: PieProps) => { <div className="labels"> <h3> - <ReactOdometer duration={150} value={values.value} /> + <Odometer value={values.value} /> {stat?.unit && <>{stat?.unit}</>} {showTotal ? ( <span className="total"> /  - <ReactOdometer duration={150} value={values.total} /> + <Odometer value={values.total} /> {stat?.unit ? ( <> -   - {stat?.unit} + <span style={{ paddingLeft: '0.2rem' }} /> + {stat?.unit}unit </> ) : null} </span> diff --git a/src/library/StatBoxList/Wrapper.ts b/src/library/StatBoxList/Wrapper.ts index cad251469e..12bcc3aa8a 100644 --- a/src/library/StatBoxList/Wrapper.ts +++ b/src/library/StatBoxList/Wrapper.ts @@ -131,13 +131,6 @@ export const StatBoxWrapper = styled(motion.div)` display: flex; align-items: center; } - - .odometer { - position: relative; - top: -0.1rem; - margin-right: 0.2rem; - } - span.total { color: var(--text-color-secondary); display: flex; diff --git a/src/main.tsx b/src/main.tsx index ebdd09dc9a..2fb3a87deb 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -14,8 +14,6 @@ import '@polkadot-cloud/core/template/default/index.css'; // Polkadot Cloud core styles. import '@polkadot-cloud/core/css/styles/index.css'; -// Miscellaneous component styles. -import '@polkadotcloud/react-odometer/index.css'; import { createRoot } from 'react-dom/client'; import { App } from 'App'; diff --git a/yarn.lock b/yarn.lock index 8c367166ac..274122a0dc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1512,10 +1512,20 @@ resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.1.6.tgz#c82934fdbc1fd5e9759de30f2bb6881cec2a5bf4" integrity sha512-4nftY+1sXXG4qauZhlagafdWsBLewnuk+UtqA8z5AIADr2QmEfsuQMBXIwsAZIaHPvP2/VfjCwLEBKQR3uWAow== -"@polkadot-cloud/core@^0.1.7": - version "0.1.7" - resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.1.7.tgz#ec46b59efc2067d1fea26b3cccb36ee1b51be14a" - integrity sha512-5z4grPh78Z/BZS0hmwJHxEYB+oIUwxNorCaV1TwewyFGvmrLDkeCOVnH/J+mLZAj/v/3UkV+R1nOP4iJubFvnQ== +"@polkadot-cloud/core@^0.1.10": + version "0.1.10" + resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.1.10.tgz#5b438fd05c8258a37c2a19853ce6338874240843" + integrity sha512-xSu9ldyY5/soILHfmzQ0BKE0wJCaliIuTJxGGVHnaiFHIid9+CRkaVAkmh1y3+FUgil9ASV6CcmBSFasvwm7Xw== + +"@polkadot-cloud/react@0.1.24": + version "0.1.24" + resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.24.tgz#b5f0d48e9ab2c9d39c0b2edea26f1efa39814947" + integrity sha512-gdtJ6g778GGZFpDZGrEWpY77r+8ZPbhtng401CF/pG1JpKiEA8YqdeCWrN0xoJSqPSPo8jBP9WW+ytgs6GIlDA== + dependencies: + "@polkadot-cloud/core" "^0.1.10" + "@polkadot-cloud/react" "^0.1.20" + "@polkadot-cloud/utils" "^0.0.4" + react-error-boundary "^4.0.11" "@polkadot-cloud/react@^0.1.20": version "0.1.20" From daa32678178c25161b5c63805b44a0da054f1415 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 29 Aug 2023 11:44:20 +0700 Subject: [PATCH 365/435] bumps --- package.json | 4 ++-- yarn.lock | 30 +++++++++++++++--------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/package.json b/package.json index 5cef797beb..2a39e2fc10 100644 --- a/package.json +++ b/package.json @@ -26,8 +26,8 @@ "@fortawesome/react-fontawesome": "^0.2.0", "@ledgerhq/hw-transport-webhid": "^6.27.19", "@polkadot-cloud/community": "^0.1.10", - "@polkadot-cloud/core": "^0.1.10", - "@polkadot-cloud/react": "0.1.24", + "@polkadot-cloud/core": "^0.1.11", + "@polkadot-cloud/react": "^0.1.25", "@polkadot-cloud/utils": "^0.0.4", "@polkadot/api": "^10.9.1", "@polkadot/keyring": "^12.1.1", diff --git a/yarn.lock b/yarn.lock index 274122a0dc..8137a1c5d8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1507,26 +1507,16 @@ resolved "https://registry.npmjs.org/@polkadot-cloud/community/-/community-0.1.10.tgz#d2a99190c0a89a67275264084e6e750269990986" integrity sha512-VT38rqOvORuYdPLigS8UNwvitoc0DFZWEazsvHxz9bTnPBL/7M3LujWXO14OSGw+FTvfz4RzPwovmW4u7RoT/Q== +"@polkadot-cloud/core@0.1.11", "@polkadot-cloud/core@^0.1.11": + version "0.1.11" + resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.1.11.tgz#42151954df88029d373376f4d8fd30d26bea7d41" + integrity sha512-BqJscRY3b4eM7n3F3/VGdkdnBGwFjrSPFpRWf+YSn2M++EiVYd3FYJIQhBtpntijUoeQXeajzYjtNOpvoJvc+A== + "@polkadot-cloud/core@0.1.6": version "0.1.6" resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.1.6.tgz#c82934fdbc1fd5e9759de30f2bb6881cec2a5bf4" integrity sha512-4nftY+1sXXG4qauZhlagafdWsBLewnuk+UtqA8z5AIADr2QmEfsuQMBXIwsAZIaHPvP2/VfjCwLEBKQR3uWAow== -"@polkadot-cloud/core@^0.1.10": - version "0.1.10" - resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.1.10.tgz#5b438fd05c8258a37c2a19853ce6338874240843" - integrity sha512-xSu9ldyY5/soILHfmzQ0BKE0wJCaliIuTJxGGVHnaiFHIid9+CRkaVAkmh1y3+FUgil9ASV6CcmBSFasvwm7Xw== - -"@polkadot-cloud/react@0.1.24": - version "0.1.24" - resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.24.tgz#b5f0d48e9ab2c9d39c0b2edea26f1efa39814947" - integrity sha512-gdtJ6g778GGZFpDZGrEWpY77r+8ZPbhtng401CF/pG1JpKiEA8YqdeCWrN0xoJSqPSPo8jBP9WW+ytgs6GIlDA== - dependencies: - "@polkadot-cloud/core" "^0.1.10" - "@polkadot-cloud/react" "^0.1.20" - "@polkadot-cloud/utils" "^0.0.4" - react-error-boundary "^4.0.11" - "@polkadot-cloud/react@^0.1.20": version "0.1.20" resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.20.tgz#0386f58edb11617f074bc754b454ea2bef693ee8" @@ -1536,6 +1526,16 @@ "@polkadot-cloud/utils" "^0.0.4" react-error-boundary "^4.0.11" +"@polkadot-cloud/react@^0.1.25": + version "0.1.25" + resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.25.tgz#6699c80473d27605a08ac61dee1c7cd8afc2a3bf" + integrity sha512-SP3L4jQZXY5lRVanKQm5cNncnej1/RQWxp4l3wpgdWWCZk0AC6QgxpQdlu3UZGNjx5+0KcqHZ1b7ATVk6/ikrQ== + dependencies: + "@polkadot-cloud/core" "0.1.11" + "@polkadot-cloud/react" "^0.1.20" + "@polkadot-cloud/utils" "^0.0.4" + react-error-boundary "^4.0.11" + "@polkadot-cloud/utils@^0.0.4": version "0.0.4" resolved "https://registry.npmjs.org/@polkadot-cloud/utils/-/utils-0.0.4.tgz#660d5ea9dbf6548f0f7ae9d0d4b86e6016d90c23" From d248c62477d80f64c9a7c7f0b0f8178688f454d9 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 29 Aug 2023 11:50:31 +0700 Subject: [PATCH 366/435] use BigNumber to format --- src/library/StatBoxList/Number.tsx | 7 ++++++- src/library/StatBoxList/Pie.tsx | 5 +++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/library/StatBoxList/Number.tsx b/src/library/StatBoxList/Number.tsx index 410a8ba4bf..01a8463079 100644 --- a/src/library/StatBoxList/Number.tsx +++ b/src/library/StatBoxList/Number.tsx @@ -3,6 +3,7 @@ import { ButtonHelp, Odometer } from '@polkadot-cloud/react'; import { useHelp } from 'contexts/Help'; +import BigNumber from 'bignumber.js'; import { StatBox } from './Item'; import type { NumberProps } from './types'; @@ -21,7 +22,11 @@ export const Number = ({ <div className="content chart"> <div className="labels"> <h3> - <Odometer value={value.toFixed(decimals)} /> + <Odometer + value={new BigNumber(value) + .decimalPlaces(decimals || 0) + .toFormat()} + /> {unit ? ( <> <span style={{ paddingLeft: '0.2rem' }} /> diff --git a/src/library/StatBoxList/Pie.tsx b/src/library/StatBoxList/Pie.tsx index c57af1dcf7..7a820bc499 100644 --- a/src/library/StatBoxList/Pie.tsx +++ b/src/library/StatBoxList/Pie.tsx @@ -5,6 +5,7 @@ import { ButtonHelp, Odometer } from '@polkadot-cloud/react'; import { useEffect, useState } from 'react'; import { useHelp } from 'contexts/Help'; import { StatPie } from 'library/Graphs/StatBoxPie'; +import BigNumber from 'bignumber.js'; import { StatBox } from './Item'; import type { PieProps } from './types'; @@ -39,13 +40,13 @@ export const Pie = ({ label, stat, graph, tooltip, helpKey }: PieProps) => { <div className="labels"> <h3> - <Odometer value={values.value} /> + <Odometer value={new BigNumber(values.value).toFormat()} /> {stat?.unit && <>{stat?.unit}</>} {showTotal ? ( <span className="total"> /  - <Odometer value={values.total} /> + <Odometer value={new BigNumber(values.total).toFormat()} /> {stat?.unit ? ( <> <span style={{ paddingLeft: '0.2rem' }} /> From 932472fe99a041ddcd4d00456f44abbe4f53baac Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 29 Aug 2023 12:53:59 +0700 Subject: [PATCH 367/435] remove padding --- src/library/StatBoxList/Number.tsx | 7 +------ src/library/StatBoxList/Pie.tsx | 7 +------ 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/src/library/StatBoxList/Number.tsx b/src/library/StatBoxList/Number.tsx index 01a8463079..3fa585df2a 100644 --- a/src/library/StatBoxList/Number.tsx +++ b/src/library/StatBoxList/Number.tsx @@ -27,12 +27,7 @@ export const Number = ({ .decimalPlaces(decimals || 0) .toFormat()} /> - {unit ? ( - <> - <span style={{ paddingLeft: '0.2rem' }} /> - {unit} - </> - ) : null} + {unit ? <>{unit}</> : null} </h3> <h4> {label} diff --git a/src/library/StatBoxList/Pie.tsx b/src/library/StatBoxList/Pie.tsx index 7a820bc499..af772c47f5 100644 --- a/src/library/StatBoxList/Pie.tsx +++ b/src/library/StatBoxList/Pie.tsx @@ -47,12 +47,7 @@ export const Pie = ({ label, stat, graph, tooltip, helpKey }: PieProps) => { <span className="total"> /  <Odometer value={new BigNumber(values.total).toFormat()} /> - {stat?.unit ? ( - <> - <span style={{ paddingLeft: '0.2rem' }} /> - {stat?.unit}unit - </> - ) : null} + {stat?.unit ? <>{stat?.unit}unit</> : null} </span> ) : null} </h3> From 32ccb1cf095b43ead92b4781a7ff5118151f37ae Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 29 Aug 2023 12:54:10 +0700 Subject: [PATCH 368/435] Odometer to bond values --- package.json | 4 ++-- src/pages/Nominate/Active/ManageBond.tsx | 12 ++++++++++-- src/pages/Pools/Home/ManageBond.tsx | 12 ++++++++++-- yarn.lock | 20 ++++++++++---------- 4 files changed, 32 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index 2a39e2fc10..2464ae15a2 100644 --- a/package.json +++ b/package.json @@ -26,8 +26,8 @@ "@fortawesome/react-fontawesome": "^0.2.0", "@ledgerhq/hw-transport-webhid": "^6.27.19", "@polkadot-cloud/community": "^0.1.10", - "@polkadot-cloud/core": "^0.1.11", - "@polkadot-cloud/react": "^0.1.25", + "@polkadot-cloud/core": "^0.1.12", + "@polkadot-cloud/react": "^0.1.27", "@polkadot-cloud/utils": "^0.0.4", "@polkadot/api": "^10.9.1", "@polkadot/keyring": "^12.1.1", diff --git a/src/pages/Nominate/Active/ManageBond.tsx b/src/pages/Nominate/Active/ManageBond.tsx index f0e4c27537..a8befa0481 100644 --- a/src/pages/Nominate/Active/ManageBond.tsx +++ b/src/pages/Nominate/Active/ManageBond.tsx @@ -2,7 +2,12 @@ // SPDX-License-Identifier: GPL-3.0-only import { faLockOpen } from '@fortawesome/free-solid-svg-icons'; -import { ButtonHelp, ButtonPrimary, ButtonRow } from '@polkadot-cloud/react'; +import { + ButtonHelp, + ButtonPrimary, + ButtonRow, + Odometer, +} from '@polkadot-cloud/react'; import { planckToUnit } from '@polkadot-cloud/utils'; import type BigNumber from 'bignumber.js'; import { useTranslation } from 'react-i18next'; @@ -46,7 +51,10 @@ export const ManageBond = () => { {t('nominate.bondedFunds')} <ButtonHelp marginLeft onClick={() => openHelp('Bonding')} /> </h4> - <h2>{`${planckToUnit(active, units).toFormat()} ${network.unit}`}</h2> + <h2> + <Odometer value={planckToUnit(active, units).toFormat()} /> + {network.unit} + </h2> <ButtonRow> <ButtonPrimary disabled={ diff --git a/src/pages/Pools/Home/ManageBond.tsx b/src/pages/Pools/Home/ManageBond.tsx index 32888e44f8..103fc89bc9 100644 --- a/src/pages/Pools/Home/ManageBond.tsx +++ b/src/pages/Pools/Home/ManageBond.tsx @@ -2,7 +2,12 @@ // SPDX-License-Identifier: GPL-3.0-only import { faLockOpen } from '@fortawesome/free-solid-svg-icons'; -import { ButtonHelp, ButtonPrimary, ButtonRow } from '@polkadot-cloud/react'; +import { + ButtonHelp, + ButtonPrimary, + ButtonRow, + Odometer, +} from '@polkadot-cloud/react'; import { planckToUnit } from '@polkadot-cloud/utils'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; @@ -45,7 +50,10 @@ export const ManageBond = () => { {t('pools.bondedFunds')} <ButtonHelp marginLeft onClick={() => openHelp('Bonded in Pool')} /> </h4> - <h2>{`${planckToUnit(active, units).toFormat()} ${network.unit}`}</h2> + <h2> + <Odometer value={planckToUnit(active, units).toFormat()} /> + {network.unit} + </h2> <ButtonRow> <ButtonPrimary disabled={ diff --git a/yarn.lock b/yarn.lock index 8137a1c5d8..9d2459354d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1507,16 +1507,16 @@ resolved "https://registry.npmjs.org/@polkadot-cloud/community/-/community-0.1.10.tgz#d2a99190c0a89a67275264084e6e750269990986" integrity sha512-VT38rqOvORuYdPLigS8UNwvitoc0DFZWEazsvHxz9bTnPBL/7M3LujWXO14OSGw+FTvfz4RzPwovmW4u7RoT/Q== -"@polkadot-cloud/core@0.1.11", "@polkadot-cloud/core@^0.1.11": - version "0.1.11" - resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.1.11.tgz#42151954df88029d373376f4d8fd30d26bea7d41" - integrity sha512-BqJscRY3b4eM7n3F3/VGdkdnBGwFjrSPFpRWf+YSn2M++EiVYd3FYJIQhBtpntijUoeQXeajzYjtNOpvoJvc+A== - "@polkadot-cloud/core@0.1.6": version "0.1.6" resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.1.6.tgz#c82934fdbc1fd5e9759de30f2bb6881cec2a5bf4" integrity sha512-4nftY+1sXXG4qauZhlagafdWsBLewnuk+UtqA8z5AIADr2QmEfsuQMBXIwsAZIaHPvP2/VfjCwLEBKQR3uWAow== +"@polkadot-cloud/core@^0.1.12": + version "0.1.12" + resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.1.12.tgz#ecb4a345f7b518249a0a5e1d53dd7eea24316e81" + integrity sha512-HRLF0t6ezFxJnu4yPS6eubzW5ZRWWhr6ZbjvKeJ4u6pj7fNcCeZaFYVTIaVzpoDVYFeGNEe/6MQ1ENSY7fyhXg== + "@polkadot-cloud/react@^0.1.20": version "0.1.20" resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.20.tgz#0386f58edb11617f074bc754b454ea2bef693ee8" @@ -1526,12 +1526,12 @@ "@polkadot-cloud/utils" "^0.0.4" react-error-boundary "^4.0.11" -"@polkadot-cloud/react@^0.1.25": - version "0.1.25" - resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.25.tgz#6699c80473d27605a08ac61dee1c7cd8afc2a3bf" - integrity sha512-SP3L4jQZXY5lRVanKQm5cNncnej1/RQWxp4l3wpgdWWCZk0AC6QgxpQdlu3UZGNjx5+0KcqHZ1b7ATVk6/ikrQ== +"@polkadot-cloud/react@^0.1.27": + version "0.1.27" + resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.27.tgz#eb9c666fa9fa1f13d42b4ba98e36e8f74d9383b2" + integrity sha512-EDcniLykaHOLWhPdnLvSbYVwtGxERYZ/9d2ELOEhIX6Ej3WgwGYsUWi2ZRejh1oPmvsegCXVP2jWz9XOcqghOg== dependencies: - "@polkadot-cloud/core" "0.1.11" + "@polkadot-cloud/core" "^0.1.12" "@polkadot-cloud/react" "^0.1.20" "@polkadot-cloud/utils" "^0.0.4" react-error-boundary "^4.0.11" From 898a723451cb436d887672cc79f020463e0d6c1a Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 29 Aug 2023 13:11:46 +0700 Subject: [PATCH 369/435] odometer as stat --- src/library/Stat/Wrapper.ts | 6 +++++ src/library/Stat/index.tsx | 27 ++++++++++++------- src/library/Stat/types.ts | 4 ++- .../Active/Status/UnclaimedPayoutsStatus.tsx | 11 ++++---- .../Pools/Home/Status/MembershipStatus.tsx | 1 + src/pages/Pools/Home/Status/RewardsStatus.tsx | 7 ++--- 6 files changed, 38 insertions(+), 18 deletions(-) diff --git a/src/library/Stat/Wrapper.ts b/src/library/Stat/Wrapper.ts index 2775477d67..d59991a5e8 100644 --- a/src/library/Stat/Wrapper.ts +++ b/src/library/Stat/Wrapper.ts @@ -60,6 +60,12 @@ export const Wrapper = styled.div<{ $isAddress?: boolean }>` white-space: nowrap; overflow: hidden; + h2 { + display: flex; + font-family: InterBold, sans-serif; + text-overflow: ellipsis; + } + .identicon { position: absolute; display: flex; diff --git a/src/library/Stat/index.tsx b/src/library/Stat/index.tsx index c5719ea7bf..01aa46b45a 100644 --- a/src/library/Stat/index.tsx +++ b/src/library/Stat/index.tsx @@ -7,6 +7,7 @@ import { ButtonHelp, ButtonPrimary, ButtonSecondary, + Odometer, } from '@polkadot-cloud/react'; import { applyWidthAsPadding } from '@polkadot-cloud/utils'; import React, { useEffect, useLayoutEffect, useRef } from 'react'; @@ -23,6 +24,7 @@ export const Stat = ({ helpKey, icon, copy, + type = 'string', buttonType = 'primary', }: StatProps) => { const { addNotification } = useNotifications(); @@ -49,17 +51,24 @@ export const Stat = ({ const Button = buttonType === 'primary' ? ButtonPrimary : ButtonSecondary; let display; - let isAddress; - if (typeof stat === 'string') { - display = stat; - isAddress = false; - } else { - display = stat.display; - isAddress = true; + switch (type) { + case 'address': + display = stat.display; + break; + case 'odometer': + display = ( + <h2> + <Odometer value={stat.value} /> + {stat?.unit ? stat.unit : null} + </h2> + ); + break; + default: + display = stat; } return ( - <Wrapper $isAddress={isAddress}> + <Wrapper $isAddress={type === 'address'}> <h4> {label} {helpKey !== undefined ? ( @@ -86,7 +95,7 @@ export const Stat = ({   </> ) : null} - {isAddress ? ( + {type === 'address' ? ( <div className="identicon"> <Identicon value={(stat as StatAddress)?.address || ''} diff --git a/src/library/Stat/types.ts b/src/library/Stat/types.ts index c236652013..987af8491d 100644 --- a/src/library/Stat/types.ts +++ b/src/library/Stat/types.ts @@ -2,11 +2,13 @@ // SPDX-License-Identifier: GPL-3.0-only import type { IconProp } from '@fortawesome/fontawesome-svg-core'; +import type { AnyObject } from '@polkadot-cloud/utils/types'; import type { MaybeAccount } from 'types'; export interface StatProps { label: string; - stat: string | StatAddress; + stat: AnyObject; + type?: string; buttons?: any; helpKey: string; icon?: IconProp; diff --git a/src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx b/src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx index 330371bee8..070618a3eb 100644 --- a/src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx +++ b/src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx @@ -1,12 +1,12 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { planckToUnit } from '@polkadot-cloud/utils'; import { useTranslation } from 'react-i18next'; import { Stat } from 'library/Stat'; import { usePayouts } from 'contexts/Payouts'; import BigNumber from 'bignumber.js'; import { useApi } from 'contexts/Api'; +import { planckToUnit } from '@polkadot-cloud/utils'; export const UnclaimedPayoutsStatus = () => { const { t } = useTranslation('pages'); @@ -25,10 +25,11 @@ export const UnclaimedPayoutsStatus = () => { <Stat label={t('nominate.pendingPayouts')} helpKey="Payout" - stat={`${planckToUnit(totalUnclaimed, network.units).toFormat()} ${ - network.unit - } - `} + type="odometer" + stat={{ + value: planckToUnit(totalUnclaimed, network.units).toFormat(), + unit: network.unit, + }} /> ); }; diff --git a/src/pages/Pools/Home/Status/MembershipStatus.tsx b/src/pages/Pools/Home/Status/MembershipStatus.tsx index 6668007a3e..73d46e71e8 100644 --- a/src/pages/Pools/Home/Status/MembershipStatus.tsx +++ b/src/pages/Pools/Home/Status/MembershipStatus.tsx @@ -79,6 +79,7 @@ export const MembershipStatus = ({ <Stat label={label} helpKey="Pool Membership" + type="address" stat={{ address: selectedActivePool?.addresses?.stash ?? '', display: membershipDisplay, diff --git a/src/pages/Pools/Home/Status/RewardsStatus.tsx b/src/pages/Pools/Home/Status/RewardsStatus.tsx index 01dd2a64d7..7e252581e1 100644 --- a/src/pages/Pools/Home/Status/RewardsStatus.tsx +++ b/src/pages/Pools/Home/Status/RewardsStatus.tsx @@ -30,8 +30,8 @@ export const RewardsStatus = () => { const minUnclaimedDisplay = new BigNumber(1_000_000); const labelRewards = pendingRewards.isGreaterThan(minUnclaimedDisplay) - ? `${planckToUnit(pendingRewards, units)} ${unit}` - : `0 ${unit}`; + ? planckToUnit(pendingRewards, units).toString() + : '0'; // Display Reward buttons if unclaimed rewards is a non-zero value. const buttonsRewards = pendingRewards.isGreaterThan(minUnclaimedDisplay) @@ -70,7 +70,8 @@ export const RewardsStatus = () => { <Stat label={t('pools.unclaimedRewards')} helpKey="Pool Rewards" - stat={labelRewards} + type="odometer" + stat={{ value: labelRewards, unit }} buttons={isPoolSyncing ? [] : buttonsRewards} /> ); From 6360b34594ecff655cda749d0bacb997117288c9 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 29 Aug 2023 13:16:05 +0700 Subject: [PATCH 370/435] line-height --- src/library/Stat/Wrapper.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/library/Stat/Wrapper.ts b/src/library/Stat/Wrapper.ts index d59991a5e8..1f8362f7f5 100644 --- a/src/library/Stat/Wrapper.ts +++ b/src/library/Stat/Wrapper.ts @@ -64,6 +64,7 @@ export const Wrapper = styled.div<{ $isAddress?: boolean }>` display: flex; font-family: InterBold, sans-serif; text-overflow: ellipsis; + line-height: 1.4rem; } .identicon { From 288d5f0cb677ea482cb7ebf970b233f6cd5de060 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 29 Aug 2023 13:27:13 +0700 Subject: [PATCH 371/435] use odometer for balance stats --- src/library/Card/Wrappers.ts | 2 +- src/library/Stat/index.tsx | 2 +- src/pages/Nominate/Active/ManageBond.tsx | 5 +++- src/pages/Overview/BalanceChart.tsx | 4 +-- src/pages/Overview/index.tsx | 32 ++++++++++++++++-------- src/pages/Pools/Home/ManageBond.tsx | 5 +++- 6 files changed, 33 insertions(+), 17 deletions(-) diff --git a/src/library/Card/Wrappers.ts b/src/library/Card/Wrappers.ts index d2d8dbbc30..797faea865 100644 --- a/src/library/Card/Wrappers.ts +++ b/src/library/Card/Wrappers.ts @@ -52,7 +52,7 @@ export const CardHeaderWrapper = styled.div<CardHeaderWrapperProps>` font-family: InterSemiBold, sans-serif; font-size: 1.1rem; margin-top: 0.2rem; - margin-left: 0.3rem; + margin-left: 0.4rem; } > div { diff --git a/src/library/Stat/index.tsx b/src/library/Stat/index.tsx index 01aa46b45a..ab50f6bce8 100644 --- a/src/library/Stat/index.tsx +++ b/src/library/Stat/index.tsx @@ -58,7 +58,7 @@ export const Stat = ({ case 'odometer': display = ( <h2> - <Odometer value={stat.value} /> + <Odometer value={stat.value} spaceAfter="0.4rem" /> {stat?.unit ? stat.unit : null} </h2> ); diff --git a/src/pages/Nominate/Active/ManageBond.tsx b/src/pages/Nominate/Active/ManageBond.tsx index a8befa0481..51699d75b6 100644 --- a/src/pages/Nominate/Active/ManageBond.tsx +++ b/src/pages/Nominate/Active/ManageBond.tsx @@ -52,7 +52,10 @@ export const ManageBond = () => { <ButtonHelp marginLeft onClick={() => openHelp('Bonding')} /> </h4> <h2> - <Odometer value={planckToUnit(active, units).toFormat()} /> + <Odometer + value={planckToUnit(active, units).toFormat()} + spaceAfter="0.4rem" + /> {network.unit} </h2> <ButtonRow> diff --git a/src/pages/Overview/BalanceChart.tsx b/src/pages/Overview/BalanceChart.tsx index 1669842bf9..a847c054ce 100644 --- a/src/pages/Overview/BalanceChart.tsx +++ b/src/pages/Overview/BalanceChart.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only import { faCheck, faCheckDouble } from '@fortawesome/free-solid-svg-icons'; -import { ButtonTertiary } from '@polkadot-cloud/react'; +import { ButtonTertiary, Odometer } from '@polkadot-cloud/react'; import { greaterThanZero, planckToUnit } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useTranslation } from 'react-i18next'; @@ -129,7 +129,7 @@ export const BalanceChart = () => { <CardHeaderWrapper> <h4>{t('overview.balance')}</h4> <h2> - <span className="amount">{totalBalance.toFormat()}</span>  + <Odometer value={totalBalance.toFormat()} spaceAfter="0.4rem" /> {unit} <span className="note"> {plugins.includes('binance_spot') ? ( diff --git a/src/pages/Overview/index.tsx b/src/pages/Overview/index.tsx index 09cf275f5a..1a8cc7b2c5 100644 --- a/src/pages/Overview/index.tsx +++ b/src/pages/Overview/index.tsx @@ -2,6 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only import { + Odometer, PageHeading, PageRow, PageTitle, @@ -90,18 +91,27 @@ export const Overview = () => { <CardHeaderWrapper> <h4>{t('overview.recentPayouts')}</h4> <h2> - {lastReward === null - ? 0 - : planckToUnit( - new BigNumber(lastReward.amount), - units - ).toFormat()} -  {network.unit} -   + <Odometer + value={ + lastReward === null + ? 0 + : planckToUnit( + new BigNumber(lastReward.amount), + units + ).toFormat() + } + spaceAfter="0.4rem" + /> + {network.unit} + <span className="note"> - {lastReward === null - ? '' - : formatDistance(formatFrom, formatTo, formatOpts)} + {lastReward === null ? ( + '' + ) : ( + <> +  {formatDistance(formatFrom, formatTo, formatOpts)} + </> + )} </span> </h2> </CardHeaderWrapper> diff --git a/src/pages/Pools/Home/ManageBond.tsx b/src/pages/Pools/Home/ManageBond.tsx index 103fc89bc9..340bb8dff3 100644 --- a/src/pages/Pools/Home/ManageBond.tsx +++ b/src/pages/Pools/Home/ManageBond.tsx @@ -51,7 +51,10 @@ export const ManageBond = () => { <ButtonHelp marginLeft onClick={() => openHelp('Bonded in Pool')} /> </h4> <h2> - <Odometer value={planckToUnit(active, units).toFormat()} /> + <Odometer + value={planckToUnit(active, units).toFormat()} + spaceAfter="0.4rem" + /> {network.unit} </h2> <ButtonRow> From fde5ba39d3badbc42e393626e2692dbefd85440a Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 29 Aug 2023 13:39:45 +0700 Subject: [PATCH 372/435] remove @polkadotcloud/react-odometer --- package.json | 1 - yarn.lock | 5 ----- 2 files changed, 6 deletions(-) diff --git a/package.json b/package.json index 48d969a6d1..6632d7af7c 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,6 @@ "@polkadot/rpc-provider": "^10.9.1", "@polkadot/util": "^12.4.2", "@polkadot/util-crypto": "12.3.2", - "@polkadotcloud/react-odometer": "^0.1.19", "@substrate/connect": "^0.7.31", "@zondax/ledger-substrate": "^0.41.1", "bignumber.js": "^9.1.2", diff --git a/yarn.lock b/yarn.lock index d325b15ab1..1e5034c898 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1910,11 +1910,6 @@ tslib "^2.5.3" ws "^8.13.0" -"@polkadotcloud/react-odometer@^0.1.19": - version "0.1.19" - resolved "https://registry.yarnpkg.com/@polkadotcloud/react-odometer/-/react-odometer-0.1.19.tgz#3bd476c8d00fa011a14f7bc8b9b5227a26c9299a" - integrity sha512-s7JJIIP4ZR37J+r478TrE5yCuO2niT1ATscTm/0wVLq/nFvCrJ63JZbCLl13I17ZotId41kRUb3vGxIYn4giMQ== - "@remix-run/router@1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.8.0.tgz#e848d2f669f601544df15ce2a313955e4bf0bafc" From f974f7405a538d2d965f4239590a6e6f40da690a Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 29 Aug 2023 18:15:05 +0700 Subject: [PATCH 373/435] token icons in place of text icons --- src/config/networks.ts | 7 +++++++ src/config/tokens/svg/DOT.svg | 1 + src/config/tokens/svg/KSM.svg | 4 ++++ src/config/tokens/svg/WND.svg | 1 + src/library/Card/Wrappers.ts | 5 +++++ src/library/Stat/Wrapper.ts | 3 ++- src/library/Stat/index.tsx | 11 +++++++++++ src/pages/Nominate/Active/ManageBond.tsx | 15 +++++++-------- .../Active/Status/UnclaimedPayoutsStatus.tsx | 1 - src/pages/Overview/BalanceChart.tsx | 10 +++++++--- src/pages/Overview/index.tsx | 7 ++++--- src/pages/Pools/Home/ManageBond.tsx | 12 ++++++------ src/pages/Pools/Home/Status/RewardsStatus.tsx | 4 ++-- src/types/index.ts | 3 +++ 14 files changed, 60 insertions(+), 24 deletions(-) create mode 100644 src/config/tokens/svg/DOT.svg create mode 100644 src/config/tokens/svg/KSM.svg create mode 100644 src/config/tokens/svg/WND.svg diff --git a/src/config/networks.ts b/src/config/networks.ts index c7822ea506..666f4b4628 100644 --- a/src/config/networks.ts +++ b/src/config/networks.ts @@ -12,6 +12,10 @@ import { ReactComponent as PolkadotLogoSVG } from 'img/polkadot_logo.svg'; import { ReactComponent as WestendIconSVG } from 'img/westend_icon.svg'; import { ReactComponent as WestendInlineSVG } from 'img/westend_inline.svg'; import { ReactComponent as WestendLogoSVG } from 'img/westend_logo.svg'; +import { ReactComponent as PolkadotTokenSVG } from 'config/tokens/svg/DOT.svg'; +import { ReactComponent as KusamaTokenSVG } from 'config/tokens/svg/KSM.svg'; +import { ReactComponent as WestendTokenSVG } from 'config/tokens/svg/WND.svg'; + import type { Networks } from 'types'; export const NetworkList: Networks = { @@ -50,6 +54,7 @@ export const NetworkList: Networks = { ss58: 0, brand: { icon: PolkadotIconSVG, + token: PolkadotTokenSVG, logo: { svg: PolkadotLogoSVG, width: '7.2em', @@ -104,6 +109,7 @@ export const NetworkList: Networks = { ss58: 2, brand: { icon: KusamaIconSVG, + token: KusamaTokenSVG, logo: { svg: KusamaLogoSVG, width: '7.2em', @@ -160,6 +166,7 @@ export const NetworkList: Networks = { ss58: 42, brand: { icon: WestendIconSVG, + token: WestendTokenSVG, logo: { svg: WestendLogoSVG, width: '7.1em', diff --git a/src/config/tokens/svg/DOT.svg b/src/config/tokens/svg/DOT.svg new file mode 100644 index 0000000000..84d9ba0c0a --- /dev/null +++ b/src/config/tokens/svg/DOT.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 310 310" fill="none" xmlns="http://www.w3.org/2000/svg"><g filter="url(#filter0_d_1_19)"><circle cx="155" cy="151" r="146" class="light-fill" fill="#eee" stroke="#ccc" stroke-width="10"/><path d="M154.962 89.56c21.165 0 38.322-9.975 38.322-22.28 0-12.305-17.157-22.28-38.322-22.28-21.165 0-38.322 9.975-38.322 22.28 0 12.305 17.157 22.28 38.322 22.28zm0 168.44c21.165 0 38.322-9.975 38.322-22.28 0-12.305-17.157-22.281-38.322-22.281-21.165 0-38.322 9.976-38.322 22.281 0 12.305 17.157 22.28 38.322 22.28zm-53.497-137.409c10.597-18.369 10.528-38.263-.154-44.435-10.683-6.172-27.934 3.715-38.53 22.084-10.598 18.369-10.53 38.263.153 44.435 10.683 6.172 27.934-3.715 38.531-22.084zm145.627 84.14c10.598-18.369 10.534-38.26-.141-44.428-10.675-6.168-27.92 3.723-38.517 22.091-10.598 18.369-10.535 38.26.141 44.428 10.675 6.168 27.92-3.723 38.517-22.091zm-145.776 22.086c10.683-6.172 10.752-26.067.154-44.435-10.597-18.369-27.848-28.257-38.53-22.084-10.683 6.172-10.752 26.066-.154 44.435 10.597 18.369 27.848 28.256 38.53 22.084zM246.96 142.68c10.676-6.168 10.739-26.059.141-44.428-10.597-18.369-27.842-28.26-38.517-22.091-10.675 6.168-10.739 26.059-.141 44.427 10.597 18.369 27.842 28.26 38.517 22.092z" fill="#E6007A"/></g></svg> \ No newline at end of file diff --git a/src/config/tokens/svg/KSM.svg b/src/config/tokens/svg/KSM.svg new file mode 100644 index 0000000000..b6950c3eb5 --- /dev/null +++ b/src/config/tokens/svg/KSM.svg @@ -0,0 +1,4 @@ +<svg width="302" height="302" viewBox="0 0 302 302" fill="none" xmlns="http://www.w3.org/2000/svg"> +<circle cx="151" cy="151" r="151" fill="black"/> +<path d="M227.655 94.7713C224.991 92.6735 221.816 89.8082 216.029 89.0919C210.6 88.3756 205.069 92.0083 201.33 94.4131C197.591 96.8179 190.523 103.879 187.604 106.028C184.685 108.177 177.207 110.172 165.172 117.386C153.136 124.601 105.916 154.891 105.916 154.891L118.207 155.044L63.4071 183.236H68.8872L61 189.223C61 189.223 67.9653 191.065 73.8038 187.381V189.069C73.8038 189.069 139.052 163.384 151.651 170.036L143.969 172.287C144.635 172.287 157.029 173.106 157.029 173.106C157.029 173.106 157.438 180.832 164.916 185.795C172.393 190.707 172.547 193.418 172.547 193.418C172.547 193.418 168.655 195.005 168.655 197C168.655 197 174.391 195.26 179.717 195.414C185.043 195.567 189.704 197 189.704 197C189.704 197 189.294 194.851 184.122 193.418C178.898 191.935 173.827 186.358 171.318 183.288C168.808 180.218 167.067 174.743 169.218 169.268C171.01 164.612 177.259 162.054 190.165 155.402C205.376 147.523 208.859 141.69 211.01 137.136C213.161 132.583 216.336 123.526 218.128 119.28C220.382 113.805 223.148 110.888 225.452 109.149C227.706 107.409 238 103.572 238 103.572C238 103.572 230.164 96.7667 227.655 94.7713Z" fill="#EEEEEE"/> +</svg> diff --git a/src/config/tokens/svg/WND.svg b/src/config/tokens/svg/WND.svg new file mode 100644 index 0000000000..f2e18607a5 --- /dev/null +++ b/src/config/tokens/svg/WND.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1671.16 1671.66"><defs><linearGradient id="b" x1="40.98" y1="835.47" x2="1774.13" y2="836.99" gradientTransform="matrix(1 0 0 -1 -.84 1672)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f79420" stop-opacity=".92"/><stop offset="1" stop-color="#c4c4c4" stop-opacity="0"/></linearGradient><mask id="a" x="0" y="0" width="1671.16" height="1671.66" maskUnits="userSpaceOnUse"><circle cx="836.27" cy="836.22" r="835.44" fill="#c4c4c4" transform="translate(-.84)"/></mask></defs><circle cx="835.44" cy="836.22" r="835.44" fill="#e6007a"/><g mask="url(#a)"><path fill="url(#b)" d="M.66 0h1670.5v1671.65H.66z"/></g><path d="M533.46 1196.48H735.4L799.78 963c8.87-32.19 54.14-32.17 63 0l64.15 233.43h201.55l154.53-597h-189.23l-48.32 237c-7 34.4-55.41 35.35-63.75 1.25l-58.25-238.16h-184.6l-56.7 239.64c-8.11 34.22-56.6 33.55-63.78-.87l-17-81.7c-19.22-91.53-99.22-157.07-192-157.07h-30.06z" fill="#fff"/></svg> \ No newline at end of file diff --git a/src/library/Card/Wrappers.ts b/src/library/Card/Wrappers.ts index 797faea865..6070691df6 100644 --- a/src/library/Card/Wrappers.ts +++ b/src/library/Card/Wrappers.ts @@ -54,6 +54,11 @@ export const CardHeaderWrapper = styled.div<CardHeaderWrapperProps>` margin-top: 0.2rem; margin-left: 0.4rem; } + .networkIcon { + width: 1.9rem; + height: 1.9rem; + margin-right: 0.45rem; + } > div { display: flex; diff --git a/src/library/Stat/Wrapper.ts b/src/library/Stat/Wrapper.ts index 1f8362f7f5..fd48be1beb 100644 --- a/src/library/Stat/Wrapper.ts +++ b/src/library/Stat/Wrapper.ts @@ -61,8 +61,9 @@ export const Wrapper = styled.div<{ $isAddress?: boolean }>` overflow: hidden; h2 { - display: flex; font-family: InterBold, sans-serif; + display: flex; + align-items: center; text-overflow: ellipsis; line-height: 1.4rem; } diff --git a/src/library/Stat/index.tsx b/src/library/Stat/index.tsx index ab50f6bce8..9245a794b0 100644 --- a/src/library/Stat/index.tsx +++ b/src/library/Stat/index.tsx @@ -14,6 +14,7 @@ import React, { useEffect, useLayoutEffect, useRef } from 'react'; import { useHelp } from 'contexts/Help'; import { useNotifications } from 'contexts/Notifications'; import { Identicon } from 'library/Identicon'; +import { useApi } from 'contexts/Api'; import { Wrapper } from './Wrapper'; import type { StatAddress, StatProps } from './types'; @@ -27,6 +28,9 @@ export const Stat = ({ type = 'string', buttonType = 'primary', }: StatProps) => { + const { + brand: { token: Token }, + } = useApi().network; const { addNotification } = useNotifications(); const { openHelp } = useHelp(); @@ -58,6 +62,13 @@ export const Stat = ({ case 'odometer': display = ( <h2> + <Token + style={{ + width: '1.9rem', + height: '1.9rem', + marginRight: '0.45rem', + }} + /> <Odometer value={stat.value} spaceAfter="0.4rem" /> {stat?.unit ? stat.unit : null} </h2> diff --git a/src/pages/Nominate/Active/ManageBond.tsx b/src/pages/Nominate/Active/ManageBond.tsx index 51699d75b6..2e1bc72fdf 100644 --- a/src/pages/Nominate/Active/ManageBond.tsx +++ b/src/pages/Nominate/Active/ManageBond.tsx @@ -21,7 +21,7 @@ import { useUi } from 'contexts/UI'; import { CardHeaderWrapper } from 'library/Card/Wrappers'; import { useUnstaking } from 'library/Hooks/useUnstaking'; import { useOverlay } from '@polkadot-cloud/react/hooks'; -import { BondedChart } from '../../../library/BarChart/BondedChart'; +import { BondedChart } from 'library/BarChart/BondedChart'; export const ManageBond = () => { const { t } = useTranslation('pages'); @@ -34,8 +34,10 @@ export const ManageBond = () => { const { isSyncing } = useUi(); const { isFastUnstaking } = useUnstaking(); const { openHelp } = useHelp(); - - const { units } = network; + const { + units, + brand: { token: Token }, + } = network; const ledger = getStashLedger(activeAccount); const { active }: { active: BigNumber } = ledger; const allTransferOptions = getTransferOptions(activeAccount); @@ -52,11 +54,8 @@ export const ManageBond = () => { <ButtonHelp marginLeft onClick={() => openHelp('Bonding')} /> </h4> <h2> - <Odometer - value={planckToUnit(active, units).toFormat()} - spaceAfter="0.4rem" - /> - {network.unit} + <Token className="networkIcon" /> + <Odometer value={planckToUnit(active, units).toFormat()} /> </h2> <ButtonRow> <ButtonPrimary diff --git a/src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx b/src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx index 070618a3eb..f1eaae0253 100644 --- a/src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx +++ b/src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx @@ -28,7 +28,6 @@ export const UnclaimedPayoutsStatus = () => { type="odometer" stat={{ value: planckToUnit(totalUnclaimed, network.units).toFormat(), - unit: network.unit, }} /> ); diff --git a/src/pages/Overview/BalanceChart.tsx b/src/pages/Overview/BalanceChart.tsx index a847c054ce..d293ea96cc 100644 --- a/src/pages/Overview/BalanceChart.tsx +++ b/src/pages/Overview/BalanceChart.tsx @@ -22,7 +22,11 @@ import { useOverlay } from '@polkadot-cloud/react/hooks'; export const BalanceChart = () => { const { t } = useTranslation('pages'); const { - network: { units, unit }, + network: { + units, + unit, + brand: { token: Token }, + }, } = useApi(); const prices = usePrices(); const { plugins } = usePlugins(); @@ -129,8 +133,8 @@ export const BalanceChart = () => { <CardHeaderWrapper> <h4>{t('overview.balance')}</h4> <h2> - <Odometer value={totalBalance.toFormat()} spaceAfter="0.4rem" /> - {unit} + <Token className="networkIcon" /> + <Odometer value={totalBalance.toFormat()} /> <span className="note"> {plugins.includes('binance_spot') ? ( <> {usdFormatter.format(freeFiat.toNumber())}</> diff --git a/src/pages/Overview/index.tsx b/src/pages/Overview/index.tsx index 1a8cc7b2c5..69424d3e05 100644 --- a/src/pages/Overview/index.tsx +++ b/src/pages/Overview/index.tsx @@ -44,7 +44,9 @@ export const Overview = () => { poolClaims, unclaimedPayouts ); - + const { + brand: { token: Token }, + } = network; const PAYOUTS_HEIGHT = 380; let formatFrom = new Date(); @@ -91,6 +93,7 @@ export const Overview = () => { <CardHeaderWrapper> <h4>{t('overview.recentPayouts')}</h4> <h2> + <Token className="networkIcon" /> <Odometer value={ lastReward === null @@ -100,9 +103,7 @@ export const Overview = () => { units ).toFormat() } - spaceAfter="0.4rem" /> - {network.unit} <span className="note"> {lastReward === null ? ( diff --git a/src/pages/Pools/Home/ManageBond.tsx b/src/pages/Pools/Home/ManageBond.tsx index 340bb8dff3..6c54d15903 100644 --- a/src/pages/Pools/Home/ManageBond.tsx +++ b/src/pages/Pools/Home/ManageBond.tsx @@ -30,7 +30,10 @@ export const ManageBond = () => { const { getTransferOptions } = useTransferOptions(); const { activeAccount, isReadOnlyAccount } = useConnect(); const { isBonding, isMember, selectedActivePool } = useActivePools(); - const { units } = network; + const { + units, + brand: { token: Token }, + } = network; const allTransferOptions = getTransferOptions(activeAccount); const { @@ -51,11 +54,8 @@ export const ManageBond = () => { <ButtonHelp marginLeft onClick={() => openHelp('Bonded in Pool')} /> </h4> <h2> - <Odometer - value={planckToUnit(active, units).toFormat()} - spaceAfter="0.4rem" - /> - {network.unit} + <Token className="networkIcon" /> + <Odometer value={planckToUnit(active, units).toFormat()} /> </h2> <ButtonRow> <ButtonPrimary diff --git a/src/pages/Pools/Home/Status/RewardsStatus.tsx b/src/pages/Pools/Home/Status/RewardsStatus.tsx index 7e252581e1..01353f4062 100644 --- a/src/pages/Pools/Home/Status/RewardsStatus.tsx +++ b/src/pages/Pools/Home/Status/RewardsStatus.tsx @@ -15,7 +15,7 @@ import { useOverlay } from '@polkadot-cloud/react/hooks'; export const RewardsStatus = () => { const { t } = useTranslation('pages'); const { - network: { units, unit }, + network: { units }, isReady, } = useApi(); const { isPoolSyncing } = useUi(); @@ -71,7 +71,7 @@ export const RewardsStatus = () => { label={t('pools.unclaimedRewards')} helpKey="Pool Rewards" type="odometer" - stat={{ value: labelRewards, unit }} + stat={{ value: labelRewards }} buttons={isPoolSyncing ? [] : buttonsRewards} /> ); diff --git a/src/types/index.ts b/src/types/index.ts index efec2a8871..483f11d562 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -32,6 +32,9 @@ export interface Network { icon: FunctionComponent< SVGProps<SVGSVGElement> & { title?: string | undefined } >; + token: FunctionComponent< + SVGProps<SVGSVGElement> & { title?: string | undefined } + >; logo: { svg: FunctionComponent< SVGProps<SVGSVGElement> & { title?: string | undefined } From 8f1fbf76a0b670dd7e08b04aa8e02caab23a6f72 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 29 Aug 2023 18:17:20 +0700 Subject: [PATCH 374/435] increase spacing --- src/library/Card/Wrappers.ts | 2 +- src/library/Stat/index.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/library/Card/Wrappers.ts b/src/library/Card/Wrappers.ts index 6070691df6..9995c335ff 100644 --- a/src/library/Card/Wrappers.ts +++ b/src/library/Card/Wrappers.ts @@ -57,7 +57,7 @@ export const CardHeaderWrapper = styled.div<CardHeaderWrapperProps>` .networkIcon { width: 1.9rem; height: 1.9rem; - margin-right: 0.45rem; + margin-right: 0.55rem; } > div { diff --git a/src/library/Stat/index.tsx b/src/library/Stat/index.tsx index 9245a794b0..8f2e2cb040 100644 --- a/src/library/Stat/index.tsx +++ b/src/library/Stat/index.tsx @@ -66,7 +66,7 @@ export const Stat = ({ style={{ width: '1.9rem', height: '1.9rem', - marginRight: '0.45rem', + marginRight: '0.55rem', }} /> <Odometer value={stat.value} spaceAfter="0.4rem" /> From 01a9e0c77b07f7f6855e47ad21028e66ac1f89aa Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 29 Aug 2023 18:27:06 +0700 Subject: [PATCH 375/435] use Odometer zero decimals --- package.json | 2 +- src/library/Stat/index.tsx | 2 +- src/pages/Nominate/Active/ManageBond.tsx | 5 ++++- src/pages/Overview/BalanceChart.tsx | 2 +- src/pages/Overview/index.tsx | 1 + src/pages/Pools/Home/ManageBond.tsx | 5 ++++- yarn.lock | 20 ++++++++++---------- 7 files changed, 22 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 6632d7af7c..3344fd08e3 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "@ledgerhq/hw-transport-webhid": "^6.27.19", "@polkadot-cloud/community": "^0.1.10", "@polkadot-cloud/core": "^0.1.12", - "@polkadot-cloud/react": "^0.1.27", + "@polkadot-cloud/react": "0.1.28", "@polkadot-cloud/utils": "^0.0.4", "@polkadot/api": "^10.9.1", "@polkadot/keyring": "^12.1.1", diff --git a/src/library/Stat/index.tsx b/src/library/Stat/index.tsx index 8f2e2cb040..84dd3c9444 100644 --- a/src/library/Stat/index.tsx +++ b/src/library/Stat/index.tsx @@ -69,7 +69,7 @@ export const Stat = ({ marginRight: '0.55rem', }} /> - <Odometer value={stat.value} spaceAfter="0.4rem" /> + <Odometer value={stat.value} spaceAfter="0.4rem" zeroDecimals={2} /> {stat?.unit ? stat.unit : null} </h2> ); diff --git a/src/pages/Nominate/Active/ManageBond.tsx b/src/pages/Nominate/Active/ManageBond.tsx index 2e1bc72fdf..ffe32e569e 100644 --- a/src/pages/Nominate/Active/ManageBond.tsx +++ b/src/pages/Nominate/Active/ManageBond.tsx @@ -55,7 +55,10 @@ export const ManageBond = () => { </h4> <h2> <Token className="networkIcon" /> - <Odometer value={planckToUnit(active, units).toFormat()} /> + <Odometer + value={planckToUnit(active, units).toFormat()} + zeroDecimals={2} + /> </h2> <ButtonRow> <ButtonPrimary diff --git a/src/pages/Overview/BalanceChart.tsx b/src/pages/Overview/BalanceChart.tsx index d293ea96cc..c4d37d7589 100644 --- a/src/pages/Overview/BalanceChart.tsx +++ b/src/pages/Overview/BalanceChart.tsx @@ -134,7 +134,7 @@ export const BalanceChart = () => { <h4>{t('overview.balance')}</h4> <h2> <Token className="networkIcon" /> - <Odometer value={totalBalance.toFormat()} /> + <Odometer value={totalBalance.toFormat()} zeroDecimals={2} /> <span className="note"> {plugins.includes('binance_spot') ? ( <> {usdFormatter.format(freeFiat.toNumber())}</> diff --git a/src/pages/Overview/index.tsx b/src/pages/Overview/index.tsx index 69424d3e05..1c0c6bb10c 100644 --- a/src/pages/Overview/index.tsx +++ b/src/pages/Overview/index.tsx @@ -103,6 +103,7 @@ export const Overview = () => { units ).toFormat() } + zeroDecimals={2} /> <span className="note"> diff --git a/src/pages/Pools/Home/ManageBond.tsx b/src/pages/Pools/Home/ManageBond.tsx index 6c54d15903..a30405834e 100644 --- a/src/pages/Pools/Home/ManageBond.tsx +++ b/src/pages/Pools/Home/ManageBond.tsx @@ -55,7 +55,10 @@ export const ManageBond = () => { </h4> <h2> <Token className="networkIcon" /> - <Odometer value={planckToUnit(active, units).toFormat()} /> + <Odometer + value={planckToUnit(active, units).toFormat()} + zeroDecimals={2} + /> </h2> <ButtonRow> <ButtonPrimary diff --git a/yarn.lock b/yarn.lock index 1e5034c898..dabc0191f7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1517,6 +1517,16 @@ resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.1.12.tgz#ecb4a345f7b518249a0a5e1d53dd7eea24316e81" integrity sha512-HRLF0t6ezFxJnu4yPS6eubzW5ZRWWhr6ZbjvKeJ4u6pj7fNcCeZaFYVTIaVzpoDVYFeGNEe/6MQ1ENSY7fyhXg== +"@polkadot-cloud/react@0.1.28": + version "0.1.28" + resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.28.tgz#a7f9b2457e1fac266435891b99ea681ac2bdf950" + integrity sha512-uL8M0Q1CimU8enGz1/Cj7owRELRAgHsQgTgSvTT0Wpy6x28HMp7FHyMvV5Ec4FVpPxQH/dgV8NSXAPRsNy3wLw== + dependencies: + "@polkadot-cloud/core" "^0.1.12" + "@polkadot-cloud/react" "^0.1.20" + "@polkadot-cloud/utils" "^0.0.4" + react-error-boundary "^4.0.11" + "@polkadot-cloud/react@^0.1.20": version "0.1.20" resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.20.tgz#0386f58edb11617f074bc754b454ea2bef693ee8" @@ -1526,16 +1536,6 @@ "@polkadot-cloud/utils" "^0.0.4" react-error-boundary "^4.0.11" -"@polkadot-cloud/react@^0.1.27": - version "0.1.27" - resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.27.tgz#eb9c666fa9fa1f13d42b4ba98e36e8f74d9383b2" - integrity sha512-EDcniLykaHOLWhPdnLvSbYVwtGxERYZ/9d2ELOEhIX6Ej3WgwGYsUWi2ZRejh1oPmvsegCXVP2jWz9XOcqghOg== - dependencies: - "@polkadot-cloud/core" "^0.1.12" - "@polkadot-cloud/react" "^0.1.20" - "@polkadot-cloud/utils" "^0.0.4" - react-error-boundary "^4.0.11" - "@polkadot-cloud/utils@^0.0.4": version "0.0.4" resolved "https://registry.npmjs.org/@polkadot-cloud/utils/-/utils-0.0.4.tgz#660d5ea9dbf6548f0f7ae9d0d4b86e6016d90c23" From e969901d2d3dadea636c7371047acbe76fef084d Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 29 Aug 2023 18:38:28 +0700 Subject: [PATCH 376/435] svg fixes --- src/config/tokens/svg/DOT.svg | 2 +- src/config/tokens/svg/KSM.svg | 2 +- src/config/tokens/svg/WND.svg | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/config/tokens/svg/DOT.svg b/src/config/tokens/svg/DOT.svg index 84d9ba0c0a..f69617e8bb 100644 --- a/src/config/tokens/svg/DOT.svg +++ b/src/config/tokens/svg/DOT.svg @@ -1 +1 @@ -<svg viewBox="0 0 310 310" fill="none" xmlns="http://www.w3.org/2000/svg"><g filter="url(#filter0_d_1_19)"><circle cx="155" cy="151" r="146" class="light-fill" fill="#eee" stroke="#ccc" stroke-width="10"/><path d="M154.962 89.56c21.165 0 38.322-9.975 38.322-22.28 0-12.305-17.157-22.28-38.322-22.28-21.165 0-38.322 9.975-38.322 22.28 0 12.305 17.157 22.28 38.322 22.28zm0 168.44c21.165 0 38.322-9.975 38.322-22.28 0-12.305-17.157-22.281-38.322-22.281-21.165 0-38.322 9.976-38.322 22.281 0 12.305 17.157 22.28 38.322 22.28zm-53.497-137.409c10.597-18.369 10.528-38.263-.154-44.435-10.683-6.172-27.934 3.715-38.53 22.084-10.598 18.369-10.53 38.263.153 44.435 10.683 6.172 27.934-3.715 38.531-22.084zm145.627 84.14c10.598-18.369 10.534-38.26-.141-44.428-10.675-6.168-27.92 3.723-38.517 22.091-10.598 18.369-10.535 38.26.141 44.428 10.675 6.168 27.92-3.723 38.517-22.091zm-145.776 22.086c10.683-6.172 10.752-26.067.154-44.435-10.597-18.369-27.848-28.257-38.53-22.084-10.683 6.172-10.752 26.066-.154 44.435 10.597 18.369 27.848 28.256 38.53 22.084zM246.96 142.68c10.676-6.168 10.739-26.059.141-44.428-10.597-18.369-27.842-28.26-38.517-22.091-10.675 6.168-10.739 26.059-.141 44.427 10.597 18.369 27.842 28.26 38.517 22.092z" fill="#E6007A"/></g></svg> \ No newline at end of file +<svg version="1.1" width="100%" height="100%" viewBox="0 0 310 310" fill="none" xmlns="http://www.w3.org/2000/svg"><g filter="url(#filter0_d_1_19)"><circle cx="155" cy="151" r="146" class="light-fill" fill="#eee" stroke="#ccc" stroke-width="10"/><path d="M154.962 89.56c21.165 0 38.322-9.975 38.322-22.28 0-12.305-17.157-22.28-38.322-22.28-21.165 0-38.322 9.975-38.322 22.28 0 12.305 17.157 22.28 38.322 22.28zm0 168.44c21.165 0 38.322-9.975 38.322-22.28 0-12.305-17.157-22.281-38.322-22.281-21.165 0-38.322 9.976-38.322 22.281 0 12.305 17.157 22.28 38.322 22.28zm-53.497-137.409c10.597-18.369 10.528-38.263-.154-44.435-10.683-6.172-27.934 3.715-38.53 22.084-10.598 18.369-10.53 38.263.153 44.435 10.683 6.172 27.934-3.715 38.531-22.084zm145.627 84.14c10.598-18.369 10.534-38.26-.141-44.428-10.675-6.168-27.92 3.723-38.517 22.091-10.598 18.369-10.535 38.26.141 44.428 10.675 6.168 27.92-3.723 38.517-22.091zm-145.776 22.086c10.683-6.172 10.752-26.067.154-44.435-10.597-18.369-27.848-28.257-38.53-22.084-10.683 6.172-10.752 26.066-.154 44.435 10.597 18.369 27.848 28.256 38.53 22.084zM246.96 142.68c10.676-6.168 10.739-26.059.141-44.428-10.597-18.369-27.842-28.26-38.517-22.091-10.675 6.168-10.739 26.059-.141 44.427 10.597 18.369 27.842 28.26 38.517 22.092z" fill="#E6007A"/></g></svg> \ No newline at end of file diff --git a/src/config/tokens/svg/KSM.svg b/src/config/tokens/svg/KSM.svg index b6950c3eb5..98ed7699fd 100644 --- a/src/config/tokens/svg/KSM.svg +++ b/src/config/tokens/svg/KSM.svg @@ -1,4 +1,4 @@ -<svg width="302" height="302" viewBox="0 0 302 302" fill="none" xmlns="http://www.w3.org/2000/svg"> +<svg version="1.1" width="100%" height="100%" viewBox="0 0 302 302" fill="none" xmlns="http://www.w3.org/2000/svg"> <circle cx="151" cy="151" r="151" fill="black"/> <path d="M227.655 94.7713C224.991 92.6735 221.816 89.8082 216.029 89.0919C210.6 88.3756 205.069 92.0083 201.33 94.4131C197.591 96.8179 190.523 103.879 187.604 106.028C184.685 108.177 177.207 110.172 165.172 117.386C153.136 124.601 105.916 154.891 105.916 154.891L118.207 155.044L63.4071 183.236H68.8872L61 189.223C61 189.223 67.9653 191.065 73.8038 187.381V189.069C73.8038 189.069 139.052 163.384 151.651 170.036L143.969 172.287C144.635 172.287 157.029 173.106 157.029 173.106C157.029 173.106 157.438 180.832 164.916 185.795C172.393 190.707 172.547 193.418 172.547 193.418C172.547 193.418 168.655 195.005 168.655 197C168.655 197 174.391 195.26 179.717 195.414C185.043 195.567 189.704 197 189.704 197C189.704 197 189.294 194.851 184.122 193.418C178.898 191.935 173.827 186.358 171.318 183.288C168.808 180.218 167.067 174.743 169.218 169.268C171.01 164.612 177.259 162.054 190.165 155.402C205.376 147.523 208.859 141.69 211.01 137.136C213.161 132.583 216.336 123.526 218.128 119.28C220.382 113.805 223.148 110.888 225.452 109.149C227.706 107.409 238 103.572 238 103.572C238 103.572 230.164 96.7667 227.655 94.7713Z" fill="#EEEEEE"/> </svg> diff --git a/src/config/tokens/svg/WND.svg b/src/config/tokens/svg/WND.svg index f2e18607a5..83d722fb81 100644 --- a/src/config/tokens/svg/WND.svg +++ b/src/config/tokens/svg/WND.svg @@ -1 +1 @@ -<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1671.16 1671.66"><defs><linearGradient id="b" x1="40.98" y1="835.47" x2="1774.13" y2="836.99" gradientTransform="matrix(1 0 0 -1 -.84 1672)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f79420" stop-opacity=".92"/><stop offset="1" stop-color="#c4c4c4" stop-opacity="0"/></linearGradient><mask id="a" x="0" y="0" width="1671.16" height="1671.66" maskUnits="userSpaceOnUse"><circle cx="836.27" cy="836.22" r="835.44" fill="#c4c4c4" transform="translate(-.84)"/></mask></defs><circle cx="835.44" cy="836.22" r="835.44" fill="#e6007a"/><g mask="url(#a)"><path fill="url(#b)" d="M.66 0h1670.5v1671.65H.66z"/></g><path d="M533.46 1196.48H735.4L799.78 963c8.87-32.19 54.14-32.17 63 0l64.15 233.43h201.55l154.53-597h-189.23l-48.32 237c-7 34.4-55.41 35.35-63.75 1.25l-58.25-238.16h-184.6l-56.7 239.64c-8.11 34.22-56.6 33.55-63.78-.87l-17-81.7c-19.22-91.53-99.22-157.07-192-157.07h-30.06z" fill="#fff"/></svg> \ No newline at end of file +<svg version="1.1" width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1671.16 1671.66"><defs><linearGradient id="b" x1="40.98" y1="835.47" x2="1774.13" y2="836.99" gradientTransform="matrix(1 0 0 -1 -.84 1672)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f79420" stop-opacity=".92"/><stop offset="1" stop-color="#c4c4c4" stop-opacity="0"/></linearGradient><mask id="a" x="0" y="0" width="1671.16" height="1671.66" maskUnits="userSpaceOnUse"><circle cx="836.27" cy="836.22" r="835.44" fill="#c4c4c4" transform="translate(-.84)"/></mask></defs><circle cx="835.44" cy="836.22" r="835.44" fill="#e6007a"/><g mask="url(#a)"><path fill="url(#b)" d="M.66 0h1670.5v1671.65H.66z"/></g><path d="M533.46 1196.48H735.4L799.78 963c8.87-32.19 54.14-32.17 63 0l64.15 233.43h201.55l154.53-597h-189.23l-48.32 237c-7 34.4-55.41 35.35-63.75 1.25l-58.25-238.16h-184.6l-56.7 239.64c-8.11 34.22-56.6 33.55-63.78-.87l-17-81.7c-19.22-91.53-99.22-157.07-192-157.07h-30.06z" fill="#fff"/></svg> \ No newline at end of file From a458ce642d26f9ddcf5ec4e7e8c08eeac4e8c04e Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 29 Aug 2023 18:47:29 +0700 Subject: [PATCH 377/435] svg fix --- src/config/tokens/svg/DOT.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config/tokens/svg/DOT.svg b/src/config/tokens/svg/DOT.svg index f69617e8bb..d9badbeba9 100644 --- a/src/config/tokens/svg/DOT.svg +++ b/src/config/tokens/svg/DOT.svg @@ -1 +1 @@ -<svg version="1.1" width="100%" height="100%" viewBox="0 0 310 310" fill="none" xmlns="http://www.w3.org/2000/svg"><g filter="url(#filter0_d_1_19)"><circle cx="155" cy="151" r="146" class="light-fill" fill="#eee" stroke="#ccc" stroke-width="10"/><path d="M154.962 89.56c21.165 0 38.322-9.975 38.322-22.28 0-12.305-17.157-22.28-38.322-22.28-21.165 0-38.322 9.975-38.322 22.28 0 12.305 17.157 22.28 38.322 22.28zm0 168.44c21.165 0 38.322-9.975 38.322-22.28 0-12.305-17.157-22.281-38.322-22.281-21.165 0-38.322 9.976-38.322 22.281 0 12.305 17.157 22.28 38.322 22.28zm-53.497-137.409c10.597-18.369 10.528-38.263-.154-44.435-10.683-6.172-27.934 3.715-38.53 22.084-10.598 18.369-10.53 38.263.153 44.435 10.683 6.172 27.934-3.715 38.531-22.084zm145.627 84.14c10.598-18.369 10.534-38.26-.141-44.428-10.675-6.168-27.92 3.723-38.517 22.091-10.598 18.369-10.535 38.26.141 44.428 10.675 6.168 27.92-3.723 38.517-22.091zm-145.776 22.086c10.683-6.172 10.752-26.067.154-44.435-10.597-18.369-27.848-28.257-38.53-22.084-10.683 6.172-10.752 26.066-.154 44.435 10.597 18.369 27.848 28.256 38.53 22.084zM246.96 142.68c10.676-6.168 10.739-26.059.141-44.428-10.597-18.369-27.842-28.26-38.517-22.091-10.675 6.168-10.739 26.059-.141 44.427 10.597 18.369 27.842 28.26 38.517 22.092z" fill="#E6007A"/></g></svg> \ No newline at end of file +<svg version="1.1" width="100%" height="100%" viewBox="0 0 310 310" fill="none" xmlns="http://www.w3.org/2000/svg"><g><circle cx="155" cy="151" r="146" fill="#eee" stroke="#ccc" stroke-width="10"/><path d="M154.962 89.56c21.165 0 38.322-9.975 38.322-22.28 0-12.305-17.157-22.28-38.322-22.28-21.165 0-38.322 9.975-38.322 22.28 0 12.305 17.157 22.28 38.322 22.28zm0 168.44c21.165 0 38.322-9.975 38.322-22.28 0-12.305-17.157-22.281-38.322-22.281-21.165 0-38.322 9.976-38.322 22.281 0 12.305 17.157 22.28 38.322 22.28zm-53.497-137.409c10.597-18.369 10.528-38.263-.154-44.435-10.683-6.172-27.934 3.715-38.53 22.084-10.598 18.369-10.53 38.263.153 44.435 10.683 6.172 27.934-3.715 38.531-22.084zm145.627 84.14c10.598-18.369 10.534-38.26-.141-44.428-10.675-6.168-27.92 3.723-38.517 22.091-10.598 18.369-10.535 38.26.141 44.428 10.675 6.168 27.92-3.723 38.517-22.091zm-145.776 22.086c10.683-6.172 10.752-26.067.154-44.435-10.597-18.369-27.848-28.257-38.53-22.084-10.683 6.172-10.752 26.066-.154 44.435 10.597 18.369 27.848 28.256 38.53 22.084zM246.96 142.68c10.676-6.168 10.739-26.059.141-44.428-10.597-18.369-27.842-28.26-38.517-22.091-10.675 6.168-10.739 26.059-.141 44.427 10.597 18.369 27.842 28.26 38.517 22.092z" fill="#E6007A"/></g></svg> \ No newline at end of file From 9be24ef0d24098604226200b7b8c17cf8920ff92 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 29 Aug 2023 12:55:13 +0100 Subject: [PATCH 378/435] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 88904c64cc..3d8d8e0971 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ # Polkadot Staking Dashboard -<img width="1739" alt="Screenshot 2023-06-16 at 01 23 08" src="https://github.com/paritytech/polkadot-staking-dashboard/assets/13929023/ed4c11c2-38f5-41bd-a32e-46c27a4fb590"> +<img width="1727" alt="Screenshot 2023-08-29 at 18 54 33" src="https://github.com/paritytech/polkadot-staking-dashboard/assets/13929023/6291d682-0434-4b77-b6e9-383d277893b0"> ## Contributing Community Assets From 68e92d6e03e78dcbe468b9a3d8f7b45df7386498 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 29 Aug 2023 20:13:09 +0700 Subject: [PATCH 379/435] use minDecimalPlaces --- package.json | 2 +- src/library/Stat/index.tsx | 8 ++++++-- src/library/StatBoxList/Number.tsx | 8 +++++--- src/library/StatBoxList/Pie.tsx | 15 +++++++++++++-- src/pages/Nominate/Active/ManageBond.tsx | 4 ++-- .../Active/Status/UnclaimedPayoutsStatus.tsx | 7 +++++-- src/pages/Overview/BalanceChart.tsx | 11 +++++++++-- src/pages/Overview/index.tsx | 12 ++++++------ src/pages/Pools/Home/ManageBond.tsx | 4 ++-- yarn.lock | 5 +++++ 10 files changed, 54 insertions(+), 22 deletions(-) diff --git a/package.json b/package.json index 3344fd08e3..39b1b0364a 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "@polkadot-cloud/community": "^0.1.10", "@polkadot-cloud/core": "^0.1.12", "@polkadot-cloud/react": "0.1.28", - "@polkadot-cloud/utils": "^0.0.4", + "@polkadot-cloud/utils": "0.0.6", "@polkadot/api": "^10.9.1", "@polkadot/keyring": "^12.1.1", "@polkadot/rpc-provider": "^10.9.1", diff --git a/src/library/Stat/index.tsx b/src/library/Stat/index.tsx index 84dd3c9444..526b39f794 100644 --- a/src/library/Stat/index.tsx +++ b/src/library/Stat/index.tsx @@ -9,7 +9,7 @@ import { ButtonSecondary, Odometer, } from '@polkadot-cloud/react'; -import { applyWidthAsPadding } from '@polkadot-cloud/utils'; +import { applyWidthAsPadding, minDecimalPlaces } from '@polkadot-cloud/utils'; import React, { useEffect, useLayoutEffect, useRef } from 'react'; import { useHelp } from 'contexts/Help'; import { useNotifications } from 'contexts/Notifications'; @@ -69,7 +69,11 @@ export const Stat = ({ marginRight: '0.55rem', }} /> - <Odometer value={stat.value} spaceAfter="0.4rem" zeroDecimals={2} /> + <Odometer + value={minDecimalPlaces(stat.value, 2)} + spaceAfter="0.4rem" + zeroDecimals={2} + /> {stat?.unit ? stat.unit : null} </h2> ); diff --git a/src/library/StatBoxList/Number.tsx b/src/library/StatBoxList/Number.tsx index 3fa585df2a..b44a5aac6b 100644 --- a/src/library/StatBoxList/Number.tsx +++ b/src/library/StatBoxList/Number.tsx @@ -4,6 +4,7 @@ import { ButtonHelp, Odometer } from '@polkadot-cloud/react'; import { useHelp } from 'contexts/Help'; import BigNumber from 'bignumber.js'; +import { minDecimalPlaces } from '@polkadot-cloud/utils'; import { StatBox } from './Item'; import type { NumberProps } from './types'; @@ -23,9 +24,10 @@ export const Number = ({ <div className="labels"> <h3> <Odometer - value={new BigNumber(value) - .decimalPlaces(decimals || 0) - .toFormat()} + value={minDecimalPlaces( + new BigNumber(value).decimalPlaces(decimals || 0).toFormat(), + 2 + )} /> {unit ? <>{unit}</> : null} </h3> diff --git a/src/library/StatBoxList/Pie.tsx b/src/library/StatBoxList/Pie.tsx index af772c47f5..0b6381fbde 100644 --- a/src/library/StatBoxList/Pie.tsx +++ b/src/library/StatBoxList/Pie.tsx @@ -6,6 +6,7 @@ import { useEffect, useState } from 'react'; import { useHelp } from 'contexts/Help'; import { StatPie } from 'library/Graphs/StatBoxPie'; import BigNumber from 'bignumber.js'; +import { minDecimalPlaces } from '@polkadot-cloud/utils'; import { StatBox } from './Item'; import type { PieProps } from './types'; @@ -40,13 +41,23 @@ export const Pie = ({ label, stat, graph, tooltip, helpKey }: PieProps) => { <div className="labels"> <h3> - <Odometer value={new BigNumber(values.value).toFormat()} /> + <Odometer + value={minDecimalPlaces( + new BigNumber(values.value).toFormat(), + 2 + )} + /> {stat?.unit && <>{stat?.unit}</>} {showTotal ? ( <span className="total"> /  - <Odometer value={new BigNumber(values.total).toFormat()} /> + <Odometer + value={minDecimalPlaces( + new BigNumber(values.total).toFormat(), + 2 + )} + /> {stat?.unit ? <>{stat?.unit}unit</> : null} </span> ) : null} diff --git a/src/pages/Nominate/Active/ManageBond.tsx b/src/pages/Nominate/Active/ManageBond.tsx index ffe32e569e..5253a45a75 100644 --- a/src/pages/Nominate/Active/ManageBond.tsx +++ b/src/pages/Nominate/Active/ManageBond.tsx @@ -8,7 +8,7 @@ import { ButtonRow, Odometer, } from '@polkadot-cloud/react'; -import { planckToUnit } from '@polkadot-cloud/utils'; +import { minDecimalPlaces, planckToUnit } from '@polkadot-cloud/utils'; import type BigNumber from 'bignumber.js'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; @@ -56,7 +56,7 @@ export const ManageBond = () => { <h2> <Token className="networkIcon" /> <Odometer - value={planckToUnit(active, units).toFormat()} + value={minDecimalPlaces(planckToUnit(active, units).toFormat(), 2)} zeroDecimals={2} /> </h2> diff --git a/src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx b/src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx index f1eaae0253..184c42387b 100644 --- a/src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx +++ b/src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx @@ -6,7 +6,7 @@ import { Stat } from 'library/Stat'; import { usePayouts } from 'contexts/Payouts'; import BigNumber from 'bignumber.js'; import { useApi } from 'contexts/Api'; -import { planckToUnit } from '@polkadot-cloud/utils'; +import { minDecimalPlaces, planckToUnit } from '@polkadot-cloud/utils'; export const UnclaimedPayoutsStatus = () => { const { t } = useTranslation('pages'); @@ -27,7 +27,10 @@ export const UnclaimedPayoutsStatus = () => { helpKey="Payout" type="odometer" stat={{ - value: planckToUnit(totalUnclaimed, network.units).toFormat(), + value: minDecimalPlaces( + planckToUnit(totalUnclaimed, network.units).toFormat(), + 2 + ), }} /> ); diff --git a/src/pages/Overview/BalanceChart.tsx b/src/pages/Overview/BalanceChart.tsx index c4d37d7589..64238cf655 100644 --- a/src/pages/Overview/BalanceChart.tsx +++ b/src/pages/Overview/BalanceChart.tsx @@ -3,7 +3,11 @@ import { faCheck, faCheckDouble } from '@fortawesome/free-solid-svg-icons'; import { ButtonTertiary, Odometer } from '@polkadot-cloud/react'; -import { greaterThanZero, planckToUnit } from '@polkadot-cloud/utils'; +import { + greaterThanZero, + minDecimalPlaces, + planckToUnit, +} from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; @@ -134,7 +138,10 @@ export const BalanceChart = () => { <h4>{t('overview.balance')}</h4> <h2> <Token className="networkIcon" /> - <Odometer value={totalBalance.toFormat()} zeroDecimals={2} /> + <Odometer + value={minDecimalPlaces(totalBalance.toFormat(), 2)} + zeroDecimals={2} + /> <span className="note"> {plugins.includes('binance_spot') ? ( <> {usdFormatter.format(freeFiat.toNumber())}</> diff --git a/src/pages/Overview/index.tsx b/src/pages/Overview/index.tsx index 1c0c6bb10c..172f9c770e 100644 --- a/src/pages/Overview/index.tsx +++ b/src/pages/Overview/index.tsx @@ -8,7 +8,6 @@ import { PageTitle, RowSection, } from '@polkadot-cloud/react'; -import { planckToUnit } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { formatDistance, fromUnixTime, getUnixTime } from 'date-fns'; import { useTranslation } from 'react-i18next'; @@ -21,6 +20,7 @@ import { StatBoxList } from 'library/StatBoxList'; import { SubscanButton } from 'library/SubscanButton'; import { locales } from 'locale'; import { ControllerNotStash } from 'pages/Nominate/Active/ControllerNotStash'; +import { minDecimalPlaces, planckToUnit } from '@polkadot-cloud/utils'; import { ActiveAccounts } from './ActiveAccounts'; import { BalanceChart } from './BalanceChart'; import { BalanceLinks } from './BalanceLinks'; @@ -95,15 +95,15 @@ export const Overview = () => { <h2> <Token className="networkIcon" /> <Odometer - value={ + value={minDecimalPlaces( lastReward === null - ? 0 + ? '0' : planckToUnit( new BigNumber(lastReward.amount), units - ).toFormat() - } - zeroDecimals={2} + ).toFormat(), + 2 + )} /> <span className="note"> diff --git a/src/pages/Pools/Home/ManageBond.tsx b/src/pages/Pools/Home/ManageBond.tsx index a30405834e..82203b3517 100644 --- a/src/pages/Pools/Home/ManageBond.tsx +++ b/src/pages/Pools/Home/ManageBond.tsx @@ -8,7 +8,7 @@ import { ButtonRow, Odometer, } from '@polkadot-cloud/react'; -import { planckToUnit } from '@polkadot-cloud/utils'; +import { minDecimalPlaces, planckToUnit } from '@polkadot-cloud/utils'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; @@ -56,7 +56,7 @@ export const ManageBond = () => { <h2> <Token className="networkIcon" /> <Odometer - value={planckToUnit(active, units).toFormat()} + value={minDecimalPlaces(planckToUnit(active, units).toFormat(), 2)} zeroDecimals={2} /> </h2> diff --git a/yarn.lock b/yarn.lock index dabc0191f7..7d2ca99b2c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1536,6 +1536,11 @@ "@polkadot-cloud/utils" "^0.0.4" react-error-boundary "^4.0.11" +"@polkadot-cloud/utils@0.0.6": + version "0.0.6" + resolved "https://registry.npmjs.org/@polkadot-cloud/utils/-/utils-0.0.6.tgz#ea0fc18c6af7cd6a1d14ae6674f19b1b3ef82347" + integrity sha512-alm1zdqRcuBm9a59jy0yPKWY4FTenQTKvLSrX/+8aV0YbkwQ6vBkUwhs3FMi5GI52pC68X6VO5DzwVscg6kvEg== + "@polkadot-cloud/utils@^0.0.4": version "0.0.4" resolved "https://registry.npmjs.org/@polkadot-cloud/utils/-/utils-0.0.4.tgz#660d5ea9dbf6548f0f7ae9d0d4b86e6016d90c23" From 78f82dd2d93054c395bcfb7a15389d9150c3a91c Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 29 Aug 2023 20:43:22 +0700 Subject: [PATCH 380/435] fix --- package.json | 2 +- src/library/StatBoxList/Number.tsx | 8 +++----- src/library/StatBoxList/Pie.tsx | 15 ++------------- yarn.lock | 24 +++++------------------- 4 files changed, 11 insertions(+), 38 deletions(-) diff --git a/package.json b/package.json index 39b1b0364a..b748c921fc 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "@ledgerhq/hw-transport-webhid": "^6.27.19", "@polkadot-cloud/community": "^0.1.10", "@polkadot-cloud/core": "^0.1.12", - "@polkadot-cloud/react": "0.1.28", + "@polkadot-cloud/react": "^0.1.29", "@polkadot-cloud/utils": "0.0.6", "@polkadot/api": "^10.9.1", "@polkadot/keyring": "^12.1.1", diff --git a/src/library/StatBoxList/Number.tsx b/src/library/StatBoxList/Number.tsx index b44a5aac6b..3fa585df2a 100644 --- a/src/library/StatBoxList/Number.tsx +++ b/src/library/StatBoxList/Number.tsx @@ -4,7 +4,6 @@ import { ButtonHelp, Odometer } from '@polkadot-cloud/react'; import { useHelp } from 'contexts/Help'; import BigNumber from 'bignumber.js'; -import { minDecimalPlaces } from '@polkadot-cloud/utils'; import { StatBox } from './Item'; import type { NumberProps } from './types'; @@ -24,10 +23,9 @@ export const Number = ({ <div className="labels"> <h3> <Odometer - value={minDecimalPlaces( - new BigNumber(value).decimalPlaces(decimals || 0).toFormat(), - 2 - )} + value={new BigNumber(value) + .decimalPlaces(decimals || 0) + .toFormat()} /> {unit ? <>{unit}</> : null} </h3> diff --git a/src/library/StatBoxList/Pie.tsx b/src/library/StatBoxList/Pie.tsx index 0b6381fbde..af772c47f5 100644 --- a/src/library/StatBoxList/Pie.tsx +++ b/src/library/StatBoxList/Pie.tsx @@ -6,7 +6,6 @@ import { useEffect, useState } from 'react'; import { useHelp } from 'contexts/Help'; import { StatPie } from 'library/Graphs/StatBoxPie'; import BigNumber from 'bignumber.js'; -import { minDecimalPlaces } from '@polkadot-cloud/utils'; import { StatBox } from './Item'; import type { PieProps } from './types'; @@ -41,23 +40,13 @@ export const Pie = ({ label, stat, graph, tooltip, helpKey }: PieProps) => { <div className="labels"> <h3> - <Odometer - value={minDecimalPlaces( - new BigNumber(values.value).toFormat(), - 2 - )} - /> + <Odometer value={new BigNumber(values.value).toFormat()} /> {stat?.unit && <>{stat?.unit}</>} {showTotal ? ( <span className="total"> /  - <Odometer - value={minDecimalPlaces( - new BigNumber(values.total).toFormat(), - 2 - )} - /> + <Odometer value={new BigNumber(values.total).toFormat()} /> {stat?.unit ? <>{stat?.unit}unit</> : null} </span> ) : null} diff --git a/yarn.lock b/yarn.lock index 7d2ca99b2c..c180174374 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1507,32 +1507,18 @@ resolved "https://registry.npmjs.org/@polkadot-cloud/community/-/community-0.1.10.tgz#d2a99190c0a89a67275264084e6e750269990986" integrity sha512-VT38rqOvORuYdPLigS8UNwvitoc0DFZWEazsvHxz9bTnPBL/7M3LujWXO14OSGw+FTvfz4RzPwovmW4u7RoT/Q== -"@polkadot-cloud/core@0.1.6": - version "0.1.6" - resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.1.6.tgz#c82934fdbc1fd5e9759de30f2bb6881cec2a5bf4" - integrity sha512-4nftY+1sXXG4qauZhlagafdWsBLewnuk+UtqA8z5AIADr2QmEfsuQMBXIwsAZIaHPvP2/VfjCwLEBKQR3uWAow== - "@polkadot-cloud/core@^0.1.12": version "0.1.12" resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.1.12.tgz#ecb4a345f7b518249a0a5e1d53dd7eea24316e81" integrity sha512-HRLF0t6ezFxJnu4yPS6eubzW5ZRWWhr6ZbjvKeJ4u6pj7fNcCeZaFYVTIaVzpoDVYFeGNEe/6MQ1ENSY7fyhXg== -"@polkadot-cloud/react@0.1.28": - version "0.1.28" - resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.28.tgz#a7f9b2457e1fac266435891b99ea681ac2bdf950" - integrity sha512-uL8M0Q1CimU8enGz1/Cj7owRELRAgHsQgTgSvTT0Wpy6x28HMp7FHyMvV5Ec4FVpPxQH/dgV8NSXAPRsNy3wLw== +"@polkadot-cloud/react@^0.1.27", "@polkadot-cloud/react@^0.1.29": + version "0.1.29" + resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.29.tgz#94ab13204fb7e2b0a554af45900233d03ff25930" + integrity sha512-s8d4DijLos6h1baFt0ZRmMET7EtAaoeMoZwlMNxd8tLsPquf7gUFdTea4KnjUm+qaL8jYE79S5/wjJm4btzl3w== dependencies: "@polkadot-cloud/core" "^0.1.12" - "@polkadot-cloud/react" "^0.1.20" - "@polkadot-cloud/utils" "^0.0.4" - react-error-boundary "^4.0.11" - -"@polkadot-cloud/react@^0.1.20": - version "0.1.20" - resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.20.tgz#0386f58edb11617f074bc754b454ea2bef693ee8" - integrity sha512-K2d+YzPGfHF/eZ1TU7264VGKGpqEtg07nYCbmpThXCFnrPkO/oe9UT5ym/7Rpzq4aNSugIJ6YXtUL8UPCCheSQ== - dependencies: - "@polkadot-cloud/core" "0.1.6" + "@polkadot-cloud/react" "^0.1.27" "@polkadot-cloud/utils" "^0.0.4" react-error-boundary "^4.0.11" From d9bdb5b4e849209f0eccb637c05b8e7dc16b2479 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Aug 2023 21:34:05 +0000 Subject: [PATCH 381/435] Bump prettier from 3.0.2 to 3.0.3 Bumps [prettier](https://github.com/prettier/prettier) from 3.0.2 to 3.0.3. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/3.0.2...3.0.3) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index b748c921fc..ce91f85d85 100644 --- a/package.json +++ b/package.json @@ -82,7 +82,7 @@ "eslint-plugin-react": "^7.33.2", "eslint-plugin-unused-imports": "^3.0.0", "gh-pages": "^6.0.0", - "prettier": "^3.0.2", + "prettier": "^3.0.3", "prettier-plugin-organize-imports": "^3.2.3", "sass": "^1.66.1", "typescript": "^5.2.2", diff --git a/yarn.lock b/yarn.lock index c180174374..279e431942 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5009,10 +5009,10 @@ prettier-plugin-organize-imports@^3.2.3: resolved "https://registry.yarnpkg.com/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-3.2.3.tgz#6b0141ac71f7ee9a673ce83e95456319e3a7cf0d" integrity sha512-KFvk8C/zGyvUaE3RvxN2MhCLwzV6OBbFSkwZ2OamCrs9ZY4i5L77jQ/w4UmUr+lqX8qbaqVq6bZZkApn+IgJSg== -prettier@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.2.tgz#78fcecd6d870551aa5547437cdae39d4701dca5b" - integrity sha512-o2YR9qtniXvwEZlOKbveKfDQVyqxbEIWn48Z8m3ZJjBjcCmUy3xZGIv+7AkaeuaTr6yPXJjwv07ZWlsWbEy1rQ== +prettier@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.3.tgz#432a51f7ba422d1469096c0fdc28e235db8f9643" + integrity sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg== pretty-format@^29.5.0: version "29.6.1" From f3869ff8a480ddec70b9b3e4b382ac3aa38a2e63 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Aug 2023 21:33:27 +0000 Subject: [PATCH 382/435] Bump react-i18next from 13.2.0 to 13.2.1 Bumps [react-i18next](https://github.com/i18next/react-i18next) from 13.2.0 to 13.2.1. - [Changelog](https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md) - [Commits](https://github.com/i18next/react-i18next/compare/v13.2.0...v13.2.1) --- updated-dependencies: - dependency-name: react-i18next dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index ce91f85d85..f4356064c7 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "react-dom": "^18.2.0", "react-error-boundary": "^4.0.11", "react-helmet": "^6.1.0", - "react-i18next": "^13.2.0", + "react-i18next": "^13.2.1", "react-qr-reader": "^2.2.1", "react-router-dom": "^6.15.0", "react-scroll": "^1.8.9", diff --git a/yarn.lock b/yarn.lock index 279e431942..0c7d4a8e09 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5104,10 +5104,10 @@ react-helmet@^6.1.0: react-fast-compare "^3.1.1" react-side-effect "^2.1.0" -react-i18next@^13.2.0: - version "13.2.0" - resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-13.2.0.tgz#9d7a574144738e46dd4c66573907f56942435ced" - integrity sha512-YD8xMc+I0jkHHLotd8ERMzZ53hMaCBVLCndbcbBveJn3FbppRP4jyYOAkmR8XItN01sTD9ilAjoEjpH1i42IgA== +react-i18next@^13.2.1: + version "13.2.1" + resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-13.2.1.tgz#57cf7c07778281bdb1e0a1fd60ca5fcc35c0a786" + integrity sha512-XhMsnGgJnytWfi2Q70HMYfm+zysPUu1Pz+It6I87WwaeclGY+W8W1c11uENEMNg+Xb+mNrGuo8GEDuQDOgO+oQ== dependencies: "@babel/runtime" "^7.22.5" html-parse-stringify "^3.0.1" From 2b314c67e52dbeef779b1ff67d076b94d2661070 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Aug 2023 21:33:39 +0000 Subject: [PATCH 383/435] Bump @dotlottie/player-component from 2.3.0 to 2.4.2 Bumps [@dotlottie/player-component](https://github.com/dotlottie/player-component) from 2.3.0 to 2.4.2. - [Release notes](https://github.com/dotlottie/player-component/releases) - [Commits](https://github.com/dotlottie/player-component/compare/@dotlottie/player-component@2.3.0...@dotlottie/player-component@2.4.2) --- updated-dependencies: - dependency-name: "@dotlottie/player-component" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index f4356064c7..82ddf1595c 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "visualizer": "vite-bundle-visualizer" }, "dependencies": { - "@dotlottie/player-component": "^2.3.0", + "@dotlottie/player-component": "^2.4.2", "@fortawesome/fontawesome-svg-core": "^6.4.2", "@fortawesome/free-brands-svg-icons": "^6.4.2", "@fortawesome/free-regular-svg-icons": "^6.4.2", diff --git a/yarn.lock b/yarn.lock index 0c7d4a8e09..d107984f41 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1110,10 +1110,10 @@ "@babel/helper-validator-identifier" "^7.22.5" to-fast-properties "^2.0.0" -"@dotlottie/player-component@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@dotlottie/player-component/-/player-component-2.3.0.tgz#1b04ff8600eccbf75f6229de9b61eaa035449c58" - integrity sha512-/+i+j/EcbLyQCt0Cq6QS7stf4n3bwHr22uTa8fAd1oHPRiy2x/89ffH/SGTRHKiAL043Ar2rQZ//2oDOBw4Alg== +"@dotlottie/player-component@^2.4.2": + version "2.4.2" + resolved "https://registry.yarnpkg.com/@dotlottie/player-component/-/player-component-2.4.2.tgz#3e9c17efff6e7772915741536961f2aa97108c49" + integrity sha512-udGY/ysjy5LBnTbUVN+CVRWnkQ7WBv3bBZVmQkwvULW5esQ6PY4KqOcfbsEm7S5+Iju8t9BO1I1jQ6WQzH/2ig== dependencies: lit "^2.7.5" From 24ca2f4ed327fe52bc2c5b76495c0738d0a735a3 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Wed, 30 Aug 2023 11:18:01 +0700 Subject: [PATCH 384/435] ClaimPayout modal --- src/modals/ClaimPayouts/Forms.tsx | 104 +++++++++++++++++++++++++++ src/modals/ClaimPayouts/Item.tsx | 44 ++++++++++++ src/modals/ClaimPayouts/Overview.tsx | 72 +++++++++++++++++++ src/modals/ClaimPayouts/Wrappers.ts | 59 +++++++++++++++ src/modals/ClaimPayouts/index.tsx | 98 +++++++++++++++++++++++++ src/overlay/index.tsx | 2 + yarn.lock | 15 +++- 7 files changed, 393 insertions(+), 1 deletion(-) create mode 100644 src/modals/ClaimPayouts/Forms.tsx create mode 100644 src/modals/ClaimPayouts/Item.tsx create mode 100644 src/modals/ClaimPayouts/Overview.tsx create mode 100644 src/modals/ClaimPayouts/Wrappers.ts create mode 100644 src/modals/ClaimPayouts/index.tsx diff --git a/src/modals/ClaimPayouts/Forms.tsx b/src/modals/ClaimPayouts/Forms.tsx new file mode 100644 index 0000000000..8cd3c00f2a --- /dev/null +++ b/src/modals/ClaimPayouts/Forms.tsx @@ -0,0 +1,104 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: GPL-3.0-only + +import { faChevronLeft } from '@fortawesome/free-solid-svg-icons'; +import { + ActionItem, + ButtonSubmitInvert, + ModalWarnings, +} from '@polkadot-cloud/react'; +import { planckToUnit } from '@polkadot-cloud/utils'; +import BigNumber from 'bignumber.js'; +import { forwardRef, useEffect, useState } from 'react'; +import { useTranslation } from 'react-i18next'; +import { useApi } from 'contexts/Api'; +import { useConnect } from 'contexts/Connect'; +import { Warning } from 'library/Form/Warning'; +import { useSignerWarnings } from 'library/Hooks/useSignerWarnings'; +import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; +import { SubmitTx } from 'library/SubmitTx'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; +import { ContentWrapper } from './Wrappers'; + +export const Forms = forwardRef(({ setSection, payout }: any, ref: any) => { + const { t } = useTranslation('modals'); + const { setModalStatus } = useOverlay().modal; + const { api, network } = useApi(); + const { activeAccount } = useConnect(); + const { getSignerWarnings } = useSignerWarnings(); + const { units } = network; + + // TODO: Update to real values. + const validator = payout?.validator ?? ''; + const value = payout?.value ?? new BigNumber(0); + + // Store whether form is valid to submit transaction. + const [valid, setValid] = useState<boolean>(value.isGreaterThan(0)); + + // Ensure payout value is valid. + useEffect(() => { + setValid(value.isGreaterThan(0)); + }, [payout]); + + const getTx = () => { + const tx = null; + if (!valid || !api) return tx; + return api.tx.staking.payoutStakers(validator, '1180'); + }; + + const submitExtrinsic = useSubmitExtrinsic({ + tx: getTx(), + from: activeAccount, + shouldSubmit: valid, + callbackSubmit: () => { + setModalStatus('closing'); + }, + callbackInBlock: () => { + // TODO: Remove subscan unclaimed payout record if it exists & subscan is enabled. + }, + }); + + const warnings = getSignerWarnings( + activeAccount, + false, + submitExtrinsic.proxySupported + ); + + return ( + <ContentWrapper> + <div ref={ref}> + <div className="padding"> + {warnings.length > 0 ? ( + <ModalWarnings withMargin> + {warnings.map((text, i) => ( + <Warning key={`warning${i}`} text={text} /> + ))} + </ModalWarnings> + ) : null} + <div style={{ marginBottom: '2rem' }}> + <ActionItem + text={`${t('withdraw')} ${planckToUnit(value, units)} ${ + network.unit + }`} + /> + <p>{t('withdrawSubtitle')}</p> + </div> + </div> + <SubmitTx + fromController={false} + valid={valid} + buttons={[ + <ButtonSubmitInvert + key="button_back" + text={t('back')} + iconLeft={faChevronLeft} + iconTransform="shrink-1" + onClick={() => setSection(0)} + />, + ]} + {...submitExtrinsic} + /> + </div> + </ContentWrapper> + ); +}); diff --git a/src/modals/ClaimPayouts/Item.tsx b/src/modals/ClaimPayouts/Item.tsx new file mode 100644 index 0000000000..dff3f5d95a --- /dev/null +++ b/src/modals/ClaimPayouts/Item.tsx @@ -0,0 +1,44 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: GPL-3.0-only + +import { ButtonSubmit } from '@polkadot-cloud/react'; +import { planckToUnit } from '@polkadot-cloud/utils'; +import { useTranslation } from 'react-i18next'; +import { useApi } from 'contexts/Api'; +import { Countdown } from 'library/Countdown'; +import { useTimeLeft } from 'library/Hooks/useTimeLeft'; +import { useUnstaking } from 'library/Hooks/useUnstaking'; +import { ItemWrapper } from './Wrappers'; + +export const Item = ({ payout, setSection }: any) => { + const { t } = useTranslation('modals'); + + const { network } = useApi(); + const { units } = network; + const { isFastUnstaking } = useUnstaking(); + const { timeleft } = useTimeLeft(); + + return ( + <ItemWrapper> + <div> + <section> + <h2>{`${planckToUnit(payout, units)} ${network.unit}`}</h2> + <h4> + {t('unlocksInEra')} [era] /  + <Countdown timeleft={timeleft.formatted} markup={false} /> + </h4> + </section> + + <section> + <div> + <ButtonSubmit + text={t('rebond')} + disabled={isFastUnstaking} + onClick={() => setSection(1)} + /> + </div> + </section> + </div> + </ItemWrapper> + ); +}; diff --git a/src/modals/ClaimPayouts/Overview.tsx b/src/modals/ClaimPayouts/Overview.tsx new file mode 100644 index 0000000000..75c10f19fe --- /dev/null +++ b/src/modals/ClaimPayouts/Overview.tsx @@ -0,0 +1,72 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: GPL-3.0-only + +import { ButtonSubmit, ModalNotes } from '@polkadot-cloud/react'; +import { getUnixTime } from 'date-fns'; +import { forwardRef } from 'react'; +import { useTranslation } from 'react-i18next'; +import { useApi } from 'contexts/Api'; +import { useErasToTimeLeft } from 'library/Hooks/useErasToTimeLeft'; +import { timeleftAsString } from 'library/Hooks/useTimeLeft/utils'; +import { useUnstaking } from 'library/Hooks/useUnstaking'; +import { StaticNote } from 'modals/Utils/StaticNote'; +import type { AnyJson } from 'types'; +import { Item } from './Item'; +import { ContentWrapper } from './Wrappers'; + +export const Overview = forwardRef( + ({ setSection, setUnlock }: any, ref: any) => { + const { t } = useTranslation('modals'); + const { consts } = useApi(); + const { isFastUnstaking } = useUnstaking(); + const { erasToSeconds } = useErasToTimeLeft(); + const { bondDuration } = consts; + + const bondDurationFormatted = timeleftAsString( + t, + getUnixTime(new Date()) + 1, + erasToSeconds(bondDuration), + true + ); + + const unclaimedPayouts: AnyJson = []; + + return ( + <ContentWrapper> + <div className="padding" ref={ref}> + <div style={{ margin: '1rem 0 0.5rem 0' }}> + <ButtonSubmit + disabled={isFastUnstaking} + text={t('withdrawUnlocked')} + onClick={() => { + setUnlock({ + era: 0, + value: 5000000000, + }); + setSection(1); + }} + /> + </div> + + {unclaimedPayouts.map((payout: any, i: number) => ( + <Item + key={`unclaimed_payout_${i}`} + payout={payout} + setSection={setSection} + /> + ))} + <ModalNotes withPadding> + <StaticNote + value={bondDurationFormatted} + tKey="unlockTake" + valueKey="bondDurationFormatted" + deps={[bondDuration]} + /> + <p>${t('rebondUnlock')}`</p> + <p>{t('unlockChunk')}</p> + </ModalNotes> + </div> + </ContentWrapper> + ); + } +); diff --git a/src/modals/ClaimPayouts/Wrappers.ts b/src/modals/ClaimPayouts/Wrappers.ts new file mode 100644 index 0000000000..3415ad8d68 --- /dev/null +++ b/src/modals/ClaimPayouts/Wrappers.ts @@ -0,0 +1,59 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: GPL-3.0-only + +import styled from 'styled-components'; + +export const ContentWrapper = styled.div` + border-radius: 1rem; + display: flex; + flex-flow: column nowrap; + flex-basis: 50%; + flex: 1; + + .padding { + padding: 0 1rem; + } + + > div:last-child { + margin-bottom: 0; + } +`; + +export const ItemWrapper = styled.div<any>` + flex: 1; + display: flex; + flex-flow: column wrap; + margin-top: 1.25rem; + + > div { + background: var(--button-primary-background); + display: flex; + flex-flow: row wrap; + width: 100%; + padding: 0.5rem 1rem; + border-radius: 1rem; + + > section { + display: flex; + flex-flow: column wrap; + justify-content: flex-end; + padding: 0.75rem 0; + + &:first-child { + flex-grow: 1; + } + &:last-child { + justify-content: center; + } + } + } + + h2 { + margin: 0; + } + + h4 { + color: var(--text-color-secondary); + margin: 0.75rem 0 0 0; + } +`; diff --git a/src/modals/ClaimPayouts/index.tsx b/src/modals/ClaimPayouts/index.tsx new file mode 100644 index 0000000000..64fddc2e63 --- /dev/null +++ b/src/modals/ClaimPayouts/index.tsx @@ -0,0 +1,98 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: GPL-3.0-only + +import { + ModalFixedTitle, + ModalMotionTwoSection, + ModalSection, +} from '@polkadot-cloud/react'; +import { setStateWithRef } from '@polkadot-cloud/utils'; +import { useEffect, useRef, useState } from 'react'; +import { useTranslation } from 'react-i18next'; +import { Title } from 'library/Modal/Title'; +import { useTxMeta } from 'contexts/TxMeta'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; +import { usePayouts } from 'contexts/Payouts'; +import { Forms } from './Forms'; +import { Overview } from './Overview'; + +export const ClaimPayouts = () => { + const { t } = useTranslation('modals'); + const { notEnoughFunds } = useTxMeta(); + const { unclaimedPayouts } = usePayouts(); + const { setModalHeight } = useOverlay().modal; + + // active modal section + const [section, setSectionState] = useState(0); + const sectionRef = useRef(section); + + const setSection = (s: number) => { + setStateWithRef(s, setSectionState, sectionRef); + }; + + // unlock value of interest + const [unlock, setUnlock] = useState(null); + + // refs for wrappers + const headerRef = useRef<HTMLDivElement>(null); + const overviewRef = useRef<HTMLDivElement>(null); + const formsRef = useRef<HTMLDivElement>(null); + + const getModalHeight = () => { + let h = headerRef.current?.clientHeight ?? 0; + + if (sectionRef.current === 0) { + h += overviewRef.current?.clientHeight ?? 0; + } else { + h += formsRef.current?.clientHeight ?? 0; + } + return h; + }; + + // Resize modal on state change. + useEffect(() => { + setModalHeight(getModalHeight()); + }, [unclaimedPayouts, notEnoughFunds, sectionRef.current]); + + // resize this modal on window resize + useEffect(() => { + window.addEventListener('resize', resizeCallback); + return () => { + window.removeEventListener('resize', resizeCallback); + }; + }, []); + const resizeCallback = () => { + setModalHeight(getModalHeight()); + }; + + return ( + <ModalSection type="carousel"> + <ModalFixedTitle ref={headerRef}> + <Title title={t('unlocks')} fixed /> + </ModalFixedTitle> + <ModalMotionTwoSection + animate={sectionRef.current === 0 ? 'home' : 'next'} + transition={{ + duration: 0.5, + type: 'spring', + bounce: 0.1, + }} + variants={{ + home: { + left: 0, + }, + next: { + left: '-100%', + }, + }} + > + <Overview + setSection={setSection} + setUnlock={setUnlock} + ref={overviewRef} + /> + <Forms setSection={setSection} unlock={unlock} ref={formsRef} /> + </ModalMotionTwoSection> + </ModalSection> + ); +}; diff --git a/src/overlay/index.tsx b/src/overlay/index.tsx index 5fb5c5b10c..347213fc3a 100644 --- a/src/overlay/index.tsx +++ b/src/overlay/index.tsx @@ -4,6 +4,7 @@ import { useHelp } from 'contexts/Help'; import { ErrorFallbackModal } from 'library/ErrorBoundary'; import { Overlay } from '@polkadot-cloud/react'; +import { ClaimPayouts } from 'modals/ClaimPayouts'; import { AccountPoolRoles } from '../modals/AccountPoolRoles'; import { Accounts } from '../modals/Accounts'; import { Bio } from '../modals/Bio'; @@ -49,6 +50,7 @@ export const Overlays = () => { ChangeNominations, ChangePoolRoles, ChooseLanguage, + ClaimPayouts, ClaimReward, Connect, Accounts, diff --git a/yarn.lock b/yarn.lock index d107984f41..db84113449 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1747,7 +1747,7 @@ bn.js "^5.2.1" tslib "^2.5.3" -"@polkadot/util@^12.3.1", "@polkadot/util@^12.4.2": +"@polkadot/util@^12.3.1": version "12.4.2" resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-12.4.2.tgz#65759f4b366c2a787fd21abacab8cf8ab1aebbf9" integrity sha512-NcTCbnIzMb/3TvJNEbaiu/9EvYIBuzDwZfqQ4hzL0GAptkF8aDkKMDCfQ/j3FI38rR+VTPQHNky9fvWglGKGRw== @@ -1760,6 +1760,19 @@ bn.js "^5.2.1" tslib "^2.6.2" +"@polkadot/util@^12.4.2": + version "12.4.2" + resolved "https://registry.npmjs.org/@polkadot/util/-/util-12.4.2.tgz#65759f4b366c2a787fd21abacab8cf8ab1aebbf9" + integrity sha512-NcTCbnIzMb/3TvJNEbaiu/9EvYIBuzDwZfqQ4hzL0GAptkF8aDkKMDCfQ/j3FI38rR+VTPQHNky9fvWglGKGRw== + dependencies: + "@polkadot/x-bigint" "12.4.2" + "@polkadot/x-global" "12.4.2" + "@polkadot/x-textdecoder" "12.4.2" + "@polkadot/x-textencoder" "12.4.2" + "@types/bn.js" "^5.1.1" + bn.js "^5.2.1" + tslib "^2.6.2" + "@polkadot/wasm-bridge@7.2.1": version "7.2.1" resolved "https://registry.yarnpkg.com/@polkadot/wasm-bridge/-/wasm-bridge-7.2.1.tgz#8464a96552207d2b49c6f32137b24132534b91ee" From ea9ae1c6b7b2cba6abc1ecfa23cdf694932301b5 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Wed, 30 Aug 2023 11:24:58 +0700 Subject: [PATCH 385/435] add Claim button --- .../Active/Status/UnclaimedPayoutsStatus.tsx | 28 +++++++++++++++++-- src/pages/Pools/Home/Status/RewardsStatus.tsx | 4 +-- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx b/src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx index 184c42387b..65134329a4 100644 --- a/src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx +++ b/src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx @@ -7,11 +7,16 @@ import { usePayouts } from 'contexts/Payouts'; import BigNumber from 'bignumber.js'; import { useApi } from 'contexts/Api'; import { minDecimalPlaces, planckToUnit } from '@polkadot-cloud/utils'; +import { faCircleDown } from '@fortawesome/free-solid-svg-icons'; +import { useConnect } from 'contexts/Connect'; +import { useOverlay } from '@polkadot-cloud/react/hooks'; export const UnclaimedPayoutsStatus = () => { - const { t } = useTranslation('pages'); - const { network } = useApi(); + const { t } = useTranslation(); + const { network, isReady } = useApi(); + const { openModal } = useOverlay().modal; const { unclaimedPayouts } = usePayouts(); + const { activeAccount, isReadOnlyAccount } = useConnect(); const totalUnclaimed = Object.values(unclaimedPayouts || {}).reduce( (total, validators) => @@ -23,7 +28,7 @@ export const UnclaimedPayoutsStatus = () => { return ( <Stat - label={t('nominate.pendingPayouts')} + label={t('nominate.pendingPayouts', { ns: 'pages' })} helpKey="Payout" type="odometer" stat={{ @@ -32,6 +37,23 @@ export const UnclaimedPayoutsStatus = () => { 2 ), }} + buttons={ + Object.keys(unclaimedPayouts || {}).length > 0 + ? [ + { + title: t('claim', { ns: 'modals' }), + icon: faCircleDown, + disabled: !isReady || isReadOnlyAccount(activeAccount), + small: true, + onClick: () => + openModal({ + key: 'ClaimPayouts', + size: 'sm', + }), + }, + ] + : undefined + } /> ); }; diff --git a/src/pages/Pools/Home/Status/RewardsStatus.tsx b/src/pages/Pools/Home/Status/RewardsStatus.tsx index 01353f4062..a0c8510b72 100644 --- a/src/pages/Pools/Home/Status/RewardsStatus.tsx +++ b/src/pages/Pools/Home/Status/RewardsStatus.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { faPlus, faShare } from '@fortawesome/free-solid-svg-icons'; +import { faCircleDown, faPlus } from '@fortawesome/free-solid-svg-icons'; import { planckToUnit } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useTranslation } from 'react-i18next'; @@ -38,7 +38,7 @@ export const RewardsStatus = () => { ? [ { title: t('pools.withdraw'), - icon: faShare, + icon: faCircleDown, disabled: !isReady || isReadOnlyAccount(activeAccount), small: true, onClick: () => From 3a0fc879aa03b3ab2701d0d36ea961899b017b03 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Wed, 30 Aug 2023 11:36:25 +0700 Subject: [PATCH 386/435] some tidy up --- src/modals/ClaimPayouts/Forms.tsx | 2 +- src/modals/ClaimPayouts/Item.tsx | 23 +++++--------- src/modals/ClaimPayouts/Overview.tsx | 47 ++++++++-------------------- 3 files changed, 21 insertions(+), 51 deletions(-) diff --git a/src/modals/ClaimPayouts/Forms.tsx b/src/modals/ClaimPayouts/Forms.tsx index 8cd3c00f2a..d4fb473e8c 100644 --- a/src/modals/ClaimPayouts/Forms.tsx +++ b/src/modals/ClaimPayouts/Forms.tsx @@ -22,9 +22,9 @@ import { ContentWrapper } from './Wrappers'; export const Forms = forwardRef(({ setSection, payout }: any, ref: any) => { const { t } = useTranslation('modals'); - const { setModalStatus } = useOverlay().modal; const { api, network } = useApi(); const { activeAccount } = useConnect(); + const { setModalStatus } = useOverlay().modal; const { getSignerWarnings } = useSignerWarnings(); const { units } = network; diff --git a/src/modals/ClaimPayouts/Item.tsx b/src/modals/ClaimPayouts/Item.tsx index dff3f5d95a..6cf22205c5 100644 --- a/src/modals/ClaimPayouts/Item.tsx +++ b/src/modals/ClaimPayouts/Item.tsx @@ -2,40 +2,31 @@ // SPDX-License-Identifier: GPL-3.0-only import { ButtonSubmit } from '@polkadot-cloud/react'; -import { planckToUnit } from '@polkadot-cloud/utils'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; -import { Countdown } from 'library/Countdown'; -import { useTimeLeft } from 'library/Hooks/useTimeLeft'; -import { useUnstaking } from 'library/Hooks/useUnstaking'; import { ItemWrapper } from './Wrappers'; -export const Item = ({ payout, setSection }: any) => { +// eslint-disable-next-line +export const Item = ({ era, payouts, setSection }: any) => { const { t } = useTranslation('modals'); - const { network } = useApi(); - const { units } = network; - const { isFastUnstaking } = useUnstaking(); - const { timeleft } = useTimeLeft(); return ( <ItemWrapper> <div> <section> - <h2>{`${planckToUnit(payout, units)} ${network.unit}`}</h2> + <h2> + Era {era} Payouts ${network.unit} + </h2> <h4> {t('unlocksInEra')} [era] /  - <Countdown timeleft={timeleft.formatted} markup={false} /> + <span>Countdown was here.</span> </h4> </section> <section> <div> - <ButtonSubmit - text={t('rebond')} - disabled={isFastUnstaking} - onClick={() => setSection(1)} - /> + <ButtonSubmit text={t('rebond')} onClick={() => setSection(1)} /> </div> </section> </div> diff --git a/src/modals/ClaimPayouts/Overview.tsx b/src/modals/ClaimPayouts/Overview.tsx index 75c10f19fe..d22d2de460 100644 --- a/src/modals/ClaimPayouts/Overview.tsx +++ b/src/modals/ClaimPayouts/Overview.tsx @@ -2,41 +2,23 @@ // SPDX-License-Identifier: GPL-3.0-only import { ButtonSubmit, ModalNotes } from '@polkadot-cloud/react'; -import { getUnixTime } from 'date-fns'; import { forwardRef } from 'react'; import { useTranslation } from 'react-i18next'; -import { useApi } from 'contexts/Api'; -import { useErasToTimeLeft } from 'library/Hooks/useErasToTimeLeft'; -import { timeleftAsString } from 'library/Hooks/useTimeLeft/utils'; -import { useUnstaking } from 'library/Hooks/useUnstaking'; -import { StaticNote } from 'modals/Utils/StaticNote'; -import type { AnyJson } from 'types'; +import { usePayouts } from 'contexts/Payouts'; import { Item } from './Item'; import { ContentWrapper } from './Wrappers'; export const Overview = forwardRef( ({ setSection, setUnlock }: any, ref: any) => { const { t } = useTranslation('modals'); - const { consts } = useApi(); - const { isFastUnstaking } = useUnstaking(); - const { erasToSeconds } = useErasToTimeLeft(); - const { bondDuration } = consts; - - const bondDurationFormatted = timeleftAsString( - t, - getUnixTime(new Date()) + 1, - erasToSeconds(bondDuration), - true - ); - - const unclaimedPayouts: AnyJson = []; + const { unclaimedPayouts } = usePayouts(); return ( <ContentWrapper> <div className="padding" ref={ref}> <div style={{ margin: '1rem 0 0.5rem 0' }}> <ButtonSubmit - disabled={isFastUnstaking} + disabled={Object.values(unclaimedPayouts || {}).length === 0} text={t('withdrawUnlocked')} onClick={() => { setUnlock({ @@ -48,20 +30,17 @@ export const Overview = forwardRef( /> </div> - {unclaimedPayouts.map((payout: any, i: number) => ( - <Item - key={`unclaimed_payout_${i}`} - payout={payout} - setSection={setSection} - /> - ))} + {Object.entries(unclaimedPayouts || {}).map( + ([era, payouts]: any, i: number) => ( + <Item + key={`unclaimed_payout_${i}`} + era={era} + payouts={payouts} + setSection={setSection} + /> + ) + )} <ModalNotes withPadding> - <StaticNote - value={bondDurationFormatted} - tKey="unlockTake" - valueKey="bondDurationFormatted" - deps={[bondDuration]} - /> <p>${t('rebondUnlock')}`</p> <p>{t('unlockChunk')}</p> </ModalNotes> From ac0bca49e6c17874c39c9d23113e37fb2fea374a Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Wed, 30 Aug 2023 11:55:43 +0700 Subject: [PATCH 387/435] claim payouts overview --- src/modals/ClaimPayouts/Item.tsx | 27 +++++++++++++++++++-------- src/modals/ClaimPayouts/Overview.tsx | 17 ++++++++++++----- src/modals/ClaimPayouts/Wrappers.ts | 4 ++-- src/modals/ClaimPayouts/index.tsx | 4 +--- src/modals/ClaimPayouts/types.ts | 10 ++++++++++ 5 files changed, 44 insertions(+), 18 deletions(-) create mode 100644 src/modals/ClaimPayouts/types.ts diff --git a/src/modals/ClaimPayouts/Item.tsx b/src/modals/ClaimPayouts/Item.tsx index 6cf22205c5..82f98cbe26 100644 --- a/src/modals/ClaimPayouts/Item.tsx +++ b/src/modals/ClaimPayouts/Item.tsx @@ -4,29 +4,40 @@ import { ButtonSubmit } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; +import BigNumber from 'bignumber.js'; +import { planckToUnit } from '@polkadot-cloud/utils'; import { ItemWrapper } from './Wrappers'; +import type { ItemProps } from './types'; -// eslint-disable-next-line -export const Item = ({ era, payouts, setSection }: any) => { +export const Item = ({ era, payouts, setSection }: ItemProps) => { const { t } = useTranslation('modals'); const { network } = useApi(); + const totalPayout = Object.values(payouts).reduce( + (acc: BigNumber, cur: string) => acc.plus(cur), + new BigNumber(0) + ); + + const numPayouts = Object.values(payouts).length; + return ( <ItemWrapper> <div> <section> - <h2> - Era {era} Payouts ${network.unit} - </h2> <h4> - {t('unlocksInEra')} [era] /  - <span>Countdown was here.</span> + <span> + Era {era}: {numPayouts} Pending Payout + {numPayouts === 1 ? '' : 's'} + </span> </h4> + <h2> + {planckToUnit(totalPayout, network.units).toString()} {network.unit} + </h2> </section> <section> <div> - <ButtonSubmit text={t('rebond')} onClick={() => setSection(1)} /> + <ButtonSubmit text={t('claim')} onClick={() => setSection(1)} /> </div> </section> </div> diff --git a/src/modals/ClaimPayouts/Overview.tsx b/src/modals/ClaimPayouts/Overview.tsx index d22d2de460..d346ca7f97 100644 --- a/src/modals/ClaimPayouts/Overview.tsx +++ b/src/modals/ClaimPayouts/Overview.tsx @@ -3,14 +3,12 @@ import { ButtonSubmit, ModalNotes } from '@polkadot-cloud/react'; import { forwardRef } from 'react'; -import { useTranslation } from 'react-i18next'; import { usePayouts } from 'contexts/Payouts'; import { Item } from './Item'; import { ContentWrapper } from './Wrappers'; export const Overview = forwardRef( ({ setSection, setUnlock }: any, ref: any) => { - const { t } = useTranslation('modals'); const { unclaimedPayouts } = usePayouts(); return ( @@ -19,7 +17,7 @@ export const Overview = forwardRef( <div style={{ margin: '1rem 0 0.5rem 0' }}> <ButtonSubmit disabled={Object.values(unclaimedPayouts || {}).length === 0} - text={t('withdrawUnlocked')} + text="Claim All" onClick={() => { setUnlock({ era: 0, @@ -41,8 +39,17 @@ export const Overview = forwardRef( ) )} <ModalNotes withPadding> - <p>${t('rebondUnlock')}`</p> - <p>{t('unlockChunk')}</p> + <p> + Claiming a payout claims on behalf of every nominator backing the + validator for the era you are claiming for. For this reason, + transaction fees are usually higher, and most nominators rely on + the validator to claim on their behalf. + </p> + <p> + Validators usually claim payouts on behalf of their nominators. If + you decide not to claim here, it is likely you will receive your + payouts within 1-2 days of them becoming available. + </p> </ModalNotes> </div> </ContentWrapper> diff --git a/src/modals/ClaimPayouts/Wrappers.ts b/src/modals/ClaimPayouts/Wrappers.ts index 3415ad8d68..ac0d70dd9c 100644 --- a/src/modals/ClaimPayouts/Wrappers.ts +++ b/src/modals/ClaimPayouts/Wrappers.ts @@ -49,11 +49,11 @@ export const ItemWrapper = styled.div<any>` } h2 { - margin: 0; + margin: 0.75rem 0 0 0; } h4 { color: var(--text-color-secondary); - margin: 0.75rem 0 0 0; + margin: 0; } `; diff --git a/src/modals/ClaimPayouts/index.tsx b/src/modals/ClaimPayouts/index.tsx index 64fddc2e63..c37aaee612 100644 --- a/src/modals/ClaimPayouts/index.tsx +++ b/src/modals/ClaimPayouts/index.tsx @@ -8,7 +8,6 @@ import { } from '@polkadot-cloud/react'; import { setStateWithRef } from '@polkadot-cloud/utils'; import { useEffect, useRef, useState } from 'react'; -import { useTranslation } from 'react-i18next'; import { Title } from 'library/Modal/Title'; import { useTxMeta } from 'contexts/TxMeta'; import { useOverlay } from '@polkadot-cloud/react/hooks'; @@ -17,7 +16,6 @@ import { Forms } from './Forms'; import { Overview } from './Overview'; export const ClaimPayouts = () => { - const { t } = useTranslation('modals'); const { notEnoughFunds } = useTxMeta(); const { unclaimedPayouts } = usePayouts(); const { setModalHeight } = useOverlay().modal; @@ -68,7 +66,7 @@ export const ClaimPayouts = () => { return ( <ModalSection type="carousel"> <ModalFixedTitle ref={headerRef}> - <Title title={t('unlocks')} fixed /> + <Title title="Claim Payouts" fixed /> </ModalFixedTitle> <ModalMotionTwoSection animate={sectionRef.current === 0 ? 'home' : 'next'} diff --git a/src/modals/ClaimPayouts/types.ts b/src/modals/ClaimPayouts/types.ts new file mode 100644 index 0000000000..5f9e1d383d --- /dev/null +++ b/src/modals/ClaimPayouts/types.ts @@ -0,0 +1,10 @@ +// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors +// SPDX-License-Identifier: GPL-3.0-only + +import type { EraUnclaimedPayouts } from 'contexts/Payouts/types'; + +export interface ItemProps { + era: string; + payouts: EraUnclaimedPayouts; + setSection: (v: number) => void; +} From 9998df4978de0630f904a6dc692aaf3244de726a Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Wed, 30 Aug 2023 12:18:10 +0700 Subject: [PATCH 388/435] plug in txs --- src/modals/ClaimPayouts/Forms.tsx | 29 ++++++++++++++++++++-------- src/modals/ClaimPayouts/Item.tsx | 14 ++++++++++++-- src/modals/ClaimPayouts/Overview.tsx | 5 +++-- src/modals/ClaimPayouts/index.tsx | 12 ++++++------ src/modals/ClaimPayouts/types.ts | 7 +++++++ 5 files changed, 49 insertions(+), 18 deletions(-) diff --git a/src/modals/ClaimPayouts/Forms.tsx b/src/modals/ClaimPayouts/Forms.tsx index d4fb473e8c..55b73d8ec8 100644 --- a/src/modals/ClaimPayouts/Forms.tsx +++ b/src/modals/ClaimPayouts/Forms.tsx @@ -18,32 +18,42 @@ import { useSignerWarnings } from 'library/Hooks/useSignerWarnings'; import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { SubmitTx } from 'library/SubmitTx'; import { useOverlay } from '@polkadot-cloud/react/hooks'; +import { useBatchCall } from 'library/Hooks/useBatchCall'; import { ContentWrapper } from './Wrappers'; export const Forms = forwardRef(({ setSection, payout }: any, ref: any) => { const { t } = useTranslation('modals'); const { api, network } = useApi(); const { activeAccount } = useConnect(); + const { newBatchCall } = useBatchCall(); const { setModalStatus } = useOverlay().modal; const { getSignerWarnings } = useSignerWarnings(); const { units } = network; - // TODO: Update to real values. - const validator = payout?.validator ?? ''; - const value = payout?.value ?? new BigNumber(0); + const era = payout?.era ?? ''; + const totalPayout = new BigNumber(payout?.payout || 0); + const validators = payout?.validators ?? []; // Store whether form is valid to submit transaction. - const [valid, setValid] = useState<boolean>(value.isGreaterThan(0)); + const [valid, setValid] = useState<boolean>( + totalPayout.isGreaterThan(0) && validators.length > 0 + ); // Ensure payout value is valid. useEffect(() => { - setValid(value.isGreaterThan(0)); + setValid(totalPayout.isGreaterThan(0) && validators.length > 0); }, [payout]); const getTx = () => { const tx = null; if (!valid || !api) return tx; - return api.tx.staking.payoutStakers(validator, '1180'); + + return validators.length === 1 + ? api.tx.staking.payoutStakers('', era) + : newBatchCall( + validators.map((v: string) => api.tx.staking.payoutStakers(v, era)), + activeAccount + ); }; const submitExtrinsic = useSubmitExtrinsic({ @@ -77,11 +87,14 @@ export const Forms = forwardRef(({ setSection, payout }: any, ref: any) => { ) : null} <div style={{ marginBottom: '2rem' }}> <ActionItem - text={`${t('withdraw')} ${planckToUnit(value, units)} ${ + text={`${t('claim')} ${planckToUnit(totalPayout, units)} ${ network.unit }`} /> - <p>{t('withdrawSubtitle')}</p> + <p> + Funds will be immediately available as free balance after + claiming. + </p> </div> </div> <SubmitTx diff --git a/src/modals/ClaimPayouts/Item.tsx b/src/modals/ClaimPayouts/Item.tsx index 82f98cbe26..f000ab11e0 100644 --- a/src/modals/ClaimPayouts/Item.tsx +++ b/src/modals/ClaimPayouts/Item.tsx @@ -9,7 +9,7 @@ import { planckToUnit } from '@polkadot-cloud/utils'; import { ItemWrapper } from './Wrappers'; import type { ItemProps } from './types'; -export const Item = ({ era, payouts, setSection }: ItemProps) => { +export const Item = ({ era, payouts, setPayout, setSection }: ItemProps) => { const { t } = useTranslation('modals'); const { network } = useApi(); @@ -37,7 +37,17 @@ export const Item = ({ era, payouts, setSection }: ItemProps) => { <section> <div> - <ButtonSubmit text={t('claim')} onClick={() => setSection(1)} /> + <ButtonSubmit + text={t('claim')} + onClick={() => { + setPayout({ + era, + payout: totalPayout.toString(), + validators: Object.keys(payouts), + }); + setSection(1); + }} + /> </div> </section> </div> diff --git a/src/modals/ClaimPayouts/Overview.tsx b/src/modals/ClaimPayouts/Overview.tsx index d346ca7f97..f8cd14580c 100644 --- a/src/modals/ClaimPayouts/Overview.tsx +++ b/src/modals/ClaimPayouts/Overview.tsx @@ -8,7 +8,7 @@ import { Item } from './Item'; import { ContentWrapper } from './Wrappers'; export const Overview = forwardRef( - ({ setSection, setUnlock }: any, ref: any) => { + ({ setSection, setPayout }: any, ref: any) => { const { unclaimedPayouts } = usePayouts(); return ( @@ -19,7 +19,7 @@ export const Overview = forwardRef( disabled={Object.values(unclaimedPayouts || {}).length === 0} text="Claim All" onClick={() => { - setUnlock({ + setPayout({ era: 0, value: 5000000000, }); @@ -34,6 +34,7 @@ export const Overview = forwardRef( key={`unclaimed_payout_${i}`} era={era} payouts={payouts} + setPayout={setPayout} setSection={setSection} /> ) diff --git a/src/modals/ClaimPayouts/index.tsx b/src/modals/ClaimPayouts/index.tsx index c37aaee612..e464b3a529 100644 --- a/src/modals/ClaimPayouts/index.tsx +++ b/src/modals/ClaimPayouts/index.tsx @@ -14,6 +14,7 @@ import { useOverlay } from '@polkadot-cloud/react/hooks'; import { usePayouts } from 'contexts/Payouts'; import { Forms } from './Forms'; import { Overview } from './Overview'; +import type { ActivePayout } from './types'; export const ClaimPayouts = () => { const { notEnoughFunds } = useTxMeta(); @@ -28,8 +29,8 @@ export const ClaimPayouts = () => { setStateWithRef(s, setSectionState, sectionRef); }; - // unlock value of interest - const [unlock, setUnlock] = useState(null); + // Unclaimed payout of interest. + const [payout, setPayout] = useState<ActivePayout | null>(null); // refs for wrappers const headerRef = useRef<HTMLDivElement>(null); @@ -38,7 +39,6 @@ export const ClaimPayouts = () => { const getModalHeight = () => { let h = headerRef.current?.clientHeight ?? 0; - if (sectionRef.current === 0) { h += overviewRef.current?.clientHeight ?? 0; } else { @@ -50,7 +50,7 @@ export const ClaimPayouts = () => { // Resize modal on state change. useEffect(() => { setModalHeight(getModalHeight()); - }, [unclaimedPayouts, notEnoughFunds, sectionRef.current]); + }, [unclaimedPayouts, notEnoughFunds, section]); // resize this modal on window resize useEffect(() => { @@ -86,10 +86,10 @@ export const ClaimPayouts = () => { > <Overview setSection={setSection} - setUnlock={setUnlock} + setPayout={setPayout} ref={overviewRef} /> - <Forms setSection={setSection} unlock={unlock} ref={formsRef} /> + <Forms setSection={setSection} payout={payout} ref={formsRef} /> </ModalMotionTwoSection> </ModalSection> ); diff --git a/src/modals/ClaimPayouts/types.ts b/src/modals/ClaimPayouts/types.ts index 5f9e1d383d..25e77097f7 100644 --- a/src/modals/ClaimPayouts/types.ts +++ b/src/modals/ClaimPayouts/types.ts @@ -7,4 +7,11 @@ export interface ItemProps { era: string; payouts: EraUnclaimedPayouts; setSection: (v: number) => void; + setPayout: (payout: ActivePayout) => void; +} + +export interface ActivePayout { + era: string; + payout: string; + validators: string[]; } From b0a3dc3ac4c2aeb210e17ecef59720d2539c7d43 Mon Sep 17 00:00:00 2001 From: Nikos Kontakis <wirednkod@gmail.com> Date: Wed, 30 Aug 2023 11:45:58 +0300 Subject: [PATCH 389/435] Replace Identicon with @polkadot-cloud/react/PolakdotIcon --- src/library/Account/Default.tsx | 11 +++- src/library/Account/Pool.tsx | 10 ++- src/library/AccountInput/index.tsx | 12 +++- src/library/Import/Confirm.tsx | 13 ++-- src/library/Import/Remove.tsx | 11 +++- src/library/ListItem/Labels/Identity.tsx | 6 +- src/library/ListItem/Labels/PoolIdentity.tsx | 11 +++- src/library/PayeeInput/index.tsx | 10 ++- src/library/Stat/index.tsx | 10 ++- src/modals/AccountPoolRoles/index.tsx | 11 +++- src/modals/Accounts/Account.tsx | 19 +++++- src/modals/ChangePoolRoles/RoleChange.tsx | 66 ++++++++++++-------- src/modals/Connect/Proxies.tsx | 11 +++- src/modals/Connect/ReadOnly.tsx | 11 +++- src/modals/ImportLedger/Addresses.tsx | 18 +++++- src/modals/ImportVault/index.tsx | 13 +++- src/modals/UpdateController/Switch/index.tsx | 16 +++-- src/modals/ValidatorMetrics/index.tsx | 12 +++- src/pages/Overview/ActiveAccounts/Item.tsx | 17 +++-- src/pages/Pools/PoolAccount/index.tsx | 18 +++++- 20 files changed, 225 insertions(+), 81 deletions(-) diff --git a/src/library/Account/Default.tsx b/src/library/Account/Default.tsx index 33acd01292..7bbc6f3d8b 100644 --- a/src/library/Account/Default.tsx +++ b/src/library/Account/Default.tsx @@ -7,7 +7,8 @@ import { clipAddress, remToUnit } from '@polkadot-cloud/utils'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; -import { Identicon } from '../Identicon'; +import { PolkadotIcon } from '@polkadot-cloud/react'; +import { useTheme } from 'contexts/Themes'; import { Wrapper } from './Wrapper'; import type { AccountProps } from './types'; @@ -23,6 +24,7 @@ export const Account = ({ }: AccountProps) => { const { t } = useTranslation('library'); const { getAccount } = useConnect(); + const { mode } = useTheme(); const [displayValue, setDisplayValue] = useState<string | undefined>(); @@ -68,7 +70,12 @@ export const Account = ({ <> {format !== 'text' && ( <span className="identicon"> - <Identicon value={value} size={remToUnit(fontSize) * 1.4} /> + <PolkadotIcon + dark={mode === 'dark'} + nocopy + address={value} + size={remToUnit(fontSize) * 1.4} + /> </span> )} <span className="title">{displayValue}</span> diff --git a/src/library/Account/Pool.tsx b/src/library/Account/Pool.tsx index ca0a5d3263..c401f97b44 100644 --- a/src/library/Account/Pool.tsx +++ b/src/library/Account/Pool.tsx @@ -8,7 +8,8 @@ import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; import { useBondedPools } from 'contexts/Pools/BondedPools'; -import { Identicon } from 'library/Identicon'; +import { PolkadotIcon } from '@polkadot-cloud/react'; +import { useTheme } from 'contexts/Themes'; import { Wrapper } from './Wrapper'; import type { AccountProps } from './types'; @@ -23,6 +24,7 @@ export const Account = ({ const { isReady } = useApi(); const { activeAccount } = useConnect(); const { fetchPoolsMetaBatch, meta } = useBondedPools(); + const { mode } = useTheme(); // is this the initial fetch const [fetched, setFetched] = useState(false); @@ -74,8 +76,10 @@ export const Account = ({ {label !== undefined && <div className="account-label">{label}</div>} <span className="identicon"> - <Identicon - value={pool.addresses.stash} + <PolkadotIcon + dark={mode === 'dark'} + nocopy + address={pool.addresses.stash} size={remToUnit(fontSize) * 1.4} /> </span> diff --git a/src/library/AccountInput/index.tsx b/src/library/AccountInput/index.tsx index 90e116efe7..0523ed923e 100644 --- a/src/library/AccountInput/index.tsx +++ b/src/library/AccountInput/index.tsx @@ -3,12 +3,12 @@ import { faCheck } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { ButtonSecondary } from '@polkadot-cloud/react'; +import { ButtonSecondary, PolkadotIcon } from '@polkadot-cloud/react'; import { isValidAddress } from '@polkadot-cloud/utils'; import React, { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; -import { Identicon } from 'library/Identicon'; +import { useTheme } from 'contexts/Themes'; import { useOverlay } from '@polkadot-cloud/react/hooks'; import { AccountInputWrapper } from './Wrapper'; import type { AccountInputProps } from './types'; @@ -29,6 +29,7 @@ export const AccountInput = ({ const { formatAccountSs58, accounts } = useConnect(); const { setModalResize } = useOverlay().modal; + const { mode } = useTheme(); // store current input value const [value, setValue] = useState(initialValue || ''); @@ -167,7 +168,12 @@ export const AccountInput = ({ <section> <div> {isValidAddress(value) ? ( - <Identicon value={value} size={22} /> + <PolkadotIcon + dark={mode === 'dark'} + nocopy + address={value} + size={22} + /> ) : ( <div className="ph" /> )} diff --git a/src/library/Import/Confirm.tsx b/src/library/Import/Confirm.tsx index f6597d9828..a082a2a29e 100644 --- a/src/library/Import/Confirm.tsx +++ b/src/library/Import/Confirm.tsx @@ -1,11 +1,16 @@ // Copyright 2023 @paritytech/polkadot-live authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ButtonMono, ButtonMonoInvert } from '@polkadot-cloud/react'; +import { + ButtonMono, + ButtonMonoInvert, + PolkadotIcon, +} from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; import { usePrompt } from 'contexts/Prompt'; -import { Identicon } from 'library/Identicon'; +import { useTheme } from 'contexts/Themes'; + import { ConfirmWrapper } from 'library/Import/Wrappers'; import type { ConfirmProps } from './types'; @@ -13,10 +18,10 @@ export const Confirm = ({ address, index, addHandler }: ConfirmProps) => { const { t } = useTranslation('modals'); const { addToAccounts } = useConnect(); const { setStatus } = usePrompt(); - + const { mode } = useTheme(); return ( <ConfirmWrapper> - <Identicon value={address} size={60} /> + <PolkadotIcon dark={mode === 'dark'} nocopy address={address} size={60} /> <h3>{t('importAccount')}</h3> <h5>{address}</h5> <div className="footer"> diff --git a/src/library/Import/Remove.tsx b/src/library/Import/Remove.tsx index 7560fc8609..311be7dbe7 100644 --- a/src/library/Import/Remove.tsx +++ b/src/library/Import/Remove.tsx @@ -1,11 +1,15 @@ // Copyright 2023 @paritytech/polkadot-live authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ButtonMono, ButtonMonoInvert } from '@polkadot-cloud/react'; +import { + ButtonMono, + ButtonMonoInvert, + PolkadotIcon, +} from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; import { usePrompt } from 'contexts/Prompt'; -import { Identicon } from 'library/Identicon'; +import { useTheme } from 'contexts/Themes'; import { ConfirmWrapper } from 'library/Import/Wrappers'; import type { RemoveProps } from './types'; @@ -13,10 +17,11 @@ export const Remove = ({ address, getHandler, removeHandler }: RemoveProps) => { const { t } = useTranslation('modals'); const { forgetAccounts } = useConnect(); const { setStatus } = usePrompt(); + const { mode } = useTheme(); return ( <ConfirmWrapper> - <Identicon value={address} size={60} /> + <PolkadotIcon dark={mode === 'dark'} nocopy address={address} size={60} /> <h3>{t('removeAccount')}</h3> <h5>{address}</h5> <div className="footer"> diff --git a/src/library/ListItem/Labels/Identity.tsx b/src/library/ListItem/Labels/Identity.tsx index 19df70cb25..1533a793e4 100644 --- a/src/library/ListItem/Labels/Identity.tsx +++ b/src/library/ListItem/Labels/Identity.tsx @@ -4,12 +4,14 @@ import { clipAddress } from '@polkadot-cloud/utils'; import { useEffect, useState } from 'react'; import { useValidators } from 'contexts/Validators/ValidatorEntries'; -import { Identicon } from 'library/Identicon'; +import { PolkadotIcon } from '@polkadot-cloud/react'; +import { useTheme } from 'contexts/Themes'; import { IdentityWrapper } from 'library/ListItem/Wrappers'; import { getIdentityDisplay } from '../../ValidatorList/Validator/Utils'; import type { IdentityProps } from '../types'; export const Identity = ({ address }: IdentityProps) => { + const { mode } = useTheme(); const { validatorIdentities, validatorSupers } = useValidators(); const [display, setDisplay] = useState( @@ -35,7 +37,7 @@ export const Identity = ({ address }: IdentityProps) => { animate={{ opacity: 1 }} transition={{ duration: 0.3 }} > - <Identicon value={address} size={24} /> + <PolkadotIcon dark={mode === 'dark'} nocopy address={address} size={24} /> <div className="inner"> {identitiesSynced && supersSynced && display !== null ? ( <h4>{display}</h4> diff --git a/src/library/ListItem/Labels/PoolIdentity.tsx b/src/library/ListItem/Labels/PoolIdentity.tsx index 417478b11e..b1bda42d58 100644 --- a/src/library/ListItem/Labels/PoolIdentity.tsx +++ b/src/library/ListItem/Labels/PoolIdentity.tsx @@ -3,7 +3,8 @@ import { clipAddress, determinePoolDisplay } from '@polkadot-cloud/utils'; import { useBondedPools } from 'contexts/Pools/BondedPools'; -import { Identicon } from 'library/Identicon'; +import { PolkadotIcon } from '@polkadot-cloud/react'; +import { useTheme } from 'contexts/Themes'; import { IdentityWrapper } from 'library/ListItem/Wrappers'; import type { PoolIdentityProps } from '../types'; @@ -13,6 +14,7 @@ export const PoolIdentity = ({ batchIndex, }: PoolIdentityProps) => { const { meta } = useBondedPools(); + const { mode } = useTheme(); const { addresses } = pool; // get metadata from pools metabatch @@ -26,7 +28,12 @@ export const PoolIdentity = ({ return ( <IdentityWrapper className="identity"> - <Identicon value={addresses.stash} size={26} /> + <PolkadotIcon + dark={mode === 'dark'} + nocopy + address={addresses.stash} + size={26} + /> <div className="inner"> {!metadataSynced ? ( <h4>{clipAddress(addresses.stash)}</h4> diff --git a/src/library/PayeeInput/index.tsx b/src/library/PayeeInput/index.tsx index 1f17f37111..b30c366285 100644 --- a/src/library/PayeeInput/index.tsx +++ b/src/library/PayeeInput/index.tsx @@ -8,7 +8,8 @@ import React, { useEffect, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useBonded } from 'contexts/Bonded'; import { useConnect } from 'contexts/Connect'; -import { Identicon } from 'library/Identicon'; +import { PolkadotIcon } from '@polkadot-cloud/react'; +import { useTheme } from 'contexts/Themes'; import { Wrapper } from './Wrapper'; import type { PayeeInputProps } from './types'; @@ -21,6 +22,7 @@ export const PayeeInput = ({ const { t } = useTranslation('library'); const { activeAccount, formatAccountSs58, accounts } = useConnect(); const { getBondedAccount } = useBonded(); + const { mode } = useTheme(); const controller = getBondedAccount(activeAccount); const accountMeta = accounts.find((a) => a.address === activeAccount); @@ -96,8 +98,10 @@ export const PayeeInput = ({ {showEmpty ? ( <div className="emptyIcon" /> ) : ( - <Identicon - value={accountDisplay || ''} + <PolkadotIcon + dark={mode === 'dark'} + nocopy + address={accountDisplay || ''} size={remToUnit('2.5rem')} /> )} diff --git a/src/library/Stat/index.tsx b/src/library/Stat/index.tsx index 526b39f794..a897ecc392 100644 --- a/src/library/Stat/index.tsx +++ b/src/library/Stat/index.tsx @@ -7,13 +7,14 @@ import { ButtonHelp, ButtonPrimary, ButtonSecondary, + PolkadotIcon, Odometer, } from '@polkadot-cloud/react'; import { applyWidthAsPadding, minDecimalPlaces } from '@polkadot-cloud/utils'; import React, { useEffect, useLayoutEffect, useRef } from 'react'; import { useHelp } from 'contexts/Help'; import { useNotifications } from 'contexts/Notifications'; -import { Identicon } from 'library/Identicon'; +import { useTheme } from 'contexts/Themes'; import { useApi } from 'contexts/Api'; import { Wrapper } from './Wrapper'; import type { StatAddress, StatProps } from './types'; @@ -33,6 +34,7 @@ export const Stat = ({ } = useApi().network; const { addNotification } = useNotifications(); const { openHelp } = useHelp(); + const { mode } = useTheme(); const containerRef = useRef<HTMLDivElement>(null); const subjectRef = useRef<HTMLDivElement>(null); @@ -112,8 +114,10 @@ export const Stat = ({ ) : null} {type === 'address' ? ( <div className="identicon"> - <Identicon - value={(stat as StatAddress)?.address || ''} + <PolkadotIcon + dark={mode === 'dark'} + nocopy + address={(stat as StatAddress)?.address || ''} size={26} /> </div> diff --git a/src/modals/AccountPoolRoles/index.tsx b/src/modals/AccountPoolRoles/index.tsx index 90a99595ce..24309248d1 100644 --- a/src/modals/AccountPoolRoles/index.tsx +++ b/src/modals/AccountPoolRoles/index.tsx @@ -2,15 +2,19 @@ // SPDX-License-Identifier: GPL-3.0-only import { faBars } from '@fortawesome/free-solid-svg-icons'; -import { ButtonOption, ModalPadding } from '@polkadot-cloud/react'; +import { + ButtonOption, + ModalPadding, + PolkadotIcon, +} from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { useBondedPools } from 'contexts/Pools/BondedPools'; import { usePoolMemberships } from 'contexts/Pools/PoolMemberships'; -import { Identicon } from 'library/Identicon'; import { Title } from 'library/Modal/Title'; import { useStatusButtons } from 'pages/Pools/Home/Status/useStatusButtons'; import { useOverlay } from '@polkadot-cloud/react/hooks'; +import { useTheme } from 'contexts/Themes'; import { ContentWrapper } from './Wrappers'; export const AccountPoolRoles = () => { @@ -56,6 +60,7 @@ const Button = ({ item, poolId }: { item: string[]; poolId: string }) => { const { t } = useTranslation('modals'); const { setModalStatus } = useOverlay().modal; const { bondedPools } = useBondedPools(); + const { mode } = useTheme(); const { setSelectedPoolId } = useActivePools(); const pool = bondedPools.find((b) => String(b.id) === poolId); const stash = pool?.addresses?.stash || ''; @@ -70,7 +75,7 @@ const Button = ({ item, poolId }: { item: string[]; poolId: string }) => { }} > <div className="icon"> - <Identicon value={stash} size={30} /> + <PolkadotIcon dark={mode === 'dark'} nocopy address={stash} size={30} /> </div> <div className="details"> diff --git a/src/modals/Accounts/Account.tsx b/src/modals/Accounts/Account.tsx index fd31f4a996..0a95a810b6 100644 --- a/src/modals/Accounts/Account.tsx +++ b/src/modals/Accounts/Account.tsx @@ -9,10 +9,11 @@ import { Extensions } from '@polkadot-cloud/community/extensions'; import { useConnect } from 'contexts/Connect'; import { ReactComponent as LedgerIconSVG } from 'img/ledgerIcon.svg'; import { ReactComponent as PolkadotVaultIconSVG } from 'img/polkadotVault.svg'; -import { Identicon } from 'library/Identicon'; +import { PolkadotIcon } from '@polkadot-cloud/react'; import { useApi } from 'contexts/Api'; import { useTransferOptions } from 'contexts/TransferOptions'; import { useOverlay } from '@polkadot-cloud/react/hooks'; +import { useTheme } from 'contexts/Themes'; import { AccountWrapper } from './Wrappers'; import type { AccountItemProps } from './types'; @@ -32,6 +33,8 @@ export const AccountButton = ({ activeProxyType, connectToAccount, } = useConnect(); + const { mode } = useTheme(); + const { setModalStatus } = useOverlay().modal; const { units, unit } = useApi().network; const { getTransferOptions } = useTransferOptions(); @@ -80,11 +83,21 @@ export const AccountButton = ({ > {delegator && ( <div className="delegator"> - <Identicon value={delegator} size={23} /> + <PolkadotIcon + dark={mode === 'dark'} + nocopy + address={delegator} + size={23} + /> </div> )} <div className="identicon"> - <Identicon value={address ?? ''} size={23} /> + <PolkadotIcon + dark={mode === 'dark'} + nocopy + address={address ?? ''} + size={23} + /> </div> <span className="name"> {delegator && ( diff --git a/src/modals/ChangePoolRoles/RoleChange.tsx b/src/modals/ChangePoolRoles/RoleChange.tsx index 80f145cf29..73e0fa962e 100644 --- a/src/modals/ChangePoolRoles/RoleChange.tsx +++ b/src/modals/ChangePoolRoles/RoleChange.tsx @@ -4,32 +4,46 @@ import { faAnglesRight } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { clipAddress, remToUnit } from '@polkadot-cloud/utils'; -import { Identicon } from 'library/Identicon'; +import { PolkadotIcon } from '@polkadot-cloud/react'; +import { useTheme } from 'contexts/Themes'; import { RoleChangeWrapper } from './Wrapper'; -export const RoleChange = ({ roleName, oldAddress, newAddress }: any) => ( - <RoleChangeWrapper> - <div className="label">{roleName}</div> - <div className="role-change"> - <div className="input-wrap selected"> - <Identicon value={oldAddress ?? ''} size={remToUnit('2rem')} /> - <input - className="input" - disabled - value={oldAddress ? clipAddress(oldAddress) : ''} - /> +export const RoleChange = ({ roleName, oldAddress, newAddress }: any) => { + const { mode } = useTheme(); + return ( + <RoleChangeWrapper> + <div className="label">{roleName}</div> + <div className="role-change"> + <div className="input-wrap selected"> + <PolkadotIcon + dark={mode === 'dark'} + nocopy + address={oldAddress ?? ''} + size={remToUnit('2rem')} + /> + <input + className="input" + disabled + value={oldAddress ? clipAddress(oldAddress) : ''} + /> + </div> + <span> + <FontAwesomeIcon icon={faAnglesRight} /> + </span> + <div className="input-wrap selected"> + <PolkadotIcon + dark={mode === 'dark'} + nocopy + address={newAddress ?? ''} + size={remToUnit('2rem')} + /> + <input + className="input" + disabled + value={newAddress ? clipAddress(newAddress) : ''} + /> + </div> </div> - <span> - <FontAwesomeIcon icon={faAnglesRight} /> - </span> - <div className="input-wrap selected"> - <Identicon value={newAddress ?? ''} size={remToUnit('2rem')} /> - <input - className="input" - disabled - value={newAddress ? clipAddress(newAddress) : ''} - /> - </div> - </div> - </RoleChangeWrapper> -); + </RoleChangeWrapper> + ); +}; diff --git a/src/modals/Connect/Proxies.tsx b/src/modals/Connect/Proxies.tsx index 0718b23fce..bd324e4318 100644 --- a/src/modals/Connect/Proxies.tsx +++ b/src/modals/Connect/Proxies.tsx @@ -11,6 +11,7 @@ import { ButtonHelp, ButtonMonoInvert, ButtonSecondary, + PolkadotIcon, } from '@polkadot-cloud/react'; import React from 'react'; import { useTranslation } from 'react-i18next'; @@ -18,7 +19,7 @@ import { useConnect } from 'contexts/Connect'; import { useHelp } from 'contexts/Help'; import { useProxies } from 'contexts/Proxies'; import { AccountInput } from 'library/AccountInput'; -import { Identicon } from 'library/Identicon'; +import { useTheme } from 'contexts/Themes'; import { ActionWithButton, ManualAccount, @@ -30,6 +31,7 @@ export const Proxies = ({ setInputOpen, inputOpen }: ListWithInputProps) => { const { t } = useTranslation('modals'); const { accounts, getAccount } = useConnect(); const { openHelp } = useHelp(); + const { mode } = useTheme(); const { delegates, handleDeclareDelegate } = useProxies(); // Filter delegates to only show those who are imported in the dashboard. @@ -79,7 +81,12 @@ export const Proxies = ({ setInputOpen, inputOpen }: ListWithInputProps) => { <ManualAccount key={`user_delegate_${i}_delegator_${j}`}> <div> <span> - <Identicon value={delegate} size={26} /> + <PolkadotIcon + dark={mode === 'dark'} + nocopy + address={delegate} + size={26} + /> </span> <div className="text"> <h4 className="title"> diff --git a/src/modals/Connect/ReadOnly.tsx b/src/modals/Connect/ReadOnly.tsx index d5ea368bc2..cadc90b998 100644 --- a/src/modals/Connect/ReadOnly.tsx +++ b/src/modals/Connect/ReadOnly.tsx @@ -11,13 +11,14 @@ import { ButtonHelp, ButtonMonoInvert, ButtonSecondary, + PolkadotIcon, } from '@polkadot-cloud/react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; import type { ExternalAccount } from 'contexts/Connect/types'; import { useHelp } from 'contexts/Help'; import { AccountInput } from 'library/AccountInput'; -import { Identicon } from 'library/Identicon'; +import { useTheme } from 'contexts/Themes'; import { useOverlay } from '@polkadot-cloud/react/hooks'; import { ActionWithButton, @@ -30,6 +31,7 @@ export const ReadOnly = ({ setInputOpen, inputOpen }: ListWithInputProps) => { const { t } = useTranslation('modals'); const { openHelp } = useHelp(); const { setModalResize } = useOverlay().modal; + const { mode } = useTheme(); const { accounts, forgetAccounts, addExternalAccount } = useConnect(); // get all external accounts @@ -86,7 +88,12 @@ export const ReadOnly = ({ setInputOpen, inputOpen }: ListWithInputProps) => { <ManualAccount key={`user_external_account_${i}`}> <div> <span> - <Identicon value={a.address} size={26} /> + <PolkadotIcon + dark={mode === 'dark'} + nocopy + address={a.address} + size={26} + /> </span> <div className="text"> <h4>{a.address}</h4> diff --git a/src/modals/ImportLedger/Addresses.tsx b/src/modals/ImportLedger/Addresses.tsx index c20315ebe6..64251a7380 100644 --- a/src/modals/ImportLedger/Addresses.tsx +++ b/src/modals/ImportLedger/Addresses.tsx @@ -2,7 +2,11 @@ // SPDX-License-Identifier: GPL-3.0-only import { faArrowDown } from '@fortawesome/free-solid-svg-icons'; -import { ButtonText, HardwareAddress } from '@polkadot-cloud/react'; +import { + ButtonText, + HardwareAddress, + PolkadotIcon, +} from '@polkadot-cloud/react'; import { clipAddress, unescape } from '@polkadot-cloud/utils'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; @@ -10,15 +14,16 @@ import { useConnect } from 'contexts/Connect'; import { useLedgerHardware } from 'contexts/Hardware/Ledger'; import { getLocalLedgerAddresses } from 'contexts/Hardware/Utils'; import { usePrompt } from 'contexts/Prompt'; -import { Identicon } from 'library/Identicon'; import { Confirm } from 'library/Import/Confirm'; import { Remove } from 'library/Import/Remove'; +import { useTheme } from 'contexts/Themes'; import { AddressesWrapper } from 'library/Import/Wrappers'; import type { AnyJson } from 'types'; export const Addresess = ({ addresses, handleLedgerLoop }: AnyJson) => { const { t } = useTranslation('modals'); const { network } = useApi(); + const { mode } = useTheme(); const { getIsExecuting, ledgerAccountExists, @@ -76,7 +81,14 @@ export const Addresess = ({ addresses, handleLedgerLoop }: AnyJson) => { address={address} index={index} initial={initialName} - Identicon={<Identicon value={address} size={40} />} + Identicon={ + <PolkadotIcon + dark={mode === 'dark'} + nocopy + address={address} + size={40} + /> + } existsHandler={ledgerAccountExists} renameHandler={renameHandler} openRemoveHandler={openRemoveHandler} diff --git a/src/modals/ImportVault/index.tsx b/src/modals/ImportVault/index.tsx index f9794e2f51..4e71dab03d 100644 --- a/src/modals/ImportVault/index.tsx +++ b/src/modals/ImportVault/index.tsx @@ -7,6 +7,7 @@ import { ButtonText, HardwareAddress, HardwareStatusBar, + PolkadotIcon, } from '@polkadot-cloud/react'; import { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; @@ -14,7 +15,6 @@ import { useConnect } from 'contexts/Connect'; import { useVaultHardware } from 'contexts/Hardware/Vault'; import { usePrompt } from 'contexts/Prompt'; import { ReactComponent as Icon } from 'img/polkadotVault.svg'; -import { Identicon } from 'library/Identicon'; import { Confirm } from 'library/Import/Confirm'; import { Heading } from 'library/Import/Heading'; import { NoAccounts } from 'library/Import/NoAccounts'; @@ -22,6 +22,7 @@ import { Remove } from 'library/Import/Remove'; import { AddressesWrapper } from 'library/Import/Wrappers'; import type { AnyJson } from 'types'; import { useOverlay } from '@polkadot-cloud/react/hooks'; +import { useTheme } from 'contexts/Themes'; import { Reader } from './Reader'; export const ImportVault = () => { @@ -29,6 +30,7 @@ export const ImportVault = () => { const { replaceModal } = useOverlay().modal; const { renameImportedAccount } = useConnect(); const { openPromptWith, status: promptStatus } = usePrompt(); + const { mode } = useTheme(); const { vaultAccounts, @@ -97,7 +99,14 @@ export const ImportVault = () => { address={address} index={index} initial={name} - Identicon={<Identicon value={address} size={40} />} + Identicon={ + <PolkadotIcon + dark={mode === 'dark'} + nocopy + address={address} + size={40} + /> + } existsHandler={vaultAccountExists} renameHandler={renameHandler} openRemoveHandler={openRemoveHandler} diff --git a/src/modals/UpdateController/Switch/index.tsx b/src/modals/UpdateController/Switch/index.tsx index d8e0eaacf8..e0794a6043 100644 --- a/src/modals/UpdateController/Switch/index.tsx +++ b/src/modals/UpdateController/Switch/index.tsx @@ -5,13 +5,15 @@ import { faAnglesRight } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { remToUnit } from '@polkadot-cloud/utils'; import { useConnect } from 'contexts/Connect'; -import { Identicon } from 'library/Identicon'; +import { PolkadotIcon } from '@polkadot-cloud/react'; +import { useTheme } from 'contexts/Themes'; import type { AccountDropdownProps } from '../../../library/Form/types'; import { StyledSelect } from './Wrappers'; export const Switch = ({ current, to }: AccountDropdownProps) => { const { getAccount } = useConnect(); const toAccount = getAccount(to); + const { mode } = useTheme(); return ( <StyledSelect> @@ -19,8 +21,10 @@ export const Switch = ({ current, to }: AccountDropdownProps) => { <div className="current"> <div className="input-wrap selected"> {toAccount !== null && ( - <Identicon - value={current?.address ?? ''} + <PolkadotIcon + dark={mode === 'dark'} + nocopy + address={current?.address ?? ''} size={remToUnit('2rem')} /> )} @@ -32,8 +36,10 @@ export const Switch = ({ current, to }: AccountDropdownProps) => { <div className="input-wrap selected"> {current?.active ? ( - <Identicon - value={toAccount?.address ?? ''} + <PolkadotIcon + dark={mode === 'dark'} + nocopy + address={toAccount?.address ?? ''} size={remToUnit('2rem')} /> ) : undefined} diff --git a/src/modals/ValidatorMetrics/index.tsx b/src/modals/ValidatorMetrics/index.tsx index 1e28e59108..cf1850fa85 100644 --- a/src/modals/ValidatorMetrics/index.tsx +++ b/src/modals/ValidatorMetrics/index.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { ButtonHelp, ModalPadding } from '@polkadot-cloud/react'; +import { ButtonHelp, ModalPadding, PolkadotIcon } from '@polkadot-cloud/react'; import { clipAddress, planckToUnit } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useEffect, useState, useRef } from 'react'; @@ -16,12 +16,12 @@ import { EraPoints as EraPointsGraph } from 'library/Graphs/EraPoints'; import { formatSize } from 'library/Graphs/Utils'; import { GraphWrapper } from 'library/Graphs/Wrapper'; import { useSize } from 'library/Hooks/useSize'; -import { Identicon } from 'library/Identicon'; import { Title } from 'library/Modal/Title'; import { StatWrapper, StatsWrapper } from 'library/Modal/Wrappers'; import { StatusLabel } from 'library/StatusLabel'; import { SubscanButton } from 'library/SubscanButton'; import { useOverlay } from '@polkadot-cloud/react/hooks'; +import { useTheme } from 'contexts/Themes'; export const ValidatorMetrics = () => { const { t } = useTranslation('modals'); @@ -36,6 +36,7 @@ export const ValidatorMetrics = () => { eraStakers: { stakers }, } = useStaking(); const { openHelp } = useHelp(); + const { mode } = useTheme(); // is the validator in the active era const validatorInEra = stakers.find((s) => s.address === address) || null; @@ -82,7 +83,12 @@ export const ValidatorMetrics = () => { <> <Title title={t('validatorMetrics')} /> <div className="header"> - <Identicon value={address} size={33} /> + <PolkadotIcon + dark={mode === 'dark'} + nocopy + address={address} + size={33} + /> <h2>    {identity === null ? clipAddress(address) : identity} diff --git a/src/pages/Overview/ActiveAccounts/Item.tsx b/src/pages/Overview/ActiveAccounts/Item.tsx index 9cc16e4d63..d5d3ab4822 100644 --- a/src/pages/Overview/ActiveAccounts/Item.tsx +++ b/src/pages/Overview/ActiveAccounts/Item.tsx @@ -10,7 +10,8 @@ import { useConnect } from 'contexts/Connect'; import { useNotifications } from 'contexts/Notifications'; import type { NotificationText } from 'contexts/Notifications/types'; import { useProxies } from 'contexts/Proxies'; -import { Identicon } from 'library/Identicon'; +import { PolkadotIcon } from '@polkadot-cloud/react'; +import { useTheme } from 'contexts/Themes'; import { ItemWrapper } from './Wrappers'; import type { ActiveAccountProps } from './types'; @@ -19,6 +20,7 @@ export const Item = ({ address, delegate = null }: ActiveAccountProps) => { const { addNotification } = useNotifications(); const { getAccount } = useConnect(); const { getProxyDelegate } = useProxies(); + const { mode } = useTheme(); const primaryAddress = delegate || address || ''; const delegatorAddress = delegate ? address : null; @@ -44,14 +46,21 @@ export const Item = ({ address, delegate = null }: ActiveAccountProps) => { <> {delegatorAddress && ( <div className="delegator"> - <Identicon - value={delegatorAddress || ''} + <PolkadotIcon + dark={mode === 'dark'} + nocopy + address={delegatorAddress || ''} size={remToUnit('1.7rem')} /> </div> )} <div className="icon"> - <Identicon value={primaryAddress} size={remToUnit('1.7rem')} /> + <PolkadotIcon + dark={mode === 'dark'} + nocopy + address={primaryAddress} + size={remToUnit('1.7rem')} + /> </div> {delegatorAddress && ( <> diff --git a/src/pages/Pools/PoolAccount/index.tsx b/src/pages/Pools/PoolAccount/index.tsx index e5e6355287..c2c20f5e90 100644 --- a/src/pages/Pools/PoolAccount/index.tsx +++ b/src/pages/Pools/PoolAccount/index.tsx @@ -9,8 +9,9 @@ import { useTranslation } from 'react-i18next'; import { useIdentities } from 'contexts/Identities'; import { useNotifications } from 'contexts/Notifications'; import type { NotificationText } from 'contexts/Notifications/types'; -import { Identicon } from 'library/Identicon'; +import { PolkadotIcon } from '@polkadot-cloud/react'; import { getIdentityDisplay } from 'library/ValidatorList/Validator/Utils'; +import { useTheme } from 'contexts/Themes'; import type { PoolAccountProps } from '../types'; import { Wrapper } from './Wrapper'; @@ -22,6 +23,7 @@ export const PoolAccount = ({ const { t } = useTranslation('pages'); const { addNotification } = useNotifications(); const { meta } = useIdentities(); + const { mode } = useTheme(); const identities = meta[batchKey]?.identities ?? []; const supers = meta[batchKey]?.supers ?? []; @@ -56,14 +58,24 @@ export const PoolAccount = ({ ) : synced && display !== null ? ( <> <div className="icon"> - <Identicon value={address} size={remToUnit('1.6rem')} /> + <PolkadotIcon + dark={mode === 'dark'} + nocopy + address={address} + size={remToUnit('1.6rem')} + /> </div> <h4>{display}</h4> </> ) : ( <> <div className="icon"> - <Identicon value={address} size={remToUnit('1.6rem')} /> + <PolkadotIcon + dark={mode === 'dark'} + nocopy + address={address} + size={remToUnit('1.6rem')} + /> </div> <h4>{clipAddress(address)}</h4> </> From fa8b471878940e3f3863860fd94bf5c41745164a Mon Sep 17 00:00:00 2001 From: Nikos Kontakis <wirednkod@gmail.com> Date: Wed, 30 Aug 2023 11:46:22 +0300 Subject: [PATCH 390/435] Remove Identicon --- src/library/Identicon/Wrapper.ts | 16 -------- src/library/Identicon/circles.tsx | 68 ------------------------------- src/library/Identicon/colors.ts | 52 ----------------------- src/library/Identicon/index.tsx | 58 -------------------------- src/library/Identicon/scheme.ts | 51 ----------------------- src/library/Identicon/types.ts | 21 ---------- 6 files changed, 266 deletions(-) delete mode 100644 src/library/Identicon/Wrapper.ts delete mode 100644 src/library/Identicon/circles.tsx delete mode 100644 src/library/Identicon/colors.ts delete mode 100644 src/library/Identicon/index.tsx delete mode 100644 src/library/Identicon/scheme.ts delete mode 100644 src/library/Identicon/types.ts diff --git a/src/library/Identicon/Wrapper.ts b/src/library/Identicon/Wrapper.ts deleted file mode 100644 index 48cce5d70e..0000000000 --- a/src/library/Identicon/Wrapper.ts +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: GPL-3.0-only - -import styled from 'styled-components'; - -export const Wrapper = styled.div<{ - $clickToCopy?: boolean; -}>` - svg > circle:first-child { - fill: var(--border-primary-color); - } - - .copy { - cursor: ${(props) => (!props.$clickToCopy ? 'copy' : 'default')}; - } -`; diff --git a/src/library/Identicon/circles.tsx b/src/library/Identicon/circles.tsx deleted file mode 100644 index 25716cc3c6..0000000000 --- a/src/library/Identicon/circles.tsx +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: GPL-3.0-only - -import type { Circle } from './types'; - -/* - A generic identity icon, taken from - https://github.com/polkadot-js/ui/tree/master/packages/react-identicon -*/ - -const S = 64; -const C = S / 2; -export const Z = (S / 64) * 5; - -export const OUTER_CIRCLE: Circle = { - cx: C, - cy: C, - fill: 'transparent', - r: C, -}; - -export const renderCircle = ({ cx, cy, fill, r }: Circle, key: number) => { - return <circle cx={cx} cy={cy} fill={fill} key={key} r={r} />; -}; - -const getRotation = (): { - r: number; - ro2: number; - r3o4: number; - ro4: number; - rroot3o2: number; - rroot3o4: number; -} => { - const r = (C / 4) * 3; - const rroot3o2 = (r * Math.sqrt(3)) / 2; - const ro2 = r / 2; - const rroot3o4 = (r * Math.sqrt(3)) / 4; - const ro4 = r / 4; - const r3o4 = (r * 3) / 4; - - return { r, r3o4, ro2, ro4, rroot3o2, rroot3o4 }; -}; - -export const getCircleXY = (): [number, number][] => { - const { r, r3o4, ro2, ro4, rroot3o2, rroot3o4 } = getRotation(); - - return [ - [C, C - r], - [C, C - ro2], - [C - rroot3o4, C - r3o4], - [C - rroot3o2, C - ro2], - [C - rroot3o4, C - ro4], - [C - rroot3o2, C], - [C - rroot3o2, C + ro2], - [C - rroot3o4, C + ro4], - [C - rroot3o4, C + r3o4], - [C, C + r], - [C, C + ro2], - [C + rroot3o4, C + r3o4], - [C + rroot3o2, C + ro2], - [C + rroot3o4, C + ro4], - [C + rroot3o2, C], - [C + rroot3o2, C - ro2], - [C + rroot3o4, C - ro4], - [C + rroot3o4, C - r3o4], - [C, C], - ]; -}; diff --git a/src/library/Identicon/colors.ts b/src/library/Identicon/colors.ts deleted file mode 100644 index 31195f6516..0000000000 --- a/src/library/Identicon/colors.ts +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: GPL-3.0-only - -import { blake2AsU8a, decodeAddress } from '@polkadot/util-crypto'; -import { SCHEMA, findScheme } from './scheme'; - -/* - A generic identity icon, taken from - https://github.com/polkadot-js/ui/tree/master/packages/react-identicon -*/ - -let zeroHash: Uint8Array = new Uint8Array(); - -const addressToId = (address: string): Uint8Array => { - if (!zeroHash.length) { - zeroHash = blake2AsU8a(new Uint8Array(32), 512); - } - - return blake2AsU8a(decodeAddress(address), 512).map( - (x: number, i: number) => (x + 256 - zeroHash[i]) % 256 - ); -}; - -export const getColors = (address: string): string[] => { - const total = Object.values(SCHEMA) - .map((s): number => s.freq) - .reduce((a, b): number => a + b); - const id = addressToId(address); - const d = Math.floor((id[30] + id[31] * 256) % total); - const rot = (id[28] % 6) * 3; - const sat = (Math.floor((id[29] * 70) / 256 + 26) % 80) + 30; - const scheme = findScheme(d); - const palette = Array.from(id).map((x, i): string => { - const b = (x + (i % 28) * 58) % 256; - - if (b === 0) { - return '#444'; - } - if (b === 255) { - return 'transparent'; - } - - const h = Math.floor(((b % 64) * 360) / 64); - const l = [53, 15, 35, 75][Math.floor(b / 64)]; - - return `hsl(${h}, ${sat}%, ${l}%)`; - }); - - return scheme.colors.map( - (_, i) => palette[scheme.colors[i < 18 ? (i + rot) % 18 : 18]] - ); -}; diff --git a/src/library/Identicon/index.tsx b/src/library/Identicon/index.tsx deleted file mode 100644 index c34887f6af..0000000000 --- a/src/library/Identicon/index.tsx +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: GPL-3.0-only - -import { useCallback } from 'react'; -import { getCircleXY, OUTER_CIRCLE, renderCircle, Z } from './circles'; -import { getColors } from './colors'; -import type { Circle, IdenticonProps } from './types'; -import { Wrapper } from './Wrapper'; - -export const Identicon = ({ - size, - value, - clickToCopy = true, - colors: initialColors, -}: IdenticonProps) => { - const xy = getCircleXY(); - - const defaultColors = - initialColors || new Array<string>(xy.length).fill('#ddd'); - - const colors = value ? initialColors || getColors(value) : defaultColors; - - const copyToClipboard = useCallback(() => { - if (clickToCopy) { - return; - } - if (navigator) { - navigator.clipboard.writeText(value); - } - }, [value]); - - return ( - <Wrapper $clickToCopy={clickToCopy}> - <div aria-hidden="true" onClick={() => copyToClipboard} className="copy"> - <svg - height={size} - id={value} - name={value} - viewBox="0 0 64 64" - width={size} - > - {[OUTER_CIRCLE] - .concat( - xy.map( - ([cx, cy], index): Circle => ({ - cx, - cy, - fill: colors[index], - r: Z, - }) - ) - ) - .map(renderCircle)} - </svg> - </div> - </Wrapper> - ); -}; diff --git a/src/library/Identicon/scheme.ts b/src/library/Identicon/scheme.ts deleted file mode 100644 index b748c4a2b2..0000000000 --- a/src/library/Identicon/scheme.ts +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: GPL-3.0-only - -import type { Scheme } from './types'; - -/* - A generic identity icon, taken from - https://github.com/polkadot-js/ui/tree/master/packages/react-identicon -*/ -export const SCHEMA: { [index: string]: Scheme } = { - target: { - colors: [0, 28, 0, 0, 28, 0, 0, 28, 0, 0, 28, 0, 0, 28, 0, 0, 28, 0, 1], - freq: 1, - }, - cube: { - colors: [0, 1, 3, 2, 4, 3, 0, 1, 3, 2, 4, 3, 0, 1, 3, 2, 4, 3, 5], - freq: 20, - }, - quazar: { - colors: [1, 2, 3, 1, 2, 4, 5, 5, 4, 1, 2, 3, 1, 2, 4, 5, 5, 4, 0], - freq: 16, - }, - flower: { - colors: [0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 3], - freq: 32, - }, - cyclic: { - colors: [0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6], - freq: 32, - }, - vmirror: { - colors: [0, 1, 2, 3, 4, 5, 3, 4, 2, 0, 1, 6, 7, 8, 9, 7, 8, 6, 10], - freq: 128, - }, - hmirror: { - colors: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 8, 6, 7, 5, 3, 4, 2, 11], - freq: 128, - }, -}; - -export const findScheme = (d: number): Scheme => { - let cum = 0; - const schema = Object.values(SCHEMA).find((s): boolean => { - cum += s.freq; - return d < cum; - }); - if (!schema) { - throw new Error('Unable to find schema'); - } - return schema; -}; diff --git a/src/library/Identicon/types.ts b/src/library/Identicon/types.ts deleted file mode 100644 index a39450e49f..0000000000 --- a/src/library/Identicon/types.ts +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors -// SPDX-License-Identifier: GPL-3.0-only - -export interface Circle { - cx: number; - cy: number; - fill: string; - r: number; -} - -export interface IdenticonProps { - size: number; - clickToCopy?: boolean; - colors?: string[]; - value: string; -} - -export interface Scheme { - freq: number; - colors: number[]; -} From aef6d3c334d3cdb257f1b7aa31d41e70cad3fbd8 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Wed, 30 Aug 2023 18:14:57 +0700 Subject: [PATCH 391/435] disable window resize --- src/modals/ClaimPayouts/Wrappers.ts | 4 +++- src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/modals/ClaimPayouts/Wrappers.ts b/src/modals/ClaimPayouts/Wrappers.ts index ac0d70dd9c..a449d8d90c 100644 --- a/src/modals/ClaimPayouts/Wrappers.ts +++ b/src/modals/ClaimPayouts/Wrappers.ts @@ -8,7 +8,9 @@ export const ContentWrapper = styled.div` display: flex; flex-flow: column nowrap; flex-basis: 50%; - flex: 1; + flex-grow: 0; + flex-shrink: 1; + height: fit-content; .padding { padding: 0 1rem; diff --git a/src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx b/src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx index 65134329a4..4bf068bcd1 100644 --- a/src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx +++ b/src/pages/Nominate/Active/Status/UnclaimedPayoutsStatus.tsx @@ -49,6 +49,9 @@ export const UnclaimedPayoutsStatus = () => { openModal({ key: 'ClaimPayouts', size: 'sm', + options: { + disableWindowResize: true, + }, }), }, ] From 9b763b6b5ffb8607de24163f4b09ee67293a98b6 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Wed, 30 Aug 2023 20:50:05 +0700 Subject: [PATCH 392/435] fix up forms, state items, some types --- src/modals/ClaimPayouts/Forms.tsx | 183 +++++++++++++++------------ src/modals/ClaimPayouts/Item.tsx | 23 ++-- src/modals/ClaimPayouts/Overview.tsx | 21 +-- src/modals/ClaimPayouts/index.tsx | 6 +- src/modals/ClaimPayouts/types.ts | 14 +- 5 files changed, 142 insertions(+), 105 deletions(-) diff --git a/src/modals/ClaimPayouts/Forms.tsx b/src/modals/ClaimPayouts/Forms.tsx index 55b73d8ec8..18cff9cdf2 100644 --- a/src/modals/ClaimPayouts/Forms.tsx +++ b/src/modals/ClaimPayouts/Forms.tsx @@ -19,99 +19,114 @@ import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { SubmitTx } from 'library/SubmitTx'; import { useOverlay } from '@polkadot-cloud/react/hooks'; import { useBatchCall } from 'library/Hooks/useBatchCall'; +import type { AnyApi } from 'types'; +import type { FormProps, ActivePayout } from './types'; import { ContentWrapper } from './Wrappers'; -export const Forms = forwardRef(({ setSection, payout }: any, ref: any) => { - const { t } = useTranslation('modals'); - const { api, network } = useApi(); - const { activeAccount } = useConnect(); - const { newBatchCall } = useBatchCall(); - const { setModalStatus } = useOverlay().modal; - const { getSignerWarnings } = useSignerWarnings(); - const { units } = network; +export const Forms = forwardRef( + ({ setSection, payouts }: FormProps, ref: any) => { + const { t } = useTranslation('modals'); + const { api, network } = useApi(); + const { activeAccount } = useConnect(); + const { newBatchCall } = useBatchCall(); + const { setModalStatus } = useOverlay().modal; + const { getSignerWarnings } = useSignerWarnings(); + const { units } = network; - const era = payout?.era ?? ''; - const totalPayout = new BigNumber(payout?.payout || 0); - const validators = payout?.validators ?? []; + const totalPayout = + payouts?.reduce( + (total: BigNumber, cur: ActivePayout) => total.plus(cur.payout), + new BigNumber(0) + ) || new BigNumber(0); - // Store whether form is valid to submit transaction. - const [valid, setValid] = useState<boolean>( - totalPayout.isGreaterThan(0) && validators.length > 0 - ); + const getCalls = () => { + if (!api) return []; - // Ensure payout value is valid. - useEffect(() => { - setValid(totalPayout.isGreaterThan(0) && validators.length > 0); - }, [payout]); + const calls: AnyApi[] = []; + payouts?.forEach(({ era, validators }) => { + if (!validators) return []; + return validators.forEach((v) => + calls.push(api.tx.staking.payoutStakers(v, era)) + ); + }); + return calls; + }; - const getTx = () => { - const tx = null; - if (!valid || !api) return tx; + // Store whether form is valid to submit transaction. + const [valid, setValid] = useState<boolean>( + totalPayout.isGreaterThan(0) && getCalls().length > 0 + ); - return validators.length === 1 - ? api.tx.staking.payoutStakers('', era) - : newBatchCall( - validators.map((v: string) => api.tx.staking.payoutStakers(v, era)), - activeAccount - ); - }; + // Ensure payouts value is valid. + useEffect( + () => setValid(totalPayout.isGreaterThan(0) && getCalls().length > 0), + [payouts] + ); + + const getTx = () => { + const tx = null; + if (!valid || !api) return tx; + const calls = getCalls(); + return calls.length === 1 ? calls[1] : newBatchCall(calls, activeAccount); + }; - const submitExtrinsic = useSubmitExtrinsic({ - tx: getTx(), - from: activeAccount, - shouldSubmit: valid, - callbackSubmit: () => { - setModalStatus('closing'); - }, - callbackInBlock: () => { - // TODO: Remove subscan unclaimed payout record if it exists & subscan is enabled. - }, - }); + const submitExtrinsic = useSubmitExtrinsic({ + tx: getTx(), + from: activeAccount, + shouldSubmit: valid, + callbackSubmit: () => { + setModalStatus('closing'); + }, + callbackInBlock: () => { + // TODO: Remove Subscan unclaimed payout record if it exists & subscan is enabled. + }, + }); - const warnings = getSignerWarnings( - activeAccount, - false, - submitExtrinsic.proxySupported - ); + const warnings = getSignerWarnings( + activeAccount, + false, + submitExtrinsic.proxySupported + ); - return ( - <ContentWrapper> - <div ref={ref}> - <div className="padding"> - {warnings.length > 0 ? ( - <ModalWarnings withMargin> - {warnings.map((text, i) => ( - <Warning key={`warning${i}`} text={text} /> - ))} - </ModalWarnings> - ) : null} - <div style={{ marginBottom: '2rem' }}> - <ActionItem - text={`${t('claim')} ${planckToUnit(totalPayout, units)} ${ - network.unit - }`} - /> - <p> - Funds will be immediately available as free balance after - claiming. - </p> + return ( + <ContentWrapper> + <div ref={ref}> + <div className="padding"> + {warnings.length > 0 ? ( + <ModalWarnings withMargin> + {warnings.map((text, i) => ( + <Warning key={`warning${i}`} text={text} /> + ))} + </ModalWarnings> + ) : null} + <div style={{ marginBottom: '2rem' }}> + <ActionItem + text={`${t('claim')} ${planckToUnit(totalPayout, units)} ${ + network.unit + }`} + /> + <p> + Funds will be immediately available as free balance after + claiming. + </p> + </div> </div> + <SubmitTx + fromController={false} + valid={valid} + buttons={[ + <ButtonSubmitInvert + key="button_back" + text={t('back')} + iconLeft={faChevronLeft} + iconTransform="shrink-1" + onClick={() => setSection(0)} + />, + ]} + {...submitExtrinsic} + /> </div> - <SubmitTx - fromController={false} - valid={valid} - buttons={[ - <ButtonSubmitInvert - key="button_back" - text={t('back')} - iconLeft={faChevronLeft} - iconTransform="shrink-1" - onClick={() => setSection(0)} - />, - ]} - {...submitExtrinsic} - /> - </div> - </ContentWrapper> - ); -}); + </ContentWrapper> + ); + } +); diff --git a/src/modals/ClaimPayouts/Item.tsx b/src/modals/ClaimPayouts/Item.tsx index f000ab11e0..99a222a6ca 100644 --- a/src/modals/ClaimPayouts/Item.tsx +++ b/src/modals/ClaimPayouts/Item.tsx @@ -9,16 +9,21 @@ import { planckToUnit } from '@polkadot-cloud/utils'; import { ItemWrapper } from './Wrappers'; import type { ItemProps } from './types'; -export const Item = ({ era, payouts, setPayout, setSection }: ItemProps) => { +export const Item = ({ + era, + unclaimedPayout, + setPayouts, + setSection, +}: ItemProps) => { const { t } = useTranslation('modals'); const { network } = useApi(); - const totalPayout = Object.values(payouts).reduce( + const totalPayout = Object.values(unclaimedPayout).reduce( (acc: BigNumber, cur: string) => acc.plus(cur), new BigNumber(0) ); - const numPayouts = Object.values(payouts).length; + const numPayouts = Object.values(unclaimedPayout).length; return ( <ItemWrapper> @@ -40,11 +45,13 @@ export const Item = ({ era, payouts, setPayout, setSection }: ItemProps) => { <ButtonSubmit text={t('claim')} onClick={() => { - setPayout({ - era, - payout: totalPayout.toString(), - validators: Object.keys(payouts), - }); + setPayouts([ + { + era, + payout: totalPayout.toString(), + validators: Object.keys(unclaimedPayout), + }, + ]); setSection(1); }} /> diff --git a/src/modals/ClaimPayouts/Overview.tsx b/src/modals/ClaimPayouts/Overview.tsx index f8cd14580c..f0edebb1e3 100644 --- a/src/modals/ClaimPayouts/Overview.tsx +++ b/src/modals/ClaimPayouts/Overview.tsx @@ -6,9 +6,10 @@ import { forwardRef } from 'react'; import { usePayouts } from 'contexts/Payouts'; import { Item } from './Item'; import { ContentWrapper } from './Wrappers'; +import type { OverviewProps } from './types'; export const Overview = forwardRef( - ({ setSection, setPayout }: any, ref: any) => { + ({ setSection, setPayouts }: OverviewProps, ref: any) => { const { unclaimedPayouts } = usePayouts(); return ( @@ -19,22 +20,26 @@ export const Overview = forwardRef( disabled={Object.values(unclaimedPayouts || {}).length === 0} text="Claim All" onClick={() => { - setPayout({ - era: 0, - value: 5000000000, - }); + // TODO: plug real values for all payouts. + setPayouts([ + { + era: '0', + payout: '5000000000', + validators: [''], + }, + ]); setSection(1); }} /> </div> {Object.entries(unclaimedPayouts || {}).map( - ([era, payouts]: any, i: number) => ( + ([era, unclaimedPayout]: any, i: number) => ( <Item key={`unclaimed_payout_${i}`} era={era} - payouts={payouts} - setPayout={setPayout} + unclaimedPayout={unclaimedPayout} + setPayouts={setPayouts} setSection={setSection} /> ) diff --git a/src/modals/ClaimPayouts/index.tsx b/src/modals/ClaimPayouts/index.tsx index e464b3a529..ec4d815ea5 100644 --- a/src/modals/ClaimPayouts/index.tsx +++ b/src/modals/ClaimPayouts/index.tsx @@ -30,7 +30,7 @@ export const ClaimPayouts = () => { }; // Unclaimed payout of interest. - const [payout, setPayout] = useState<ActivePayout | null>(null); + const [payouts, setPayouts] = useState<ActivePayout[] | null>(null); // refs for wrappers const headerRef = useRef<HTMLDivElement>(null); @@ -86,10 +86,10 @@ export const ClaimPayouts = () => { > <Overview setSection={setSection} - setPayout={setPayout} + setPayouts={setPayouts} ref={overviewRef} /> - <Forms setSection={setSection} payout={payout} ref={formsRef} /> + <Forms setSection={setSection} payouts={payouts} ref={formsRef} /> </ModalMotionTwoSection> </ModalSection> ); diff --git a/src/modals/ClaimPayouts/types.ts b/src/modals/ClaimPayouts/types.ts index 25e77097f7..419c9964e9 100644 --- a/src/modals/ClaimPayouts/types.ts +++ b/src/modals/ClaimPayouts/types.ts @@ -5,9 +5,9 @@ import type { EraUnclaimedPayouts } from 'contexts/Payouts/types'; export interface ItemProps { era: string; - payouts: EraUnclaimedPayouts; + unclaimedPayout: EraUnclaimedPayouts; setSection: (v: number) => void; - setPayout: (payout: ActivePayout) => void; + setPayouts: (payout: ActivePayout[]) => void; } export interface ActivePayout { @@ -15,3 +15,13 @@ export interface ActivePayout { payout: string; validators: string[]; } + +export interface OverviewProps { + setSection: (s: number) => void; + setPayouts: (p: ActivePayout[]) => void; +} + +export interface FormProps { + setSection: (s: number) => void; + payouts: ActivePayout[] | null; +} From d1aa6b3fe7d877e9c9d4e81bc6d47ac0da7313b1 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Wed, 30 Aug 2023 21:12:55 +0700 Subject: [PATCH 393/435] claim all, form working --- src/modals/ClaimPayouts/Forms.tsx | 8 ++++++-- src/modals/ClaimPayouts/Overview.tsx | 23 +++++++++++++++-------- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/modals/ClaimPayouts/Forms.tsx b/src/modals/ClaimPayouts/Forms.tsx index 18cff9cdf2..f05a2445d7 100644 --- a/src/modals/ClaimPayouts/Forms.tsx +++ b/src/modals/ClaimPayouts/Forms.tsx @@ -45,6 +45,7 @@ export const Forms = forwardRef( const calls: AnyApi[] = []; payouts?.forEach(({ era, validators }) => { if (!validators) return []; + return validators.forEach((v) => calls.push(api.tx.staking.payoutStakers(v, era)) ); @@ -65,9 +66,12 @@ export const Forms = forwardRef( const getTx = () => { const tx = null; - if (!valid || !api) return tx; const calls = getCalls(); - return calls.length === 1 ? calls[1] : newBatchCall(calls, activeAccount); + if (!valid || !api || !calls.length) return tx; + + return calls.length === 1 + ? calls.pop() + : newBatchCall(calls, activeAccount); }; const submitExtrinsic = useSubmitExtrinsic({ diff --git a/src/modals/ClaimPayouts/Overview.tsx b/src/modals/ClaimPayouts/Overview.tsx index f0edebb1e3..2934c622e2 100644 --- a/src/modals/ClaimPayouts/Overview.tsx +++ b/src/modals/ClaimPayouts/Overview.tsx @@ -4,6 +4,7 @@ import { ButtonSubmit, ModalNotes } from '@polkadot-cloud/react'; import { forwardRef } from 'react'; import { usePayouts } from 'contexts/Payouts'; +import BigNumber from 'bignumber.js'; import { Item } from './Item'; import { ContentWrapper } from './Wrappers'; import type { OverviewProps } from './types'; @@ -12,6 +13,19 @@ export const Overview = forwardRef( ({ setSection, setPayouts }: OverviewProps, ref: any) => { const { unclaimedPayouts } = usePayouts(); + const claimAllPayouts = Object.entries(unclaimedPayouts || {}).map( + ([era, validatorPayout]) => ({ + era, + payout: Object.entries(validatorPayout) + .reduce( + (acc: BigNumber, [, amount]) => acc.plus(amount), + new BigNumber(0) + ) + .toString(), + validators: Object.keys(validatorPayout), + }) + ); + return ( <ContentWrapper> <div className="padding" ref={ref}> @@ -20,14 +34,7 @@ export const Overview = forwardRef( disabled={Object.values(unclaimedPayouts || {}).length === 0} text="Claim All" onClick={() => { - // TODO: plug real values for all payouts. - setPayouts([ - { - era: '0', - payout: '5000000000', - validators: [''], - }, - ]); + setPayouts(claimAllPayouts); setSection(1); }} /> From 5d194d301c3cfc4817fb2e025734d7f4e67e2c57 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Wed, 30 Aug 2023 22:34:12 +0700 Subject: [PATCH 394/435] add comments --- src/modals/ClaimPayouts/Forms.tsx | 3 ++- src/modals/ClaimPayouts/index.tsx | 7 +++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/modals/ClaimPayouts/Forms.tsx b/src/modals/ClaimPayouts/Forms.tsx index f05a2445d7..f47d2d3ab9 100644 --- a/src/modals/ClaimPayouts/Forms.tsx +++ b/src/modals/ClaimPayouts/Forms.tsx @@ -82,7 +82,8 @@ export const Forms = forwardRef( setModalStatus('closing'); }, callbackInBlock: () => { - // TODO: Remove Subscan unclaimed payout record if it exists & subscan is enabled. + // TODO: Remove Subscan unclaimed payout record if it exists. + // TOOD: deduct from `unclaimedPayouts` in Payouts context. }, }); diff --git a/src/modals/ClaimPayouts/index.tsx b/src/modals/ClaimPayouts/index.tsx index ec4d815ea5..bc8394bd48 100644 --- a/src/modals/ClaimPayouts/index.tsx +++ b/src/modals/ClaimPayouts/index.tsx @@ -21,7 +21,7 @@ export const ClaimPayouts = () => { const { unclaimedPayouts } = usePayouts(); const { setModalHeight } = useOverlay().modal; - // active modal section + // Active modal section. const [section, setSectionState] = useState(0); const sectionRef = useRef(section); @@ -29,10 +29,9 @@ export const ClaimPayouts = () => { setStateWithRef(s, setSectionState, sectionRef); }; - // Unclaimed payout of interest. + // Unclaimed payout(s) that will be applied to submission form. const [payouts, setPayouts] = useState<ActivePayout[] | null>(null); - // refs for wrappers const headerRef = useRef<HTMLDivElement>(null); const overviewRef = useRef<HTMLDivElement>(null); const formsRef = useRef<HTMLDivElement>(null); @@ -52,7 +51,7 @@ export const ClaimPayouts = () => { setModalHeight(getModalHeight()); }, [unclaimedPayouts, notEnoughFunds, section]); - // resize this modal on window resize + // Resize this modal on window resize. useEffect(() => { window.addEventListener('resize', resizeCallback); return () => { From 88dc500eab14097ea0aab7742424a21cf0df5539 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 30 Aug 2023 21:13:22 +0000 Subject: [PATCH 395/435] Bump @dotlottie/player-component from 2.4.2 to 2.5.0 Bumps [@dotlottie/player-component](https://github.com/dotlottie/player-component) from 2.4.2 to 2.5.0. - [Release notes](https://github.com/dotlottie/player-component/releases) - [Commits](https://github.com/dotlottie/player-component/compare/@dotlottie/player-component@2.4.2...@dotlottie/player-component@2.5.0) --- updated-dependencies: - dependency-name: "@dotlottie/player-component" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 82ddf1595c..0a774ee5ee 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "visualizer": "vite-bundle-visualizer" }, "dependencies": { - "@dotlottie/player-component": "^2.4.2", + "@dotlottie/player-component": "^2.5.0", "@fortawesome/fontawesome-svg-core": "^6.4.2", "@fortawesome/free-brands-svg-icons": "^6.4.2", "@fortawesome/free-regular-svg-icons": "^6.4.2", diff --git a/yarn.lock b/yarn.lock index d107984f41..2436f4670f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1110,10 +1110,10 @@ "@babel/helper-validator-identifier" "^7.22.5" to-fast-properties "^2.0.0" -"@dotlottie/player-component@^2.4.2": - version "2.4.2" - resolved "https://registry.yarnpkg.com/@dotlottie/player-component/-/player-component-2.4.2.tgz#3e9c17efff6e7772915741536961f2aa97108c49" - integrity sha512-udGY/ysjy5LBnTbUVN+CVRWnkQ7WBv3bBZVmQkwvULW5esQ6PY4KqOcfbsEm7S5+Iju8t9BO1I1jQ6WQzH/2ig== +"@dotlottie/player-component@^2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@dotlottie/player-component/-/player-component-2.5.0.tgz#1a2498bd396031dc7b30b05d74ce826b55e43316" + integrity sha512-SGMFTkHgE89B1myzjNnykJFxHj0jcPWnVH/Avc+/HHboGDyNawM4zzMlGh3wP0KX0qlMMbFoj/Pcs5ku2ZI3Tg== dependencies: lit "^2.7.5" From 04863ca8b8e9fa35a51596538b38767c4731a332 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 30 Aug 2023 21:15:54 +0000 Subject: [PATCH 396/435] Bump framer-motion from 10.16.1 to 10.16.2 Bumps [framer-motion](https://github.com/framer/motion) from 10.16.1 to 10.16.2. - [Changelog](https://github.com/framer/motion/blob/main/CHANGELOG.md) - [Commits](https://github.com/framer/motion/compare/v10.16.1...v10.16.2) --- updated-dependencies: - dependency-name: framer-motion dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 0a774ee5ee..3340c63452 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "buffer": "^6.0.3", "chart.js": "^4.4.0", "date-fns": "^2.29.3", - "framer-motion": "^10.16.1", + "framer-motion": "^10.16.2", "i18next": "^23.4.6", "i18next-browser-languagedetector": "^7.1.0", "lodash.throttle": "^4.1.1", diff --git a/yarn.lock b/yarn.lock index 2436f4670f..d55880544d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3743,10 +3743,10 @@ formdata-polyfill@^4.0.10: dependencies: fetch-blob "^3.1.2" -framer-motion@^10.16.1: - version "10.16.1" - resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-10.16.1.tgz#0ff5de554bbb35ee6605357d80f92b27d0271a94" - integrity sha512-K6TXr5mZtitC/dxQCBdg7xzdN0d5IAIrlaqCPKtIQVdzVPGC0qBuJKXggHX1vjnP5gPOFwB1KbCCTWcnFc3kWg== +framer-motion@^10.16.2: + version "10.16.2" + resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-10.16.2.tgz#b737f628f69a883824024124dab452273f73cbba" + integrity sha512-aY6L9YMvqMWtfOQptaUvvr8dp97jskXY5UYLQM0vOPxKeERrG/Z034EIQZ/52u7MeCT0HlCQy3/l0HdUZCB9Tw== dependencies: tslib "^2.4.0" optionalDependencies: From d4bd6d973c643a135058063892938b63626dc426 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Thu, 31 Aug 2023 10:35:35 +0700 Subject: [PATCH 397/435] handle post-claim logic --- src/contexts/Payouts/defaults.ts | 2 ++ src/contexts/Payouts/index.tsx | 14 ++++++++++++- src/contexts/Payouts/types.ts | 1 + src/contexts/Subscan/defaults.ts | 1 + src/contexts/Subscan/index.tsx | 1 + src/contexts/Subscan/types.ts | 1 + src/modals/ClaimPayouts/Forms.tsx | 33 +++++++++++++++++++++++++++---- src/modals/ClaimPayouts/index.tsx | 7 ++++++- src/modals/ClaimPayouts/types.ts | 5 +++-- 9 files changed, 57 insertions(+), 8 deletions(-) diff --git a/src/contexts/Payouts/defaults.ts b/src/contexts/Payouts/defaults.ts index 0e77fe34dd..f9d101e66a 100644 --- a/src/contexts/Payouts/defaults.ts +++ b/src/contexts/Payouts/defaults.ts @@ -1,5 +1,6 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only +/* eslint-disable @typescript-eslint/no-unused-vars */ import type { PayoutsContextInterface } from './types'; @@ -8,4 +9,5 @@ export const MaxSupportedPayoutEras = 7; export const defaultPayoutsContext: PayoutsContextInterface = { payoutsSynced: 'unsynced', unclaimedPayouts: null, + removeEraPayout: (era, validator) => {}, }; diff --git a/src/contexts/Payouts/index.tsx b/src/contexts/Payouts/index.tsx index c746724772..2d8e96153e 100644 --- a/src/contexts/Payouts/index.tsx +++ b/src/contexts/Payouts/index.tsx @@ -294,6 +294,14 @@ export const PayoutsProvider = ({ }); }; + // Removes a payout from `unclaimedPayouts` based on an era and validator record. + const removeEraPayout = (era: string, validator: string) => { + if (!unclaimedPayouts) return; + const newUnclaimedPayouts = { ...unclaimedPayouts }; + delete newUnclaimedPayouts[era][validator]; + setUnclaimedPayouts(newUnclaimedPayouts); + }; + // Fetch payouts if active account is nominating. useEffect(() => { if (!activeEra.index.isZero()) { @@ -323,7 +331,11 @@ export const PayoutsProvider = ({ return ( <PayoutsContext.Provider - value={{ unclaimedPayouts, payoutsSynced: payoutsSyncedRef.current }} + value={{ + unclaimedPayouts, + payoutsSynced: payoutsSyncedRef.current, + removeEraPayout, + }} > {children} </PayoutsContext.Provider> diff --git a/src/contexts/Payouts/types.ts b/src/contexts/Payouts/types.ts index e7ff062f36..3adfe39aeb 100644 --- a/src/contexts/Payouts/types.ts +++ b/src/contexts/Payouts/types.ts @@ -6,6 +6,7 @@ import type { Sync } from 'types'; export type PayoutsContextInterface = { payoutsSynced: Sync; unclaimedPayouts: UnclaimedPayouts; + removeEraPayout: (era: string, validator: string) => void; }; export type UnclaimedPayouts = Record<string, EraUnclaimedPayouts> | null; diff --git a/src/contexts/Subscan/defaults.ts b/src/contexts/Subscan/defaults.ts index e4997ebfd4..92e9cef8e9 100644 --- a/src/contexts/Subscan/defaults.ts +++ b/src/contexts/Subscan/defaults.ts @@ -13,4 +13,5 @@ export const defaultSubscanContext: SubscanContextInterface = { payoutsToDate: undefined, fetchPoolDetails: (poolId) => new Promise((resolve) => resolve({})), fetchPoolMembers: (poolId, page) => new Promise((resolve) => resolve([])), + setUnclaimedPayouts: (payouts) => {}, }; diff --git a/src/contexts/Subscan/index.tsx b/src/contexts/Subscan/index.tsx index 9585e48567..c9a2f073eb 100644 --- a/src/contexts/Subscan/index.tsx +++ b/src/contexts/Subscan/index.tsx @@ -351,6 +351,7 @@ export const SubscanProvider = ({ payoutsToDate, fetchPoolDetails, fetchPoolMembers, + setUnclaimedPayouts, }} > {children} diff --git a/src/contexts/Subscan/types.ts b/src/contexts/Subscan/types.ts index c45f2424a5..65dd9deae6 100644 --- a/src/contexts/Subscan/types.ts +++ b/src/contexts/Subscan/types.ts @@ -12,4 +12,5 @@ export interface SubscanContextInterface { payoutsToDate: string | undefined; fetchPoolDetails: (poolId: number) => Promise<any>; fetchPoolMembers: (poolId: number, page: number) => Promise<any[]>; + setUnclaimedPayouts: (payouts: AnySubscan) => void; } diff --git a/src/modals/ClaimPayouts/Forms.tsx b/src/modals/ClaimPayouts/Forms.tsx index f47d2d3ab9..9d6c4e810a 100644 --- a/src/modals/ClaimPayouts/Forms.tsx +++ b/src/modals/ClaimPayouts/Forms.tsx @@ -19,18 +19,23 @@ import { useSubmitExtrinsic } from 'library/Hooks/useSubmitExtrinsic'; import { SubmitTx } from 'library/SubmitTx'; import { useOverlay } from '@polkadot-cloud/react/hooks'; import { useBatchCall } from 'library/Hooks/useBatchCall'; -import type { AnyApi } from 'types'; +import type { AnyApi, AnySubscan } from 'types'; +import { useSubscan } from 'contexts/Subscan'; +import { usePayouts } from 'contexts/Payouts'; import type { FormProps, ActivePayout } from './types'; import { ContentWrapper } from './Wrappers'; export const Forms = forwardRef( - ({ setSection, payouts }: FormProps, ref: any) => { + ({ setSection, payouts, setPayouts }: FormProps, ref: any) => { const { t } = useTranslation('modals'); const { api, network } = useApi(); const { activeAccount } = useConnect(); const { newBatchCall } = useBatchCall(); + const { removeEraPayout } = usePayouts(); const { setModalStatus } = useOverlay().modal; const { getSignerWarnings } = useSignerWarnings(); + const { unclaimedPayouts: unclaimedPayoutsSubscan, setUnclaimedPayouts } = + useSubscan(); const { units } = network; const totalPayout = @@ -82,8 +87,28 @@ export const Forms = forwardRef( setModalStatus('closing'); }, callbackInBlock: () => { - // TODO: Remove Subscan unclaimed payout record if it exists. - // TOOD: deduct from `unclaimedPayouts` in Payouts context. + // Remove Subscan unclaimed payout record(s) if they exists. + let newUnclaimedPayoutsSubscan = unclaimedPayoutsSubscan; + + payouts?.forEach(({ era, validators }) => { + validators?.forEach((validator) => { + newUnclaimedPayoutsSubscan = newUnclaimedPayoutsSubscan.filter( + (u: AnySubscan) => + !(u.validator_stash === validator && String(u.era) === era) + ); + }); + }); + setUnclaimedPayouts(newUnclaimedPayoutsSubscan); + + // Deduct from `unclaimedPayouts` in Payouts context. + payouts?.forEach(({ era, validators }) => { + for (const v of validators || []) { + removeEraPayout(era, v); + } + }); + + // Reset active form payouts for this modal. + setPayouts([]); }, }); diff --git a/src/modals/ClaimPayouts/index.tsx b/src/modals/ClaimPayouts/index.tsx index bc8394bd48..53abfbdb66 100644 --- a/src/modals/ClaimPayouts/index.tsx +++ b/src/modals/ClaimPayouts/index.tsx @@ -88,7 +88,12 @@ export const ClaimPayouts = () => { setPayouts={setPayouts} ref={overviewRef} /> - <Forms setSection={setSection} payouts={payouts} ref={formsRef} /> + <Forms + ref={formsRef} + payouts={payouts} + setPayouts={setPayouts} + setSection={setSection} + /> </ModalMotionTwoSection> </ModalSection> ); diff --git a/src/modals/ClaimPayouts/types.ts b/src/modals/ClaimPayouts/types.ts index 419c9964e9..e31995da68 100644 --- a/src/modals/ClaimPayouts/types.ts +++ b/src/modals/ClaimPayouts/types.ts @@ -7,7 +7,7 @@ export interface ItemProps { era: string; unclaimedPayout: EraUnclaimedPayouts; setSection: (v: number) => void; - setPayouts: (payout: ActivePayout[]) => void; + setPayouts: (payout: ActivePayout[] | null) => void; } export interface ActivePayout { @@ -18,10 +18,11 @@ export interface ActivePayout { export interface OverviewProps { setSection: (s: number) => void; - setPayouts: (p: ActivePayout[]) => void; + setPayouts: (p: ActivePayout[] | null) => void; } export interface FormProps { setSection: (s: number) => void; payouts: ActivePayout[] | null; + setPayouts: (p: ActivePayout[] | null) => void; } From c395b3b711f65baa27144fb6fda6c2835009da51 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Thu, 31 Aug 2023 10:53:12 +0700 Subject: [PATCH 398/435] bumps --- package.json | 4 ++-- yarn.lock | 38 ++++++++++++++++++++------------------ 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/package.json b/package.json index 82ddf1595c..f01e314c89 100644 --- a/package.json +++ b/package.json @@ -27,8 +27,8 @@ "@ledgerhq/hw-transport-webhid": "^6.27.19", "@polkadot-cloud/community": "^0.1.10", "@polkadot-cloud/core": "^0.1.12", - "@polkadot-cloud/react": "^0.1.29", - "@polkadot-cloud/utils": "0.0.6", + "@polkadot-cloud/react": "^0.1.31", + "@polkadot-cloud/utils": "^0.0.8", "@polkadot/api": "^10.9.1", "@polkadot/keyring": "^12.1.1", "@polkadot/rpc-provider": "^10.9.1", diff --git a/yarn.lock b/yarn.lock index db84113449..affc7b0994 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1522,16 +1522,31 @@ "@polkadot-cloud/utils" "^0.0.4" react-error-boundary "^4.0.11" -"@polkadot-cloud/utils@0.0.6": - version "0.0.6" - resolved "https://registry.npmjs.org/@polkadot-cloud/utils/-/utils-0.0.6.tgz#ea0fc18c6af7cd6a1d14ae6674f19b1b3ef82347" - integrity sha512-alm1zdqRcuBm9a59jy0yPKWY4FTenQTKvLSrX/+8aV0YbkwQ6vBkUwhs3FMi5GI52pC68X6VO5DzwVscg6kvEg== +"@polkadot-cloud/react@^0.1.31": + version "0.1.31" + resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.31.tgz#97fb9887bbc0b60277b00b2329fe5bc63192ec55" + integrity sha512-EcRlFUAVZ5pxztUYmVHw//fUqikj2git6Hhw8drQ8Wu97ZM3Hb55F4j+yzttfsKn/rszzj09G131j7o+uSrcVg== + dependencies: + "@polkadot-cloud/core" "^0.1.12" + "@polkadot-cloud/react" "^0.1.29" + "@polkadot-cloud/utils" "^0.0.6" + react-error-boundary "^4.0.11" "@polkadot-cloud/utils@^0.0.4": version "0.0.4" resolved "https://registry.npmjs.org/@polkadot-cloud/utils/-/utils-0.0.4.tgz#660d5ea9dbf6548f0f7ae9d0d4b86e6016d90c23" integrity sha512-cSjaNcB/DgmKjG+VUJuA/wOBvUqsBRIr7KhVfJgD6tozqCyyHUgVO041T2uQioX+HauExO+5/wOVExthtS4ewQ== +"@polkadot-cloud/utils@^0.0.6": + version "0.0.6" + resolved "https://registry.npmjs.org/@polkadot-cloud/utils/-/utils-0.0.6.tgz#ea0fc18c6af7cd6a1d14ae6674f19b1b3ef82347" + integrity sha512-alm1zdqRcuBm9a59jy0yPKWY4FTenQTKvLSrX/+8aV0YbkwQ6vBkUwhs3FMi5GI52pC68X6VO5DzwVscg6kvEg== + +"@polkadot-cloud/utils@^0.0.8": + version "0.0.8" + resolved "https://registry.npmjs.org/@polkadot-cloud/utils/-/utils-0.0.8.tgz#667a8111b897a8f89fa87ff4d728d85cccf00f58" + integrity sha512-XOFxz5Z+q6ZSj7Gs5FhfW3q/o9qQVX344g34l+wiNraowoMTqEv4P/1MqVnMTcOf3FWqJBPbKKDbJVbSB1IEFw== + "@polkadot/api-augment@10.9.1": version "10.9.1" resolved "https://registry.yarnpkg.com/@polkadot/api-augment/-/api-augment-10.9.1.tgz#9fc81b81903229bb23b0b16783e97ec52a5d4f1b" @@ -1747,7 +1762,7 @@ bn.js "^5.2.1" tslib "^2.5.3" -"@polkadot/util@^12.3.1": +"@polkadot/util@^12.3.1", "@polkadot/util@^12.4.2": version "12.4.2" resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-12.4.2.tgz#65759f4b366c2a787fd21abacab8cf8ab1aebbf9" integrity sha512-NcTCbnIzMb/3TvJNEbaiu/9EvYIBuzDwZfqQ4hzL0GAptkF8aDkKMDCfQ/j3FI38rR+VTPQHNky9fvWglGKGRw== @@ -1760,19 +1775,6 @@ bn.js "^5.2.1" tslib "^2.6.2" -"@polkadot/util@^12.4.2": - version "12.4.2" - resolved "https://registry.npmjs.org/@polkadot/util/-/util-12.4.2.tgz#65759f4b366c2a787fd21abacab8cf8ab1aebbf9" - integrity sha512-NcTCbnIzMb/3TvJNEbaiu/9EvYIBuzDwZfqQ4hzL0GAptkF8aDkKMDCfQ/j3FI38rR+VTPQHNky9fvWglGKGRw== - dependencies: - "@polkadot/x-bigint" "12.4.2" - "@polkadot/x-global" "12.4.2" - "@polkadot/x-textdecoder" "12.4.2" - "@polkadot/x-textencoder" "12.4.2" - "@types/bn.js" "^5.1.1" - bn.js "^5.2.1" - tslib "^2.6.2" - "@polkadot/wasm-bridge@7.2.1": version "7.2.1" resolved "https://registry.yarnpkg.com/@polkadot/wasm-bridge/-/wasm-bridge-7.2.1.tgz#8464a96552207d2b49c6f32137b24132534b91ee" From f5213993ecac3f88bb6bbdf36710eadc14054100 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Thu, 31 Aug 2023 11:07:07 +0700 Subject: [PATCH 399/435] yarn --- yarn.lock | 2796 ++++++++++++++++++++++++++--------------------------- 1 file changed, 1364 insertions(+), 1432 deletions(-) diff --git a/yarn.lock b/yarn.lock index affc7b0994..c275c36727 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4,21 +4,21 @@ "@aashutoshrathi/word-wrap@^1.2.3": version "1.2.6" - resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + resolved "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== "@ampproject/remapping@^2.2.0": version "2.2.1" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== dependencies: "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" "@babel/cli@^7.21.0": - version "7.22.9" - resolved "https://registry.npmjs.org/@babel/cli/-/cli-7.22.9.tgz#501b3614aeda7399371f6d5991404f069b059986" - integrity sha512-nb2O7AThqRo7/E53EGiuAkMaRbb7J5Qp3RvN+dmua1U+kydm0oznkhqbTEG15yk26G/C3yL6OdZjzgl+DMXVVA== + version "7.22.10" + resolved "https://registry.npmjs.org/@babel/cli/-/cli-7.22.10.tgz#25e4bbd8d0a0d8b4b389e1b5e2d7a238bd4c1b75" + integrity sha512-rM9ZMmaII630zGvtMtQ3P4GyHs28CHLYE9apLG7L8TgaSqcfoIGrlLSLsh4Q8kDTdZQQEXZm1M0nQtOvU/2heg== dependencies: "@jridgewell/trace-mapping" "^0.3.17" commander "^4.0.1" @@ -31,82 +31,68 @@ "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3" chokidar "^3.4.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" - integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.10", "@babel/code-frame@^7.22.5": + version "7.22.13" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" + integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== dependencies: - "@babel/highlight" "^7.22.5" + "@babel/highlight" "^7.22.13" + chalk "^2.4.2" -"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.5", "@babel/compat-data@^7.22.9": +"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9": version "7.22.9" resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== -"@babel/compat-data@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.6.tgz#15606a20341de59ba02cd2fcc5086fcbe73bf544" - integrity sha512-29tfsWTq2Ftu7MXmimyC0C5FDZv5DYxOZkh3XD3+QW4V/BYuv/LyEsjj3c0hqedEaDt6DBfDvexMKU8YevdqFg== - "@babel/core@^7.21.0", "@babel/core@^7.21.3": - version "7.22.9" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.22.9.tgz#bd96492c68822198f33e8a256061da3cf391f58f" - integrity sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w== + version "7.22.11" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.22.11.tgz#8033acaa2aa24c3f814edaaa057f3ce0ba559c24" + integrity sha512-lh7RJrtPdhibbxndr6/xx0w8+CVlY5FJZiaSz908Fpy+G0xkBFTvwLcKJFF4PJxVfGhVWNebikpWGnOoC71juQ== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.9" - "@babel/helper-compilation-targets" "^7.22.9" + "@babel/code-frame" "^7.22.10" + "@babel/generator" "^7.22.10" + "@babel/helper-compilation-targets" "^7.22.10" "@babel/helper-module-transforms" "^7.22.9" - "@babel/helpers" "^7.22.6" - "@babel/parser" "^7.22.7" + "@babel/helpers" "^7.22.11" + "@babel/parser" "^7.22.11" "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.8" - "@babel/types" "^7.22.5" + "@babel/traverse" "^7.22.11" + "@babel/types" "^7.22.11" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" - json5 "^2.2.2" + json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.22.7": - version "7.22.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.7.tgz#a6b8152d5a621893f2c9dacf9a4e286d520633d5" - integrity sha512-p+jPjMG+SI8yvIaxGgeW24u7q9+5+TGpZh8/CuB7RhBKd7RCy8FayNEFNNKrNK/eUcY/4ExQqLmyrvBXKsIcwQ== - dependencies: - "@babel/types" "^7.22.5" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/generator@^7.22.9": - version "7.22.9" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.22.9.tgz#572ecfa7a31002fa1de2a9d91621fd895da8493d" - integrity sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw== +"@babel/generator@^7.22.10": + version "7.22.10" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.22.10.tgz#c92254361f398e160645ac58831069707382b722" + integrity sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A== dependencies: - "@babel/types" "^7.22.5" + "@babel/types" "^7.22.10" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" "@babel/helper-annotate-as-pure@^7.22.5": version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" + resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== dependencies: "@babel/types" "^7.22.5" "@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz#a3f4758efdd0190d8927fcffd261755937c71878" - integrity sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw== + version "7.22.10" + resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.10.tgz#573e735937e99ea75ea30788b57eb52fab7468c9" + integrity sha512-Av0qubwDQxC56DoUReVDeLfMEjYYSN1nZrTUrWkXd7hpU73ymRANkbuDm3yni9npkn+RXy9nNbEJZEzXr7xrfQ== dependencies: - "@babel/types" "^7.22.5" + "@babel/types" "^7.22.10" -"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.9": - version "7.22.9" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz#f9d0a7aaaa7cd32a3f31c9316a69f5a9bcacb892" - integrity sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw== +"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.10", "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6": + version "7.22.10" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz#01d648bbc25dd88f513d862ee0df27b7d4e67024" + integrity sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q== dependencies: "@babel/compat-data" "^7.22.9" "@babel/helper-validator-option" "^7.22.5" @@ -114,21 +100,10 @@ lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-compilation-targets@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.6.tgz#e30d61abe9480aa5a83232eb31c111be922d2e52" - integrity sha512-534sYEqWD9VfUm3IPn2SLcH4Q3P86XL+QvqdC7ZsFrzyyPF3T4XGiVghF6PTYNdWg6pXuoqXxNQAhbYeEInTzA== - dependencies: - "@babel/compat-data" "^7.22.6" - "@babel/helper-validator-option" "^7.22.5" - "@nicolo-ribaudo/semver-v6" "^6.3.3" - browserslist "^4.21.9" - lru-cache "^5.1.1" - -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.22.5", "@babel/helper-create-class-features-plugin@^7.22.9": - version "7.22.9" - resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.9.tgz#c36ea240bb3348f942f08b0fbe28d6d979fab236" - integrity sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ== +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.22.11", "@babel/helper-create-class-features-plugin@^7.22.5": + version "7.22.11" + resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.11.tgz#4078686740459eeb4af3494a273ac09148dfb213" + integrity sha512-y1grdYL4WzmUDBRGK0pDbIoFd7UZKoDurDzWEoNMYoj1EL+foGRQNyPWDcC+YyegN5y1DUsFFmzjGijB3nSVAQ== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-environment-visitor" "^7.22.5" @@ -149,10 +124,10 @@ regexpu-core "^5.3.1" semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.4.1": - version "0.4.1" - resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.1.tgz#af1429c4a83ac316a6a8c2cc8ff45cb5d2998d3a" - integrity sha512-kX4oXixDxG197yhX+J3Wp+NpL2wuCFjWQAr6yX2jtCnflK9ulMI51ULFGIrWiX1jGfvAxdHp+XQCcP2bZGPs9A== +"@babel/helper-define-polyfill-provider@^0.4.2": + version "0.4.2" + resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz#82c825cadeeeee7aad237618ebbe8fa1710015d7" + integrity sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw== dependencies: "@babel/helper-compilation-targets" "^7.22.6" "@babel/helper-plugin-utils" "^7.22.5" @@ -162,12 +137,12 @@ "@babel/helper-environment-visitor@^7.22.5": version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" + resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== "@babel/helper-function-name@^7.22.5": version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ== dependencies: "@babel/template" "^7.22.5" @@ -175,7 +150,7 @@ "@babel/helper-hoist-variables@^7.22.5": version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== dependencies: "@babel/types" "^7.22.5" @@ -189,26 +164,12 @@ "@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.22.5": version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== dependencies: "@babel/types" "^7.22.5" -"@babel/helper-module-transforms@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz#0f65daa0716961b6e96b164034e737f60a80d2ef" - integrity sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw== - dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-module-imports" "^7.22.5" - "@babel/helper-simple-access" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.5" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.5" - "@babel/types" "^7.22.5" - -"@babel/helper-module-transforms@^7.22.9": +"@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.22.9": version "7.22.9" resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz#92dfcb1fbbb2bc62529024f72d942a8c97142129" integrity sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ== @@ -228,10 +189,10 @@ "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== -"@babel/helper-remap-async-to-generator@^7.22.5": +"@babel/helper-remap-async-to-generator@^7.22.5", "@babel/helper-remap-async-to-generator@^7.22.9": version "7.22.9" resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz#53a25b7484e722d7efb9c350c75c032d4628de82" integrity sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ== @@ -251,7 +212,7 @@ "@babel/helper-simple-access@^7.22.5": version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== dependencies: "@babel/types" "^7.22.5" @@ -263,59 +224,59 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-split-export-declaration@^7.22.5", "@babel/helper-split-export-declaration@^7.22.6": +"@babel/helper-split-export-declaration@^7.22.6": version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== dependencies: "@babel/types" "^7.22.5" "@babel/helper-string-parser@^7.22.5": version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== "@babel/helper-validator-identifier@^7.22.5": version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== "@babel/helper-validator-option@^7.22.5": version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== "@babel/helper-wrap-function@^7.22.9": - version "7.22.9" - resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.9.tgz#189937248c45b0182c1dcf32f3444ca153944cb9" - integrity sha512-sZ+QzfauuUEfxSEjKFmi3qDSHgLsTPK/pEpoD/qonZKOtTPTLbf59oabPQ4rKekt9lFcj/hTZaOhWwFYrgjk+Q== + version "7.22.10" + resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.10.tgz#d845e043880ed0b8c18bd194a12005cb16d2f614" + integrity sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ== dependencies: "@babel/helper-function-name" "^7.22.5" "@babel/template" "^7.22.5" - "@babel/types" "^7.22.5" + "@babel/types" "^7.22.10" -"@babel/helpers@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.6.tgz#8e61d3395a4f0c5a8060f309fb008200969b5ecd" - integrity sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA== +"@babel/helpers@^7.22.11": + version "7.22.11" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.11.tgz#b02f5d5f2d7abc21ab59eeed80de410ba70b056a" + integrity sha512-vyOXC8PBWaGc5h7GMsNx68OH33cypkEDJCHvYVVgVbbxJDROYVtexSk0gK5iCF1xNjRIN2s8ai7hwkWDq5szWg== dependencies: "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.6" - "@babel/types" "^7.22.5" + "@babel/traverse" "^7.22.11" + "@babel/types" "^7.22.11" -"@babel/highlight@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" - integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== +"@babel/highlight@^7.22.13": + version "7.22.13" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.13.tgz#9cda839e5d3be9ca9e8c26b6dd69e7548f0cbf16" + integrity sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ== dependencies: "@babel/helper-validator-identifier" "^7.22.5" - chalk "^2.0.0" + chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.22.5", "@babel/parser@^7.22.7": - version "7.22.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae" - integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q== +"@babel/parser@^7.22.11", "@babel/parser@^7.22.5": + version "7.22.14" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.22.14.tgz#c7de58e8de106e88efca42ce17f0033209dfd245" + integrity sha512-1KucTHgOvaw/LzCVrEOAyXkr9rQlp0A1HiHRYnSUE9dmb8PvPW7o5sscg+5169r54n3vGlbx6GevTE/Iw/P3AQ== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5": version "7.22.5" @@ -364,14 +325,6 @@ resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== -"@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" - integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" @@ -437,7 +390,7 @@ "@babel/plugin-syntax-jsx@^7.22.5": version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -520,14 +473,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-async-generator-functions@^7.22.7": - version "7.22.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.7.tgz#053e76c0a903b72b573cb1ab7d6882174d460a1b" - integrity sha512-7HmE7pk/Fmke45TODvxvkxRMV9RazV+ZZzhOL9AG8G29TLrr3jkjwF7uJfxZ30EoXpO+LJkq4oA8NjO2DTnEDg== +"@babel/plugin-transform-async-generator-functions@^7.22.11": + version "7.22.11" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.11.tgz#dbe3b1ff5a52e2e5edc4b19a60d325a675ed2649" + integrity sha512-0pAlmeRJn6wU84zzZsEOx1JV1Jf8fqO9ok7wofIJwUnplYo247dcd24P+cMJht7ts9xkzdtB0EPHmOb7F+KzXw== dependencies: "@babel/helper-environment-visitor" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.9" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-transform-async-to-generator@^7.22.5": @@ -546,10 +499,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoping@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz#8bfc793b3a4b2742c0983fadc1480d843ecea31b" - integrity sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg== +"@babel/plugin-transform-block-scoping@^7.22.10": + version "7.22.10" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.10.tgz#88a1dccc3383899eb5e660534a76a22ecee64faa" + integrity sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -561,12 +514,12 @@ "@babel/helper-create-class-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-class-static-block@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz#3e40c46f048403472d6f4183116d5e46b1bff5ba" - integrity sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA== +"@babel/plugin-transform-class-static-block@^7.22.11": + version "7.22.11" + resolved "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz#dc8cc6e498f55692ac6b4b89e56d87cec766c974" + integrity sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g== dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.11" "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-class-static-block" "^7.14.5" @@ -593,14 +546,14 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/template" "^7.22.5" -"@babel/plugin-transform-destructuring@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz#d3aca7438f6c26c78cdd0b0ba920a336001b27cc" - integrity sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ== +"@babel/plugin-transform-destructuring@^7.22.10": + version "7.22.10" + resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.10.tgz#38e2273814a58c810b6c34ea293be4973c4eb5e2" + integrity sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-dotall-regex@^7.22.5", "@babel/plugin-transform-dotall-regex@^7.4.4": +"@babel/plugin-transform-dotall-regex@^7.22.5": version "7.22.5" resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz#dbb4f0e45766eb544e193fb00e65a1dd3b2a4165" integrity sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw== @@ -615,10 +568,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-dynamic-import@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz#d6908a8916a810468c4edff73b5b75bda6ad393e" - integrity sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ== +"@babel/plugin-transform-dynamic-import@^7.22.11": + version "7.22.11" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz#2c7722d2a5c01839eaf31518c6ff96d408e447aa" + integrity sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" @@ -631,10 +584,10 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-export-namespace-from@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz#57c41cb1d0613d22f548fddd8b288eedb9973a5b" - integrity sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg== +"@babel/plugin-transform-export-namespace-from@^7.22.11": + version "7.22.11" + resolved "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz#b3c84c8f19880b6c7440108f8929caf6056db26c" + integrity sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" @@ -655,10 +608,10 @@ "@babel/helper-function-name" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-json-strings@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz#14b64352fdf7e1f737eed68de1a1468bd2a77ec0" - integrity sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A== +"@babel/plugin-transform-json-strings@^7.22.11": + version "7.22.11" + resolved "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz#689a34e1eed1928a40954e37f74509f48af67835" + integrity sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-json-strings" "^7.8.3" @@ -670,10 +623,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-logical-assignment-operators@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz#66ae5f068fd5a9a5dc570df16f56c2a8462a9d6c" - integrity sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA== +"@babel/plugin-transform-logical-assignment-operators@^7.22.11": + version "7.22.11" + resolved "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz#24c522a61688bde045b7d9bc3c2597a4d948fc9c" + integrity sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" @@ -693,22 +646,22 @@ "@babel/helper-module-transforms" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-commonjs@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz#7d9875908d19b8c0536085af7b053fd5bd651bfa" - integrity sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA== +"@babel/plugin-transform-modules-commonjs@^7.22.11": + version "7.22.11" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.11.tgz#d7991d3abad199c03b68ee66a64f216c47ffdfae" + integrity sha512-o2+bg7GDS60cJMgz9jWqRUsWkMzLCxp+jFDeDUT5sjRlAxcJWZ2ylNdI7QQ2+CH5hWu7OnN+Cv3htt7AkSf96g== dependencies: - "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-module-transforms" "^7.22.9" "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-simple-access" "^7.22.5" -"@babel/plugin-transform-modules-systemjs@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz#18c31410b5e579a0092638f95c896c2a98a5d496" - integrity sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ== +"@babel/plugin-transform-modules-systemjs@^7.22.11": + version "7.22.11" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.11.tgz#3386be5875d316493b517207e8f1931d93154bb1" + integrity sha512-rIqHmHoMEOhI3VkVf5jQ15l539KrwhzqcBO6wdCNWPWc/JWt9ILNYNUssbRpeq0qWns8svuw8LnMNCvWBIJ8wA== dependencies: "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-module-transforms" "^7.22.9" "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-validator-identifier" "^7.22.5" @@ -735,29 +688,29 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-nullish-coalescing-operator@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz#f8872c65776e0b552e0849d7596cddd416c3e381" - integrity sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA== +"@babel/plugin-transform-nullish-coalescing-operator@^7.22.11": + version "7.22.11" + resolved "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz#debef6c8ba795f5ac67cd861a81b744c5d38d9fc" + integrity sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-transform-numeric-separator@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz#57226a2ed9e512b9b446517ab6fa2d17abb83f58" - integrity sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g== +"@babel/plugin-transform-numeric-separator@^7.22.11": + version "7.22.11" + resolved "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz#498d77dc45a6c6db74bb829c02a01c1d719cbfbd" + integrity sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-transform-object-rest-spread@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz#9686dc3447df4753b0b2a2fae7e8bc33cdc1f2e1" - integrity sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ== +"@babel/plugin-transform-object-rest-spread@^7.22.11": + version "7.22.11" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.11.tgz#dbbb06ce783cd994a8f430d8cefa553e9b42ca62" + integrity sha512-nX8cPFa6+UmbepISvlf5jhQyaC7ASs/7UxHmMkuJ/k5xSHvDPPaibMo+v3TXwU/Pjqhep/nFNpd3zn4YR59pnw== dependencies: - "@babel/compat-data" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.5" + "@babel/compat-data" "^7.22.9" + "@babel/helper-compilation-targets" "^7.22.10" "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-transform-parameters" "^7.22.5" @@ -770,18 +723,18 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-replace-supers" "^7.22.5" -"@babel/plugin-transform-optional-catch-binding@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz#842080be3076703be0eaf32ead6ac8174edee333" - integrity sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg== +"@babel/plugin-transform-optional-catch-binding@^7.22.11": + version "7.22.11" + resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz#461cc4f578a127bb055527b3e77404cad38c08e0" + integrity sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-transform-optional-chaining@^7.22.5", "@babel/plugin-transform-optional-chaining@^7.22.6": - version "7.22.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.6.tgz#4bacfe37001fe1901117672875e931d439811564" - integrity sha512-Vd5HiWml0mDVtcLHIoEU5sw6HOUW/Zk0acLs/SAeuLzkGNOPc9DB4nkUajemhCmTIz3eiaKREZn2hQQqF79YTg== +"@babel/plugin-transform-optional-chaining@^7.22.12", "@babel/plugin-transform-optional-chaining@^7.22.5": + version "7.22.12" + resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.12.tgz#d7ebf6a88cd2f4d307b0e000ab630acd8124b333" + integrity sha512-7XXCVqZtyFWqjDsYDY4T45w4mlx1rf7aOgkc/Ww76xkgBiOlmjPkx36PBLHa1k1rwWvVgYMPsbuVnIamx2ZQJw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" @@ -802,13 +755,13 @@ "@babel/helper-create-class-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-private-property-in-object@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz#07a77f28cbb251546a43d175a1dda4cf3ef83e32" - integrity sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ== +"@babel/plugin-transform-private-property-in-object@^7.22.11": + version "7.22.11" + resolved "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz#ad45c4fc440e9cb84c718ed0906d96cf40f9a4e1" + integrity sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.11" "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" @@ -852,13 +805,13 @@ "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-regenerator@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz#cd8a68b228a5f75fa01420e8cc2fc400f0fc32aa" - integrity sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw== +"@babel/plugin-transform-regenerator@^7.22.10": + version "7.22.10" + resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz#8ceef3bd7375c4db7652878b0241b2be5d0c3cca" + integrity sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" - regenerator-transform "^0.15.1" + regenerator-transform "^0.15.2" "@babel/plugin-transform-reserved-words@^7.22.5": version "7.22.5" @@ -903,20 +856,20 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-typescript@^7.22.5": - version "7.22.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.9.tgz#91e08ad1eb1028ecc62662a842e93ecfbf3c7234" - integrity sha512-BnVR1CpKiuD0iobHPaM1iLvcwPYN2uVFAqoLVSpEDKWuOikoCv5HbKLxclhKYUXlWkX86DoZGtqI4XhbOsyrMg== +"@babel/plugin-transform-typescript@^7.22.11": + version "7.22.11" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.11.tgz#9f27fb5e51585729374bb767ab6a6d9005a23329" + integrity sha512-0E4/L+7gfvHub7wsbTv03oRtD69X31LByy44fGmFzbZScpupFByMcgCJ0VbBTkzyjSJKuRoGN8tcijOWKTmqOA== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.9" + "@babel/helper-create-class-features-plugin" "^7.22.11" "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-typescript" "^7.22.5" -"@babel/plugin-transform-unicode-escapes@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz#ce0c248522b1cb22c7c992d88301a5ead70e806c" - integrity sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg== +"@babel/plugin-transform-unicode-escapes@^7.22.10": + version "7.22.10" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz#c723f380f40a2b2f57a62df24c9005834c8616d9" + integrity sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -945,12 +898,12 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/preset-env@^7.20.2": - version "7.22.9" - resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.9.tgz#57f17108eb5dfd4c5c25a44c1977eba1df310ac7" - integrity sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g== + version "7.22.14" + resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.14.tgz#1cbb468d899f64fa71c53446f13b7ff8c0005cc1" + integrity sha512-daodMIoVo+ol/g+//c/AH+szBkFj4STQUikvBijRGL72Ph+w+AMTSh55DUETe8KJlPlDT1k/mp7NBfOuiWmoig== dependencies: "@babel/compat-data" "^7.22.9" - "@babel/helper-compilation-targets" "^7.22.9" + "@babel/helper-compilation-targets" "^7.22.10" "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-validator-option" "^7.22.5" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.5" @@ -975,69 +928,67 @@ "@babel/plugin-syntax-top-level-await" "^7.14.5" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" "@babel/plugin-transform-arrow-functions" "^7.22.5" - "@babel/plugin-transform-async-generator-functions" "^7.22.7" + "@babel/plugin-transform-async-generator-functions" "^7.22.11" "@babel/plugin-transform-async-to-generator" "^7.22.5" "@babel/plugin-transform-block-scoped-functions" "^7.22.5" - "@babel/plugin-transform-block-scoping" "^7.22.5" + "@babel/plugin-transform-block-scoping" "^7.22.10" "@babel/plugin-transform-class-properties" "^7.22.5" - "@babel/plugin-transform-class-static-block" "^7.22.5" + "@babel/plugin-transform-class-static-block" "^7.22.11" "@babel/plugin-transform-classes" "^7.22.6" "@babel/plugin-transform-computed-properties" "^7.22.5" - "@babel/plugin-transform-destructuring" "^7.22.5" + "@babel/plugin-transform-destructuring" "^7.22.10" "@babel/plugin-transform-dotall-regex" "^7.22.5" "@babel/plugin-transform-duplicate-keys" "^7.22.5" - "@babel/plugin-transform-dynamic-import" "^7.22.5" + "@babel/plugin-transform-dynamic-import" "^7.22.11" "@babel/plugin-transform-exponentiation-operator" "^7.22.5" - "@babel/plugin-transform-export-namespace-from" "^7.22.5" + "@babel/plugin-transform-export-namespace-from" "^7.22.11" "@babel/plugin-transform-for-of" "^7.22.5" "@babel/plugin-transform-function-name" "^7.22.5" - "@babel/plugin-transform-json-strings" "^7.22.5" + "@babel/plugin-transform-json-strings" "^7.22.11" "@babel/plugin-transform-literals" "^7.22.5" - "@babel/plugin-transform-logical-assignment-operators" "^7.22.5" + "@babel/plugin-transform-logical-assignment-operators" "^7.22.11" "@babel/plugin-transform-member-expression-literals" "^7.22.5" "@babel/plugin-transform-modules-amd" "^7.22.5" - "@babel/plugin-transform-modules-commonjs" "^7.22.5" - "@babel/plugin-transform-modules-systemjs" "^7.22.5" + "@babel/plugin-transform-modules-commonjs" "^7.22.11" + "@babel/plugin-transform-modules-systemjs" "^7.22.11" "@babel/plugin-transform-modules-umd" "^7.22.5" "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" "@babel/plugin-transform-new-target" "^7.22.5" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.5" - "@babel/plugin-transform-numeric-separator" "^7.22.5" - "@babel/plugin-transform-object-rest-spread" "^7.22.5" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.11" + "@babel/plugin-transform-numeric-separator" "^7.22.11" + "@babel/plugin-transform-object-rest-spread" "^7.22.11" "@babel/plugin-transform-object-super" "^7.22.5" - "@babel/plugin-transform-optional-catch-binding" "^7.22.5" - "@babel/plugin-transform-optional-chaining" "^7.22.6" + "@babel/plugin-transform-optional-catch-binding" "^7.22.11" + "@babel/plugin-transform-optional-chaining" "^7.22.12" "@babel/plugin-transform-parameters" "^7.22.5" "@babel/plugin-transform-private-methods" "^7.22.5" - "@babel/plugin-transform-private-property-in-object" "^7.22.5" + "@babel/plugin-transform-private-property-in-object" "^7.22.11" "@babel/plugin-transform-property-literals" "^7.22.5" - "@babel/plugin-transform-regenerator" "^7.22.5" + "@babel/plugin-transform-regenerator" "^7.22.10" "@babel/plugin-transform-reserved-words" "^7.22.5" "@babel/plugin-transform-shorthand-properties" "^7.22.5" "@babel/plugin-transform-spread" "^7.22.5" "@babel/plugin-transform-sticky-regex" "^7.22.5" "@babel/plugin-transform-template-literals" "^7.22.5" "@babel/plugin-transform-typeof-symbol" "^7.22.5" - "@babel/plugin-transform-unicode-escapes" "^7.22.5" + "@babel/plugin-transform-unicode-escapes" "^7.22.10" "@babel/plugin-transform-unicode-property-regex" "^7.22.5" "@babel/plugin-transform-unicode-regex" "^7.22.5" "@babel/plugin-transform-unicode-sets-regex" "^7.22.5" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.22.5" - babel-plugin-polyfill-corejs2 "^0.4.4" - babel-plugin-polyfill-corejs3 "^0.8.2" - babel-plugin-polyfill-regenerator "^0.5.1" + "@babel/preset-modules" "0.1.6-no-external-plugins" + "@babel/types" "^7.22.11" + babel-plugin-polyfill-corejs2 "^0.4.5" + babel-plugin-polyfill-corejs3 "^0.8.3" + babel-plugin-polyfill-regenerator "^0.5.2" core-js-compat "^3.31.0" semver "^6.3.1" -"@babel/preset-modules@^0.1.5": - version "0.1.5" - resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" - integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" "@babel/types" "^7.4.4" esutils "^2.0.2" @@ -1054,15 +1005,15 @@ "@babel/plugin-transform-react-pure-annotations" "^7.22.5" "@babel/preset-typescript@^7.21.0": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.22.5.tgz#16367d8b01d640e9a507577ed4ee54e0101e51c8" - integrity sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ== + version "7.22.11" + resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.22.11.tgz#f218cd0345524ac888aa3dc32f029de5b064b575" + integrity sha512-tWY5wyCZYBGY7IlalfKI1rLiGlIfnwsRHZqlky0HVv8qviwQ1Uo/05M6+s+TcTCVa6Bmoo2uJW5TMFX6Wa4qVg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-validator-option" "^7.22.5" "@babel/plugin-syntax-jsx" "^7.22.5" - "@babel/plugin-transform-modules-commonjs" "^7.22.5" - "@babel/plugin-transform-typescript" "^7.22.5" + "@babel/plugin-transform-modules-commonjs" "^7.22.11" + "@babel/plugin-transform-typescript" "^7.22.11" "@babel/regjsgen@^0.8.0": version "0.8.0" @@ -1070,56 +1021,56 @@ integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== "@babel/runtime@^7.10.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.19.4", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5", "@babel/runtime@^7.8.4": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.6.tgz#57d64b9ae3cff1d67eb067ae117dac087f5bd438" - integrity sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ== + version "7.22.11" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.11.tgz#7a9ba3bbe406ad6f9e8dd4da2ece453eb23a77a4" + integrity sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA== dependencies: - regenerator-runtime "^0.13.11" + regenerator-runtime "^0.14.0" "@babel/template@^7.22.5": version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw== dependencies: "@babel/code-frame" "^7.22.5" "@babel/parser" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/traverse@^7.21.2", "@babel/traverse@^7.22.5", "@babel/traverse@^7.22.6", "@babel/traverse@^7.22.8": - version "7.22.8" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.8.tgz#4d4451d31bc34efeae01eac222b514a77aa4000e" - integrity sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw== +"@babel/traverse@^7.21.2", "@babel/traverse@^7.22.11": + version "7.22.11" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.11.tgz#71ebb3af7a05ff97280b83f05f8865ac94b2027c" + integrity sha512-mzAenteTfomcB7mfPtyi+4oe5BZ6MXxWcn4CX+h4IRJ+OOGXBrWU6jDQavkQI9Vuc5P+donFabBfFCcmWka9lQ== dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.7" + "@babel/code-frame" "^7.22.10" + "@babel/generator" "^7.22.10" "@babel/helper-environment-visitor" "^7.22.5" "@babel/helper-function-name" "^7.22.5" "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.22.7" - "@babel/types" "^7.22.5" + "@babel/parser" "^7.22.11" + "@babel/types" "^7.22.11" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.21.3", "@babel/types@^7.22.5", "@babel/types@^7.4.4": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" - integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== +"@babel/types@^7.21.3", "@babel/types@^7.22.10", "@babel/types@^7.22.11", "@babel/types@^7.22.5", "@babel/types@^7.4.4": + version "7.22.11" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.22.11.tgz#0e65a6a1d4d9cbaa892b2213f6159485fe632ea2" + integrity sha512-siazHiGuZRz9aB9NpHy9GOs9xiQPKnMzgdr493iI1M67vRXpnEq8ZOOKzezC5q7zwuQ6sDhdSp4SD9ixKSqKZg== dependencies: "@babel/helper-string-parser" "^7.22.5" "@babel/helper-validator-identifier" "^7.22.5" to-fast-properties "^2.0.0" "@dotlottie/player-component@^2.4.2": - version "2.4.2" - resolved "https://registry.yarnpkg.com/@dotlottie/player-component/-/player-component-2.4.2.tgz#3e9c17efff6e7772915741536961f2aa97108c49" - integrity sha512-udGY/ysjy5LBnTbUVN+CVRWnkQ7WBv3bBZVmQkwvULW5esQ6PY4KqOcfbsEm7S5+Iju8t9BO1I1jQ6WQzH/2ig== + version "2.5.0" + resolved "https://registry.npmjs.org/@dotlottie/player-component/-/player-component-2.5.0.tgz#1a2498bd396031dc7b30b05d74ce826b55e43316" + integrity sha512-SGMFTkHgE89B1myzjNnykJFxHj0jcPWnVH/Avc+/HHboGDyNawM4zzMlGh3wP0KX0qlMMbFoj/Pcs5ku2ZI3Tg== dependencies: lit "^2.7.5" "@emotion/is-prop-valid@^0.8.2": version "0.8.8" - resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" + resolved "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== dependencies: "@emotion/memoize" "0.7.4" @@ -1133,12 +1084,12 @@ "@emotion/memoize@0.7.4": version "0.7.4" - resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" + resolved "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== "@emotion/memoize@^0.8.1": version "0.8.1" - resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.1.tgz#c1ddb040429c6d21d38cc945fe75c818cfb68e17" + resolved "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz#c1ddb040429c6d21d38cc945fe75c818cfb68e17" integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA== "@emotion/unitless@^0.8.0": @@ -1146,131 +1097,131 @@ resolved "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz#182b5a4704ef8ad91bde93f7a860a88fd92c79a3" integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ== -"@esbuild/android-arm64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.11.tgz#fa6f0cc7105367cb79cc0a8bf32bf50cb1673e45" - integrity sha512-snieiq75Z1z5LJX9cduSAjUr7vEI1OdlzFPMw0HH5YI7qQHDd3qs+WZoMrWYDsfRJSq36lIA6mfZBkvL46KoIw== - -"@esbuild/android-arm@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.11.tgz#ae84a410696c9f549a15be94eaececb860bacacb" - integrity sha512-q4qlUf5ucwbUJZXF5tEQ8LF7y0Nk4P58hOsGk3ucY0oCwgQqAnqXVbUuahCddVHfrxmpyewRpiTHwVHIETYu7Q== - -"@esbuild/android-x64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.11.tgz#0e58360bbc789ad0d68174d32ba20e678c2a16b6" - integrity sha512-iPuoxQEV34+hTF6FT7om+Qwziv1U519lEOvekXO9zaMMlT9+XneAhKL32DW3H7okrCOBQ44BMihE8dclbZtTuw== - -"@esbuild/darwin-arm64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.11.tgz#fcdcd2ef76ca656540208afdd84f284072f0d1f9" - integrity sha512-Gm0QkI3k402OpfMKyQEEMG0RuW2LQsSmI6OeO4El2ojJMoF5NLYb3qMIjvbG/lbMeLOGiW6ooU8xqc+S0fgz2w== - -"@esbuild/darwin-x64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.11.tgz#c5ac602ec0504a8ff81e876bc8a9811e94d69d37" - integrity sha512-N15Vzy0YNHu6cfyDOjiyfJlRJCB/ngKOAvoBf1qybG3eOq0SL2Lutzz9N7DYUbb7Q23XtHPn6lMDF6uWbGv9Fw== - -"@esbuild/freebsd-arm64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.11.tgz#7012fb06ee3e6e0d5560664a65f3fefbcc46db2e" - integrity sha512-atEyuq6a3omEY5qAh5jIORWk8MzFnCpSTUruBgeyN9jZq1K/QI9uke0ATi3MHu4L8c59CnIi4+1jDKMuqmR71A== - -"@esbuild/freebsd-x64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.11.tgz#c5de1199f70e1f97d5c8fca51afa9bf9a2af5969" - integrity sha512-XtuPrEfBj/YYYnAAB7KcorzzpGTvOr/dTtXPGesRfmflqhA4LMF0Gh/n5+a9JBzPuJ+CGk17CA++Hmr1F/gI0Q== - -"@esbuild/linux-arm64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.11.tgz#2a6d3a74e0b8b5f294e22b4515b29f76ebd42660" - integrity sha512-c6Vh2WS9VFKxKZ2TvJdA7gdy0n6eSy+yunBvv4aqNCEhSWVor1TU43wNRp2YLO9Vng2G+W94aRz+ILDSwAiYog== - -"@esbuild/linux-arm@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.11.tgz#5175bd61b793b436e4aece6328aa0d9be07751e1" - integrity sha512-Idipz+Taso/toi2ETugShXjQ3S59b6m62KmLHkJlSq/cBejixmIydqrtM2XTvNCywFl3VC7SreSf6NV0i6sRyg== - -"@esbuild/linux-ia32@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.11.tgz#20ee6cfd65a398875f321a485e7b2278e5f6f67b" - integrity sha512-S3hkIF6KUqRh9n1Q0dSyYcWmcVa9Cg+mSoZEfFuzoYXXsk6196qndrM+ZiHNwpZKi3XOXpShZZ+9dfN5ykqjjw== - -"@esbuild/linux-loong64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.11.tgz#8e7b251dede75083bf44508dab5edce3f49d052b" - integrity sha512-MRESANOoObQINBA+RMZW+Z0TJWpibtE7cPFnahzyQHDCA9X9LOmGh68MVimZlM9J8n5Ia8lU773te6O3ILW8kw== - -"@esbuild/linux-mips64el@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.11.tgz#a3125eb48538ac4932a9d05089b157f94e443165" - integrity sha512-qVyPIZrXNMOLYegtD1u8EBccCrBVshxMrn5MkuFc3mEVsw7CCQHaqZ4jm9hbn4gWY95XFnb7i4SsT3eflxZsUg== - -"@esbuild/linux-ppc64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.11.tgz#842abadb7a0995bd539adee2be4d681b68279499" - integrity sha512-T3yd8vJXfPirZaUOoA9D2ZjxZX4Gr3QuC3GztBJA6PklLotc/7sXTOuuRkhE9W/5JvJP/K9b99ayPNAD+R+4qQ== - -"@esbuild/linux-riscv64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.11.tgz#7ce6e6cee1c72d5b4d2f4f8b6fcccf4a9bea0e28" - integrity sha512-evUoRPWiwuFk++snjH9e2cAjF5VVSTj+Dnf+rkO/Q20tRqv+644279TZlPK8nUGunjPAtQRCj1jQkDAvL6rm2w== - -"@esbuild/linux-s390x@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.11.tgz#98fbc794363d02ded07d300df2e535650b297b96" - integrity sha512-/SlRJ15XR6i93gRWquRxYCfhTeC5PdqEapKoLbX63PLCmAkXZHY2uQm2l9bN0oPHBsOw2IswRZctMYS0MijFcg== - -"@esbuild/linux-x64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.11.tgz#f8458ec8cf74c8274e4cacd00744d8446cac52eb" - integrity sha512-xcncej+wF16WEmIwPtCHi0qmx1FweBqgsRtEL1mSHLFR6/mb3GEZfLQnx+pUDfRDEM4DQF8dpXIW7eDOZl1IbA== - -"@esbuild/netbsd-x64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.11.tgz#a7b2f991b8293748a7be42eac1c4325faf0c7cca" - integrity sha512-aSjMHj/F7BuS1CptSXNg6S3M4F3bLp5wfFPIJM+Km2NfIVfFKhdmfHF9frhiCLIGVzDziggqWll0B+9AUbud/Q== - -"@esbuild/openbsd-x64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.11.tgz#3e50923de84c54008f834221130fd23646072b2f" - integrity sha512-tNBq+6XIBZtht0xJGv7IBB5XaSyvYPCm1PxJ33zLQONdZoLVM0bgGqUrXnJyiEguD9LU4AHiu+GCXy/Hm9LsdQ== - -"@esbuild/sunos-x64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.11.tgz#ae47a550b0cd395de03606ecfba03cc96c7c19e2" - integrity sha512-kxfbDOrH4dHuAAOhr7D7EqaYf+W45LsAOOhAet99EyuxxQmjbk8M9N4ezHcEiCYPaiW8Dj3K26Z2V17Gt6p3ng== - -"@esbuild/win32-arm64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.11.tgz#05d364582b7862d7fbf4698ef43644f7346dcfcc" - integrity sha512-Sh0dDRyk1Xi348idbal7lZyfSkjhJsdFeuC13zqdipsvMetlGiFQNdO+Yfp6f6B4FbyQm7qsk16yaZk25LChzg== - -"@esbuild/win32-ia32@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.11.tgz#a3372095a4a1939da672156a3c104f8ce85ee616" - integrity sha512-o9JUIKF1j0rqJTFbIoF4bXj6rvrTZYOrfRcGyL0Vm5uJ/j5CkBD/51tpdxe9lXEDouhRgdr/BYzUrDOvrWwJpg== - -"@esbuild/win32-x64@0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.11.tgz#6526c7e1b40d5b9f0a222c6b767c22f6fb97aa57" - integrity sha512-rQI4cjLHd2hGsM1LqgDI7oOCYbQ6IBOVsX9ejuRMSze0GqXUG2ekwiKkiBU1pRGSeCqFFHxTrcEydB2Hyoz9CA== +"@esbuild/android-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" + integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== + +"@esbuild/android-arm@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" + integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== + +"@esbuild/android-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" + integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== + +"@esbuild/darwin-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" + integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== + +"@esbuild/darwin-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" + integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== + +"@esbuild/freebsd-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" + integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== + +"@esbuild/freebsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" + integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== + +"@esbuild/linux-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" + integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== + +"@esbuild/linux-arm@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" + integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== + +"@esbuild/linux-ia32@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" + integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== + +"@esbuild/linux-loong64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" + integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== + +"@esbuild/linux-mips64el@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" + integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== + +"@esbuild/linux-ppc64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" + integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== + +"@esbuild/linux-riscv64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" + integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== + +"@esbuild/linux-s390x@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" + integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== + +"@esbuild/linux-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" + integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== + +"@esbuild/netbsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" + integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== + +"@esbuild/openbsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" + integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== + +"@esbuild/sunos-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" + integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== + +"@esbuild/win32-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" + integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== + +"@esbuild/win32-ia32@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" + integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== + +"@esbuild/win32-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" + integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: eslint-visitor-keys "^3.3.0" "@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": - version "4.6.2" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.6.2.tgz#1816b5f6948029c5eaacb0703b850ee0cb37d8f8" - integrity sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw== + version "4.8.0" + resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.0.tgz#11195513186f68d42fbf449f9a7136b2c0c92005" + integrity sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg== "@eslint/eslintrc@^2.1.2": version "2.1.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.2.tgz#c6936b4b328c64496692f76944e755738be62396" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz#c6936b4b328c64496692f76944e755738be62396" integrity sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g== dependencies: ajv "^6.12.4" @@ -1285,53 +1236,53 @@ "@eslint/js@8.48.0": version "8.48.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.48.0.tgz#642633964e217905436033a2bd08bf322849b7fb" + resolved "https://registry.npmjs.org/@eslint/js/-/js-8.48.0.tgz#642633964e217905436033a2bd08bf322849b7fb" integrity sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw== "@fortawesome/fontawesome-common-types@6.4.2": version "6.4.2" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.4.2.tgz#1766039cad33f8ad87f9467b98e0d18fbc8f01c5" + resolved "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.4.2.tgz#1766039cad33f8ad87f9467b98e0d18fbc8f01c5" integrity sha512-1DgP7f+XQIJbLFCTX1V2QnxVmpLdKdzzo2k8EmvDOePfchaIGQ9eCHj2up3/jNEbZuBqel5OxiaOJf37TWauRA== "@fortawesome/fontawesome-svg-core@^6.4.2": version "6.4.2" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.4.2.tgz#37f4507d5ec645c8b50df6db14eced32a6f9be09" + resolved "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.4.2.tgz#37f4507d5ec645c8b50df6db14eced32a6f9be09" integrity sha512-gjYDSKv3TrM2sLTOKBc5rH9ckje8Wrwgx1CxAPbN5N3Fm4prfi7NsJVWd1jklp7i5uSCVwhZS5qlhMXqLrpAIg== dependencies: "@fortawesome/fontawesome-common-types" "6.4.2" "@fortawesome/free-brands-svg-icons@^6.4.2": version "6.4.2" - resolved "https://registry.yarnpkg.com/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.4.2.tgz#9b8e78066ea6dd563da5dfa686615791d0f7cc71" + resolved "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.4.2.tgz#9b8e78066ea6dd563da5dfa686615791d0f7cc71" integrity sha512-LKOwJX0I7+mR/cvvf6qIiqcERbdnY+24zgpUSouySml+5w8B4BJOx8EhDR/FTKAu06W12fmUIcv6lzPSwYKGGg== dependencies: "@fortawesome/fontawesome-common-types" "6.4.2" "@fortawesome/free-regular-svg-icons@^6.4.2": version "6.4.2" - resolved "https://registry.yarnpkg.com/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.4.2.tgz#aee79ed76ce5dd04931352f9d83700761b8b1b25" + resolved "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.4.2.tgz#aee79ed76ce5dd04931352f9d83700761b8b1b25" integrity sha512-0+sIUWnkgTVVXVAPQmW4vxb9ZTHv0WstOa3rBx9iPxrrrDH6bNLsDYuwXF9b6fGm+iR7DKQvQshUH/FJm3ed9Q== dependencies: "@fortawesome/fontawesome-common-types" "6.4.2" "@fortawesome/free-solid-svg-icons@^6.4.2": version "6.4.2" - resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.4.2.tgz#33a02c4cb6aa28abea7bc082a9626b7922099df4" + resolved "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.4.2.tgz#33a02c4cb6aa28abea7bc082a9626b7922099df4" integrity sha512-sYwXurXUEQS32fZz9hVCUUv/xu49PEJEyUOsA51l6PU/qVgfbTb2glsTEaJngVVT8VqBATRIdh7XVgV1JF1LkA== dependencies: "@fortawesome/fontawesome-common-types" "6.4.2" "@fortawesome/react-fontawesome@^0.2.0": version "0.2.0" - resolved "https://registry.yarnpkg.com/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.0.tgz#d90dd8a9211830b4e3c08e94b63a0ba7291ddcf4" + resolved "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.0.tgz#d90dd8a9211830b4e3c08e94b63a0ba7291ddcf4" integrity sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw== dependencies: prop-types "^15.8.1" "@humanwhocodes/config-array@^0.11.10": - version "0.11.10" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" - integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== + version "0.11.11" + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz#88a04c570dbbc7dd943e4712429c3df09bc32844" + integrity sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" @@ -1339,66 +1290,61 @@ "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== "@humanwhocodes/object-schema@^1.2.1": version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== -"@jest/schemas@^29.6.0": - version "29.6.0" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.0.tgz#0f4cb2c8e3dca80c135507ba5635a4fd755b0040" - integrity sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ== +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== dependencies: "@sinclair/typebox" "^0.27.8" "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": version "0.3.3" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== dependencies: "@jridgewell/set-array" "^1.0.1" "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/resolve-uri@3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== "@jridgewell/set-array@^1.0.1": version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== -"@jridgewell/sourcemap-codec@1.4.14": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.15": +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.18" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" - integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== + version "0.3.19" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" + integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" "@kurkle/color@^0.3.0": version "0.3.2" - resolved "https://registry.yarnpkg.com/@kurkle/color/-/color-0.3.2.tgz#5acd38242e8bde4f9986e7913c8fdf49d3aa199f" + resolved "https://registry.npmjs.org/@kurkle/color/-/color-0.3.2.tgz#5acd38242e8bde4f9986e7913c8fdf49d3aa199f" integrity sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw== "@ledgerhq/devices@^8.0.7": version "8.0.7" - resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-8.0.7.tgz#206434dbd8a097529bbfc95f5eef94c2923c7578" + resolved "https://registry.npmjs.org/@ledgerhq/devices/-/devices-8.0.7.tgz#206434dbd8a097529bbfc95f5eef94c2923c7578" integrity sha512-BbPyET52lXnVs7CxJWrGYqmtGdbGzj+XnfCqLsDnA7QYr1CZREysxmie+Rr6BKpNDBRVesAovXjtaVaZOn+upw== dependencies: "@ledgerhq/errors" "^6.14.0" @@ -1408,12 +1354,12 @@ "@ledgerhq/errors@^6.14.0": version "6.14.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.14.0.tgz#0bf253983773ef12eebce2091f463bc719223b37" + resolved "https://registry.npmjs.org/@ledgerhq/errors/-/errors-6.14.0.tgz#0bf253983773ef12eebce2091f463bc719223b37" integrity sha512-ZWJw2Ti6Dq1Ott/+qYqJdDWeZm16qI3VNG5rFlb0TQ3UcAyLIQZbnnzzdcVVwVeZiEp66WIpINd/pBdqsHVyOA== "@ledgerhq/hw-transport-webhid@^6.27.19": version "6.27.19" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-6.27.19.tgz#5a655b497258d94ec6494db7b56e17dd0c610638" + resolved "https://registry.npmjs.org/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-6.27.19.tgz#5a655b497258d94ec6494db7b56e17dd0c610638" integrity sha512-RMnktayqqLE2uFQDw9TKoW+WSP8KnT0ElKcIISf3sXVrzHD2y0moPk/wXOzGfi+cgN4uiKy86UD/5mgz3wlm6Q== dependencies: "@ledgerhq/devices" "^8.0.7" @@ -1423,7 +1369,7 @@ "@ledgerhq/hw-transport@^6.27.1", "@ledgerhq/hw-transport@^6.28.8": version "6.28.8" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.28.8.tgz#f99a5c71c5c09591e9bfb1b970c42aafbe81351f" + resolved "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-6.28.8.tgz#f99a5c71c5c09591e9bfb1b970c42aafbe81351f" integrity sha512-XxQVl4htd018u/M66r0iu5nlHi+J6QfdPsORzDF6N39jaz+tMqItb7tUlXM/isggcuS5lc7GJo7NOuJ8rvHZaQ== dependencies: "@ledgerhq/devices" "^8.0.7" @@ -1432,18 +1378,18 @@ "@ledgerhq/logs@^6.10.1": version "6.10.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-6.10.1.tgz#5bd16082261d7364eabb511c788f00937dac588d" + resolved "https://registry.npmjs.org/@ledgerhq/logs/-/logs-6.10.1.tgz#5bd16082261d7364eabb511c788f00937dac588d" integrity sha512-z+ILK8Q3y+nfUl43ctCPuR4Y2bIxk/ooCQFwZxhtci1EhAtMDzMAx2W25qx8G1PPL9UUOdnUax19+F0OjXoj4w== "@lit-labs/ssr-dom-shim@^1.0.0", "@lit-labs/ssr-dom-shim@^1.1.0": version "1.1.1" - resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.1.tgz#64df34e2f12e68e78ac57e571d25ec07fa460ca9" + resolved "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.1.tgz#64df34e2f12e68e78ac57e571d25ec07fa460ca9" integrity sha512-kXOeFbfCm4fFf2A3WwVEeQj55tMZa8c8/f9AKHMobQMkzNUfUj+antR3fRPaZJawsa1aZiP/Da3ndpZrwEe4rQ== "@lit/reactive-element@^1.3.0", "@lit/reactive-element@^1.6.0": - version "1.6.2" - resolved "https://registry.yarnpkg.com/@lit/reactive-element/-/reactive-element-1.6.2.tgz#c256690f82f2d7d0ffb0b1cdf68dcb1ec86cea28" - integrity sha512-rDfl+QnCYjuIGf5xI2sVJWdYIi56CTCwWa+nidKYX6oIuBYwUbT/vX4qbUDlHiZKJ/3FRNQ/tWJui44p6/stSA== + version "1.6.3" + resolved "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.3.tgz#25b4eece2592132845d303e091bad9b04cdcfe03" + integrity sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ== dependencies: "@lit-labs/ssr-dom-shim" "^1.0.0" @@ -1452,26 +1398,26 @@ resolved "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz#323d72dd25103d0c4fbdce89dadf574a787b1f9b" integrity sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ== -"@nicolo-ribaudo/semver-v6@^6.3.3": - version "6.3.3" - resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz#ea6d23ade78a325f7a52750aab1526b02b628c29" - integrity sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg== - "@noble/curves@1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.1.0.tgz#f13fc667c89184bc04cccb9b11e8e7bae27d8c3d" + resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.1.0.tgz#f13fc667c89184bc04cccb9b11e8e7bae27d8c3d" integrity sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA== dependencies: "@noble/hashes" "1.3.1" -"@noble/hashes@1.3.1", "@noble/hashes@^1.2.0": +"@noble/hashes@1.3.1": version "1.3.1" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.1.tgz#8831ef002114670c603c458ab8b11328406953a9" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.1.tgz#8831ef002114670c603c458ab8b11328406953a9" integrity sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA== +"@noble/hashes@^1.2.0": + version "1.3.2" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" + integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: "@nodelib/fs.stat" "2.0.5" @@ -1479,12 +1425,12 @@ "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" @@ -1492,7 +1438,7 @@ "@pkgr/utils@^2.3.1": version "2.4.2" - resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.4.2.tgz#9e638bbe9a6a6f165580dc943f138fd3309a2cbc" + resolved "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz#9e638bbe9a6a6f165580dc943f138fd3309a2cbc" integrity sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw== dependencies: cross-spawn "^7.0.3" @@ -1512,17 +1458,7 @@ resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.1.12.tgz#ecb4a345f7b518249a0a5e1d53dd7eea24316e81" integrity sha512-HRLF0t6ezFxJnu4yPS6eubzW5ZRWWhr6ZbjvKeJ4u6pj7fNcCeZaFYVTIaVzpoDVYFeGNEe/6MQ1ENSY7fyhXg== -"@polkadot-cloud/react@^0.1.27", "@polkadot-cloud/react@^0.1.29": - version "0.1.29" - resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.29.tgz#94ab13204fb7e2b0a554af45900233d03ff25930" - integrity sha512-s8d4DijLos6h1baFt0ZRmMET7EtAaoeMoZwlMNxd8tLsPquf7gUFdTea4KnjUm+qaL8jYE79S5/wjJm4btzl3w== - dependencies: - "@polkadot-cloud/core" "^0.1.12" - "@polkadot-cloud/react" "^0.1.27" - "@polkadot-cloud/utils" "^0.0.4" - react-error-boundary "^4.0.11" - -"@polkadot-cloud/react@^0.1.31": +"@polkadot-cloud/react@^0.1.29", "@polkadot-cloud/react@^0.1.31": version "0.1.31" resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.31.tgz#97fb9887bbc0b60277b00b2329fe5bc63192ec55" integrity sha512-EcRlFUAVZ5pxztUYmVHw//fUqikj2git6Hhw8drQ8Wu97ZM3Hb55F4j+yzttfsKn/rszzj09G131j7o+uSrcVg== @@ -1532,11 +1468,6 @@ "@polkadot-cloud/utils" "^0.0.6" react-error-boundary "^4.0.11" -"@polkadot-cloud/utils@^0.0.4": - version "0.0.4" - resolved "https://registry.npmjs.org/@polkadot-cloud/utils/-/utils-0.0.4.tgz#660d5ea9dbf6548f0f7ae9d0d4b86e6016d90c23" - integrity sha512-cSjaNcB/DgmKjG+VUJuA/wOBvUqsBRIr7KhVfJgD6tozqCyyHUgVO041T2uQioX+HauExO+5/wOVExthtS4ewQ== - "@polkadot-cloud/utils@^0.0.6": version "0.0.6" resolved "https://registry.npmjs.org/@polkadot-cloud/utils/-/utils-0.0.6.tgz#ea0fc18c6af7cd6a1d14ae6674f19b1b3ef82347" @@ -1549,7 +1480,7 @@ "@polkadot/api-augment@10.9.1": version "10.9.1" - resolved "https://registry.yarnpkg.com/@polkadot/api-augment/-/api-augment-10.9.1.tgz#9fc81b81903229bb23b0b16783e97ec52a5d4f1b" + resolved "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-10.9.1.tgz#9fc81b81903229bb23b0b16783e97ec52a5d4f1b" integrity sha512-kRZZvCFVcN4hAH4dJ+Qzfdy27/4EEq3oLDf3ihj0LTVrAezSWcKPGE3EVFy+Mn6Lo4SUc7RVyoKvIUhSk2l4Dg== dependencies: "@polkadot/api-base" "10.9.1" @@ -1562,7 +1493,7 @@ "@polkadot/api-base@10.9.1": version "10.9.1" - resolved "https://registry.yarnpkg.com/@polkadot/api-base/-/api-base-10.9.1.tgz#27f63c4950814c2f10535f794121fa1384dc2207" + resolved "https://registry.npmjs.org/@polkadot/api-base/-/api-base-10.9.1.tgz#27f63c4950814c2f10535f794121fa1384dc2207" integrity sha512-Q3m2KzlceMK2kX8bhnUZWk3RT6emmijeeFZZQgCePpEcrSeNjnqG4qjuTPgkveaOkUT8MAoDc5Avuzcc2jlW9g== dependencies: "@polkadot/rpc-core" "10.9.1" @@ -1573,7 +1504,7 @@ "@polkadot/api-derive@10.9.1": version "10.9.1" - resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-10.9.1.tgz#04a4ca3285fd215c4cd50cfb3f4791d38dd90050" + resolved "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-10.9.1.tgz#04a4ca3285fd215c4cd50cfb3f4791d38dd90050" integrity sha512-mRud1UZCFIc4Z63qAoGSIHh/foyUYADfy1RQYCmPpeFKfIdCIrHpd7xFdJXTOMYOS0BwlM6u4qli/ZT4XigezQ== dependencies: "@polkadot/api" "10.9.1" @@ -1589,7 +1520,7 @@ "@polkadot/api@10.9.1", "@polkadot/api@^10.9.1": version "10.9.1" - resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-10.9.1.tgz#156b3436f45ef18218960804988c1f552d2c4e46" + resolved "https://registry.npmjs.org/@polkadot/api/-/api-10.9.1.tgz#156b3436f45ef18218960804988c1f552d2c4e46" integrity sha512-ND/2UqZBWvtt4PfV03OStTKg0mxmPk4UpMAgJKutdgsz/wP9CYJ1KbjwFgPNekL9JnzbKQsWyQNPVrcw7kQk8A== dependencies: "@polkadot/api-augment" "10.9.1" @@ -1611,26 +1542,35 @@ tslib "^2.5.3" "@polkadot/keyring@^12.1.1", "@polkadot/keyring@^12.3.1": - version "12.3.2" - resolved "https://registry.yarnpkg.com/@polkadot/keyring/-/keyring-12.3.2.tgz#112a0c28816a1f47edad6260dc94222c29465a54" - integrity sha512-NTdtDeI0DP9l/45hXynNABeP5VB8piw5YR+CbUxK2e36xpJWVXwbcOepzslg5ghE9rs8UKJb30Z/HqTU4sBY0Q== + version "12.4.2" + resolved "https://registry.npmjs.org/@polkadot/keyring/-/keyring-12.4.2.tgz#ff66c531ff29c1c9cb7c0f8411930bc18c76e2d3" + integrity sha512-VH91feSL6GiVVLcJ6V8h6jIAuq62bfvhM75AMcjTFol6MDqFl25jdjkHfZ2bQhig330LIhLw89nKdYr2/OfwjA== dependencies: - "@polkadot/util" "12.3.2" - "@polkadot/util-crypto" "12.3.2" - tslib "^2.5.3" + "@polkadot/util" "12.4.2" + "@polkadot/util-crypto" "12.4.2" + tslib "^2.6.2" -"@polkadot/networks@12.3.2", "@polkadot/networks@^12.3.1": +"@polkadot/networks@12.3.2": version "12.3.2" - resolved "https://registry.yarnpkg.com/@polkadot/networks/-/networks-12.3.2.tgz#131b0439c481add159814dd2cf0286c6c3fe5b3b" + resolved "https://registry.npmjs.org/@polkadot/networks/-/networks-12.3.2.tgz#131b0439c481add159814dd2cf0286c6c3fe5b3b" integrity sha512-uCkyybKoeEm1daKr0uT/9oNDHDDzCy2/ZdVl346hQqfdR1Ct3BaxMjxqvdmb5N8aCw0cBWSfgsxAYtw8ESmllQ== dependencies: "@polkadot/util" "12.3.2" "@substrate/ss58-registry" "^1.40.0" tslib "^2.5.3" +"@polkadot/networks@12.4.2", "@polkadot/networks@^12.3.1": + version "12.4.2" + resolved "https://registry.npmjs.org/@polkadot/networks/-/networks-12.4.2.tgz#6b3dcbdd016beb0ea585009fd61b048b99b17d1c" + integrity sha512-dd7vss+86kpOyy/C+DuCWChGfhwHBHtrzJ9ArbbpY75qc8SqdP90lj/c13ZCHr5I1l+coy31gyyMj5i6ja1Dpg== + dependencies: + "@polkadot/util" "12.4.2" + "@substrate/ss58-registry" "^1.43.0" + tslib "^2.6.2" + "@polkadot/rpc-augment@10.9.1": version "10.9.1" - resolved "https://registry.yarnpkg.com/@polkadot/rpc-augment/-/rpc-augment-10.9.1.tgz#214ec3ee145d20caa61ea204041a3aadb89c6b0f" + resolved "https://registry.npmjs.org/@polkadot/rpc-augment/-/rpc-augment-10.9.1.tgz#214ec3ee145d20caa61ea204041a3aadb89c6b0f" integrity sha512-MaLHkNlyqN20ZRYr6uNd1BZr1OsrnX9qLAmsl0mcrri1vPGRH6VHjfFH1RBLkikpWD82v17g0l2hLwdV1ZHMcw== dependencies: "@polkadot/rpc-core" "10.9.1" @@ -1641,7 +1581,7 @@ "@polkadot/rpc-core@10.9.1": version "10.9.1" - resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-10.9.1.tgz#798c514dbed6f6c2e43098a494c9f51fb144dc31" + resolved "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-10.9.1.tgz#798c514dbed6f6c2e43098a494c9f51fb144dc31" integrity sha512-ZtA8B8SfXSAwVkBlCcKRHw0eSM7ec/sbiNOM5GasXPeRujUgT7lOwSH2GbUZSqe9RfRDMp6DvO9c2JoGc3LLWw== dependencies: "@polkadot/rpc-augment" "10.9.1" @@ -1653,7 +1593,7 @@ "@polkadot/rpc-provider@10.9.1", "@polkadot/rpc-provider@^10.9.1": version "10.9.1" - resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-10.9.1.tgz#de3a474bbcd26d28d9cd3134acdb3b5ce92b680b" + resolved "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-10.9.1.tgz#de3a474bbcd26d28d9cd3134acdb3b5ce92b680b" integrity sha512-4QzT2QzD+320+eT6b79sGAA85Tt3Bb8fQvse4r5Mom2iiBd2SO81vOhxSAOaIe4GUsw25VzFJmsbe7+OObItdg== dependencies: "@polkadot/keyring" "^12.3.1" @@ -1673,7 +1613,7 @@ "@polkadot/types-augment@10.9.1": version "10.9.1" - resolved "https://registry.yarnpkg.com/@polkadot/types-augment/-/types-augment-10.9.1.tgz#5f1c1225c04ffbfe243629a46087c9c9de25a6b3" + resolved "https://registry.npmjs.org/@polkadot/types-augment/-/types-augment-10.9.1.tgz#5f1c1225c04ffbfe243629a46087c9c9de25a6b3" integrity sha512-OY9/jTMFRFqYdkUnfcGwqMLC64A0Q25bjvCuVQCVjsPFKE3wl0Kt5rNT01eV2UmLXrR6fY0xWbR2w80bLA7CIQ== dependencies: "@polkadot/types" "10.9.1" @@ -1683,7 +1623,7 @@ "@polkadot/types-codec@10.9.1": version "10.9.1" - resolved "https://registry.yarnpkg.com/@polkadot/types-codec/-/types-codec-10.9.1.tgz#f30026d3dfeaa69c07c45fa66d1c39318fd232cc" + resolved "https://registry.npmjs.org/@polkadot/types-codec/-/types-codec-10.9.1.tgz#f30026d3dfeaa69c07c45fa66d1c39318fd232cc" integrity sha512-mJ5OegKGraY1FLvEa8FopRCr3pQrhDkcn5RNOjmgJQozENVeRaxhk0NwxYz7IojFvSDnKnc6lNQfKaaSe5pLHg== dependencies: "@polkadot/util" "^12.3.1" @@ -1692,7 +1632,7 @@ "@polkadot/types-create@10.9.1": version "10.9.1" - resolved "https://registry.yarnpkg.com/@polkadot/types-create/-/types-create-10.9.1.tgz#087d7e2af51cce558b67e3859613b932a3bdc0a3" + resolved "https://registry.npmjs.org/@polkadot/types-create/-/types-create-10.9.1.tgz#087d7e2af51cce558b67e3859613b932a3bdc0a3" integrity sha512-OVz50MGTTuiuVnRP/zAx4CTuLioc0hsiwNwqN2lNhmIJGtnQ4Vy/7mQRsIWehiYz6g0Vzzm5B3qWkTXO1NSN5w== dependencies: "@polkadot/types-codec" "10.9.1" @@ -1701,7 +1641,7 @@ "@polkadot/types-known@10.9.1": version "10.9.1" - resolved "https://registry.yarnpkg.com/@polkadot/types-known/-/types-known-10.9.1.tgz#fe0c7e55191aa843119edcaf9abb5d2471463a7d" + resolved "https://registry.npmjs.org/@polkadot/types-known/-/types-known-10.9.1.tgz#fe0c7e55191aa843119edcaf9abb5d2471463a7d" integrity sha512-zCMVWc4pJtkbMFPu72bD4IhvV/gkHXPX3C5uu92WdmCfnn0vEIEsMKWlVXVVvQQZKAqvs/awpqIfrUtEViOGEA== dependencies: "@polkadot/networks" "^12.3.1" @@ -1713,7 +1653,7 @@ "@polkadot/types-support@10.9.1": version "10.9.1" - resolved "https://registry.yarnpkg.com/@polkadot/types-support/-/types-support-10.9.1.tgz#17a861aab8e5a225a4e20cefa2d16076ddd51baf" + resolved "https://registry.npmjs.org/@polkadot/types-support/-/types-support-10.9.1.tgz#17a861aab8e5a225a4e20cefa2d16076ddd51baf" integrity sha512-XsieuLDsszvMZQlleacQBfx07i/JkwQV/UxH9q8Hz7Okmaz9pEVEW1h3ka2/cPuC7a4l32JhaORBUYshBZNdJg== dependencies: "@polkadot/util" "^12.3.1" @@ -1721,7 +1661,7 @@ "@polkadot/types@10.9.1": version "10.9.1" - resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-10.9.1.tgz#f111d00f7278ad3be95deba3d701fafefe080cb2" + resolved "https://registry.npmjs.org/@polkadot/types/-/types-10.9.1.tgz#f111d00f7278ad3be95deba3d701fafefe080cb2" integrity sha512-AG33i2ZGGfq7u+5rkAdGrXAQHHl844/Yv+junH5ZzX69xiCoWO1bH/yzDUNBdpki2GlACWvF9nLYh3F2tVF93w== dependencies: "@polkadot/keyring" "^12.3.1" @@ -1733,9 +1673,9 @@ rxjs "^7.8.1" tslib "^2.5.3" -"@polkadot/util-crypto@12.3.2", "@polkadot/util-crypto@^12.3.1": +"@polkadot/util-crypto@12.3.2": version "12.3.2" - resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-12.3.2.tgz#42d810886904e06fa6e5db254c15f6ef80f4ab72" + resolved "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-12.3.2.tgz#42d810886904e06fa6e5db254c15f6ef80f4ab72" integrity sha512-pTpx+YxolY0BDT4RcGmgeKbHHD/dI6Ll9xRsqmVdIjpcVVY20uDNTyXs81ZNtfKgyod1y9JQkfNv2Dz9iEpTkQ== dependencies: "@noble/curves" "1.1.0" @@ -1749,9 +1689,25 @@ "@scure/base" "1.1.1" tslib "^2.5.3" +"@polkadot/util-crypto@12.4.2", "@polkadot/util-crypto@^12.3.1": + version "12.4.2" + resolved "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-12.4.2.tgz#e19258dab5f2d4fe49f2d074d36d33a445e50b74" + integrity sha512-JP7OrEKYx35P3wWc2Iu9F6BfYMIkywXik908zQqPxwoQhr8uDLP1Qoyu9Sws+hE97Yz1O4jBVvryS2le0yusog== + dependencies: + "@noble/curves" "1.1.0" + "@noble/hashes" "1.3.1" + "@polkadot/networks" "12.4.2" + "@polkadot/util" "12.4.2" + "@polkadot/wasm-crypto" "^7.2.2" + "@polkadot/wasm-util" "^7.2.2" + "@polkadot/x-bigint" "12.4.2" + "@polkadot/x-randomvalues" "12.4.2" + "@scure/base" "1.1.1" + tslib "^2.6.2" + "@polkadot/util@12.3.2": version "12.3.2" - resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-12.3.2.tgz#f46e147b0e6a426da5ba59df4ce65de1a3effe4a" + resolved "https://registry.npmjs.org/@polkadot/util/-/util-12.3.2.tgz#f46e147b0e6a426da5ba59df4ce65de1a3effe4a" integrity sha512-y/JShcGyOamCUiSIg++XZuLHt1ktSKBaSH2K5Nw5NXlgP0+7am+GZzqPB8fQ4qhYLruEOv+YRiz0GC1Zr9S+wg== dependencies: "@polkadot/x-bigint" "12.3.2" @@ -1762,9 +1718,9 @@ bn.js "^5.2.1" tslib "^2.5.3" -"@polkadot/util@^12.3.1", "@polkadot/util@^12.4.2": +"@polkadot/util@12.4.2", "@polkadot/util@^12.3.1", "@polkadot/util@^12.4.2": version "12.4.2" - resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-12.4.2.tgz#65759f4b366c2a787fd21abacab8cf8ab1aebbf9" + resolved "https://registry.npmjs.org/@polkadot/util/-/util-12.4.2.tgz#65759f4b366c2a787fd21abacab8cf8ab1aebbf9" integrity sha512-NcTCbnIzMb/3TvJNEbaiu/9EvYIBuzDwZfqQ4hzL0GAptkF8aDkKMDCfQ/j3FI38rR+VTPQHNky9fvWglGKGRw== dependencies: "@polkadot/x-bigint" "12.4.2" @@ -1775,62 +1731,62 @@ bn.js "^5.2.1" tslib "^2.6.2" -"@polkadot/wasm-bridge@7.2.1": - version "7.2.1" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-bridge/-/wasm-bridge-7.2.1.tgz#8464a96552207d2b49c6f32137b24132534b91ee" - integrity sha512-uV/LHREDBGBbHrrv7HTki+Klw0PYZzFomagFWII4lp6Toj/VCvRh5WMzooVC+g/XsBGosAwrvBhoModabyHx+A== +"@polkadot/wasm-bridge@7.2.2": + version "7.2.2" + resolved "https://registry.npmjs.org/@polkadot/wasm-bridge/-/wasm-bridge-7.2.2.tgz#957b82b17927fe080729e8930b5b5c554f77b8df" + integrity sha512-CgNENd65DVYtackOVXXRA0D1RPoCv5+77IdBCf7kNqu6LeAnR4nfTI6qjaApUdN1xRweUsQjSH7tu7VjkMOA0A== dependencies: - "@polkadot/wasm-util" "7.2.1" - tslib "^2.5.0" + "@polkadot/wasm-util" "7.2.2" + tslib "^2.6.1" -"@polkadot/wasm-crypto-asmjs@7.2.1": - version "7.2.1" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-7.2.1.tgz#3e7a91e2905ab7354bc37b82f3e151a62bb024db" - integrity sha512-z/d21bmxyVfkzGsKef/FWswKX02x5lK97f4NPBZ9XBeiFkmzlXhdSnu58/+b1sKsRAGdW/Rn/rTNRDhW0GqCAg== +"@polkadot/wasm-crypto-asmjs@7.2.2": + version "7.2.2" + resolved "https://registry.npmjs.org/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-7.2.2.tgz#25243a4d5d8d997761141b616623cacff4329f13" + integrity sha512-wKg+cpsWQCTSVhjlHuNeB/184rxKqY3vaklacbLOMbUXieIfuDBav5PJdzS3yeiVE60TpYaHW4iX/5OYHS82gg== dependencies: - tslib "^2.5.0" + tslib "^2.6.1" -"@polkadot/wasm-crypto-init@7.2.1": - version "7.2.1" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-init/-/wasm-crypto-init-7.2.1.tgz#9dbba41ed7d382575240f1483cf5a139ff2787bd" - integrity sha512-GcEXtwN9LcSf32V9zSaYjHImFw16hCyo2Xzg4GLLDPPeaAAfbFr2oQMgwyDbvBrBjLKHVHjsPZyGhXae831amw== +"@polkadot/wasm-crypto-init@7.2.2": + version "7.2.2" + resolved "https://registry.npmjs.org/@polkadot/wasm-crypto-init/-/wasm-crypto-init-7.2.2.tgz#ffd105b87fc1b679c06c85c0848183c27bc539e3" + integrity sha512-vD4iPIp9x+SssUIWUenxWLPw4BVIwhXHNMpsV81egK990tvpyIxL205/EF5QRb1mKn8WfWcNFm5tYwwh9NdnnA== dependencies: - "@polkadot/wasm-bridge" "7.2.1" - "@polkadot/wasm-crypto-asmjs" "7.2.1" - "@polkadot/wasm-crypto-wasm" "7.2.1" - "@polkadot/wasm-util" "7.2.1" - tslib "^2.5.0" + "@polkadot/wasm-bridge" "7.2.2" + "@polkadot/wasm-crypto-asmjs" "7.2.2" + "@polkadot/wasm-crypto-wasm" "7.2.2" + "@polkadot/wasm-util" "7.2.2" + tslib "^2.6.1" -"@polkadot/wasm-crypto-wasm@7.2.1": - version "7.2.1" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-7.2.1.tgz#d2486322c725f6e5d2cc2d6abcb77ecbbaedc738" - integrity sha512-DqyXE4rSD0CVlLIw88B58+HHNyrvm+JAnYyuEDYZwCvzUWOCNos/DDg9wi/K39VAIsCCKDmwKqkkfIofuOj/lA== +"@polkadot/wasm-crypto-wasm@7.2.2": + version "7.2.2" + resolved "https://registry.npmjs.org/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-7.2.2.tgz#9e49a1565bda2bc830708693b491b37ad8a2144d" + integrity sha512-3efoIB6jA3Hhv6k0YIBwCtlC8gCSWCk+R296yIXRLLr3cGN415KM/PO/d1JIXYI64lbrRzWRmZRhllw3jf6Atg== dependencies: - "@polkadot/wasm-util" "7.2.1" - tslib "^2.5.0" + "@polkadot/wasm-util" "7.2.2" + tslib "^2.6.1" -"@polkadot/wasm-crypto@^7.2.1": - version "7.2.1" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto/-/wasm-crypto-7.2.1.tgz#db671dcb73f1646dc13478b5ffc3be18c64babe1" - integrity sha512-SA2+33S9TAwGhniKgztVN6pxUKpGfN4Tre/eUZGUfpgRkT92wIUT2GpGWQE+fCCqGQgADrNiBcwt6XwdPqMQ4Q== +"@polkadot/wasm-crypto@^7.2.1", "@polkadot/wasm-crypto@^7.2.2": + version "7.2.2" + resolved "https://registry.npmjs.org/@polkadot/wasm-crypto/-/wasm-crypto-7.2.2.tgz#3c4b300c0997f4f7e2ddcdf8101d97fa1f5d1a7f" + integrity sha512-1ZY1rxUTawYm0m1zylvBMFovNIHYgG2v/XoASNp/EMG5c8FQIxCbhJRaTBA983GVq4lN/IAKREKEp9ZbLLqssA== dependencies: - "@polkadot/wasm-bridge" "7.2.1" - "@polkadot/wasm-crypto-asmjs" "7.2.1" - "@polkadot/wasm-crypto-init" "7.2.1" - "@polkadot/wasm-crypto-wasm" "7.2.1" - "@polkadot/wasm-util" "7.2.1" - tslib "^2.5.0" + "@polkadot/wasm-bridge" "7.2.2" + "@polkadot/wasm-crypto-asmjs" "7.2.2" + "@polkadot/wasm-crypto-init" "7.2.2" + "@polkadot/wasm-crypto-wasm" "7.2.2" + "@polkadot/wasm-util" "7.2.2" + tslib "^2.6.1" -"@polkadot/wasm-util@7.2.1", "@polkadot/wasm-util@^7.2.1": - version "7.2.1" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-util/-/wasm-util-7.2.1.tgz#fda233120ec02f77f0d14e4d3c7ad9ce06535fb8" - integrity sha512-FBSn/3aYJzhN0sYAYhHB8y9JL8mVgxLy4M1kUXYbyo+8GLRQEN5rns8Vcb8TAlIzBWgVTOOptYBvxo0oj0h7Og== +"@polkadot/wasm-util@7.2.2", "@polkadot/wasm-util@^7.2.1", "@polkadot/wasm-util@^7.2.2": + version "7.2.2" + resolved "https://registry.npmjs.org/@polkadot/wasm-util/-/wasm-util-7.2.2.tgz#f8aa62eba9a35466aa23f3c5634f3e8dbd398bbf" + integrity sha512-N/25960ifCc56sBlJZ2h5UBpEPvxBmMLgwYsl7CUuT+ea2LuJW9Xh8VHDN/guYXwmm92/KvuendYkEUykpm/JQ== dependencies: - tslib "^2.5.0" + tslib "^2.6.1" "@polkadot/x-bigint@12.3.2": version "12.3.2" - resolved "https://registry.yarnpkg.com/@polkadot/x-bigint/-/x-bigint-12.3.2.tgz#0e99489cc7938bed40762aaaed58ded6850ab54b" + resolved "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-12.3.2.tgz#0e99489cc7938bed40762aaaed58ded6850ab54b" integrity sha512-JLqLgfGXe/x+hZJETd5ZqfpVsbwyMsH5Nn1Q20ineMMjXN/ig+kVR8Mc15LXBMuw4g7LldFW6UUrotWnuMI8Yw== dependencies: "@polkadot/x-global" "12.3.2" @@ -1838,46 +1794,54 @@ "@polkadot/x-bigint@12.4.2", "@polkadot/x-bigint@^12.3.1": version "12.4.2" - resolved "https://registry.yarnpkg.com/@polkadot/x-bigint/-/x-bigint-12.4.2.tgz#a63c9c926443231206726103d06c117ac2248de8" + resolved "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-12.4.2.tgz#a63c9c926443231206726103d06c117ac2248de8" integrity sha512-VRbkhdIf7CyWiUSyHemYi2fFWjBetUGyqpzsIHEclmzvqhKPfs7Kd2ZRdoXKU5QM56eD0sV2pyJxL34dv36/rw== dependencies: "@polkadot/x-global" "12.4.2" tslib "^2.6.2" "@polkadot/x-fetch@^12.3.1": - version "12.3.2" - resolved "https://registry.yarnpkg.com/@polkadot/x-fetch/-/x-fetch-12.3.2.tgz#7e8d2113268e792dd5d1b259ef13839c6aa77996" - integrity sha512-3IEuZ5S+RI/t33NsdPLIIa5COfDCfpUW2sbaByEczn75aD1jLqJZSEDwiBniJ2osyNd4uUxBf6e5jw7LAZeZJg== + version "12.4.2" + resolved "https://registry.npmjs.org/@polkadot/x-fetch/-/x-fetch-12.4.2.tgz#c5b70aacf7491ec9e51b0b14a7dbda44e9f3a11c" + integrity sha512-QEtYIUO6q6LupYkOl+vRwAkbBSSNHbALG8Y3+L/tFDubeXQl79vCkJFmsjhLewpsDIwTFTPNOwzA0ZEyb+0HZw== dependencies: - "@polkadot/x-global" "12.3.2" - node-fetch "^3.3.1" - tslib "^2.5.3" + "@polkadot/x-global" "12.4.2" + node-fetch "^3.3.2" + tslib "^2.6.2" "@polkadot/x-global@12.3.2": version "12.3.2" - resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-12.3.2.tgz#04ac0b0e559a35107f0b95ff7889fcade3796aa3" + resolved "https://registry.npmjs.org/@polkadot/x-global/-/x-global-12.3.2.tgz#04ac0b0e559a35107f0b95ff7889fcade3796aa3" integrity sha512-yVZq6oIegjlyh5rUZiTklgu+fL+W/DG1ypEa02683tUCB3avV5cA3PAHKptMSlb6FpweHu37lKKrqfAWrraDxg== dependencies: tslib "^2.5.3" "@polkadot/x-global@12.4.2", "@polkadot/x-global@^12.3.1": version "12.4.2" - resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-12.4.2.tgz#cc6ed596698678f98a53547b9adb712eadfd5175" + resolved "https://registry.npmjs.org/@polkadot/x-global/-/x-global-12.4.2.tgz#cc6ed596698678f98a53547b9adb712eadfd5175" integrity sha512-CwbjSt1Grmn56xAj+hGC8ZB0uZxMl92K+VkBH0KxjgcbAX/D24ZD/0ds8pAnUYrO4aYHYq2j2MAGVSMdHcMBAQ== dependencies: tslib "^2.6.2" "@polkadot/x-randomvalues@12.3.2": version "12.3.2" - resolved "https://registry.yarnpkg.com/@polkadot/x-randomvalues/-/x-randomvalues-12.3.2.tgz#43ac489a998098bdd40b3f82f28adb5b542db2a5" + resolved "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-12.3.2.tgz#43ac489a998098bdd40b3f82f28adb5b542db2a5" integrity sha512-ywjIs8CWpvOGmq+3cGCNPOHxAjPHdBUiXyDccftx5BRVdmtbt36gK/V84bKr6Xs73FGu0jprUAOSRRsLZX/3dg== dependencies: "@polkadot/x-global" "12.3.2" tslib "^2.5.3" +"@polkadot/x-randomvalues@12.4.2": + version "12.4.2" + resolved "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-12.4.2.tgz#399a7f831e465e6cd5aea64f8220693b07be86fa" + integrity sha512-HVlXRWY9RfN54RgfDroDy2itWmtTUtr119DfPl3wjnBf9i4wl/M+848OYlmCZCTpViTJrvWVSEJH9zVgchlNnw== + dependencies: + "@polkadot/x-global" "12.4.2" + tslib "^2.6.2" + "@polkadot/x-textdecoder@12.3.2": version "12.3.2" - resolved "https://registry.yarnpkg.com/@polkadot/x-textdecoder/-/x-textdecoder-12.3.2.tgz#bbd5682744f3552ce5d4d792ff48a3ca525eafcf" + resolved "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-12.3.2.tgz#bbd5682744f3552ce5d4d792ff48a3ca525eafcf" integrity sha512-lY5bfA5xArJRWEJlYOlQQMJeTjWD8s0yMhchirVgf5xj8Id9vPGeUoneH+VFDEwgXxrqBvDFJ4smN4T/r6a/fg== dependencies: "@polkadot/x-global" "12.3.2" @@ -1885,7 +1849,7 @@ "@polkadot/x-textdecoder@12.4.2": version "12.4.2" - resolved "https://registry.yarnpkg.com/@polkadot/x-textdecoder/-/x-textdecoder-12.4.2.tgz#fea941decbe32d24aa3f951a511bf576dc104826" + resolved "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-12.4.2.tgz#fea941decbe32d24aa3f951a511bf576dc104826" integrity sha512-cyUoKwdSIiBXAaWnGdMYqnaNHc5NV9skQh/fITis3ufKKi3pMwxJ5IwhhfDZpuKDl/3fDXF40Z3fqtTeUnoRXA== dependencies: "@polkadot/x-global" "12.4.2" @@ -1893,7 +1857,7 @@ "@polkadot/x-textencoder@12.3.2": version "12.3.2" - resolved "https://registry.yarnpkg.com/@polkadot/x-textencoder/-/x-textencoder-12.3.2.tgz#223e6f6dd78e2d81c6dcc6f244c76ceae7b08e32" + resolved "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-12.3.2.tgz#223e6f6dd78e2d81c6dcc6f244c76ceae7b08e32" integrity sha512-iP3qEBiHzBckQ9zeY7ZHRWuu7mCEg5SMpOugs6UODRk8sx6KHzGQYlghBbWLit0uppPDVE0ifEwZ2n73djJHWQ== dependencies: "@polkadot/x-global" "12.3.2" @@ -1901,61 +1865,66 @@ "@polkadot/x-textencoder@12.4.2": version "12.4.2" - resolved "https://registry.yarnpkg.com/@polkadot/x-textencoder/-/x-textencoder-12.4.2.tgz#a717fe2701ade5648600ff3a34d4d1224d916ee3" + resolved "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-12.4.2.tgz#a717fe2701ade5648600ff3a34d4d1224d916ee3" integrity sha512-xrcwx55B2K7j9CnVucGLFl0qd5sb7W5Ei6dOsWgDnZNjZPBqsx9jTBQSBv9HmyHE4GEnF4z0rpO0msy3S7Sj9Q== dependencies: "@polkadot/x-global" "12.4.2" tslib "^2.6.2" "@polkadot/x-ws@^12.3.1": - version "12.3.2" - resolved "https://registry.yarnpkg.com/@polkadot/x-ws/-/x-ws-12.3.2.tgz#422559dfbdaac4c965d5e1b406b6cc4529214f94" - integrity sha512-yM9Z64pLNlHpJE43+Xtr+iUXmYpFFY5u5hrke2PJt13O48H8f9Vb9cRaIh94appLyICoS0aekGhDkGH+MCspBA== + version "12.4.2" + resolved "https://registry.npmjs.org/@polkadot/x-ws/-/x-ws-12.4.2.tgz#675e2d7effd6cafebc43783484a6ae55afb58f20" + integrity sha512-dYUtpbPa/JNd94tPAM9iHMzhR8MZ4wtOPh8gvueQRRYC8ZYQ9NPwjbBImY2FRfx7wCG1tFLAR6OEw4ToLLJNsA== dependencies: - "@polkadot/x-global" "12.3.2" - tslib "^2.5.3" + "@polkadot/x-global" "12.4.2" + tslib "^2.6.2" ws "^8.13.0" "@remix-run/router@1.8.0": version "1.8.0" - resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.8.0.tgz#e848d2f669f601544df15ce2a313955e4bf0bafc" + resolved "https://registry.npmjs.org/@remix-run/router/-/router-1.8.0.tgz#e848d2f669f601544df15ce2a313955e4bf0bafc" integrity sha512-mrfKqIHnSZRyIzBcanNJmVQELTnX+qagEDlcKO90RgRBVOZGSGvZKeDihTRfWcqoDn5N/NkUcwWTccnpN18Tfg== "@rollup/pluginutils@^4.2.1": version "4.2.1" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" + resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== dependencies: estree-walker "^2.0.1" picomatch "^2.2.2" "@rollup/pluginutils@^5.0.2": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.2.tgz#012b8f53c71e4f6f9cb317e311df1404f56e7a33" - integrity sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA== + version "5.0.4" + resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.4.tgz#74f808f9053d33bafec0cc98e7b835c9667d32ba" + integrity sha512-0KJnIoRI8A+a1dqOYLxH8vBf8bphDmty5QvIm2hqm7oFCFYKCAZWWd2hXgMibaPsNDhI0AtpYfQZJG47pt/k4g== dependencies: "@types/estree" "^1.0.0" estree-walker "^2.0.2" picomatch "^2.3.1" -"@scure/base@1.1.1", "@scure/base@^1.1.1": +"@scure/base@1.1.1": version "1.1.1" - resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.1.tgz#ebb651ee52ff84f420097055f4bf46cfba403938" + resolved "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz#ebb651ee52ff84f420097055f4bf46cfba403938" integrity sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA== +"@scure/base@^1.1.1": + version "1.1.3" + resolved "https://registry.npmjs.org/@scure/base/-/base-1.1.3.tgz#8584115565228290a6c6c4961973e0903bb3df2f" + integrity sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q== + "@sinclair/typebox@^0.27.8": version "0.27.8" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== "@substrate/connect-extension-protocol@^1.0.1": version "1.0.1" - resolved "https://registry.yarnpkg.com/@substrate/connect-extension-protocol/-/connect-extension-protocol-1.0.1.tgz#fa5738039586c648013caa6a0c95c43265dbe77d" + resolved "https://registry.npmjs.org/@substrate/connect-extension-protocol/-/connect-extension-protocol-1.0.1.tgz#fa5738039586c648013caa6a0c95c43265dbe77d" integrity sha512-161JhCC1csjH3GE5mPLEd7HbWtwNSPJBg3p1Ksz9SFlTzj/bgEwudiRN2y5i0MoLGCIJRYKyKGMxVnd29PzNjg== "@substrate/connect@0.7.26": version "0.7.26" - resolved "https://registry.yarnpkg.com/@substrate/connect/-/connect-0.7.26.tgz#a0ee5180c9cb2f29250d1219a32f7b7e7dea1196" + resolved "https://registry.npmjs.org/@substrate/connect/-/connect-0.7.26.tgz#a0ee5180c9cb2f29250d1219a32f7b7e7dea1196" integrity sha512-uuGSiroGuKWj1+38n1kY5HReer5iL9bRwPCzuoLtqAOmI1fGI0hsSI2LlNQMAbfRgr7VRHXOk5MTuQf5ulsFRw== dependencies: "@substrate/connect-extension-protocol" "^1.0.1" @@ -1964,60 +1933,60 @@ "@substrate/connect@^0.7.31": version "0.7.31" - resolved "https://registry.yarnpkg.com/@substrate/connect/-/connect-0.7.31.tgz#a815acdf727e1e49815c7faee5acf049743aa339" + resolved "https://registry.npmjs.org/@substrate/connect/-/connect-0.7.31.tgz#a815acdf727e1e49815c7faee5acf049743aa339" integrity sha512-a6D1Yjk5b2D5QJn1HZEN/6J9Kk5YROO0AxfY7apFamkYJCePfKkCsBrergOFAk1ZC3x1FhGdSxUvfYyqPq8knw== dependencies: "@substrate/connect-extension-protocol" "^1.0.1" smoldot "1.0.13" -"@substrate/ss58-registry@^1.40.0": - version "1.41.0" - resolved "https://registry.yarnpkg.com/@substrate/ss58-registry/-/ss58-registry-1.41.0.tgz#dd18e132f44b73c3cd31cf0db489c10af70bef36" - integrity sha512-TLz5VkEaJRNFzf1Oiix9gqknKer3aKbLfjK9XHBFCIhdxlQpI+S6lZGu3wT4DHAGXPakYfXb8+9ZIOtWLcQ/2Q== +"@substrate/ss58-registry@^1.40.0", "@substrate/ss58-registry@^1.43.0": + version "1.43.0" + resolved "https://registry.npmjs.org/@substrate/ss58-registry/-/ss58-registry-1.43.0.tgz#93108e45cb7ef6d82560c153e3692c2aa1c711b3" + integrity sha512-USEkXA46P9sqClL7PZv0QFsit4S8Im97wchKG0/H/9q3AT/S76r40UHfCr4Un7eBJPE23f7fU9BZ0ITpP9MCsA== "@svgr/babel-plugin-add-jsx-attribute@^7.0.0": version "7.0.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-7.0.0.tgz#80856c1b7a3b7422d232f6e079f0beb90c4a13e9" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-7.0.0.tgz#80856c1b7a3b7422d232f6e079f0beb90c4a13e9" integrity sha512-khWbXesWIP9v8HuKCl2NU2HNAyqpSQ/vkIl36Nbn4HIwEYSRWL0H7Gs6idJdha2DkpFDWlsqMELvoCE8lfFY6Q== "@svgr/babel-plugin-remove-jsx-attribute@^7.0.0": version "7.0.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-7.0.0.tgz#91da77a009dc38e8d30da45d9b62ef8736f2d90a" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-7.0.0.tgz#91da77a009dc38e8d30da45d9b62ef8736f2d90a" integrity sha512-iiZaIvb3H/c7d3TH2HBeK91uI2rMhZNwnsIrvd7ZwGLkFw6mmunOCoVnjdYua662MqGFxlN9xTq4fv9hgR4VXQ== "@svgr/babel-plugin-remove-jsx-empty-expression@^7.0.0": version "7.0.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-7.0.0.tgz#5154ff1213509e36ab315974c8c2fd48dafb827b" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-7.0.0.tgz#5154ff1213509e36ab315974c8c2fd48dafb827b" integrity sha512-sQQmyo+qegBx8DfFc04PFmIO1FP1MHI1/QEpzcIcclo5OAISsOJPW76ZIs0bDyO/DBSJEa/tDa1W26pVtt0FRw== "@svgr/babel-plugin-replace-jsx-attribute-value@^7.0.0": version "7.0.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-7.0.0.tgz#7e72f44ee57fdbcb02fb0d4a7629466c5242725e" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-7.0.0.tgz#7e72f44ee57fdbcb02fb0d4a7629466c5242725e" integrity sha512-i6MaAqIZXDOJeikJuzocByBf8zO+meLwfQ/qMHIjCcvpnfvWf82PFvredEZElErB5glQFJa2KVKk8N2xV6tRRA== "@svgr/babel-plugin-svg-dynamic-title@^7.0.0": version "7.0.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-7.0.0.tgz#8caf0449c678ea29be756b89960b2b16c9f33f00" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-7.0.0.tgz#8caf0449c678ea29be756b89960b2b16c9f33f00" integrity sha512-BoVSh6ge3SLLpKC0pmmN9DFlqgFy4NxNgdZNLPNJWBUU7TQpDWeBuyVuDW88iXydb5Cv0ReC+ffa5h3VrKfk1w== "@svgr/babel-plugin-svg-em-dimensions@^7.0.0": version "7.0.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-7.0.0.tgz#4db6b5af6d29e93db236b1a013fa953754071d41" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-7.0.0.tgz#4db6b5af6d29e93db236b1a013fa953754071d41" integrity sha512-tNDcBa+hYn0gO+GkP/AuNKdVtMufVhU9fdzu+vUQsR18RIJ9RWe7h/pSBY338RO08wArntwbDk5WhQBmhf2PaA== "@svgr/babel-plugin-transform-react-native-svg@^7.0.0": version "7.0.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-7.0.0.tgz#236995e58b5e36ff06365d5310509ce5391aeec9" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-7.0.0.tgz#236995e58b5e36ff06365d5310509ce5391aeec9" integrity sha512-qw54u8ljCJYL2KtBOjI5z7Nzg8LnSvQOP5hPKj77H4VQL4+HdKbAT5pnkkZLmHKYwzsIHSYKXxHouD8zZamCFQ== "@svgr/babel-plugin-transform-svg-component@^7.0.0": version "7.0.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-7.0.0.tgz#a9b62730acf10d22a2aa57e0f701c0ecbc270430" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-7.0.0.tgz#a9b62730acf10d22a2aa57e0f701c0ecbc270430" integrity sha512-CcFECkDj98daOg9jE3Bh3uyD9kzevCAnZ+UtzG6+BQG/jOQ2OA3jHnX6iG4G1MCJkUQFnUvEv33NvQfqrb/F3A== "@svgr/babel-preset@^7.0.0": version "7.0.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-7.0.0.tgz#55aaca4cec2ff6515a571715b6b6fa98675b66d9" + resolved "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-7.0.0.tgz#55aaca4cec2ff6515a571715b6b6fa98675b66d9" integrity sha512-EX/NHeFa30j5UjldQGVQikuuQNHUdGmbh9kEpBKofGUtF0GUPJ4T4rhoYiqDAOmBOxojyot36JIFiDUHUK1ilQ== dependencies: "@svgr/babel-plugin-add-jsx-attribute" "^7.0.0" @@ -2031,7 +2000,7 @@ "@svgr/core@^7.0.0": version "7.0.0" - resolved "https://registry.yarnpkg.com/@svgr/core/-/core-7.0.0.tgz#def863d2670c682615583c80b408e83c095c2233" + resolved "https://registry.npmjs.org/@svgr/core/-/core-7.0.0.tgz#def863d2670c682615583c80b408e83c095c2233" integrity sha512-ztAoxkaKhRVloa3XydohgQQCb0/8x9T63yXovpmHzKMkHO6pkjdsIAWKOS4bE95P/2quVh1NtjSKlMRNzSBffw== dependencies: "@babel/core" "^7.21.3" @@ -2041,7 +2010,7 @@ "@svgr/hast-util-to-babel-ast@^7.0.0": version "7.0.0" - resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-7.0.0.tgz#d457dfbe74ebc1e5a6daf97ded49e9576a3a00cf" + resolved "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-7.0.0.tgz#d457dfbe74ebc1e5a6daf97ded49e9576a3a00cf" integrity sha512-42Ej9sDDEmsJKjrfQ1PHmiDiHagh/u9AHO9QWbeNx4KmD9yS5d1XHmXUNINfUcykAU+4431Cn+k6Vn5mWBYimQ== dependencies: "@babel/types" "^7.21.3" @@ -2049,7 +2018,7 @@ "@svgr/plugin-jsx@^7.0.0": version "7.0.0" - resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-7.0.0.tgz#b9e0c7d05bc890d70163ac0490ba8c41f1afab90" + resolved "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-7.0.0.tgz#b9e0c7d05bc890d70163ac0490ba8c41f1afab90" integrity sha512-SWlTpPQmBUtLKxXWgpv8syzqIU8XgFRvyhfkam2So8b3BE0OS0HPe5UfmlJ2KIC+a7dpuuYovPR2WAQuSyMoPw== dependencies: "@babel/core" "^7.21.3" @@ -2057,167 +2026,174 @@ "@svgr/hast-util-to-babel-ast" "^7.0.0" svg-parser "^2.0.4" -"@swc/core-darwin-arm64@1.3.68": - version "1.3.68" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.68.tgz#cf7fe9550a09eb18e6ceb30362da39886dbaf9d6" - integrity sha512-Z5pNxeuP2NxpOHTzDQkJs0wAPLnTlglZnR3WjObijwvdwT/kw1Y5EPDKM/BVSIeG40SPMkDLBbI0aj0qyXzrBA== - -"@swc/core-darwin-x64@1.3.68": - version "1.3.68" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.68.tgz#83e1077a9a0f607f2a0050db2c9b288464c885cf" - integrity sha512-ZHl42g6yXhfX4PzAQ0BNvBXpt/OcbAHfubWRN6eXELK3fiNnxL7QBW1if7iizlq6iA+Mj1pwHyyUit1pz0+fgA== - -"@swc/core-linux-arm-gnueabihf@1.3.68": - version "1.3.68" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.68.tgz#c2f7ed599eac5f85ae2ca018cb2df6ae256256cd" - integrity sha512-Mk8f6KCOQ2CNAR4PtWajIjS6XKSSR7ZYDOCf1GXRxhS3qEyQH7V8elWvqWYqHcT4foO60NUmxA/NOM/dQrdO1A== - -"@swc/core-linux-arm64-gnu@1.3.68": - version "1.3.68" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.68.tgz#5f10476668bf68d671d0e23f754fb7192038b6df" - integrity sha512-RhBllggh9t9sIxaRgRcGrVaS7fDk6KsIqR6b9+dwU5OyDr4ZyHWw1ZaH/1/HAebuXYhNBjoNUiRtca6lKRIPgQ== - -"@swc/core-linux-arm64-musl@1.3.68": - version "1.3.68" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.68.tgz#141c575acd84911801da5c93e5ee1b1a90d7e04b" - integrity sha512-8K3zjU+tFgn6yGDEeD343gkKaHU9dhz77NiVkI1VzwRaT/Ag5pwl5eMQ1yStm8koNFzn3zq6rGjHfI5g2yI5Wg== - -"@swc/core-linux-x64-gnu@1.3.68": - version "1.3.68" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.68.tgz#d9d5ceb218bea38d312e04336b37a2b312c29cc3" - integrity sha512-4xAnvsBOyeTL0AB8GWlRKDM/hsysJ5jr5qvdKKI3rZfJgnnxl/xSX6TJKPsJ8gygfUJ3BmfCbmUmEyeDZ3YPvA== - -"@swc/core-linux-x64-musl@1.3.68": - version "1.3.68" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.68.tgz#440174a638d86f0c4d53de632bd6782a5ae61b57" - integrity sha512-RCpaBo1fcpy1EFdjF+I7N4lfzOaHXVV0iMw/ABM+0PD6tp3V/9pxsguaZyeAHyEiUlDA6PZ4TfXv5zfnXEgW4Q== - -"@swc/core-win32-arm64-msvc@1.3.68": - version "1.3.68" - resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.68.tgz#c04936c621e2990ff3e88896cc435c094edd3e29" - integrity sha512-v2WZvXrSslYEpY1nqpItyamL4DyaJinmOkXvM8Bc1LLKU5rGuvmBdjUYg/5Y+o0AUynuiWubpgHNOkBWiCvfqw== - -"@swc/core-win32-ia32-msvc@1.3.68": - version "1.3.68" - resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.68.tgz#d4f75ead1fe56436d7cd3676b7d7b42bfeb952c1" - integrity sha512-HH5NJrIdzkJs+1xxprie0qSCMBeL9yeEhcC1yZTzYv8bwmabOUSdtKIqS55iYP/2hLWn9CTbvKPmLOIhCopW3Q== - -"@swc/core-win32-x64-msvc@1.3.68": - version "1.3.68" - resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.68.tgz#6ac56e87d994deb1917fc1b24285599e12e7a7b9" - integrity sha512-9HZVtLQUgK8r/yXQdwe0VBexbIcrY6+fBROhs7AAPWdewpaUeLkwQEJk6TbYr9CQuHw26FFGg6SjwAiqXF+kgQ== +"@swc/core-darwin-arm64@1.3.81": + version "1.3.81" + resolved "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.81.tgz#deaf1bb5a802f2642d50aebbab805d968abeb176" + integrity sha512-uc8/hpS5KXrMo6IvdDC/tpmns6rYVYOmf+t2Zh4dNf6fsfQ4kQVyJErD0MtJ5pykZWd/kCPD5NF/FyRQ5xfSfw== + +"@swc/core-darwin-x64@1.3.81": + version "1.3.81" + resolved "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.81.tgz#b435826e331f8f58db4bf2e149a667df42030e84" + integrity sha512-GSS4b18cUKyZXY8vgZBOS7ERFXYmHX7O8c2ZbV9YLCz7AAQ71EtlBrO8N7/Gzq2Etea3CVFxPqnKB1wzVWVpUA== + +"@swc/core-linux-arm-gnueabihf@1.3.81": + version "1.3.81" + resolved "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.81.tgz#729758de0f319bbcc3ae33672f19d4ad7c3bb475" + integrity sha512-rwVheKf4RogHSap+QDnnCvqCE1k2x63Lhg6XOr0A2/12vDvHXLzVfqgn2ox69CmD0GfqVQ3g56qAfi693njvUg== + +"@swc/core-linux-arm64-gnu@1.3.81": + version "1.3.81" + resolved "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.81.tgz#c3848ae0c44922441d572252203cc99772ca50f1" + integrity sha512-M+cNSSu8z573sDLbm2llRlp32EeoIymZ1PVQNYFWowDvgAbgpU7Cxqzr4Qb8D/p6bglWDLb32fD1KuPTnrvYkA== + +"@swc/core-linux-arm64-musl@1.3.81": + version "1.3.81" + resolved "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.81.tgz#31729a2250e20d610de160d9e1496dc63bd03fb4" + integrity sha512-6Ncm6c9qOZAK4wwQHXUS3Zo6B5kUmgfN7kv/qZPMbbOK5TRK5TKcM4HmBzSXVVDq0/12vev8x65ICmwPuB5IpA== + +"@swc/core-linux-x64-gnu@1.3.81": + version "1.3.81" + resolved "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.81.tgz#8bf3d212e36f892a88fb1b16682e09d75ea6f818" + integrity sha512-MYPQTW2yh7A+Od0LcNu79SG6BzCW/ktoq8qRGEwxnohRPlW9Fb0zuGbi4+l023O96W2K4V7tIWmmlKvcZAvP9w== + +"@swc/core-linux-x64-musl@1.3.81": + version "1.3.81" + resolved "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.81.tgz#9a08e186d737a052f22147e8b1766798746c65da" + integrity sha512-EYYl/RrkEAMS2fk445V4xJMUXcrbjIJ9B3ACK/tsz1+UcML8Kpg6TvCzlwIdxY8f2oO+FhNC0CALNN31Asgfzg== + +"@swc/core-win32-arm64-msvc@1.3.81": + version "1.3.81" + resolved "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.81.tgz#41b49692296604141d499b8c6caeb28a297ea89c" + integrity sha512-n4tqeuFQXnn2fXVrcy3DVUtDrdFImQYYyY9kJPy4y1MXjeJ1l6/6wx9y+Yowpcnmvpk4JvpKMe4x8r/4rOJjsg== + +"@swc/core-win32-ia32-msvc@1.3.81": + version "1.3.81" + resolved "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.81.tgz#3730a52090887dfa37e6080bad924466392e97bd" + integrity sha512-XjRxp980/bs11z5jZbWP8VazoCp5sESo8+LxxUUsyENcbfAhFtjaGZTuFY4CSV1gohGAaMLnSlg5bUc+4TLz8A== + +"@swc/core-win32-x64-msvc@1.3.81": + version "1.3.81" + resolved "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.81.tgz#15e1670727bd88cbaa702e8863b5e50397de8af4" + integrity sha512-P/+TBWnYna0QIKWtq02MB/ICdsO5rsI5jwOyhzzID9rl7DRlMmXVqBcVmlnJFEJoEkFYJIlORByMNmSv1YkOqw== "@swc/core@^1.3.61": - version "1.3.68" - resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.68.tgz#f1eba0b90f529b0accb7910ef742be88d285e719" - integrity sha512-njGQuJO+Wy06dEayt70cf0c/KI3HGjm4iW9LLViVLBuYNzJ4SSdNfzejludzufu6im+dsDJ0i3QjgWhAIcVHMQ== + version "1.3.81" + resolved "https://registry.npmjs.org/@swc/core/-/core-1.3.81.tgz#f4384794ba13f04e6907cf9a0b83a2d9c01bde82" + integrity sha512-jaKz72JIuPJQXSwSEzF6g3OBIx0IPBfgJHI9hA2jiKnfxJ1EWDd2S33NpU/HfgUCZ822aPmYuHvUhoDj3uauyg== + dependencies: + "@swc/types" "^0.1.4" optionalDependencies: - "@swc/core-darwin-arm64" "1.3.68" - "@swc/core-darwin-x64" "1.3.68" - "@swc/core-linux-arm-gnueabihf" "1.3.68" - "@swc/core-linux-arm64-gnu" "1.3.68" - "@swc/core-linux-arm64-musl" "1.3.68" - "@swc/core-linux-x64-gnu" "1.3.68" - "@swc/core-linux-x64-musl" "1.3.68" - "@swc/core-win32-arm64-msvc" "1.3.68" - "@swc/core-win32-ia32-msvc" "1.3.68" - "@swc/core-win32-x64-msvc" "1.3.68" + "@swc/core-darwin-arm64" "1.3.81" + "@swc/core-darwin-x64" "1.3.81" + "@swc/core-linux-arm-gnueabihf" "1.3.81" + "@swc/core-linux-arm64-gnu" "1.3.81" + "@swc/core-linux-arm64-musl" "1.3.81" + "@swc/core-linux-x64-gnu" "1.3.81" + "@swc/core-linux-x64-musl" "1.3.81" + "@swc/core-win32-arm64-msvc" "1.3.81" + "@swc/core-win32-ia32-msvc" "1.3.81" + "@swc/core-win32-x64-msvc" "1.3.81" + +"@swc/types@^0.1.4": + version "0.1.4" + resolved "https://registry.npmjs.org/@swc/types/-/types-0.1.4.tgz#8d647e111dc97a8e2881bf71c2ee2d011698ff10" + integrity sha512-z/G02d+59gyyUb7KYhKi9jOhicek6QD2oMaotUyG+lUkybpXoV49dY9bj7Ah5Q+y7knK2jU67UTX9FyfGzaxQg== "@types/bn.js@^5.1.1": version "5.1.1" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.1.tgz#b51e1b55920a4ca26e9285ff79936bbdec910682" + resolved "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz#b51e1b55920a4ca26e9285ff79936bbdec910682" integrity sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g== dependencies: "@types/node" "*" "@types/chai-subset@^1.3.3": version "1.3.3" - resolved "https://registry.yarnpkg.com/@types/chai-subset/-/chai-subset-1.3.3.tgz#97893814e92abd2c534de422cb377e0e0bdaac94" + resolved "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.3.tgz#97893814e92abd2c534de422cb377e0e0bdaac94" integrity sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw== dependencies: "@types/chai" "*" "@types/chai@*", "@types/chai@^4.3.5": version "4.3.5" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.5.tgz#ae69bcbb1bebb68c4ac0b11e9d8ed04526b3562b" + resolved "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz#ae69bcbb1bebb68c4ac0b11e9d8ed04526b3562b" integrity sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng== "@types/eslint@^8.4.5": - version "8.44.0" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.0.tgz#55818eabb376e2272f77fbf5c96c43137c3c1e53" - integrity sha512-gsF+c/0XOguWgaOgvFs+xnnRqt9GwgTvIks36WpE6ueeI4KCEHHd8K/CKHqhOqrJKsYH8m27kRzQEvWXAwXUTw== + version "8.44.2" + resolved "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.2.tgz#0d21c505f98a89b8dd4d37fa162b09da6089199a" + integrity sha512-sdPRb9K6iL5XZOmBubg8yiFp5yS/JdUDQsq5e6h95km91MCYMuvp7mh1fjPEYUhvHepKpZOjnEaMBR4PxjWDzg== dependencies: "@types/estree" "*" "@types/json-schema" "*" "@types/estree@*", "@types/estree@^1.0.0": version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" + resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== "@types/json-schema@*", "@types/json-schema@^7.0.12": version "7.0.12" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== "@types/json5@^0.0.29": version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== "@types/lodash.throttle@^4.1.7": version "4.1.7" - resolved "https://registry.yarnpkg.com/@types/lodash.throttle/-/lodash.throttle-4.1.7.tgz#4ef379eb4f778068022310ef166625f420b6ba58" + resolved "https://registry.npmjs.org/@types/lodash.throttle/-/lodash.throttle-4.1.7.tgz#4ef379eb4f778068022310ef166625f420b6ba58" integrity sha512-znwGDpjCHQ4FpLLx19w4OXDqq8+OvREa05H89obtSyXyOFKL3dDjCslsmfBz0T2FU8dmf5Wx1QvogbINiGIu9g== dependencies: "@types/lodash" "*" "@types/lodash@*": - version "4.14.195" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.195.tgz#bafc975b252eb6cea78882ce8a7b6bf22a6de632" - integrity sha512-Hwx9EUgdwf2GLarOjQp5ZH8ZmblzcbTBC2wtQWNKARBSxM9ezRIAUpeDTgoQRAFB0+8CNWXVA9+MaSOzOF3nPg== + version "4.14.197" + resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.197.tgz#e95c5ddcc814ec3e84c891910a01e0c8a378c54b" + integrity sha512-BMVOiWs0uNxHVlHBgzTIqJYmj+PgCo4euloGF+5m4okL3rEYzM2EEv78mw8zWSMM57dM7kVIgJ2QDvwHSoCI5g== "@types/node@*": - version "20.4.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.4.1.tgz#a6033a8718653c50ac4962977e14d0f984d9527d" - integrity sha512-JIzsAvJeA/5iY6Y/OxZbv1lUcc8dNSE77lb2gnBH+/PJ3lFR1Ccvgwl5JWnHAkNHcRsT0TbpVOsiMKZ1F/yyJg== + version "20.5.7" + resolved "https://registry.npmjs.org/@types/node/-/node-20.5.7.tgz#4b8ecac87fbefbc92f431d09c30e176fc0a7c377" + integrity sha512-dP7f3LdZIysZnmvP3ANJYTSwg+wLLl8p7RqniVlV7j+oXSXAbt9h0WIBFmJy5inWZoX9wZN6eXx+YXd9Rh3RBA== "@types/prop-types@*": version "15.7.5" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" + resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== "@types/react-dom@^18.2.7": version "18.2.7" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.7.tgz#67222a08c0a6ae0a0da33c3532348277c70abb63" + resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.7.tgz#67222a08c0a6ae0a0da33c3532348277c70abb63" integrity sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA== dependencies: "@types/react" "*" "@types/react-helmet@^6.1.6": version "6.1.6" - resolved "https://registry.yarnpkg.com/@types/react-helmet/-/react-helmet-6.1.6.tgz#7d1afd8cbf099616894e8240e9ef70e3c6d7506d" + resolved "https://registry.npmjs.org/@types/react-helmet/-/react-helmet-6.1.6.tgz#7d1afd8cbf099616894e8240e9ef70e3c6d7506d" integrity sha512-ZKcoOdW/Tg+kiUbkFCBtvDw0k3nD4HJ/h/B9yWxN4uDO8OkRksWTO+EL+z/Qu3aHTeTll3Ro0Cc/8UhwBCMG5A== dependencies: "@types/react" "*" "@types/react-qr-reader@^2.1.4": version "2.1.4" - resolved "https://registry.yarnpkg.com/@types/react-qr-reader/-/react-qr-reader-2.1.4.tgz#a36f0b83b4402e26c4217d0e8af6b5e2887fc749" + resolved "https://registry.npmjs.org/@types/react-qr-reader/-/react-qr-reader-2.1.4.tgz#a36f0b83b4402e26c4217d0e8af6b5e2887fc749" integrity sha512-2Hq+UNfsO2TVqxbFlOE0gGhQr/+C4wdgNDaaLV8K93mK/Z7Vw2D3YbMlnJAaSzM45fUtYJs0vc48wV04+OEkiA== dependencies: "@types/react" "*" "@types/react-scroll@^1.8.6": version "1.8.7" - resolved "https://registry.yarnpkg.com/@types/react-scroll/-/react-scroll-1.8.7.tgz#7241c6ccd47839d79227a23a5184d727245c7324" + resolved "https://registry.npmjs.org/@types/react-scroll/-/react-scroll-1.8.7.tgz#7241c6ccd47839d79227a23a5184d727245c7324" integrity sha512-BB8g+hQL7OtBPWg/NcES6p5u6vduZonGl1BxrsGUwcefE53pfI0pFDd1lRFndgEUE6whYdFfhD+j0sZZT/6brQ== dependencies: "@types/react" "*" "@types/react@*", "@types/react@^18.2.21": version "18.2.21" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.21.tgz#774c37fd01b522d0b91aed04811b58e4e0514ed9" + resolved "https://registry.npmjs.org/@types/react/-/react-18.2.21.tgz#774c37fd01b522d0b91aed04811b58e4e0514ed9" integrity sha512-neFKG/sBAwGxHgXiIxnbm3/AAVQ/cMRS93hvBpg8xYRbeQSPVABp9U2bRnPf0iI4+Ucdv3plSxKK+3CW2ENJxA== dependencies: "@types/prop-types" "*" @@ -2226,13 +2202,13 @@ "@types/scheduler@*": version "0.16.3" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" + resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== "@types/semver@^7.5.0": - version "7.5.0" - resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" - integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== + version "7.5.1" + resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.1.tgz#0480eeb7221eb9bc398ad7432c9d7e14b1a5a367" + integrity sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg== "@types/stylis@^4.0.2": version "4.2.0" @@ -2241,12 +2217,12 @@ "@types/trusted-types@^2.0.2": version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.3.tgz#a136f83b0758698df454e328759dbd3d44555311" + resolved "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz#a136f83b0758698df454e328759dbd3d44555311" integrity sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g== "@typescript-eslint/eslint-plugin@^6.5.0": version "6.5.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.5.0.tgz#5cee33edf0d45d5ec773e3b3111206b098ac8599" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.5.0.tgz#5cee33edf0d45d5ec773e3b3111206b098ac8599" integrity sha512-2pktILyjvMaScU6iK3925uvGU87E+N9rh372uGZgiMYwafaw9SXq86U04XPq3UH6tzRvNgBsub6x2DacHc33lw== dependencies: "@eslint-community/regexpp" "^4.5.1" @@ -2263,7 +2239,7 @@ "@typescript-eslint/parser@^6.5.0": version "6.5.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.5.0.tgz#3d6ed231c5e307c5f5f4a0d86893ec01e92b8c77" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.5.0.tgz#3d6ed231c5e307c5f5f4a0d86893ec01e92b8c77" integrity sha512-LMAVtR5GN8nY0G0BadkG0XIe4AcNMeyEy3DyhKGAh9k4pLSMBO7rF29JvDBpZGCmp5Pgz5RLHP6eCpSYZJQDuQ== dependencies: "@typescript-eslint/scope-manager" "6.5.0" @@ -2274,7 +2250,7 @@ "@typescript-eslint/scope-manager@6.5.0": version "6.5.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.5.0.tgz#f2cb20895aaad41b3ad27cc3a338ce8598f261c5" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.5.0.tgz#f2cb20895aaad41b3ad27cc3a338ce8598f261c5" integrity sha512-A8hZ7OlxURricpycp5kdPTH3XnjG85UpJS6Fn4VzeoH4T388gQJ/PGP4ole5NfKt4WDVhmLaQ/dBLNDC4Xl/Kw== dependencies: "@typescript-eslint/types" "6.5.0" @@ -2282,7 +2258,7 @@ "@typescript-eslint/type-utils@6.5.0": version "6.5.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.5.0.tgz#6d246c93739282bc0d2e623f28d0dec6cfcc38d7" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.5.0.tgz#6d246c93739282bc0d2e623f28d0dec6cfcc38d7" integrity sha512-f7OcZOkRivtujIBQ4yrJNIuwyCQO1OjocVqntl9dgSIZAdKqicj3xFDqDOzHDlGCZX990LqhLQXWRnQvsapq8A== dependencies: "@typescript-eslint/typescript-estree" "6.5.0" @@ -2292,12 +2268,12 @@ "@typescript-eslint/types@6.5.0": version "6.5.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.5.0.tgz#f4e55cfd99ac5346ea772770bf212a3e689a8f04" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.5.0.tgz#f4e55cfd99ac5346ea772770bf212a3e689a8f04" integrity sha512-eqLLOEF5/lU8jW3Bw+8auf4lZSbbljHR2saKnYqON12G/WsJrGeeDHWuQePoEf9ro22+JkbPfWQwKEC5WwLQ3w== "@typescript-eslint/typescript-estree@6.5.0": version "6.5.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.5.0.tgz#1cef6bc822585e9ef89d88834bc902d911d747ed" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.5.0.tgz#1cef6bc822585e9ef89d88834bc902d911d747ed" integrity sha512-q0rGwSe9e5Kk/XzliB9h2LBc9tmXX25G0833r7kffbl5437FPWb2tbpIV9wAATebC/018pGa9fwPDuvGN+LxWQ== dependencies: "@typescript-eslint/types" "6.5.0" @@ -2310,7 +2286,7 @@ "@typescript-eslint/utils@6.5.0": version "6.5.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.5.0.tgz#6668bee4f7f24978b11df8a2ea42d56eebc4662c" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.5.0.tgz#6668bee4f7f24978b11df8a2ea42d56eebc4662c" integrity sha512-9nqtjkNykFzeVtt9Pj6lyR9WEdd8npPhhIPM992FWVkZuS6tmxHfGVnlUcjpUP2hv8r4w35nT33mlxd+Be1ACQ== dependencies: "@eslint-community/eslint-utils" "^4.4.0" @@ -2323,7 +2299,7 @@ "@typescript-eslint/visitor-keys@6.5.0": version "6.5.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.5.0.tgz#1a6f474a0170a447b76f0699ce6700110fd11436" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.5.0.tgz#1a6f474a0170a447b76f0699ce6700110fd11436" integrity sha512-yCB/2wkbv3hPsh02ZS8dFQnij9VVQXJMN/gbQsaaY+zxALkZnxa/wagvLEFsAWMPv7d7lxQmNsIzGU1w/T/WyA== dependencies: "@typescript-eslint/types" "6.5.0" @@ -2331,14 +2307,14 @@ "@vitejs/plugin-react-swc@^3.3.2": version "3.3.2" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-react-swc/-/plugin-react-swc-3.3.2.tgz#34a82c1728066f48a86dfecb2f15df60f89207fb" + resolved "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.3.2.tgz#34a82c1728066f48a86dfecb2f15df60f89207fb" integrity sha512-VJFWY5sfoZerQRvJrh518h3AcQt6f/yTuWn4/TRB+dqmYU0NX1qz7qM5Wfd+gOQqUzQW4gxKqKN3KpE/P3+zrA== dependencies: "@swc/core" "^1.3.61" "@vitest/expect@0.34.3": version "0.34.3" - resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-0.34.3.tgz#576e1fd6a3a8b8b7a79a06477f3d450a77d67852" + resolved "https://registry.npmjs.org/@vitest/expect/-/expect-0.34.3.tgz#576e1fd6a3a8b8b7a79a06477f3d450a77d67852" integrity sha512-F8MTXZUYRBVsYL1uoIft1HHWhwDbSzwAU9Zgh8S6WFC3YgVb4AnFV2GXO3P5Em8FjEYaZtTnQYoNwwBrlOMXgg== dependencies: "@vitest/spy" "0.34.3" @@ -2347,7 +2323,7 @@ "@vitest/runner@0.34.3": version "0.34.3" - resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-0.34.3.tgz#ce09b777d133bbcf843e1a67f4a743365764e097" + resolved "https://registry.npmjs.org/@vitest/runner/-/runner-0.34.3.tgz#ce09b777d133bbcf843e1a67f4a743365764e097" integrity sha512-lYNq7N3vR57VMKMPLVvmJoiN4bqwzZ1euTW+XXYH5kzr3W/+xQG3b41xJn9ChJ3AhYOSoweu974S1V3qDcFESA== dependencies: "@vitest/utils" "0.34.3" @@ -2356,7 +2332,7 @@ "@vitest/snapshot@0.34.3": version "0.34.3" - resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-0.34.3.tgz#cb4767aa44711a1072bd2e06204b659275c4f0f2" + resolved "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-0.34.3.tgz#cb4767aa44711a1072bd2e06204b659275c4f0f2" integrity sha512-QyPaE15DQwbnIBp/yNJ8lbvXTZxS00kRly0kfFgAD5EYmCbYcA+1EEyRalc93M0gosL/xHeg3lKAClIXYpmUiQ== dependencies: magic-string "^0.30.1" @@ -2365,14 +2341,14 @@ "@vitest/spy@0.34.3": version "0.34.3" - resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-0.34.3.tgz#d4cf25e6ca9230991a0223ecd4ec2df30f0784ff" + resolved "https://registry.npmjs.org/@vitest/spy/-/spy-0.34.3.tgz#d4cf25e6ca9230991a0223ecd4ec2df30f0784ff" integrity sha512-N1V0RFQ6AI7CPgzBq9kzjRdPIgThC340DGjdKdPSE8r86aUSmeliTUgkTqLSgtEwWWsGfBQ+UetZWhK0BgJmkQ== dependencies: tinyspy "^2.1.1" "@vitest/utils@0.34.3": version "0.34.3" - resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-0.34.3.tgz#6e243189a358b736b9fc0216e6b6979bc857e897" + resolved "https://registry.npmjs.org/@vitest/utils/-/utils-0.34.3.tgz#6e243189a358b736b9fc0216e6b6979bc857e897" integrity sha512-kiSnzLG6m/tiT0XEl4U2H8JDBjFtwVlaE8I3QfGiMFR0QvnRDfYfdP3YvTBWM/6iJDAyaPY6yVQiCTUc7ZzTHA== dependencies: diff-sequences "^29.4.3" @@ -2381,7 +2357,7 @@ "@zondax/ledger-substrate@^0.41.1": version "0.41.1" - resolved "https://registry.yarnpkg.com/@zondax/ledger-substrate/-/ledger-substrate-0.41.1.tgz#6b79aceb61c042263ab1751a4cf28bb73e7cf774" + resolved "https://registry.npmjs.org/@zondax/ledger-substrate/-/ledger-substrate-0.41.1.tgz#6b79aceb61c042263ab1751a4cf28bb73e7cf774" integrity sha512-EcHM0HpCElkd8jI9i2ei/TenIG5rvKFynjDE1i+gCfSc5CWgdWxhcpyokK3CAiR/pm4qcLpNSA9ZZYo9wBN1uA== dependencies: "@ledgerhq/hw-transport" "^6.27.1" @@ -2394,22 +2370,22 @@ acorn-jsx@^5.3.2: version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn-walk@^8.2.0: version "8.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== -acorn@^8.8.2, acorn@^8.9.0: +acorn@^8.10.0, acorn@^8.9.0: version "8.10.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== ajv@^6.12.4: version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" @@ -2419,38 +2395,38 @@ ajv@^6.12.4: ansi-escapes@^4.3.0: version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: type-fest "^0.21.3" ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" ansi-styles@^5.0.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== anymatch@~3.1.2: version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" @@ -2458,19 +2434,19 @@ anymatch@~3.1.2: argparse@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== aria-query@^5.1.3: version "5.3.0" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" + resolved "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== dependencies: dequal "^2.0.3" array-buffer-byte-length@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + resolved "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== dependencies: call-bind "^1.0.2" @@ -2478,7 +2454,7 @@ array-buffer-byte-length@^1.0.0: array-includes@^3.1.6: version "3.1.6" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" + resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== dependencies: call-bind "^1.0.2" @@ -2489,35 +2465,35 @@ array-includes@^3.1.6: array-union@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng== dependencies: array-uniq "^1.0.1" array-union@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== array-uniq@^1.0.1: version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== array.prototype.findlastindex@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.2.tgz#bc229aef98f6bd0533a2bc61ff95209875526c9b" - integrity sha512-tb5thFFlUcp7NdNF6/MpDk/1r/4awWG1FIz3YqDf+/zJSTezBb+/5WViH41obXULHVpDzoiCLpJ/ZO9YbJMsdw== + version "1.2.3" + resolved "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" + integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" - get-intrinsic "^1.1.3" + get-intrinsic "^1.2.1" array.prototype.flat@^1.3.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" + resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== dependencies: call-bind "^1.0.2" @@ -2527,7 +2503,7 @@ array.prototype.flat@^1.3.1: array.prototype.flatmap@^1.3.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" + resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== dependencies: call-bind "^1.0.2" @@ -2537,7 +2513,7 @@ array.prototype.flatmap@^1.3.1: array.prototype.tosorted@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz#ccf44738aa2b5ac56578ffda97c03fd3e23dd532" + resolved "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz#ccf44738aa2b5ac56578ffda97c03fd3e23dd532" integrity sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ== dependencies: call-bind "^1.0.2" @@ -2548,7 +2524,7 @@ array.prototype.tosorted@^1.1.1: arraybuffer.prototype.slice@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz#9b5ea3868a6eebc30273da577eb888381c0044bb" + resolved "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz#9b5ea3868a6eebc30273da577eb888381c0044bb" integrity sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw== dependencies: array-buffer-byte-length "^1.0.0" @@ -2560,107 +2536,107 @@ arraybuffer.prototype.slice@^1.0.1: assertion-error@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== ast-types-flow@^0.0.7: version "0.0.7" - resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" + resolved "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag== async@^3.2.4: version "3.2.4" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + resolved "https://registry.npmjs.org/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== asynciterator.prototype@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz#8c5df0514936cdd133604dfcc9d3fb93f09b2b62" + resolved "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz#8c5df0514936cdd133604dfcc9d3fb93f09b2b62" integrity sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg== dependencies: has-symbols "^1.0.3" available-typed-arrays@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== axe-core@^4.6.2: version "4.7.2" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.2.tgz#040a7342b20765cb18bb50b628394c21bccc17a0" + resolved "https://registry.npmjs.org/axe-core/-/axe-core-4.7.2.tgz#040a7342b20765cb18bb50b628394c21bccc17a0" integrity sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g== axobject-query@^3.1.1: version "3.2.1" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.2.1.tgz#39c378a6e3b06ca679f29138151e45b2b32da62a" + resolved "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz#39c378a6e3b06ca679f29138151e45b2b32da62a" integrity sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg== dependencies: dequal "^2.0.3" -babel-plugin-polyfill-corejs2@^0.4.4: - version "0.4.4" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.4.tgz#9f9a0e1cd9d645cc246a5e094db5c3aa913ccd2b" - integrity sha512-9WeK9snM1BfxB38goUEv2FLnA6ja07UMfazFHzCXUb3NyDZAwfXvQiURQ6guTTMeHcOsdknULm1PDhs4uWtKyA== +babel-plugin-polyfill-corejs2@^0.4.5: + version "0.4.5" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz#8097b4cb4af5b64a1d11332b6fb72ef5e64a054c" + integrity sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg== dependencies: "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.4.1" - "@nicolo-ribaudo/semver-v6" "^6.3.3" + "@babel/helper-define-polyfill-provider" "^0.4.2" + semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.8.2: - version "0.8.2" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.2.tgz#d406c5738d298cd9c66f64a94cf8d5904ce4cc5e" - integrity sha512-Cid+Jv1BrY9ReW9lIfNlNpsI53N+FN7gE+f73zLAUbr9C52W4gKLWSByx47pfDJsEysojKArqOtOKZSVIIUTuQ== +babel-plugin-polyfill-corejs3@^0.8.3: + version "0.8.3" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz#b4f719d0ad9bb8e0c23e3e630c0c8ec6dd7a1c52" + integrity sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.1" + "@babel/helper-define-polyfill-provider" "^0.4.2" core-js-compat "^3.31.0" -babel-plugin-polyfill-regenerator@^0.5.1: - version "0.5.1" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.1.tgz#ace7a5eced6dff7d5060c335c52064778216afd3" - integrity sha512-L8OyySuI6OSQ5hFy9O+7zFjyr4WhAfRjLIOkhQGYl+emwJkd/S4XXT1JpfrgR1jrQ1NcGiOh+yAdGlF8pnC3Jw== +babel-plugin-polyfill-regenerator@^0.5.2: + version "0.5.2" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz#80d0f3e1098c080c8b5a65f41e9427af692dc326" + integrity sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.1" + "@babel/helper-define-polyfill-provider" "^0.4.2" balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== base-x@^3.0.2: version "3.0.9" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" + resolved "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== dependencies: safe-buffer "^5.0.1" base-x@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-4.0.0.tgz#d0e3b7753450c73f8ad2389b5c018a4af7b2224a" + resolved "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz#d0e3b7753450c73f8ad2389b5c018a4af7b2224a" integrity sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw== base64-js@^1.3.1: version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== big-integer@^1.6.44: version "1.6.51" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" + resolved "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== bignumber.js@^9.1.2: version "9.1.2" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" + resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== binary-extensions@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -"bip32-ed25519@https://github.com/Zondax/bip32-ed25519": +"bip32-ed25519@git+https://github.com/Zondax/bip32-ed25519.git": version "0.0.4" - resolved "https://github.com/Zondax/bip32-ed25519#0949df01b5c93885339bc28116690292088f6134" + resolved "git+https://github.com/Zondax/bip32-ed25519.git#0949df01b5c93885339bc28116690292088f6134" dependencies: bn.js "^5.1.1" elliptic "^6.4.1" @@ -2668,7 +2644,7 @@ binary-extensions@^2.0.0: bip32@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/bip32/-/bip32-4.0.0.tgz#7fac3c05072188d2d355a4d6596b37188f06aa2f" + resolved "https://registry.npmjs.org/bip32/-/bip32-4.0.0.tgz#7fac3c05072188d2d355a4d6596b37188f06aa2f" integrity sha512-aOGy88DDlVUhspIXJN+dVEtclhIsfAUppD43V0j40cPTld3pv/0X/MlrZSZ6jowIaQQzFwP8M6rFU2z2mVYjDQ== dependencies: "@noble/hashes" "^1.2.0" @@ -2678,36 +2654,36 @@ bip32@^4.0.0: bip39@^3.0.4: version "3.1.0" - resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.1.0.tgz#c55a418deaf48826a6ceb34ac55b3ee1577e18a3" + resolved "https://registry.npmjs.org/bip39/-/bip39-3.1.0.tgz#c55a418deaf48826a6ceb34ac55b3ee1577e18a3" integrity sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A== dependencies: "@noble/hashes" "^1.2.0" blakejs@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" + resolved "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== bn.js@^4.11.9: version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== bn.js@^5.1.1, bn.js@^5.2.1: version "5.2.1" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== bplist-parser@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" + resolved "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" integrity sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw== dependencies: big-integer "^1.6.44" brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" @@ -2715,43 +2691,43 @@ brace-expansion@^1.1.7: braces@^3.0.2, braces@~3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" brorand@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== -browserslist@^4.21.9: - version "4.21.9" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.9.tgz#e11bdd3c313d7e2a9e87e8b4b0c7872b13897635" - integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg== +browserslist@^4.21.10, browserslist@^4.21.9: + version "4.21.10" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0" + integrity sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ== dependencies: - caniuse-lite "^1.0.30001503" - electron-to-chromium "^1.4.431" - node-releases "^2.0.12" + caniuse-lite "^1.0.30001517" + electron-to-chromium "^1.4.477" + node-releases "^2.0.13" update-browserslist-db "^1.0.11" bs58@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" + resolved "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== dependencies: base-x "^3.0.2" bs58@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-5.0.0.tgz#865575b4d13c09ea2a84622df6c8cbeb54ffc279" + resolved "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz#865575b4d13c09ea2a84622df6c8cbeb54ffc279" integrity sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ== dependencies: base-x "^4.0.0" bs58check@<3.0.0: version "2.1.2" - resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" + resolved "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== dependencies: bs58 "^4.0.0" @@ -2760,7 +2736,7 @@ bs58check@<3.0.0: buffer@^6.0.3: version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== dependencies: base64-js "^1.3.1" @@ -2768,19 +2744,19 @@ buffer@^6.0.3: bundle-name@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a" + resolved "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a" integrity sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw== dependencies: run-applescript "^5.0.0" cac@^6.7.14: version "6.7.14" - resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" + resolved "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== dependencies: function-bind "^1.1.1" @@ -2788,28 +2764,28 @@ call-bind@^1.0.0, call-bind@^1.0.2: callsites@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camelcase@^6.2.0: version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== camelize@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.1.tgz#89b7e16884056331a35d6b5ad064332c91daa6c3" + resolved "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz#89b7e16884056331a35d6b5ad064332c91daa6c3" integrity sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ== -caniuse-lite@^1.0.30001503: - version "1.0.30001514" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001514.tgz#e2a7e184a23affc9367b7c8d734e7ec4628c1309" - integrity sha512-ENcIpYBmwAAOm/V2cXgM7rZUrKKaqisZl4ZAI520FIkqGXUxJjmaIssbRW5HVVR5tyV6ygTLIm15aU8LUmQSaQ== +caniuse-lite@^1.0.30001517: + version "1.0.30001524" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001524.tgz#1e14bce4f43c41a7deaeb5ebfe86664fe8dadb80" + integrity sha512-Jj917pJtYg9HSJBF95HVX3Cdr89JUyLT4IZ8SvM5aDRni95swKgYi3TgYLH5hnGfPE/U1dg6IfZ50UsIlLkwSA== chai@^4.3.7: - version "4.3.7" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.7.tgz#ec63f6df01829088e8bf55fca839bcd464a8ec51" - integrity sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A== + version "4.3.8" + resolved "https://registry.npmjs.org/chai/-/chai-4.3.8.tgz#40c59718ad6928da6629c70496fe990b2bb5b17c" + integrity sha512-vX4YvVVtxlfSZ2VecZgFUTU5qPCYsobVI2O9FmwEXBhDigYGQA6jRXCycIs1yJnnWbZ6/+a2zNIF5DfVCcJBFQ== dependencies: assertion-error "^1.1.0" check-error "^1.0.2" @@ -2819,9 +2795,9 @@ chai@^4.3.7: pathval "^1.1.1" type-detect "^4.0.5" -chalk@^2.0.0: +chalk@^2.4.2: version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" @@ -2830,7 +2806,7 @@ chalk@^2.0.0: chalk@^4.0.0, chalk@^4.1.1: version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" @@ -2838,19 +2814,19 @@ chalk@^4.0.0, chalk@^4.1.1: chart.js@^4.4.0: version "4.4.0" - resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-4.4.0.tgz#df843fdd9ec6bd88d7f07e2b95348d221bd2698c" + resolved "https://registry.npmjs.org/chart.js/-/chart.js-4.4.0.tgz#df843fdd9ec6bd88d7f07e2b95348d221bd2698c" integrity sha512-vQEj6d+z0dcsKLlQvbKIMYFHd3t8W/7L2vfJIbYcfyPcRx92CsHqECpueN8qVGNlKyDcr5wBrYAYKnfu/9Q1hQ== dependencies: "@kurkle/color" "^0.3.0" check-error@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + resolved "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== "chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.0, chokidar@^3.5.1: version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: anymatch "~3.1.2" @@ -2865,7 +2841,7 @@ check-error@^1.0.2: cipher-base@^1.0.1: version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== dependencies: inherits "^2.0.1" @@ -2873,12 +2849,12 @@ cipher-base@^1.0.1: classnames@^2.2.5: version "2.3.2" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924" + resolved "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924" integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw== cliui@^8.0.1: version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== dependencies: string-width "^4.2.0" @@ -2887,31 +2863,31 @@ cliui@^8.0.1: color-convert@^1.9.0: version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" color-name@1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@~1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== commander@^11.0.0: version "11.0.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-11.0.0.tgz#43e19c25dbedc8256203538e8d7e9346877a6f67" + resolved "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz#43e19c25dbedc8256203538e8d7e9346877a6f67" integrity sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ== commander@^4.0.1: @@ -2921,39 +2897,39 @@ commander@^4.0.1: commander@^8.0.0: version "8.3.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== commondir@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== concat-map@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== confusing-browser-globals@^1.0.10: version "1.0.11" - resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" + resolved "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA== convert-source-map@^1.1.0, convert-source-map@^1.7.0: version "1.9.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== core-js-compat@^3.31.0: - version "3.31.1" - resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.31.1.tgz#5084ad1a46858df50ff89ace152441a63ba7aae0" - integrity sha512-wIDWd2s5/5aJSdpOJHfSibxNODxoGoWOBHt8JSPB41NOE94M7kuTPZCYLOlTtuoXTsBPKobpJ6T+y0SSy5L9SA== + version "3.32.1" + resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.1.tgz#55f9a7d297c0761a8eb1d31b593e0f5b6ffae964" + integrity sha512-GSvKDv4wE0bPnQtjklV101juQ85g6H3rm5PDP20mqlS5j0kXF3pP97YvAu5hl+uFHqMictp3b2VxOHljWMAtuA== dependencies: - browserslist "^4.21.9" + browserslist "^4.21.10" cosmiconfig@^8.1.3: version "8.2.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.2.0.tgz#f7d17c56a590856cd1e7cee98734dca272b0d8fd" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz#f7d17c56a590856cd1e7cee98734dca272b0d8fd" integrity sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ== dependencies: import-fresh "^3.2.1" @@ -2963,7 +2939,7 @@ cosmiconfig@^8.1.3: create-hash@^1.1.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== dependencies: cipher-base "^1.0.1" @@ -2974,7 +2950,7 @@ create-hash@^1.1.0: cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: path-key "^3.1.0" @@ -2983,7 +2959,7 @@ cross-spawn@^7.0.2, cross-spawn@^7.0.3: css-color-keywords@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" + resolved "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" integrity sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg== css-to-react-native@^3.2.0: @@ -2997,55 +2973,55 @@ css-to-react-native@^3.2.0: csstype@^3.0.2, csstype@^3.1.2: version "3.1.2" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" + resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== damerau-levenshtein@^1.0.8: version "1.0.8" - resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" + resolved "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== data-uri-to-buffer@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" + resolved "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== date-fns@^2.29.3: version "2.30.0" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" + resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== dependencies: "@babel/runtime" "^7.21.0" debug@^3.2.7: version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" deep-eql@^4.1.2: version "4.1.3" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" + resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== dependencies: type-detect "^4.0.0" deep-is@^0.1.3: version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== default-browser-id@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-3.0.0.tgz#bee7bbbef1f4e75d31f98f4d3f1556a14cea790c" + resolved "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz#bee7bbbef1f4e75d31f98f4d3f1556a14cea790c" integrity sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA== dependencies: bplist-parser "^0.2.0" @@ -3053,7 +3029,7 @@ default-browser-id@^3.0.0: default-browser@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-4.0.0.tgz#53c9894f8810bf86696de117a6ce9085a3cbc7da" + resolved "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz#53c9894f8810bf86696de117a6ce9085a3cbc7da" integrity sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA== dependencies: bundle-name "^3.0.0" @@ -3063,17 +3039,17 @@ default-browser@^4.0.0: define-lazy-prop@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== define-lazy-prop@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" + resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== dependencies: has-property-descriptors "^1.0.0" @@ -3081,43 +3057,43 @@ define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: dequal@^2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== diff-sequences@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.3.tgz#9314bc1fabe09267ffeca9cbafc457d8499a13f2" - integrity sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA== + version "29.6.3" + resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" + integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== dir-glob@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== dependencies: path-type "^4.0.0" doctrine@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== dependencies: esutils "^2.0.2" doctrine@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== dependencies: esutils "^2.0.2" -electron-to-chromium@^1.4.431: - version "1.4.454" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.454.tgz#774dc7cb5e58576d0125939ec34a4182f3ccc87d" - integrity sha512-pmf1rbAStw8UEQ0sr2cdJtWl48ZMuPD9Sto8HVQOq9vx9j2WgDEN6lYoaqFvqEHYOmGA9oRGn7LqWI9ta0YugQ== +electron-to-chromium@^1.4.477: + version "1.4.506" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.506.tgz#59f64a211102db4c3ebae2f39cc0e8e1b12b3a07" + integrity sha512-xxGct4GPAKSRlrLBtJxJFYy74W11zX6PO9GyHgl/U+2s3Dp0ZEwAklDfNHXOWcvH7zWMpsmgbR0ggEuaYAVvHA== elliptic@^6.4.1: version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== dependencies: bn.js "^4.11.9" @@ -3130,22 +3106,22 @@ elliptic@^6.4.1: email-addresses@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/email-addresses/-/email-addresses-5.0.0.tgz#7ae9e7f58eef7d5e3e2c2c2d3ea49b78dc854fa6" + resolved "https://registry.npmjs.org/email-addresses/-/email-addresses-5.0.0.tgz#7ae9e7f58eef7d5e3e2c2c2d3ea49b78dc854fa6" integrity sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw== emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== emoji-regex@^9.2.2: version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== enhanced-resolve@^5.12.0: version "5.15.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" + resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== dependencies: graceful-fs "^4.2.4" @@ -3153,59 +3129,19 @@ enhanced-resolve@^5.12.0: entities@^4.4.0: version "4.5.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== error-ex@^1.3.1: version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" -es-abstract@^1.19.0, es-abstract@^1.20.4: - version "1.21.2" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" - integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== - dependencies: - array-buffer-byte-length "^1.0.0" - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-set-tostringtag "^2.0.1" - es-to-primitive "^1.2.1" - function.prototype.name "^1.1.5" - get-intrinsic "^1.2.0" - get-symbol-description "^1.0.0" - globalthis "^1.0.3" - gopd "^1.0.1" - has "^1.0.3" - has-property-descriptors "^1.0.0" - has-proto "^1.0.1" - has-symbols "^1.0.3" - internal-slot "^1.0.5" - is-array-buffer "^3.0.2" - is-callable "^1.2.7" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-typed-array "^1.1.10" - is-weakref "^1.0.2" - object-inspect "^1.12.3" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.4.3" - safe-regex-test "^1.0.0" - string.prototype.trim "^1.2.7" - string.prototype.trimend "^1.0.6" - string.prototype.trimstart "^1.0.6" - typed-array-length "^1.0.4" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.9" - -es-abstract@^1.21.2, es-abstract@^1.21.3: +es-abstract@^1.20.4, es-abstract@^1.22.1: version "1.22.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.1.tgz#8b4e5fc5cefd7f1660f0f8e1a52900dfbc9d9ccc" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz#8b4e5fc5cefd7f1660f0f8e1a52900dfbc9d9ccc" integrity sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw== dependencies: array-buffer-byte-length "^1.0.0" @@ -3249,14 +3185,14 @@ es-abstract@^1.21.2, es-abstract@^1.21.3: which-typed-array "^1.1.10" es-iterator-helpers@^1.0.12: - version "1.0.13" - resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.13.tgz#72101046ffc19baf9996adc70e6177a26e6e8084" - integrity sha512-LK3VGwzvaPWobO8xzXXGRUOGw8Dcjyfk62CsY/wfHN75CwsJPbuypOYJxK6g5RyEL8YDjIWcl6jgd8foO6mmrA== + version "1.0.14" + resolved "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.14.tgz#19cd7903697d97e21198f3293b55e8985791c365" + integrity sha512-JgtVnwiuoRuzLvqelrvN3Xu7H9bu2ap/kQ2CrM62iidP8SKuD99rWU3CJy++s7IVL2qb/AjXPGR/E7i9ngd/Cw== dependencies: asynciterator.prototype "^1.0.0" call-bind "^1.0.2" define-properties "^1.2.0" - es-abstract "^1.21.3" + es-abstract "^1.22.1" es-set-tostringtag "^2.0.1" function-bind "^1.1.1" get-intrinsic "^1.2.1" @@ -3270,7 +3206,7 @@ es-iterator-helpers@^1.0.12: es-set-tostringtag@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" + resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== dependencies: get-intrinsic "^1.1.3" @@ -3279,14 +3215,14 @@ es-set-tostringtag@^2.0.1: es-shim-unscopables@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" + resolved "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== dependencies: has "^1.0.3" es-to-primitive@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== dependencies: is-callable "^1.1.4" @@ -3294,51 +3230,51 @@ es-to-primitive@^1.2.1: is-symbol "^1.0.2" esbuild@^0.18.10: - version "0.18.11" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.11.tgz#cbf94dc3359d57f600a0dbf281df9b1d1b4a156e" - integrity sha512-i8u6mQF0JKJUlGR3OdFLKldJQMMs8OqM9Cc3UCi9XXziJ9WERM5bfkHaEAy0YAvPRMgqSW55W7xYn84XtEFTtA== + version "0.18.20" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6" + integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== optionalDependencies: - "@esbuild/android-arm" "0.18.11" - "@esbuild/android-arm64" "0.18.11" - "@esbuild/android-x64" "0.18.11" - "@esbuild/darwin-arm64" "0.18.11" - "@esbuild/darwin-x64" "0.18.11" - "@esbuild/freebsd-arm64" "0.18.11" - "@esbuild/freebsd-x64" "0.18.11" - "@esbuild/linux-arm" "0.18.11" - "@esbuild/linux-arm64" "0.18.11" - "@esbuild/linux-ia32" "0.18.11" - "@esbuild/linux-loong64" "0.18.11" - "@esbuild/linux-mips64el" "0.18.11" - "@esbuild/linux-ppc64" "0.18.11" - "@esbuild/linux-riscv64" "0.18.11" - "@esbuild/linux-s390x" "0.18.11" - "@esbuild/linux-x64" "0.18.11" - "@esbuild/netbsd-x64" "0.18.11" - "@esbuild/openbsd-x64" "0.18.11" - "@esbuild/sunos-x64" "0.18.11" - "@esbuild/win32-arm64" "0.18.11" - "@esbuild/win32-ia32" "0.18.11" - "@esbuild/win32-x64" "0.18.11" + "@esbuild/android-arm" "0.18.20" + "@esbuild/android-arm64" "0.18.20" + "@esbuild/android-x64" "0.18.20" + "@esbuild/darwin-arm64" "0.18.20" + "@esbuild/darwin-x64" "0.18.20" + "@esbuild/freebsd-arm64" "0.18.20" + "@esbuild/freebsd-x64" "0.18.20" + "@esbuild/linux-arm" "0.18.20" + "@esbuild/linux-arm64" "0.18.20" + "@esbuild/linux-ia32" "0.18.20" + "@esbuild/linux-loong64" "0.18.20" + "@esbuild/linux-mips64el" "0.18.20" + "@esbuild/linux-ppc64" "0.18.20" + "@esbuild/linux-riscv64" "0.18.20" + "@esbuild/linux-s390x" "0.18.20" + "@esbuild/linux-x64" "0.18.20" + "@esbuild/netbsd-x64" "0.18.20" + "@esbuild/openbsd-x64" "0.18.20" + "@esbuild/sunos-x64" "0.18.20" + "@esbuild/win32-arm64" "0.18.20" + "@esbuild/win32-ia32" "0.18.20" + "@esbuild/win32-x64" "0.18.20" escalade@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== escape-string-regexp@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== eslint-config-airbnb-base@^15.0.0: version "15.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz#6b09add90ac79c2f8d723a2580e07f3925afd236" + resolved "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz#6b09add90ac79c2f8d723a2580e07f3925afd236" integrity sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig== dependencies: confusing-browser-globals "^1.0.10" @@ -3348,14 +3284,14 @@ eslint-config-airbnb-base@^15.0.0: eslint-config-airbnb-typescript@^17.1.0: version "17.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-17.1.0.tgz#fda960eee4a510f092a9a1c139035ac588937ddc" + resolved "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-17.1.0.tgz#fda960eee4a510f092a9a1c139035ac588937ddc" integrity sha512-GPxI5URre6dDpJ0CtcthSZVBAfI+Uw7un5OYNVxP2EYi3H81Jw701yFP7AU+/vCE7xBtFmjge7kfhhk4+RAiig== dependencies: eslint-config-airbnb-base "^15.0.0" eslint-config-airbnb@^19.0.4: version "19.0.4" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz#84d4c3490ad70a0ffa571138ebcdea6ab085fdc3" + resolved "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz#84d4c3490ad70a0ffa571138ebcdea6ab085fdc3" integrity sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew== dependencies: eslint-config-airbnb-base "^15.0.0" @@ -3364,21 +3300,21 @@ eslint-config-airbnb@^19.0.4: eslint-config-prettier@^9.0.0: version "9.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz#eb25485946dd0c66cd216a46232dc05451518d1f" + resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz#eb25485946dd0c66cd216a46232dc05451518d1f" integrity sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw== eslint-import-resolver-node@^0.3.7: - version "0.3.7" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" - integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== + version "0.3.9" + resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" + integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== dependencies: debug "^3.2.7" - is-core-module "^2.11.0" - resolve "^1.22.1" + is-core-module "^2.13.0" + resolve "^1.22.4" eslint-import-resolver-typescript@^3.6.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.0.tgz#36f93e1eb65a635e688e16cae4bead54552e3bbd" + resolved "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.0.tgz#36f93e1eb65a635e688e16cae4bead54552e3bbd" integrity sha512-QTHR9ddNnn35RTxlaEnx2gCxqFlF2SEN0SE2d17SqwyM7YOSI2GHWRYp5BiRkObTUNYPupC/3Fq2a0PpT+EKpg== dependencies: debug "^4.3.4" @@ -3391,14 +3327,14 @@ eslint-import-resolver-typescript@^3.6.0: eslint-module-utils@^2.7.4, eslint-module-utils@^2.8.0: version "2.8.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" + resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== dependencies: debug "^3.2.7" eslint-plugin-import@^2.28.1: version "2.28.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz#63b8b5b3c409bfc75ebaf8fb206b07ab435482c4" + resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz#63b8b5b3c409bfc75ebaf8fb206b07ab435482c4" integrity sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A== dependencies: array-includes "^3.1.6" @@ -3421,7 +3357,7 @@ eslint-plugin-import@^2.28.1: eslint-plugin-jsx-a11y@^6.7.1: version "6.7.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz#fca5e02d115f48c9a597a6894d5bcec2f7a76976" + resolved "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz#fca5e02d115f48c9a597a6894d5bcec2f7a76976" integrity sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA== dependencies: "@babel/runtime" "^7.20.7" @@ -3443,12 +3379,12 @@ eslint-plugin-jsx-a11y@^6.7.1: eslint-plugin-prefer-arrow-functions@^3.1.4: version "3.1.4" - resolved "https://registry.yarnpkg.com/eslint-plugin-prefer-arrow-functions/-/eslint-plugin-prefer-arrow-functions-3.1.4.tgz#a0761c7a0ba71461f6b2136fdf7f7cec1c82d778" + resolved "https://registry.npmjs.org/eslint-plugin-prefer-arrow-functions/-/eslint-plugin-prefer-arrow-functions-3.1.4.tgz#a0761c7a0ba71461f6b2136fdf7f7cec1c82d778" integrity sha512-LSO8VibqBKqzelr+L21mEIfachavCon+1SEumCJ6U8Ze2q0pntyojmomcVwd9RZBjrP+HV6k1Osz0B3Xwdq8WA== eslint-plugin-prefer-arrow@^1.2.3: version "1.2.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.3.tgz#e7fbb3fa4cd84ff1015b9c51ad86550e55041041" + resolved "https://registry.npmjs.org/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.3.tgz#e7fbb3fa4cd84ff1015b9c51ad86550e55041041" integrity sha512-J9I5PKCOJretVuiZRGvPQxCbllxGAV/viI20JO3LYblAodofBxyMnZAJ+WGeClHgANnSJberTNoFWWjrWKBuXQ== eslint-plugin-prettier@^5.0.0: @@ -3461,7 +3397,7 @@ eslint-plugin-prettier@^5.0.0: eslint-plugin-react@^7.33.2: version "7.33.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz#69ee09443ffc583927eafe86ffebb470ee737608" + resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz#69ee09443ffc583927eafe86ffebb470ee737608" integrity sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw== dependencies: array-includes "^3.1.6" @@ -3483,19 +3419,19 @@ eslint-plugin-react@^7.33.2: eslint-plugin-unused-imports@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-3.0.0.tgz#d25175b0072ff16a91892c3aa72a09ca3a9e69e7" + resolved "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-3.0.0.tgz#d25175b0072ff16a91892c3aa72a09ca3a9e69e7" integrity sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw== dependencies: eslint-rule-composer "^0.3.0" eslint-rule-composer@^0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz#79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9" + resolved "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz#79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9" integrity sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg== eslint-scope@^7.2.2: version "7.2.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: esrecurse "^4.3.0" @@ -3503,12 +3439,12 @@ eslint-scope@^7.2.2: eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: version "3.4.3" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== eslint@^8.48.0: version "8.48.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.48.0.tgz#bf9998ba520063907ba7bfe4c480dc8be03c2155" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.48.0.tgz#bf9998ba520063907ba7bfe4c480dc8be03c2155" integrity sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg== dependencies: "@eslint-community/eslint-utils" "^4.2.0" @@ -3551,7 +3487,7 @@ eslint@^8.48.0: espree@^9.6.0, espree@^9.6.1: version "9.6.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: acorn "^8.9.0" @@ -3560,51 +3496,51 @@ espree@^9.6.0, espree@^9.6.1: esquery@^1.4.2: version "1.5.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== dependencies: estraverse "^5.1.0" esrecurse@^4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== estree-walker@^2.0.1, estree-walker@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== esutils@^2.0.2: version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== eventemitter3@^4.0.7: version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== eventemitter3@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== events@^3.3.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== execa@^5.0.0: version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== dependencies: cross-spawn "^7.0.3" @@ -3618,9 +3554,9 @@ execa@^5.0.0: strip-final-newline "^2.0.0" execa@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-7.1.1.tgz#3eb3c83d239488e7b409d48e8813b76bb55c9c43" - integrity sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q== + version "7.2.0" + resolved "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz#657e75ba984f42a70f38928cedc87d6f2d4fe4e9" + integrity sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA== dependencies: cross-spawn "^7.0.3" get-stream "^6.0.1" @@ -3634,17 +3570,17 @@ execa@^7.1.1: fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-diff@^1.1.2: version "1.3.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" + resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== fast-glob@^3.2.7, fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.1: version "3.3.1" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== dependencies: "@nodelib/fs.stat" "^2.0.2" @@ -3655,24 +3591,24 @@ fast-glob@^3.2.7, fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.1: fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-levenshtein@^2.0.6: version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fastq@^1.6.0: version "1.15.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== dependencies: reusify "^1.0.4" fetch-blob@^3.1.2, fetch-blob@^3.1.4: version "3.2.0" - resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" + resolved "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== dependencies: node-domexception "^1.0.0" @@ -3680,19 +3616,19 @@ fetch-blob@^3.1.2, fetch-blob@^3.1.4: file-entry-cache@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== dependencies: flat-cache "^3.0.4" filename-reserved-regex@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" + resolved "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" integrity sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ== filenamify@^4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-4.3.0.tgz#62391cb58f02b09971c9d4f9d63b3cf9aba03106" + resolved "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz#62391cb58f02b09971c9d4f9d63b3cf9aba03106" integrity sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg== dependencies: filename-reserved-regex "^2.0.0" @@ -3701,14 +3637,14 @@ filenamify@^4.3.0: fill-range@^7.0.1: version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: to-regex-range "^5.0.1" find-cache-dir@^3.3.1: version "3.3.2" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== dependencies: commondir "^1.0.1" @@ -3717,7 +3653,7 @@ find-cache-dir@^3.3.1: find-up@^4.0.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: locate-path "^5.0.0" @@ -3725,43 +3661,44 @@ find-up@^4.0.0: find-up@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: locate-path "^6.0.0" path-exists "^4.0.0" flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + version "3.1.0" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz#0e54ab4a1a60fe87e2946b6b00657f1c99e1af3f" + integrity sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew== dependencies: - flatted "^3.1.0" + flatted "^3.2.7" + keyv "^4.5.3" rimraf "^3.0.2" -flatted@^3.1.0: +flatted@^3.2.7: version "3.2.7" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== for-each@^0.3.3: version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== dependencies: is-callable "^1.1.3" formdata-polyfill@^4.0.10: version "4.0.10" - resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" + resolved "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== dependencies: fetch-blob "^3.1.2" framer-motion@^10.16.1: - version "10.16.1" - resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-10.16.1.tgz#0ff5de554bbb35ee6605357d80f92b27d0271a94" - integrity sha512-K6TXr5mZtitC/dxQCBdg7xzdN0d5IAIrlaqCPKtIQVdzVPGC0qBuJKXggHX1vjnP5gPOFwB1KbCCTWcnFc3kWg== + version "10.16.2" + resolved "https://registry.npmjs.org/framer-motion/-/framer-motion-10.16.2.tgz#b737f628f69a883824024124dab452273f73cbba" + integrity sha512-aY6L9YMvqMWtfOQptaUvvr8dp97jskXY5UYLQM0vOPxKeERrG/Z034EIQZ/52u7MeCT0HlCQy3/l0HdUZCB9Tw== dependencies: tslib "^2.4.0" optionalDependencies: @@ -3769,7 +3706,7 @@ framer-motion@^10.16.1: fs-extra@^11.1.0, fs-extra@^11.1.1: version "11.1.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== dependencies: graceful-fs "^4.2.0" @@ -3783,52 +3720,52 @@ fs-readdir-recursive@^1.1.0: fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + version "2.3.3" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== function-bind@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== function.prototype.name@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" - integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + version "1.1.6" + resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - functions-have-names "^1.2.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" -functions-have-names@^1.2.2, functions-have-names@^1.2.3: +functions-have-names@^1.2.3: version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== gensync@^1.0.0-beta.2: version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== get-caller-file@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== get-func-name@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + resolved "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== dependencies: function-bind "^1.1.1" @@ -3838,27 +3775,27 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@ get-stream@^6.0.0, get-stream@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== get-symbol-description@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== dependencies: call-bind "^1.0.2" get-intrinsic "^1.1.1" get-tsconfig@^4.5.0: - version "4.6.2" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.6.2.tgz#831879a5e6c2aa24fe79b60340e2233a1e0f472e" - integrity sha512-E5XrT4CbbXcXWy+1jChlZmrmCwd5KGx502kDCXJJ7y898TtWW9FwoG5HfOLVRKmlmDGkWN2HM9Ho+/Y8F0sJDg== + version "4.7.0" + resolved "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.0.tgz#06ce112a1463e93196aa90320c35df5039147e34" + integrity sha512-pmjiZ7xtB8URYm74PlGJozDNyhvsVLUcpBa8DZBG3bWHwaHa9bPiRpiSfovw+fjhwONSCWKRyk+JQHEGZmMrzw== dependencies: resolve-pkg-maps "^1.0.0" gh-pages@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/gh-pages/-/gh-pages-6.0.0.tgz#3bb46ea13dc7cee306662db0d3f02bf05635cdc1" + resolved "https://registry.npmjs.org/gh-pages/-/gh-pages-6.0.0.tgz#3bb46ea13dc7cee306662db0d3f02bf05635cdc1" integrity sha512-FXZWJRsvP/fK2HJGY+Di6FRNHvqFF6gOIELaopDjXXgjeOYSNURcuYwEO/6bwuq6koP5Lnkvnr5GViXzuOB89g== dependencies: async "^3.2.4" @@ -3871,21 +3808,21 @@ gh-pages@^6.0.0: glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" glob-parent@^6.0.2: version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== dependencies: is-glob "^4.0.3" glob@^7.0.3, glob@^7.1.3, glob@^7.2.0: version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" @@ -3897,26 +3834,26 @@ glob@^7.0.3, glob@^7.1.3, glob@^7.2.0: globals@^11.1.0: version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.19.0: - version "13.20.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" - integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== + version "13.21.0" + resolved "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz#163aae12f34ef502f5153cfbdd3600f36c63c571" + integrity sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg== dependencies: type-fest "^0.20.2" globalthis@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== dependencies: define-properties "^1.1.3" globby@^11.1.0: version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== dependencies: array-union "^2.1.0" @@ -3928,7 +3865,7 @@ globby@^11.1.0: globby@^6.1.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + resolved "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" integrity sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw== dependencies: array-union "^1.0.1" @@ -3939,75 +3876,75 @@ globby@^6.1.0: globrex@^0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" + resolved "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== gopd@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== dependencies: get-intrinsic "^1.1.3" graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== graphemer@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-property-descriptors@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== dependencies: get-intrinsic "^1.1.1" has-proto@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== has-tostringtag@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== dependencies: has-symbols "^1.0.2" has@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" hash-base@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== dependencies: inherits "^2.0.4" @@ -4016,7 +3953,7 @@ hash-base@^3.0.0: 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" + resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== dependencies: inherits "^2.0.3" @@ -4024,7 +3961,7 @@ hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: hmac-drbg@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== dependencies: hash.js "^1.0.3" @@ -4033,53 +3970,53 @@ hmac-drbg@^1.0.1: html-parse-stringify@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz#dfc1017347ce9f77c8141a507f233040c59c55d2" + resolved "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz#dfc1017347ce9f77c8141a507f233040c59c55d2" integrity sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg== dependencies: void-elements "3.1.0" human-signals@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== human-signals@^4.3.0: version "4.3.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" + resolved "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== i18next-browser-languagedetector@^7.1.0: version "7.1.0" - resolved "https://registry.yarnpkg.com/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.1.0.tgz#01876fac51f86b78975e79b48ccb62e2313a2d7d" + resolved "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.1.0.tgz#01876fac51f86b78975e79b48ccb62e2313a2d7d" integrity sha512-cr2k7u1XJJ4HTOjM9GyOMtbOA47RtUoWRAtt52z43r3AoMs2StYKyjS3URPhzHaf+mn10hY9dZWamga5WPQjhA== dependencies: "@babel/runtime" "^7.19.4" i18next@^23.4.6: version "23.4.6" - resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.4.6.tgz#10211e72d5bd29e274baae99c6cc0178b93a93f8" + resolved "https://registry.npmjs.org/i18next/-/i18next-23.4.6.tgz#10211e72d5bd29e274baae99c6cc0178b93a93f8" integrity sha512-jBE8bui969Ygv7TVYp0pwDZB7+he0qsU+nz7EcfdqSh+QvKjEfl9YPRQd/KrGiMhTYFGkeuPaeITenKK/bSFDg== dependencies: "@babel/runtime" "^7.22.5" ieee754@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== ignore@^5.2.0, ignore@^5.2.4: version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== immutable@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.0.tgz#eb1738f14ffb39fd068b1dbe1296117484dd34be" - integrity sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg== + version "4.3.4" + resolved "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz#2e07b33837b4bb7662f288c244d1ced1ef65a78f" + integrity sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA== import-fresh@^3.2.1: version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" @@ -4087,12 +4024,12 @@ import-fresh@^3.2.1: imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" @@ -4100,12 +4037,12 @@ inflight@^1.0.4: inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -internal-slot@^1.0.3, internal-slot@^1.0.5: +internal-slot@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" + resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== dependencies: get-intrinsic "^1.2.0" @@ -4114,7 +4051,7 @@ internal-slot@^1.0.3, internal-slot@^1.0.5: is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== dependencies: call-bind "^1.0.2" @@ -4123,33 +4060,33 @@ is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: is-arrayish@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-async-function@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646" + resolved "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646" integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA== dependencies: has-tostringtag "^1.0.0" is-bigint@^1.0.1: version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== dependencies: has-bigints "^1.0.1" is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" is-boolean-object@^1.1.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== dependencies: call-bind "^1.0.2" @@ -4157,101 +4094,101 @@ is-boolean-object@^1.1.0: is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.11.0, is-core-module@^2.12.0, is-core-module@^2.13.0, is-core-module@^2.9.0: +is-core-module@^2.11.0, is-core-module@^2.13.0, is-core-module@^2.9.0: version "2.13.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== dependencies: has "^1.0.3" is-date-object@^1.0.1, is-date-object@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== dependencies: has-tostringtag "^1.0.0" is-docker@^2.0.0, is-docker@^2.1.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== is-docker@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" + resolved "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-finalizationregistry@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz#c8749b65f17c133313e661b1289b95ad3dbd62e6" + resolved "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz#c8749b65f17c133313e661b1289b95ad3dbd62e6" integrity sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw== dependencies: call-bind "^1.0.2" is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-generator-function@^1.0.10: version "1.0.10" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== dependencies: has-tostringtag "^1.0.0" is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" is-inside-container@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" + resolved "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== dependencies: is-docker "^3.0.0" is-map@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" + resolved "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== is-negative-zero@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== is-number-object@^1.0.4: version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== dependencies: has-tostringtag "^1.0.0" is-number@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-path-inside@^3.0.3: version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== is-regex@^1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== dependencies: call-bind "^1.0.2" @@ -4259,66 +4196,62 @@ is-regex@^1.1.4: is-set@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" + resolved "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== is-shared-array-buffer@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== dependencies: call-bind "^1.0.2" is-stream@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== is-stream@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== dependencies: has-tostringtag "^1.0.0" is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== dependencies: has-symbols "^1.0.2" is-typed-array@^1.1.10, is-typed-array@^1.1.9: - version "1.1.10" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" - integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== + version "1.1.12" + resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" + integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" + which-typed-array "^1.1.11" is-weakmap@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" + resolved "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== is-weakref@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== dependencies: call-bind "^1.0.2" is-weakset@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" + resolved "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== dependencies: call-bind "^1.0.2" @@ -4326,47 +4259,46 @@ is-weakset@^2.0.1: is-wsl@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== dependencies: is-docker "^2.0.0" isarray@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== isexe@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== iterator.prototype@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.0.tgz#690c88b043d821f783843aaf725d7ac3b62e3b46" - integrity sha512-rjuhAk1AJ1fssphHD0IFV6TWL40CwRZ53FrztKx43yk2v6rguBYsY4Bj1VU4HmoMmKwZUlx7mfnhDf9cOp4YTw== + version "1.1.1" + resolved "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.1.tgz#ab5b790e23ec00658f5974e032a2b05188bd3a5c" + integrity sha512-9E+nePc8C9cnQldmNl6bgpTY6zI4OPRZd97fhJ/iVZ1GifIUDVV5F6x1nEDqpe8KaMEZGT4xgrwKQDxXnjOIZQ== dependencies: - define-properties "^1.1.4" - get-intrinsic "^1.1.3" + define-properties "^1.2.0" + get-intrinsic "^1.2.1" has-symbols "^1.0.3" - has-tostringtag "^1.0.0" reflect.getprototypeof "^1.0.3" "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" jsesc@^2.5.1: version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== jsesc@~0.5.0: @@ -4374,46 +4306,51 @@ jsesc@~0.5.0: resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + json-parse-even-better-errors@^2.3.0: version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json-stringify-safe@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== json5@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + resolved "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== dependencies: minimist "^1.2.0" -json5@^2.2.2: +json5@^2.2.3: version "2.2.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== jsonc-parser@^3.2.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" + resolved "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== jsonfile@^6.0.1: version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== dependencies: universalify "^2.0.0" @@ -4422,34 +4359,41 @@ jsonfile@^6.0.1: jsqr@^1.2.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/jsqr/-/jsqr-1.4.0.tgz#8efb8d0a7cc6863cb6d95116b9069123ce9eb2d1" + resolved "https://registry.npmjs.org/jsqr/-/jsqr-1.4.0.tgz#8efb8d0a7cc6863cb6d95116b9069123ce9eb2d1" integrity sha512-dxLob7q65Xg2DvstYkRpkYtmKm2sPJ9oFhrhmudT1dZvNFFTlroai3AWSpLey/w5vMcLBXRgOJsbXpdN9HzU/A== "jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.3: - version "3.3.4" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.4.tgz#b896535fed5b867650acce5a9bd4135ffc7b3bf9" - integrity sha512-fX2TVdCViod6HwKEtSWGHs57oFhVfCMwieb9PuRDgjDPh5XeqJiHFFFJCHxU5cnTc3Bu/GRL+kPiFmw8XWOfKw== + version "3.3.5" + resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a" + integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ== dependencies: array-includes "^3.1.6" array.prototype.flat "^1.3.1" object.assign "^4.1.4" object.values "^1.1.6" +keyv@^4.5.3: + version "4.5.3" + resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz#00873d2b046df737963157bd04f294ca818c9c25" + integrity sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug== + dependencies: + json-buffer "3.0.1" + language-subtag-registry@~0.3.2: version "0.3.22" - resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d" + resolved "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d" integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w== language-tags@=1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" + resolved "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" integrity sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ== dependencies: language-subtag-registry "~0.3.2" levn@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: prelude-ls "^1.2.1" @@ -4457,110 +4401,110 @@ levn@^0.4.1: lines-and-columns@^1.1.6: version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== lit-element@^3.3.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-3.3.2.tgz#9913bf220b85065f0e5f1bb8878cc44f36b50cfa" - integrity sha512-xXAeVWKGr4/njq0rGC9dethMnYCq5hpKYrgQZYTzawt9YQhMiXfD+T1RgrdY3NamOxwq2aXlb0vOI6e29CKgVQ== + version "3.3.3" + resolved "https://registry.npmjs.org/lit-element/-/lit-element-3.3.3.tgz#10bc19702b96ef5416cf7a70177255bfb17b3209" + integrity sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA== dependencies: "@lit-labs/ssr-dom-shim" "^1.1.0" "@lit/reactive-element" "^1.3.0" - lit-html "^2.7.0" + lit-html "^2.8.0" -lit-html@^2.7.0: - version "2.7.5" - resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-2.7.5.tgz#0c1b9d381abe20c01475ae53ea4b07bf4c923eb8" - integrity sha512-YqUzpisJodwKIlbMFCtyrp58oLloKGnnPLMJ1t23cbfIJjg/H9pvLWK4XS69YeubK5HUs1UE4ys9w5dP1zg6IA== +lit-html@^2.8.0: + version "2.8.0" + resolved "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz#96456a4bb4ee717b9a7d2f94562a16509d39bffa" + integrity sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q== dependencies: "@types/trusted-types" "^2.0.2" lit@^2.7.5: - version "2.7.6" - resolved "https://registry.yarnpkg.com/lit/-/lit-2.7.6.tgz#810007b876ed43e0c70124de91831921598b1665" - integrity sha512-1amFHA7t4VaaDe+vdQejSVBklwtH9svGoG6/dZi9JhxtJBBlqY5D1RV7iLUYY0trCqQc4NfhYYZilZiVHt7Hxg== + version "2.8.0" + resolved "https://registry.npmjs.org/lit/-/lit-2.8.0.tgz#4d838ae03059bf9cafa06e5c61d8acc0081e974e" + integrity sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA== dependencies: "@lit/reactive-element" "^1.6.0" lit-element "^3.3.0" - lit-html "^2.7.0" + lit-html "^2.8.0" local-pkg@^0.4.3: version "0.4.3" - resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963" + resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963" integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g== locate-path@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== dependencies: p-locate "^4.1.0" locate-path@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: p-locate "^5.0.0" lodash.debounce@^4.0.8: version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== lodash.merge@^4.6.2: version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== lodash.pick@^4.4.0: version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + resolved "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" integrity sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q== lodash.throttle@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" + resolved "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ== lodash@^4.17.21: version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== dependencies: js-tokens "^3.0.0 || ^4.0.0" loupe@^2.3.1, loupe@^2.3.6: version "2.3.6" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.6.tgz#76e4af498103c532d1ecc9be102036a21f787b53" + resolved "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz#76e4af498103c532d1ecc9be102036a21f787b53" integrity sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA== dependencies: get-func-name "^2.0.0" lru-cache@^5.1.1: version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: yallist "^3.0.2" lru-cache@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== dependencies: yallist "^4.0.0" magic-string@^0.30.1: - version "0.30.1" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.1.tgz#ce5cd4b0a81a5d032bd69aab4522299b2166284d" - integrity sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA== + version "0.30.3" + resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.3.tgz#403755dfd9d6b398dfa40635d52e96c5ac095b85" + integrity sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw== dependencies: "@jridgewell/sourcemap-codec" "^1.4.15" @@ -4574,14 +4518,14 @@ make-dir@^2.1.0: make-dir@^3.0.2: version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" md5.js@^1.3.4: version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== dependencies: hash-base "^3.0.0" @@ -4590,17 +4534,17 @@ md5.js@^1.3.4: merge-stream@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== micromatch@^4.0.4: version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: braces "^3.0.2" @@ -4608,75 +4552,75 @@ micromatch@^4.0.4: mimic-fn@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== mimic-fn@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== minimalistic-crypto-utils@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" minimist@^1.2.0, minimist@^1.2.6: version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== mlly@^1.2.0, mlly@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.4.0.tgz#830c10d63f1f97bd8785377b24dc2a15d972832b" - integrity sha512-ua8PAThnTwpprIaU47EPeZ/bPUVp2QYBbWMphUQpVdBI3Lgqzm5KZQ45Agm3YJedHXaIHl6pBGabaLSUPPSptg== + version "1.4.1" + resolved "https://registry.npmjs.org/mlly/-/mlly-1.4.1.tgz#7ab9cbb040bf8bd8205a0c341ce9acc3ae0c3a74" + integrity sha512-SCDs78Q2o09jiZiE2WziwVBEqXQ02XkGdUy45cbJf+BpYRIjArXRJ1Wbowxkb+NaM9DWvS3UC9GiO/6eqvQ/pg== dependencies: - acorn "^8.9.0" + acorn "^8.10.0" pathe "^1.1.1" pkg-types "^1.0.3" - ufo "^1.1.2" + ufo "^1.3.0" mock-socket@^9.2.1: version "9.2.1" - resolved "https://registry.yarnpkg.com/mock-socket/-/mock-socket-9.2.1.tgz#cc9c0810aa4d0afe02d721dcb2b7e657c00e2282" + resolved "https://registry.npmjs.org/mock-socket/-/mock-socket-9.2.1.tgz#cc9c0810aa4d0afe02d721dcb2b7e657c00e2282" integrity sha512-aw9F9T9G2zpGipLLhSNh6ZpgUyUl4frcVmRN08uE1NWPWg43Wx6+sGPDbQ7E5iFZZDJW5b5bypMeAEHqTbIFag== ms@2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== ms@^2.1.1: version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== nanoid@^3.3.6: version "3.3.6" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== natural-compare@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== nock@^13.3.1: - version "13.3.1" - resolved "https://registry.yarnpkg.com/nock/-/nock-13.3.1.tgz#f22d4d661f7a05ebd9368edae1b5dc0a62d758fc" - integrity sha512-vHnopocZuI93p2ccivFyGuUfzjq2fxNyNurp7816mlT5V5HF4SzXu8lvLrVzBbNqzs+ODooZ6OksuSUNM7Njkw== + version "13.3.3" + resolved "https://registry.npmjs.org/nock/-/nock-13.3.3.tgz#179759c07d3f88ad3e794ace885629c1adfd3fe7" + integrity sha512-z+KUlILy9SK/RjpeXDiDUEAq4T94ADPHE3qaRkf66mpEhzc/ytOMm3Bwdrbq6k1tMWkbdujiKim3G2tfQARuJw== dependencies: debug "^4.1.0" json-stringify-safe "^5.0.1" @@ -4685,60 +4629,60 @@ nock@^13.3.1: node-domexception@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + resolved "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== -node-fetch@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.1.tgz#b3eea7b54b3a48020e46f4f88b9c5a7430d20b2e" - integrity sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow== +node-fetch@^3.3.2: + version "3.3.2" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz#d1e889bacdf733b4ff3b2b243eb7a12866a0b78b" + integrity sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA== dependencies: data-uri-to-buffer "^4.0.0" fetch-blob "^3.1.4" formdata-polyfill "^4.0.10" -node-releases@^2.0.12: +node-releases@^2.0.13: version "2.0.13" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== npm-run-path@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: path-key "^3.0.0" npm-run-path@^5.1.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== dependencies: path-key "^4.0.0" object-assign@^4.0.1, object-assign@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object-inspect@^1.12.3, object-inspect@^1.9.0: version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== object-keys@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object.assign@^4.1.2, object.assign@^4.1.4: version "4.1.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== dependencies: call-bind "^1.0.2" @@ -4747,74 +4691,74 @@ object.assign@^4.1.2, object.assign@^4.1.4: object-keys "^1.1.1" object.entries@^1.1.5, object.entries@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.6.tgz#9737d0e5b8291edd340a3e3264bb8a3b00d5fa23" - integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w== + version "1.1.7" + resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz#2b47760e2a2e3a752f39dd874655c61a7f03c131" + integrity sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" object.fromentries@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73" - integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg== + version "2.0.7" + resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" + integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" object.groupby@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.0.tgz#cb29259cf90f37e7bac6437686c1ea8c916d12a9" - integrity sha512-70MWG6NfRH9GnbZOikuhPPYzpUpof9iW2J9E4dW7FXTqPNb6rllE6u39SKwwiNh8lCwX3DDb5OgcKGiEBrTTyw== + version "1.0.1" + resolved "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz#d41d9f3c8d6c778d9cbac86b4ee9f5af103152ee" + integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== dependencies: call-bind "^1.0.2" define-properties "^1.2.0" - es-abstract "^1.21.2" + es-abstract "^1.22.1" get-intrinsic "^1.2.1" object.hasown@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92" - integrity sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw== + version "1.1.3" + resolved "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz#6a5f2897bb4d3668b8e79364f98ccf971bda55ae" + integrity sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA== dependencies: - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" object.values@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" - integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== + version "1.1.7" + resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" + integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" once@^1.3.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" onetime@^5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" onetime@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + resolved "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== dependencies: mimic-fn "^4.0.0" open@^8.4.0: version "8.4.2" - resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" + resolved "https://registry.npmjs.org/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== dependencies: define-lazy-prop "^2.0.0" @@ -4823,7 +4767,7 @@ open@^8.4.0: open@^9.1.0: version "9.1.0" - resolved "https://registry.yarnpkg.com/open/-/open-9.1.0.tgz#684934359c90ad25742f5a26151970ff8c6c80b6" + resolved "https://registry.npmjs.org/open/-/open-9.1.0.tgz#684934359c90ad25742f5a26151970ff8c6c80b6" integrity sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg== dependencies: default-browser "^4.0.0" @@ -4833,7 +4777,7 @@ open@^9.1.0: optionator@^0.9.3: version "0.9.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== dependencies: "@aashutoshrathi/word-wrap" "^1.2.3" @@ -4845,59 +4789,59 @@ optionator@^0.9.3: p-limit@^2.2.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" p-limit@^3.0.2: version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" p-limit@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== dependencies: yocto-queue "^1.0.0" p-locate@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== dependencies: p-limit "^2.2.0" p-locate@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: p-limit "^3.0.2" p-try@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== pako@^2.0.4: version "2.1.0" - resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" + resolved "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" parse-json@^5.0.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== dependencies: "@babel/code-frame" "^7.0.0" @@ -4907,57 +4851,57 @@ parse-json@^5.0.0: path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-key@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + resolved "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-type@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== pathe@^1.1.0, pathe@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.1.tgz#1dd31d382b974ba69809adc9a7a347e65d84829a" + resolved "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz#1dd31d382b974ba69809adc9a7a347e65d84829a" integrity sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q== pathval@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + resolved "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== picocolors@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.3.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== pify@^2.0.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== pify@^4.0.1: @@ -4967,26 +4911,26 @@ pify@^4.0.1: pinkie-promise@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== pkg-dir@^4.1.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== dependencies: find-up "^4.0.0" pkg-types@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.0.3.tgz#988b42ab19254c01614d13f4f65a2cfc7880f868" + resolved "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz#988b42ab19254c01614d13f4f65a2cfc7880f868" integrity sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A== dependencies: jsonc-parser "^3.2.0" @@ -4995,13 +4939,13 @@ pkg-types@^1.0.3: postcss-value-parser@^4.0.2: version "4.2.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== postcss@^8.4.23, postcss@^8.4.27: - version "8.4.27" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.27.tgz#234d7e4b72e34ba5a92c29636734349e0d9c3057" - integrity sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ== + version "8.4.29" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz#33bc121cf3b3688d4ddef50be869b2a54185a1dd" + integrity sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw== dependencies: nanoid "^3.3.6" picocolors "^1.0.0" @@ -5009,38 +4953,38 @@ postcss@^8.4.23, postcss@^8.4.27: prelude-ls@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prettier-linter-helpers@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== dependencies: fast-diff "^1.1.2" prettier-plugin-organize-imports@^3.2.3: version "3.2.3" - resolved "https://registry.yarnpkg.com/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-3.2.3.tgz#6b0141ac71f7ee9a673ce83e95456319e3a7cf0d" + resolved "https://registry.npmjs.org/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-3.2.3.tgz#6b0141ac71f7ee9a673ce83e95456319e3a7cf0d" integrity sha512-KFvk8C/zGyvUaE3RvxN2MhCLwzV6OBbFSkwZ2OamCrs9ZY4i5L77jQ/w4UmUr+lqX8qbaqVq6bZZkApn+IgJSg== prettier@^3.0.3: version "3.0.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.3.tgz#432a51f7ba422d1469096c0fdc28e235db8f9643" + resolved "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz#432a51f7ba422d1469096c0fdc28e235db8f9643" integrity sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg== pretty-format@^29.5.0: - version "29.6.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.6.1.tgz#ec838c288850b7c4f9090b867c2d4f4edbfb0f3e" - integrity sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog== + version "29.6.3" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.3.tgz#d432bb4f1ca6f9463410c3fb25a0ba88e594ace7" + integrity sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw== dependencies: - "@jest/schemas" "^29.6.0" + "@jest/schemas" "^29.6.3" ansi-styles "^5.0.0" react-is "^18.0.0" prop-types@^15.7.2, prop-types@^15.8.1: version "15.8.1" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== dependencies: loose-envify "^1.4.0" @@ -5049,27 +4993,27 @@ prop-types@^15.7.2, prop-types@^15.8.1: propagate@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/propagate/-/propagate-2.0.1.tgz#40cdedab18085c792334e64f0ac17256d38f9a45" + resolved "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz#40cdedab18085c792334e64f0ac17256d38f9a45" integrity sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag== punycode@^2.1.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== qrcode-generator@1.4.4: version "1.4.4" - resolved "https://registry.yarnpkg.com/qrcode-generator/-/qrcode-generator-1.4.4.tgz#63f771224854759329a99048806a53ed278740e7" + resolved "https://registry.npmjs.org/qrcode-generator/-/qrcode-generator-1.4.4.tgz#63f771224854759329a99048806a53ed278740e7" integrity sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw== queue-microtask@^1.2.2: version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== rc-slider@^10.2.1: version "10.2.1" - resolved "https://registry.yarnpkg.com/rc-slider/-/rc-slider-10.2.1.tgz#9b571d19f740adcacdde271f44901a47717fd8da" + resolved "https://registry.npmjs.org/rc-slider/-/rc-slider-10.2.1.tgz#9b571d19f740adcacdde271f44901a47717fd8da" integrity sha512-l355C/65iV4UFp7mXq5xBTNX2/tF2g74VWiTVlTpNp+6vjE/xaHHNiQq5Af+Uu28uUiqCuH/QXs5HfADL9KJ/A== dependencies: "@babel/runtime" "^7.10.1" @@ -5077,21 +5021,21 @@ rc-slider@^10.2.1: rc-util "^5.27.0" rc-util@^5.27.0: - version "5.34.1" - resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-5.34.1.tgz#0becf411d8f09bdb0f1b61322964f27efeeba642" - integrity sha512-SqiUT8Ssgh5C+hu4y887xwCrMNcxLm6ScOo8AFlWYYF3z9uNNiPpwwSjvicqOlWd79rNw1g44rnP7tz9MrO1ZQ== + version "5.37.0" + resolved "https://registry.npmjs.org/rc-util/-/rc-util-5.37.0.tgz#6df9a55cb469b41b6995530a45b5f3dd3219a4ea" + integrity sha512-cPMV8DzaHI1KDaS7XPRXAf4J7mtBqjvjikLpQieaeOO7+cEbqY2j7Kso/T0R0OiEZTNcLS/8Zl9YrlXiO9UbjQ== dependencies: "@babel/runtime" "^7.18.3" react-is "^16.12.0" react-chartjs-2@^5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/react-chartjs-2/-/react-chartjs-2-5.2.0.tgz#43c1e3549071c00a1a083ecbd26c1ad34d385f5d" + resolved "https://registry.npmjs.org/react-chartjs-2/-/react-chartjs-2-5.2.0.tgz#43c1e3549071c00a1a083ecbd26c1ad34d385f5d" integrity sha512-98iN5aguJyVSxp5U3CblRLH67J8gkfyGNbiK3c+l1QI/G4irHMPQw44aEPmjVag+YKTyQ260NcF82GTQ3bdscA== react-dom@^18.2.0: version "18.2.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" + resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== dependencies: loose-envify "^1.1.0" @@ -5099,19 +5043,19 @@ react-dom@^18.2.0: react-error-boundary@^4.0.11: version "4.0.11" - resolved "https://registry.yarnpkg.com/react-error-boundary/-/react-error-boundary-4.0.11.tgz#36bf44de7746714725a814630282fee83a7c9a1c" + resolved "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-4.0.11.tgz#36bf44de7746714725a814630282fee83a7c9a1c" integrity sha512-U13ul67aP5DOSPNSCWQ/eO0AQEYzEFkVljULQIjMV0KlffTAhxuDoBKdO0pb/JZ8mDhMKFZ9NZi0BmLGUiNphw== dependencies: "@babel/runtime" "^7.12.5" react-fast-compare@^3.1.1: version "3.2.2" - resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.2.tgz#929a97a532304ce9fee4bcae44234f1ce2c21d49" + resolved "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz#929a97a532304ce9fee4bcae44234f1ce2c21d49" integrity sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ== react-helmet@^6.1.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/react-helmet/-/react-helmet-6.1.0.tgz#a750d5165cb13cf213e44747502652e794468726" + resolved "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz#a750d5165cb13cf213e44747502652e794468726" integrity sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw== dependencies: object-assign "^4.1.1" @@ -5121,7 +5065,7 @@ react-helmet@^6.1.0: react-i18next@^13.2.1: version "13.2.1" - resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-13.2.1.tgz#57cf7c07778281bdb1e0a1fd60ca5fcc35c0a786" + resolved "https://registry.npmjs.org/react-i18next/-/react-i18next-13.2.1.tgz#57cf7c07778281bdb1e0a1fd60ca5fcc35c0a786" integrity sha512-XhMsnGgJnytWfi2Q70HMYfm+zysPUu1Pz+It6I87WwaeclGY+W8W1c11uENEMNg+Xb+mNrGuo8GEDuQDOgO+oQ== dependencies: "@babel/runtime" "^7.22.5" @@ -5129,17 +5073,17 @@ react-i18next@^13.2.1: react-is@^16.12.0, react-is@^16.13.1: version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== react-is@^18.0.0: version "18.2.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" + resolved "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== react-qr-reader@^2.2.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/react-qr-reader/-/react-qr-reader-2.2.1.tgz#dc89046d1c1a1da837a683dd970de5926817d55b" + resolved "https://registry.npmjs.org/react-qr-reader/-/react-qr-reader-2.2.1.tgz#dc89046d1c1a1da837a683dd970de5926817d55b" integrity sha512-EL5JEj53u2yAOgtpAKAVBzD/SiKWn0Bl7AZy6ZrSf1lub7xHwtaXe6XSx36Wbhl1VMGmvmrwYMRwO1aSCT2fwA== dependencies: jsqr "^1.2.0" @@ -5148,7 +5092,7 @@ react-qr-reader@^2.2.1: react-router-dom@^6.15.0: version "6.15.0" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.15.0.tgz#6da7db61e56797266fbbef0d5e324d6ac443ee40" + resolved "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.15.0.tgz#6da7db61e56797266fbbef0d5e324d6ac443ee40" integrity sha512-aR42t0fs7brintwBGAv2+mGlCtgtFQeOzK0BM1/OiqEzRejOZtpMZepvgkscpMUnKb8YO84G7s3LsHnnDNonbQ== dependencies: "@remix-run/router" "1.8.0" @@ -5156,14 +5100,14 @@ react-router-dom@^6.15.0: react-router@6.15.0: version "6.15.0" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.15.0.tgz#bf2cb5a4a7ed57f074d4ea88db0d95033f39cac8" + resolved "https://registry.npmjs.org/react-router/-/react-router-6.15.0.tgz#bf2cb5a4a7ed57f074d4ea88db0d95033f39cac8" integrity sha512-NIytlzvzLwJkCQj2HLefmeakxxWHWAP+02EGqWEZy+DgfHHKQMUoBBjUQLOtFInBMhWtb3hiUy6MfFgwLjXhqg== dependencies: "@remix-run/router" "1.8.0" react-scroll@^1.8.9: version "1.8.9" - resolved "https://registry.yarnpkg.com/react-scroll/-/react-scroll-1.8.9.tgz#96f8a82f882b187970c2338759225c7e619d915b" + resolved "https://registry.npmjs.org/react-scroll/-/react-scroll-1.8.9.tgz#96f8a82f882b187970c2338759225c7e619d915b" integrity sha512-9m7ztraiX/l6L7erzYAD3fhnveNckei6/NkWfqwN2e0FRdoE2W6Pk4oi2Nah7mWpPCPAeIgegfaqZACTimPOwg== dependencies: lodash.throttle "^4.1.1" @@ -5171,19 +5115,19 @@ react-scroll@^1.8.9: react-side-effect@^2.1.0: version "2.1.2" - resolved "https://registry.yarnpkg.com/react-side-effect/-/react-side-effect-2.1.2.tgz#dc6345b9e8f9906dc2eeb68700b615e0b4fe752a" + resolved "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.2.tgz#dc6345b9e8f9906dc2eeb68700b615e0b4fe752a" integrity sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw== react@^18.2.0: version "18.2.0" - resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" + resolved "https://registry.npmjs.org/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== dependencies: loose-envify "^1.1.0" readable-stream@^3.6.0: version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== dependencies: inherits "^2.0.3" @@ -5192,20 +5136,20 @@ readable-stream@^3.6.0: readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" reflect.getprototypeof@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.3.tgz#2738fd896fcc3477ffbd4190b40c2458026b6928" - integrity sha512-TTAOZpkJ2YLxl7mVHWrNo3iDMEkYlva/kgFcXndqMgbo/AZUmmavEkdXV+hXtE4P8xdyEKRzalaFqZVuwIk/Nw== + version "1.0.4" + resolved "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz#aaccbf41aca3821b87bb71d9dcbc7ad0ba50a3f3" + integrity sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - get-intrinsic "^1.1.1" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" globalthis "^1.0.3" which-builtin-type "^1.1.3" @@ -5221,21 +5165,21 @@ regenerate@^1.4.2: resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regenerator-runtime@^0.13.11: - version "0.13.11" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" - integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== +regenerator-runtime@^0.14.0: + version "0.14.0" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" + integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== -regenerator-transform@^0.15.1: - version "0.15.1" - resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" - integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg== +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== dependencies: "@babel/runtime" "^7.8.4" -regexp.prototype.flags@^1.4.3, regexp.prototype.flags@^1.5.0: +regexp.prototype.flags@^1.5.0: version "1.5.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== dependencies: call-bind "^1.0.2" @@ -5263,31 +5207,31 @@ regjsparser@^0.9.1: require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== resolve-from@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve-pkg-maps@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" + resolved "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== -resolve@^1.14.2, resolve@^1.22.1: - version "1.22.3" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.3.tgz#4b4055349ffb962600972da1fdc33c46a4eb3283" - integrity sha512-P8ur/gp/AmbEzjr729bZnLjXK5Z+4P0zhIJgBgzqRih7hL7BOukHGtSTA3ACMY467GRFz3duQsi0bDZdR7DKdw== +resolve@^1.14.2, resolve@^1.22.4: + version "1.22.4" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz#1dc40df46554cdaf8948a486a10f6ba1e2026c34" + integrity sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg== dependencies: - is-core-module "^2.12.0" + is-core-module "^2.13.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" resolve@^2.0.0-next.4: version "2.0.0-next.4" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" + resolved "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== dependencies: is-core-module "^2.9.0" @@ -5296,19 +5240,19 @@ resolve@^2.0.0-next.4: reusify@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== rimraf@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" ripemd160@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== dependencies: hash-base "^3.0.0" @@ -5316,7 +5260,7 @@ ripemd160@^2.0.1: rollup-plugin-visualizer@^5.9.2: version "5.9.2" - resolved "https://registry.yarnpkg.com/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.9.2.tgz#f1aa2d9b1be8ebd6869223c742324897464d8891" + resolved "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.9.2.tgz#f1aa2d9b1be8ebd6869223c742324897464d8891" integrity sha512-waHktD5mlWrYFrhOLbti4YgQCn1uR24nYsNuXxg7LkPH8KdTXVWR9DNY1WU0QqokyMixVXJS4J04HNrVTMP01A== dependencies: open "^8.4.0" @@ -5326,56 +5270,56 @@ rollup-plugin-visualizer@^5.9.2: rollup@^2.77.2: version "2.79.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" + resolved "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== optionalDependencies: fsevents "~2.3.2" rollup@^3.27.1: - version "3.27.2" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.27.2.tgz#59adc973504408289be89e5978e938ce852c9520" - integrity sha512-YGwmHf7h2oUHkVBT248x0yt6vZkYQ3/rvE5iQuVBh3WO8GcJ6BNeOkpoX1yMHIiBm18EMLjBPIoUDkhgnyxGOQ== + version "3.28.1" + resolved "https://registry.npmjs.org/rollup/-/rollup-3.28.1.tgz#fb44aa6d5e65c7e13fd5bcfff266d0c4ea9ba433" + integrity sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw== optionalDependencies: fsevents "~2.3.2" rtcpeerconnection-shim@^1.2.15: version "1.2.15" - resolved "https://registry.yarnpkg.com/rtcpeerconnection-shim/-/rtcpeerconnection-shim-1.2.15.tgz#e7cc189a81b435324c4949aa3dfb51888684b243" + resolved "https://registry.npmjs.org/rtcpeerconnection-shim/-/rtcpeerconnection-shim-1.2.15.tgz#e7cc189a81b435324c4949aa3dfb51888684b243" integrity sha512-C6DxhXt7bssQ1nHb154lqeL0SXz5Dx4RczXZu2Aa/L1NJFnEVDxFwCBo3fqtuljhHIGceg5JKBV4XJ0gW5JKyw== dependencies: sdp "^2.6.0" run-applescript@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c" + resolved "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c" integrity sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg== dependencies: execa "^5.0.0" run-parallel@^1.1.9: version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: queue-microtask "^1.2.2" rxjs@6: version "6.6.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== dependencies: tslib "^1.9.0" rxjs@^7.8.1: version "7.8.1" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== dependencies: tslib "^2.1.0" safe-array-concat@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.0.tgz#2064223cba3c08d2ee05148eedbc563cd6d84060" + resolved "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz#2064223cba3c08d2ee05148eedbc563cd6d84060" integrity sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ== dependencies: call-bind "^1.0.2" @@ -5385,12 +5329,12 @@ safe-array-concat@^1.0.0: safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-regex-test@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== dependencies: call-bind "^1.0.2" @@ -5399,7 +5343,7 @@ safe-regex-test@^1.0.0: sass@^1.66.1: version "1.66.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.66.1.tgz#04b51c4671e4650aa393740e66a4e58b44d055b1" + resolved "https://registry.npmjs.org/sass/-/sass-1.66.1.tgz#04b51c4671e4650aa393740e66a4e58b44d055b1" integrity sha512-50c+zTsZOJVgFfTgwwEzkjA3/QACgdNsKueWPyAR0mRINIvLAStVQBbPg14iuqEQ74NPDbXzJARJ/O4SI1zftA== dependencies: chokidar ">=3.0.0 <4.0.0" @@ -5408,14 +5352,14 @@ sass@^1.66.1: scheduler@^0.23.0: version "0.23.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" + resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== dependencies: loose-envify "^1.1.0" sdp@^2.12.0, sdp@^2.6.0: version "2.12.0" - resolved "https://registry.yarnpkg.com/sdp/-/sdp-2.12.0.tgz#338a106af7560c86e4523f858349680350d53b22" + resolved "https://registry.npmjs.org/sdp/-/sdp-2.12.0.tgz#338a106af7560c86e4523f858349680350d53b22" integrity sha512-jhXqQAQVM+8Xj5EjJGVweuEzgtGWb3tmEEpl3CLP3cStInSbVHSg0QWOGQzNq8pSID4JkpeV2mPqlMDLrm0/Vw== semver@^5.6.0: @@ -5430,14 +5374,14 @@ semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: semver@^7.3.4, semver@^7.3.5, semver@^7.5.0, semver@^7.5.4: version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: lru-cache "^6.0.0" sha.js@^2.4.0: version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== dependencies: inherits "^2.0.1" @@ -5445,24 +5389,24 @@ sha.js@^2.4.0: shallowequal@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + resolved "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== side-channel@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== dependencies: call-bind "^1.0.0" @@ -5471,12 +5415,12 @@ side-channel@^1.0.4: siginfo@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" + resolved "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== slash@^2.0.0: @@ -5486,19 +5430,19 @@ slash@^2.0.0: slash@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== smoldot@1.0.13: version "1.0.13" - resolved "https://registry.yarnpkg.com/smoldot/-/smoldot-1.0.13.tgz#582276d94159a3ddace3c4979cc3000141852d2c" + resolved "https://registry.npmjs.org/smoldot/-/smoldot-1.0.13.tgz#582276d94159a3ddace3c4979cc3000141852d2c" integrity sha512-IxOBMzsPles/8JlFM7Sm1ckunul3e6mYWBopf+Kg7zHmxtRwpox4nnEfaGxmhhHC8JgQVwsVPHa14AeQxtk6vA== dependencies: ws "^8.8.1" smoldot@1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/smoldot/-/smoldot-1.0.4.tgz#e4c38cedad68d699a11b5b9ce72bb75c891bfd98" + resolved "https://registry.npmjs.org/smoldot/-/smoldot-1.0.4.tgz#e4c38cedad68d699a11b5b9ce72bb75c891bfd98" integrity sha512-N3TazI1C4GGrseFH/piWyZCCCRJTRx2QhDfrUKRT4SzILlW5m8ayZ3QTKICcz1C/536T9cbHHJyP7afxI6Mi1A== dependencies: pako "^2.0.4" @@ -5506,27 +5450,27 @@ smoldot@1.0.4: "source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== source-map@^0.7.4: version "0.7.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== stackback@0.0.2: version "0.0.2" - resolved "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b" + resolved "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b" integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw== std-env@^3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.3.3.tgz#a54f06eb245fdcfef53d56f3c0251f1d5c3d01fe" - integrity sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg== + version "3.4.3" + resolved "https://registry.npmjs.org/std-env/-/std-env-3.4.3.tgz#326f11db518db751c83fd58574f449b7c3060910" + integrity sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q== string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -5534,22 +5478,22 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: strip-ansi "^6.0.1" string.prototype.matchall@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" - integrity sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg== + version "4.0.9" + resolved "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.9.tgz#148779de0f75d36b13b15885fec5cadde994520d" + integrity sha512-6i5hL3MqG/K2G43mWXWgP+qizFW/QH/7kCNN13JrJS5q48FN5IKksLDscexKP3dnmB6cdm9jlNgAsWNLpSykmA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - get-intrinsic "^1.1.3" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" has-symbols "^1.0.3" - internal-slot "^1.0.3" - regexp.prototype.flags "^1.4.3" + internal-slot "^1.0.5" + regexp.prototype.flags "^1.5.0" side-channel "^1.0.4" string.prototype.trim@^1.2.7: version "1.2.7" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" + resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== dependencies: call-bind "^1.0.2" @@ -5558,7 +5502,7 @@ string.prototype.trim@^1.2.7: string.prototype.trimend@^1.0.6: version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== dependencies: call-bind "^1.0.2" @@ -5567,7 +5511,7 @@ string.prototype.trimend@^1.0.6: string.prototype.trimstart@^1.0.6: version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== dependencies: call-bind "^1.0.2" @@ -5576,55 +5520,55 @@ string.prototype.trimstart@^1.0.6: string_decoder@^1.1.1: version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: safe-buffer "~5.2.0" strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-bom@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== strip-final-newline@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== strip-final-newline@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== strip-json-comments@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== strip-literal@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-1.0.1.tgz#0115a332710c849b4e46497891fb8d585e404bd2" - integrity sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q== + version "1.3.0" + resolved "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz#db3942c2ec1699e6836ad230090b84bb458e3a07" + integrity sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg== dependencies: - acorn "^8.8.2" + acorn "^8.10.0" strip-outer@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" + resolved "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== dependencies: escape-string-regexp "^1.0.2" styled-components@^6.0.7: version "6.0.7" - resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-6.0.7.tgz#1cf4a5e6b6181b29f941934df54af19b7ef05ab0" + resolved "https://registry.npmjs.org/styled-components/-/styled-components-6.0.7.tgz#1cf4a5e6b6181b29f941934df54af19b7ef05ab0" integrity sha512-xIwWuiRMYR43mskVsW9MGTRjSo7ol4bcVjT595fGUp3OLBJOlOgaiKaxsHdC4a2HqWKqKnh0CmcRbk5ogyDjTg== dependencies: "@babel/cli" "^7.21.0" @@ -5654,31 +5598,31 @@ stylis@^4.3.0: supports-color@^5.3.0: version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== svg-parser@^2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" + resolved "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== synckit@^0.8.5: version "0.8.5" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.5.tgz#b7f4358f9bb559437f9f167eb6bc46b3c9818fa3" + resolved "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz#b7f4358f9bb559437f9f167eb6bc46b3c9818fa3" integrity sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q== dependencies: "@pkgr/utils" "^2.3.1" @@ -5686,71 +5630,71 @@ synckit@^0.8.5: tapable@^2.2.0: version "2.2.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== text-table@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== tiny-invariant@^1.1.0: version "1.3.1" - resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.1.tgz#8560808c916ef02ecfd55e66090df23a4b7aa642" + resolved "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz#8560808c916ef02ecfd55e66090df23a4b7aa642" integrity sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw== tinybench@^2.5.0: version "2.5.0" - resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.5.0.tgz#4711c99bbf6f3e986f67eb722fed9cddb3a68ba5" + resolved "https://registry.npmjs.org/tinybench/-/tinybench-2.5.0.tgz#4711c99bbf6f3e986f67eb722fed9cddb3a68ba5" integrity sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA== tinypool@^0.7.0: version "0.7.0" - resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.7.0.tgz#88053cc99b4a594382af23190c609d93fddf8021" + resolved "https://registry.npmjs.org/tinypool/-/tinypool-0.7.0.tgz#88053cc99b4a594382af23190c609d93fddf8021" integrity sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww== tinyspy@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-2.1.1.tgz#9e6371b00c259e5c5b301917ca18c01d40ae558c" + resolved "https://registry.npmjs.org/tinyspy/-/tinyspy-2.1.1.tgz#9e6371b00c259e5c5b301917ca18c01d40ae558c" integrity sha512-XPJL2uSzcOyBMky6OFrusqWlzfFrXtE0hPuMgW8A2HmaqrPo4ZQHRN/V0QXN3FSjKxpsbRrFc5LI7KOwBsT1/w== titleize@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53" + resolved "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53" integrity sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ== to-fast-properties@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" trim-repeated@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" + resolved "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" integrity sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg== dependencies: escape-string-regexp "^1.0.2" ts-api-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.1.tgz#8144e811d44c749cd65b2da305a032510774452d" - integrity sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A== + version "1.0.2" + resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.2.tgz#7c094f753b6705ee4faee25c3c684ade52d66d99" + integrity sha512-Cbu4nIqnEdd+THNEsBdkolnOXhg0I8XteoHaEKgvsxpsbWda4IsUut2c187HxywQCvveojow0Dgw/amxtSKVkQ== tsconfck@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/tsconfck/-/tsconfck-2.1.1.tgz#9b51603d2712d1f4740fa14748ca886a2e1893e5" - integrity sha512-ZPCkJBKASZBmBUNqGHmRhdhM8pJYDdOXp4nRgj/O0JwUwsMq50lCDRQP/M5GBNAA0elPrq4gAeu4dkaVCuKWww== + version "2.1.2" + resolved "https://registry.npmjs.org/tsconfck/-/tsconfck-2.1.2.tgz#f667035874fa41d908c1fe4d765345fcb1df6e35" + integrity sha512-ghqN1b0puy3MhhviwO2kGF8SeMDNhEbnKxjK7h6+fvY9JAxqvXi8y5NAHSQv687OVboS2uZIByzGd45/YxrRHg== tsconfig-paths@^3.14.2: version "3.14.2" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" + resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== dependencies: "@types/json5" "^0.0.29" @@ -5760,39 +5704,39 @@ tsconfig-paths@^3.14.2: tslib@^1.9.0: version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.1.0, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.5.3, tslib@^2.6.0, tslib@^2.6.2: +tslib@^2.1.0, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.5.3, tslib@^2.6.0, tslib@^2.6.1, tslib@^2.6.2: version "2.6.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: prelude-ls "^1.2.1" type-detect@^4.0.0, type-detect@^4.0.5: version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== type-fest@^0.20.2: version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== type-fest@^0.21.3: version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== typed-array-buffer@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" + resolved "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== dependencies: call-bind "^1.0.2" @@ -5801,7 +5745,7 @@ typed-array-buffer@^1.0.0: typed-array-byte-length@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" + resolved "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== dependencies: call-bind "^1.0.2" @@ -5811,7 +5755,7 @@ typed-array-byte-length@^1.0.0: typed-array-byte-offset@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" + resolved "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== dependencies: available-typed-arrays "^1.0.5" @@ -5822,7 +5766,7 @@ typed-array-byte-offset@^1.0.0: typed-array-length@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== dependencies: call-bind "^1.0.2" @@ -5831,22 +5775,22 @@ typed-array-length@^1.0.4: typeforce@^1.11.5: version "1.18.0" - resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.18.0.tgz#d7416a2c5845e085034d70fcc5b6cc4a90edbfdc" + resolved "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz#d7416a2c5845e085034d70fcc5b6cc4a90edbfdc" integrity sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g== typescript@^5.2.2: version "5.2.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== -ufo@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.1.2.tgz#d0d9e0fa09dece0c31ffd57bd363f030a35cfe76" - integrity sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ== +ufo@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/ufo/-/ufo-1.3.0.tgz#c92f8ac209daff607c57bbd75029e190930a0019" + integrity sha512-bRn3CsoojyNStCZe0BG0Mt4Nr/4KF+rhFlnNXybgqt5pXHNFRlqinSoQaTrGyzE4X8aHplSb+TorH+COin9Yxw== unbox-primitive@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== dependencies: call-bind "^1.0.2" @@ -5879,17 +5823,17 @@ unicode-property-aliases-ecmascript@^2.0.0: universalify@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== untildify@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" + resolved "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== update-browserslist-db@^1.0.11: version "1.0.11" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" + resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== dependencies: escalade "^3.1.1" @@ -5897,19 +5841,19 @@ update-browserslist-db@^1.0.11: uri-js@^4.2.2: version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" util-deprecate@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== vite-bundle-visualizer@^0.10.0: version "0.10.0" - resolved "https://registry.yarnpkg.com/vite-bundle-visualizer/-/vite-bundle-visualizer-0.10.0.tgz#bdeafe5f8e69eb4c157174ae8d852279272e3010" + resolved "https://registry.npmjs.org/vite-bundle-visualizer/-/vite-bundle-visualizer-0.10.0.tgz#bdeafe5f8e69eb4c157174ae8d852279272e3010" integrity sha512-11AwKlkhvw6jjiGbTiCZqBSGg/FQDLc0mVcoLWVov2jU/Ban67l+Sk4Fa0Iyctb5sObqg/dA28HkKCEmSRjw9g== dependencies: cac "^6.7.14" @@ -5917,7 +5861,7 @@ vite-bundle-visualizer@^0.10.0: vite-node@0.34.3: version "0.34.3" - resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.34.3.tgz#de134fe38bc1555ac8ab5e489d7df6159a3e1a4c" + resolved "https://registry.npmjs.org/vite-node/-/vite-node-0.34.3.tgz#de134fe38bc1555ac8ab5e489d7df6159a3e1a4c" integrity sha512-+0TzJf1g0tYXj6tR2vEyiA42OPq68QkRZCu/ERSo2PtsDJfBpDyEfuKbRvLmZqi/CgC7SCBtyC+WjTGNMRIaig== dependencies: cac "^6.7.14" @@ -5929,7 +5873,7 @@ vite-node@0.34.3: vite-plugin-checker@^0.6.2: version "0.6.2" - resolved "https://registry.yarnpkg.com/vite-plugin-checker/-/vite-plugin-checker-0.6.2.tgz#3790381734440033e6cb3cee9d92fcfdd69a4d71" + resolved "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.6.2.tgz#3790381734440033e6cb3cee9d92fcfdd69a4d71" integrity sha512-YvvvQ+IjY09BX7Ab+1pjxkELQsBd4rPhWNw8WLBeFVxu/E7O+n6VYAqNsKdK/a2luFlX/sMpoWdGFfg4HvwdJQ== dependencies: "@babel/code-frame" "^7.12.13" @@ -5952,7 +5896,7 @@ vite-plugin-checker@^0.6.2: vite-plugin-eslint@^1.8.1: version "1.8.1" - resolved "https://registry.yarnpkg.com/vite-plugin-eslint/-/vite-plugin-eslint-1.8.1.tgz#0381b8272e7f0fd8b663311b64f7608d55d8b04c" + resolved "https://registry.npmjs.org/vite-plugin-eslint/-/vite-plugin-eslint-1.8.1.tgz#0381b8272e7f0fd8b663311b64f7608d55d8b04c" integrity sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang== dependencies: "@rollup/pluginutils" "^4.2.1" @@ -5961,7 +5905,7 @@ vite-plugin-eslint@^1.8.1: vite-plugin-svgr@^3.2.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/vite-plugin-svgr/-/vite-plugin-svgr-3.2.0.tgz#920375aaf6635091c9ac8e467825f92d32544476" + resolved "https://registry.npmjs.org/vite-plugin-svgr/-/vite-plugin-svgr-3.2.0.tgz#920375aaf6635091c9ac8e467825f92d32544476" integrity sha512-Uvq6niTvhqJU6ga78qLKBFJSDvxWhOnyfQSoKpDPMAGxJPo5S3+9hyjExE5YDj6Lpa4uaLkGc1cBgxXov+LjSw== dependencies: "@rollup/pluginutils" "^5.0.2" @@ -5970,7 +5914,7 @@ vite-plugin-svgr@^3.2.0: vite-tsconfig-paths@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/vite-tsconfig-paths/-/vite-tsconfig-paths-4.2.0.tgz#bd2647d3eadafb65a10fc98a2ca565211f2eaf63" + resolved "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-4.2.0.tgz#bd2647d3eadafb65a10fc98a2ca565211f2eaf63" integrity sha512-jGpus0eUy5qbbMVGiTxCL1iB9ZGN6Bd37VGLJU39kTDD6ZfULTTb1bcc5IeTWqWJKiWV5YihCaibeASPiGi8kw== dependencies: debug "^4.1.1" @@ -5979,7 +5923,7 @@ vite-tsconfig-paths@^4.2.0: "vite@^3.0.0 || ^4.0.0", vite@^4.4.9: version "4.4.9" - resolved "https://registry.yarnpkg.com/vite/-/vite-4.4.9.tgz#1402423f1a2f8d66fd8d15e351127c7236d29d3d" + resolved "https://registry.npmjs.org/vite/-/vite-4.4.9.tgz#1402423f1a2f8d66fd8d15e351127c7236d29d3d" integrity sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA== dependencies: esbuild "^0.18.10" @@ -5990,7 +5934,7 @@ vite-tsconfig-paths@^4.2.0: vitest@^0.34.3: version "0.34.3" - resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.34.3.tgz#863d61c133d01b16e49fd52d380c09fa5ac03188" + resolved "https://registry.npmjs.org/vitest/-/vitest-0.34.3.tgz#863d61c133d01b16e49fd52d380c09fa5ac03188" integrity sha512-7+VA5Iw4S3USYk+qwPxHl8plCMhA5rtfwMjgoQXMT7rO5ldWcdsdo3U1QD289JgglGK4WeOzgoLTsGFu6VISyQ== dependencies: "@types/chai" "^4.3.5" @@ -6020,17 +5964,17 @@ vitest@^0.34.3: void-elements@3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09" + resolved "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09" integrity sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w== vscode-jsonrpc@6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz#108bdb09b4400705176b957ceca9e0880e9b6d4e" + resolved "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz#108bdb09b4400705176b957ceca9e0880e9b6d4e" integrity sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg== vscode-languageclient@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-7.0.0.tgz#b505c22c21ffcf96e167799757fca07a6bad0fb2" + resolved "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-7.0.0.tgz#b505c22c21ffcf96e167799757fca07a6bad0fb2" integrity sha512-P9AXdAPlsCgslpP9pRxYPqkNYV7Xq8300/aZDpO35j1fJm/ncize8iGswzYlcvFw5DQUx4eVk+KvfXdL0rehNg== dependencies: minimatch "^3.0.4" @@ -6039,7 +5983,7 @@ vscode-languageclient@^7.0.0: vscode-languageserver-protocol@3.16.0: version "3.16.0" - resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0.tgz#34135b61a9091db972188a07d337406a3cdbe821" + resolved "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0.tgz#34135b61a9091db972188a07d337406a3cdbe821" integrity sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A== dependencies: vscode-jsonrpc "6.0.0" @@ -6047,34 +5991,34 @@ vscode-languageserver-protocol@3.16.0: vscode-languageserver-textdocument@^1.0.1: version "1.0.8" - resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz#9eae94509cbd945ea44bca8dcfe4bb0c15bb3ac0" + resolved "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz#9eae94509cbd945ea44bca8dcfe4bb0c15bb3ac0" integrity sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q== vscode-languageserver-types@3.16.0: version "3.16.0" - resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz#ecf393fc121ec6974b2da3efb3155644c514e247" + resolved "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz#ecf393fc121ec6974b2da3efb3155644c514e247" integrity sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA== vscode-languageserver@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-7.0.0.tgz#49b068c87cfcca93a356969d20f5d9bdd501c6b0" + resolved "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-7.0.0.tgz#49b068c87cfcca93a356969d20f5d9bdd501c6b0" integrity sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw== dependencies: vscode-languageserver-protocol "3.16.0" vscode-uri@^3.0.2: version "3.0.7" - resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.7.tgz#6d19fef387ee6b46c479e5fb00870e15e58c1eb8" + resolved "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.7.tgz#6d19fef387ee6b46c479e5fb00870e15e58c1eb8" integrity sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA== web-streams-polyfill@^3.0.3: version "3.2.1" - resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" + resolved "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== webrtc-adapter@^7.2.1: version "7.7.1" - resolved "https://registry.yarnpkg.com/webrtc-adapter/-/webrtc-adapter-7.7.1.tgz#b2c227a6144983b35057df67bd984a7d4bfd17f1" + resolved "https://registry.npmjs.org/webrtc-adapter/-/webrtc-adapter-7.7.1.tgz#b2c227a6144983b35057df67bd984a7d4bfd17f1" integrity sha512-TbrbBmiQBL9n0/5bvDdORc6ZfRY/Z7JnEj+EYOD1ghseZdpJ+nF2yx14k3LgQKc7JZnG7HAcL+zHnY25So9d7A== dependencies: rtcpeerconnection-shim "^1.2.15" @@ -6082,7 +6026,7 @@ webrtc-adapter@^7.2.1: which-boxed-primitive@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== dependencies: is-bigint "^1.0.1" @@ -6093,7 +6037,7 @@ which-boxed-primitive@^1.0.2: which-builtin-type@^1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.1.3.tgz#b1b8443707cc58b6e9bf98d32110ff0c2cbd029b" + resolved "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz#b1b8443707cc58b6e9bf98d32110ff0c2cbd029b" integrity sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw== dependencies: function.prototype.name "^1.1.5" @@ -6111,7 +6055,7 @@ which-builtin-type@^1.1.3: which-collection@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" + resolved "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== dependencies: is-map "^2.0.1" @@ -6119,9 +6063,9 @@ which-collection@^1.0.1: is-weakmap "^2.0.1" is-weakset "^2.0.1" -which-typed-array@^1.1.10: +which-typed-array@^1.1.10, which-typed-array@^1.1.11, which-typed-array@^1.1.9: version "1.1.11" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.11.tgz#99d691f23c72aab6768680805a271b69761ed61a" + resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz#99d691f23c72aab6768680805a271b69761ed61a" integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew== dependencies: available-typed-arrays "^1.0.5" @@ -6130,28 +6074,16 @@ which-typed-array@^1.1.10: gopd "^1.0.1" has-tostringtag "^1.0.0" -which-typed-array@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" - integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - is-typed-array "^1.1.10" - which@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" why-is-node-running@^2.2.2: version "2.2.2" - resolved "https://registry.yarnpkg.com/why-is-node-running/-/why-is-node-running-2.2.2.tgz#4185b2b4699117819e7154594271e7e344c9973e" + resolved "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz#4185b2b4699117819e7154594271e7e344c9973e" integrity sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA== dependencies: siginfo "^2.0.0" @@ -6159,14 +6091,14 @@ why-is-node-running@^2.2.2: wif@^2.0.6: version "2.0.6" - resolved "https://registry.yarnpkg.com/wif/-/wif-2.0.6.tgz#08d3f52056c66679299726fade0d432ae74b4704" + resolved "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz#08d3f52056c66679299726fade0d432ae74b4704" integrity sha512-HIanZn1zmduSF+BQhkE+YXIbEiH0xPr1012QbFEGB0xsKqJii0/SqJjyn8dFv6y36kOznMgMB+LGcbZTJ1xACQ== dependencies: bs58check "<3.0.0" wrap-ansi@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -6175,37 +6107,37 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== ws@^8.13.0, ws@^8.8.1: version "8.13.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" + resolved "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== y18n@^5.0.5: version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== yallist@^3.0.2: version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== yallist@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yargs-parser@^21.1.1: version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== yargs@^17.5.1: version "17.7.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== dependencies: cliui "^8.0.1" @@ -6218,10 +6150,10 @@ yargs@^17.5.1: yocto-queue@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== yocto-queue@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== From 8ccf575a007ef958e93633127f97002e5afd6bb7 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Thu, 31 Aug 2023 12:48:31 +0700 Subject: [PATCH 400/435] bump --- package.json | 2 +- yarn.lock | 20 +++++++++++++++----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index aa0eefd2bd..a5fe8e5174 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "@ledgerhq/hw-transport-webhid": "^6.27.19", "@polkadot-cloud/community": "^0.1.10", "@polkadot-cloud/core": "^0.1.12", - "@polkadot-cloud/react": "^0.1.31", + "@polkadot-cloud/react": "^0.1.32", "@polkadot-cloud/utils": "^0.0.8", "@polkadot/api": "^10.9.1", "@polkadot/keyring": "^12.1.1", diff --git a/yarn.lock b/yarn.lock index c275c36727..7356482c6c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1061,7 +1061,7 @@ "@babel/helper-validator-identifier" "^7.22.5" to-fast-properties "^2.0.0" -"@dotlottie/player-component@^2.4.2": +"@dotlottie/player-component@^2.5.0": version "2.5.0" resolved "https://registry.npmjs.org/@dotlottie/player-component/-/player-component-2.5.0.tgz#1a2498bd396031dc7b30b05d74ce826b55e43316" integrity sha512-SGMFTkHgE89B1myzjNnykJFxHj0jcPWnVH/Avc+/HHboGDyNawM4zzMlGh3wP0KX0qlMMbFoj/Pcs5ku2ZI3Tg== @@ -1458,7 +1458,7 @@ resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.1.12.tgz#ecb4a345f7b518249a0a5e1d53dd7eea24316e81" integrity sha512-HRLF0t6ezFxJnu4yPS6eubzW5ZRWWhr6ZbjvKeJ4u6pj7fNcCeZaFYVTIaVzpoDVYFeGNEe/6MQ1ENSY7fyhXg== -"@polkadot-cloud/react@^0.1.29", "@polkadot-cloud/react@^0.1.31": +"@polkadot-cloud/react@^0.1.29": version "0.1.31" resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.31.tgz#97fb9887bbc0b60277b00b2329fe5bc63192ec55" integrity sha512-EcRlFUAVZ5pxztUYmVHw//fUqikj2git6Hhw8drQ8Wu97ZM3Hb55F4j+yzttfsKn/rszzj09G131j7o+uSrcVg== @@ -1468,6 +1468,16 @@ "@polkadot-cloud/utils" "^0.0.6" react-error-boundary "^4.0.11" +"@polkadot-cloud/react@^0.1.32": + version "0.1.32" + resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.32.tgz#231444a1d52eee990b2dd3ceaa601f5a8b089d4b" + integrity sha512-S2GcangOrOLXu4sm8BtAx8C1I2rwfTiwHlH2OSbmgBucpyObJPlWfhUwOET9XcMaUc2bJve8tYqe1Dbe1t9HXw== + dependencies: + "@polkadot-cloud/core" "^0.1.12" + "@polkadot-cloud/react" "^0.1.29" + "@polkadot-cloud/utils" "^0.0.6" + react-error-boundary "^4.0.11" + "@polkadot-cloud/utils@^0.0.6": version "0.0.6" resolved "https://registry.npmjs.org/@polkadot-cloud/utils/-/utils-0.0.6.tgz#ea0fc18c6af7cd6a1d14ae6674f19b1b3ef82347" @@ -2634,9 +2644,9 @@ binary-extensions@^2.0.0: resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -"bip32-ed25519@git+https://github.com/Zondax/bip32-ed25519.git": +"bip32-ed25519@https://github.com/Zondax/bip32-ed25519": version "0.0.4" - resolved "git+https://github.com/Zondax/bip32-ed25519.git#0949df01b5c93885339bc28116690292088f6134" + resolved "https://github.com/Zondax/bip32-ed25519#0949df01b5c93885339bc28116690292088f6134" dependencies: bn.js "^5.1.1" elliptic "^6.4.1" @@ -3695,7 +3705,7 @@ formdata-polyfill@^4.0.10: dependencies: fetch-blob "^3.1.2" -framer-motion@^10.16.1: +framer-motion@^10.16.2: version "10.16.2" resolved "https://registry.npmjs.org/framer-motion/-/framer-motion-10.16.2.tgz#b737f628f69a883824024124dab452273f73cbba" integrity sha512-aY6L9YMvqMWtfOQptaUvvr8dp97jskXY5UYLQM0vOPxKeERrG/Z034EIQZ/52u7MeCT0HlCQy3/l0HdUZCB9Tw== From ed19ca615a8628fca523a2460ab3169e50548716 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 31 Aug 2023 21:34:27 +0000 Subject: [PATCH 401/435] Bump @polkadot/util-crypto from 12.3.2 to 12.4.2 Bumps [@polkadot/util-crypto](https://github.com/polkadot-js/common/tree/HEAD/packages/util-crypto) from 12.3.2 to 12.4.2. - [Release notes](https://github.com/polkadot-js/common/releases) - [Changelog](https://github.com/polkadot-js/common/blob/master/CHANGELOG.md) - [Commits](https://github.com/polkadot-js/common/commits/v12.4.2/packages/util-crypto) --- updated-dependencies: - dependency-name: "@polkadot/util-crypto" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 83 ++-------------------------------------------------- 2 files changed, 4 insertions(+), 81 deletions(-) diff --git a/package.json b/package.json index a5fe8e5174..349e3bf738 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "@polkadot/keyring": "^12.1.1", "@polkadot/rpc-provider": "^10.9.1", "@polkadot/util": "^12.4.2", - "@polkadot/util-crypto": "12.3.2", + "@polkadot/util-crypto": "12.4.2", "@substrate/connect": "^0.7.31", "@zondax/ledger-substrate": "^0.41.1", "bignumber.js": "^9.1.2", diff --git a/yarn.lock b/yarn.lock index 7356482c6c..31138796c4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1560,15 +1560,6 @@ "@polkadot/util-crypto" "12.4.2" tslib "^2.6.2" -"@polkadot/networks@12.3.2": - version "12.3.2" - resolved "https://registry.npmjs.org/@polkadot/networks/-/networks-12.3.2.tgz#131b0439c481add159814dd2cf0286c6c3fe5b3b" - integrity sha512-uCkyybKoeEm1daKr0uT/9oNDHDDzCy2/ZdVl346hQqfdR1Ct3BaxMjxqvdmb5N8aCw0cBWSfgsxAYtw8ESmllQ== - dependencies: - "@polkadot/util" "12.3.2" - "@substrate/ss58-registry" "^1.40.0" - tslib "^2.5.3" - "@polkadot/networks@12.4.2", "@polkadot/networks@^12.3.1": version "12.4.2" resolved "https://registry.npmjs.org/@polkadot/networks/-/networks-12.4.2.tgz#6b3dcbdd016beb0ea585009fd61b048b99b17d1c" @@ -1683,22 +1674,6 @@ rxjs "^7.8.1" tslib "^2.5.3" -"@polkadot/util-crypto@12.3.2": - version "12.3.2" - resolved "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-12.3.2.tgz#42d810886904e06fa6e5db254c15f6ef80f4ab72" - integrity sha512-pTpx+YxolY0BDT4RcGmgeKbHHD/dI6Ll9xRsqmVdIjpcVVY20uDNTyXs81ZNtfKgyod1y9JQkfNv2Dz9iEpTkQ== - dependencies: - "@noble/curves" "1.1.0" - "@noble/hashes" "1.3.1" - "@polkadot/networks" "12.3.2" - "@polkadot/util" "12.3.2" - "@polkadot/wasm-crypto" "^7.2.1" - "@polkadot/wasm-util" "^7.2.1" - "@polkadot/x-bigint" "12.3.2" - "@polkadot/x-randomvalues" "12.3.2" - "@scure/base" "1.1.1" - tslib "^2.5.3" - "@polkadot/util-crypto@12.4.2", "@polkadot/util-crypto@^12.3.1": version "12.4.2" resolved "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-12.4.2.tgz#e19258dab5f2d4fe49f2d074d36d33a445e50b74" @@ -1715,19 +1690,6 @@ "@scure/base" "1.1.1" tslib "^2.6.2" -"@polkadot/util@12.3.2": - version "12.3.2" - resolved "https://registry.npmjs.org/@polkadot/util/-/util-12.3.2.tgz#f46e147b0e6a426da5ba59df4ce65de1a3effe4a" - integrity sha512-y/JShcGyOamCUiSIg++XZuLHt1ktSKBaSH2K5Nw5NXlgP0+7am+GZzqPB8fQ4qhYLruEOv+YRiz0GC1Zr9S+wg== - dependencies: - "@polkadot/x-bigint" "12.3.2" - "@polkadot/x-global" "12.3.2" - "@polkadot/x-textdecoder" "12.3.2" - "@polkadot/x-textencoder" "12.3.2" - "@types/bn.js" "^5.1.1" - bn.js "^5.2.1" - tslib "^2.5.3" - "@polkadot/util@12.4.2", "@polkadot/util@^12.3.1", "@polkadot/util@^12.4.2": version "12.4.2" resolved "https://registry.npmjs.org/@polkadot/util/-/util-12.4.2.tgz#65759f4b366c2a787fd21abacab8cf8ab1aebbf9" @@ -1775,7 +1737,7 @@ "@polkadot/wasm-util" "7.2.2" tslib "^2.6.1" -"@polkadot/wasm-crypto@^7.2.1", "@polkadot/wasm-crypto@^7.2.2": +"@polkadot/wasm-crypto@^7.2.2": version "7.2.2" resolved "https://registry.npmjs.org/@polkadot/wasm-crypto/-/wasm-crypto-7.2.2.tgz#3c4b300c0997f4f7e2ddcdf8101d97fa1f5d1a7f" integrity sha512-1ZY1rxUTawYm0m1zylvBMFovNIHYgG2v/XoASNp/EMG5c8FQIxCbhJRaTBA983GVq4lN/IAKREKEp9ZbLLqssA== @@ -1787,21 +1749,13 @@ "@polkadot/wasm-util" "7.2.2" tslib "^2.6.1" -"@polkadot/wasm-util@7.2.2", "@polkadot/wasm-util@^7.2.1", "@polkadot/wasm-util@^7.2.2": +"@polkadot/wasm-util@7.2.2", "@polkadot/wasm-util@^7.2.2": version "7.2.2" resolved "https://registry.npmjs.org/@polkadot/wasm-util/-/wasm-util-7.2.2.tgz#f8aa62eba9a35466aa23f3c5634f3e8dbd398bbf" integrity sha512-N/25960ifCc56sBlJZ2h5UBpEPvxBmMLgwYsl7CUuT+ea2LuJW9Xh8VHDN/guYXwmm92/KvuendYkEUykpm/JQ== dependencies: tslib "^2.6.1" -"@polkadot/x-bigint@12.3.2": - version "12.3.2" - resolved "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-12.3.2.tgz#0e99489cc7938bed40762aaaed58ded6850ab54b" - integrity sha512-JLqLgfGXe/x+hZJETd5ZqfpVsbwyMsH5Nn1Q20ineMMjXN/ig+kVR8Mc15LXBMuw4g7LldFW6UUrotWnuMI8Yw== - dependencies: - "@polkadot/x-global" "12.3.2" - tslib "^2.5.3" - "@polkadot/x-bigint@12.4.2", "@polkadot/x-bigint@^12.3.1": version "12.4.2" resolved "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-12.4.2.tgz#a63c9c926443231206726103d06c117ac2248de8" @@ -1819,13 +1773,6 @@ node-fetch "^3.3.2" tslib "^2.6.2" -"@polkadot/x-global@12.3.2": - version "12.3.2" - resolved "https://registry.npmjs.org/@polkadot/x-global/-/x-global-12.3.2.tgz#04ac0b0e559a35107f0b95ff7889fcade3796aa3" - integrity sha512-yVZq6oIegjlyh5rUZiTklgu+fL+W/DG1ypEa02683tUCB3avV5cA3PAHKptMSlb6FpweHu37lKKrqfAWrraDxg== - dependencies: - tslib "^2.5.3" - "@polkadot/x-global@12.4.2", "@polkadot/x-global@^12.3.1": version "12.4.2" resolved "https://registry.npmjs.org/@polkadot/x-global/-/x-global-12.4.2.tgz#cc6ed596698678f98a53547b9adb712eadfd5175" @@ -1833,14 +1780,6 @@ dependencies: tslib "^2.6.2" -"@polkadot/x-randomvalues@12.3.2": - version "12.3.2" - resolved "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-12.3.2.tgz#43ac489a998098bdd40b3f82f28adb5b542db2a5" - integrity sha512-ywjIs8CWpvOGmq+3cGCNPOHxAjPHdBUiXyDccftx5BRVdmtbt36gK/V84bKr6Xs73FGu0jprUAOSRRsLZX/3dg== - dependencies: - "@polkadot/x-global" "12.3.2" - tslib "^2.5.3" - "@polkadot/x-randomvalues@12.4.2": version "12.4.2" resolved "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-12.4.2.tgz#399a7f831e465e6cd5aea64f8220693b07be86fa" @@ -1849,14 +1788,6 @@ "@polkadot/x-global" "12.4.2" tslib "^2.6.2" -"@polkadot/x-textdecoder@12.3.2": - version "12.3.2" - resolved "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-12.3.2.tgz#bbd5682744f3552ce5d4d792ff48a3ca525eafcf" - integrity sha512-lY5bfA5xArJRWEJlYOlQQMJeTjWD8s0yMhchirVgf5xj8Id9vPGeUoneH+VFDEwgXxrqBvDFJ4smN4T/r6a/fg== - dependencies: - "@polkadot/x-global" "12.3.2" - tslib "^2.5.3" - "@polkadot/x-textdecoder@12.4.2": version "12.4.2" resolved "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-12.4.2.tgz#fea941decbe32d24aa3f951a511bf576dc104826" @@ -1865,14 +1796,6 @@ "@polkadot/x-global" "12.4.2" tslib "^2.6.2" -"@polkadot/x-textencoder@12.3.2": - version "12.3.2" - resolved "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-12.3.2.tgz#223e6f6dd78e2d81c6dcc6f244c76ceae7b08e32" - integrity sha512-iP3qEBiHzBckQ9zeY7ZHRWuu7mCEg5SMpOugs6UODRk8sx6KHzGQYlghBbWLit0uppPDVE0ifEwZ2n73djJHWQ== - dependencies: - "@polkadot/x-global" "12.3.2" - tslib "^2.5.3" - "@polkadot/x-textencoder@12.4.2": version "12.4.2" resolved "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-12.4.2.tgz#a717fe2701ade5648600ff3a34d4d1224d916ee3" @@ -1949,7 +1872,7 @@ "@substrate/connect-extension-protocol" "^1.0.1" smoldot "1.0.13" -"@substrate/ss58-registry@^1.40.0", "@substrate/ss58-registry@^1.43.0": +"@substrate/ss58-registry@^1.43.0": version "1.43.0" resolved "https://registry.npmjs.org/@substrate/ss58-registry/-/ss58-registry-1.43.0.tgz#93108e45cb7ef6d82560c153e3692c2aa1c711b3" integrity sha512-USEkXA46P9sqClL7PZv0QFsit4S8Im97wchKG0/H/9q3AT/S76r40UHfCr4Un7eBJPE23f7fU9BZ0ITpP9MCsA== From 99162ccc2eca05bc09b93dab59349497db72e734 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 31 Aug 2023 21:34:42 +0000 Subject: [PATCH 402/435] Bump @dotlottie/player-component from 2.5.0 to 2.5.1 Bumps [@dotlottie/player-component](https://github.com/dotlottie/player-component) from 2.5.0 to 2.5.1. - [Release notes](https://github.com/dotlottie/player-component/releases) - [Commits](https://github.com/dotlottie/player-component/compare/@dotlottie/player-component@2.5.0...@dotlottie/player-component@2.5.1) --- updated-dependencies: - dependency-name: "@dotlottie/player-component" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index a5fe8e5174..e18cc7c9d8 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "visualizer": "vite-bundle-visualizer" }, "dependencies": { - "@dotlottie/player-component": "^2.5.0", + "@dotlottie/player-component": "^2.5.1", "@fortawesome/fontawesome-svg-core": "^6.4.2", "@fortawesome/free-brands-svg-icons": "^6.4.2", "@fortawesome/free-regular-svg-icons": "^6.4.2", diff --git a/yarn.lock b/yarn.lock index 7356482c6c..9e24c2dd0a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1061,10 +1061,10 @@ "@babel/helper-validator-identifier" "^7.22.5" to-fast-properties "^2.0.0" -"@dotlottie/player-component@^2.5.0": - version "2.5.0" - resolved "https://registry.npmjs.org/@dotlottie/player-component/-/player-component-2.5.0.tgz#1a2498bd396031dc7b30b05d74ce826b55e43316" - integrity sha512-SGMFTkHgE89B1myzjNnykJFxHj0jcPWnVH/Avc+/HHboGDyNawM4zzMlGh3wP0KX0qlMMbFoj/Pcs5ku2ZI3Tg== +"@dotlottie/player-component@^2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@dotlottie/player-component/-/player-component-2.5.1.tgz#0cc58b22701c587ea3d898e919e859cd472d5b3d" + integrity sha512-oq8621B1m7CreQRp5YlEGyTwTGxonjQF6CGoZ4j2AtsJgqFqXRdaCpOwm6lyloTHzJMVwsl7VktGHd5QYtDuAQ== dependencies: lit "^2.7.5" From 77ee2b6b89ea326b6f4282c20c60a01ae8cded2d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 31 Aug 2023 21:35:04 +0000 Subject: [PATCH 403/435] Bump @polkadot-cloud/utils from 0.0.8 to 0.0.9 Bumps [@polkadot-cloud/utils](https://github.com/paritytech/polkadot-cloud) from 0.0.8 to 0.0.9. - [Release notes](https://github.com/paritytech/polkadot-cloud/releases) - [Commits](https://github.com/paritytech/polkadot-cloud/commits) --- updated-dependencies: - dependency-name: "@polkadot-cloud/utils" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index e18cc7c9d8..fe430233dd 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "@polkadot-cloud/community": "^0.1.10", "@polkadot-cloud/core": "^0.1.12", "@polkadot-cloud/react": "^0.1.32", - "@polkadot-cloud/utils": "^0.0.8", + "@polkadot-cloud/utils": "^0.0.9", "@polkadot/api": "^10.9.1", "@polkadot/keyring": "^12.1.1", "@polkadot/rpc-provider": "^10.9.1", diff --git a/yarn.lock b/yarn.lock index 9e24c2dd0a..e94dbbe0ad 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1483,10 +1483,10 @@ resolved "https://registry.npmjs.org/@polkadot-cloud/utils/-/utils-0.0.6.tgz#ea0fc18c6af7cd6a1d14ae6674f19b1b3ef82347" integrity sha512-alm1zdqRcuBm9a59jy0yPKWY4FTenQTKvLSrX/+8aV0YbkwQ6vBkUwhs3FMi5GI52pC68X6VO5DzwVscg6kvEg== -"@polkadot-cloud/utils@^0.0.8": - version "0.0.8" - resolved "https://registry.npmjs.org/@polkadot-cloud/utils/-/utils-0.0.8.tgz#667a8111b897a8f89fa87ff4d728d85cccf00f58" - integrity sha512-XOFxz5Z+q6ZSj7Gs5FhfW3q/o9qQVX344g34l+wiNraowoMTqEv4P/1MqVnMTcOf3FWqJBPbKKDbJVbSB1IEFw== +"@polkadot-cloud/utils@^0.0.9": + version "0.0.9" + resolved "https://registry.yarnpkg.com/@polkadot-cloud/utils/-/utils-0.0.9.tgz#e0d4b7a15fc42b4f321eb8b0182329b4367c573b" + integrity sha512-14EowuGj6jl+zf6qXEikaDKkvFREqj8YXs9Z8vgQpdQ55LgXD47M0D5SSKFIfrOCNFymgAXePYru5U0SfxWoLg== "@polkadot/api-augment@10.9.1": version "10.9.1" From 72a5b8b39648d8f4ae9c276ff1dbcf50e5007265 Mon Sep 17 00:00:00 2001 From: Nikos Kontakis <wirednkod@gmail.com> Date: Fri, 1 Sep 2023 15:56:08 +0300 Subject: [PATCH 404/435] remove clipAddress and replace it with the more advanced EllipsisFn --- package.json | 2 +- src/contexts/Connect/index.tsx | 4 ++-- src/contexts/Hardware/Vault.tsx | 4 ++-- src/contexts/Proxies/index.tsx | 4 ++-- src/library/Account/Default.tsx | 8 ++++---- src/library/Account/Pool.tsx | 4 ++-- src/library/ListItem/Labels/Identity.tsx | 4 ++-- src/library/ListItem/Labels/PoolIdentity.tsx | 4 ++-- src/modals/Accounts/Account.tsx | 4 ++-- src/modals/ChangePoolRoles/RoleChange.tsx | 6 +++--- src/modals/ImportLedger/Addresses.tsx | 4 ++-- src/modals/ImportLedger/index.tsx | 4 ++-- src/modals/ValidatorMetrics/index.tsx | 4 ++-- src/pages/Nominate/Setup/Summary/index.tsx | 4 ++-- src/pages/Overview/ActiveAccounts/Item.tsx | 6 +++--- yarn.lock | 10 +++++----- 16 files changed, 38 insertions(+), 38 deletions(-) diff --git a/package.json b/package.json index fe430233dd..bb21511959 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "@polkadot-cloud/community": "^0.1.10", "@polkadot-cloud/core": "^0.1.12", "@polkadot-cloud/react": "^0.1.32", - "@polkadot-cloud/utils": "^0.0.9", + "@polkadot-cloud/utils": "^0.0.11", "@polkadot/api": "^10.9.1", "@polkadot/keyring": "^12.1.1", "@polkadot/rpc-provider": "^10.9.1", diff --git a/src/contexts/Connect/index.tsx b/src/contexts/Connect/index.tsx index 0c8670c133..c094091f53 100644 --- a/src/contexts/Connect/index.tsx +++ b/src/contexts/Connect/index.tsx @@ -4,7 +4,7 @@ import type { VoidFn } from '@polkadot/api/types'; import Keyring from '@polkadot/keyring'; import { - clipAddress, + ellipsisFn, localStorageOrDefault, setStateWithRef, } from '@polkadot-cloud/utils'; @@ -464,7 +464,7 @@ export const ConnectProvider = ({ const newAccount = { address: formatted, network: network.name, - name: clipAddress(address), + name: ellipsisFn(address), source: 'external', addedBy, }; diff --git a/src/contexts/Hardware/Vault.tsx b/src/contexts/Hardware/Vault.tsx index e4cb9db982..0f0ce208f1 100644 --- a/src/contexts/Hardware/Vault.tsx +++ b/src/contexts/Hardware/Vault.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { clipAddress, setStateWithRef } from '@polkadot-cloud/utils'; +import { ellipsisFn, setStateWithRef } from '@polkadot-cloud/utils'; import React, { useEffect, useRef, useState } from 'react'; import { useApi } from 'contexts/Api'; import type { VaultAccount } from 'contexts/Connect/types'; @@ -39,7 +39,7 @@ export const VaultHardwareProvider = ({ const account = { address, network: network.name, - name: clipAddress(address), + name: ellipsisFn(address), source: 'vault', index, }; diff --git a/src/contexts/Proxies/index.tsx b/src/contexts/Proxies/index.tsx index 6031186e72..d900ef8111 100644 --- a/src/contexts/Proxies/index.tsx +++ b/src/contexts/Proxies/index.tsx @@ -4,7 +4,7 @@ import type { VoidFn } from '@polkadot/api/types'; import { addedTo, - clipAddress, + ellipsisFn, localStorageOrDefault, matchedProperties, removedFrom, @@ -151,7 +151,7 @@ export const ProxiesProvider = ({ .filter(({ proxyType }) => isSupportedProxy(proxyType)) .map(({ delegator, proxyType }) => ({ address: delegator, - name: clipAddress(delegator), + name: ellipsisFn(delegator), proxyType, })); return proxiedAccounts; diff --git a/src/library/Account/Default.tsx b/src/library/Account/Default.tsx index 7bbc6f3d8b..d940ae9197 100644 --- a/src/library/Account/Default.tsx +++ b/src/library/Account/Default.tsx @@ -3,7 +3,7 @@ import { faGlasses } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { clipAddress, remToUnit } from '@polkadot-cloud/utils'; +import { ellipsisFn, remToUnit } from '@polkadot-cloud/utils'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; @@ -36,15 +36,15 @@ export const Account = ({ case 'name': setDisplayValue( value !== '' - ? getAccount(value)?.name || clipAddress(value) - : clipAddress(value) + ? getAccount(value)?.name || ellipsisFn(value) + : ellipsisFn(value) ); break; case 'text': setDisplayValue(value); break; default: - if (value) setDisplayValue(clipAddress(value)); + if (value) setDisplayValue(ellipsisFn(value)); } // if title prop is provided, override `displayValue` diff --git a/src/library/Account/Pool.tsx b/src/library/Account/Pool.tsx index c401f97b44..b8f6e8a752 100644 --- a/src/library/Account/Pool.tsx +++ b/src/library/Account/Pool.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only import { u8aToString, u8aUnwrapBytes } from '@polkadot/util'; -import { clipAddress, remToUnit } from '@polkadot-cloud/utils'; +import { ellipsisFn, remToUnit } from '@polkadot-cloud/utils'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; @@ -58,7 +58,7 @@ export const Account = ({ const syncing = metaData === undefined; // display value - const defaultDisplay = clipAddress(pool.addresses.stash); + const defaultDisplay = ellipsisFn(pool.addresses.stash); let display = syncing ? t('syncing') : metaData ?? defaultDisplay; // check if super identity has been byte encoded diff --git a/src/library/ListItem/Labels/Identity.tsx b/src/library/ListItem/Labels/Identity.tsx index 1533a793e4..2584531e88 100644 --- a/src/library/ListItem/Labels/Identity.tsx +++ b/src/library/ListItem/Labels/Identity.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { clipAddress } from '@polkadot-cloud/utils'; +import { ellipsisFn } from '@polkadot-cloud/utils'; import { useEffect, useState } from 'react'; import { useValidators } from 'contexts/Validators/ValidatorEntries'; import { PolkadotIcon } from '@polkadot-cloud/react'; @@ -42,7 +42,7 @@ export const Identity = ({ address }: IdentityProps) => { {identitiesSynced && supersSynced && display !== null ? ( <h4>{display}</h4> ) : ( - <h4>{clipAddress(address)}</h4> + <h4>{ellipsisFn(address, 6)}</h4> )} </div> </IdentityWrapper> diff --git a/src/library/ListItem/Labels/PoolIdentity.tsx b/src/library/ListItem/Labels/PoolIdentity.tsx index b1bda42d58..f96541d5e7 100644 --- a/src/library/ListItem/Labels/PoolIdentity.tsx +++ b/src/library/ListItem/Labels/PoolIdentity.tsx @@ -1,7 +1,7 @@ // Copyright 2023 @paritytech/polkadot-staking-dashboard authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { clipAddress, determinePoolDisplay } from '@polkadot-cloud/utils'; +import { ellipsisFn, determinePoolDisplay } from '@polkadot-cloud/utils'; import { useBondedPools } from 'contexts/Pools/BondedPools'; import { PolkadotIcon } from '@polkadot-cloud/react'; import { useTheme } from 'contexts/Themes'; @@ -36,7 +36,7 @@ export const PoolIdentity = ({ /> <div className="inner"> {!metadataSynced ? ( - <h4>{clipAddress(addresses.stash)}</h4> + <h4>{ellipsisFn(addresses.stash)}</h4> ) : ( <h4>{display}</h4> )} diff --git a/src/modals/Accounts/Account.tsx b/src/modals/Accounts/Account.tsx index 0a95a810b6..6eb4b8b22e 100644 --- a/src/modals/Accounts/Account.tsx +++ b/src/modals/Accounts/Account.tsx @@ -3,7 +3,7 @@ import { faGlasses } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { clipAddress, planckToUnit } from '@polkadot-cloud/utils'; +import { ellipsisFn, planckToUnit } from '@polkadot-cloud/utils'; import { useTranslation } from 'react-i18next'; import { Extensions } from '@polkadot-cloud/community/extensions'; import { useConnect } from 'contexts/Connect'; @@ -107,7 +107,7 @@ export const AccountButton = ({ </span> </> )} - {meta?.name ?? clipAddress(address ?? '')} + {meta?.name ?? ellipsisFn(address ?? '')} </span> {meta?.source === 'external' && ( <div diff --git a/src/modals/ChangePoolRoles/RoleChange.tsx b/src/modals/ChangePoolRoles/RoleChange.tsx index 73e0fa962e..3e2c8c63f8 100644 --- a/src/modals/ChangePoolRoles/RoleChange.tsx +++ b/src/modals/ChangePoolRoles/RoleChange.tsx @@ -3,7 +3,7 @@ import { faAnglesRight } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { clipAddress, remToUnit } from '@polkadot-cloud/utils'; +import { ellipsisFn, remToUnit } from '@polkadot-cloud/utils'; import { PolkadotIcon } from '@polkadot-cloud/react'; import { useTheme } from 'contexts/Themes'; import { RoleChangeWrapper } from './Wrapper'; @@ -24,7 +24,7 @@ export const RoleChange = ({ roleName, oldAddress, newAddress }: any) => { <input className="input" disabled - value={oldAddress ? clipAddress(oldAddress) : ''} + value={oldAddress ? ellipsisFn(oldAddress) : ''} /> </div> <span> @@ -40,7 +40,7 @@ export const RoleChange = ({ roleName, oldAddress, newAddress }: any) => { <input className="input" disabled - value={newAddress ? clipAddress(newAddress) : ''} + value={newAddress ? ellipsisFn(newAddress) : ''} /> </div> </div> diff --git a/src/modals/ImportLedger/Addresses.tsx b/src/modals/ImportLedger/Addresses.tsx index 64251a7380..8c31a33e38 100644 --- a/src/modals/ImportLedger/Addresses.tsx +++ b/src/modals/ImportLedger/Addresses.tsx @@ -7,7 +7,7 @@ import { HardwareAddress, PolkadotIcon, } from '@polkadot-cloud/react'; -import { clipAddress, unescape } from '@polkadot-cloud/utils'; +import { ellipsisFn, unescape } from '@polkadot-cloud/utils'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; import { useConnect } from 'contexts/Connect'; @@ -72,7 +72,7 @@ export const Addresess = ({ addresses, handleLedgerLoop }: AnyJson) => { ); return localAddress?.name ? unescape(localAddress.name) - : clipAddress(address); + : ellipsisFn(address); })(); return ( diff --git a/src/modals/ImportLedger/index.tsx b/src/modals/ImportLedger/index.tsx index aa752c726b..b0c03404c6 100644 --- a/src/modals/ImportLedger/index.tsx +++ b/src/modals/ImportLedger/index.tsx @@ -1,7 +1,7 @@ // Copyright 2022 @paritytech/polkadot-native authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { clipAddress, setStateWithRef } from '@polkadot-cloud/utils'; +import { ellipsisFn, setStateWithRef } from '@polkadot-cloud/utils'; import React, { useEffect, useRef, useState } from 'react'; import { useApi } from 'contexts/Api'; import { useLedgerHardware } from 'contexts/Hardware/Ledger'; @@ -105,7 +105,7 @@ export const ImportLedger: React.FC = () => { index: options.accountIndex, pubKey, address, - name: clipAddress(address), + name: ellipsisFn(address), network: network.name, })); diff --git a/src/modals/ValidatorMetrics/index.tsx b/src/modals/ValidatorMetrics/index.tsx index cf1850fa85..66e6322e3c 100644 --- a/src/modals/ValidatorMetrics/index.tsx +++ b/src/modals/ValidatorMetrics/index.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only import { ButtonHelp, ModalPadding, PolkadotIcon } from '@polkadot-cloud/react'; -import { clipAddress, planckToUnit } from '@polkadot-cloud/utils'; +import { ellipsisFn, planckToUnit } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useEffect, useState, useRef } from 'react'; import { useTranslation } from 'react-i18next'; @@ -91,7 +91,7 @@ export const ValidatorMetrics = () => { /> <h2>    - {identity === null ? clipAddress(address) : identity} + {identity === null ? ellipsisFn(address) : identity} </h2> </div> diff --git a/src/pages/Nominate/Setup/Summary/index.tsx b/src/pages/Nominate/Setup/Summary/index.tsx index fde9a870ed..30f78434e4 100644 --- a/src/pages/Nominate/Setup/Summary/index.tsx +++ b/src/pages/Nominate/Setup/Summary/index.tsx @@ -3,7 +3,7 @@ import { faCheckCircle } from '@fortawesome/free-regular-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { clipAddress, unitToPlanck } from '@polkadot-cloud/utils'; +import { ellipsisFn, unitToPlanck } from '@polkadot-cloud/utils'; import BigNumber from 'bignumber.js'; import { useTranslation } from 'react-i18next'; import { useApi } from 'contexts/Api'; @@ -94,7 +94,7 @@ export const Summary = ({ section }: SetupStepProps) => { </div> <div> {payee.destination === 'Account' - ? `${payeeDisplay}: ${clipAddress(payee.account)}` + ? `${payeeDisplay}: ${ellipsisFn(payee.account)}` : payeeDisplay} </div> </section> diff --git a/src/pages/Overview/ActiveAccounts/Item.tsx b/src/pages/Overview/ActiveAccounts/Item.tsx index d5d3ab4822..959d4921d2 100644 --- a/src/pages/Overview/ActiveAccounts/Item.tsx +++ b/src/pages/Overview/ActiveAccounts/Item.tsx @@ -4,7 +4,7 @@ import { faCopy } from '@fortawesome/free-regular-svg-icons'; import { faArrowLeft } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { clipAddress, remToUnit } from '@polkadot-cloud/utils'; +import { ellipsisFn, remToUnit } from '@polkadot-cloud/utils'; import { useTranslation } from 'react-i18next'; import { useConnect } from 'contexts/Connect'; import { useNotifications } from 'contexts/Notifications'; @@ -70,7 +70,7 @@ export const Item = ({ address, delegate = null }: ActiveAccountProps) => { </span> </> )} - {clipAddress(primaryAddress)} + {ellipsisFn(primaryAddress)} <button type="button" onClick={() => { @@ -86,7 +86,7 @@ export const Item = ({ address, delegate = null }: ActiveAccountProps) => { transform="shrink-4" /> </button> - {accountData.name !== clipAddress(primaryAddress) && ( + {accountData.name !== ellipsisFn(primaryAddress) && ( <> <div className="sep" /> <div className="rest"> diff --git a/yarn.lock b/yarn.lock index e94dbbe0ad..96d6e4fd0b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1478,16 +1478,16 @@ "@polkadot-cloud/utils" "^0.0.6" react-error-boundary "^4.0.11" +"@polkadot-cloud/utils@^0.0.11": + version "0.0.11" + resolved "https://registry.yarnpkg.com/@polkadot-cloud/utils/-/utils-0.0.11.tgz#1b5afeffb12f6df8958eb6285a8020c28d06eadf" + integrity sha512-h73gDY5IDUIVS3KboPE7F5ks0CwVyqYE+jVpGI1kiV5aUseluSaOqRj3enZNWm2q04m358ZUgVxjZ9g9vSoJeA== + "@polkadot-cloud/utils@^0.0.6": version "0.0.6" resolved "https://registry.npmjs.org/@polkadot-cloud/utils/-/utils-0.0.6.tgz#ea0fc18c6af7cd6a1d14ae6674f19b1b3ef82347" integrity sha512-alm1zdqRcuBm9a59jy0yPKWY4FTenQTKvLSrX/+8aV0YbkwQ6vBkUwhs3FMi5GI52pC68X6VO5DzwVscg6kvEg== -"@polkadot-cloud/utils@^0.0.9": - version "0.0.9" - resolved "https://registry.yarnpkg.com/@polkadot-cloud/utils/-/utils-0.0.9.tgz#e0d4b7a15fc42b4f321eb8b0182329b4367c573b" - integrity sha512-14EowuGj6jl+zf6qXEikaDKkvFREqj8YXs9Z8vgQpdQ55LgXD47M0D5SSKFIfrOCNFymgAXePYru5U0SfxWoLg== - "@polkadot/api-augment@10.9.1": version "10.9.1" resolved "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-10.9.1.tgz#9fc81b81903229bb23b0b16783e97ec52a5d4f1b" From f1c6a16ee692bd5a6960d09cb56a5f180f89a72b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Sep 2023 21:24:19 +0000 Subject: [PATCH 405/435] Bump @polkadot-cloud/utils from 0.0.9 to 0.0.11 Bumps [@polkadot-cloud/utils](https://github.com/paritytech/polkadot-cloud) from 0.0.9 to 0.0.11. - [Release notes](https://github.com/paritytech/polkadot-cloud/releases) - [Commits](https://github.com/paritytech/polkadot-cloud/commits) --- updated-dependencies: - dependency-name: "@polkadot-cloud/utils" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index fe430233dd..bb21511959 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "@polkadot-cloud/community": "^0.1.10", "@polkadot-cloud/core": "^0.1.12", "@polkadot-cloud/react": "^0.1.32", - "@polkadot-cloud/utils": "^0.0.9", + "@polkadot-cloud/utils": "^0.0.11", "@polkadot/api": "^10.9.1", "@polkadot/keyring": "^12.1.1", "@polkadot/rpc-provider": "^10.9.1", diff --git a/yarn.lock b/yarn.lock index e94dbbe0ad..96d6e4fd0b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1478,16 +1478,16 @@ "@polkadot-cloud/utils" "^0.0.6" react-error-boundary "^4.0.11" +"@polkadot-cloud/utils@^0.0.11": + version "0.0.11" + resolved "https://registry.yarnpkg.com/@polkadot-cloud/utils/-/utils-0.0.11.tgz#1b5afeffb12f6df8958eb6285a8020c28d06eadf" + integrity sha512-h73gDY5IDUIVS3KboPE7F5ks0CwVyqYE+jVpGI1kiV5aUseluSaOqRj3enZNWm2q04m358ZUgVxjZ9g9vSoJeA== + "@polkadot-cloud/utils@^0.0.6": version "0.0.6" resolved "https://registry.npmjs.org/@polkadot-cloud/utils/-/utils-0.0.6.tgz#ea0fc18c6af7cd6a1d14ae6674f19b1b3ef82347" integrity sha512-alm1zdqRcuBm9a59jy0yPKWY4FTenQTKvLSrX/+8aV0YbkwQ6vBkUwhs3FMi5GI52pC68X6VO5DzwVscg6kvEg== -"@polkadot-cloud/utils@^0.0.9": - version "0.0.9" - resolved "https://registry.yarnpkg.com/@polkadot-cloud/utils/-/utils-0.0.9.tgz#e0d4b7a15fc42b4f321eb8b0182329b4367c573b" - integrity sha512-14EowuGj6jl+zf6qXEikaDKkvFREqj8YXs9Z8vgQpdQ55LgXD47M0D5SSKFIfrOCNFymgAXePYru5U0SfxWoLg== - "@polkadot/api-augment@10.9.1": version "10.9.1" resolved "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-10.9.1.tgz#9fc81b81903229bb23b0b16783e97ec52a5d4f1b" From 529f452cb7158488924df32fa97e49792b575437 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Sep 2023 21:09:08 +0000 Subject: [PATCH 406/435] Bump actions/checkout from 3 to 4 Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> --- .github/workflows/auto-merge.yml | 2 +- .github/workflows/ci.yml | 4 ++-- .github/workflows/gh-publish.yml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/auto-merge.yml b/.github/workflows/auto-merge.yml index 718dcae1c6..0fd2326124 100644 --- a/.github/workflows/auto-merge.yml +++ b/.github/workflows/auto-merge.yml @@ -10,7 +10,7 @@ jobs: auto-merge: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ahmadnassri/action-dependabot-auto-merge@v2 with: target: minor diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6b19a9322e..93220e3d27 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ jobs: validate-locales: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Use Node.js 16.x uses: actions/setup-node@v3 with: @@ -28,7 +28,7 @@ jobs: matrix: node-version: [18.x, 19.x, 20.x] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: diff --git a/.github/workflows/gh-publish.yml b/.github/workflows/gh-publish.yml index 728e84f833..4c5ba66a52 100644 --- a/.github/workflows/gh-publish.yml +++ b/.github/workflows/gh-publish.yml @@ -8,7 +8,7 @@ jobs: gh-deploy: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3.5.0 + - uses: actions/checkout@v4 - uses: actions/setup-node@v3 with: node-version: 18 From 91c5d2555c169b917afc452a7a94709f704be564 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Sep 2023 21:45:06 +0000 Subject: [PATCH 407/435] Bump @typescript-eslint/parser from 6.5.0 to 6.6.0 Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 6.5.0 to 6.6.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.6.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 52 +++++++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 44 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index e29f0a5df6..cb75b034b5 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "@types/react-qr-reader": "^2.1.4", "@types/react-scroll": "^1.8.6", "@typescript-eslint/eslint-plugin": "^6.5.0", - "@typescript-eslint/parser": "^6.5.0", + "@typescript-eslint/parser": "^6.6.0", "@vitejs/plugin-react-swc": "^3.3.2", "eslint": "^8.48.0", "eslint-config-airbnb": "^19.0.4", diff --git a/yarn.lock b/yarn.lock index e675949339..e1b63c962e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2170,15 +2170,15 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/parser@^6.5.0": - version "6.5.0" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.5.0.tgz#3d6ed231c5e307c5f5f4a0d86893ec01e92b8c77" - integrity sha512-LMAVtR5GN8nY0G0BadkG0XIe4AcNMeyEy3DyhKGAh9k4pLSMBO7rF29JvDBpZGCmp5Pgz5RLHP6eCpSYZJQDuQ== - dependencies: - "@typescript-eslint/scope-manager" "6.5.0" - "@typescript-eslint/types" "6.5.0" - "@typescript-eslint/typescript-estree" "6.5.0" - "@typescript-eslint/visitor-keys" "6.5.0" +"@typescript-eslint/parser@^6.6.0": + version "6.6.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.6.0.tgz#fe323a7b4eafb6d5ea82b96216561810394a739e" + integrity sha512-setq5aJgUwtzGrhW177/i+DMLqBaJbdwGj2CPIVFFLE0NCliy5ujIdLHd2D1ysmlmsjdL2GWW+hR85neEfc12w== + dependencies: + "@typescript-eslint/scope-manager" "6.6.0" + "@typescript-eslint/types" "6.6.0" + "@typescript-eslint/typescript-estree" "6.6.0" + "@typescript-eslint/visitor-keys" "6.6.0" debug "^4.3.4" "@typescript-eslint/scope-manager@6.5.0": @@ -2189,6 +2189,14 @@ "@typescript-eslint/types" "6.5.0" "@typescript-eslint/visitor-keys" "6.5.0" +"@typescript-eslint/scope-manager@6.6.0": + version "6.6.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.6.0.tgz#57105d4419d6de971f7d2c30a2ff4ac40003f61a" + integrity sha512-pT08u5W/GT4KjPUmEtc2kSYvrH8x89cVzkA0Sy2aaOUIw6YxOIjA8ilwLr/1fLjOedX1QAuBpG9XggWqIIfERw== + dependencies: + "@typescript-eslint/types" "6.6.0" + "@typescript-eslint/visitor-keys" "6.6.0" + "@typescript-eslint/type-utils@6.5.0": version "6.5.0" resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.5.0.tgz#6d246c93739282bc0d2e623f28d0dec6cfcc38d7" @@ -2204,6 +2212,11 @@ resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.5.0.tgz#f4e55cfd99ac5346ea772770bf212a3e689a8f04" integrity sha512-eqLLOEF5/lU8jW3Bw+8auf4lZSbbljHR2saKnYqON12G/WsJrGeeDHWuQePoEf9ro22+JkbPfWQwKEC5WwLQ3w== +"@typescript-eslint/types@6.6.0": + version "6.6.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.6.0.tgz#95e7ea650a2b28bc5af5ea8907114a48f54618c2" + integrity sha512-CB6QpJQ6BAHlJXdwUmiaXDBmTqIE2bzGTDLADgvqtHWuhfNP3rAOK7kAgRMAET5rDRr9Utt+qAzRBdu3AhR3sg== + "@typescript-eslint/typescript-estree@6.5.0": version "6.5.0" resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.5.0.tgz#1cef6bc822585e9ef89d88834bc902d911d747ed" @@ -2217,6 +2230,19 @@ semver "^7.5.4" ts-api-utils "^1.0.1" +"@typescript-eslint/typescript-estree@6.6.0": + version "6.6.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.6.0.tgz#373c420d2e12c28220f4a83352280a04823a91b7" + integrity sha512-hMcTQ6Al8MP2E6JKBAaSxSVw5bDhdmbCEhGW/V8QXkb9oNsFkA4SBuOMYVPxD3jbtQ4R/vSODBsr76R6fP3tbA== + dependencies: + "@typescript-eslint/types" "6.6.0" + "@typescript-eslint/visitor-keys" "6.6.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.5.4" + ts-api-utils "^1.0.1" + "@typescript-eslint/utils@6.5.0": version "6.5.0" resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.5.0.tgz#6668bee4f7f24978b11df8a2ea42d56eebc4662c" @@ -2238,6 +2264,14 @@ "@typescript-eslint/types" "6.5.0" eslint-visitor-keys "^3.4.1" +"@typescript-eslint/visitor-keys@6.6.0": + version "6.6.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.6.0.tgz#1109088b4346c8b2446f3845db526374d9a3bafc" + integrity sha512-L61uJT26cMOfFQ+lMZKoJNbAEckLe539VhTxiGHrWl5XSKQgA0RTBZJW2HFPy5T0ZvPVSD93QsrTKDkfNwJGyQ== + dependencies: + "@typescript-eslint/types" "6.6.0" + eslint-visitor-keys "^3.4.1" + "@vitejs/plugin-react-swc@^3.3.2": version "3.3.2" resolved "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.3.2.tgz#34a82c1728066f48a86dfecb2f15df60f89207fb" From 535c9162ab0e10880a1aef171f13ae1d4e2f1990 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Sep 2023 21:45:43 +0000 Subject: [PATCH 408/435] Bump @polkadot-cloud/core from 0.1.12 to 0.1.13 Bumps [@polkadot-cloud/core](https://github.com/paritytech/polkadot-cloud) from 0.1.12 to 0.1.13. - [Release notes](https://github.com/paritytech/polkadot-cloud/releases) - [Commits](https://github.com/paritytech/polkadot-cloud/commits) --- updated-dependencies: - dependency-name: "@polkadot-cloud/core" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index cb75b034b5..2c084d03c0 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "@fortawesome/react-fontawesome": "^0.2.0", "@ledgerhq/hw-transport-webhid": "^6.27.19", "@polkadot-cloud/community": "^0.1.10", - "@polkadot-cloud/core": "^0.1.12", + "@polkadot-cloud/core": "^0.1.13", "@polkadot-cloud/react": "^0.1.32", "@polkadot-cloud/utils": "^0.0.11", "@polkadot/api": "^10.9.1", diff --git a/yarn.lock b/yarn.lock index e1b63c962e..4926988907 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1453,10 +1453,10 @@ resolved "https://registry.npmjs.org/@polkadot-cloud/community/-/community-0.1.10.tgz#d2a99190c0a89a67275264084e6e750269990986" integrity sha512-VT38rqOvORuYdPLigS8UNwvitoc0DFZWEazsvHxz9bTnPBL/7M3LujWXO14OSGw+FTvfz4RzPwovmW4u7RoT/Q== -"@polkadot-cloud/core@^0.1.12": - version "0.1.12" - resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.1.12.tgz#ecb4a345f7b518249a0a5e1d53dd7eea24316e81" - integrity sha512-HRLF0t6ezFxJnu4yPS6eubzW5ZRWWhr6ZbjvKeJ4u6pj7fNcCeZaFYVTIaVzpoDVYFeGNEe/6MQ1ENSY7fyhXg== +"@polkadot-cloud/core@^0.1.12", "@polkadot-cloud/core@^0.1.13": + version "0.1.13" + resolved "https://registry.yarnpkg.com/@polkadot-cloud/core/-/core-0.1.13.tgz#010c363431fdf7e1b9b757b761275836c5b8d351" + integrity sha512-MaMWctssdptEUqzAO5XwhjpSF/kTY+2Gn/d6EwnfkuVnnIGlKqPvn5JyIi2qHtqdeVrJTZUo5b/HFshC8kdKDw== "@polkadot-cloud/react@^0.1.29": version "0.1.31" From 528f10671fb95f8939c8170d30c745078f98af7a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Sep 2023 21:46:29 +0000 Subject: [PATCH 409/435] Bump framer-motion from 10.16.2 to 10.16.3 Bumps [framer-motion](https://github.com/framer/motion) from 10.16.2 to 10.16.3. - [Changelog](https://github.com/framer/motion/blob/main/CHANGELOG.md) - [Commits](https://github.com/framer/motion/compare/v10.16.2...v10.16.3) --- updated-dependencies: - dependency-name: framer-motion dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 2c084d03c0..7bb91a6ee5 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "buffer": "^6.0.3", "chart.js": "^4.4.0", "date-fns": "^2.29.3", - "framer-motion": "^10.16.2", + "framer-motion": "^10.16.3", "i18next": "^23.4.6", "i18next-browser-languagedetector": "^7.1.0", "lodash.throttle": "^4.1.1", diff --git a/yarn.lock b/yarn.lock index 4926988907..0381f0c1ed 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3662,10 +3662,10 @@ formdata-polyfill@^4.0.10: dependencies: fetch-blob "^3.1.2" -framer-motion@^10.16.2: - version "10.16.2" - resolved "https://registry.npmjs.org/framer-motion/-/framer-motion-10.16.2.tgz#b737f628f69a883824024124dab452273f73cbba" - integrity sha512-aY6L9YMvqMWtfOQptaUvvr8dp97jskXY5UYLQM0vOPxKeERrG/Z034EIQZ/52u7MeCT0HlCQy3/l0HdUZCB9Tw== +framer-motion@^10.16.3: + version "10.16.3" + resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-10.16.3.tgz#4a5b38286192f82e6864bde52e41a5e87433beda" + integrity sha512-1OMs6wY964hX8YjiCeYQlgrZDbkKvZztnynTUgUZjdzq2au6PZUsodmUY6GAudUgImrWqTrtpSwMbi1ETmIx4A== dependencies: tslib "^2.4.0" optionalDependencies: From 18a1190525747ad5f182243a4a20cb0eefde8dfd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Sep 2023 21:49:09 +0000 Subject: [PATCH 410/435] Bump react-i18next from 13.2.1 to 13.2.2 Bumps [react-i18next](https://github.com/i18next/react-i18next) from 13.2.1 to 13.2.2. - [Changelog](https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md) - [Commits](https://github.com/i18next/react-i18next/compare/v13.2.1...v13.2.2) --- updated-dependencies: - dependency-name: react-i18next dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 7bb91a6ee5..5c17926236 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "react-dom": "^18.2.0", "react-error-boundary": "^4.0.11", "react-helmet": "^6.1.0", - "react-i18next": "^13.2.1", + "react-i18next": "^13.2.2", "react-qr-reader": "^2.2.1", "react-router-dom": "^6.15.0", "react-scroll": "^1.8.9", diff --git a/yarn.lock b/yarn.lock index 0381f0c1ed..e72cc4908b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5030,10 +5030,10 @@ react-helmet@^6.1.0: react-fast-compare "^3.1.1" react-side-effect "^2.1.0" -react-i18next@^13.2.1: - version "13.2.1" - resolved "https://registry.npmjs.org/react-i18next/-/react-i18next-13.2.1.tgz#57cf7c07778281bdb1e0a1fd60ca5fcc35c0a786" - integrity sha512-XhMsnGgJnytWfi2Q70HMYfm+zysPUu1Pz+It6I87WwaeclGY+W8W1c11uENEMNg+Xb+mNrGuo8GEDuQDOgO+oQ== +react-i18next@^13.2.2: + version "13.2.2" + resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-13.2.2.tgz#b1e78ed66a54f4bc819616f68b98221e1b1a1936" + integrity sha512-+nFUkbRByFwnrfDcYqvzBuaeZb+nACHx+fAWN/pZMddWOCJH5hoc21+Sa/N/Lqi6ne6/9wC/qRGOoQhJa6IkEQ== dependencies: "@babel/runtime" "^7.22.5" html-parse-stringify "^3.0.1" From 7a9db3d2960e63080e3076ebea86cedaa6ded2c6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Sep 2023 21:57:25 +0000 Subject: [PATCH 411/435] Bump @typescript-eslint/eslint-plugin from 6.5.0 to 6.6.0 Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 6.5.0 to 6.6.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.6.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 76 +++++++++++++++------------------------------------- 2 files changed, 22 insertions(+), 56 deletions(-) diff --git a/package.json b/package.json index 5c17926236..effdfef493 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "@types/react-helmet": "^6.1.6", "@types/react-qr-reader": "^2.1.4", "@types/react-scroll": "^1.8.6", - "@typescript-eslint/eslint-plugin": "^6.5.0", + "@typescript-eslint/eslint-plugin": "^6.6.0", "@typescript-eslint/parser": "^6.6.0", "@vitejs/plugin-react-swc": "^3.3.2", "eslint": "^8.48.0", diff --git a/yarn.lock b/yarn.lock index e72cc4908b..f6d448a3e0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2153,16 +2153,16 @@ resolved "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz#a136f83b0758698df454e328759dbd3d44555311" integrity sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g== -"@typescript-eslint/eslint-plugin@^6.5.0": - version "6.5.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.5.0.tgz#5cee33edf0d45d5ec773e3b3111206b098ac8599" - integrity sha512-2pktILyjvMaScU6iK3925uvGU87E+N9rh372uGZgiMYwafaw9SXq86U04XPq3UH6tzRvNgBsub6x2DacHc33lw== +"@typescript-eslint/eslint-plugin@^6.6.0": + version "6.6.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.6.0.tgz#19ba09aa34fd504696445100262e5a9e1b1d7024" + integrity sha512-CW9YDGTQnNYMIo5lMeuiIG08p4E0cXrXTbcZ2saT/ETE7dWUrNxlijsQeU04qAAKkILiLzdQz+cGFxCJjaZUmA== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.5.0" - "@typescript-eslint/type-utils" "6.5.0" - "@typescript-eslint/utils" "6.5.0" - "@typescript-eslint/visitor-keys" "6.5.0" + "@typescript-eslint/scope-manager" "6.6.0" + "@typescript-eslint/type-utils" "6.6.0" + "@typescript-eslint/utils" "6.6.0" + "@typescript-eslint/visitor-keys" "6.6.0" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" @@ -2181,14 +2181,6 @@ "@typescript-eslint/visitor-keys" "6.6.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.5.0": - version "6.5.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.5.0.tgz#f2cb20895aaad41b3ad27cc3a338ce8598f261c5" - integrity sha512-A8hZ7OlxURricpycp5kdPTH3XnjG85UpJS6Fn4VzeoH4T388gQJ/PGP4ole5NfKt4WDVhmLaQ/dBLNDC4Xl/Kw== - dependencies: - "@typescript-eslint/types" "6.5.0" - "@typescript-eslint/visitor-keys" "6.5.0" - "@typescript-eslint/scope-manager@6.6.0": version "6.6.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.6.0.tgz#57105d4419d6de971f7d2c30a2ff4ac40003f61a" @@ -2197,39 +2189,21 @@ "@typescript-eslint/types" "6.6.0" "@typescript-eslint/visitor-keys" "6.6.0" -"@typescript-eslint/type-utils@6.5.0": - version "6.5.0" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.5.0.tgz#6d246c93739282bc0d2e623f28d0dec6cfcc38d7" - integrity sha512-f7OcZOkRivtujIBQ4yrJNIuwyCQO1OjocVqntl9dgSIZAdKqicj3xFDqDOzHDlGCZX990LqhLQXWRnQvsapq8A== +"@typescript-eslint/type-utils@6.6.0": + version "6.6.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.6.0.tgz#14f651d13b884915c4fca0d27adeb652a4499e86" + integrity sha512-8m16fwAcEnQc69IpeDyokNO+D5spo0w1jepWWY2Q6y5ZKNuj5EhVQXjtVAeDDqvW6Yg7dhclbsz6rTtOvcwpHg== dependencies: - "@typescript-eslint/typescript-estree" "6.5.0" - "@typescript-eslint/utils" "6.5.0" + "@typescript-eslint/typescript-estree" "6.6.0" + "@typescript-eslint/utils" "6.6.0" debug "^4.3.4" ts-api-utils "^1.0.1" -"@typescript-eslint/types@6.5.0": - version "6.5.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.5.0.tgz#f4e55cfd99ac5346ea772770bf212a3e689a8f04" - integrity sha512-eqLLOEF5/lU8jW3Bw+8auf4lZSbbljHR2saKnYqON12G/WsJrGeeDHWuQePoEf9ro22+JkbPfWQwKEC5WwLQ3w== - "@typescript-eslint/types@6.6.0": version "6.6.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.6.0.tgz#95e7ea650a2b28bc5af5ea8907114a48f54618c2" integrity sha512-CB6QpJQ6BAHlJXdwUmiaXDBmTqIE2bzGTDLADgvqtHWuhfNP3rAOK7kAgRMAET5rDRr9Utt+qAzRBdu3AhR3sg== -"@typescript-eslint/typescript-estree@6.5.0": - version "6.5.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.5.0.tgz#1cef6bc822585e9ef89d88834bc902d911d747ed" - integrity sha512-q0rGwSe9e5Kk/XzliB9h2LBc9tmXX25G0833r7kffbl5437FPWb2tbpIV9wAATebC/018pGa9fwPDuvGN+LxWQ== - dependencies: - "@typescript-eslint/types" "6.5.0" - "@typescript-eslint/visitor-keys" "6.5.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" - "@typescript-eslint/typescript-estree@6.6.0": version "6.6.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.6.0.tgz#373c420d2e12c28220f4a83352280a04823a91b7" @@ -2243,27 +2217,19 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.5.0": - version "6.5.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.5.0.tgz#6668bee4f7f24978b11df8a2ea42d56eebc4662c" - integrity sha512-9nqtjkNykFzeVtt9Pj6lyR9WEdd8npPhhIPM992FWVkZuS6tmxHfGVnlUcjpUP2hv8r4w35nT33mlxd+Be1ACQ== +"@typescript-eslint/utils@6.6.0": + version "6.6.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.6.0.tgz#2d686c0f0786da6362d909e27a9de1c13ba2e7dc" + integrity sha512-mPHFoNa2bPIWWglWYdR0QfY9GN0CfvvXX1Sv6DlSTive3jlMTUy+an67//Gysc+0Me9pjitrq0LJp0nGtLgftw== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.5.0" - "@typescript-eslint/types" "6.5.0" - "@typescript-eslint/typescript-estree" "6.5.0" + "@typescript-eslint/scope-manager" "6.6.0" + "@typescript-eslint/types" "6.6.0" + "@typescript-eslint/typescript-estree" "6.6.0" semver "^7.5.4" -"@typescript-eslint/visitor-keys@6.5.0": - version "6.5.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.5.0.tgz#1a6f474a0170a447b76f0699ce6700110fd11436" - integrity sha512-yCB/2wkbv3hPsh02ZS8dFQnij9VVQXJMN/gbQsaaY+zxALkZnxa/wagvLEFsAWMPv7d7lxQmNsIzGU1w/T/WyA== - dependencies: - "@typescript-eslint/types" "6.5.0" - eslint-visitor-keys "^3.4.1" - "@typescript-eslint/visitor-keys@6.6.0": version "6.6.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.6.0.tgz#1109088b4346c8b2446f3845db526374d9a3bafc" From 642bb2b339f81d3eb7f7d55b6e2243220da308a9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Sep 2023 22:02:25 +0000 Subject: [PATCH 412/435] Bump @polkadot-cloud/react from 0.1.32 to 0.1.34 Bumps [@polkadot-cloud/react](https://github.com/paritytech/polkadot-cloud) from 0.1.32 to 0.1.34. - [Release notes](https://github.com/paritytech/polkadot-cloud/releases) - [Commits](https://github.com/paritytech/polkadot-cloud/commits) --- updated-dependencies: - dependency-name: "@polkadot-cloud/react" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 30 +++++++----------------------- 2 files changed, 8 insertions(+), 24 deletions(-) diff --git a/package.json b/package.json index effdfef493..c62a88bcae 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "@ledgerhq/hw-transport-webhid": "^6.27.19", "@polkadot-cloud/community": "^0.1.10", "@polkadot-cloud/core": "^0.1.13", - "@polkadot-cloud/react": "^0.1.32", + "@polkadot-cloud/react": "^0.1.34", "@polkadot-cloud/utils": "^0.0.11", "@polkadot/api": "^10.9.1", "@polkadot/keyring": "^12.1.1", diff --git a/yarn.lock b/yarn.lock index f6d448a3e0..aac297eacd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1453,29 +1453,18 @@ resolved "https://registry.npmjs.org/@polkadot-cloud/community/-/community-0.1.10.tgz#d2a99190c0a89a67275264084e6e750269990986" integrity sha512-VT38rqOvORuYdPLigS8UNwvitoc0DFZWEazsvHxz9bTnPBL/7M3LujWXO14OSGw+FTvfz4RzPwovmW4u7RoT/Q== -"@polkadot-cloud/core@^0.1.12", "@polkadot-cloud/core@^0.1.13": +"@polkadot-cloud/core@^0.1.13": version "0.1.13" resolved "https://registry.yarnpkg.com/@polkadot-cloud/core/-/core-0.1.13.tgz#010c363431fdf7e1b9b757b761275836c5b8d351" integrity sha512-MaMWctssdptEUqzAO5XwhjpSF/kTY+2Gn/d6EwnfkuVnnIGlKqPvn5JyIi2qHtqdeVrJTZUo5b/HFshC8kdKDw== -"@polkadot-cloud/react@^0.1.29": - version "0.1.31" - resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.31.tgz#97fb9887bbc0b60277b00b2329fe5bc63192ec55" - integrity sha512-EcRlFUAVZ5pxztUYmVHw//fUqikj2git6Hhw8drQ8Wu97ZM3Hb55F4j+yzttfsKn/rszzj09G131j7o+uSrcVg== +"@polkadot-cloud/react@^0.1.34": + version "0.1.34" + resolved "https://registry.yarnpkg.com/@polkadot-cloud/react/-/react-0.1.34.tgz#6442c7124b5b6c00ed073b357e0be31c0c0ac598" + integrity sha512-4f7JMwwQIK0q2cAiil9oXKlalIcJDYkmFFHCpHq1TsKkQq8wCJ52vH0JPS6O5PrRdDoMcaINFwfultHRFGXdgQ== dependencies: - "@polkadot-cloud/core" "^0.1.12" - "@polkadot-cloud/react" "^0.1.29" - "@polkadot-cloud/utils" "^0.0.6" - react-error-boundary "^4.0.11" - -"@polkadot-cloud/react@^0.1.32": - version "0.1.32" - resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.32.tgz#231444a1d52eee990b2dd3ceaa601f5a8b089d4b" - integrity sha512-S2GcangOrOLXu4sm8BtAx8C1I2rwfTiwHlH2OSbmgBucpyObJPlWfhUwOET9XcMaUc2bJve8tYqe1Dbe1t9HXw== - dependencies: - "@polkadot-cloud/core" "^0.1.12" - "@polkadot-cloud/react" "^0.1.29" - "@polkadot-cloud/utils" "^0.0.6" + "@polkadot-cloud/core" "^0.1.13" + "@polkadot-cloud/utils" "^0.0.11" react-error-boundary "^4.0.11" "@polkadot-cloud/utils@^0.0.11": @@ -1483,11 +1472,6 @@ resolved "https://registry.yarnpkg.com/@polkadot-cloud/utils/-/utils-0.0.11.tgz#1b5afeffb12f6df8958eb6285a8020c28d06eadf" integrity sha512-h73gDY5IDUIVS3KboPE7F5ks0CwVyqYE+jVpGI1kiV5aUseluSaOqRj3enZNWm2q04m358ZUgVxjZ9g9vSoJeA== -"@polkadot-cloud/utils@^0.0.6": - version "0.0.6" - resolved "https://registry.npmjs.org/@polkadot-cloud/utils/-/utils-0.0.6.tgz#ea0fc18c6af7cd6a1d14ae6674f19b1b3ef82347" - integrity sha512-alm1zdqRcuBm9a59jy0yPKWY4FTenQTKvLSrX/+8aV0YbkwQ6vBkUwhs3FMi5GI52pC68X6VO5DzwVscg6kvEg== - "@polkadot/api-augment@10.9.1": version "10.9.1" resolved "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-10.9.1.tgz#9fc81b81903229bb23b0b16783e97ec52a5d4f1b" From b2744f258c6306a62f446170e42b08002562a14e Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 5 Sep 2023 21:01:39 +0700 Subject: [PATCH 413/435] mobile: fix extension svg --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index e29f0a5df6..f99b612416 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "@fortawesome/free-solid-svg-icons": "^6.4.2", "@fortawesome/react-fontawesome": "^0.2.0", "@ledgerhq/hw-transport-webhid": "^6.27.19", - "@polkadot-cloud/community": "^0.1.10", + "@polkadot-cloud/community": "0.1.11", "@polkadot-cloud/core": "^0.1.12", "@polkadot-cloud/react": "^0.1.32", "@polkadot-cloud/utils": "^0.0.11", diff --git a/yarn.lock b/yarn.lock index e675949339..7aa1783190 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1448,10 +1448,10 @@ picocolors "^1.0.0" tslib "^2.6.0" -"@polkadot-cloud/community@^0.1.10": - version "0.1.10" - resolved "https://registry.npmjs.org/@polkadot-cloud/community/-/community-0.1.10.tgz#d2a99190c0a89a67275264084e6e750269990986" - integrity sha512-VT38rqOvORuYdPLigS8UNwvitoc0DFZWEazsvHxz9bTnPBL/7M3LujWXO14OSGw+FTvfz4RzPwovmW4u7RoT/Q== +"@polkadot-cloud/community@0.1.11": + version "0.1.11" + resolved "https://registry.npmjs.org/@polkadot-cloud/community/-/community-0.1.11.tgz#62f57c92d663f758bdee2b1a2147b74dd3de4971" + integrity sha512-R2ncl5idtiRfzA0a/Lo1j7HHo/4ztatz7xbnP9TPDMYk1JWCtoy77APnFLLukIUbGQGxw1kDVCP8U4X9KrZMKQ== "@polkadot-cloud/core@^0.1.12": version "0.1.12" From 08f9b1d6684649f82950c43e37970873b1ead1d1 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 5 Sep 2023 21:23:09 +0700 Subject: [PATCH 414/435] bump --- package.json | 2 +- src/styles/index.scss | 2 +- yarn.lock | 608 +++++++++++++++++++++--------------------- 3 files changed, 306 insertions(+), 306 deletions(-) diff --git a/package.json b/package.json index a852c055de..2c266fb27f 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "@fortawesome/react-fontawesome": "^0.2.0", "@ledgerhq/hw-transport-webhid": "^6.27.19", "@polkadot-cloud/community": "0.1.11", - "@polkadot-cloud/core": "^0.1.13", + "@polkadot-cloud/core": "0.1.14", "@polkadot-cloud/react": "^0.1.34", "@polkadot-cloud/utils": "^0.0.11", "@polkadot/api": "^10.9.1", diff --git a/src/styles/index.scss b/src/styles/index.scss index be4cabf696..5c9adae123 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -6,4 +6,4 @@ html { @media (min-width: 600px) { font-size: 11px; } -} +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 0d5525a1ce..6a5f8e639b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -16,9 +16,9 @@ "@jridgewell/trace-mapping" "^0.3.9" "@babel/cli@^7.21.0": - version "7.22.10" - resolved "https://registry.npmjs.org/@babel/cli/-/cli-7.22.10.tgz#25e4bbd8d0a0d8b4b389e1b5e2d7a238bd4c1b75" - integrity sha512-rM9ZMmaII630zGvtMtQ3P4GyHs28CHLYE9apLG7L8TgaSqcfoIGrlLSLsh4Q8kDTdZQQEXZm1M0nQtOvU/2heg== + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/cli/-/cli-7.22.15.tgz#22ed82d76745a43caa60a89917bedb7c9b5bd145" + integrity sha512-prtg5f6zCERIaECeTZzd2fMtVjlfjhUcO+fBLQ6DXXdq5FljN+excVitJ2nogsusdf31LeqkjAfXZ7Xq+HmN8g== dependencies: "@jridgewell/trace-mapping" "^0.3.17" commander "^4.0.1" @@ -31,7 +31,7 @@ "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3" chokidar "^3.4.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.10", "@babel/code-frame@^7.22.5": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13": version "7.22.13" resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== @@ -45,32 +45,32 @@ integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== "@babel/core@^7.21.0", "@babel/core@^7.21.3": - version "7.22.11" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.22.11.tgz#8033acaa2aa24c3f814edaaa057f3ce0ba559c24" - integrity sha512-lh7RJrtPdhibbxndr6/xx0w8+CVlY5FJZiaSz908Fpy+G0xkBFTvwLcKJFF4PJxVfGhVWNebikpWGnOoC71juQ== + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.22.15.tgz#15d4fd03f478a459015a4b94cfbb3bd42c48d2f4" + integrity sha512-PtZqMmgRrvj8ruoEOIwVA3yoF91O+Hgw9o7DAUTNBA6Mo2jpu31clx9a7Nz/9JznqetTR6zwfC4L3LAjKQXUwA== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.10" - "@babel/generator" "^7.22.10" - "@babel/helper-compilation-targets" "^7.22.10" - "@babel/helper-module-transforms" "^7.22.9" - "@babel/helpers" "^7.22.11" - "@babel/parser" "^7.22.11" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.11" - "@babel/types" "^7.22.11" + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.22.15" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-module-transforms" "^7.22.15" + "@babel/helpers" "^7.22.15" + "@babel/parser" "^7.22.15" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.22.15" + "@babel/types" "^7.22.15" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.22.10": - version "7.22.10" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.22.10.tgz#c92254361f398e160645ac58831069707382b722" - integrity sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A== +"@babel/generator@^7.22.15": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.22.15.tgz#1564189c7ec94cb8f77b5e8a90c4d200d21b2339" + integrity sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA== dependencies: - "@babel/types" "^7.22.10" + "@babel/types" "^7.22.15" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" @@ -83,32 +83,32 @@ "@babel/types" "^7.22.5" "@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5": - version "7.22.10" - resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.10.tgz#573e735937e99ea75ea30788b57eb52fab7468c9" - integrity sha512-Av0qubwDQxC56DoUReVDeLfMEjYYSN1nZrTUrWkXd7hpU73ymRANkbuDm3yni9npkn+RXy9nNbEJZEzXr7xrfQ== + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956" + integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== dependencies: - "@babel/types" "^7.22.10" + "@babel/types" "^7.22.15" -"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.10", "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6": - version "7.22.10" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz#01d648bbc25dd88f513d862ee0df27b7d4e67024" - integrity sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q== +"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" + integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== dependencies: "@babel/compat-data" "^7.22.9" - "@babel/helper-validator-option" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" browserslist "^4.21.9" lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.22.11", "@babel/helper-create-class-features-plugin@^7.22.5": - version "7.22.11" - resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.11.tgz#4078686740459eeb4af3494a273ac09148dfb213" - integrity sha512-y1grdYL4WzmUDBRGK0pDbIoFd7UZKoDurDzWEoNMYoj1EL+foGRQNyPWDcC+YyegN5y1DUsFFmzjGijB3nSVAQ== +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.22.11", "@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.22.5": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz#97a61b385e57fe458496fad19f8e63b63c867de4" + integrity sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-environment-visitor" "^7.22.5" "@babel/helper-function-name" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.15" "@babel/helper-optimise-call-expression" "^7.22.5" "@babel/helper-replace-supers" "^7.22.9" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" @@ -116,9 +116,9 @@ semver "^6.3.1" "@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.5": - version "7.22.9" - resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz#9d8e61a8d9366fe66198f57c40565663de0825f6" - integrity sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw== + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" + integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" regexpu-core "^5.3.1" @@ -155,30 +155,30 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-member-expression-to-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz#0a7c56117cad3372fbf8d2fb4bf8f8d64a1e76b2" - integrity sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ== +"@babel/helper-member-expression-to-functions@^7.22.15", "@babel/helper-member-expression-to-functions@^7.22.5": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.15.tgz#b95a144896f6d491ca7863576f820f3628818621" + integrity sha512-qLNsZbgrNh0fDQBCPocSL8guki1hcPvltGDv/NxvUoABwFq7GkKSu1nRXeJkVZc+wJvne2E0RKQz+2SQrz6eAA== dependencies: - "@babel/types" "^7.22.5" + "@babel/types" "^7.22.15" -"@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" - integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== +"@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.22.5": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" + integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== dependencies: - "@babel/types" "^7.22.5" + "@babel/types" "^7.22.15" -"@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.22.9": - version "7.22.9" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz#92dfcb1fbbb2bc62529024f72d942a8c97142129" - integrity sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ== +"@babel/helper-module-transforms@^7.22.15", "@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.22.9": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.15.tgz#40ad2f6950f143900e9c1c72363c0b431a606082" + integrity sha512-l1UiX4UyHSFsYt17iQ3Se5pQQZZHa22zyIXURmvkmLCD4t/aU+dvNWHatKac/D9Vm9UES7nvIqHs4jZqKviUmQ== dependencies: "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-module-imports" "^7.22.15" "@babel/helper-simple-access" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/helper-validator-identifier" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.15" "@babel/helper-optimise-call-expression@^7.22.5": version "7.22.5" @@ -236,15 +236,15 @@ resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== -"@babel/helper-validator-identifier@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" - integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== +"@babel/helper-validator-identifier@^7.22.15", "@babel/helper-validator-identifier@^7.22.5": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.15.tgz#601fa28e4cc06786c18912dca138cec73b882044" + integrity sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ== -"@babel/helper-validator-option@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" - integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== +"@babel/helper-validator-option@^7.22.15": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" + integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== "@babel/helper-wrap-function@^7.22.9": version "7.22.10" @@ -255,14 +255,14 @@ "@babel/template" "^7.22.5" "@babel/types" "^7.22.10" -"@babel/helpers@^7.22.11": - version "7.22.11" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.11.tgz#b02f5d5f2d7abc21ab59eeed80de410ba70b056a" - integrity sha512-vyOXC8PBWaGc5h7GMsNx68OH33cypkEDJCHvYVVgVbbxJDROYVtexSk0gK5iCF1xNjRIN2s8ai7hwkWDq5szWg== +"@babel/helpers@^7.22.15": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.15.tgz#f09c3df31e86e3ea0b7ff7556d85cdebd47ea6f1" + integrity sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw== dependencies: - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.11" - "@babel/types" "^7.22.11" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.22.15" + "@babel/types" "^7.22.15" "@babel/highlight@^7.22.13": version "7.22.13" @@ -273,26 +273,26 @@ chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.22.11", "@babel/parser@^7.22.5": - version "7.22.14" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.22.14.tgz#c7de58e8de106e88efca42ce17f0033209dfd245" - integrity sha512-1KucTHgOvaw/LzCVrEOAyXkr9rQlp0A1HiHRYnSUE9dmb8PvPW7o5sscg+5169r54n3vGlbx6GevTE/Iw/P3AQ== +"@babel/parser@^7.22.15": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.22.15.tgz#d34592bfe288a32e741aa0663dbc4829fcd55160" + integrity sha512-RWmQ/sklUN9BvGGpCDgSubhHWfAx24XDTDObup4ffvxaYsptOg2P3KG0j+1eWKLxpkX0j0uHxmpq2Z1SP/VhxA== -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz#87245a21cd69a73b0b81bcda98d443d6df08f05e" - integrity sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ== +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.15": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz#02dc8a03f613ed5fdc29fb2f728397c78146c962" + integrity sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz#fef09f9499b1f1c930da8a0c419db42167d792ca" - integrity sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.15": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz#2aeb91d337d4e1a1e7ce85b76a37f5301781200f" + integrity sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/plugin-transform-optional-chaining" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.22.15" "@babel/plugin-external-helpers@^7.18.6": version "7.22.5" @@ -473,10 +473,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-async-generator-functions@^7.22.11": - version "7.22.11" - resolved "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.11.tgz#dbe3b1ff5a52e2e5edc4b19a60d325a675ed2649" - integrity sha512-0pAlmeRJn6wU84zzZsEOx1JV1Jf8fqO9ok7wofIJwUnplYo247dcd24P+cMJht7ts9xkzdtB0EPHmOb7F+KzXw== +"@babel/plugin-transform-async-generator-functions@^7.22.15": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.15.tgz#3b153af4a6b779f340d5b80d3f634f55820aefa3" + integrity sha512-jBm1Es25Y+tVoTi5rfd5t1KLmL8ogLKpXszboWOTTtGFGz2RKnQe2yn7HbZ+kb/B8N0FVSGQo874NSlOU1T4+w== dependencies: "@babel/helper-environment-visitor" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" @@ -499,10 +499,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoping@^7.22.10": - version "7.22.10" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.10.tgz#88a1dccc3383899eb5e660534a76a22ecee64faa" - integrity sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg== +"@babel/plugin-transform-block-scoping@^7.22.15": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.15.tgz#494eb82b87b5f8b1d8f6f28ea74078ec0a10a841" + integrity sha512-G1czpdJBZCtngoK1sJgloLiOHUnkb/bLZwqVZD8kXmq0ZnVfTTWUcs9OWtp0mBtYJ+4LQY1fllqBkOIPhXmFmw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -523,18 +523,18 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-transform-classes@^7.22.6": - version "7.22.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz#e04d7d804ed5b8501311293d1a0e6d43e94c3363" - integrity sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ== +"@babel/plugin-transform-classes@^7.22.15": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz#aaf4753aee262a232bbc95451b4bdf9599c65a0b" + integrity sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-compilation-targets" "^7.22.15" "@babel/helper-environment-visitor" "^7.22.5" "@babel/helper-function-name" "^7.22.5" "@babel/helper-optimise-call-expression" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.9" "@babel/helper-split-export-declaration" "^7.22.6" globals "^11.1.0" @@ -546,10 +546,10 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/template" "^7.22.5" -"@babel/plugin-transform-destructuring@^7.22.10": - version "7.22.10" - resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.10.tgz#38e2273814a58c810b6c34ea293be4973c4eb5e2" - integrity sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw== +"@babel/plugin-transform-destructuring@^7.22.15": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.15.tgz#e7404ea5bb3387073b9754be654eecb578324694" + integrity sha512-HzG8sFl1ZVGTme74Nw+X01XsUTqERVQ6/RLHo3XjGRzm7XD6QTtfS3NJotVgCGy8BzkDqRjRBD8dAyJn5TuvSQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -592,10 +592,10 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-transform-for-of@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz#ab1b8a200a8f990137aff9a084f8de4099ab173f" - integrity sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A== +"@babel/plugin-transform-for-of@^7.22.15": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz#f64b4ccc3a4f131a996388fae7680b472b306b29" + integrity sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -646,12 +646,12 @@ "@babel/helper-module-transforms" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-commonjs@^7.22.11": - version "7.22.11" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.11.tgz#d7991d3abad199c03b68ee66a64f216c47ffdfae" - integrity sha512-o2+bg7GDS60cJMgz9jWqRUsWkMzLCxp+jFDeDUT5sjRlAxcJWZ2ylNdI7QQ2+CH5hWu7OnN+Cv3htt7AkSf96g== +"@babel/plugin-transform-modules-commonjs@^7.22.15": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.15.tgz#b11810117ed4ee7691b29bd29fd9f3f98276034f" + integrity sha512-jWL4eh90w0HQOTKP2MoXXUpVxilxsB2Vl4ji69rSjS3EcZ/v4sBmn+A3NpepuJzBhOaEBbR7udonlHHn5DWidg== dependencies: - "@babel/helper-module-transforms" "^7.22.9" + "@babel/helper-module-transforms" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-simple-access" "^7.22.5" @@ -704,16 +704,16 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-transform-object-rest-spread@^7.22.11": - version "7.22.11" - resolved "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.11.tgz#dbbb06ce783cd994a8f430d8cefa553e9b42ca62" - integrity sha512-nX8cPFa6+UmbepISvlf5jhQyaC7ASs/7UxHmMkuJ/k5xSHvDPPaibMo+v3TXwU/Pjqhep/nFNpd3zn4YR59pnw== +"@babel/plugin-transform-object-rest-spread@^7.22.15": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz#21a95db166be59b91cde48775310c0df6e1da56f" + integrity sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q== dependencies: "@babel/compat-data" "^7.22.9" - "@babel/helper-compilation-targets" "^7.22.10" + "@babel/helper-compilation-targets" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.22.5" + "@babel/plugin-transform-parameters" "^7.22.15" "@babel/plugin-transform-object-super@^7.22.5": version "7.22.5" @@ -731,19 +731,19 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-transform-optional-chaining@^7.22.12", "@babel/plugin-transform-optional-chaining@^7.22.5": - version "7.22.12" - resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.12.tgz#d7ebf6a88cd2f4d307b0e000ab630acd8124b333" - integrity sha512-7XXCVqZtyFWqjDsYDY4T45w4mlx1rf7aOgkc/Ww76xkgBiOlmjPkx36PBLHa1k1rwWvVgYMPsbuVnIamx2ZQJw== +"@babel/plugin-transform-optional-chaining@^7.22.15": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.15.tgz#d7a5996c2f7ca4ad2ad16dbb74444e5c4385b1ba" + integrity sha512-ngQ2tBhq5vvSJw2Q2Z9i7ealNkpDMU0rGWnHPKqRZO0tzZ5tlaoz4hDvhXioOoaE0X2vfNss1djwg0DXlfu30A== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz#c3542dd3c39b42c8069936e48717a8d179d63a18" - integrity sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg== +"@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.22.15": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz#719ca82a01d177af358df64a514d64c2e3edb114" + integrity sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -786,16 +786,16 @@ dependencies: "@babel/plugin-transform-react-jsx" "^7.22.5" -"@babel/plugin-transform-react-jsx@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz#932c291eb6dd1153359e2a90cb5e557dcf068416" - integrity sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA== +"@babel/plugin-transform-react-jsx@^7.22.15", "@babel/plugin-transform-react-jsx@^7.22.5": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.15.tgz#7e6266d88705d7c49f11c98db8b9464531289cd6" + integrity sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-module-imports" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-jsx" "^7.22.5" - "@babel/types" "^7.22.5" + "@babel/types" "^7.22.15" "@babel/plugin-transform-react-pure-annotations@^7.22.5": version "7.22.5" @@ -856,13 +856,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-typescript@^7.22.11": - version "7.22.11" - resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.11.tgz#9f27fb5e51585729374bb767ab6a6d9005a23329" - integrity sha512-0E4/L+7gfvHub7wsbTv03oRtD69X31LByy44fGmFzbZScpupFByMcgCJ0VbBTkzyjSJKuRoGN8tcijOWKTmqOA== +"@babel/plugin-transform-typescript@^7.22.15": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.15.tgz#15adef906451d86349eb4b8764865c960eb54127" + integrity sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.11" + "@babel/helper-create-class-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-typescript" "^7.22.5" @@ -898,16 +898,16 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/preset-env@^7.20.2": - version "7.22.14" - resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.14.tgz#1cbb468d899f64fa71c53446f13b7ff8c0005cc1" - integrity sha512-daodMIoVo+ol/g+//c/AH+szBkFj4STQUikvBijRGL72Ph+w+AMTSh55DUETe8KJlPlDT1k/mp7NBfOuiWmoig== + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.15.tgz#142716f8e00bc030dae5b2ac6a46fbd8b3e18ff8" + integrity sha512-tZFHr54GBkHk6hQuVA8w4Fmq+MSPsfvMG0vPnOYyTnJpyfMqybL8/MbNCPRT9zc2KBO2pe4tq15g6Uno4Jpoag== dependencies: "@babel/compat-data" "^7.22.9" - "@babel/helper-compilation-targets" "^7.22.10" + "@babel/helper-compilation-targets" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.5" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.5" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.15" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.15" "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" @@ -928,39 +928,39 @@ "@babel/plugin-syntax-top-level-await" "^7.14.5" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" "@babel/plugin-transform-arrow-functions" "^7.22.5" - "@babel/plugin-transform-async-generator-functions" "^7.22.11" + "@babel/plugin-transform-async-generator-functions" "^7.22.15" "@babel/plugin-transform-async-to-generator" "^7.22.5" "@babel/plugin-transform-block-scoped-functions" "^7.22.5" - "@babel/plugin-transform-block-scoping" "^7.22.10" + "@babel/plugin-transform-block-scoping" "^7.22.15" "@babel/plugin-transform-class-properties" "^7.22.5" "@babel/plugin-transform-class-static-block" "^7.22.11" - "@babel/plugin-transform-classes" "^7.22.6" + "@babel/plugin-transform-classes" "^7.22.15" "@babel/plugin-transform-computed-properties" "^7.22.5" - "@babel/plugin-transform-destructuring" "^7.22.10" + "@babel/plugin-transform-destructuring" "^7.22.15" "@babel/plugin-transform-dotall-regex" "^7.22.5" "@babel/plugin-transform-duplicate-keys" "^7.22.5" "@babel/plugin-transform-dynamic-import" "^7.22.11" "@babel/plugin-transform-exponentiation-operator" "^7.22.5" "@babel/plugin-transform-export-namespace-from" "^7.22.11" - "@babel/plugin-transform-for-of" "^7.22.5" + "@babel/plugin-transform-for-of" "^7.22.15" "@babel/plugin-transform-function-name" "^7.22.5" "@babel/plugin-transform-json-strings" "^7.22.11" "@babel/plugin-transform-literals" "^7.22.5" "@babel/plugin-transform-logical-assignment-operators" "^7.22.11" "@babel/plugin-transform-member-expression-literals" "^7.22.5" "@babel/plugin-transform-modules-amd" "^7.22.5" - "@babel/plugin-transform-modules-commonjs" "^7.22.11" + "@babel/plugin-transform-modules-commonjs" "^7.22.15" "@babel/plugin-transform-modules-systemjs" "^7.22.11" "@babel/plugin-transform-modules-umd" "^7.22.5" "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" "@babel/plugin-transform-new-target" "^7.22.5" "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.11" "@babel/plugin-transform-numeric-separator" "^7.22.11" - "@babel/plugin-transform-object-rest-spread" "^7.22.11" + "@babel/plugin-transform-object-rest-spread" "^7.22.15" "@babel/plugin-transform-object-super" "^7.22.5" "@babel/plugin-transform-optional-catch-binding" "^7.22.11" - "@babel/plugin-transform-optional-chaining" "^7.22.12" - "@babel/plugin-transform-parameters" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.22.15" + "@babel/plugin-transform-parameters" "^7.22.15" "@babel/plugin-transform-private-methods" "^7.22.5" "@babel/plugin-transform-private-property-in-object" "^7.22.11" "@babel/plugin-transform-property-literals" "^7.22.5" @@ -976,7 +976,7 @@ "@babel/plugin-transform-unicode-regex" "^7.22.5" "@babel/plugin-transform-unicode-sets-regex" "^7.22.5" "@babel/preset-modules" "0.1.6-no-external-plugins" - "@babel/types" "^7.22.11" + "@babel/types" "^7.22.15" babel-plugin-polyfill-corejs2 "^0.4.5" babel-plugin-polyfill-corejs3 "^0.8.3" babel-plugin-polyfill-regenerator "^0.5.2" @@ -993,27 +993,27 @@ esutils "^2.0.2" "@babel/preset-react@^7.18.6": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.22.5.tgz#c4d6058fbf80bccad02dd8c313a9aaa67e3c3dd6" - integrity sha512-M+Is3WikOpEJHgR385HbuCITPTaPRaNkibTEa9oiofmJvIsrceb4yp9RL9Kb+TE8LznmeyZqpP+Lopwcx59xPQ== + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.22.15.tgz#9a776892b648e13cc8ca2edf5ed1264eea6b6afc" + integrity sha512-Csy1IJ2uEh/PecCBXXoZGAZBeCATTuePzCSB7dLYWS0vOEj6CNpjxIhW4duWwZodBNueH7QO14WbGn8YyeuN9w== dependencies: "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" "@babel/plugin-transform-react-display-name" "^7.22.5" - "@babel/plugin-transform-react-jsx" "^7.22.5" + "@babel/plugin-transform-react-jsx" "^7.22.15" "@babel/plugin-transform-react-jsx-development" "^7.22.5" "@babel/plugin-transform-react-pure-annotations" "^7.22.5" "@babel/preset-typescript@^7.21.0": - version "7.22.11" - resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.22.11.tgz#f218cd0345524ac888aa3dc32f029de5b064b575" - integrity sha512-tWY5wyCZYBGY7IlalfKI1rLiGlIfnwsRHZqlky0HVv8qviwQ1Uo/05M6+s+TcTCVa6Bmoo2uJW5TMFX6Wa4qVg== + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.22.15.tgz#43db30516fae1d417d748105a0bc95f637239d48" + integrity sha512-HblhNmh6yM+cU4VwbBRpxFhxsTdfS1zsvH9W+gEjD0ARV9+8B4sNfpI6GuhePti84nuvhiwKS539jKPFHskA9A== dependencies: "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" "@babel/plugin-syntax-jsx" "^7.22.5" - "@babel/plugin-transform-modules-commonjs" "^7.22.11" - "@babel/plugin-transform-typescript" "^7.22.11" + "@babel/plugin-transform-modules-commonjs" "^7.22.15" + "@babel/plugin-transform-typescript" "^7.22.15" "@babel/regjsgen@^0.8.0": version "0.8.0" @@ -1021,49 +1021,49 @@ integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== "@babel/runtime@^7.10.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.19.4", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5", "@babel/runtime@^7.8.4": - version "7.22.11" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.11.tgz#7a9ba3bbe406ad6f9e8dd4da2ece453eb23a77a4" - integrity sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA== + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.15.tgz#38f46494ccf6cf020bd4eed7124b425e83e523b8" + integrity sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA== dependencies: regenerator-runtime "^0.14.0" -"@babel/template@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" - integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw== +"@babel/template@^7.22.15", "@babel/template@^7.22.5": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/parser" "^7.22.5" - "@babel/types" "^7.22.5" + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" -"@babel/traverse@^7.21.2", "@babel/traverse@^7.22.11": - version "7.22.11" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.11.tgz#71ebb3af7a05ff97280b83f05f8865ac94b2027c" - integrity sha512-mzAenteTfomcB7mfPtyi+4oe5BZ6MXxWcn4CX+h4IRJ+OOGXBrWU6jDQavkQI9Vuc5P+donFabBfFCcmWka9lQ== +"@babel/traverse@^7.21.2", "@babel/traverse@^7.22.15": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.15.tgz#75be4d2d6e216e880e93017f4e2389aeb77ef2d9" + integrity sha512-DdHPwvJY0sEeN4xJU5uRLmZjgMMDIvMPniLuYzUVXj/GGzysPl0/fwt44JBkyUIzGJPV8QgHMcQdQ34XFuKTYQ== dependencies: - "@babel/code-frame" "^7.22.10" - "@babel/generator" "^7.22.10" + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.22.15" "@babel/helper-environment-visitor" "^7.22.5" "@babel/helper-function-name" "^7.22.5" "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.22.11" - "@babel/types" "^7.22.11" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.21.3", "@babel/types@^7.22.10", "@babel/types@^7.22.11", "@babel/types@^7.22.5", "@babel/types@^7.4.4": - version "7.22.11" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.22.11.tgz#0e65a6a1d4d9cbaa892b2213f6159485fe632ea2" - integrity sha512-siazHiGuZRz9aB9NpHy9GOs9xiQPKnMzgdr493iI1M67vRXpnEq8ZOOKzezC5q7zwuQ6sDhdSp4SD9ixKSqKZg== +"@babel/types@^7.21.3", "@babel/types@^7.22.10", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.4.4": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.22.15.tgz#266cb21d2c5fd0b3931e7a91b6dd72d2f617d282" + integrity sha512-X+NLXr0N8XXmN5ZsaQdm9U2SSC3UbIYq/doL++sueHOTisgZHoKaQtZxGuV2cUPQHMfjKEfg/g6oy7Hm6SKFtA== dependencies: "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.15" to-fast-properties "^2.0.0" "@dotlottie/player-component@^2.5.1": version "2.5.1" - resolved "https://registry.yarnpkg.com/@dotlottie/player-component/-/player-component-2.5.1.tgz#0cc58b22701c587ea3d898e919e859cd472d5b3d" + resolved "https://registry.npmjs.org/@dotlottie/player-component/-/player-component-2.5.1.tgz#0cc58b22701c587ea3d898e919e859cd472d5b3d" integrity sha512-oq8621B1m7CreQRp5YlEGyTwTGxonjQF6CGoZ4j2AtsJgqFqXRdaCpOwm6lyloTHzJMVwsl7VktGHd5QYtDuAQ== dependencies: lit "^2.7.5" @@ -1453,14 +1453,14 @@ resolved "https://registry.npmjs.org/@polkadot-cloud/community/-/community-0.1.11.tgz#62f57c92d663f758bdee2b1a2147b74dd3de4971" integrity sha512-R2ncl5idtiRfzA0a/Lo1j7HHo/4ztatz7xbnP9TPDMYk1JWCtoy77APnFLLukIUbGQGxw1kDVCP8U4X9KrZMKQ== -"@polkadot-cloud/core@^0.1.13": - version "0.1.13" - resolved "https://registry.yarnpkg.com/@polkadot-cloud/core/-/core-0.1.13.tgz#010c363431fdf7e1b9b757b761275836c5b8d351" - integrity sha512-MaMWctssdptEUqzAO5XwhjpSF/kTY+2Gn/d6EwnfkuVnnIGlKqPvn5JyIi2qHtqdeVrJTZUo5b/HFshC8kdKDw== +"@polkadot-cloud/core@0.1.14", "@polkadot-cloud/core@^0.1.13": + version "0.1.14" + resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.1.14.tgz#d6e2590f332d0e37bfabbc202b54dc8cdcaabb91" + integrity sha512-4ZIIGuiUinGrgTInbwM9bEIlQUSp2qgMxDdXxW9sS3Q83L3qqls2XjTT+7bP77LlSewT4DnOh5UVHFv7JebwQw== "@polkadot-cloud/react@^0.1.34": version "0.1.34" - resolved "https://registry.yarnpkg.com/@polkadot-cloud/react/-/react-0.1.34.tgz#6442c7124b5b6c00ed073b357e0be31c0c0ac598" + resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.34.tgz#6442c7124b5b6c00ed073b357e0be31c0c0ac598" integrity sha512-4f7JMwwQIK0q2cAiil9oXKlalIcJDYkmFFHCpHq1TsKkQq8wCJ52vH0JPS6O5PrRdDoMcaINFwfultHRFGXdgQ== dependencies: "@polkadot-cloud/core" "^0.1.13" @@ -1469,7 +1469,7 @@ "@polkadot-cloud/utils@^0.0.11": version "0.0.11" - resolved "https://registry.yarnpkg.com/@polkadot-cloud/utils/-/utils-0.0.11.tgz#1b5afeffb12f6df8958eb6285a8020c28d06eadf" + resolved "https://registry.npmjs.org/@polkadot-cloud/utils/-/utils-0.0.11.tgz#1b5afeffb12f6df8958eb6285a8020c28d06eadf" integrity sha512-h73gDY5IDUIVS3KboPE7F5ks0CwVyqYE+jVpGI1kiV5aUseluSaOqRj3enZNWm2q04m358ZUgVxjZ9g9vSoJeA== "@polkadot/api-augment@10.9.1": @@ -1943,73 +1943,73 @@ "@svgr/hast-util-to-babel-ast" "^7.0.0" svg-parser "^2.0.4" -"@swc/core-darwin-arm64@1.3.81": - version "1.3.81" - resolved "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.81.tgz#deaf1bb5a802f2642d50aebbab805d968abeb176" - integrity sha512-uc8/hpS5KXrMo6IvdDC/tpmns6rYVYOmf+t2Zh4dNf6fsfQ4kQVyJErD0MtJ5pykZWd/kCPD5NF/FyRQ5xfSfw== - -"@swc/core-darwin-x64@1.3.81": - version "1.3.81" - resolved "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.81.tgz#b435826e331f8f58db4bf2e149a667df42030e84" - integrity sha512-GSS4b18cUKyZXY8vgZBOS7ERFXYmHX7O8c2ZbV9YLCz7AAQ71EtlBrO8N7/Gzq2Etea3CVFxPqnKB1wzVWVpUA== - -"@swc/core-linux-arm-gnueabihf@1.3.81": - version "1.3.81" - resolved "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.81.tgz#729758de0f319bbcc3ae33672f19d4ad7c3bb475" - integrity sha512-rwVheKf4RogHSap+QDnnCvqCE1k2x63Lhg6XOr0A2/12vDvHXLzVfqgn2ox69CmD0GfqVQ3g56qAfi693njvUg== - -"@swc/core-linux-arm64-gnu@1.3.81": - version "1.3.81" - resolved "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.81.tgz#c3848ae0c44922441d572252203cc99772ca50f1" - integrity sha512-M+cNSSu8z573sDLbm2llRlp32EeoIymZ1PVQNYFWowDvgAbgpU7Cxqzr4Qb8D/p6bglWDLb32fD1KuPTnrvYkA== - -"@swc/core-linux-arm64-musl@1.3.81": - version "1.3.81" - resolved "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.81.tgz#31729a2250e20d610de160d9e1496dc63bd03fb4" - integrity sha512-6Ncm6c9qOZAK4wwQHXUS3Zo6B5kUmgfN7kv/qZPMbbOK5TRK5TKcM4HmBzSXVVDq0/12vev8x65ICmwPuB5IpA== - -"@swc/core-linux-x64-gnu@1.3.81": - version "1.3.81" - resolved "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.81.tgz#8bf3d212e36f892a88fb1b16682e09d75ea6f818" - integrity sha512-MYPQTW2yh7A+Od0LcNu79SG6BzCW/ktoq8qRGEwxnohRPlW9Fb0zuGbi4+l023O96W2K4V7tIWmmlKvcZAvP9w== - -"@swc/core-linux-x64-musl@1.3.81": - version "1.3.81" - resolved "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.81.tgz#9a08e186d737a052f22147e8b1766798746c65da" - integrity sha512-EYYl/RrkEAMS2fk445V4xJMUXcrbjIJ9B3ACK/tsz1+UcML8Kpg6TvCzlwIdxY8f2oO+FhNC0CALNN31Asgfzg== - -"@swc/core-win32-arm64-msvc@1.3.81": - version "1.3.81" - resolved "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.81.tgz#41b49692296604141d499b8c6caeb28a297ea89c" - integrity sha512-n4tqeuFQXnn2fXVrcy3DVUtDrdFImQYYyY9kJPy4y1MXjeJ1l6/6wx9y+Yowpcnmvpk4JvpKMe4x8r/4rOJjsg== - -"@swc/core-win32-ia32-msvc@1.3.81": - version "1.3.81" - resolved "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.81.tgz#3730a52090887dfa37e6080bad924466392e97bd" - integrity sha512-XjRxp980/bs11z5jZbWP8VazoCp5sESo8+LxxUUsyENcbfAhFtjaGZTuFY4CSV1gohGAaMLnSlg5bUc+4TLz8A== - -"@swc/core-win32-x64-msvc@1.3.81": - version "1.3.81" - resolved "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.81.tgz#15e1670727bd88cbaa702e8863b5e50397de8af4" - integrity sha512-P/+TBWnYna0QIKWtq02MB/ICdsO5rsI5jwOyhzzID9rl7DRlMmXVqBcVmlnJFEJoEkFYJIlORByMNmSv1YkOqw== +"@swc/core-darwin-arm64@1.3.82": + version "1.3.82" + resolved "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.82.tgz#bbf9874747b51053d8a59ea26c3e235c326f24a3" + integrity sha512-JfsyDW34gVKD3uE0OUpUqYvAD3yseEaicnFP6pB292THtLJb0IKBBnK50vV/RzEJtc1bR3g1kNfxo2PeurZTrA== + +"@swc/core-darwin-x64@1.3.82": + version "1.3.82" + resolved "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.82.tgz#145cdde16678e0d793620035783e5b413a16ac43" + integrity sha512-ogQWgNMq7qTpITjcP3dnzkFNj7bh6SwMr859GvtOTrE75H7L7jDWxESfH4f8foB/LGxBKiDNmxKhitCuAsZK4A== + +"@swc/core-linux-arm-gnueabihf@1.3.82": + version "1.3.82" + resolved "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.82.tgz#0c2f32c5793f2ac8e8ccf416aec84d016c30ef7b" + integrity sha512-7TMXG1lXlNhD0kUiEqs+YlGV4irAdBa2quuy+XI3oJf2fBK6dQfEq4xBy65B3khrorzQS3O0oDGQ+cmdpHExHA== + +"@swc/core-linux-arm64-gnu@1.3.82": + version "1.3.82" + resolved "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.82.tgz#2313d4901fa0ebdd2a0f189909073e1e8a07f1d6" + integrity sha512-26JkOujbzcItPAmIbD5vHJxQVy5ihcSu3YHTKwope1h28sApZdtE7S3e2G3gsZRTIdsCQkXUtAQeqHxGWWR3pw== + +"@swc/core-linux-arm64-musl@1.3.82": + version "1.3.82" + resolved "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.82.tgz#6e96cf6e52e647fecf27511d766bea90e96f8a2f" + integrity sha512-8Izj9tuuMpoc3cqiPBRtwqpO1BZ/+sfZVsEhLxrbOFlcSb8LnKyMle1g3JMMUwI4EU75RGVIzZMn8A6GOKdJbA== + +"@swc/core-linux-x64-gnu@1.3.82": + version "1.3.82" + resolved "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.82.tgz#6275c10d7c8c0768550bc7934c9dd8cde4881d92" + integrity sha512-0GSrIBScQwTaPv46T2qB7XnDYxndRCpwH4HMjh6FN+I+lfPUhTSJKW8AonqrqT1TbpFIgvzQs7EnTsD7AnSCow== + +"@swc/core-linux-x64-musl@1.3.82": + version "1.3.82" + resolved "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.82.tgz#edb98c30bd0de42bf1a63469937630d942c71988" + integrity sha512-KJUnaaepDKNzrEbwz4jv0iC3/t9x0NSoe06fnkAlhh2+NFKWKKJhVCOBTrpds8n7eylBDIXUlK34XQafjVMUdg== + +"@swc/core-win32-arm64-msvc@1.3.82": + version "1.3.82" + resolved "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.82.tgz#0a8e9b361aac37d01f684c8a3d3e94e5f8c3b14f" + integrity sha512-TR3MHKhDYIyGyFcyl2d/p1ftceXcubAhX5wRSOdtOyr5+K/v3jbyCCqN7bbqO5o43wQVCwwR/drHleYyDZvg8Q== + +"@swc/core-win32-ia32-msvc@1.3.82": + version "1.3.82" + resolved "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.82.tgz#096854ff764282766271f1354ee1214358a8bf01" + integrity sha512-ZX4HzVVt6hs84YUg70UvyBJnBOIspmQQM0iXSzBvOikk3zRoN7BnDwQH4GScvevCEBuou60+i4I6d5kHLOfh8Q== + +"@swc/core-win32-x64-msvc@1.3.82": + version "1.3.82" + resolved "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.82.tgz#1181070bff4a13a7fcc7f1020eef1571f8c1257a" + integrity sha512-4mJMnex21kbQoaHeAmHnVwQN9/XAfPszJ6n9HI7SVH+aAHnbBIR0M59/b50/CJMjTj5niUGk7EwQ3nhVNOG32g== "@swc/core@^1.3.61": - version "1.3.81" - resolved "https://registry.npmjs.org/@swc/core/-/core-1.3.81.tgz#f4384794ba13f04e6907cf9a0b83a2d9c01bde82" - integrity sha512-jaKz72JIuPJQXSwSEzF6g3OBIx0IPBfgJHI9hA2jiKnfxJ1EWDd2S33NpU/HfgUCZ822aPmYuHvUhoDj3uauyg== + version "1.3.82" + resolved "https://registry.npmjs.org/@swc/core/-/core-1.3.82.tgz#8f6c53db3c23a1769b6c5085fbcb3b1df9548a40" + integrity sha512-jpC1a18HMH67018Ij2jh+hT7JBFu7ZKcQVfrZ8K6JuEY+kjXmbea07P9MbQUZbAe0FB+xi3CqEVCP73MebodJQ== dependencies: "@swc/types" "^0.1.4" optionalDependencies: - "@swc/core-darwin-arm64" "1.3.81" - "@swc/core-darwin-x64" "1.3.81" - "@swc/core-linux-arm-gnueabihf" "1.3.81" - "@swc/core-linux-arm64-gnu" "1.3.81" - "@swc/core-linux-arm64-musl" "1.3.81" - "@swc/core-linux-x64-gnu" "1.3.81" - "@swc/core-linux-x64-musl" "1.3.81" - "@swc/core-win32-arm64-msvc" "1.3.81" - "@swc/core-win32-ia32-msvc" "1.3.81" - "@swc/core-win32-x64-msvc" "1.3.81" + "@swc/core-darwin-arm64" "1.3.82" + "@swc/core-darwin-x64" "1.3.82" + "@swc/core-linux-arm-gnueabihf" "1.3.82" + "@swc/core-linux-arm64-gnu" "1.3.82" + "@swc/core-linux-arm64-musl" "1.3.82" + "@swc/core-linux-x64-gnu" "1.3.82" + "@swc/core-linux-x64-musl" "1.3.82" + "@swc/core-win32-arm64-msvc" "1.3.82" + "@swc/core-win32-ia32-msvc" "1.3.82" + "@swc/core-win32-x64-msvc" "1.3.82" "@swc/types@^0.1.4": version "0.1.4" @@ -2031,9 +2031,9 @@ "@types/chai" "*" "@types/chai@*", "@types/chai@^4.3.5": - version "4.3.5" - resolved "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz#ae69bcbb1bebb68c4ac0b11e9d8ed04526b3562b" - integrity sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng== + version "4.3.6" + resolved "https://registry.npmjs.org/@types/chai/-/chai-4.3.6.tgz#7b489e8baf393d5dd1266fb203ddd4ea941259e6" + integrity sha512-VOVRLM1mBxIRxydiViqPcKn6MIxZytrbMpd6RJLIWKxUNr3zux8no0Oc7kJx0WAPIitgZ0gkrDS+btlqQpubpw== "@types/eslint@^8.4.5": version "8.44.2" @@ -2071,9 +2071,9 @@ integrity sha512-BMVOiWs0uNxHVlHBgzTIqJYmj+PgCo4euloGF+5m4okL3rEYzM2EEv78mw8zWSMM57dM7kVIgJ2QDvwHSoCI5g== "@types/node@*": - version "20.5.7" - resolved "https://registry.npmjs.org/@types/node/-/node-20.5.7.tgz#4b8ecac87fbefbc92f431d09c30e176fc0a7c377" - integrity sha512-dP7f3LdZIysZnmvP3ANJYTSwg+wLLl8p7RqniVlV7j+oXSXAbt9h0WIBFmJy5inWZoX9wZN6eXx+YXd9Rh3RBA== + version "20.5.9" + resolved "https://registry.npmjs.org/@types/node/-/node-20.5.9.tgz#a70ec9d8fa0180a314c3ede0e20ea56ff71aed9a" + integrity sha512-PcGNd//40kHAS3sTlzKB9C9XL4K0sTup8nbG5lC14kzEteTNuAFh9u5nA0o5TWnSG2r/JNPRXFVcHJIIeRlmqQ== "@types/prop-types@*": version "15.7.5" @@ -2139,7 +2139,7 @@ "@typescript-eslint/eslint-plugin@^6.6.0": version "6.6.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.6.0.tgz#19ba09aa34fd504696445100262e5a9e1b1d7024" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.6.0.tgz#19ba09aa34fd504696445100262e5a9e1b1d7024" integrity sha512-CW9YDGTQnNYMIo5lMeuiIG08p4E0cXrXTbcZ2saT/ETE7dWUrNxlijsQeU04qAAKkILiLzdQz+cGFxCJjaZUmA== dependencies: "@eslint-community/regexpp" "^4.5.1" @@ -2156,7 +2156,7 @@ "@typescript-eslint/parser@^6.6.0": version "6.6.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.6.0.tgz#fe323a7b4eafb6d5ea82b96216561810394a739e" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.6.0.tgz#fe323a7b4eafb6d5ea82b96216561810394a739e" integrity sha512-setq5aJgUwtzGrhW177/i+DMLqBaJbdwGj2CPIVFFLE0NCliy5ujIdLHd2D1ysmlmsjdL2GWW+hR85neEfc12w== dependencies: "@typescript-eslint/scope-manager" "6.6.0" @@ -2167,7 +2167,7 @@ "@typescript-eslint/scope-manager@6.6.0": version "6.6.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.6.0.tgz#57105d4419d6de971f7d2c30a2ff4ac40003f61a" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.6.0.tgz#57105d4419d6de971f7d2c30a2ff4ac40003f61a" integrity sha512-pT08u5W/GT4KjPUmEtc2kSYvrH8x89cVzkA0Sy2aaOUIw6YxOIjA8ilwLr/1fLjOedX1QAuBpG9XggWqIIfERw== dependencies: "@typescript-eslint/types" "6.6.0" @@ -2175,7 +2175,7 @@ "@typescript-eslint/type-utils@6.6.0": version "6.6.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.6.0.tgz#14f651d13b884915c4fca0d27adeb652a4499e86" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.6.0.tgz#14f651d13b884915c4fca0d27adeb652a4499e86" integrity sha512-8m16fwAcEnQc69IpeDyokNO+D5spo0w1jepWWY2Q6y5ZKNuj5EhVQXjtVAeDDqvW6Yg7dhclbsz6rTtOvcwpHg== dependencies: "@typescript-eslint/typescript-estree" "6.6.0" @@ -2185,12 +2185,12 @@ "@typescript-eslint/types@6.6.0": version "6.6.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.6.0.tgz#95e7ea650a2b28bc5af5ea8907114a48f54618c2" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.6.0.tgz#95e7ea650a2b28bc5af5ea8907114a48f54618c2" integrity sha512-CB6QpJQ6BAHlJXdwUmiaXDBmTqIE2bzGTDLADgvqtHWuhfNP3rAOK7kAgRMAET5rDRr9Utt+qAzRBdu3AhR3sg== "@typescript-eslint/typescript-estree@6.6.0": version "6.6.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.6.0.tgz#373c420d2e12c28220f4a83352280a04823a91b7" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.6.0.tgz#373c420d2e12c28220f4a83352280a04823a91b7" integrity sha512-hMcTQ6Al8MP2E6JKBAaSxSVw5bDhdmbCEhGW/V8QXkb9oNsFkA4SBuOMYVPxD3jbtQ4R/vSODBsr76R6fP3tbA== dependencies: "@typescript-eslint/types" "6.6.0" @@ -2203,7 +2203,7 @@ "@typescript-eslint/utils@6.6.0": version "6.6.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.6.0.tgz#2d686c0f0786da6362d909e27a9de1c13ba2e7dc" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.6.0.tgz#2d686c0f0786da6362d909e27a9de1c13ba2e7dc" integrity sha512-mPHFoNa2bPIWWglWYdR0QfY9GN0CfvvXX1Sv6DlSTive3jlMTUy+an67//Gysc+0Me9pjitrq0LJp0nGtLgftw== dependencies: "@eslint-community/eslint-utils" "^4.4.0" @@ -2216,7 +2216,7 @@ "@typescript-eslint/visitor-keys@6.6.0": version "6.6.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.6.0.tgz#1109088b4346c8b2446f3845db526374d9a3bafc" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.6.0.tgz#1109088b4346c8b2446f3845db526374d9a3bafc" integrity sha512-L61uJT26cMOfFQ+lMZKoJNbAEckLe539VhTxiGHrWl5XSKQgA0RTBZJW2HFPy5T0ZvPVSD93QsrTKDkfNwJGyQ== dependencies: "@typescript-eslint/types" "6.6.0" @@ -2370,14 +2370,14 @@ array-buffer-byte-length@^1.0.0: is-array-buffer "^3.0.1" array-includes@^3.1.6: - version "3.1.6" - resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" - integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== + version "3.1.7" + resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" + integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - get-intrinsic "^1.1.3" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" is-string "^1.0.7" array-union@^1.0.1: @@ -2551,9 +2551,9 @@ binary-extensions@^2.0.0: resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -"bip32-ed25519@https://github.com/Zondax/bip32-ed25519": +"bip32-ed25519@git+https://github.com/Zondax/bip32-ed25519.git": version "0.0.4" - resolved "https://github.com/Zondax/bip32-ed25519#0949df01b5c93885339bc28116690292088f6134" + resolved "git+https://github.com/Zondax/bip32-ed25519.git#0949df01b5c93885339bc28116690292088f6134" dependencies: bn.js "^5.1.1" elliptic "^6.4.1" @@ -2695,9 +2695,9 @@ camelize@^1.0.0: integrity sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ== caniuse-lite@^1.0.30001517: - version "1.0.30001524" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001524.tgz#1e14bce4f43c41a7deaeb5ebfe86664fe8dadb80" - integrity sha512-Jj917pJtYg9HSJBF95HVX3Cdr89JUyLT4IZ8SvM5aDRni95swKgYi3TgYLH5hnGfPE/U1dg6IfZ50UsIlLkwSA== + version "1.0.30001527" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001527.tgz#813826554828245ccee776c850566dce12bdeaba" + integrity sha512-YkJi7RwPgWtXVSgK4lG9AHH57nSzvvOp9MesgXmw4Q7n0C3H04L0foHqfxcmSAm5AcWb8dW9AYj2tR7/5GnddQ== chai@^4.3.7: version "4.3.8" @@ -2845,13 +2845,13 @@ core-js-compat@^3.31.0: browserslist "^4.21.10" cosmiconfig@^8.1.3: - version "8.2.0" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz#f7d17c56a590856cd1e7cee98734dca272b0d8fd" - integrity sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ== + version "8.3.4" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.4.tgz#ee1356e7f24e248a6bb34ec5d438c3dcebeb410c" + integrity sha512-SF+2P8+o/PTV05rgsAjDzL4OFdVXAulSfC/L19VaeVT7+tpOOSscCt2QLxDZ+CLxF2WOiq6y1K5asvs8qUJT/Q== dependencies: - import-fresh "^3.2.1" + import-fresh "^3.3.0" js-yaml "^4.1.0" - parse-json "^5.0.0" + parse-json "^5.2.0" path-type "^4.0.0" create-hash@^1.1.0: @@ -3004,9 +3004,9 @@ doctrine@^3.0.0: esutils "^2.0.2" electron-to-chromium@^1.4.477: - version "1.4.506" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.506.tgz#59f64a211102db4c3ebae2f39cc0e8e1b12b3a07" - integrity sha512-xxGct4GPAKSRlrLBtJxJFYy74W11zX6PO9GyHgl/U+2s3Dp0ZEwAklDfNHXOWcvH7zWMpsmgbR0ggEuaYAVvHA== + version "1.4.508" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.508.tgz#5641ff2f5ba11df4bd960fe6a2f9f70aa8b9af96" + integrity sha512-FFa8QKjQK/A5QuFr2167myhMesGrhlOBD+3cYNxO9/S4XzHEXesyTD/1/xF644gC8buFPz3ca6G1LOQD0tZrrg== elliptic@^6.4.1: version "6.5.4" @@ -3613,9 +3613,9 @@ formdata-polyfill@^4.0.10: fetch-blob "^3.1.2" framer-motion@^10.16.3: - version "10.16.3" - resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-10.16.3.tgz#4a5b38286192f82e6864bde52e41a5e87433beda" - integrity sha512-1OMs6wY964hX8YjiCeYQlgrZDbkKvZztnynTUgUZjdzq2au6PZUsodmUY6GAudUgImrWqTrtpSwMbi1ETmIx4A== + version "10.16.4" + resolved "https://registry.npmjs.org/framer-motion/-/framer-motion-10.16.4.tgz#30279ef5499b8d85db3a298ee25c83429933e9f8" + integrity sha512-p9V9nGomS3m6/CALXqv6nFGMuFOxbWsmaOrdmhyQimMIlLl3LC7h7l86wge/Js/8cRu5ktutS/zlzgR7eBOtFA== dependencies: tslib "^2.4.0" optionalDependencies: @@ -3931,7 +3931,7 @@ immutable@^4.0.0: resolved "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz#2e07b33837b4bb7662f288c244d1ced1ef65a78f" integrity sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA== -import-fresh@^3.2.1: +import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -4500,9 +4500,9 @@ minimist@^1.2.0, minimist@^1.2.6: integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== mlly@^1.2.0, mlly@^1.4.0: - version "1.4.1" - resolved "https://registry.npmjs.org/mlly/-/mlly-1.4.1.tgz#7ab9cbb040bf8bd8205a0c341ce9acc3ae0c3a74" - integrity sha512-SCDs78Q2o09jiZiE2WziwVBEqXQ02XkGdUy45cbJf+BpYRIjArXRJ1Wbowxkb+NaM9DWvS3UC9GiO/6eqvQ/pg== + version "1.4.2" + resolved "https://registry.npmjs.org/mlly/-/mlly-1.4.2.tgz#7cf406aa319ff6563d25da6b36610a93f2a8007e" + integrity sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg== dependencies: acorn "^8.10.0" pathe "^1.1.1" @@ -4510,9 +4510,9 @@ mlly@^1.2.0, mlly@^1.4.0: ufo "^1.3.0" mock-socket@^9.2.1: - version "9.2.1" - resolved "https://registry.npmjs.org/mock-socket/-/mock-socket-9.2.1.tgz#cc9c0810aa4d0afe02d721dcb2b7e657c00e2282" - integrity sha512-aw9F9T9G2zpGipLLhSNh6ZpgUyUl4frcVmRN08uE1NWPWg43Wx6+sGPDbQ7E5iFZZDJW5b5bypMeAEHqTbIFag== + version "9.3.0" + resolved "https://registry.npmjs.org/mock-socket/-/mock-socket-9.3.0.tgz#f98286c3d5a0d3633a9a88bb61e2d258190f2755" + integrity sha512-TFaQaIxXbzNke3z9nhSnMJFQn8l7QPmF+Luhh8MPHqkmr6B4fPquOTSILCjGUyxDBPv9AFxuaTGmRINDHDmkdQ== ms@2.1.2: version "2.1.2" @@ -4756,7 +4756,7 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-json@^5.0.0: +parse-json@^5.2.0: version "5.2.0" resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== @@ -4982,7 +4982,7 @@ react-helmet@^6.1.0: react-i18next@^13.2.2: version "13.2.2" - resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-13.2.2.tgz#b1e78ed66a54f4bc819616f68b98221e1b1a1936" + resolved "https://registry.npmjs.org/react-i18next/-/react-i18next-13.2.2.tgz#b1e78ed66a54f4bc819616f68b98221e1b1a1936" integrity sha512-+nFUkbRByFwnrfDcYqvzBuaeZb+nACHx+fAWN/pZMddWOCJH5hoc21+Sa/N/Lqi6ne6/9wC/qRGOoQhJa6IkEQ== dependencies: "@babel/runtime" "^7.22.5" @@ -5427,13 +5427,13 @@ string.prototype.trimend@^1.0.6: es-abstract "^1.20.4" string.prototype.trimstart@^1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" - integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== + version "1.0.7" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" + integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" string_decoder@^1.1.1: version "1.3.0" From a6311d60e3ee6684bc998a8d9bf01389e91a695c Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Tue, 5 Sep 2023 21:23:53 +0700 Subject: [PATCH 415/435] lint --- src/styles/index.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/styles/index.scss b/src/styles/index.scss index 5c9adae123..be4cabf696 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -6,4 +6,4 @@ html { @media (min-width: 600px) { font-size: 11px; } -} \ No newline at end of file +} From 32396421acb84642bd2a855cee256dcb76fb7546 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Sep 2023 21:22:25 +0000 Subject: [PATCH 416/435] Bump i18next from 23.4.6 to 23.4.9 Bumps [i18next](https://github.com/i18next/i18next) from 23.4.6 to 23.4.9. - [Release notes](https://github.com/i18next/i18next/releases) - [Changelog](https://github.com/i18next/i18next/blob/master/CHANGELOG.md) - [Commits](https://github.com/i18next/i18next/compare/v23.4.6...v23.4.9) --- updated-dependencies: - dependency-name: i18next dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 2c266fb27f..f8fcc660bd 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "chart.js": "^4.4.0", "date-fns": "^2.29.3", "framer-motion": "^10.16.3", - "i18next": "^23.4.6", + "i18next": "^23.4.9", "i18next-browser-languagedetector": "^7.1.0", "lodash.throttle": "^4.1.1", "qrcode-generator": "1.4.4", diff --git a/yarn.lock b/yarn.lock index 6a5f8e639b..84386d190a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2551,9 +2551,10 @@ binary-extensions@^2.0.0: resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -"bip32-ed25519@git+https://github.com/Zondax/bip32-ed25519.git": +"bip32-ed25519@https://github.com/Zondax/bip32-ed25519": version "0.0.4" - resolved "git+https://github.com/Zondax/bip32-ed25519.git#0949df01b5c93885339bc28116690292088f6134" + uid "0949df01b5c93885339bc28116690292088f6134" + resolved "https://github.com/Zondax/bip32-ed25519#0949df01b5c93885339bc28116690292088f6134" dependencies: bn.js "^5.1.1" elliptic "^6.4.1" @@ -3909,10 +3910,10 @@ i18next-browser-languagedetector@^7.1.0: dependencies: "@babel/runtime" "^7.19.4" -i18next@^23.4.6: - version "23.4.6" - resolved "https://registry.npmjs.org/i18next/-/i18next-23.4.6.tgz#10211e72d5bd29e274baae99c6cc0178b93a93f8" - integrity sha512-jBE8bui969Ygv7TVYp0pwDZB7+he0qsU+nz7EcfdqSh+QvKjEfl9YPRQd/KrGiMhTYFGkeuPaeITenKK/bSFDg== +i18next@^23.4.9: + version "23.4.9" + resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.4.9.tgz#00a00449923c11070c466dad9244fe4c39d34298" + integrity sha512-F8YQ29LD6FvWS/aOYbZ4WqjDEuQZmug8akAM0QOcAtR+EuHHlBYf/JpsjeqUDdYiClmj2zE9rI9ZUWzN7W+trQ== dependencies: "@babel/runtime" "^7.22.5" From 41f404d59184f7fba15f7d457b6bd198c11eae9a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 6 Sep 2023 21:47:53 +0000 Subject: [PATCH 417/435] Bump @polkadot-cloud/core from 0.1.14 to 0.1.15 Bumps [@polkadot-cloud/core](https://github.com/paritytech/polkadot-cloud) from 0.1.14 to 0.1.15. - [Release notes](https://github.com/paritytech/polkadot-cloud/releases) - [Commits](https://github.com/paritytech/polkadot-cloud/commits) --- updated-dependencies: - dependency-name: "@polkadot-cloud/core" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index f8fcc660bd..b9485355fc 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "@fortawesome/react-fontawesome": "^0.2.0", "@ledgerhq/hw-transport-webhid": "^6.27.19", "@polkadot-cloud/community": "0.1.11", - "@polkadot-cloud/core": "0.1.14", + "@polkadot-cloud/core": "0.1.15", "@polkadot-cloud/react": "^0.1.34", "@polkadot-cloud/utils": "^0.0.11", "@polkadot/api": "^10.9.1", diff --git a/yarn.lock b/yarn.lock index 84386d190a..3519284f2a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1453,10 +1453,10 @@ resolved "https://registry.npmjs.org/@polkadot-cloud/community/-/community-0.1.11.tgz#62f57c92d663f758bdee2b1a2147b74dd3de4971" integrity sha512-R2ncl5idtiRfzA0a/Lo1j7HHo/4ztatz7xbnP9TPDMYk1JWCtoy77APnFLLukIUbGQGxw1kDVCP8U4X9KrZMKQ== -"@polkadot-cloud/core@0.1.14", "@polkadot-cloud/core@^0.1.13": - version "0.1.14" - resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.1.14.tgz#d6e2590f332d0e37bfabbc202b54dc8cdcaabb91" - integrity sha512-4ZIIGuiUinGrgTInbwM9bEIlQUSp2qgMxDdXxW9sS3Q83L3qqls2XjTT+7bP77LlSewT4DnOh5UVHFv7JebwQw== +"@polkadot-cloud/core@0.1.15", "@polkadot-cloud/core@^0.1.13": + version "0.1.15" + resolved "https://registry.yarnpkg.com/@polkadot-cloud/core/-/core-0.1.15.tgz#b4e90681b7b60cd33881bf30789f055e759ae3ca" + integrity sha512-M/6AnLxkC8y7uPLI8gkhSIXvA2Z4/YtlkOzf83uLGtr6gRcgtENA9dyKno/GmyvM4I0B16qAcKzYnj0fPpzxrQ== "@polkadot-cloud/react@^0.1.34": version "0.1.34" From badfe3b375c7c509a753f524f1f5bc5fe036dad8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Sep 2023 21:17:39 +0000 Subject: [PATCH 418/435] Bump @dotlottie/player-component from 2.5.1 to 2.5.2 Bumps [@dotlottie/player-component](https://github.com/dotlottie/player-component) from 2.5.1 to 2.5.2. - [Release notes](https://github.com/dotlottie/player-component/releases) - [Commits](https://github.com/dotlottie/player-component/compare/@dotlottie/player-component@2.5.1...@dotlottie/player-component@2.5.2) --- updated-dependencies: - dependency-name: "@dotlottie/player-component" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index b9485355fc..7686649e7c 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "visualizer": "vite-bundle-visualizer" }, "dependencies": { - "@dotlottie/player-component": "^2.5.1", + "@dotlottie/player-component": "^2.5.2", "@fortawesome/fontawesome-svg-core": "^6.4.2", "@fortawesome/free-brands-svg-icons": "^6.4.2", "@fortawesome/free-regular-svg-icons": "^6.4.2", diff --git a/yarn.lock b/yarn.lock index 3519284f2a..717f21534c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1061,10 +1061,10 @@ "@babel/helper-validator-identifier" "^7.22.15" to-fast-properties "^2.0.0" -"@dotlottie/player-component@^2.5.1": - version "2.5.1" - resolved "https://registry.npmjs.org/@dotlottie/player-component/-/player-component-2.5.1.tgz#0cc58b22701c587ea3d898e919e859cd472d5b3d" - integrity sha512-oq8621B1m7CreQRp5YlEGyTwTGxonjQF6CGoZ4j2AtsJgqFqXRdaCpOwm6lyloTHzJMVwsl7VktGHd5QYtDuAQ== +"@dotlottie/player-component@^2.5.2": + version "2.5.2" + resolved "https://registry.yarnpkg.com/@dotlottie/player-component/-/player-component-2.5.2.tgz#4e9493bb6b6b853414b9c364b806194713220d1d" + integrity sha512-sM2UXrb31Tkc8f4ZdBhOQIBXq/pFDkUACw+Nt1nDbXfsjxrXL9lVJ4Sy7aHHRgFcEgJQXOiLsgmRe/3vPU5wwQ== dependencies: lit "^2.7.5" From d135533217727e6388c9accd018ddc65e1f02db1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Sep 2023 21:17:17 +0000 Subject: [PATCH 419/435] Bump i18next from 23.4.9 to 23.5.0 Bumps [i18next](https://github.com/i18next/i18next) from 23.4.9 to 23.5.0. - [Release notes](https://github.com/i18next/i18next/releases) - [Changelog](https://github.com/i18next/i18next/blob/master/CHANGELOG.md) - [Commits](https://github.com/i18next/i18next/compare/v23.4.9...v23.5.0) --- updated-dependencies: - dependency-name: i18next dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 7686649e7c..ef21ea0269 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "chart.js": "^4.4.0", "date-fns": "^2.29.3", "framer-motion": "^10.16.3", - "i18next": "^23.4.9", + "i18next": "^23.5.0", "i18next-browser-languagedetector": "^7.1.0", "lodash.throttle": "^4.1.1", "qrcode-generator": "1.4.4", diff --git a/yarn.lock b/yarn.lock index 717f21534c..ff8e5fc3a3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3910,10 +3910,10 @@ i18next-browser-languagedetector@^7.1.0: dependencies: "@babel/runtime" "^7.19.4" -i18next@^23.4.9: - version "23.4.9" - resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.4.9.tgz#00a00449923c11070c466dad9244fe4c39d34298" - integrity sha512-F8YQ29LD6FvWS/aOYbZ4WqjDEuQZmug8akAM0QOcAtR+EuHHlBYf/JpsjeqUDdYiClmj2zE9rI9ZUWzN7W+trQ== +i18next@^23.5.0: + version "23.5.0" + resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.5.0.tgz#24745f33e8e3edfe4f1b6703980d0eaa6b6bc39f" + integrity sha512-SidadIY6yQfmgsDuP1kAGmLbADTGfb7dNCUbAccJ7cbIqKf0+92YNgTI8EWfhV57uX7h+h9Q4yrIMoC+o5Qu+w== dependencies: "@babel/runtime" "^7.22.5" From 7d289b2c0692adcc03dd1a0feff2096f51dfddf1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 8 Sep 2023 21:21:10 +0000 Subject: [PATCH 420/435] Bump i18next from 23.5.0 to 23.5.1 Bumps [i18next](https://github.com/i18next/i18next) from 23.5.0 to 23.5.1. - [Release notes](https://github.com/i18next/i18next/releases) - [Changelog](https://github.com/i18next/i18next/blob/master/CHANGELOG.md) - [Commits](https://github.com/i18next/i18next/compare/v23.5.0...v23.5.1) --- updated-dependencies: - dependency-name: i18next dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index ef21ea0269..1f95ec8996 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "chart.js": "^4.4.0", "date-fns": "^2.29.3", "framer-motion": "^10.16.3", - "i18next": "^23.5.0", + "i18next": "^23.5.1", "i18next-browser-languagedetector": "^7.1.0", "lodash.throttle": "^4.1.1", "qrcode-generator": "1.4.4", diff --git a/yarn.lock b/yarn.lock index ff8e5fc3a3..c7c7129443 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3910,10 +3910,10 @@ i18next-browser-languagedetector@^7.1.0: dependencies: "@babel/runtime" "^7.19.4" -i18next@^23.5.0: - version "23.5.0" - resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.5.0.tgz#24745f33e8e3edfe4f1b6703980d0eaa6b6bc39f" - integrity sha512-SidadIY6yQfmgsDuP1kAGmLbADTGfb7dNCUbAccJ7cbIqKf0+92YNgTI8EWfhV57uX7h+h9Q4yrIMoC+o5Qu+w== +i18next@^23.5.1: + version "23.5.1" + resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.5.1.tgz#7f7c35ffaa907618d9489f106d5006b09fbca3d3" + integrity sha512-JelYzcaCoFDaa+Ysbfz2JsGAKkrHiMG6S61+HLBUEIPaF40WMwW9hCPymlQGrP+wWawKxKPuSuD71WZscCsWHg== dependencies: "@babel/runtime" "^7.22.5" From 5c9dd0a70a26560dbfa2b37b6373551b7695473a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 8 Sep 2023 21:20:55 +0000 Subject: [PATCH 421/435] Bump @dotlottie/player-component from 2.5.2 to 2.5.3 Bumps [@dotlottie/player-component](https://github.com/dotlottie/player-component) from 2.5.2 to 2.5.3. - [Release notes](https://github.com/dotlottie/player-component/releases) - [Commits](https://github.com/dotlottie/player-component/compare/@dotlottie/player-component@2.5.2...@dotlottie/player-component@2.5.3) --- updated-dependencies: - dependency-name: "@dotlottie/player-component" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 1f95ec8996..99ea49e481 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "visualizer": "vite-bundle-visualizer" }, "dependencies": { - "@dotlottie/player-component": "^2.5.2", + "@dotlottie/player-component": "^2.5.3", "@fortawesome/fontawesome-svg-core": "^6.4.2", "@fortawesome/free-brands-svg-icons": "^6.4.2", "@fortawesome/free-regular-svg-icons": "^6.4.2", diff --git a/yarn.lock b/yarn.lock index c7c7129443..4aa6b172ea 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1061,10 +1061,10 @@ "@babel/helper-validator-identifier" "^7.22.15" to-fast-properties "^2.0.0" -"@dotlottie/player-component@^2.5.2": - version "2.5.2" - resolved "https://registry.yarnpkg.com/@dotlottie/player-component/-/player-component-2.5.2.tgz#4e9493bb6b6b853414b9c364b806194713220d1d" - integrity sha512-sM2UXrb31Tkc8f4ZdBhOQIBXq/pFDkUACw+Nt1nDbXfsjxrXL9lVJ4Sy7aHHRgFcEgJQXOiLsgmRe/3vPU5wwQ== +"@dotlottie/player-component@^2.5.3": + version "2.5.3" + resolved "https://registry.yarnpkg.com/@dotlottie/player-component/-/player-component-2.5.3.tgz#8d3f1e220b68b8e7f608f91b845507cc95f09c17" + integrity sha512-J5Z3hh3pjds3AWiyqcYPH+R/GBbhW8xJL3QFa0nXfDIzLbOZ5cntCh40EXF+1V/k0utgJpn/g9xDp7xXWwHifg== dependencies: lit "^2.7.5" From b56dc984eea5d83b12ee09e288b0578f4746f95b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 8 Sep 2023 21:22:14 +0000 Subject: [PATCH 422/435] Bump eslint from 8.48.0 to 8.49.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.48.0 to 8.49.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.48.0...v8.49.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 24 ++++++++++++------------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index 99ea49e481..30db74dba5 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "@typescript-eslint/eslint-plugin": "^6.6.0", "@typescript-eslint/parser": "^6.6.0", "@vitejs/plugin-react-swc": "^3.3.2", - "eslint": "^8.48.0", + "eslint": "^8.49.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb-typescript": "^17.1.0", "eslint-config-prettier": "^9.0.0", diff --git a/yarn.lock b/yarn.lock index 4aa6b172ea..a2b3095d59 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1234,10 +1234,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.48.0": - version "8.48.0" - resolved "https://registry.npmjs.org/@eslint/js/-/js-8.48.0.tgz#642633964e217905436033a2bd08bf322849b7fb" - integrity sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw== +"@eslint/js@8.49.0": + version "8.49.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.49.0.tgz#86f79756004a97fa4df866835093f1df3d03c333" + integrity sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w== "@fortawesome/fontawesome-common-types@6.4.2": version "6.4.2" @@ -1279,9 +1279,9 @@ dependencies: prop-types "^15.8.1" -"@humanwhocodes/config-array@^0.11.10": +"@humanwhocodes/config-array@^0.11.11": version "0.11.11" - resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz#88a04c570dbbc7dd943e4712429c3df09bc32844" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.11.tgz#88a04c570dbbc7dd943e4712429c3df09bc32844" integrity sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA== dependencies: "@humanwhocodes/object-schema" "^1.2.1" @@ -3360,16 +3360,16 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@^8.48.0: - version "8.48.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-8.48.0.tgz#bf9998ba520063907ba7bfe4c480dc8be03c2155" - integrity sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg== +eslint@^8.49.0: + version "8.49.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.49.0.tgz#09d80a89bdb4edee2efcf6964623af1054bf6d42" + integrity sha512-jw03ENfm6VJI0jA9U+8H5zfl5b+FvuU3YYvZRdZHOlU2ggJkxrlkJH4HcDrZpj6YwD8kuYqvQM8LyesoazrSOQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" "@eslint/eslintrc" "^2.1.2" - "@eslint/js" "8.48.0" - "@humanwhocodes/config-array" "^0.11.10" + "@eslint/js" "8.49.0" + "@humanwhocodes/config-array" "^0.11.11" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" ajv "^6.12.4" From 29607f56d1a6aeb52fb0e820d04e90383e5b3f19 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 8 Sep 2023 21:21:48 +0000 Subject: [PATCH 423/435] Bump vitest from 0.34.3 to 0.34.4 Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 0.34.3 to 0.34.4. - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Commits](https://github.com/vitest-dev/vitest/commits/v0.34.4/packages/vitest) --- updated-dependencies: - dependency-name: vitest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 78 ++++++++++++++++++++++++++-------------------------- 2 files changed, 40 insertions(+), 40 deletions(-) diff --git a/package.json b/package.json index 30db74dba5..8698e6f414 100644 --- a/package.json +++ b/package.json @@ -92,6 +92,6 @@ "vite-plugin-eslint": "^1.8.1", "vite-plugin-svgr": "^3.2.0", "vite-tsconfig-paths": "^4.2.0", - "vitest": "^0.34.3" + "vitest": "^0.34.4" } } diff --git a/yarn.lock b/yarn.lock index a2b3095d59..38cef9fcaf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2229,44 +2229,44 @@ dependencies: "@swc/core" "^1.3.61" -"@vitest/expect@0.34.3": - version "0.34.3" - resolved "https://registry.npmjs.org/@vitest/expect/-/expect-0.34.3.tgz#576e1fd6a3a8b8b7a79a06477f3d450a77d67852" - integrity sha512-F8MTXZUYRBVsYL1uoIft1HHWhwDbSzwAU9Zgh8S6WFC3YgVb4AnFV2GXO3P5Em8FjEYaZtTnQYoNwwBrlOMXgg== +"@vitest/expect@0.34.4": + version "0.34.4" + resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-0.34.4.tgz#f857a83268b9e9d4e9410fe168cb206033838102" + integrity sha512-XlMKX8HyYUqB8dsY8Xxrc64J2Qs9pKMt2Z8vFTL4mBWXJsg4yoALHzJfDWi8h5nkO4Zua4zjqtapQ/IluVkSnA== dependencies: - "@vitest/spy" "0.34.3" - "@vitest/utils" "0.34.3" + "@vitest/spy" "0.34.4" + "@vitest/utils" "0.34.4" chai "^4.3.7" -"@vitest/runner@0.34.3": - version "0.34.3" - resolved "https://registry.npmjs.org/@vitest/runner/-/runner-0.34.3.tgz#ce09b777d133bbcf843e1a67f4a743365764e097" - integrity sha512-lYNq7N3vR57VMKMPLVvmJoiN4bqwzZ1euTW+XXYH5kzr3W/+xQG3b41xJn9ChJ3AhYOSoweu974S1V3qDcFESA== +"@vitest/runner@0.34.4": + version "0.34.4" + resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-0.34.4.tgz#07543915ad22c53d99fb4bb758cb9bd5db3d7f80" + integrity sha512-hwwdB1StERqUls8oV8YcpmTIpVeJMe4WgYuDongVzixl5hlYLT2G8afhcdADeDeqCaAmZcSgLTLtqkjPQF7x+w== dependencies: - "@vitest/utils" "0.34.3" + "@vitest/utils" "0.34.4" p-limit "^4.0.0" pathe "^1.1.1" -"@vitest/snapshot@0.34.3": - version "0.34.3" - resolved "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-0.34.3.tgz#cb4767aa44711a1072bd2e06204b659275c4f0f2" - integrity sha512-QyPaE15DQwbnIBp/yNJ8lbvXTZxS00kRly0kfFgAD5EYmCbYcA+1EEyRalc93M0gosL/xHeg3lKAClIXYpmUiQ== +"@vitest/snapshot@0.34.4": + version "0.34.4" + resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-0.34.4.tgz#ee2c732e5978438f96c669aabb9eb66eb7f3ff46" + integrity sha512-GCsh4coc3YUSL/o+BPUo7lHQbzpdttTxL6f4q0jRx2qVGoYz/cyTRDJHbnwks6TILi6560bVWoBpYC10PuTLHw== dependencies: magic-string "^0.30.1" pathe "^1.1.1" pretty-format "^29.5.0" -"@vitest/spy@0.34.3": - version "0.34.3" - resolved "https://registry.npmjs.org/@vitest/spy/-/spy-0.34.3.tgz#d4cf25e6ca9230991a0223ecd4ec2df30f0784ff" - integrity sha512-N1V0RFQ6AI7CPgzBq9kzjRdPIgThC340DGjdKdPSE8r86aUSmeliTUgkTqLSgtEwWWsGfBQ+UetZWhK0BgJmkQ== +"@vitest/spy@0.34.4": + version "0.34.4" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-0.34.4.tgz#181ad9f32ce426ac33eb66ed35b880ee9b457035" + integrity sha512-PNU+fd7DUPgA3Ya924b1qKuQkonAW6hL7YUjkON3wmBwSTIlhOSpy04SJ0NrRsEbrXgMMj6Morh04BMf8k+w0g== dependencies: tinyspy "^2.1.1" -"@vitest/utils@0.34.3": - version "0.34.3" - resolved "https://registry.npmjs.org/@vitest/utils/-/utils-0.34.3.tgz#6e243189a358b736b9fc0216e6b6979bc857e897" - integrity sha512-kiSnzLG6m/tiT0XEl4U2H8JDBjFtwVlaE8I3QfGiMFR0QvnRDfYfdP3YvTBWM/6iJDAyaPY6yVQiCTUc7ZzTHA== +"@vitest/utils@0.34.4": + version "0.34.4" + resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-0.34.4.tgz#0b6bf5fe07223ebb6ec24cd1edc0137cb301ecfd" + integrity sha512-yR2+5CHhp/K4ySY0Qtd+CAL9f5Yh1aXrKfAT42bq6CtlGPh92jIDDDSg7ydlRow1CP+dys4TrOrbELOyNInHSg== dependencies: diff-sequences "^29.4.3" loupe "^2.3.6" @@ -5777,10 +5777,10 @@ vite-bundle-visualizer@^0.10.0: cac "^6.7.14" rollup-plugin-visualizer "^5.9.2" -vite-node@0.34.3: - version "0.34.3" - resolved "https://registry.npmjs.org/vite-node/-/vite-node-0.34.3.tgz#de134fe38bc1555ac8ab5e489d7df6159a3e1a4c" - integrity sha512-+0TzJf1g0tYXj6tR2vEyiA42OPq68QkRZCu/ERSo2PtsDJfBpDyEfuKbRvLmZqi/CgC7SCBtyC+WjTGNMRIaig== +vite-node@0.34.4: + version "0.34.4" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.34.4.tgz#96d5b4dcc5585e3b289390f4e11ed6450978e30e" + integrity sha512-ho8HtiLc+nsmbwZMw8SlghESEE3KxJNp04F/jPUCLVvaURwt0d+r9LxEqCX5hvrrOQ0GSyxbYr5ZfRYhQ0yVKQ== dependencies: cac "^6.7.14" debug "^4.3.4" @@ -5839,7 +5839,7 @@ vite-tsconfig-paths@^4.2.0: globrex "^0.1.2" tsconfck "^2.1.0" -"vite@^3.0.0 || ^4.0.0", vite@^4.4.9: +"vite@^3.0.0 || ^4.0.0", "vite@^3.1.0 || ^4.0.0 || ^5.0.0-0", vite@^4.4.9: version "4.4.9" resolved "https://registry.npmjs.org/vite/-/vite-4.4.9.tgz#1402423f1a2f8d66fd8d15e351127c7236d29d3d" integrity sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA== @@ -5850,19 +5850,19 @@ vite-tsconfig-paths@^4.2.0: optionalDependencies: fsevents "~2.3.2" -vitest@^0.34.3: - version "0.34.3" - resolved "https://registry.npmjs.org/vitest/-/vitest-0.34.3.tgz#863d61c133d01b16e49fd52d380c09fa5ac03188" - integrity sha512-7+VA5Iw4S3USYk+qwPxHl8plCMhA5rtfwMjgoQXMT7rO5ldWcdsdo3U1QD289JgglGK4WeOzgoLTsGFu6VISyQ== +vitest@^0.34.4: + version "0.34.4" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.34.4.tgz#c7f40cf7ca3b590bb333b3272a98f49e85f7b958" + integrity sha512-SE/laOsB6995QlbSE6BtkpXDeVNLJc1u2LHRG/OpnN4RsRzM3GQm4nm3PQCK5OBtrsUqnhzLdnT7se3aeNGdlw== dependencies: "@types/chai" "^4.3.5" "@types/chai-subset" "^1.3.3" "@types/node" "*" - "@vitest/expect" "0.34.3" - "@vitest/runner" "0.34.3" - "@vitest/snapshot" "0.34.3" - "@vitest/spy" "0.34.3" - "@vitest/utils" "0.34.3" + "@vitest/expect" "0.34.4" + "@vitest/runner" "0.34.4" + "@vitest/snapshot" "0.34.4" + "@vitest/spy" "0.34.4" + "@vitest/utils" "0.34.4" acorn "^8.9.0" acorn-walk "^8.2.0" cac "^6.7.14" @@ -5876,8 +5876,8 @@ vitest@^0.34.3: strip-literal "^1.0.1" tinybench "^2.5.0" tinypool "^0.7.0" - vite "^3.0.0 || ^4.0.0" - vite-node "0.34.3" + vite "^3.1.0 || ^4.0.0 || ^5.0.0-0" + vite-node "0.34.4" why-is-node-running "^2.2.2" void-elements@3.1.0: From a0800268d021818cf7a6877312ed3c10c1368158 Mon Sep 17 00:00:00 2001 From: TingALin <linshaoting6@gmail.com> Date: Mon, 11 Sep 2023 17:27:14 +0700 Subject: [PATCH 424/435] translation --- src/locale/cn/modals.json | 6 ++++++ src/locale/en/modals.json | 7 +++++++ src/modals/ClaimPayouts/Forms.tsx | 5 +---- src/modals/ClaimPayouts/Item.tsx | 6 ++++-- src/modals/ClaimPayouts/Overview.tsx | 17 +++++------------ src/modals/ClaimPayouts/index.tsx | 4 +++- 6 files changed, 26 insertions(+), 19 deletions(-) diff --git a/src/locale/cn/modals.json b/src/locale/cn/modals.json index b203494bab..68a6fee78e 100644 --- a/src/locale/cn/modals.json +++ b/src/locale/cn/modals.json @@ -14,6 +14,7 @@ "addedToBond": "这笔{{unit}} 将添加到您当前的质押金中", "addingFavorite": "正在添加{{count}} 个提名", "addressReceived": "己收到地址:", + "afterClaiming": "申领后资金将立即变成可用余额", "allNominations": "所有提名", "allPoolRoles": "所有池角色", "allowToJoin": "允许新成员加入", @@ -41,10 +42,13 @@ "checking": "检验中...", "chooseLanguage": "选择语言", "claim": "申领", + "claimAll": "申领所有", "claimCommission": "申领佣金", "claimOutstandingCommission": "在提名池奖励帐户中申领任何未付佣金", + "claimPayouts": "申领收益", "claimReward1": "提交后,收益将被绑定回提名池中。可以随时提取", "claimReward2": "提取收益将立即将其作为余额转入帐户", + "claimsOnBehalf": "代表所有提名同一验证人的提名人申领收益。交易费通常更高,大多数提名人都依赖验证人代表他们进行收益申领", "commissionRate": "佣金值率", "compound": "复利", "confirmReset": "确认重设", @@ -149,6 +153,7 @@ "notInstalled": "未安装", "notMeetMinimum": "未达到{{minNominatorBondUnit}} {{unit}}的提名人最低额.请在提名前质押一些资金", "notStaking": "无抵押", + "notToClaim": "验证人通常代表其提名人申领收益。如果您决定现在不申领收益,您很可能会在1-2天内收到收益", "notePoolDepositorMinBond_depositor": "作为提名池存款人,您必须至少持有 {{bond}} {{unit}}", "notePoolDepositorMinBond_member": "作为一名提名池成员,你必须至少持有 {{bond}} {{unit}}", "onceSubmitted": "提交后,您将开始提名验证人", @@ -157,6 +162,7 @@ "openFeedback": "在 Canny.io反馈", "payeeAdded": "已添加收款人", "payoutDestination": "收益到账地址", + "pendingPayout": "{{count}} 个待申领收益", "pool": "池", "poolIsNotNominating": "该提名池未提名任何验证人", "poolName": "提名池名称", diff --git a/src/locale/en/modals.json b/src/locale/en/modals.json index 4ed6210c11..0b22da9924 100644 --- a/src/locale/en/modals.json +++ b/src/locale/en/modals.json @@ -16,6 +16,7 @@ "addingFavorite_one": "Adding {{count}} Nomination", "addingFavorite_other": "Adding {{count}} Nominations", "addressReceived": "Address Received:", + "afterClaiming": "Funds will be immediately available as free balance after claiming.", "allNominations": "All Nominations", "allPoolRoles": "All Pool Roles", "allowToJoin": "Allow new members to join the pool.", @@ -43,10 +44,13 @@ "checking": "Checking...", "chooseLanguage": "Choose Language", "claim": "Claim", + "claimAll": "Claim All", "claimCommission": "Claim Commission", "claimOutstandingCommission": " Claim any outstanding commission in the pool reward account.", + "claimPayouts": "Claim Payouts", "claimReward1": "Once submitted, your rewards will be bonded back into the pool. You own these additional bonded funds and will be able to withdraw them at any time.", "claimReward2": "Withdrawing rewards will immediately transfer them to your account as free balance.", + "claimsOnBehalf": "Claiming a payout claims on behalf of every nominator backing the validator for the era you are claiming for. For this reason transaction fees are usually higher, and most nominators rely on the validator to claim on their behalf.", "commissionRate": "Commission Rate", "compound": "Compound", "confirmReset": "Confirm Reset", @@ -158,6 +162,7 @@ "notInstalled": "Not Installed", "notMeetMinimum": "You do not meet the minimum nominator bond of {{minNominatorBondUnit}} {{unit}}. Please bond some funds before nominating.", "notStaking": "Not Staking", + "notToClaim": "Validators usually claim payouts on behalf of their nominators. If you decide not to claim here, it is likely you will receive your payouts within 1-2 days of them becoming available.", "notePoolDepositorMinBond_depositor": "As the pool depositor you must maintain a bond of at least {{bond}} {{unit}}.", "notePoolDepositorMinBond_member": "As a pool member you must maintain a bond of at least {{bond}} {{unit}}.", "onceSubmitted": "Once submitted, you will start nominating your chosen validators.", @@ -166,6 +171,8 @@ "openFeedback": "Open Feedback on Canny.io", "payeeAdded": "Payee Added", "payoutDestination": "Payout Destination", + "pendingPayout_one": "{{count}} Pending Payout", + "pendingPayout_other": "{{count}} Pending Payouts", "pool": "Pool", "poolIsNotNominating": "Pool is Not Nominating.", "poolName": "Pool Name", diff --git a/src/modals/ClaimPayouts/Forms.tsx b/src/modals/ClaimPayouts/Forms.tsx index 9d6c4e810a..930b37136f 100644 --- a/src/modals/ClaimPayouts/Forms.tsx +++ b/src/modals/ClaimPayouts/Forms.tsx @@ -135,10 +135,7 @@ export const Forms = forwardRef( network.unit }`} /> - <p> - Funds will be immediately available as free balance after - claiming. - </p> + <p>{t('afterClaiming')}</p> </div> </div> <SubmitTx diff --git a/src/modals/ClaimPayouts/Item.tsx b/src/modals/ClaimPayouts/Item.tsx index 99a222a6ca..72ca382be9 100644 --- a/src/modals/ClaimPayouts/Item.tsx +++ b/src/modals/ClaimPayouts/Item.tsx @@ -31,8 +31,10 @@ export const Item = ({ <section> <h4> <span> - Era {era}: {numPayouts} Pending Payout - {numPayouts === 1 ? '' : 's'} + Era {era}: {numPayouts} + {t('pendingPayout', { + count: numPayouts, + })} </span> </h4> <h2> diff --git a/src/modals/ClaimPayouts/Overview.tsx b/src/modals/ClaimPayouts/Overview.tsx index 2934c622e2..f087543f7c 100644 --- a/src/modals/ClaimPayouts/Overview.tsx +++ b/src/modals/ClaimPayouts/Overview.tsx @@ -5,12 +5,14 @@ import { ButtonSubmit, ModalNotes } from '@polkadot-cloud/react'; import { forwardRef } from 'react'; import { usePayouts } from 'contexts/Payouts'; import BigNumber from 'bignumber.js'; +import { useTranslation } from 'react-i18next'; import { Item } from './Item'; import { ContentWrapper } from './Wrappers'; import type { OverviewProps } from './types'; export const Overview = forwardRef( ({ setSection, setPayouts }: OverviewProps, ref: any) => { + const { t } = useTranslation('modals'); const { unclaimedPayouts } = usePayouts(); const claimAllPayouts = Object.entries(unclaimedPayouts || {}).map( @@ -32,7 +34,7 @@ export const Overview = forwardRef( <div style={{ margin: '1rem 0 0.5rem 0' }}> <ButtonSubmit disabled={Object.values(unclaimedPayouts || {}).length === 0} - text="Claim All" + text={t('claimAll')} onClick={() => { setPayouts(claimAllPayouts); setSection(1); @@ -52,17 +54,8 @@ export const Overview = forwardRef( ) )} <ModalNotes withPadding> - <p> - Claiming a payout claims on behalf of every nominator backing the - validator for the era you are claiming for. For this reason, - transaction fees are usually higher, and most nominators rely on - the validator to claim on their behalf. - </p> - <p> - Validators usually claim payouts on behalf of their nominators. If - you decide not to claim here, it is likely you will receive your - payouts within 1-2 days of them becoming available. - </p> + <p>{t('claimsOnBehalf')}</p> + <p>{t('notToClaim')}</p> </ModalNotes> </div> </ContentWrapper> diff --git a/src/modals/ClaimPayouts/index.tsx b/src/modals/ClaimPayouts/index.tsx index 53abfbdb66..9dc9048520 100644 --- a/src/modals/ClaimPayouts/index.tsx +++ b/src/modals/ClaimPayouts/index.tsx @@ -12,11 +12,13 @@ import { Title } from 'library/Modal/Title'; import { useTxMeta } from 'contexts/TxMeta'; import { useOverlay } from '@polkadot-cloud/react/hooks'; import { usePayouts } from 'contexts/Payouts'; +import { useTranslation } from 'react-i18next'; import { Forms } from './Forms'; import { Overview } from './Overview'; import type { ActivePayout } from './types'; export const ClaimPayouts = () => { + const { t } = useTranslation('modals'); const { notEnoughFunds } = useTxMeta(); const { unclaimedPayouts } = usePayouts(); const { setModalHeight } = useOverlay().modal; @@ -65,7 +67,7 @@ export const ClaimPayouts = () => { return ( <ModalSection type="carousel"> <ModalFixedTitle ref={headerRef}> - <Title title="Claim Payouts" fixed /> + <Title title={t('claimPayouts')} fixed /> </ModalFixedTitle> <ModalMotionTwoSection animate={sectionRef.current === 0 ? 'home' : 'next'} From 9ac9e2e368e0145526c8f46d127df295953b2d32 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Sep 2023 21:42:45 +0000 Subject: [PATCH 425/435] Bump @typescript-eslint/parser from 6.6.0 to 6.7.0 Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 6.6.0 to 6.7.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.7.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 52 +++++++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 44 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 8698e6f414..61a3c095fa 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "@types/react-qr-reader": "^2.1.4", "@types/react-scroll": "^1.8.6", "@typescript-eslint/eslint-plugin": "^6.6.0", - "@typescript-eslint/parser": "^6.6.0", + "@typescript-eslint/parser": "^6.7.0", "@vitejs/plugin-react-swc": "^3.3.2", "eslint": "^8.49.0", "eslint-config-airbnb": "^19.0.4", diff --git a/yarn.lock b/yarn.lock index 38cef9fcaf..0117cc2510 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2154,15 +2154,15 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/parser@^6.6.0": - version "6.6.0" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.6.0.tgz#fe323a7b4eafb6d5ea82b96216561810394a739e" - integrity sha512-setq5aJgUwtzGrhW177/i+DMLqBaJbdwGj2CPIVFFLE0NCliy5ujIdLHd2D1ysmlmsjdL2GWW+hR85neEfc12w== - dependencies: - "@typescript-eslint/scope-manager" "6.6.0" - "@typescript-eslint/types" "6.6.0" - "@typescript-eslint/typescript-estree" "6.6.0" - "@typescript-eslint/visitor-keys" "6.6.0" +"@typescript-eslint/parser@^6.7.0": + version "6.7.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.7.0.tgz#332fe9c7ecf6783d3250b4c8a960bd4af0995807" + integrity sha512-jZKYwqNpNm5kzPVP5z1JXAuxjtl2uG+5NpaMocFPTNC2EdYIgbXIPImObOkhbONxtFTTdoZstLZefbaK+wXZng== + dependencies: + "@typescript-eslint/scope-manager" "6.7.0" + "@typescript-eslint/types" "6.7.0" + "@typescript-eslint/typescript-estree" "6.7.0" + "@typescript-eslint/visitor-keys" "6.7.0" debug "^4.3.4" "@typescript-eslint/scope-manager@6.6.0": @@ -2173,6 +2173,14 @@ "@typescript-eslint/types" "6.6.0" "@typescript-eslint/visitor-keys" "6.6.0" +"@typescript-eslint/scope-manager@6.7.0": + version "6.7.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.7.0.tgz#6b3c22187976e2bf5ed0dc0d9095f1f2cbd1d106" + integrity sha512-lAT1Uau20lQyjoLUQ5FUMSX/dS07qux9rYd5FGzKz/Kf8W8ccuvMyldb8hadHdK/qOI7aikvQWqulnEq2nCEYA== + dependencies: + "@typescript-eslint/types" "6.7.0" + "@typescript-eslint/visitor-keys" "6.7.0" + "@typescript-eslint/type-utils@6.6.0": version "6.6.0" resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.6.0.tgz#14f651d13b884915c4fca0d27adeb652a4499e86" @@ -2188,6 +2196,11 @@ resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.6.0.tgz#95e7ea650a2b28bc5af5ea8907114a48f54618c2" integrity sha512-CB6QpJQ6BAHlJXdwUmiaXDBmTqIE2bzGTDLADgvqtHWuhfNP3rAOK7kAgRMAET5rDRr9Utt+qAzRBdu3AhR3sg== +"@typescript-eslint/types@6.7.0": + version "6.7.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.7.0.tgz#8de8ba9cafadc38e89003fe303e219c9250089ae" + integrity sha512-ihPfvOp7pOcN/ysoj0RpBPOx3HQTJTrIN8UZK+WFd3/iDeFHHqeyYxa4hQk4rMhsz9H9mXpR61IzwlBVGXtl9Q== + "@typescript-eslint/typescript-estree@6.6.0": version "6.6.0" resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.6.0.tgz#373c420d2e12c28220f4a83352280a04823a91b7" @@ -2201,6 +2214,19 @@ semver "^7.5.4" ts-api-utils "^1.0.1" +"@typescript-eslint/typescript-estree@6.7.0": + version "6.7.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.0.tgz#20ce2801733bd46f02cc0f141f5b63fbbf2afb63" + integrity sha512-dPvkXj3n6e9yd/0LfojNU8VMUGHWiLuBZvbM6V6QYD+2qxqInE7J+J/ieY2iGwR9ivf/R/haWGkIj04WVUeiSQ== + dependencies: + "@typescript-eslint/types" "6.7.0" + "@typescript-eslint/visitor-keys" "6.7.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.5.4" + ts-api-utils "^1.0.1" + "@typescript-eslint/utils@6.6.0": version "6.6.0" resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.6.0.tgz#2d686c0f0786da6362d909e27a9de1c13ba2e7dc" @@ -2222,6 +2248,14 @@ "@typescript-eslint/types" "6.6.0" eslint-visitor-keys "^3.4.1" +"@typescript-eslint/visitor-keys@6.7.0": + version "6.7.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.0.tgz#34140ac76dfb6316d17012e4469acf3366ad3f44" + integrity sha512-/C1RVgKFDmGMcVGeD8HjKv2bd72oI1KxQDeY8uc66gw9R0OK0eMq48cA+jv9/2Ag6cdrsUGySm1yzYmfz0hxwQ== + dependencies: + "@typescript-eslint/types" "6.7.0" + eslint-visitor-keys "^3.4.1" + "@vitejs/plugin-react-swc@^3.3.2": version "3.3.2" resolved "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.3.2.tgz#34a82c1728066f48a86dfecb2f15df60f89207fb" From 9b16bc951922e6fdde6dc3c9c35cf9c43e13aa84 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Sep 2023 21:42:58 +0000 Subject: [PATCH 426/435] Bump vite-tsconfig-paths from 4.2.0 to 4.2.1 Bumps [vite-tsconfig-paths](https://github.com/aleclarson/vite-tsconfig-paths) from 4.2.0 to 4.2.1. - [Release notes](https://github.com/aleclarson/vite-tsconfig-paths/releases) - [Commits](https://github.com/aleclarson/vite-tsconfig-paths/compare/v4.2.0...v4.2.1) --- updated-dependencies: - dependency-name: vite-tsconfig-paths dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 61a3c095fa..163b654158 100644 --- a/package.json +++ b/package.json @@ -91,7 +91,7 @@ "vite-plugin-checker": "^0.6.2", "vite-plugin-eslint": "^1.8.1", "vite-plugin-svgr": "^3.2.0", - "vite-tsconfig-paths": "^4.2.0", + "vite-tsconfig-paths": "^4.2.1", "vitest": "^0.34.4" } } diff --git a/yarn.lock b/yarn.lock index 0117cc2510..de6bd5bb34 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5864,10 +5864,10 @@ vite-plugin-svgr@^3.2.0: "@svgr/core" "^7.0.0" "@svgr/plugin-jsx" "^7.0.0" -vite-tsconfig-paths@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-4.2.0.tgz#bd2647d3eadafb65a10fc98a2ca565211f2eaf63" - integrity sha512-jGpus0eUy5qbbMVGiTxCL1iB9ZGN6Bd37VGLJU39kTDD6ZfULTTb1bcc5IeTWqWJKiWV5YihCaibeASPiGi8kw== +vite-tsconfig-paths@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/vite-tsconfig-paths/-/vite-tsconfig-paths-4.2.1.tgz#e53b89096b91d31a6d1e26f75999ea8c336a89ed" + integrity sha512-GNUI6ZgPqT3oervkvzU+qtys83+75N/OuDaQl7HmOqFTb0pjZsuARrRipsyJhJ3enqV8beI1xhGbToR4o78nSQ== dependencies: debug "^4.1.1" globrex "^0.1.2" From 5d0b18ae508e5fbf71fff8d30afbd9bf8119f330 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Sep 2023 21:44:20 +0000 Subject: [PATCH 427/435] Bump @zondax/ledger-substrate from 0.41.1 to 0.41.2 Bumps [@zondax/ledger-substrate](https://github.com/zondax/ledger-substrate-js) from 0.41.1 to 0.41.2. - [Release notes](https://github.com/zondax/ledger-substrate-js/releases) - [Commits](https://github.com/zondax/ledger-substrate-js/compare/v0.41.1...v0.41.2) --- updated-dependencies: - dependency-name: "@zondax/ledger-substrate" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 163b654158..1dbc449cc0 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "@polkadot/util": "^12.4.2", "@polkadot/util-crypto": "12.4.2", "@substrate/connect": "^0.7.31", - "@zondax/ledger-substrate": "^0.41.1", + "@zondax/ledger-substrate": "^0.41.2", "bignumber.js": "^9.1.2", "bn.js": "^5.2.1", "buffer": "^6.0.3", diff --git a/yarn.lock b/yarn.lock index de6bd5bb34..7dbb88c0d7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2306,14 +2306,14 @@ loupe "^2.3.6" pretty-format "^29.5.0" -"@zondax/ledger-substrate@^0.41.1": - version "0.41.1" - resolved "https://registry.npmjs.org/@zondax/ledger-substrate/-/ledger-substrate-0.41.1.tgz#6b79aceb61c042263ab1751a4cf28bb73e7cf774" - integrity sha512-EcHM0HpCElkd8jI9i2ei/TenIG5rvKFynjDE1i+gCfSc5CWgdWxhcpyokK3CAiR/pm4qcLpNSA9ZZYo9wBN1uA== +"@zondax/ledger-substrate@^0.41.2": + version "0.41.2" + resolved "https://registry.yarnpkg.com/@zondax/ledger-substrate/-/ledger-substrate-0.41.2.tgz#727d1d1b84f4491b842d7a2428f0eb1543fcd4b9" + integrity sha512-snd5b1MK1GGNgLgYASHL1TJ/9Wzt+S2f6P7Hsfe+QtfS4SnCLH9bDa9HMypcYJwTFPYbqxcE6Hbp2mxi8VMN1Q== dependencies: "@ledgerhq/hw-transport" "^6.27.1" bip32 "^4.0.0" - bip32-ed25519 "https://github.com/Zondax/bip32-ed25519" + bip32-ed25519 "git+https://github.com/Zondax/bip32-ed25519.git" bip39 "^3.0.4" blakejs "^1.2.1" bs58 "^5.0.0" @@ -2585,10 +2585,10 @@ binary-extensions@^2.0.0: resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -"bip32-ed25519@https://github.com/Zondax/bip32-ed25519": +"bip32-ed25519@git+https://github.com/Zondax/bip32-ed25519.git": version "0.0.4" uid "0949df01b5c93885339bc28116690292088f6134" - resolved "https://github.com/Zondax/bip32-ed25519#0949df01b5c93885339bc28116690292088f6134" + resolved "git+https://github.com/Zondax/bip32-ed25519.git#0949df01b5c93885339bc28116690292088f6134" dependencies: bn.js "^5.1.1" elliptic "^6.4.1" From e183b65770140f88ca616f3bb40e215bb150e368 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Sep 2023 21:51:18 +0000 Subject: [PATCH 428/435] Bump @typescript-eslint/eslint-plugin from 6.6.0 to 6.7.0 Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 6.6.0 to 6.7.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.7.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 76 +++++++++++++++------------------------------------- 2 files changed, 22 insertions(+), 56 deletions(-) diff --git a/package.json b/package.json index 1dbc449cc0..41d7503451 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "@types/react-helmet": "^6.1.6", "@types/react-qr-reader": "^2.1.4", "@types/react-scroll": "^1.8.6", - "@typescript-eslint/eslint-plugin": "^6.6.0", + "@typescript-eslint/eslint-plugin": "^6.7.0", "@typescript-eslint/parser": "^6.7.0", "@vitejs/plugin-react-swc": "^3.3.2", "eslint": "^8.49.0", diff --git a/yarn.lock b/yarn.lock index 7dbb88c0d7..766daff721 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2137,16 +2137,16 @@ resolved "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz#a136f83b0758698df454e328759dbd3d44555311" integrity sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g== -"@typescript-eslint/eslint-plugin@^6.6.0": - version "6.6.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.6.0.tgz#19ba09aa34fd504696445100262e5a9e1b1d7024" - integrity sha512-CW9YDGTQnNYMIo5lMeuiIG08p4E0cXrXTbcZ2saT/ETE7dWUrNxlijsQeU04qAAKkILiLzdQz+cGFxCJjaZUmA== +"@typescript-eslint/eslint-plugin@^6.7.0": + version "6.7.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.0.tgz#ed2a38867190f8a688af85ad7c8a74670b8b3675" + integrity sha512-gUqtknHm0TDs1LhY12K2NA3Rmlmp88jK9Tx8vGZMfHeNMLE3GH2e9TRub+y+SOjuYgtOmok+wt1AyDPZqxbNag== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.6.0" - "@typescript-eslint/type-utils" "6.6.0" - "@typescript-eslint/utils" "6.6.0" - "@typescript-eslint/visitor-keys" "6.6.0" + "@typescript-eslint/scope-manager" "6.7.0" + "@typescript-eslint/type-utils" "6.7.0" + "@typescript-eslint/utils" "6.7.0" + "@typescript-eslint/visitor-keys" "6.7.0" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" @@ -2165,14 +2165,6 @@ "@typescript-eslint/visitor-keys" "6.7.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.6.0": - version "6.6.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.6.0.tgz#57105d4419d6de971f7d2c30a2ff4ac40003f61a" - integrity sha512-pT08u5W/GT4KjPUmEtc2kSYvrH8x89cVzkA0Sy2aaOUIw6YxOIjA8ilwLr/1fLjOedX1QAuBpG9XggWqIIfERw== - dependencies: - "@typescript-eslint/types" "6.6.0" - "@typescript-eslint/visitor-keys" "6.6.0" - "@typescript-eslint/scope-manager@6.7.0": version "6.7.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.7.0.tgz#6b3c22187976e2bf5ed0dc0d9095f1f2cbd1d106" @@ -2181,39 +2173,21 @@ "@typescript-eslint/types" "6.7.0" "@typescript-eslint/visitor-keys" "6.7.0" -"@typescript-eslint/type-utils@6.6.0": - version "6.6.0" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.6.0.tgz#14f651d13b884915c4fca0d27adeb652a4499e86" - integrity sha512-8m16fwAcEnQc69IpeDyokNO+D5spo0w1jepWWY2Q6y5ZKNuj5EhVQXjtVAeDDqvW6Yg7dhclbsz6rTtOvcwpHg== +"@typescript-eslint/type-utils@6.7.0": + version "6.7.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.7.0.tgz#21a013d4c7f96255f5e64ac59fb41301d1e052ba" + integrity sha512-f/QabJgDAlpSz3qduCyQT0Fw7hHpmhOzY/Rv6zO3yO+HVIdPfIWhrQoAyG+uZVtWAIS85zAyzgAFfyEr+MgBpg== dependencies: - "@typescript-eslint/typescript-estree" "6.6.0" - "@typescript-eslint/utils" "6.6.0" + "@typescript-eslint/typescript-estree" "6.7.0" + "@typescript-eslint/utils" "6.7.0" debug "^4.3.4" ts-api-utils "^1.0.1" -"@typescript-eslint/types@6.6.0": - version "6.6.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.6.0.tgz#95e7ea650a2b28bc5af5ea8907114a48f54618c2" - integrity sha512-CB6QpJQ6BAHlJXdwUmiaXDBmTqIE2bzGTDLADgvqtHWuhfNP3rAOK7kAgRMAET5rDRr9Utt+qAzRBdu3AhR3sg== - "@typescript-eslint/types@6.7.0": version "6.7.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.7.0.tgz#8de8ba9cafadc38e89003fe303e219c9250089ae" integrity sha512-ihPfvOp7pOcN/ysoj0RpBPOx3HQTJTrIN8UZK+WFd3/iDeFHHqeyYxa4hQk4rMhsz9H9mXpR61IzwlBVGXtl9Q== -"@typescript-eslint/typescript-estree@6.6.0": - version "6.6.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.6.0.tgz#373c420d2e12c28220f4a83352280a04823a91b7" - integrity sha512-hMcTQ6Al8MP2E6JKBAaSxSVw5bDhdmbCEhGW/V8QXkb9oNsFkA4SBuOMYVPxD3jbtQ4R/vSODBsr76R6fP3tbA== - dependencies: - "@typescript-eslint/types" "6.6.0" - "@typescript-eslint/visitor-keys" "6.6.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" - "@typescript-eslint/typescript-estree@6.7.0": version "6.7.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.0.tgz#20ce2801733bd46f02cc0f141f5b63fbbf2afb63" @@ -2227,27 +2201,19 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.6.0": - version "6.6.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.6.0.tgz#2d686c0f0786da6362d909e27a9de1c13ba2e7dc" - integrity sha512-mPHFoNa2bPIWWglWYdR0QfY9GN0CfvvXX1Sv6DlSTive3jlMTUy+an67//Gysc+0Me9pjitrq0LJp0nGtLgftw== +"@typescript-eslint/utils@6.7.0": + version "6.7.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.7.0.tgz#61b6f1f1b82ad529abfcee074d21764e880886fb" + integrity sha512-MfCq3cM0vh2slSikQYqK2Gq52gvOhe57vD2RM3V4gQRZYX4rDPnKLu5p6cm89+LJiGlwEXU8hkYxhqqEC/V3qA== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.6.0" - "@typescript-eslint/types" "6.6.0" - "@typescript-eslint/typescript-estree" "6.6.0" + "@typescript-eslint/scope-manager" "6.7.0" + "@typescript-eslint/types" "6.7.0" + "@typescript-eslint/typescript-estree" "6.7.0" semver "^7.5.4" -"@typescript-eslint/visitor-keys@6.6.0": - version "6.6.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.6.0.tgz#1109088b4346c8b2446f3845db526374d9a3bafc" - integrity sha512-L61uJT26cMOfFQ+lMZKoJNbAEckLe539VhTxiGHrWl5XSKQgA0RTBZJW2HFPy5T0ZvPVSD93QsrTKDkfNwJGyQ== - dependencies: - "@typescript-eslint/types" "6.6.0" - eslint-visitor-keys "^3.4.1" - "@typescript-eslint/visitor-keys@6.7.0": version "6.7.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.0.tgz#34140ac76dfb6316d17012e4469acf3366ad3f44" From 93107fdae00e98af6babef67d4c31944ba948325 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Sep 2023 22:05:04 +0000 Subject: [PATCH 429/435] Bump @dotlottie/player-component from 2.5.3 to 2.5.4 Bumps [@dotlottie/player-component](https://github.com/dotlottie/player-component) from 2.5.3 to 2.5.4. - [Release notes](https://github.com/dotlottie/player-component/releases) - [Commits](https://github.com/dotlottie/player-component/compare/@dotlottie/player-component@2.5.3...@dotlottie/player-component@2.5.4) --- updated-dependencies: - dependency-name: "@dotlottie/player-component" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 41d7503451..273dda73d8 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "visualizer": "vite-bundle-visualizer" }, "dependencies": { - "@dotlottie/player-component": "^2.5.3", + "@dotlottie/player-component": "^2.5.4", "@fortawesome/fontawesome-svg-core": "^6.4.2", "@fortawesome/free-brands-svg-icons": "^6.4.2", "@fortawesome/free-regular-svg-icons": "^6.4.2", diff --git a/yarn.lock b/yarn.lock index 766daff721..b571dd1a56 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1061,10 +1061,10 @@ "@babel/helper-validator-identifier" "^7.22.15" to-fast-properties "^2.0.0" -"@dotlottie/player-component@^2.5.3": - version "2.5.3" - resolved "https://registry.yarnpkg.com/@dotlottie/player-component/-/player-component-2.5.3.tgz#8d3f1e220b68b8e7f608f91b845507cc95f09c17" - integrity sha512-J5Z3hh3pjds3AWiyqcYPH+R/GBbhW8xJL3QFa0nXfDIzLbOZ5cntCh40EXF+1V/k0utgJpn/g9xDp7xXWwHifg== +"@dotlottie/player-component@^2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@dotlottie/player-component/-/player-component-2.5.4.tgz#51a1b95aaf971c59be38663de94c17500b130655" + integrity sha512-VJ80w+XtOFu8g9YZj6DftJZr6oEKQzQSa8RkHOZqG1fwh4VN8k6OZQ9IyIJJIDwjEw+bv3PayXQXMFj6pbmSeA== dependencies: lit "^2.7.5" From 69fce26db6ca8cb8bd89684a49268cf6e94c07cf Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Wed, 13 Sep 2023 11:46:01 +0700 Subject: [PATCH 430/435] bump & yarn --- package.json | 2 +- yarn.lock | 408 +++++++++++++++++++++++++-------------------------- 2 files changed, 205 insertions(+), 205 deletions(-) diff --git a/package.json b/package.json index 273dda73d8..23b78eff5a 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "@fortawesome/react-fontawesome": "^0.2.0", "@ledgerhq/hw-transport-webhid": "^6.27.19", "@polkadot-cloud/community": "0.1.11", - "@polkadot-cloud/core": "0.1.15", + "@polkadot-cloud/core": "^0.1.17", "@polkadot-cloud/react": "^0.1.34", "@polkadot-cloud/utils": "^0.0.11", "@polkadot/api": "^10.9.1", diff --git a/yarn.lock b/yarn.lock index b571dd1a56..c4dbcf206f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -45,20 +45,20 @@ integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== "@babel/core@^7.21.0", "@babel/core@^7.21.3": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.22.15.tgz#15d4fd03f478a459015a4b94cfbb3bd42c48d2f4" - integrity sha512-PtZqMmgRrvj8ruoEOIwVA3yoF91O+Hgw9o7DAUTNBA6Mo2jpu31clx9a7Nz/9JznqetTR6zwfC4L3LAjKQXUwA== + version "7.22.17" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.22.17.tgz#2f9b0b395985967203514b24ee50f9fd0639c866" + integrity sha512-2EENLmhpwplDux5PSsZnSbnSkB3tZ6QTksgO25xwEL7pIDcNOMhF5v/s6RzwjMZzZzw9Ofc30gHv5ChCC8pifQ== dependencies: "@ampproject/remapping" "^2.2.0" "@babel/code-frame" "^7.22.13" "@babel/generator" "^7.22.15" "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-module-transforms" "^7.22.15" + "@babel/helper-module-transforms" "^7.22.17" "@babel/helpers" "^7.22.15" - "@babel/parser" "^7.22.15" + "@babel/parser" "^7.22.16" "@babel/template" "^7.22.15" - "@babel/traverse" "^7.22.15" - "@babel/types" "^7.22.15" + "@babel/traverse" "^7.22.17" + "@babel/types" "^7.22.17" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -169,10 +169,10 @@ dependencies: "@babel/types" "^7.22.15" -"@babel/helper-module-transforms@^7.22.15", "@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.22.9": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.15.tgz#40ad2f6950f143900e9c1c72363c0b431a606082" - integrity sha512-l1UiX4UyHSFsYt17iQ3Se5pQQZZHa22zyIXURmvkmLCD4t/aU+dvNWHatKac/D9Vm9UES7nvIqHs4jZqKviUmQ== +"@babel/helper-module-transforms@^7.22.15", "@babel/helper-module-transforms@^7.22.17", "@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.22.9": + version "7.22.17" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.17.tgz#7edf129097a51ccc12443adbc6320e90eab76693" + integrity sha512-XouDDhQESrLHTpnBtCKExJdyY4gJCdrvH2Pyv8r8kovX2U8G0dRUOT45T9XlbLtuu9CLXP15eusnkprhoPV5iQ== dependencies: "@babel/helper-environment-visitor" "^7.22.5" "@babel/helper-module-imports" "^7.22.15" @@ -193,13 +193,13 @@ integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== "@babel/helper-remap-async-to-generator@^7.22.5", "@babel/helper-remap-async-to-generator@^7.22.9": - version "7.22.9" - resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz#53a25b7484e722d7efb9c350c75c032d4628de82" - integrity sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ== + version "7.22.17" + resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.17.tgz#dabaa50622b3b4670bd6546fc8db23eb12d89da0" + integrity sha512-bxH77R5gjH3Nkde6/LuncQoLaP16THYPscurp1S8z7S9ZgezCyV3G8Hc+TZiCmY8pz4fp8CvKSgtJMW0FkLAxA== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-wrap-function" "^7.22.9" + "@babel/helper-wrap-function" "^7.22.17" "@babel/helper-replace-supers@^7.22.5", "@babel/helper-replace-supers@^7.22.9": version "7.22.9" @@ -246,14 +246,14 @@ resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== -"@babel/helper-wrap-function@^7.22.9": - version "7.22.10" - resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.10.tgz#d845e043880ed0b8c18bd194a12005cb16d2f614" - integrity sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ== +"@babel/helper-wrap-function@^7.22.17": + version "7.22.17" + resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.17.tgz#222ac3ff9cc8f9b617cc1e5db75c0b538e722801" + integrity sha512-nAhoheCMlrqU41tAojw9GpVEKDlTS8r3lzFmF0lP52LwblCPbuFSO7nGIZoIcoU5NIm1ABrna0cJExE4Ay6l2Q== dependencies: "@babel/helper-function-name" "^7.22.5" - "@babel/template" "^7.22.5" - "@babel/types" "^7.22.10" + "@babel/template" "^7.22.15" + "@babel/types" "^7.22.17" "@babel/helpers@^7.22.15": version "7.22.15" @@ -273,10 +273,10 @@ chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.22.15": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.22.15.tgz#d34592bfe288a32e741aa0663dbc4829fcd55160" - integrity sha512-RWmQ/sklUN9BvGGpCDgSubhHWfAx24XDTDObup4ffvxaYsptOg2P3KG0j+1eWKLxpkX0j0uHxmpq2Z1SP/VhxA== +"@babel/parser@^7.22.15", "@babel/parser@^7.22.16": + version "7.22.16" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz#180aead7f247305cce6551bea2720934e2fa2c95" + integrity sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.15": version "7.22.15" @@ -1036,10 +1036,10 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/traverse@^7.21.2", "@babel/traverse@^7.22.15": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.15.tgz#75be4d2d6e216e880e93017f4e2389aeb77ef2d9" - integrity sha512-DdHPwvJY0sEeN4xJU5uRLmZjgMMDIvMPniLuYzUVXj/GGzysPl0/fwt44JBkyUIzGJPV8QgHMcQdQ34XFuKTYQ== +"@babel/traverse@^7.21.2", "@babel/traverse@^7.22.15", "@babel/traverse@^7.22.17": + version "7.22.17" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.17.tgz#b23c203ab3707e3be816043081b4a994fcacec44" + integrity sha512-xK4Uwm0JnAMvxYZxOVecss85WxTEIbTa7bnGyf/+EgCL5Zt3U7htUpEOWv9detPlamGKuRzCqw74xVglDWpPdg== dependencies: "@babel/code-frame" "^7.22.13" "@babel/generator" "^7.22.15" @@ -1047,15 +1047,15 @@ "@babel/helper-function-name" "^7.22.5" "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.22.15" - "@babel/types" "^7.22.15" + "@babel/parser" "^7.22.16" + "@babel/types" "^7.22.17" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.21.3", "@babel/types@^7.22.10", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.4.4": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.22.15.tgz#266cb21d2c5fd0b3931e7a91b6dd72d2f617d282" - integrity sha512-X+NLXr0N8XXmN5ZsaQdm9U2SSC3UbIYq/doL++sueHOTisgZHoKaQtZxGuV2cUPQHMfjKEfg/g6oy7Hm6SKFtA== +"@babel/types@^7.21.3", "@babel/types@^7.22.15", "@babel/types@^7.22.17", "@babel/types@^7.22.5", "@babel/types@^7.4.4": + version "7.22.17" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.22.17.tgz#f753352c4610ffddf9c8bc6823f9ff03e2303eee" + integrity sha512-YSQPHLFtQNE5xN9tHuZnzu8vPr61wVTBZdfv1meex1NBosa4iT05k/Jw06ddJugi4bk7The/oSwQGFcksmEJQg== dependencies: "@babel/helper-string-parser" "^7.22.5" "@babel/helper-validator-identifier" "^7.22.15" @@ -1063,7 +1063,7 @@ "@dotlottie/player-component@^2.5.4": version "2.5.4" - resolved "https://registry.yarnpkg.com/@dotlottie/player-component/-/player-component-2.5.4.tgz#51a1b95aaf971c59be38663de94c17500b130655" + resolved "https://registry.npmjs.org/@dotlottie/player-component/-/player-component-2.5.4.tgz#51a1b95aaf971c59be38663de94c17500b130655" integrity sha512-VJ80w+XtOFu8g9YZj6DftJZr6oEKQzQSa8RkHOZqG1fwh4VN8k6OZQ9IyIJJIDwjEw+bv3PayXQXMFj6pbmSeA== dependencies: lit "^2.7.5" @@ -1215,9 +1215,9 @@ eslint-visitor-keys "^3.3.0" "@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": - version "4.8.0" - resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.0.tgz#11195513186f68d42fbf449f9a7136b2c0c92005" - integrity sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg== + version "4.8.1" + resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.1.tgz#8c4bb756cc2aa7eaf13cfa5e69c83afb3260c20c" + integrity sha512-PWiOzLIUAjN/w5K17PoF4n6sKBw0gqLHPhywmYHP4t1VFQQVYeb1yWsJwnMVEMl3tUHME7X/SJPZLmtG7XBDxQ== "@eslint/eslintrc@^2.1.2": version "2.1.2" @@ -1236,7 +1236,7 @@ "@eslint/js@8.49.0": version "8.49.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.49.0.tgz#86f79756004a97fa4df866835093f1df3d03c333" + resolved "https://registry.npmjs.org/@eslint/js/-/js-8.49.0.tgz#86f79756004a97fa4df866835093f1df3d03c333" integrity sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w== "@fortawesome/fontawesome-common-types@6.4.2": @@ -1281,7 +1281,7 @@ "@humanwhocodes/config-array@^0.11.11": version "0.11.11" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.11.tgz#88a04c570dbbc7dd943e4712429c3df09bc32844" + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz#88a04c570dbbc7dd943e4712429c3df09bc32844" integrity sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA== dependencies: "@humanwhocodes/object-schema" "^1.2.1" @@ -1453,10 +1453,10 @@ resolved "https://registry.npmjs.org/@polkadot-cloud/community/-/community-0.1.11.tgz#62f57c92d663f758bdee2b1a2147b74dd3de4971" integrity sha512-R2ncl5idtiRfzA0a/Lo1j7HHo/4ztatz7xbnP9TPDMYk1JWCtoy77APnFLLukIUbGQGxw1kDVCP8U4X9KrZMKQ== -"@polkadot-cloud/core@0.1.15", "@polkadot-cloud/core@^0.1.13": - version "0.1.15" - resolved "https://registry.yarnpkg.com/@polkadot-cloud/core/-/core-0.1.15.tgz#b4e90681b7b60cd33881bf30789f055e759ae3ca" - integrity sha512-M/6AnLxkC8y7uPLI8gkhSIXvA2Z4/YtlkOzf83uLGtr6gRcgtENA9dyKno/GmyvM4I0B16qAcKzYnj0fPpzxrQ== +"@polkadot-cloud/core@^0.1.13", "@polkadot-cloud/core@^0.1.17": + version "0.1.17" + resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.1.17.tgz#a3978a52199d6e48c0a103cfe26fc1bcf9d89063" + integrity sha512-akjtK4s7oom2Qkp2AfJ2JgMV8z2tFSCdbkdJmYe5L3nl4vUR24Sls7Juyy8k9S5l9AyeJj1ujTV9swu/8nYNHw== "@polkadot-cloud/react@^0.1.34": version "0.1.34" @@ -1943,73 +1943,73 @@ "@svgr/hast-util-to-babel-ast" "^7.0.0" svg-parser "^2.0.4" -"@swc/core-darwin-arm64@1.3.82": - version "1.3.82" - resolved "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.82.tgz#bbf9874747b51053d8a59ea26c3e235c326f24a3" - integrity sha512-JfsyDW34gVKD3uE0OUpUqYvAD3yseEaicnFP6pB292THtLJb0IKBBnK50vV/RzEJtc1bR3g1kNfxo2PeurZTrA== - -"@swc/core-darwin-x64@1.3.82": - version "1.3.82" - resolved "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.82.tgz#145cdde16678e0d793620035783e5b413a16ac43" - integrity sha512-ogQWgNMq7qTpITjcP3dnzkFNj7bh6SwMr859GvtOTrE75H7L7jDWxESfH4f8foB/LGxBKiDNmxKhitCuAsZK4A== - -"@swc/core-linux-arm-gnueabihf@1.3.82": - version "1.3.82" - resolved "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.82.tgz#0c2f32c5793f2ac8e8ccf416aec84d016c30ef7b" - integrity sha512-7TMXG1lXlNhD0kUiEqs+YlGV4irAdBa2quuy+XI3oJf2fBK6dQfEq4xBy65B3khrorzQS3O0oDGQ+cmdpHExHA== - -"@swc/core-linux-arm64-gnu@1.3.82": - version "1.3.82" - resolved "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.82.tgz#2313d4901fa0ebdd2a0f189909073e1e8a07f1d6" - integrity sha512-26JkOujbzcItPAmIbD5vHJxQVy5ihcSu3YHTKwope1h28sApZdtE7S3e2G3gsZRTIdsCQkXUtAQeqHxGWWR3pw== - -"@swc/core-linux-arm64-musl@1.3.82": - version "1.3.82" - resolved "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.82.tgz#6e96cf6e52e647fecf27511d766bea90e96f8a2f" - integrity sha512-8Izj9tuuMpoc3cqiPBRtwqpO1BZ/+sfZVsEhLxrbOFlcSb8LnKyMle1g3JMMUwI4EU75RGVIzZMn8A6GOKdJbA== - -"@swc/core-linux-x64-gnu@1.3.82": - version "1.3.82" - resolved "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.82.tgz#6275c10d7c8c0768550bc7934c9dd8cde4881d92" - integrity sha512-0GSrIBScQwTaPv46T2qB7XnDYxndRCpwH4HMjh6FN+I+lfPUhTSJKW8AonqrqT1TbpFIgvzQs7EnTsD7AnSCow== - -"@swc/core-linux-x64-musl@1.3.82": - version "1.3.82" - resolved "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.82.tgz#edb98c30bd0de42bf1a63469937630d942c71988" - integrity sha512-KJUnaaepDKNzrEbwz4jv0iC3/t9x0NSoe06fnkAlhh2+NFKWKKJhVCOBTrpds8n7eylBDIXUlK34XQafjVMUdg== - -"@swc/core-win32-arm64-msvc@1.3.82": - version "1.3.82" - resolved "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.82.tgz#0a8e9b361aac37d01f684c8a3d3e94e5f8c3b14f" - integrity sha512-TR3MHKhDYIyGyFcyl2d/p1ftceXcubAhX5wRSOdtOyr5+K/v3jbyCCqN7bbqO5o43wQVCwwR/drHleYyDZvg8Q== - -"@swc/core-win32-ia32-msvc@1.3.82": - version "1.3.82" - resolved "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.82.tgz#096854ff764282766271f1354ee1214358a8bf01" - integrity sha512-ZX4HzVVt6hs84YUg70UvyBJnBOIspmQQM0iXSzBvOikk3zRoN7BnDwQH4GScvevCEBuou60+i4I6d5kHLOfh8Q== - -"@swc/core-win32-x64-msvc@1.3.82": - version "1.3.82" - resolved "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.82.tgz#1181070bff4a13a7fcc7f1020eef1571f8c1257a" - integrity sha512-4mJMnex21kbQoaHeAmHnVwQN9/XAfPszJ6n9HI7SVH+aAHnbBIR0M59/b50/CJMjTj5niUGk7EwQ3nhVNOG32g== +"@swc/core-darwin-arm64@1.3.84": + version "1.3.84" + resolved "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.84.tgz#9296626f9377e9bf92e41f9fe60a7cdc8c660e99" + integrity sha512-mqK0buOo+toF2HoJ/gWj2ApZbvbIiNq3mMwSTHCYJHlQFQfoTWnl9aaD5GSO4wfNFVYfEZ1R259o5uv5NlVtoA== + +"@swc/core-darwin-x64@1.3.84": + version "1.3.84" + resolved "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.84.tgz#60db6d6f512efd250e3a40cb80cec3d0b629f0a9" + integrity sha512-cyuQZz62C43EDZqtnptUTlfDvAjgG3qu139m5zsfIK6ltXA5inKFbDWV3a/M5c18dFzA2Xh21Q46XZezmtQ9Tg== + +"@swc/core-linux-arm-gnueabihf@1.3.84": + version "1.3.84" + resolved "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.84.tgz#eaf2f69c7be455184434a5b76ce07034bc43282a" + integrity sha512-dmt/ECQrp3ZPWnK27p4E4xRIRHOoJhgGvxC5t5YaWzN20KcxE9ykEY2oLGSoeceM/A+4D11aRYGwF/EM7yOkvA== + +"@swc/core-linux-arm64-gnu@1.3.84": + version "1.3.84" + resolved "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.84.tgz#4c8236e1f90e1f8b74322ad73d20ce755db8f30a" + integrity sha512-PgVfrI3NVg2z/oeg3GWLb9rFLMqidbdPwVH5nRyHVP2RX/BWP6qfnYfG+gJv4qrKzIldb9TyCGH7y8VWctKLxw== + +"@swc/core-linux-arm64-musl@1.3.84": + version "1.3.84" + resolved "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.84.tgz#f908c79bf5be14705e63ff44bea9216b128b492e" + integrity sha512-hcuEa8/vin4Ns0P+FpcDHQ4f3jmhgGKQhqw0w+TovPSVTIXr+nrFQ2AGhs9nAxS6tSQ77C53Eb5YRpK8ToFo1A== + +"@swc/core-linux-x64-gnu@1.3.84": + version "1.3.84" + resolved "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.84.tgz#e7e4e94741547b81f9074d1b81b7ed42baec8660" + integrity sha512-IvyimSbwGdu21jBBEqR1Up8Jhvl8kIAf1k3e5Oy8oRfgojdUfmW1EIwgGdoUeyQ1VHlfquiWaRGfsnHQUKl35g== + +"@swc/core-linux-x64-musl@1.3.84": + version "1.3.84" + resolved "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.84.tgz#34b6d275241692095f88940f675b53a880119920" + integrity sha512-hdgVU/O5ufDCe+p5RtCjU7PRNwd0WM+eWJS+GNY4QWL6O8y2VLM+i4+6YzwSUjeBk0xd+1YElMxbqz7r5tSZhw== + +"@swc/core-win32-arm64-msvc@1.3.84": + version "1.3.84" + resolved "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.84.tgz#6be044ecc155e0695d51aa22df3e35caa2d91bd7" + integrity sha512-rzH6k2BF0BFOFhUTD+bh0oCiUCZjFfDfoZoYNN/CM0qbtjAcFH21hzMh/EH8ZaXq8k/iQmUNNa5MPNPZ4SOMNw== + +"@swc/core-win32-ia32-msvc@1.3.84": + version "1.3.84" + resolved "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.84.tgz#be357598bb03cb4470ffa158e0e86e47daa29f70" + integrity sha512-Y+Dk7VLLVwwsAzoDmjkNW/sTmSPl9PGr4Mj1nhc5A2NNxZ+hz4SxFMclacDI03SC5ikK8Qh6WOoE/+nwUDa3uA== + +"@swc/core-win32-x64-msvc@1.3.84": + version "1.3.84" + resolved "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.84.tgz#93964a76d100df255e97739165d5d74c72d7c88b" + integrity sha512-WmpaosqCWMX7DArLdU8AJcj96hy0PKlYh1DaMVikSrrDHbJm2dZ8rd27IK3qUB8DgPkrDYHmLAKNZ+z3gWXgRQ== "@swc/core@^1.3.61": - version "1.3.82" - resolved "https://registry.npmjs.org/@swc/core/-/core-1.3.82.tgz#8f6c53db3c23a1769b6c5085fbcb3b1df9548a40" - integrity sha512-jpC1a18HMH67018Ij2jh+hT7JBFu7ZKcQVfrZ8K6JuEY+kjXmbea07P9MbQUZbAe0FB+xi3CqEVCP73MebodJQ== + version "1.3.84" + resolved "https://registry.npmjs.org/@swc/core/-/core-1.3.84.tgz#e6e660f0a2e322fb17698f3ca9b23dfacc0933f1" + integrity sha512-UPKUiDwG7HOdPfOb1VFeEJ76JDgU2w80JLewzx6tb0fk9TIjhr9yxKBzPbzc/QpjGHDu5iaEuNeZcu27u4j63g== dependencies: "@swc/types" "^0.1.4" optionalDependencies: - "@swc/core-darwin-arm64" "1.3.82" - "@swc/core-darwin-x64" "1.3.82" - "@swc/core-linux-arm-gnueabihf" "1.3.82" - "@swc/core-linux-arm64-gnu" "1.3.82" - "@swc/core-linux-arm64-musl" "1.3.82" - "@swc/core-linux-x64-gnu" "1.3.82" - "@swc/core-linux-x64-musl" "1.3.82" - "@swc/core-win32-arm64-msvc" "1.3.82" - "@swc/core-win32-ia32-msvc" "1.3.82" - "@swc/core-win32-x64-msvc" "1.3.82" + "@swc/core-darwin-arm64" "1.3.84" + "@swc/core-darwin-x64" "1.3.84" + "@swc/core-linux-arm-gnueabihf" "1.3.84" + "@swc/core-linux-arm64-gnu" "1.3.84" + "@swc/core-linux-arm64-musl" "1.3.84" + "@swc/core-linux-x64-gnu" "1.3.84" + "@swc/core-linux-x64-musl" "1.3.84" + "@swc/core-win32-arm64-msvc" "1.3.84" + "@swc/core-win32-ia32-msvc" "1.3.84" + "@swc/core-win32-x64-msvc" "1.3.84" "@swc/types@^0.1.4": version "0.1.4" @@ -2066,14 +2066,14 @@ "@types/lodash" "*" "@types/lodash@*": - version "4.14.197" - resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.197.tgz#e95c5ddcc814ec3e84c891910a01e0c8a378c54b" - integrity sha512-BMVOiWs0uNxHVlHBgzTIqJYmj+PgCo4euloGF+5m4okL3rEYzM2EEv78mw8zWSMM57dM7kVIgJ2QDvwHSoCI5g== + version "4.14.198" + resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.198.tgz#4d27465257011aedc741a809f1269941fa2c5d4c" + integrity sha512-trNJ/vtMZYMLhfN45uLq4ShQSw0/S7xCTLLVM+WM1rmFpba/VS42jVUgaO3w/NOLiWR/09lnYk0yMaA/atdIsg== "@types/node@*": - version "20.5.9" - resolved "https://registry.npmjs.org/@types/node/-/node-20.5.9.tgz#a70ec9d8fa0180a314c3ede0e20ea56ff71aed9a" - integrity sha512-PcGNd//40kHAS3sTlzKB9C9XL4K0sTup8nbG5lC14kzEteTNuAFh9u5nA0o5TWnSG2r/JNPRXFVcHJIIeRlmqQ== + version "20.6.0" + resolved "https://registry.npmjs.org/@types/node/-/node-20.6.0.tgz#9d7daa855d33d4efec8aea88cd66db1c2f0ebe16" + integrity sha512-najjVq5KN2vsH2U/xyh2opaSEz6cZMR2SetLIlxlj08nOcmPOemJmUK2o4kUzfLqfrWE0PIrNeE16XhYDd3nqg== "@types/prop-types@*": version "15.7.5" @@ -2133,13 +2133,13 @@ integrity sha512-n4sx2bqL0mW1tvDf/loQ+aMX7GQD3lc3fkCMC55VFNDu/vBOabO+LTIeXKM14xK0ppk5TUGcWRjiSpIlUpghKw== "@types/trusted-types@^2.0.2": - version "2.0.3" - resolved "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz#a136f83b0758698df454e328759dbd3d44555311" - integrity sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g== + version "2.0.4" + resolved "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.4.tgz#2b38784cd16957d3782e8e2b31c03bc1d13b4d65" + integrity sha512-IDaobHimLQhjwsQ/NMwRVfa/yL7L/wriQPMhw1ZJall0KX6E1oxk29XMDeilW5qTIg5aoiqf5Udy8U/51aNoQQ== "@typescript-eslint/eslint-plugin@^6.7.0": version "6.7.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.0.tgz#ed2a38867190f8a688af85ad7c8a74670b8b3675" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.0.tgz#ed2a38867190f8a688af85ad7c8a74670b8b3675" integrity sha512-gUqtknHm0TDs1LhY12K2NA3Rmlmp88jK9Tx8vGZMfHeNMLE3GH2e9TRub+y+SOjuYgtOmok+wt1AyDPZqxbNag== dependencies: "@eslint-community/regexpp" "^4.5.1" @@ -2156,7 +2156,7 @@ "@typescript-eslint/parser@^6.7.0": version "6.7.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.7.0.tgz#332fe9c7ecf6783d3250b4c8a960bd4af0995807" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.0.tgz#332fe9c7ecf6783d3250b4c8a960bd4af0995807" integrity sha512-jZKYwqNpNm5kzPVP5z1JXAuxjtl2uG+5NpaMocFPTNC2EdYIgbXIPImObOkhbONxtFTTdoZstLZefbaK+wXZng== dependencies: "@typescript-eslint/scope-manager" "6.7.0" @@ -2167,7 +2167,7 @@ "@typescript-eslint/scope-manager@6.7.0": version "6.7.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.7.0.tgz#6b3c22187976e2bf5ed0dc0d9095f1f2cbd1d106" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.0.tgz#6b3c22187976e2bf5ed0dc0d9095f1f2cbd1d106" integrity sha512-lAT1Uau20lQyjoLUQ5FUMSX/dS07qux9rYd5FGzKz/Kf8W8ccuvMyldb8hadHdK/qOI7aikvQWqulnEq2nCEYA== dependencies: "@typescript-eslint/types" "6.7.0" @@ -2175,7 +2175,7 @@ "@typescript-eslint/type-utils@6.7.0": version "6.7.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.7.0.tgz#21a013d4c7f96255f5e64ac59fb41301d1e052ba" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.0.tgz#21a013d4c7f96255f5e64ac59fb41301d1e052ba" integrity sha512-f/QabJgDAlpSz3qduCyQT0Fw7hHpmhOzY/Rv6zO3yO+HVIdPfIWhrQoAyG+uZVtWAIS85zAyzgAFfyEr+MgBpg== dependencies: "@typescript-eslint/typescript-estree" "6.7.0" @@ -2185,12 +2185,12 @@ "@typescript-eslint/types@6.7.0": version "6.7.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.7.0.tgz#8de8ba9cafadc38e89003fe303e219c9250089ae" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.0.tgz#8de8ba9cafadc38e89003fe303e219c9250089ae" integrity sha512-ihPfvOp7pOcN/ysoj0RpBPOx3HQTJTrIN8UZK+WFd3/iDeFHHqeyYxa4hQk4rMhsz9H9mXpR61IzwlBVGXtl9Q== "@typescript-eslint/typescript-estree@6.7.0": version "6.7.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.0.tgz#20ce2801733bd46f02cc0f141f5b63fbbf2afb63" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.0.tgz#20ce2801733bd46f02cc0f141f5b63fbbf2afb63" integrity sha512-dPvkXj3n6e9yd/0LfojNU8VMUGHWiLuBZvbM6V6QYD+2qxqInE7J+J/ieY2iGwR9ivf/R/haWGkIj04WVUeiSQ== dependencies: "@typescript-eslint/types" "6.7.0" @@ -2203,7 +2203,7 @@ "@typescript-eslint/utils@6.7.0": version "6.7.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.7.0.tgz#61b6f1f1b82ad529abfcee074d21764e880886fb" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.0.tgz#61b6f1f1b82ad529abfcee074d21764e880886fb" integrity sha512-MfCq3cM0vh2slSikQYqK2Gq52gvOhe57vD2RM3V4gQRZYX4rDPnKLu5p6cm89+LJiGlwEXU8hkYxhqqEC/V3qA== dependencies: "@eslint-community/eslint-utils" "^4.4.0" @@ -2216,7 +2216,7 @@ "@typescript-eslint/visitor-keys@6.7.0": version "6.7.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.0.tgz#34140ac76dfb6316d17012e4469acf3366ad3f44" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.0.tgz#34140ac76dfb6316d17012e4469acf3366ad3f44" integrity sha512-/C1RVgKFDmGMcVGeD8HjKv2bd72oI1KxQDeY8uc66gw9R0OK0eMq48cA+jv9/2Ag6cdrsUGySm1yzYmfz0hxwQ== dependencies: "@typescript-eslint/types" "6.7.0" @@ -2231,7 +2231,7 @@ "@vitest/expect@0.34.4": version "0.34.4" - resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-0.34.4.tgz#f857a83268b9e9d4e9410fe168cb206033838102" + resolved "https://registry.npmjs.org/@vitest/expect/-/expect-0.34.4.tgz#f857a83268b9e9d4e9410fe168cb206033838102" integrity sha512-XlMKX8HyYUqB8dsY8Xxrc64J2Qs9pKMt2Z8vFTL4mBWXJsg4yoALHzJfDWi8h5nkO4Zua4zjqtapQ/IluVkSnA== dependencies: "@vitest/spy" "0.34.4" @@ -2240,7 +2240,7 @@ "@vitest/runner@0.34.4": version "0.34.4" - resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-0.34.4.tgz#07543915ad22c53d99fb4bb758cb9bd5db3d7f80" + resolved "https://registry.npmjs.org/@vitest/runner/-/runner-0.34.4.tgz#07543915ad22c53d99fb4bb758cb9bd5db3d7f80" integrity sha512-hwwdB1StERqUls8oV8YcpmTIpVeJMe4WgYuDongVzixl5hlYLT2G8afhcdADeDeqCaAmZcSgLTLtqkjPQF7x+w== dependencies: "@vitest/utils" "0.34.4" @@ -2249,7 +2249,7 @@ "@vitest/snapshot@0.34.4": version "0.34.4" - resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-0.34.4.tgz#ee2c732e5978438f96c669aabb9eb66eb7f3ff46" + resolved "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-0.34.4.tgz#ee2c732e5978438f96c669aabb9eb66eb7f3ff46" integrity sha512-GCsh4coc3YUSL/o+BPUo7lHQbzpdttTxL6f4q0jRx2qVGoYz/cyTRDJHbnwks6TILi6560bVWoBpYC10PuTLHw== dependencies: magic-string "^0.30.1" @@ -2258,14 +2258,14 @@ "@vitest/spy@0.34.4": version "0.34.4" - resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-0.34.4.tgz#181ad9f32ce426ac33eb66ed35b880ee9b457035" + resolved "https://registry.npmjs.org/@vitest/spy/-/spy-0.34.4.tgz#181ad9f32ce426ac33eb66ed35b880ee9b457035" integrity sha512-PNU+fd7DUPgA3Ya924b1qKuQkonAW6hL7YUjkON3wmBwSTIlhOSpy04SJ0NrRsEbrXgMMj6Morh04BMf8k+w0g== dependencies: tinyspy "^2.1.1" "@vitest/utils@0.34.4": version "0.34.4" - resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-0.34.4.tgz#0b6bf5fe07223ebb6ec24cd1edc0137cb301ecfd" + resolved "https://registry.npmjs.org/@vitest/utils/-/utils-0.34.4.tgz#0b6bf5fe07223ebb6ec24cd1edc0137cb301ecfd" integrity sha512-yR2+5CHhp/K4ySY0Qtd+CAL9f5Yh1aXrKfAT42bq6CtlGPh92jIDDDSg7ydlRow1CP+dys4TrOrbELOyNInHSg== dependencies: diff-sequences "^29.4.3" @@ -2274,12 +2274,12 @@ "@zondax/ledger-substrate@^0.41.2": version "0.41.2" - resolved "https://registry.yarnpkg.com/@zondax/ledger-substrate/-/ledger-substrate-0.41.2.tgz#727d1d1b84f4491b842d7a2428f0eb1543fcd4b9" + resolved "https://registry.npmjs.org/@zondax/ledger-substrate/-/ledger-substrate-0.41.2.tgz#727d1d1b84f4491b842d7a2428f0eb1543fcd4b9" integrity sha512-snd5b1MK1GGNgLgYASHL1TJ/9Wzt+S2f6P7Hsfe+QtfS4SnCLH9bDa9HMypcYJwTFPYbqxcE6Hbp2mxi8VMN1Q== dependencies: "@ledgerhq/hw-transport" "^6.27.1" bip32 "^4.0.0" - bip32-ed25519 "git+https://github.com/Zondax/bip32-ed25519.git" + bip32-ed25519 "https://github.com/Zondax/bip32-ed25519" bip39 "^3.0.4" blakejs "^1.2.1" bs58 "^5.0.0" @@ -2409,44 +2409,45 @@ array.prototype.findlastindex@^1.2.2: get-intrinsic "^1.2.1" array.prototype.flat@^1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" - integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== + version "1.3.2" + resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" + integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" array.prototype.flatmap@^1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" - integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== + version "1.3.2" + resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" + integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" array.prototype.tosorted@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz#ccf44738aa2b5ac56578ffda97c03fd3e23dd532" - integrity sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ== + version "1.1.2" + resolved "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz#620eff7442503d66c799d95503f82b475745cefd" + integrity sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" - get-intrinsic "^1.1.3" + get-intrinsic "^1.2.1" arraybuffer.prototype.slice@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz#9b5ea3868a6eebc30273da577eb888381c0044bb" - integrity sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw== + version "1.0.2" + resolved "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" + integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== dependencies: array-buffer-byte-length "^1.0.0" call-bind "^1.0.2" define-properties "^1.2.0" + es-abstract "^1.22.1" get-intrinsic "^1.2.1" is-array-buffer "^3.0.2" is-shared-array-buffer "^1.0.2" @@ -2479,9 +2480,9 @@ available-typed-arrays@^1.0.5: integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== axe-core@^4.6.2: - version "4.7.2" - resolved "https://registry.npmjs.org/axe-core/-/axe-core-4.7.2.tgz#040a7342b20765cb18bb50b628394c21bccc17a0" - integrity sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g== + version "4.8.1" + resolved "https://registry.npmjs.org/axe-core/-/axe-core-4.8.1.tgz#6948854183ee7e7eae336b9877c5bafa027998ea" + integrity sha512-9l850jDDPnKq48nbad8SiEelCv4OrUWrKab/cPj0GScVg6cb6NbCCt/Ulk26QEq5jP9NnGr04Bit1BHyV6r5CQ== axobject-query@^3.1.1: version "3.2.1" @@ -2553,7 +2554,6 @@ binary-extensions@^2.0.0: "bip32-ed25519@git+https://github.com/Zondax/bip32-ed25519.git": version "0.0.4" - uid "0949df01b5c93885339bc28116690292088f6134" resolved "git+https://github.com/Zondax/bip32-ed25519.git#0949df01b5c93885339bc28116690292088f6134" dependencies: bn.js "^5.1.1" @@ -2696,9 +2696,9 @@ camelize@^1.0.0: integrity sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ== caniuse-lite@^1.0.30001517: - version "1.0.30001527" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001527.tgz#813826554828245ccee776c850566dce12bdeaba" - integrity sha512-YkJi7RwPgWtXVSgK4lG9AHH57nSzvvOp9MesgXmw4Q7n0C3H04L0foHqfxcmSAm5AcWb8dW9AYj2tR7/5GnddQ== + version "1.0.30001533" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001533.tgz#1180daeb2518b93c82f19b904d1fefcf82197707" + integrity sha512-9aY/b05NKU4Yl2sbcJhn4A7MsGwR1EPfW/nrqsnqVA0Oq50wpmPaGI+R1Z0UKlUl96oxUkGEOILWtOHck0eCWw== chai@^4.3.7: version "4.3.8" @@ -2839,16 +2839,16 @@ convert-source-map@^1.1.0, convert-source-map@^1.7.0: integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== core-js-compat@^3.31.0: - version "3.32.1" - resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.1.tgz#55f9a7d297c0761a8eb1d31b593e0f5b6ffae964" - integrity sha512-GSvKDv4wE0bPnQtjklV101juQ85g6H3rm5PDP20mqlS5j0kXF3pP97YvAu5hl+uFHqMictp3b2VxOHljWMAtuA== + version "3.32.2" + resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.2.tgz#8047d1a8b3ac4e639f0d4f66d4431aa3b16e004c" + integrity sha512-+GjlguTDINOijtVRUxrQOv3kfu9rl+qPNdX2LTbJ/ZyVTuxK+ksVSAGX1nHstu4hrv1En/uPTtWgq2gI5wt4AQ== dependencies: browserslist "^4.21.10" cosmiconfig@^8.1.3: - version "8.3.4" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.4.tgz#ee1356e7f24e248a6bb34ec5d438c3dcebeb410c" - integrity sha512-SF+2P8+o/PTV05rgsAjDzL4OFdVXAulSfC/L19VaeVT7+tpOOSscCt2QLxDZ+CLxF2WOiq6y1K5asvs8qUJT/Q== + version "8.3.5" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.5.tgz#3b3897ddd042d022d5a207d4c8832e54f5301977" + integrity sha512-A5Xry3xfS96wy2qbiLkQLAg4JUrR2wvfybxj6yqLmrUfMAvhS3MZxIP2oQn0grgYIvJqzpeTEWu4vK0t+12NNw== dependencies: import-fresh "^3.3.0" js-yaml "^4.1.0" @@ -3005,9 +3005,9 @@ doctrine@^3.0.0: esutils "^2.0.2" electron-to-chromium@^1.4.477: - version "1.4.508" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.508.tgz#5641ff2f5ba11df4bd960fe6a2f9f70aa8b9af96" - integrity sha512-FFa8QKjQK/A5QuFr2167myhMesGrhlOBD+3cYNxO9/S4XzHEXesyTD/1/xF644gC8buFPz3ca6G1LOQD0tZrrg== + version "1.4.518" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.518.tgz#067dd47e1ee6a3f573a2b00753ecf9a566db63ec" + integrity sha512-eqbfyW9i/en/qgIPsddW+cuxQvjq3KZmfH+/gc3f/gnynYj0qxee0yRmll69W0SGwiVD+goeU1J9LT6zDHDzlg== elliptic@^6.4.1: version "6.5.4" @@ -3057,7 +3057,7 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.20.4, es-abstract@^1.22.1: +es-abstract@^1.22.1: version "1.22.1" resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz#8b4e5fc5cefd7f1660f0f8e1a52900dfbc9d9ccc" integrity sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw== @@ -3362,7 +3362,7 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 eslint@^8.49.0: version "8.49.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.49.0.tgz#09d80a89bdb4edee2efcf6964623af1054bf6d42" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.49.0.tgz#09d80a89bdb4edee2efcf6964623af1054bf6d42" integrity sha512-jw03ENfm6VJI0jA9U+8H5zfl5b+FvuU3YYvZRdZHOlU2ggJkxrlkJH4HcDrZpj6YwD8kuYqvQM8LyesoazrSOQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" @@ -3912,7 +3912,7 @@ i18next-browser-languagedetector@^7.1.0: i18next@^23.5.1: version "23.5.1" - resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.5.1.tgz#7f7c35ffaa907618d9489f106d5006b09fbca3d3" + resolved "https://registry.npmjs.org/i18next/-/i18next-23.5.1.tgz#7f7c35ffaa907618d9489f106d5006b09fbca3d3" integrity sha512-JelYzcaCoFDaa+Ysbfz2JsGAKkrHiMG6S61+HLBUEIPaF40WMwW9hCPymlQGrP+wWawKxKPuSuD71WZscCsWHg== dependencies: "@babel/runtime" "^7.22.5" @@ -4511,9 +4511,9 @@ mlly@^1.2.0, mlly@^1.4.0: ufo "^1.3.0" mock-socket@^9.2.1: - version "9.3.0" - resolved "https://registry.npmjs.org/mock-socket/-/mock-socket-9.3.0.tgz#f98286c3d5a0d3633a9a88bb61e2d258190f2755" - integrity sha512-TFaQaIxXbzNke3z9nhSnMJFQn8l7QPmF+Luhh8MPHqkmr6B4fPquOTSILCjGUyxDBPv9AFxuaTGmRINDHDmkdQ== + version "9.3.1" + resolved "https://registry.npmjs.org/mock-socket/-/mock-socket-9.3.1.tgz#24fb00c2f573c84812aa4a24181bb025de80cc8e" + integrity sha512-qxBgB7Qa2sEQgHFjj0dSigq7fX4k6Saisd5Nelwp2q8mlbAFh5dHV9JTTlF8viYJLSSWgMCZFUom8PJcMNBoJw== ms@2.1.2: version "2.1.2" @@ -4892,9 +4892,9 @@ prettier@^3.0.3: integrity sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg== pretty-format@^29.5.0: - version "29.6.3" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.3.tgz#d432bb4f1ca6f9463410c3fb25a0ba88e594ace7" - integrity sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw== + version "29.7.0" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== dependencies: "@jest/schemas" "^29.6.3" ansi-styles "^5.0.0" @@ -5194,9 +5194,9 @@ rollup@^2.77.2: fsevents "~2.3.2" rollup@^3.27.1: - version "3.28.1" - resolved "https://registry.npmjs.org/rollup/-/rollup-3.28.1.tgz#fb44aa6d5e65c7e13fd5bcfff266d0c4ea9ba433" - integrity sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw== + version "3.29.1" + resolved "https://registry.npmjs.org/rollup/-/rollup-3.29.1.tgz#ba53a179d46ac3cd79e162dca6ab70d93cd26f78" + integrity sha512-c+ebvQz0VIH4KhhCpDsI+Bik0eT8ZFEVZEYw0cGMVqIP8zc+gnwl7iXCamTw7vzv2MeuZFZfdx5JJIq+ehzDlg== optionalDependencies: fsevents "~2.3.2" @@ -5236,12 +5236,12 @@ rxjs@^7.8.1: tslib "^2.1.0" safe-array-concat@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz#2064223cba3c08d2ee05148eedbc563cd6d84060" - integrity sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ== + version "1.0.1" + resolved "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" + integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== dependencies: call-bind "^1.0.2" - get-intrinsic "^1.2.0" + get-intrinsic "^1.2.1" has-symbols "^1.0.3" isarray "^2.0.5" @@ -5410,22 +5410,22 @@ string.prototype.matchall@^4.0.8: side-channel "^1.0.4" string.prototype.trim@^1.2.7: - version "1.2.7" - resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" - integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== + version "1.2.8" + resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" + integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" string.prototype.trimend@^1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" - integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== + version "1.0.7" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" + integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" string.prototype.trimstart@^1.0.6: version "1.0.7" @@ -5562,9 +5562,9 @@ tiny-invariant@^1.1.0: integrity sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw== tinybench@^2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/tinybench/-/tinybench-2.5.0.tgz#4711c99bbf6f3e986f67eb722fed9cddb3a68ba5" - integrity sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA== + version "2.5.1" + resolved "https://registry.npmjs.org/tinybench/-/tinybench-2.5.1.tgz#3408f6552125e53a5a48adee31261686fd71587e" + integrity sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg== tinypool@^0.7.0: version "0.7.0" @@ -5601,9 +5601,9 @@ trim-repeated@^1.0.0: escape-string-regexp "^1.0.2" ts-api-utils@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.2.tgz#7c094f753b6705ee4faee25c3c684ade52d66d99" - integrity sha512-Cbu4nIqnEdd+THNEsBdkolnOXhg0I8XteoHaEKgvsxpsbWda4IsUut2c187HxywQCvveojow0Dgw/amxtSKVkQ== + version "1.0.3" + resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" + integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== tsconfck@^2.1.0: version "2.1.2" @@ -5779,7 +5779,7 @@ vite-bundle-visualizer@^0.10.0: vite-node@0.34.4: version "0.34.4" - resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.34.4.tgz#96d5b4dcc5585e3b289390f4e11ed6450978e30e" + resolved "https://registry.npmjs.org/vite-node/-/vite-node-0.34.4.tgz#96d5b4dcc5585e3b289390f4e11ed6450978e30e" integrity sha512-ho8HtiLc+nsmbwZMw8SlghESEE3KxJNp04F/jPUCLVvaURwt0d+r9LxEqCX5hvrrOQ0GSyxbYr5ZfRYhQ0yVKQ== dependencies: cac "^6.7.14" @@ -5832,7 +5832,7 @@ vite-plugin-svgr@^3.2.0: vite-tsconfig-paths@^4.2.1: version "4.2.1" - resolved "https://registry.yarnpkg.com/vite-tsconfig-paths/-/vite-tsconfig-paths-4.2.1.tgz#e53b89096b91d31a6d1e26f75999ea8c336a89ed" + resolved "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-4.2.1.tgz#e53b89096b91d31a6d1e26f75999ea8c336a89ed" integrity sha512-GNUI6ZgPqT3oervkvzU+qtys83+75N/OuDaQl7HmOqFTb0pjZsuARrRipsyJhJ3enqV8beI1xhGbToR4o78nSQ== dependencies: debug "^4.1.1" @@ -5852,7 +5852,7 @@ vite-tsconfig-paths@^4.2.1: vitest@^0.34.4: version "0.34.4" - resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.34.4.tgz#c7f40cf7ca3b590bb333b3272a98f49e85f7b958" + resolved "https://registry.npmjs.org/vitest/-/vitest-0.34.4.tgz#c7f40cf7ca3b590bb333b3272a98f49e85f7b958" integrity sha512-SE/laOsB6995QlbSE6BtkpXDeVNLJc1u2LHRG/OpnN4RsRzM3GQm4nm3PQCK5OBtrsUqnhzLdnT7se3aeNGdlw== dependencies: "@types/chai" "^4.3.5" @@ -6029,9 +6029,9 @@ wrappy@1: integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== ws@^8.13.0, ws@^8.8.1: - version "8.13.0" - resolved "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" - integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== + version "8.14.1" + resolved "https://registry.npmjs.org/ws/-/ws-8.14.1.tgz#4b9586b4f70f9e6534c7bb1d3dc0baa8b8cf01e0" + integrity sha512-4OOseMUq8AzRBI/7SLMUwO+FEDnguetSk7KMb1sHwvF2w2Wv5Hoj0nlifx8vtGsftE/jWHojPy8sMMzYLJ2G/A== y18n@^5.0.5: version "5.0.8" From ec14335c3eb3c54da860bd7e0376d0a673e3c619 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Wed, 13 Sep 2023 12:59:51 +0700 Subject: [PATCH 431/435] bumps + scroll fix --- package.json | 4 ++-- src/library/SideMenu/Wrapper.ts | 12 ++++++------ yarn.lock | 28 ++++++++++++++-------------- 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/package.json b/package.json index 23b78eff5a..a472b0a5a7 100644 --- a/package.json +++ b/package.json @@ -26,8 +26,8 @@ "@fortawesome/react-fontawesome": "^0.2.0", "@ledgerhq/hw-transport-webhid": "^6.27.19", "@polkadot-cloud/community": "0.1.11", - "@polkadot-cloud/core": "^0.1.17", - "@polkadot-cloud/react": "^0.1.34", + "@polkadot-cloud/core": "^0.1.19", + "@polkadot-cloud/react": "^0.1.37", "@polkadot-cloud/utils": "^0.0.11", "@polkadot/api": "^10.9.1", "@polkadot/keyring": "^12.1.1", diff --git a/src/library/SideMenu/Wrapper.ts b/src/library/SideMenu/Wrapper.ts index 939563287e..1f230562f1 100644 --- a/src/library/SideMenu/Wrapper.ts +++ b/src/library/SideMenu/Wrapper.ts @@ -24,16 +24,16 @@ export const Wrapper = styled.div<MinimisedProps>` ? `${SideMenuMinimisedWidth}px` : `${SideMenuMaximisedWidth}px`}; + &::-webkit-scrollbar { + display: none; + } + -ms-overflow-style: none; + scrollbar-width: none; + @media (max-width: ${SideMenuStickyThreshold}px) { background: var(--gradient-side-menu); transition: all var(--transition-duration); border-radius: 0.75rem; - - &::-webkit-scrollbar { - display: none; - } - -ms-overflow-style: none; - scrollbar-width: none; } section { diff --git a/yarn.lock b/yarn.lock index c4dbcf206f..c8f4f18a57 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1453,17 +1453,17 @@ resolved "https://registry.npmjs.org/@polkadot-cloud/community/-/community-0.1.11.tgz#62f57c92d663f758bdee2b1a2147b74dd3de4971" integrity sha512-R2ncl5idtiRfzA0a/Lo1j7HHo/4ztatz7xbnP9TPDMYk1JWCtoy77APnFLLukIUbGQGxw1kDVCP8U4X9KrZMKQ== -"@polkadot-cloud/core@^0.1.13", "@polkadot-cloud/core@^0.1.17": - version "0.1.17" - resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.1.17.tgz#a3978a52199d6e48c0a103cfe26fc1bcf9d89063" - integrity sha512-akjtK4s7oom2Qkp2AfJ2JgMV8z2tFSCdbkdJmYe5L3nl4vUR24Sls7Juyy8k9S5l9AyeJj1ujTV9swu/8nYNHw== +"@polkadot-cloud/core@^0.1.19": + version "0.1.19" + resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.1.19.tgz#08b630fa15676cbd51bd0eb56ad5ca067fa200e7" + integrity sha512-UwbbyW2jVJm0aAKEOA2ybhTrw471u6+N/0KWdnHCi6IbuftnLQNoY9FYEWWub7K9FvzUR/vd+p+o/Pq06DMI4Q== -"@polkadot-cloud/react@^0.1.34": - version "0.1.34" - resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.34.tgz#6442c7124b5b6c00ed073b357e0be31c0c0ac598" - integrity sha512-4f7JMwwQIK0q2cAiil9oXKlalIcJDYkmFFHCpHq1TsKkQq8wCJ52vH0JPS6O5PrRdDoMcaINFwfultHRFGXdgQ== +"@polkadot-cloud/react@^0.1.37": + version "0.1.37" + resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.37.tgz#51402a792f6ed511be29aff9d925c34dcbca26e0" + integrity sha512-l/Gy/YLik+e98rNdUn1+jHSYAOLWu9IHA6MdyzulI8lyVpnejnHD3UWYKfbGZSUXGnp8LxR4ZrRLT8rHWwyNOg== dependencies: - "@polkadot-cloud/core" "^0.1.13" + "@polkadot-cloud/core" "^0.1.19" "@polkadot-cloud/utils" "^0.0.11" react-error-boundary "^4.0.11" @@ -2552,9 +2552,9 @@ binary-extensions@^2.0.0: resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -"bip32-ed25519@git+https://github.com/Zondax/bip32-ed25519.git": +"bip32-ed25519@https://github.com/Zondax/bip32-ed25519": version "0.0.4" - resolved "git+https://github.com/Zondax/bip32-ed25519.git#0949df01b5c93885339bc28116690292088f6134" + resolved "https://github.com/Zondax/bip32-ed25519#0949df01b5c93885339bc28116690292088f6134" dependencies: bn.js "^5.1.1" elliptic "^6.4.1" @@ -2696,9 +2696,9 @@ camelize@^1.0.0: integrity sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ== caniuse-lite@^1.0.30001517: - version "1.0.30001533" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001533.tgz#1180daeb2518b93c82f19b904d1fefcf82197707" - integrity sha512-9aY/b05NKU4Yl2sbcJhn4A7MsGwR1EPfW/nrqsnqVA0Oq50wpmPaGI+R1Z0UKlUl96oxUkGEOILWtOHck0eCWw== + version "1.0.30001534" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001534.tgz#f24a9b2a6d39630bac5c132b5dff89b39a12e7dd" + integrity sha512-vlPVrhsCS7XaSh2VvWluIQEzVhefrUQcEsQWSS5A5V+dM07uv1qHeQzAOTGIMy9i3e9bH15+muvI/UHojVgS/Q== chai@^4.3.7: version "4.3.8" From 31c86437ce25de0895b1c21c45b987c5b65acf58 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Sep 2023 22:02:42 +0000 Subject: [PATCH 432/435] Bump react-router-dom from 6.15.0 to 6.16.0 Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.15.0 to 6.16.0. - [Release notes](https://github.com/remix-run/react-router/releases) - [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md) - [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.16.0/packages/react-router-dom) --- updated-dependencies: - dependency-name: react-router-dom dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index a472b0a5a7..726255eb45 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "react-helmet": "^6.1.0", "react-i18next": "^13.2.2", "react-qr-reader": "^2.2.1", - "react-router-dom": "^6.15.0", + "react-router-dom": "^6.16.0", "react-scroll": "^1.8.9", "styled-components": "^6.0.7" }, diff --git a/yarn.lock b/yarn.lock index c8f4f18a57..2169c77ffe 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1797,10 +1797,10 @@ tslib "^2.6.2" ws "^8.13.0" -"@remix-run/router@1.8.0": - version "1.8.0" - resolved "https://registry.npmjs.org/@remix-run/router/-/router-1.8.0.tgz#e848d2f669f601544df15ce2a313955e4bf0bafc" - integrity sha512-mrfKqIHnSZRyIzBcanNJmVQELTnX+qagEDlcKO90RgRBVOZGSGvZKeDihTRfWcqoDn5N/NkUcwWTccnpN18Tfg== +"@remix-run/router@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.9.0.tgz#9033238b41c4cbe1e961eccb3f79e2c588328cf6" + integrity sha512-bV63itrKBC0zdT27qYm6SDZHlkXwFL1xMBuhkn+X7l0+IIhNaH5wuuvZKp6eKhCD4KFhujhfhCT1YxXW6esUIA== "@rollup/pluginutils@^4.2.1": version "4.2.1" @@ -5008,20 +5008,20 @@ react-qr-reader@^2.2.1: prop-types "^15.7.2" webrtc-adapter "^7.2.1" -react-router-dom@^6.15.0: - version "6.15.0" - resolved "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.15.0.tgz#6da7db61e56797266fbbef0d5e324d6ac443ee40" - integrity sha512-aR42t0fs7brintwBGAv2+mGlCtgtFQeOzK0BM1/OiqEzRejOZtpMZepvgkscpMUnKb8YO84G7s3LsHnnDNonbQ== +react-router-dom@^6.16.0: + version "6.16.0" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.16.0.tgz#86f24658da35eb66727e75ecbb1a029e33ee39d9" + integrity sha512-aTfBLv3mk/gaKLxgRDUPbPw+s4Y/O+ma3rEN1u8EgEpLpPe6gNjIsWt9rxushMHHMb7mSwxRGdGlGdvmFsyPIg== dependencies: - "@remix-run/router" "1.8.0" - react-router "6.15.0" + "@remix-run/router" "1.9.0" + react-router "6.16.0" -react-router@6.15.0: - version "6.15.0" - resolved "https://registry.npmjs.org/react-router/-/react-router-6.15.0.tgz#bf2cb5a4a7ed57f074d4ea88db0d95033f39cac8" - integrity sha512-NIytlzvzLwJkCQj2HLefmeakxxWHWAP+02EGqWEZy+DgfHHKQMUoBBjUQLOtFInBMhWtb3hiUy6MfFgwLjXhqg== +react-router@6.16.0: + version "6.16.0" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.16.0.tgz#abbf3d5bdc9c108c9b822a18be10ee004096fb81" + integrity sha512-VT4Mmc4jj5YyjpOi5jOf0I+TYzGpvzERy4ckNSvSh2RArv8LLoCxlsZ2D+tc7zgjxcY34oTz2hZaeX5RVprKqA== dependencies: - "@remix-run/router" "1.8.0" + "@remix-run/router" "1.9.0" react-scroll@^1.8.9: version "1.8.9" From e8ec138c6db0cecb839f5e23bf0ee668214373a4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Sep 2023 22:07:44 +0000 Subject: [PATCH 433/435] Bump styled-components from 6.0.7 to 6.0.8 Bumps [styled-components](https://github.com/styled-components/styled-components) from 6.0.7 to 6.0.8. - [Release notes](https://github.com/styled-components/styled-components/releases) - [Commits](https://github.com/styled-components/styled-components/compare/v6.0.7...v6.0.8) --- updated-dependencies: - dependency-name: styled-components dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 726255eb45..cf2ac5f11e 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "react-qr-reader": "^2.2.1", "react-router-dom": "^6.16.0", "react-scroll": "^1.8.9", - "styled-components": "^6.0.7" + "styled-components": "^6.0.8" }, "devDependencies": { "@ledgerhq/logs": "^6.10.1", diff --git a/yarn.lock b/yarn.lock index 2169c77ffe..ba7ae34a4c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5484,10 +5484,10 @@ strip-outer@^1.0.1: dependencies: escape-string-regexp "^1.0.2" -styled-components@^6.0.7: - version "6.0.7" - resolved "https://registry.npmjs.org/styled-components/-/styled-components-6.0.7.tgz#1cf4a5e6b6181b29f941934df54af19b7ef05ab0" - integrity sha512-xIwWuiRMYR43mskVsW9MGTRjSo7ol4bcVjT595fGUp3OLBJOlOgaiKaxsHdC4a2HqWKqKnh0CmcRbk5ogyDjTg== +styled-components@^6.0.8: + version "6.0.8" + resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-6.0.8.tgz#90617ad60de39772e03a81c8f3b8e66c12f51c44" + integrity sha512-AwI02MTWZwqjzfXgR5QcbmcSn5xVjY4N2TLjSuYnmuBGF3y7GicHz3ysbpUq2EMJP5M8/Nc22vcmF3V3WNZDFA== dependencies: "@babel/cli" "^7.21.0" "@babel/core" "^7.21.0" From ca8a74f84bd0f5f9f93a15305dd6c6b9262b608e Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Thu, 14 Sep 2023 12:15:35 +0700 Subject: [PATCH 434/435] memberCount to context --- package.json | 4 +- src/Providers.tsx | 4 +- src/contexts/Pools/ActivePools/defaults.ts | 1 + src/contexts/Pools/ActivePools/index.tsx | 42 ++++++++++++++++++ src/contexts/Pools/types.ts | 1 + src/pages/Pools/Home/Members.tsx | 9 ++-- src/pages/Pools/Home/PoolStats/index.tsx | 6 +-- src/pages/Pools/Home/index.tsx | 50 +++------------------- yarn.lock | 18 ++++---- 9 files changed, 71 insertions(+), 64 deletions(-) diff --git a/package.json b/package.json index cf2ac5f11e..c9f956019d 100644 --- a/package.json +++ b/package.json @@ -26,8 +26,8 @@ "@fortawesome/react-fontawesome": "^0.2.0", "@ledgerhq/hw-transport-webhid": "^6.27.19", "@polkadot-cloud/community": "0.1.11", - "@polkadot-cloud/core": "^0.1.19", - "@polkadot-cloud/react": "^0.1.37", + "@polkadot-cloud/core": "^0.1.20", + "@polkadot-cloud/react": "^0.1.39", "@polkadot-cloud/utils": "^0.0.11", "@polkadot/api": "^10.9.1", "@polkadot/keyring": "^12.1.1", diff --git a/src/Providers.tsx b/src/Providers.tsx index 4415e5eecf..2530e73dc9 100644 --- a/src/Providers.tsx +++ b/src/Providers.tsx @@ -43,6 +43,7 @@ import { OverlayProvider } from '@polkadot-cloud/react'; export const Providers = withProviders( FiltersProvider, NotificationsProvider, + PluginsProvider, APIProvider, VaultHardwareProvider, LedgerHardwareProvider, @@ -50,6 +51,7 @@ export const Providers = withProviders( ConnectProvider, HelpProvider, NetworkMetricsProvider, + SubscanProvider, IdentitiesProvider, ProxiesProvider, BalancesProvider, @@ -66,9 +68,7 @@ export const Providers = withProviders( FastUnstakeProvider, PayoutsProvider, UIProvider, - PluginsProvider, SetupProvider, - SubscanProvider, MenuProvider, TooltipProvider, TxMetaProvider, diff --git a/src/contexts/Pools/ActivePools/defaults.ts b/src/contexts/Pools/ActivePools/defaults.ts index a03af882bd..cb75b2ca4c 100644 --- a/src/contexts/Pools/ActivePools/defaults.ts +++ b/src/contexts/Pools/ActivePools/defaults.ts @@ -65,4 +65,5 @@ export const defaultActivePoolContext: ActivePoolsContextState = { targets, poolNominations, synced: 'unsynced', + selectedPoolMemberCount: 0, }; diff --git a/src/contexts/Pools/ActivePools/index.tsx b/src/contexts/Pools/ActivePools/index.tsx index 6ecb8c2c6a..518ac65c4a 100644 --- a/src/contexts/Pools/ActivePools/index.tsx +++ b/src/contexts/Pools/ActivePools/index.tsx @@ -12,12 +12,15 @@ import type { import { useStaking } from 'contexts/Staking'; import type { AnyApi, AnyJson, Sync } from 'types'; import { useEffectIgnoreInitial } from '@polkadot-cloud/react/hooks'; +import { useSubscan } from 'contexts/Subscan'; +import { usePlugins } from 'contexts/Plugins'; import { useApi } from '../../Api'; import { useConnect } from '../../Connect'; import { useBondedPools } from '../BondedPools'; import { usePoolMemberships } from '../PoolMemberships'; import { usePoolsConfig } from '../PoolsConfig'; import * as defaults from './defaults'; +import { usePoolMembers } from '../PoolMembers'; export const ActivePoolsProvider = ({ children, @@ -25,11 +28,14 @@ export const ActivePoolsProvider = ({ children: React.ReactNode; }) => { const { eraStakers } = useStaking(); + const { pluginEnabled } = usePlugins(); const { activeAccount } = useConnect(); + const { fetchPoolDetails } = useSubscan(); const { api, network, isReady } = useApi(); const { membership } = usePoolMemberships(); const { createAccounts } = usePoolsConfig(); const { getAccountPools, bondedPools } = useBondedPools(); + const { getMembersOfPoolFromNode, poolMembersNode } = usePoolMembers(); // determine active pools to subscribe to. const accountPools = useMemo(() => { @@ -62,6 +68,12 @@ export const ActivePoolsProvider = ({ const [targets, setTargetsState] = useState<Record<number, AnyJson>>({}); const targetsRef = useRef(targets); + // store the member count of the selected pool + const [selectedPoolMemberCount, setSelectedPoolMemberCount] = + useState<number>(0); + + const fetchingMemberCount = useRef<boolean>(false); + // store whether active pool data has been synced. // this will be true if no active pool exists for the active account. // We just need confirmation this is the case. @@ -478,6 +490,29 @@ export const ActivePoolsProvider = ({ membership, ]); + // Gets the member count of the currently selected pool. If Subscan is enabled, it is used instead of the connected node. + const getMemberCount = async () => { + const selectedActivePool = getSelectedActivePool(); + + if (!selectedActivePool?.id) { + setSelectedPoolMemberCount(0); + return; + } + // If `Subscan` plugin is enabled, fetch member count directly from the API. + if (pluginEnabled('subscan') && !fetchingMemberCount.current) { + fetchingMemberCount.current = true; + const poolDetails = await fetchPoolDetails(selectedActivePool.id); + fetchingMemberCount.current = false; + setSelectedPoolMemberCount(poolDetails?.member_count || 0); + return; + } + // If no plugin available, fetch all pool members from RPC and filter them to determine current + // pool member count. NOTE: Expensive operation. + setSelectedPoolMemberCount( + getMembersOfPoolFromNode(selectedActivePool?.id ?? 0).length + ); + }; + // when we are subscribed to all active pools, syncing is considered // completed. useEffectIgnoreInitial(() => { @@ -486,6 +521,12 @@ export const ActivePoolsProvider = ({ } }, [accountPools, unsubNominations.current]); + // Fetch pool member count. We use `membership` as a dependency as the member count could change + // in the UI when active account's membership changes. + useEffect(() => { + getMemberCount(); + }, [activeAccount, getSelectedActivePool(), membership, poolMembersNode]); + return ( <ActivePoolsContext.Provider value={{ @@ -505,6 +546,7 @@ export const ActivePoolsProvider = ({ selectedActivePool: getSelectedActivePool(), targets: getSelectedPoolTargets(), poolNominations: getSelectedPoolNominations(), + selectedPoolMemberCount, }} > {children} diff --git a/src/contexts/Pools/types.ts b/src/contexts/Pools/types.ts index 18f587a603..49ce2e76d6 100644 --- a/src/contexts/Pools/types.ts +++ b/src/contexts/Pools/types.ts @@ -127,6 +127,7 @@ export interface ActivePoolsContextState { targets: any; poolNominations: any; synced: Sync; + selectedPoolMemberCount: number; } // PoolMembers types diff --git a/src/pages/Pools/Home/Members.tsx b/src/pages/Pools/Home/Members.tsx index b55056fca6..2af0ad27ce 100644 --- a/src/pages/Pools/Home/Members.tsx +++ b/src/pages/Pools/Home/Members.tsx @@ -14,16 +14,17 @@ import { CardWrapper } from 'library/Card/Wrappers'; import { MembersList as DefaultMemberList } from './MembersList/Default'; import { MembersList as FetchPageMemberList } from './MembersList/FetchPage'; -export const Members = ({ memberCount }: { memberCount: number }) => { +export const Members = () => { const { t } = useTranslation('pages'); const { mode } = useTheme(); const { pluginEnabled } = usePlugins(); const { getMembersOfPoolFromNode } = usePoolMembers(); - const { selectedActivePool, isOwner, isBouncer } = useActivePools(); + const { selectedActivePool, isOwner, isBouncer, selectedPoolMemberCount } = + useActivePools(); const { colors } = useApi().network; const listTitle = `${t('pools.poolMember', { - count: memberCount, + count: selectedPoolMemberCount, })}`; const annuncementBorderColor = colors.secondary[mode]; @@ -82,7 +83,7 @@ export const Members = ({ memberCount }: { memberCount: number }) => { {pluginEnabled('subscan') ? ( <FetchPageMemberList {...membersListProps} - memberCount={memberCount} + memberCount={selectedPoolMemberCount} /> ) : ( <DefaultMemberList diff --git a/src/pages/Pools/Home/PoolStats/index.tsx b/src/pages/Pools/Home/PoolStats/index.tsx index 9d4337a87a..5e48382aa0 100644 --- a/src/pages/Pools/Home/PoolStats/index.tsx +++ b/src/pages/Pools/Home/PoolStats/index.tsx @@ -12,10 +12,10 @@ import { StatsHead } from 'library/StatsHead'; import { Announcements } from './Announcements'; import { Wrapper } from './Wrappers'; -export const PoolStats = ({ memberCount }: { memberCount: number }) => { +export const PoolStats = () => { const { t } = useTranslation('pages'); const { network } = useApi(); - const { selectedActivePool } = useActivePools(); + const { selectedActivePool, selectedPoolMemberCount } = useActivePools(); const { getCurrentCommission } = usePoolCommission(); const { state, points } = selectedActivePool?.bondedPool || {}; @@ -58,7 +58,7 @@ export const PoolStats = ({ memberCount }: { memberCount: number }) => { items.push( { label: t('pools.poolMembers'), - value: `${memberCount}`, + value: `${selectedPoolMemberCount}`, }, { label: t('pools.totalBonded'), diff --git a/src/pages/Pools/Home/index.tsx b/src/pages/Pools/Home/index.tsx index 58ff98deb8..e97bf327c3 100644 --- a/src/pages/Pools/Home/index.tsx +++ b/src/pages/Pools/Home/index.tsx @@ -2,16 +2,12 @@ // SPDX-License-Identifier: GPL-3.0-only import { PageRow, PageTitle, RowSection } from '@polkadot-cloud/react'; -import { useEffect, useRef, useState } from 'react'; +import { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import type { PageTitleTabProps } from '@polkadot-cloud/react/base/types'; import { useConnect } from 'contexts/Connect'; -import { usePlugins } from 'contexts/Plugins'; import { useActivePools } from 'contexts/Pools/ActivePools'; import { useBondedPools } from 'contexts/Pools/BondedPools'; -import { usePoolMembers } from 'contexts/Pools/PoolMembers'; -import { usePoolMemberships } from 'contexts/Pools/PoolMemberships'; -import { useSubscan } from 'contexts/Subscan'; import { CardWrapper } from 'library/Card/Wrappers'; import { PoolList } from 'library/PoolList/Default'; import { StatBoxList } from 'library/StatBoxList'; @@ -32,47 +28,19 @@ import { PoolsTabsProvider, usePoolsTabs } from './context'; export const HomeInner = () => { const { t } = useTranslation('pages'); - const { pluginEnabled } = usePlugins(); const { openModal } = useOverlay().modal; const { activeAccount } = useConnect(); const { favorites, stats: { counterForBondedPools }, } = usePoolsConfig(); - const { fetchPoolDetails } = useSubscan(); - const { membership } = usePoolMemberships(); const { activeTab, setActiveTab } = usePoolsTabs(); const { bondedPools, getAccountPools } = useBondedPools(); - const { getPoolRoles, selectedActivePool } = useActivePools(); - const { getMembersOfPoolFromNode, poolMembersNode } = usePoolMembers(); + const { getPoolRoles, selectedActivePool, selectedPoolMemberCount } = + useActivePools(); const accountPools = getAccountPools(activeAccount); const totalAccountPools = Object.entries(accountPools).length; - const fetchingMemberCount = useRef<boolean>(false); - - const getMemberCount = async () => { - if (!selectedActivePool?.id) { - setMemberCount(0); - return; - } - // If `Subscan` plugin is enabled, fetch member count directly from the API. - if (pluginEnabled('subscan') && !fetchingMemberCount.current) { - fetchingMemberCount.current = true; - const poolDetails = await fetchPoolDetails(selectedActivePool.id); - fetchingMemberCount.current = false; - setMemberCount(poolDetails?.member_count || 0); - return; - } - // If no plugin available, fetch all pool members from RPC and filter them to determine current - // pool member count. NOTE: Expensive operation. - setMemberCount( - getMembersOfPoolFromNode(selectedActivePool?.id ?? 0).length - ); - }; - - // Store the pool member count. - const [memberCount, setMemberCount] = useState<number>(0); - let tabs: PageTitleTabProps[] = [ { title: t('pools.overview'), @@ -86,7 +54,7 @@ export const HomeInner = () => { title: t('pools.members'), active: activeTab === 1, onClick: () => setActiveTab(1), - badge: String(memberCount), + badge: String(selectedPoolMemberCount), }); } @@ -112,12 +80,6 @@ export const HomeInner = () => { } }, [selectedActivePool]); - // Fetch pool member count. We use `membership` as a dependency as the member count could change - // in the UI when active account's membership changes. - useEffect(() => { - getMemberCount(); - }, [activeAccount, selectedActivePool, membership, poolMembersNode]); - const ROW_HEIGHT = 220; return ( @@ -170,13 +132,13 @@ export const HomeInner = () => { </CardWrapper> </PageRow> <PageRow> - <PoolStats memberCount={memberCount} /> + <PoolStats /> </PageRow> </> )} </> )} - {activeTab === 1 && <Members memberCount={memberCount} />} + {activeTab === 1 && <Members />} {activeTab === 2 && ( <> <PageRow> diff --git a/yarn.lock b/yarn.lock index ba7ae34a4c..f8800c023c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1453,17 +1453,17 @@ resolved "https://registry.npmjs.org/@polkadot-cloud/community/-/community-0.1.11.tgz#62f57c92d663f758bdee2b1a2147b74dd3de4971" integrity sha512-R2ncl5idtiRfzA0a/Lo1j7HHo/4ztatz7xbnP9TPDMYk1JWCtoy77APnFLLukIUbGQGxw1kDVCP8U4X9KrZMKQ== -"@polkadot-cloud/core@^0.1.19": - version "0.1.19" - resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.1.19.tgz#08b630fa15676cbd51bd0eb56ad5ca067fa200e7" - integrity sha512-UwbbyW2jVJm0aAKEOA2ybhTrw471u6+N/0KWdnHCi6IbuftnLQNoY9FYEWWub7K9FvzUR/vd+p+o/Pq06DMI4Q== +"@polkadot-cloud/core@^0.1.20": + version "0.1.20" + resolved "https://registry.npmjs.org/@polkadot-cloud/core/-/core-0.1.20.tgz#4bbad4295f37b0fd824f6a7f8823c667d0fbd3fb" + integrity sha512-GmaXMQK/GzeRkg6/MuDeCPltb0hQSdxz566acAy+OI1gMhvb0geBQ8Tbkt4iEbXusCYBnNyt3vxoqL/1doCpPw== -"@polkadot-cloud/react@^0.1.37": - version "0.1.37" - resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.37.tgz#51402a792f6ed511be29aff9d925c34dcbca26e0" - integrity sha512-l/Gy/YLik+e98rNdUn1+jHSYAOLWu9IHA6MdyzulI8lyVpnejnHD3UWYKfbGZSUXGnp8LxR4ZrRLT8rHWwyNOg== +"@polkadot-cloud/react@^0.1.39": + version "0.1.39" + resolved "https://registry.npmjs.org/@polkadot-cloud/react/-/react-0.1.39.tgz#484cd7fc24a40df8e6189a7034b1f69f5afab38a" + integrity sha512-rZv0lMl3ec3YNXADu01qM1OgQ8ZLMl1XETewN33wB3ZYPWTCC2ylveF5daNMEU2UmfM03EaAr+A563Wb4ZsZ6Q== dependencies: - "@polkadot-cloud/core" "^0.1.19" + "@polkadot-cloud/core" "^0.1.20" "@polkadot-cloud/utils" "^0.0.11" react-error-boundary "^4.0.11" From 5838f57585eb4d78d9bb092afadf73827b8204a7 Mon Sep 17 00:00:00 2001 From: Ross Bulat <ross@parity.io> Date: Thu, 14 Sep 2023 12:19:42 +0700 Subject: [PATCH 435/435] format comments --- src/contexts/Pools/ActivePools/index.tsx | 27 ++++++++++++------------ 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/src/contexts/Pools/ActivePools/index.tsx b/src/contexts/Pools/ActivePools/index.tsx index 518ac65c4a..9b3572d0d9 100644 --- a/src/contexts/Pools/ActivePools/index.tsx +++ b/src/contexts/Pools/ActivePools/index.tsx @@ -37,7 +37,7 @@ export const ActivePoolsProvider = ({ const { getAccountPools, bondedPools } = useBondedPools(); const { getMembersOfPoolFromNode, poolMembersNode } = usePoolMembers(); - // determine active pools to subscribe to. + // Determine active pools to subscribe to. const accountPools = useMemo(() => { const newAccountPools = Object.keys(getAccountPools(activeAccount) || {}); const p = membership?.poolId ? String(membership.poolId) : '-1'; @@ -48,40 +48,39 @@ export const ActivePoolsProvider = ({ return newAccountPools; }, [activeAccount, bondedPools, membership]); - // stores member's active pools + // Stores member's active pools. const [activePools, setActivePools] = useState<ActivePool[]>([]); const activePoolsRef = useRef(activePools); - // store active pools unsubs + // Store active pools unsubs. const unsubActivePools = useRef<AnyApi[]>([]); - // store active pools nominations. + // Store active pools nominations. const [poolNominations, setPoolNominations] = useState< Record<number, AnyJson> >({}); const poolNominationsRef = useRef(poolNominations); - // store pool nominations unsubs + // Store pool nominations unsubs. const unsubNominations = useRef<AnyApi[]>([]); - // store account target validators + // Store account target validators. const [targets, setTargetsState] = useState<Record<number, AnyJson>>({}); const targetsRef = useRef(targets); - // store the member count of the selected pool + // Store the member count of the selected pool. const [selectedPoolMemberCount, setSelectedPoolMemberCount] = useState<number>(0); const fetchingMemberCount = useRef<boolean>(false); - // store whether active pool data has been synced. - // this will be true if no active pool exists for the active account. - // We just need confirmation this is the case. + // Store whether active pool data has been synced. this will be true if no active pool exists for + // the active account. We just need confirmation this is the case. const [synced, setSynced] = useState<Sync>('unsynced'); const syncedRef = useRef(synced); - // store the currently selected active pool for the UI. - // Should default to the membership pool (if present). + // Store the currently selected active pool for the UI. Should default to the membership pool (if + // present). const [selectedPoolId, setSelectedPoolId] = useState<string | null>(null); const getActivePoolMembership = () => @@ -120,7 +119,7 @@ export const ActivePoolsProvider = ({ } }; - // unsubscribe and reset poolNominations + // Unsubscribe and reset poolNominations. const unsubscribePoolNominations = () => { if (unsubNominations.current.length) { for (const unsub of unsubNominations.current) { @@ -131,7 +130,7 @@ export const ActivePoolsProvider = ({ unsubNominations.current = []; }; - // unsubscribe and reset activePool and poolNominations + // Unsubscribe and reset activePool and poolNominations. const unsubscribeActivePools = () => { if (unsubActivePools.current.length) { for (const unsub of unsubActivePools.current) {