From 9fc16d1cf86017d844b6f25214e3592b5cad93d3 Mon Sep 17 00:00:00 2001 From: "AlexHerrmann(josojo)" Date: Wed, 17 Nov 2021 19:39:50 +0100 Subject: [PATCH] Allows placing orders with matic, instead of wmatic (#830) * allows placing orders with matic, instead of wmatic * refactor blockchain explorer * updating prettier extend and packages --- .eslintrc.js | 3 +- package.json | 12 +- src/components/auction/Claimer/index.tsx | 16 ++- .../auction/OrderPlacement/index.tsx | 9 +- .../form/AmountInputPanel/index.tsx | 4 +- .../modals/ClaimConfirmationModal/index.tsx | 3 +- .../modals/ConfirmationModal/index.tsx | 3 +- src/constants/index.ts | 14 +++ src/hooks/useApproveCallback.ts | 5 +- src/hooks/usePlaceOrderCallback.ts | 7 +- src/utils/index.ts | 6 + yarn.lock | 112 ++++++++++++++---- 12 files changed, 151 insertions(+), 43 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 54c941a22..8d9d155cb 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -32,8 +32,7 @@ module.exports = { 'plugin:react/recommended', 'plugin:react-hooks/recommended', 'plugin:@typescript-eslint/recommended', - 'prettier/@typescript-eslint', - 'prettier/react', + 'prettier', 'plugin:prettier/recommended', 'plugin:import/errors', 'plugin:import/warnings', diff --git a/package.json b/package.json index 10bba79d6..8861f2ec3 100644 --- a/package.json +++ b/package.json @@ -49,13 +49,13 @@ "@types/rebass": "^4.0.5", "@types/styled-components": "^5.1.7", "@types/testing-library__cypress": "^5.0.5", - "@typescript-eslint/eslint-plugin": "^4.8.2", - "@typescript-eslint/parser": "^4.8.2", + "@typescript-eslint/eslint-plugin": "^5.3.1", + "@typescript-eslint/parser": "^5.3.1", "@web3-react/types": "^6.0.7", - "eslint-config-prettier": "^6.15.0", - "eslint-plugin-prettier": "^3.1.4", - "eslint-plugin-react": "^7.19.0", - "eslint-plugin-react-hooks": "^4.0.0", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-prettier": "^4.0.0", + "eslint-plugin-react": "^7.27.0", + "eslint-plugin-react-hooks": "^4.3.0", "eslint-plugin-sort-destructure-keys": "^1.3.5", "husky": "^4.3.6", "lint-staged": "^11.2.6", diff --git a/src/components/auction/Claimer/index.tsx b/src/components/auction/Claimer/index.tsx index abc110c77..fa7e2f915 100644 --- a/src/components/auction/Claimer/index.tsx +++ b/src/components/auction/Claimer/index.tsx @@ -12,7 +12,7 @@ import { import { useWalletModalToggle } from '../../../state/application/hooks' import { DerivedAuctionInfo, useDerivedClaimInfo } from '../../../state/orderPlacement/hooks' import { AuctionIdentifier } from '../../../state/orderPlacement/reducer' -import { getFullTokenDisplay, isTokenWETH, isTokenXDAI } from '../../../utils' +import { getFullTokenDisplay, isTokenWETH, isTokenWMATIC, isTokenXDAI } from '../../../utils' import { Button } from '../../buttons/Button' import { ButtonAnchor } from '../../buttons/ButtonAnchor' import { ButtonType } from '../../buttons/buttonStylingTypes' @@ -133,6 +133,8 @@ const Claimer: React.FC = (props) => { ? 'WXDAI' : biddingTokenDisplay === 'ETH' ? 'WETH' + : biddingTokenDisplay === 'WMATIC' + ? 'MATIC' : biddingTokenDisplay, [biddingTokenDisplay], ) @@ -165,22 +167,26 @@ const Claimer: React.FC = (props) => { const isXDAI = isTokenXDAI(derivedAuctionInfo.biddingToken.address, chainId) const isWETH = isTokenWETH(derivedAuctionInfo.biddingToken.address, chainId) + const isMATIC = isTokenWMATIC(derivedAuctionInfo.biddingToken.address, chainId) const showUnwrapButton = useMemo( () => - (isXDAI || isWETH) && + (isXDAI || isWETH || isMATIC) && account && chainId === Web3ChainId && claimableBiddingToken && claimableBiddingToken.greaterThan('0'), - [Web3ChainId, account, chainId, claimableBiddingToken, isWETH, isXDAI], + [Web3ChainId, account, chainId, claimableBiddingToken, isWETH, isXDAI, isMATIC], ) - + // eslint-disable-next-line + console.log('isMATIC', isMATIC) const unwrapTooltip = `Unwrap ${biddingToken.symbol} on ${ - isXDAI ? 'Honeyswap' : 'Uniswap' + isXDAI ? 'Honeyswap' : isMATIC ? 'QuickSwap' : 'Uniswap' }. Do it after you claimed your ${biddingTokenDisplayWrapped}` const unwrapURL = isXDAI ? `https://app.honeyswap.org/#/swap?inputCurrency=${biddingToken.address}` + : isMATIC + ? 'https://quickswap.exchange/#/swap?inputCurrency=${biddingToken.address}' : `https://app.uniswap.org/#/swap?inputCurrency=${biddingToken.address}` return ( diff --git a/src/components/auction/OrderPlacement/index.tsx b/src/components/auction/OrderPlacement/index.tsx index ad4b70888..0f9d0f912 100644 --- a/src/components/auction/OrderPlacement/index.tsx +++ b/src/components/auction/OrderPlacement/index.tsx @@ -28,6 +28,7 @@ import { EASY_AUCTION_NETWORKS, getFullTokenDisplay, isTokenWETH, + isTokenWMATIC, isTokenXDAI, } from '../../../utils' import { convertPriceIntoBuyAndSellAmount, getInverse } from '../../../utils/prices' @@ -343,7 +344,9 @@ const OrderPlacement: React.FC = (props) => { const isWrappable = biddingTokenBalance && biddingTokenBalance.greaterThan('0') && - (isTokenXDAI(biddingToken.address, chainId) || isTokenWETH(biddingToken.address, chainId)) && + (isTokenXDAI(biddingToken.address, chainId) || + isTokenWETH(biddingToken.address, chainId) || + isTokenWMATIC(biddingToken.address, chainId)) && !!account && !!biddingToken.address @@ -407,6 +410,10 @@ const OrderPlacement: React.FC = (props) => { ? window.open( `https://app.honeyswap.org/#/swap?inputCurrency=${biddingToken.address}`, ) + : chainId == 137 + ? window.open( + `https://quickswap.exchange/#/swap?inputCurrency=${biddingToken.address}`, + ) : window.open( `https://app.uniswap.org/#/swap?inputCurrency=${biddingToken.address}`, ), diff --git a/src/components/form/AmountInputPanel/index.tsx b/src/components/form/AmountInputPanel/index.tsx index ebda76497..f48c919fe 100644 --- a/src/components/form/AmountInputPanel/index.tsx +++ b/src/components/form/AmountInputPanel/index.tsx @@ -5,6 +5,7 @@ import styled, { keyframes } from 'styled-components' import { Token } from '@josojo/honeyswap-sdk' import ReactTooltip from 'react-tooltip' +import { unwrapMessage } from '../../../constants' import { useActiveWeb3React } from '../../../hooks' import { ApprovalState } from '../../../hooks/useApproveCallback' import { ChainId, getTokenDisplay } from '../../../utils' @@ -128,8 +129,7 @@ const AmountInputPanel: React.FC = (props) => { const { account } = useActiveWeb3React() const isUnlocking = unlock.unlockState === ApprovalState.PENDING const error = info?.type === InfoType.error - const dataTip = - chainId == 100 ? `Unwrap WXDAI to XDAI on Honeyswap` : `Unwrap WETH to ETH on Uniswap` + const dataTip = unwrapMessage[chainId] return ( <> diff --git a/src/components/modals/ClaimConfirmationModal/index.tsx b/src/components/modals/ClaimConfirmationModal/index.tsx index eae8b37fc..f2dcbed6f 100644 --- a/src/components/modals/ClaimConfirmationModal/index.tsx +++ b/src/components/modals/ClaimConfirmationModal/index.tsx @@ -1,6 +1,7 @@ import React from 'react' import styled from 'styled-components' +import { explorerNames } from '../../../constants' import { useActiveWeb3React } from '../../../hooks' import { ExternalLink } from '../../../theme' import { getExplorerLink } from '../../../utils' @@ -75,7 +76,7 @@ const ClaimConfirmationModal: React.FC = (props) => { {pendingText} - View transaction {`on ${chainId === 100 ? 'Blockscout' : 'Etherscan'}`} + View transaction {`on ${explorerNames[chainId]}`} diff --git a/src/components/modals/ConfirmationModal/index.tsx b/src/components/modals/ConfirmationModal/index.tsx index 6a5639904..7ab4dc6a8 100644 --- a/src/components/modals/ConfirmationModal/index.tsx +++ b/src/components/modals/ConfirmationModal/index.tsx @@ -1,6 +1,7 @@ import React from 'react' import styled from 'styled-components' +import { explorerNames } from '../../../constants' import { useActiveWeb3React } from '../../../hooks' import { ExternalLink } from '../../../theme' import { getExplorerLink } from '../../../utils' @@ -98,7 +99,7 @@ const ConfirmationModal: React.FC = (props) => { {pendingText} - View transaction {`on ${chainId === 100 ? 'Blockscout' : 'Etherscan'}`} + View transaction {`on ${explorerNames[chainId]}`} diff --git a/src/constants/index.ts b/src/constants/index.ts index fc01fbba0..e25295ade 100644 --- a/src/constants/index.ts +++ b/src/constants/index.ts @@ -15,6 +15,20 @@ export const chainNames = { 137: 'Polygon', } +export const explorerNames = { + 1: 'Etherscan', + 4: 'Etherscan', + 100: 'Blockscout', + 137: 'Polyscan', +} + +export const unwrapMessage = { + 1: `Unwrap WETH to ETH on Uniswap`, + 4: `Unwrap WETH to ETH on Uniswap`, + 100: `Unwrap WXDAI to XDAI on Honeyswap`, + 137: `Unwrap WMATIC to MATIC on Quickswap`, +} + const MAINNET_WALLETS = { INJECTED: { connector: injected, diff --git a/src/hooks/useApproveCallback.ts b/src/hooks/useApproveCallback.ts index e11ea4e3e..753a76d32 100644 --- a/src/hooks/useApproveCallback.ts +++ b/src/hooks/useApproveCallback.ts @@ -6,7 +6,7 @@ import { TokenAmount } from '@josojo/honeyswap-sdk' import { useTokenAllowance } from '../data/Allowances' import { useHasPendingApproval, useTransactionAdder } from '../state/transactions/hooks' -import { ChainId, calculateGasMargin, isTokenWETH, isTokenXDAI } from '../utils' +import { ChainId, calculateGasMargin, isTokenWETH, isTokenWMATIC, isTokenXDAI } from '../utils' import { getLogger } from '../utils/logger' import { useActiveWeb3React } from './index' import { useTokenContract } from './useContract' @@ -45,7 +45,8 @@ export function useApproveCallback( // amountToApprove will be defined if currentAllowance is if ( isTokenXDAI(amountToApprove?.token?.address, chainId) || - isTokenWETH(amountToApprove?.token?.address, chainId) + isTokenWETH(amountToApprove?.token?.address, chainId) || + isTokenWMATIC(amountToApprove?.token?.address, chainId) ) { return ApprovalState.APPROVED } diff --git a/src/hooks/usePlaceOrderCallback.ts b/src/hooks/usePlaceOrderCallback.ts index 2caf7cb4e..34e44624a 100644 --- a/src/hooks/usePlaceOrderCallback.ts +++ b/src/hooks/usePlaceOrderCallback.ts @@ -25,6 +25,7 @@ import { getEasyAuctionContract, getTokenDisplay, isTokenWETH, + isTokenWMATIC, isTokenXDAI, } from '../utils' import { getLogger } from '../utils/logger' @@ -202,7 +203,11 @@ const getEstimateParams = ( signature: string, ): EstimateAndParams => { const easyAuctionContract: Contract = getEasyAuctionContract(chainId, library, account) - if (isTokenXDAI(biddingToken.address, chainId) || isTokenWETH(biddingToken.address, chainId)) { + if ( + isTokenXDAI(biddingToken.address, chainId) || + isTokenWETH(biddingToken.address, chainId) || + isTokenWMATIC(biddingToken.address, chainId) + ) { const depositAndPlaceOrderContract = getContract( DEPOSIT_AND_PLACE_ORDER[chainId], depositAndPlaceOrderABI, diff --git a/src/utils/index.ts b/src/utils/index.ts index 2a762692a..057aa69f2 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -229,6 +229,7 @@ export function escapeRegExp(string: string): string { export function getTokenDisplay(token: Token, chainId: ChainId): string { if (isTokenXDAI(token.address, chainId)) return `XDAI` if (isTokenWETH(token.address, chainId)) return `ETH` + if (isTokenWMATIC(token.address, chainId)) return `MATIC` return ( token?.symbol?.slice(0, 7) || token?.name?.slice(0, 7) || token?.address.slice(0, 7) || '🤔' ) @@ -238,6 +239,7 @@ export function getTokenDisplay(token: Token, chainId: ChainId): string { export function getFullTokenDisplay(token: Token, chainId: ChainId): string { if (isTokenXDAI(token.address, chainId)) return `XDAI` if (isTokenWETH(token.address, chainId)) return `ETH` + if (isTokenWMATIC(token.address, chainId)) return `MATIC` return token?.symbol || token?.name || token?.address || '🤔' } @@ -254,6 +256,10 @@ export function isTokenWETH(tokenAddress?: string, chainId?: ChainId): boolean { ) } +export function isTokenWMATIC(tokenAddress?: string, chainId?: ChainId): boolean { + return !!tokenAddress && !!chainId && tokenAddress == WETH[chainId].address && chainId === 137 +} + export function isTimeout(timeId: NodeJS.Timeout | undefined): timeId is NodeJS.Timeout { return typeof timeId !== 'undefined' } diff --git a/yarn.lock b/yarn.lock index efe9f01aa..764a03bc1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2770,7 +2770,7 @@ jest-diff "^25.2.1" pretty-format "^25.2.1" -"@types/json-schema@*", "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8": +"@types/json-schema@*", "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.9" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== @@ -3084,7 +3084,7 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@^4.5.0", "@typescript-eslint/eslint-plugin@^4.8.2": +"@typescript-eslint/eslint-plugin@^4.5.0": version "4.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz#c24dc7c8069c7706bc40d99f6fa87edcb2005276" integrity sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg== @@ -3098,6 +3098,20 @@ semver "^7.3.5" tsutils "^3.21.0" +"@typescript-eslint/eslint-plugin@^5.3.1": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.3.1.tgz#d8ff412f10f54f6364e7fd7c1e70eb6767f434c3" + integrity sha512-cFImaoIr5Ojj358xI/SDhjog57OK2NqlpxwdcgyxDA3bJlZcJq5CPzUXtpD7CxI2Hm6ATU7w5fQnnkVnmwpHqw== + dependencies: + "@typescript-eslint/experimental-utils" "5.3.1" + "@typescript-eslint/scope-manager" "5.3.1" + debug "^4.3.2" + functional-red-black-tree "^1.0.1" + ignore "^5.1.8" + regexpp "^3.2.0" + semver "^7.3.5" + tsutils "^3.21.0" + "@typescript-eslint/experimental-utils@4.33.0", "@typescript-eslint/experimental-utils@^4.0.1": version "4.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz#6f2a786a4209fa2222989e9380b5331b2810f7fd" @@ -3110,6 +3124,18 @@ eslint-scope "^5.1.1" eslint-utils "^3.0.0" +"@typescript-eslint/experimental-utils@5.3.1": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.3.1.tgz#bbd8f9b67b4d5fdcb9d2f90297d8fcda22561e05" + integrity sha512-RgFn5asjZ5daUhbK5Sp0peq0SSMytqcrkNfU4pnDma2D8P3ElZ6JbYjY8IMSFfZAJ0f3x3tnO3vXHweYg0g59w== + dependencies: + "@types/json-schema" "^7.0.9" + "@typescript-eslint/scope-manager" "5.3.1" + "@typescript-eslint/types" "5.3.1" + "@typescript-eslint/typescript-estree" "5.3.1" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + "@typescript-eslint/experimental-utils@^3.10.1": version "3.10.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz#e179ffc81a80ebcae2ea04e0332f8b251345a686" @@ -3121,7 +3147,7 @@ eslint-scope "^5.0.0" eslint-utils "^2.0.0" -"@typescript-eslint/parser@^4.5.0", "@typescript-eslint/parser@^4.8.2": +"@typescript-eslint/parser@^4.5.0": version "4.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.33.0.tgz#dfe797570d9694e560528d18eecad86c8c744899" integrity sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA== @@ -3131,6 +3157,16 @@ "@typescript-eslint/typescript-estree" "4.33.0" debug "^4.3.1" +"@typescript-eslint/parser@^5.3.1": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.3.1.tgz#8ff1977c3d3200c217b3e4628d43ef92f89e5261" + integrity sha512-TD+ONlx5c+Qhk21x9gsJAMRohWAUMavSOmJgv3JGy9dgPhuBd5Wok0lmMClZDyJNLLZK1JRKiATzCKZNUmoyfw== + dependencies: + "@typescript-eslint/scope-manager" "5.3.1" + "@typescript-eslint/types" "5.3.1" + "@typescript-eslint/typescript-estree" "5.3.1" + debug "^4.3.2" + "@typescript-eslint/scope-manager@4.33.0": version "4.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3" @@ -3139,6 +3175,14 @@ "@typescript-eslint/types" "4.33.0" "@typescript-eslint/visitor-keys" "4.33.0" +"@typescript-eslint/scope-manager@5.3.1": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.3.1.tgz#3cfbfbcf5488fb2a9a6fbbe97963ee1e8d419269" + integrity sha512-XksFVBgAq0Y9H40BDbuPOTUIp7dn4u8oOuhcgGq7EoDP50eqcafkMVGrypyVGvDYHzjhdUCUwuwVUK4JhkMAMg== + dependencies: + "@typescript-eslint/types" "5.3.1" + "@typescript-eslint/visitor-keys" "5.3.1" + "@typescript-eslint/types@3.10.1": version "3.10.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-3.10.1.tgz#1d7463fa7c32d8a23ab508a803ca2fe26e758727" @@ -3149,6 +3193,11 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== +"@typescript-eslint/types@5.3.1": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.3.1.tgz#afaa715b69ebfcfde3af8b0403bf27527912f9b7" + integrity sha512-bG7HeBLolxKHtdHG54Uac750eXuQQPpdJfCYuw4ZI3bZ7+GgKClMWM8jExBtp7NSP4m8PmLRM8+lhzkYnSmSxQ== + "@typescript-eslint/typescript-estree@3.10.1": version "3.10.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz#fd0061cc38add4fad45136d654408569f365b853" @@ -3176,6 +3225,19 @@ semver "^7.3.5" tsutils "^3.21.0" +"@typescript-eslint/typescript-estree@5.3.1": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.3.1.tgz#50cc4bfb93dc31bc75e08ae52e29fcb786d606ec" + integrity sha512-PwFbh/PKDVo/Wct6N3w+E4rLZxUDgsoII/GrWM2A62ETOzJd4M6s0Mu7w4CWsZraTbaC5UQI+dLeyOIFF1PquQ== + dependencies: + "@typescript-eslint/types" "5.3.1" + "@typescript-eslint/visitor-keys" "5.3.1" + debug "^4.3.2" + globby "^11.0.4" + is-glob "^4.0.3" + semver "^7.3.5" + tsutils "^3.21.0" + "@typescript-eslint/visitor-keys@3.10.1": version "3.10.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz#cd4274773e3eb63b2e870ac602274487ecd1e931" @@ -3191,6 +3253,14 @@ "@typescript-eslint/types" "4.33.0" eslint-visitor-keys "^2.0.0" +"@typescript-eslint/visitor-keys@5.3.1": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.3.1.tgz#c2860ff22939352db4f3806f34b21d8ad00588ba" + integrity sha512-3cHUzUuVTuNHx0Gjjt5pEHa87+lzyqOiHXy/Gz+SJOCW1mpw9xQHIIEwnKn+Thph1mgWyZ90nboOcSuZr/jTTQ== + dependencies: + "@typescript-eslint/types" "5.3.1" + eslint-visitor-keys "^3.0.0" + "@uniswap/lib@1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@uniswap/lib/-/lib-1.1.1.tgz#0afd29601846c16e5d082866cbb24a9e0758e6bc" @@ -7868,12 +7938,10 @@ escodegen@~1.2.0: optionalDependencies: source-map "~0.1.30" -eslint-config-prettier@^6.15.0: - version "6.15.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz#7f93f6cb7d45a92f1537a70ecc06366e1ac6fed9" - integrity sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw== - dependencies: - get-stdin "^6.0.0" +eslint-config-prettier@^8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz#f7471b20b6fe8a9a9254cc684454202886a2dd7a" + integrity sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew== eslint-config-react-app@^6.0.0: version "6.0.0" @@ -7951,19 +8019,19 @@ eslint-plugin-jsx-a11y@^6.3.1: language-tags "^1.0.5" minimatch "^3.0.4" -eslint-plugin-prettier@^3.1.4: - version "3.4.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz#e9ddb200efb6f3d05ffe83b1665a716af4a387e5" - integrity sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g== +eslint-plugin-prettier@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz#8b99d1e4b8b24a762472b4567992023619cb98e0" + integrity sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ== dependencies: prettier-linter-helpers "^1.0.0" -eslint-plugin-react-hooks@^4.0.0, eslint-plugin-react-hooks@^4.2.0: +eslint-plugin-react-hooks@^4.2.0, eslint-plugin-react-hooks@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz#318dbf312e06fab1c835a4abef00121751ac1172" integrity sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA== -eslint-plugin-react@^7.19.0, eslint-plugin-react@^7.21.5: +eslint-plugin-react@^7.21.5, eslint-plugin-react@^7.27.0: version "7.27.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.27.0.tgz#f952c76517a3915b81c7788b220b2b4c96703124" integrity sha512-0Ut+CkzpppgFtoIhdzi2LpdpxxBvgFf99eFqWxJnUrO7mMe0eOiNpou6rvNYeVVV6lWZvTah0BFne7k5xHjARg== @@ -8037,6 +8105,11 @@ eslint-visitor-keys@^2.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== +eslint-visitor-keys@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz#eee4acea891814cda67a7d8812d9647dd0179af2" + integrity sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA== + eslint-webpack-plugin@^2.5.2: version "2.5.4" resolved "https://registry.yarnpkg.com/eslint-webpack-plugin/-/eslint-webpack-plugin-2.5.4.tgz#473b84932f1a8e2c2b8e66a402d0497bf440b986" @@ -9358,11 +9431,6 @@ get-package-type@^0.1.0: resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== -get-stdin@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" - integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== - get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" @@ -9520,7 +9588,7 @@ globby@11.0.1: merge2 "^1.3.0" slash "^3.0.0" -globby@^11.0.3: +globby@^11.0.3, globby@^11.0.4: version "11.0.4" resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== @@ -15887,7 +15955,7 @@ regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.1: call-bind "^1.0.2" define-properties "^1.1.3" -regexpp@^3.1.0: +regexpp@^3.1.0, regexpp@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==