diff --git a/.github/workflows/audit_build_verify.yml b/.github/workflows/audit_build_verify.yml index f6a6e06497..b64af74fe3 100644 --- a/.github/workflows/audit_build_verify.yml +++ b/.github/workflows/audit_build_verify.yml @@ -42,7 +42,7 @@ jobs: continue-on-error: true - name: Cache node modules - uses: actions/cache@a7c34adf76222e77931dedbf4a45b2e4648ced19 # pin@v3 + uses: actions/cache@fd5de65bc895cf536527842281bea11763fefd77 # pin@v3 with: path: | .npm-cache @@ -70,7 +70,7 @@ jobs: - name: Upload lint results # run if lint failed and only on main/dev branch and pull requests if: always() && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev' || github.event_name == 'pull_request') - uses: github/codeql-action/upload-sarif@2ca79b6fa8d3ec278944088b4aa5f46912db5d63 # pin@codeql-bundle-20220322 + uses: github/codeql-action/upload-sarif@c7f292ea4f542c473194b33813ccd4c207a6c725 # pin@codeql-bundle-20220322 with: sarif_file: lint-results.sarif continue-on-error: true @@ -98,7 +98,7 @@ jobs: continue-on-error: true - name: Cache node modules - uses: actions/cache@a7c34adf76222e77931dedbf4a45b2e4648ced19 # pin@v3 + uses: actions/cache@fd5de65bc895cf536527842281bea11763fefd77 # pin@v3 with: path: | .npm-cache @@ -119,7 +119,7 @@ jobs: npm install --prefer-offline --no-audit --legacy-peer-deps - name: Cache next.js build cache - uses: actions/cache@a7c34adf76222e77931dedbf4a45b2e4648ced19 # pin@v2 + uses: actions/cache@fd5de65bc895cf536527842281bea11763fefd77 # pin@v2 with: path: .next/cache key: ${{ runner.os }}-next-cache-${{ hashFiles('**/package-lock.json') }} diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index e13a975171..c7e15b07ef 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -21,13 +21,13 @@ jobs: uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # pin@v2 - name: Initialize CodeQL - uses: github/codeql-action/init@2ca79b6fa8d3ec278944088b4aa5f46912db5d63 # pin@codeql-bundle-20220322 + uses: github/codeql-action/init@c7f292ea4f542c473194b33813ccd4c207a6c725 # pin@codeql-bundle-20220322 with: queries: security-and-quality languages: javascript - name: Autobuild - uses: github/codeql-action/autobuild@2ca79b6fa8d3ec278944088b4aa5f46912db5d63 # pin@codeql-bundle-20220322 + uses: github/codeql-action/autobuild@c7f292ea4f542c473194b33813ccd4c207a6c725 # pin@codeql-bundle-20220322 - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@2ca79b6fa8d3ec278944088b4aa5f46912db5d63 # pin@codeql-bundle-20220322 + uses: github/codeql-action/analyze@c7f292ea4f542c473194b33813ccd4c207a6c725 # pin@codeql-bundle-20220322 diff --git a/assets/png/currencies/SNX.png b/assets/png/currencies/SNX.png index 54154ca445..4f7a5b9501 100644 Binary files a/assets/png/currencies/SNX.png and b/assets/png/currencies/SNX.png differ diff --git a/assets/png/currencies/sAAVE.png b/assets/png/currencies/sAAVE.png index 1d219ecc2c..c78898a1d6 100644 Binary files a/assets/png/currencies/sAAVE.png and b/assets/png/currencies/sAAVE.png differ diff --git a/assets/png/currencies/sADA.png b/assets/png/currencies/sADA.png index 6184c3b7ce..28b998c2b4 100644 Binary files a/assets/png/currencies/sADA.png and b/assets/png/currencies/sADA.png differ diff --git a/assets/png/currencies/sAPECOIN.png b/assets/png/currencies/sAPECOIN.png index 5edc58a1fc..92f1370e55 100644 Binary files a/assets/png/currencies/sAPECOIN.png and b/assets/png/currencies/sAPECOIN.png differ diff --git a/assets/png/currencies/sAUD.png b/assets/png/currencies/sAUD.png index 27c44fef5e..c3b0deaf98 100644 Binary files a/assets/png/currencies/sAUD.png and b/assets/png/currencies/sAUD.png differ diff --git a/assets/png/currencies/sAVAX.png b/assets/png/currencies/sAVAX.png index a3dc892793..5fa5c1057d 100644 Binary files a/assets/png/currencies/sAVAX.png and b/assets/png/currencies/sAVAX.png differ diff --git a/assets/png/currencies/sBNB.png b/assets/png/currencies/sBNB.png new file mode 100644 index 0000000000..1218b473c7 Binary files /dev/null and b/assets/png/currencies/sBNB.png differ diff --git a/assets/png/currencies/sBTC.png b/assets/png/currencies/sBTC.png index b40ef06913..c13967a117 100644 Binary files a/assets/png/currencies/sBTC.png and b/assets/png/currencies/sBTC.png differ diff --git a/assets/png/currencies/sCHF.png b/assets/png/currencies/sCHF.png index 0f56dc5a6e..a101793d71 100644 Binary files a/assets/png/currencies/sCHF.png and b/assets/png/currencies/sCHF.png differ diff --git a/assets/png/currencies/sDOGE.png b/assets/png/currencies/sDOGE.png new file mode 100644 index 0000000000..5a7a8221a1 Binary files /dev/null and b/assets/png/currencies/sDOGE.png differ diff --git a/assets/png/currencies/sDOT.png b/assets/png/currencies/sDOT.png index a9e437a9c2..af104f73d1 100644 Binary files a/assets/png/currencies/sDOT.png and b/assets/png/currencies/sDOT.png differ diff --git a/assets/png/currencies/sDYDX.png b/assets/png/currencies/sDYDX.png index f77cecaa3e..da2df262c2 100644 Binary files a/assets/png/currencies/sDYDX.png and b/assets/png/currencies/sDYDX.png differ diff --git a/assets/png/currencies/sETH.png b/assets/png/currencies/sETH.png index 3a27726b7e..77c41edd47 100644 Binary files a/assets/png/currencies/sETH.png and b/assets/png/currencies/sETH.png differ diff --git a/assets/png/currencies/sEUR.png b/assets/png/currencies/sEUR.png index 249959bfa5..b0e8b91901 100644 Binary files a/assets/png/currencies/sEUR.png and b/assets/png/currencies/sEUR.png differ diff --git a/assets/png/currencies/sGBP.png b/assets/png/currencies/sGBP.png index 55b975903a..28f20cb66e 100644 Binary files a/assets/png/currencies/sGBP.png and b/assets/png/currencies/sGBP.png differ diff --git a/assets/png/currencies/sINR.png b/assets/png/currencies/sINR.png index 67c1009bce..445131829d 100644 Binary files a/assets/png/currencies/sINR.png and b/assets/png/currencies/sINR.png differ diff --git a/assets/png/currencies/sJPY.png b/assets/png/currencies/sJPY.png index b47c0fe683..f5234910fb 100644 Binary files a/assets/png/currencies/sJPY.png and b/assets/png/currencies/sJPY.png differ diff --git a/assets/png/currencies/sKRW.png b/assets/png/currencies/sKRW.png index 4001237138..f3906de43a 100644 Binary files a/assets/png/currencies/sKRW.png and b/assets/png/currencies/sKRW.png differ diff --git a/assets/png/currencies/sLINK.png b/assets/png/currencies/sLINK.png index caf5143612..89daa40498 100644 Binary files a/assets/png/currencies/sLINK.png and b/assets/png/currencies/sLINK.png differ diff --git a/assets/png/currencies/sMATIC.png b/assets/png/currencies/sMATIC.png index 54d2f37f0c..a3e15d8601 100644 Binary files a/assets/png/currencies/sMATIC.png and b/assets/png/currencies/sMATIC.png differ diff --git a/assets/png/currencies/sOIL.png b/assets/png/currencies/sOIL.png index 3d68efe61f..3cae1e169e 100644 Binary files a/assets/png/currencies/sOIL.png and b/assets/png/currencies/sOIL.png differ diff --git a/assets/png/currencies/sSOL.png b/assets/png/currencies/sSOL.png index f7dd4d6e32..e7294379e7 100644 Binary files a/assets/png/currencies/sSOL.png and b/assets/png/currencies/sSOL.png differ diff --git a/assets/png/currencies/sUNI.png b/assets/png/currencies/sUNI.png index c40bb302be..3b74536526 100644 Binary files a/assets/png/currencies/sUNI.png and b/assets/png/currencies/sUNI.png differ diff --git a/assets/png/currencies/sUSD.png b/assets/png/currencies/sUSD.png index 49143e1cf9..15e223ce40 100644 Binary files a/assets/png/currencies/sUSD.png and b/assets/png/currencies/sUSD.png differ diff --git a/assets/png/currencies/sXAG.png b/assets/png/currencies/sXAG.png index ee5aca7331..229e984b76 100644 Binary files a/assets/png/currencies/sXAG.png and b/assets/png/currencies/sXAG.png differ diff --git a/assets/png/currencies/sXAU.png b/assets/png/currencies/sXAU.png index 36426728a8..4b55ee08e6 100644 Binary files a/assets/png/currencies/sXAU.png and b/assets/png/currencies/sXAU.png differ diff --git a/components/Currency/CurrencyIcon/CurrencyIcon.tsx b/components/Currency/CurrencyIcon/CurrencyIcon.tsx index 533fd000de..23d60ac9a4 100644 --- a/components/Currency/CurrencyIcon/CurrencyIcon.tsx +++ b/components/Currency/CurrencyIcon/CurrencyIcon.tsx @@ -7,8 +7,10 @@ import ADAIcon from 'assets/png/currencies/sADA.png'; import APEIcon from 'assets/png/currencies/sAPECOIN.png'; import AUDIcon from 'assets/png/currencies/sAUD.png'; import AVAXIcon from 'assets/png/currencies/sAVAX.png'; +import BNBIcon from 'assets/png/currencies/sBNB.png'; import BTCIcon from 'assets/png/currencies/sBTC.png'; import CHFIcon from 'assets/png/currencies/sCHF.png'; +import DOGEIcon from 'assets/png/currencies/sDOGE.png'; import DOTIcon from 'assets/png/currencies/sDOT.png'; import DYDXIcon from 'assets/png/currencies/sDYDX.png'; import ETHIcon from 'assets/png/currencies/sETH.png'; @@ -88,6 +90,8 @@ const SYNTH_ICONS: Record = { sETHBTC: ETHBTCIcon, sADA: ADAIcon, sAUD: AUDIcon, + sBNB: BNBIcon, + sDOGE: DOGEIcon, [CRYPTO_CURRENCY_MAP.SNX]: SNXIcon, }; @@ -151,7 +155,7 @@ const CurrencyIcon: FC = ({ currencyKey, type, isDeprecated, } else { return ( - {currencyKey} + {currencyKey === 'sDebtRatio' ? 'DEBT' : currencyKey} ); } diff --git a/components/TVChart/DataFeed.ts b/components/TVChart/DataFeed.ts index c58b3d9cf0..bda7b7e045 100644 --- a/components/TVChart/DataFeed.ts +++ b/components/TVChart/DataFeed.ts @@ -9,7 +9,6 @@ import { SubscribeBarsCallback, } from 'public/static/charting_library/charting_library'; -import { Synths } from 'constants/currency'; import { requestCandlesticks } from 'queries/rates/useCandlesticksQuery'; import { combineDataToPair } from 'sections/exchange/TradeCard/Charts/hooks/useCombinedCandleSticksChartData'; import { getDisplayAsset } from 'utils/futures'; @@ -55,8 +54,8 @@ const fetchCombinedCandles = async ( resolution: ResolutionString, networkId: number ) => { - const baseCurrencyIsSUSD = base === Synths.sUSD; - const quoteCurrencyIsSUSD = quote === Synths.sUSD; + const baseCurrencyIsSUSD = base === 'sUSD'; + const quoteCurrencyIsSUSD = quote === 'sUSD'; const baseDataPromise = requestCandlesticks( base, from, @@ -83,8 +82,8 @@ const fetchLastCandle = async ( resolution: ResolutionString, networkId: number ) => { - const baseCurrencyIsSUSD = base === Synths.sUSD; - const quoteCurrencyIsSUSD = quote === Synths.sUSD; + const baseCurrencyIsSUSD = base === 'sUSD'; + const quoteCurrencyIsSUSD = quote === 'sUSD'; const to = Math.floor(Date.now() / 1000); const from = 0; diff --git a/components/TVChart/TVChart.tsx b/components/TVChart/TVChart.tsx index 2147306a23..fd49bee198 100644 --- a/components/TVChart/TVChart.tsx +++ b/components/TVChart/TVChart.tsx @@ -3,7 +3,6 @@ import { useRef, useContext, useEffect, useCallback, useState, useMemo } from 'r import { useRecoilValue } from 'recoil'; import { ThemeContext } from 'styled-components'; -import { Synths } from 'constants/currency'; import { ChartBody } from 'sections/exchange/TradeCard/Charts/common/styles'; import { currentThemeState } from 'store/ui'; import { networkState } from 'store/wallet'; @@ -70,7 +69,7 @@ export function TVChart({ useEffect(() => { const widgetOptions = { - symbol: marketAsset + ':' + Synths.sUSD, + symbol: marketAsset + ':sUSD', datafeed: DataFeedFactory(network.id, onSubscribe), interval: interval, container: containerId, @@ -180,7 +179,7 @@ export function TVChart({ _widget.current?.onChartReady(() => { const symbolInterval = _widget.current?.symbolInterval(); _widget.current?.setSymbol( - marketAsset + ':' + Synths.sUSD, + marketAsset + ':sUSD', symbolInterval?.interval ?? DEFAULT_RESOLUTION, () => {} ); diff --git a/constants/currency.ts b/constants/currency.ts index 1260234934..2a0ae30e4e 100644 --- a/constants/currency.ts +++ b/constants/currency.ts @@ -1,5 +1,4 @@ import { CurrencyKey } from '@synthetixio/contracts-interface'; -import { Synths } from '@synthetixio/contracts-interface'; import Wei from '@synthetixio/wei'; import keyBy from 'lodash/keyBy'; @@ -44,12 +43,12 @@ export const CRYPTO_CURRENCY = [ export const CRYPTO_CURRENCY_MAP = keyBy(CRYPTO_CURRENCY); export type FUTURES_FIAT = 'EUR' | 'JPY' | 'USD' | 'AUD' | 'GBP' | 'CHF'; export const FIAT_SYNTHS: Set = new Set([ - Synths.sEUR, - Synths.sJPY, - Synths.sUSD, - Synths.sAUD, - Synths.sGBP, - Synths.sCHF, + 'sEUR', + 'sJPY', + 'sUSD', + 'sAUD', + 'sGBP', + 'sCHF', 'EUR', 'JPY', 'USD', @@ -74,6 +73,8 @@ export const MARKET_HOURS_SYNTHS = new Set([ // Commodity synths are not listed in the CurrencyKey currently. This is a temporary workaround. export const COMMODITY_SYNTHS = new Set(['XAU', 'XAG', 'WTI']); +export const INDEX_SYNTHS = new Set(['DebtRatio']); + export const sUSD_EXCHANGE_RATE = new Wei(1); export const SYNTH_DECIMALS = 18; diff --git a/constants/defaults.ts b/constants/defaults.ts index 480d7bc7d7..f230b058e9 100644 --- a/constants/defaults.ts +++ b/constants/defaults.ts @@ -25,7 +25,6 @@ export const DEFAULT_SEARCH_DEBOUNCE_MS = 300; export const DEFAULT_REQUEST_REFRESH_INTERVAL = 30000; // 30s export const DEFAULT_CRYPTO_DECIMALS = 4; export const DEFAULT_FIAT_DECIMALS = 2; -export const DEFAULT_FIAT_EURO_DECIMALS = 4; export const DEFAULT_NUMBER_DECIMALS = 2; export const DEFAULT_PERCENT_DECIMALS = 2; export const DEFAULT_TOKEN_DECIMALS = 18; diff --git a/constants/network.ts b/constants/network.ts index fb9c8876df..90f8e0a3c9 100644 --- a/constants/network.ts +++ b/constants/network.ts @@ -3,6 +3,7 @@ import { BigNumber } from 'ethers'; export const GWEI_UNIT = 1000000000; export const GWEI_DECIMALS = 9; export const ETH_UNIT = 1000000000000000000; +export const DEBT_RATIO_UNIT = 10000000000000000000; export type GasLimitEstimate = BigNumber | null; @@ -11,6 +12,7 @@ export const SUPPORTED_NETWORKS = [ 10, // Optimism (mainnet) 42, // Ethereum Kovan (testnet) 69, // Optimism Kovan (testnet) + 420, // Optimism Goerli (testnet) ]; export enum BlastNetwork { diff --git a/hooks/useExchange.ts b/hooks/useExchange.ts index 178f36c3eb..4b644f3543 100644 --- a/hooks/useExchange.ts +++ b/hooks/useExchange.ts @@ -1,4 +1,4 @@ -import useSynthetixQueries from '@synthetixio/queries'; +import useSynthetixQueries, { Token } from '@synthetixio/queries'; import Wei, { wei } from '@synthetixio/wei'; import { BigNumber, ethers } from 'ethers'; import produce from 'immer'; @@ -14,7 +14,6 @@ import { CRYPTO_CURRENCY_MAP, CurrencyKey, ETH_ADDRESS, - Synths, } from 'constants/currency'; import { DEFAULT_CRYPTO_DECIMALS } from 'constants/defaults'; import ROUTES from 'constants/routes'; @@ -55,7 +54,11 @@ import { networkState, gasSpeedState, } from 'store/wallet'; -import { newGetExchangeRatesForCurrencies } from 'utils/currencies'; +import { + newGetCoinGeckoPricesForCurrencies, + newGetExchangeRatesForCurrencies, + newGetExchangeRatesTupleForCurrencies, +} from 'utils/currencies'; import { truncateNumbers, zeroBN } from 'utils/formatters/number'; import { hexToAsciiV2 } from 'utils/formatters/string'; import logError from 'utils/logError'; @@ -190,7 +193,7 @@ const useExchange = ({ : null; const quoteCurrencyTokenAddress = useMemo( - () => + (): Token['address'] | null => quoteCurrencyKey != null ? isQuoteCurrencyETH ? ETH_ADDRESS @@ -200,7 +203,7 @@ const useExchange = ({ ); const baseCurrencyTokenAddress = useMemo( - () => + (): Token['address'] | null => baseCurrencyKey != null ? isBaseCurrencyETH ? ETH_ADDRESS @@ -273,11 +276,21 @@ const useExchange = ({ const exchangeRates = exchangeRatesQuery.isSuccess ? exchangeRatesQuery.data ?? null : null; - const rate = useMemo( - () => newGetExchangeRatesForCurrencies(exchangeRates, quoteCurrencyKey, baseCurrencyKey), + const [quoteRate, baseRate] = useMemo( + () => newGetExchangeRatesTupleForCurrencies(exchangeRates, quoteCurrencyKey, baseCurrencyKey), [exchangeRates, quoteCurrencyKey, baseCurrencyKey] ); + const rate = useMemo(() => { + const base = baseRate.lte(0) + ? newGetCoinGeckoPricesForCurrencies(coinGeckoPrices, baseCurrencyTokenAddress) + : baseRate; + const quote = quoteRate.lte(0) + ? newGetCoinGeckoPricesForCurrencies(coinGeckoPrices, quoteCurrencyTokenAddress) + : quoteRate; + return base.gt(0) && quote.gt(0) ? quote.div(base) : wei(0); + }, [baseCurrencyTokenAddress, baseRate, coinGeckoPrices, quoteCurrencyTokenAddress, quoteRate]); + const inverseRate = useMemo(() => (rate.gt(0) ? wei(1).div(rate) : wei(0)), [rate]); const getBalance = useCallback( @@ -372,7 +385,7 @@ const useExchange = ({ : null; const ethPriceRate = useMemo( - () => newGetExchangeRatesForCurrencies(exchangeRates, Synths.sETH, selectedPriceCurrency.name), + () => newGetExchangeRatesForCurrencies(exchangeRates, 'sETH', selectedPriceCurrency.name), [exchangeRates, selectedPriceCurrency.name] ); @@ -497,7 +510,7 @@ const useExchange = ({ setCurrencyPair({ base: (baseCurrencyKey && synthsMap[baseCurrencyKey]?.name) || null, - quote: (quoteCurrencyKey && synthsMap[quoteCurrencyKey]?.name) || Synths.sUSD, + quote: (quoteCurrencyKey && synthsMap[quoteCurrencyKey]?.name) || 'sUSD', }); // eslint-disable-next-line }, [network.id, walletAddress, setCurrencyPair, synthsMap]); diff --git a/lib/abis/FuturesMarket.json b/lib/abis/FuturesMarket.json new file mode 100644 index 0000000000..e855af765d --- /dev/null +++ b/lib/abis/FuturesMarket.json @@ -0,0 +1,1109 @@ +[ + { + "inputs": [ + { + "internalType": "address", + "name": "_resolver", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "_baseAsset", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "_marketKey", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "name", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "address", + "name": "destination", + "type": "address" + } + ], + "name": "CacheUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "int256", + "name": "funding", + "type": "int256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "FundingRecomputed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "trackingCode", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "baseAsset", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "marketKey", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "int256", + "name": "sizeDelta", + "type": "int256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "fee", + "type": "uint256" + } + ], + "name": "FuturesTracking", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": false, + "internalType": "int256", + "name": "marginDelta", + "type": "int256" + } + ], + "name": "MarginTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "currentRoundId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "int256", + "name": "sizeDelta", + "type": "int256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "targetRoundId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "commitDeposit", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "keeperDeposit", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "trackingCode", + "type": "bytes32" + } + ], + "name": "NextPriceOrderRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": false, + "internalType": "int256", + "name": "sizeDelta", + "type": "int256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "targetRoundId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "commitDeposit", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "keeperDeposit", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "trackingCode", + "type": "bytes32" + } + ], + "name": "NextPriceOrderSubmitted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "liquidator", + "type": "address" + }, + { + "indexed": false, + "internalType": "int256", + "name": "size", + "type": "int256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "fee", + "type": "uint256" + } + ], + "name": "PositionLiquidated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "margin", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "int256", + "name": "size", + "type": "int256" + }, + { + "indexed": false, + "internalType": "int256", + "name": "tradeSize", + "type": "int256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "lastPrice", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "fundingIndex", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "fee", + "type": "uint256" + } + ], + "name": "PositionModified", + "type": "event" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "accessibleMargin", + "outputs": [ + { + "internalType": "uint256", + "name": "marginAccessible", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "invalid", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "accruedFunding", + "outputs": [ + { + "internalType": "int256", + "name": "funding", + "type": "int256" + }, + { + "internalType": "bool", + "name": "invalid", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "assetPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "invalid", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "baseAsset", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "canLiquidate", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "cancelNextPriceOrder", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "closePosition", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "bytes32", + "name": "trackingCode", + "type": "bytes32" + } + ], + "name": "closePositionWithTracking", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "currentFundingRate", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "executeNextPriceOrder", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "fundingLastRecomputed", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "fundingSequence", + "outputs": [ + { + "internalType": "int128", + "name": "", + "type": "int128" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "fundingSequenceLength", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isResolverCached", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "liquidatePosition", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "liquidationFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "liquidationPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "invalid", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "marketDebt", + "outputs": [ + { + "internalType": "uint256", + "name": "debt", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "invalid", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "marketKey", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "marketSize", + "outputs": [ + { + "internalType": "uint128", + "name": "", + "type": "uint128" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "marketSizes", + "outputs": [ + { + "internalType": "uint256", + "name": "long", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "short", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "marketSkew", + "outputs": [ + { + "internalType": "int128", + "name": "", + "type": "int128" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "int256", + "name": "sizeDelta", + "type": "int256" + } + ], + "name": "modifyPosition", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "int256", + "name": "sizeDelta", + "type": "int256" + }, + { + "internalType": "bytes32", + "name": "trackingCode", + "type": "bytes32" + } + ], + "name": "modifyPositionWithTracking", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "nextPriceOrders", + "outputs": [ + { + "internalType": "int128", + "name": "sizeDelta", + "type": "int128" + }, + { + "internalType": "uint128", + "name": "targetRoundId", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "commitDeposit", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "keeperDeposit", + "type": "uint128" + }, + { + "internalType": "bytes32", + "name": "trackingCode", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "notionalValue", + "outputs": [ + { + "internalType": "int256", + "name": "value", + "type": "int256" + }, + { + "internalType": "bool", + "name": "invalid", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "int256", + "name": "sizeDelta", + "type": "int256" + } + ], + "name": "orderFee", + "outputs": [ + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "invalid", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "positions", + "outputs": [ + { + "internalType": "uint64", + "name": "id", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "lastFundingIndex", + "type": "uint64" + }, + { + "internalType": "uint128", + "name": "margin", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "lastPrice", + "type": "uint128" + }, + { + "internalType": "int128", + "name": "size", + "type": "int128" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "int256", + "name": "sizeDelta", + "type": "int256" + }, + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "postTradeDetails", + "outputs": [ + { + "internalType": "uint256", + "name": "margin", + "type": "uint256" + }, + { + "internalType": "int256", + "name": "size", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liqPrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + }, + { + "internalType": "enum IFuturesMarketBaseTypes.Status", + "name": "status", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "profitLoss", + "outputs": [ + { + "internalType": "int256", + "name": "pnl", + "type": "int256" + }, + { + "internalType": "bool", + "name": "invalid", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "rebuildCache", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "recomputeFunding", + "outputs": [ + { + "internalType": "uint256", + "name": "lastIndex", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "remainingMargin", + "outputs": [ + { + "internalType": "uint256", + "name": "marginRemaining", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "invalid", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "resolver", + "outputs": [ + { + "internalType": "contract AddressResolver", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "resolverAddressesRequired", + "outputs": [ + { + "internalType": "bytes32[]", + "name": "addresses", + "type": "bytes32[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "int256", + "name": "sizeDelta", + "type": "int256" + } + ], + "name": "submitNextPriceOrder", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "int256", + "name": "sizeDelta", + "type": "int256" + }, + { + "internalType": "bytes32", + "name": "trackingCode", + "type": "bytes32" + } + ], + "name": "submitNextPriceOrderWithTracking", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "int256", + "name": "marginDelta", + "type": "int256" + } + ], + "name": "transferMargin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "unrecordedFunding", + "outputs": [ + { + "internalType": "int256", + "name": "funding", + "type": "int256" + }, + { + "internalType": "bool", + "name": "invalid", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "withdrawAllMargin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } +] diff --git a/lib/abis/FuturesMarketData.json b/lib/abis/FuturesMarketData.json new file mode 100644 index 0000000000..7dc9648e7a --- /dev/null +++ b/lib/abis/FuturesMarketData.json @@ -0,0 +1,913 @@ +[ + { + "inputs": [ + { + "internalType": "contract IAddressResolver", + "name": "_resolverProxy", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "constant": true, + "inputs": [], + "name": "allMarketSummaries", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "market", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "asset", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "key", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "maxLeverage", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "marketSize", + "type": "uint256" + }, + { + "internalType": "int256", + "name": "marketSkew", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "marketDebt", + "type": "uint256" + }, + { + "internalType": "int256", + "name": "currentFundingRate", + "type": "int256" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "takerFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makerFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takerFeeNextPrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makerFeeNextPrice", + "type": "uint256" + } + ], + "internalType": "struct FuturesMarketData.FeeRates", + "name": "feeRates", + "type": "tuple" + } + ], + "internalType": "struct FuturesMarketData.MarketSummary[]", + "name": "", + "type": "tuple[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "globals", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "minInitialMargin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFeeRatio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationBufferRatio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minKeeperFee", + "type": "uint256" + } + ], + "internalType": "struct FuturesMarketData.FuturesGlobals", + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "contract IFuturesMarket", + "name": "market", + "type": "address" + } + ], + "name": "marketDetails", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "market", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "baseAsset", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "marketKey", + "type": "bytes32" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "takerFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makerFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takerFeeNextPrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makerFeeNextPrice", + "type": "uint256" + } + ], + "internalType": "struct FuturesMarketData.FeeRates", + "name": "feeRates", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "maxLeverage", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMarketValueUSD", + "type": "uint256" + } + ], + "internalType": "struct FuturesMarketData.MarketLimits", + "name": "limits", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "maxFundingRate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "skewScaleUSD", + "type": "uint256" + } + ], + "internalType": "struct FuturesMarketData.FundingParameters", + "name": "fundingParameters", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "marketSize", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "long", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "short", + "type": "uint256" + } + ], + "internalType": "struct FuturesMarketData.Sides", + "name": "sides", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "marketDebt", + "type": "uint256" + }, + { + "internalType": "int256", + "name": "marketSkew", + "type": "int256" + } + ], + "internalType": "struct FuturesMarketData.MarketSizeDetails", + "name": "marketSizeDetails", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "invalid", + "type": "bool" + } + ], + "internalType": "struct FuturesMarketData.PriceDetails", + "name": "priceDetails", + "type": "tuple" + } + ], + "internalType": "struct FuturesMarketData.MarketData", + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "bytes32", + "name": "marketKey", + "type": "bytes32" + } + ], + "name": "marketDetailsForKey", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "market", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "baseAsset", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "marketKey", + "type": "bytes32" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "takerFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makerFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takerFeeNextPrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makerFeeNextPrice", + "type": "uint256" + } + ], + "internalType": "struct FuturesMarketData.FeeRates", + "name": "feeRates", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "maxLeverage", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMarketValueUSD", + "type": "uint256" + } + ], + "internalType": "struct FuturesMarketData.MarketLimits", + "name": "limits", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "maxFundingRate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "skewScaleUSD", + "type": "uint256" + } + ], + "internalType": "struct FuturesMarketData.FundingParameters", + "name": "fundingParameters", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "marketSize", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "long", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "short", + "type": "uint256" + } + ], + "internalType": "struct FuturesMarketData.Sides", + "name": "sides", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "marketDebt", + "type": "uint256" + }, + { + "internalType": "int256", + "name": "marketSkew", + "type": "int256" + } + ], + "internalType": "struct FuturesMarketData.MarketSizeDetails", + "name": "marketSizeDetails", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "invalid", + "type": "bool" + } + ], + "internalType": "struct FuturesMarketData.PriceDetails", + "name": "priceDetails", + "type": "tuple" + } + ], + "internalType": "struct FuturesMarketData.MarketData", + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address[]", + "name": "markets", + "type": "address[]" + } + ], + "name": "marketSummaries", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "market", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "asset", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "key", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "maxLeverage", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "marketSize", + "type": "uint256" + }, + { + "internalType": "int256", + "name": "marketSkew", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "marketDebt", + "type": "uint256" + }, + { + "internalType": "int256", + "name": "currentFundingRate", + "type": "int256" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "takerFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makerFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takerFeeNextPrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makerFeeNextPrice", + "type": "uint256" + } + ], + "internalType": "struct FuturesMarketData.FeeRates", + "name": "feeRates", + "type": "tuple" + } + ], + "internalType": "struct FuturesMarketData.MarketSummary[]", + "name": "", + "type": "tuple[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "bytes32[]", + "name": "marketKeys", + "type": "bytes32[]" + } + ], + "name": "marketSummariesForKeys", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "market", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "asset", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "key", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "maxLeverage", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "marketSize", + "type": "uint256" + }, + { + "internalType": "int256", + "name": "marketSkew", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "marketDebt", + "type": "uint256" + }, + { + "internalType": "int256", + "name": "currentFundingRate", + "type": "int256" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "takerFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makerFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takerFeeNextPrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makerFeeNextPrice", + "type": "uint256" + } + ], + "internalType": "struct FuturesMarketData.FeeRates", + "name": "feeRates", + "type": "tuple" + } + ], + "internalType": "struct FuturesMarketData.MarketSummary[]", + "name": "", + "type": "tuple[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "bytes32", + "name": "marketKey", + "type": "bytes32" + } + ], + "name": "parameters", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "takerFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makerFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "takerFeeNextPrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "makerFeeNextPrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "nextPriceConfirmWindow", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxLeverage", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMarketValueUSD", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxFundingRate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "skewScaleUSD", + "type": "uint256" + } + ], + "internalType": "struct IFuturesMarketSettings.Parameters", + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "contract IFuturesMarket", + "name": "market", + "type": "address" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "positionDetails", + "outputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "id", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "lastFundingIndex", + "type": "uint64" + }, + { + "internalType": "uint128", + "name": "margin", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "lastPrice", + "type": "uint128" + }, + { + "internalType": "int128", + "name": "size", + "type": "int128" + } + ], + "internalType": "struct IFuturesMarketBaseTypes.Position", + "name": "position", + "type": "tuple" + }, + { + "internalType": "int256", + "name": "notionalValue", + "type": "int256" + }, + { + "internalType": "int256", + "name": "profitLoss", + "type": "int256" + }, + { + "internalType": "int256", + "name": "accruedFunding", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "remainingMargin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "accessibleMargin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationPrice", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "canLiquidatePosition", + "type": "bool" + } + ], + "internalType": "struct FuturesMarketData.PositionData", + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "bytes32", + "name": "marketKey", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "positionDetailsForMarketKey", + "outputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "id", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "lastFundingIndex", + "type": "uint64" + }, + { + "internalType": "uint128", + "name": "margin", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "lastPrice", + "type": "uint128" + }, + { + "internalType": "int128", + "name": "size", + "type": "int128" + } + ], + "internalType": "struct IFuturesMarketBaseTypes.Position", + "name": "position", + "type": "tuple" + }, + { + "internalType": "int256", + "name": "notionalValue", + "type": "int256" + }, + { + "internalType": "int256", + "name": "profitLoss", + "type": "int256" + }, + { + "internalType": "int256", + "name": "accruedFunding", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "remainingMargin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "accessibleMargin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationPrice", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "canLiquidatePosition", + "type": "bool" + } + ], + "internalType": "struct FuturesMarketData.PositionData", + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "resolverProxy", + "outputs": [ + { + "internalType": "contract IAddressResolver", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } +] diff --git a/package-lock.json b/package-lock.json index 2cd848dab2..c526a547fa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "kwenta", - "version": "3.1.1", + "version": "3.1.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "kwenta", - "version": "3.1.1", + "version": "3.1.2", "hasInstallScript": true, "dependencies": { "@artsy/fresnel": "1.7.0", @@ -15,12 +15,12 @@ "@material-ui/core": "^4.12.3", "@metamask/detect-provider": "1.2.0", "@reach/dialog": "0.15.0", - "@synthetixio/contracts-interface": "2.74.1", - "@synthetixio/optimism-networks": "2.74.1", - "@synthetixio/providers": "2.74.1", - "@synthetixio/queries": "2.74.3", - "@synthetixio/transaction-notifier": "2.74.1", - "@synthetixio/wei": "2.74.1", + "@synthetixio/contracts-interface": "2.76.1", + "@synthetixio/optimism-networks": "2.74.2", + "@synthetixio/providers": "2.74.7", + "@synthetixio/queries": "3.0.5", + "@synthetixio/transaction-notifier": "2.74.9", + "@synthetixio/wei": "2.74.2", "@tippyjs/react": "4.1.0", "axios": "0.27.2", "bignumber.js": "9.0.0", @@ -31,7 +31,7 @@ "date-fns-tz": "1.1.4", "ethcall": "4.7.2", "ethereum-block-by-date": "^1.4.5", - "ethers": "5.6.9", + "ethers": "5.7.0", "graphql-request": "3.4.0", "i18next": "19.7.0", "imagemin-mozjpeg": "^10.0.0", @@ -2189,24 +2189,24 @@ } }, "node_modules/@cosmjs/amino": { - "version": "0.28.11", - "resolved": "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.28.11.tgz", - "integrity": "sha512-WJkQQq8gbk5doJJ/3Gcax26I+VC4HdbbSlNdyT5hc6T+U2Jmyry9RLSE+wEZyFMgEabhr43SbIxf64gWZeR8YA==", + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.28.13.tgz", + "integrity": "sha512-IHnH2zGwaY69qT4mVAavr/pfzx6YE+ud1NHJbvVePlbGiz68CXTi5LHR+K0lrKB5mQ7E+ZErWz2mw5U/x+V1wQ==", "dependencies": { - "@cosmjs/crypto": "0.28.11", - "@cosmjs/encoding": "0.28.11", - "@cosmjs/math": "0.28.11", - "@cosmjs/utils": "0.28.11" + "@cosmjs/crypto": "0.28.13", + "@cosmjs/encoding": "0.28.13", + "@cosmjs/math": "0.28.13", + "@cosmjs/utils": "0.28.13" } }, "node_modules/@cosmjs/crypto": { - "version": "0.28.11", - "resolved": "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.28.11.tgz", - "integrity": "sha512-oJXOeBX4FP8bp0ZVydJFcRplErHp8cC6vNoULRck+7hcLuvp9tyv3SBOkBkwxTv81VcQyGCgn7WE0NYEKrpUbw==", + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.28.13.tgz", + "integrity": "sha512-ynKfM0q/tMBQMHJby6ad8lR3gkgBKaelQhIsCZTjClsnuC7oYT9y3ThSZCUWr7Pa9h0J8ahU2YV2oFWFVWJQzQ==", "dependencies": { - "@cosmjs/encoding": "0.28.11", - "@cosmjs/math": "0.28.11", - "@cosmjs/utils": "0.28.11", + "@cosmjs/encoding": "0.28.13", + "@cosmjs/math": "0.28.13", + "@cosmjs/utils": "0.28.13", "@noble/hashes": "^1", "bn.js": "^5.2.0", "elliptic": "^6.5.3", @@ -2214,9 +2214,9 @@ } }, "node_modules/@cosmjs/encoding": { - "version": "0.28.11", - "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.28.11.tgz", - "integrity": "sha512-J7pvlzAt8hBZn316wGRmUlK3xwMgNXUvj4v56DK4fA0fv6VfGwMvVtHCXaqNQtzOGkC6EQcshzA/fL5MBIwu6A==", + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.28.13.tgz", + "integrity": "sha512-jtXbAYtV77rLHxoIrjGFsvgGjeTKttuHRv6cvuy3toCZzY7JzTclKH5O2g36IIE4lXwD9xwuhGJ2aa6A3dhNkA==", "dependencies": { "base64-js": "^1.3.0", "bech32": "^1.1.4", @@ -2224,60 +2224,60 @@ } }, "node_modules/@cosmjs/json-rpc": { - "version": "0.28.11", - "resolved": "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.28.11.tgz", - "integrity": "sha512-YNZTozu5yWHyGGet5Wfc0CcxQezkMr37YaeU9elCaa11ClHlYAQ2NrPpPBOmgnJKsMhzfiKcAE9Sf6f4a0hCxA==", + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.28.13.tgz", + "integrity": "sha512-fInSvg7x9P6p+GWqet+TMhrMTM3OWWdLJOGS5w2ryubMjgpR1rLiAx77MdTNkArW+/6sUwku0sN4veM4ENQu6A==", "dependencies": { - "@cosmjs/stream": "0.28.11", + "@cosmjs/stream": "0.28.13", "xstream": "^11.14.0" } }, "node_modules/@cosmjs/math": { - "version": "0.28.11", - "resolved": "https://registry.npmjs.org/@cosmjs/math/-/math-0.28.11.tgz", - "integrity": "sha512-MyhPnC4sYu86c2/0PpEeynaPl4nvAmLZH3acPh96SzcjERONbGZjjKtBFPq1avBrev2CCSPrZ4O8u9xpQ4aSvg==", + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/math/-/math-0.28.13.tgz", + "integrity": "sha512-PDpL8W/kbyeWi0mQ2OruyqE8ZUAdxPs1xCbDX3WXJwy2oU+X2UTbkuweJHVpS9CIqmZulBoWQAmlf6t6zr1N/g==", "dependencies": { "bn.js": "^5.2.0" } }, "node_modules/@cosmjs/proto-signing": { - "version": "0.28.11", - "resolved": "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.28.11.tgz", - "integrity": "sha512-ym0DpLff+0RBkD/mtFf6wrzyuGhcbcjuDMEdcUWOrJTo6n8DXeRmHkJkyy/mrG3QC4tQX/A81+DhfkANQmgcxw==", - "dependencies": { - "@cosmjs/amino": "0.28.11", - "@cosmjs/crypto": "0.28.11", - "@cosmjs/encoding": "0.28.11", - "@cosmjs/math": "0.28.11", - "@cosmjs/utils": "0.28.11", + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.28.13.tgz", + "integrity": "sha512-nSl/2ZLsUJYz3Ad0RY3ihZUgRHIow2OnYqKsESMu+3RA/jTi9bDYhiBu8mNMHI0xrEJry918B2CyI56pOUHdPQ==", + "dependencies": { + "@cosmjs/amino": "0.28.13", + "@cosmjs/crypto": "0.28.13", + "@cosmjs/encoding": "0.28.13", + "@cosmjs/math": "0.28.13", + "@cosmjs/utils": "0.28.13", "cosmjs-types": "^0.4.0", "long": "^4.0.0" } }, "node_modules/@cosmjs/socket": { - "version": "0.28.11", - "resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.28.11.tgz", - "integrity": "sha512-4BhsWN984SLBhwPCD89riQ3SEJzJ1RLJPeP6apIGjhh6pguQZmwa2U/TZjnEUOGnJkUG2FZUH99jRGSTYaIvZg==", + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.28.13.tgz", + "integrity": "sha512-lavwGxQ5VdeltyhpFtwCRVfxeWjH5D5mmN7jgx9nuCf3XSFbTcOYxrk2pQ4usenu1Q1KZdL4Yl5RCNrJuHD9Ug==", "dependencies": { - "@cosmjs/stream": "0.28.11", + "@cosmjs/stream": "0.28.13", "isomorphic-ws": "^4.0.1", "ws": "^7", "xstream": "^11.14.0" } }, "node_modules/@cosmjs/stargate": { - "version": "0.28.11", - "resolved": "https://registry.npmjs.org/@cosmjs/stargate/-/stargate-0.28.11.tgz", - "integrity": "sha512-UyFH/mTNNKTZohVhj+SmjCRv/xopqU/UinGedmWzs4MqEZteX9xs6D3HTmRCgpmBQ03lpbTslE/FhhT9Hkl9KQ==", + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/stargate/-/stargate-0.28.13.tgz", + "integrity": "sha512-dVBMazDz8/eActHsRcZjDHHptOBMqvibj5CFgEtZBp22gP6ASzoAUXTlkSVk5FBf4sfuUHoff6st134/+PGMAg==", "dependencies": { "@confio/ics23": "^0.6.8", - "@cosmjs/amino": "0.28.11", - "@cosmjs/encoding": "0.28.11", - "@cosmjs/math": "0.28.11", - "@cosmjs/proto-signing": "0.28.11", - "@cosmjs/stream": "0.28.11", - "@cosmjs/tendermint-rpc": "0.28.11", - "@cosmjs/utils": "0.28.11", + "@cosmjs/amino": "0.28.13", + "@cosmjs/encoding": "0.28.13", + "@cosmjs/math": "0.28.13", + "@cosmjs/proto-signing": "0.28.13", + "@cosmjs/stream": "0.28.13", + "@cosmjs/tendermint-rpc": "0.28.13", + "@cosmjs/utils": "0.28.13", "cosmjs-types": "^0.4.0", "long": "^4.0.0", "protobufjs": "~6.11.3", @@ -2285,25 +2285,25 @@ } }, "node_modules/@cosmjs/stream": { - "version": "0.28.11", - "resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.28.11.tgz", - "integrity": "sha512-3b6P4Il8mYzvY2bvEQyzgP+cm0HIGSpHNtuGjiWsQF3Wtp450iVRfEJqdt4+91vvxzfdjQEkQOLMaymnswX3sw==", + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.28.13.tgz", + "integrity": "sha512-AnjtfwT8NwPPkd3lhZhjOlOzT0Kn9bgEu2IPOZjQ1nmG2bplsr6TJmnwn0dJxHT7UGtex17h6whKB5N4wU37Wg==", "dependencies": { "xstream": "^11.14.0" } }, "node_modules/@cosmjs/tendermint-rpc": { - "version": "0.28.11", - "resolved": "https://registry.npmjs.org/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.28.11.tgz", - "integrity": "sha512-TUhWsUYxbKftQmHQK5TBH62vNaKB1ybxoFZ2uJtGMVvY3jcBux7P0Ll/u5nwrM0ETAeo2RjucehJUpGBy9q+HQ==", - "dependencies": { - "@cosmjs/crypto": "0.28.11", - "@cosmjs/encoding": "0.28.11", - "@cosmjs/json-rpc": "0.28.11", - "@cosmjs/math": "0.28.11", - "@cosmjs/socket": "0.28.11", - "@cosmjs/stream": "0.28.11", - "@cosmjs/utils": "0.28.11", + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.28.13.tgz", + "integrity": "sha512-GB+ZmfuJIGQm0hsRtLYjeR3lOxF7Z6XyCBR0cX5AAYOZzSEBJjevPgUHD6tLn8zIhvzxaW3/VKnMB+WmlxdH4w==", + "dependencies": { + "@cosmjs/crypto": "0.28.13", + "@cosmjs/encoding": "0.28.13", + "@cosmjs/json-rpc": "0.28.13", + "@cosmjs/math": "0.28.13", + "@cosmjs/socket": "0.28.13", + "@cosmjs/stream": "0.28.13", + "@cosmjs/utils": "0.28.13", "axios": "^0.21.2", "readonly-date": "^1.0.0", "xstream": "^11.14.0" @@ -2318,9 +2318,9 @@ } }, "node_modules/@cosmjs/utils": { - "version": "0.28.11", - "resolved": "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.28.11.tgz", - "integrity": "sha512-FXVEr7Pg6MX9VbY5NemuKbtFVabSlUlArWIV+R74FQg5LIuSa+0QkxSpNldCuOLBEU4/GlrzybT4uEl338vSzg==" + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.28.13.tgz", + "integrity": "sha512-dVeMBiyg+46x7XBZEfJK8yTihphbCFpjVYmLJVqmTsHfJwymQ65cpyW/C+V/LgWARGK8hWQ/aX9HM5Ao8QmMSg==" }, "node_modules/@cvbb/bc-bech32": { "version": "1.1.15", @@ -2698,9 +2698,9 @@ } }, "node_modules/@emotion/babel-plugin": { - "version": "11.10.0", - "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.10.0.tgz", - "integrity": "sha512-xVnpDAAbtxL1dsuSelU5A7BnY/lftws0wUexNJZTPsvX/1tM4GZJbclgODhvW4E+NH7E5VFcH0bBn30NvniPJA==", + "version": "11.10.2", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.10.2.tgz", + "integrity": "sha512-xNQ57njWTFVfPAc3cjfuaPdsgLp5QOSuRsj9MA6ndEhH/AzuZM86qIQzt6rq+aGBwj3n5/TkLmU5lhAfdRmogA==", "dependencies": { "@babel/helper-module-imports": "^7.16.7", "@babel/plugin-syntax-jsx": "^7.17.12", @@ -2744,9 +2744,9 @@ } }, "node_modules/@emotion/cache": { - "version": "11.10.1", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.1.tgz", - "integrity": "sha512-uZTj3Yz5D69GE25iFZcIQtibnVCFsc/6+XIozyL3ycgWvEdif2uEw9wlUt6umjLr4Keg9K6xRPHmD8LGi+6p1A==", + "version": "11.10.2", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.2.tgz", + "integrity": "sha512-GPR4PovENRvYDbCEnDRecPZYJzWdNMsM+Jn+13MC5uImVNbMyKwzv95DUHy5PDcgfPtKoDtfLU6emF1grrbQDg==", "dependencies": { "@emotion/memoize": "^0.8.0", "@emotion/sheet": "^1.2.0", @@ -3003,203 +3003,11 @@ "ethers": "^5.6.8" } }, - "node_modules/@eth-optimism/provider": { - "version": "0.0.1-alpha.14", - "resolved": "https://registry.npmjs.org/@eth-optimism/provider/-/provider-0.0.1-alpha.14.tgz", - "integrity": "sha512-fEOSHxWt5nII345c4cQtUUZ7Pb/G3GzqvmJOddx27oUVr3zdjeScOO/VXoIf9B8wXxIqUz93i1MDHks8V95CRg==", - "dependencies": { - "@eth-optimism/core-utils": "0.0.1-alpha.30", - "bn.js": "^5.1.3", - "ethers": "^5.0.24" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@eth-optimism/provider/node_modules/@eth-optimism/core-utils": { - "version": "0.0.1-alpha.30", - "resolved": "https://registry.npmjs.org/@eth-optimism/core-utils/-/core-utils-0.0.1-alpha.30.tgz", - "integrity": "sha512-ir8OevZSRu3U7npO+oY9VXADtXIKGHbw/V9CGPMNgXyuoifnuBLuL0OouL0OUhPRAbPHauYwjJX1xr29nJe1Tw==", - "dependencies": { - "abstract-leveldown": "^6.2.2", - "async-lock": "^1.2.2", - "axios": "^0.19.0", - "bn.js": "^4.11.8", - "body-parser": "^1.19.0", - "chai": "^4.2.0", - "chai-as-promised": "^7.1.1", - "debug": "^4.1.1", - "dotenv": "^8.2.0", - "ethereumjs-util": "^6.2.0", - "ethers-v4": "npm:ethers@4", - "express": "^4.17.1", - "memdown": "^4.0.0", - "ts-md5": "^1.2.4", - "uuid": "^3.3.3" - } - }, - "node_modules/@eth-optimism/provider/node_modules/@eth-optimism/core-utils/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/@eth-optimism/provider/node_modules/@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@eth-optimism/provider/node_modules/abstract-leveldown": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz", - "integrity": "sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ==", - "dependencies": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@eth-optimism/provider/node_modules/axios": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", - "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", - "deprecated": "Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410", - "dependencies": { - "follow-redirects": "1.5.10" - } - }, - "node_modules/@eth-optimism/provider/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/@eth-optimism/provider/node_modules/dotenv": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", - "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", - "engines": { - "node": ">=10" - } - }, - "node_modules/@eth-optimism/provider/node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - }, - "node_modules/@eth-optimism/provider/node_modules/ethereumjs-util/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/@eth-optimism/provider/node_modules/follow-redirects": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", - "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", - "dependencies": { - "debug": "=3.1.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/@eth-optimism/provider/node_modules/follow-redirects/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/@eth-optimism/provider/node_modules/immediate": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz", - "integrity": "sha512-RrGCXRm/fRVqMIhqXrGEX9rRADavPiDFSoMb/k64i9XMk8uH4r/Omi5Ctierj6XzNecwDbO4WuFbDD1zmpl3Tg==" - }, - "node_modules/@eth-optimism/provider/node_modules/memdown": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-4.1.0.tgz", - "integrity": "sha512-RqDUWsJ3IH27+dHwBOg6/ZWJoGul+tesnaQ10Pr/ARx7GpskB01Ky0zNZ8EkM6lvQqXcxyzukmXA0T39XW2sRw==", - "dependencies": { - "abstract-leveldown": "~6.0.1", - "functional-red-black-tree": "~1.0.1", - "immediate": "~3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@eth-optimism/provider/node_modules/memdown/node_modules/abstract-leveldown": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.0.3.tgz", - "integrity": "sha512-jzewKKpZbaYUa6HTThnrl+GrJhzjEAeuc7hTVpZdzg7kupXZFoqQDFwyOwLNbmJKJlmzw8yiipMPkDiuKkT06Q==", - "dependencies": { - "level-concat-iterator": "~2.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@eth-optimism/provider/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/@eth-optimism/provider/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/@eth-optimism/provider/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, "node_modules/@eth-optimism/watcher": { - "version": "0.0.1-alpha.9", - "resolved": "https://registry.npmjs.org/@eth-optimism/watcher/-/watcher-0.0.1-alpha.9.tgz", - "integrity": "sha512-FSMinaayA/nTQzSPv21tOUqok8gMfEB1UcIdLJkImt9NUzT4QjhGbrsPH6Q2hBlQkAApgTECMShUYZVMpZ7oOw==", + "version": "0.0.1-alpha.8", + "resolved": "https://registry.npmjs.org/@eth-optimism/watcher/-/watcher-0.0.1-alpha.8.tgz", + "integrity": "sha512-UICItZmRtQ4U2Ae8D56to0MZskFVdKOej3srcDg7PgAi/HqDetoyt5eutBPVgABiiIMTWvkoh6EsbgRJRPjWNg==", + "dev": true, "dependencies": { "ethers": "5.0.0" } @@ -3208,6 +3016,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.0.0.tgz", "integrity": "sha512-uOSACd2E8dg8XuiOewpL42uFH7SvrkA5k0oGkHoqSJl2lflrMPV+7ciWzyuPBjyHnOFvAPPJUpsXrwpFKaLFww==", + "dev": true, "dependencies": { "@ethersproject/abi": "^5.0.0", "@ethersproject/abstract-provider": "^5.0.0", @@ -3259,9 +3068,9 @@ } }, "node_modules/@ethersproject/abi": { - "version": "5.6.4", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.6.4.tgz", - "integrity": "sha512-TTeZUlCeIHG6527/2goZA6gW5F8Emoc7MrZDC7hhP84aRGvW3TEdTnZR08Ls88YXM1m2SuK42Osw/jSi3uO8gg==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", "funding": [ { "type": "individual", @@ -3273,21 +3082,21 @@ } ], "dependencies": { - "@ethersproject/address": "^5.6.1", - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/constants": "^5.6.1", - "@ethersproject/hash": "^5.6.1", - "@ethersproject/keccak256": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.1" + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, "node_modules/@ethersproject/abstract-provider": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.6.1.tgz", - "integrity": "sha512-BxlIgogYJtp1FS8Muvj8YfdClk3unZH0vRMVX791Z9INBNT/kuACZ9GzaY1Y4yFq+YSy6/w4gzj3HCRKrK9hsQ==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", "funding": [ { "type": "individual", @@ -3299,19 +3108,19 @@ } ], "dependencies": { - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.3", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.2", - "@ethersproject/web": "^5.6.1" + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" } }, "node_modules/@ethersproject/abstract-signer": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.6.2.tgz", - "integrity": "sha512-n1r6lttFBG0t2vNiI3HoWaS/KdOt8xyDjzlP2cuevlWLG6EX0OwcKLyG/Kp/cuwNxdy/ous+R/DEMdTUwWQIjQ==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", "funding": [ { "type": "individual", @@ -3323,17 +3132,17 @@ } ], "dependencies": { - "@ethersproject/abstract-provider": "^5.6.1", - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0" + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" } }, "node_modules/@ethersproject/address": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.1.tgz", - "integrity": "sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", "funding": [ { "type": "individual", @@ -3345,17 +3154,17 @@ } ], "dependencies": { - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/keccak256": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.1" + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" } }, "node_modules/@ethersproject/base64": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.6.1.tgz", - "integrity": "sha512-qB76rjop6a0RIYYMiB4Eh/8n+Hxu2NIZm8S/Q7kNo5pmZfXhHGHmS4MinUainiBC54SCyRnwzL+KZjj8zbsSsw==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", "funding": [ { "type": "individual", @@ -3367,13 +3176,13 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.6.1" + "@ethersproject/bytes": "^5.7.0" } }, "node_modules/@ethersproject/basex": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.6.1.tgz", - "integrity": "sha512-a52MkVz4vuBXR06nvflPMotld1FJWSj2QT0985v7P/emPZO00PucFAkbcmq2vpVU7Ts7umKiSI6SppiLykVWsA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", + "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", "funding": [ { "type": "individual", @@ -3385,14 +3194,14 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/properties": "^5.6.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" } }, "node_modules/@ethersproject/bignumber": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.2.tgz", - "integrity": "sha512-v7+EEUbhGqT3XJ9LMPsKvXYHFc8eHxTowFCG/HgJErmq4XHJ2WR7aeyICg3uTOAQ7Icn0GFHAohXEhxQHq4Ubw==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", "funding": [ { "type": "individual", @@ -3404,15 +3213,15 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", "bn.js": "^5.2.1" } }, "node_modules/@ethersproject/bytes": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.6.1.tgz", - "integrity": "sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", "funding": [ { "type": "individual", @@ -3424,13 +3233,13 @@ } ], "dependencies": { - "@ethersproject/logger": "^5.6.0" + "@ethersproject/logger": "^5.7.0" } }, "node_modules/@ethersproject/constants": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.6.1.tgz", - "integrity": "sha512-QSq9WVnZbxXYFftrjSjZDUshp6/eKp6qrtdBtUCm0QxCV5z1fG/w3kdlcsjMCQuQHUnAclKoK7XpXMezhRDOLg==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", "funding": [ { "type": "individual", @@ -3442,13 +3251,13 @@ } ], "dependencies": { - "@ethersproject/bignumber": "^5.6.2" + "@ethersproject/bignumber": "^5.7.0" } }, "node_modules/@ethersproject/contracts": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.6.2.tgz", - "integrity": "sha512-hguUA57BIKi6WY0kHvZp6PwPlWF87MCeB4B7Z7AbUpTxfFXFdn/3b0GmjZPagIHS+3yhcBJDnuEfU4Xz+Ks/8g==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", + "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", "funding": [ { "type": "individual", @@ -3460,22 +3269,22 @@ } ], "dependencies": { - "@ethersproject/abi": "^5.6.3", - "@ethersproject/abstract-provider": "^5.6.1", - "@ethersproject/abstract-signer": "^5.6.2", - "@ethersproject/address": "^5.6.1", - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/constants": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.2" + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" } }, "node_modules/@ethersproject/hash": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.6.1.tgz", - "integrity": "sha512-L1xAHurbaxG8VVul4ankNX5HgQ8PNCTrnVXEiFnE9xoRnaUcgfD12tZINtDinSllxPLCtGwguQxJ5E6keE84pA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", "funding": [ { "type": "individual", @@ -3487,20 +3296,21 @@ } ], "dependencies": { - "@ethersproject/abstract-signer": "^5.6.2", - "@ethersproject/address": "^5.6.1", - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/keccak256": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.1" + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, "node_modules/@ethersproject/hdnode": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.6.2.tgz", - "integrity": "sha512-tERxW8Ccf9CxW2db3WsN01Qao3wFeRsfYY9TCuhmG0xNpl2IO8wgXU3HtWIZ49gUWPggRy4Yg5axU0ACaEKf1Q==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", + "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", "funding": [ { "type": "individual", @@ -3512,24 +3322,24 @@ } ], "dependencies": { - "@ethersproject/abstract-signer": "^5.6.2", - "@ethersproject/basex": "^5.6.1", - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/pbkdf2": "^5.6.1", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/sha2": "^5.6.1", - "@ethersproject/signing-key": "^5.6.2", - "@ethersproject/strings": "^5.6.1", - "@ethersproject/transactions": "^5.6.2", - "@ethersproject/wordlists": "^5.6.1" + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" } }, "node_modules/@ethersproject/json-wallets": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.6.1.tgz", - "integrity": "sha512-KfyJ6Zwz3kGeX25nLihPwZYlDqamO6pfGKNnVMWWfEVVp42lTfCZVXXy5Ie8IZTN0HKwAngpIPi7gk4IJzgmqQ==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", + "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", "funding": [ { "type": "individual", @@ -3541,25 +3351,25 @@ } ], "dependencies": { - "@ethersproject/abstract-signer": "^5.6.2", - "@ethersproject/address": "^5.6.1", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/hdnode": "^5.6.2", - "@ethersproject/keccak256": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/pbkdf2": "^5.6.1", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/random": "^5.6.1", - "@ethersproject/strings": "^5.6.1", - "@ethersproject/transactions": "^5.6.2", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", "aes-js": "3.0.0", "scrypt-js": "3.0.1" } }, "node_modules/@ethersproject/keccak256": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.6.1.tgz", - "integrity": "sha512-bB7DQHCTRDooZZdL3lk9wpL0+XuG3XLGHLh3cePnybsO3V0rdCAOQGpn/0R3aODmnTOOkCATJiD2hnL+5bwthA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", "funding": [ { "type": "individual", @@ -3571,14 +3381,14 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.6.1", + "@ethersproject/bytes": "^5.7.0", "js-sha3": "0.8.0" } }, "node_modules/@ethersproject/logger": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.6.0.tgz", - "integrity": "sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", "funding": [ { "type": "individual", @@ -3591,9 +3401,9 @@ ] }, "node_modules/@ethersproject/networks": { - "version": "5.6.4", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.6.4.tgz", - "integrity": "sha512-KShHeHPahHI2UlWdtDMn2lJETcbtaJge4k7XSjDR9h79QTd6yQJmv6Cp2ZA4JdqWnhszAOLSuJEd9C0PRw7hSQ==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.0.tgz", + "integrity": "sha512-MG6oHSQHd4ebvJrleEQQ4HhVu8Ichr0RDYEfHzsVAVjHNM+w36x9wp9r+hf1JstMXtseXDtkiVoARAG6M959AA==", "funding": [ { "type": "individual", @@ -3605,13 +3415,13 @@ } ], "dependencies": { - "@ethersproject/logger": "^5.6.0" + "@ethersproject/logger": "^5.7.0" } }, "node_modules/@ethersproject/pbkdf2": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.6.1.tgz", - "integrity": "sha512-k4gRQ+D93zDRPNUfmduNKq065uadC2YjMP/CqwwX5qG6R05f47boq6pLZtV/RnC4NZAYOPH1Cyo54q0c9sshRQ==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", + "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", "funding": [ { "type": "individual", @@ -3623,14 +3433,14 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/sha2": "^5.6.1" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" } }, "node_modules/@ethersproject/properties": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.6.0.tgz", - "integrity": "sha512-szoOkHskajKePTJSZ46uHUWWkbv7TzP2ypdEK6jGMqJaEt2sb0jCgfBo0gH0m2HBpRixMuJ6TBRaQCF7a9DoCg==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", "funding": [ { "type": "individual", @@ -3642,13 +3452,13 @@ } ], "dependencies": { - "@ethersproject/logger": "^5.6.0" + "@ethersproject/logger": "^5.7.0" } }, "node_modules/@ethersproject/providers": { - "version": "5.6.8", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.6.8.tgz", - "integrity": "sha512-Wf+CseT/iOJjrGtAOf3ck9zS7AgPmr2fZ3N97r4+YXN3mBePTG2/bJ8DApl9mVwYL+RpYbNxMEkEp4mPGdwG/w==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.0.tgz", + "integrity": "sha512-+TTrrINMzZ0aXtlwO/95uhAggKm4USLm1PbeCBR/3XZ7+Oey+3pMyddzZEyRhizHpy1HXV0FRWRMI1O3EGYibA==", "funding": [ { "type": "individual", @@ -3660,32 +3470,32 @@ } ], "dependencies": { - "@ethersproject/abstract-provider": "^5.6.1", - "@ethersproject/abstract-signer": "^5.6.2", - "@ethersproject/address": "^5.6.1", - "@ethersproject/base64": "^5.6.1", - "@ethersproject/basex": "^5.6.1", - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/constants": "^5.6.1", - "@ethersproject/hash": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.3", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/random": "^5.6.1", - "@ethersproject/rlp": "^5.6.1", - "@ethersproject/sha2": "^5.6.1", - "@ethersproject/strings": "^5.6.1", - "@ethersproject/transactions": "^5.6.2", - "@ethersproject/web": "^5.6.1", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", "bech32": "1.1.4", "ws": "7.4.6" } }, "node_modules/@ethersproject/random": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.6.1.tgz", - "integrity": "sha512-/wtPNHwbmng+5yi3fkipA8YBT59DdkGRoC2vWk09Dci/q5DlgnMkhIycjHlavrvrjJBkFjO/ueLyT+aUDfc4lA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", + "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", "funding": [ { "type": "individual", @@ -3697,14 +3507,14 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, "node_modules/@ethersproject/rlp": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.1.tgz", - "integrity": "sha512-uYjmcZx+DKlFUk7a5/W9aQVaoEC7+1MOBgNtvNg13+RnuUwT4F0zTovC0tmay5SmRslb29V1B7Y5KCri46WhuQ==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", "funding": [ { "type": "individual", @@ -3716,14 +3526,14 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, "node_modules/@ethersproject/sha2": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.6.1.tgz", - "integrity": "sha512-5K2GyqcW7G4Yo3uenHegbXRPDgARpWUiXc6RiF7b6i/HXUoWlb7uCARh7BAHg7/qT/Q5ydofNwiZcim9qpjB6g==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", + "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", "funding": [ { "type": "individual", @@ -3735,15 +3545,15 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", "hash.js": "1.1.7" } }, "node_modules/@ethersproject/signing-key": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.6.2.tgz", - "integrity": "sha512-jVbu0RuP7EFpw82vHcL+GP35+KaNruVAZM90GxgQnGqB6crhBqW/ozBfFvdeImtmb4qPko0uxXjn8l9jpn0cwQ==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", "funding": [ { "type": "individual", @@ -3755,18 +3565,18 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", "bn.js": "^5.2.1", "elliptic": "6.5.4", "hash.js": "1.1.7" } }, "node_modules/@ethersproject/solidity": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.6.1.tgz", - "integrity": "sha512-KWqVLkUUoLBfL1iwdzUVlkNqAUIFMpbbeH0rgCfKmJp0vFtY4AsaN91gHKo9ZZLkC4UOm3cI3BmMV4N53BOq4g==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", + "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", "funding": [ { "type": "individual", @@ -3778,18 +3588,18 @@ } ], "dependencies": { - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/keccak256": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/sha2": "^5.6.1", - "@ethersproject/strings": "^5.6.1" + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, "node_modules/@ethersproject/strings": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.6.1.tgz", - "integrity": "sha512-2X1Lgk6Jyfg26MUnsHiT456U9ijxKUybz8IM1Vih+NJxYtXhmvKBcHOmvGqpFSVJ0nQ4ZCoIViR8XlRw1v/+Cw==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", "funding": [ { "type": "individual", @@ -3801,15 +3611,15 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/constants": "^5.6.1", - "@ethersproject/logger": "^5.6.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, "node_modules/@ethersproject/transactions": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.6.2.tgz", - "integrity": "sha512-BuV63IRPHmJvthNkkt9G70Ullx6AcM+SDc+a8Aw/8Yew6YwT51TcBKEp1P4oOQ/bP25I18JJr7rcFRgFtU9B2Q==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", "funding": [ { "type": "individual", @@ -3821,21 +3631,21 @@ } ], "dependencies": { - "@ethersproject/address": "^5.6.1", - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/constants": "^5.6.1", - "@ethersproject/keccak256": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/rlp": "^5.6.1", - "@ethersproject/signing-key": "^5.6.2" + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" } }, "node_modules/@ethersproject/units": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.6.1.tgz", - "integrity": "sha512-rEfSEvMQ7obcx3KWD5EWWx77gqv54K6BKiZzKxkQJqtpriVsICrktIQmKl8ReNToPeIYPnFHpXvKpi068YFZXw==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", + "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", "funding": [ { "type": "individual", @@ -3847,15 +3657,15 @@ } ], "dependencies": { - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/constants": "^5.6.1", - "@ethersproject/logger": "^5.6.0" + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, "node_modules/@ethersproject/wallet": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.6.2.tgz", - "integrity": "sha512-lrgh0FDQPuOnHcF80Q3gHYsSUODp6aJLAdDmDV0xKCN/T7D99ta1jGVhulg3PY8wiXEngD0DfM0I2XKXlrqJfg==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", + "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", "funding": [ { "type": "individual", @@ -3867,27 +3677,27 @@ } ], "dependencies": { - "@ethersproject/abstract-provider": "^5.6.1", - "@ethersproject/abstract-signer": "^5.6.2", - "@ethersproject/address": "^5.6.1", - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/hash": "^5.6.1", - "@ethersproject/hdnode": "^5.6.2", - "@ethersproject/json-wallets": "^5.6.1", - "@ethersproject/keccak256": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/random": "^5.6.1", - "@ethersproject/signing-key": "^5.6.2", - "@ethersproject/transactions": "^5.6.2", - "@ethersproject/wordlists": "^5.6.1" + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" } }, "node_modules/@ethersproject/web": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.6.1.tgz", - "integrity": "sha512-/vSyzaQlNXkO1WV+RneYKqCJwualcUdx/Z3gseVovZP0wIlOFcCE1hkRhKBH8ImKbGQbMl9EAAyJFrJu7V0aqA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.0.tgz", + "integrity": "sha512-ApHcbbj+muRASVDSCl/tgxaH2LBkRMEYfLOLVa0COipx0+nlu0QKet7U2lEg0vdkh8XRSLf2nd1f1Uk9SrVSGA==", "funding": [ { "type": "individual", @@ -3899,17 +3709,17 @@ } ], "dependencies": { - "@ethersproject/base64": "^5.6.1", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.1" + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, "node_modules/@ethersproject/wordlists": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.6.1.tgz", - "integrity": "sha512-wiPRgBpNbNwCQFoCr8bcWO8o5I810cqO6mkdtKfLKFlLxeCWcnzDi4Alu8iyNzlhYuS9npCwivMbRWF19dyblw==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", + "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", "funding": [ { "type": "individual", @@ -3921,11 +3731,11 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/hash": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.1" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, "node_modules/@gar/promisify": { @@ -5713,9 +5523,9 @@ } }, "node_modules/@ledgerhq/cryptoassets": { - "version": "6.31.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/cryptoassets/-/cryptoassets-6.31.0.tgz", - "integrity": "sha512-DM6JcGbX0n9TmcJhCVSrXOm6L4mQFifsZnBIzR2kFZ5/+r2H5Eca9FM+teJ/MUe2BtvuMg2slTzFTK/slLRWLw==", + "version": "6.32.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/cryptoassets/-/cryptoassets-6.32.0.tgz", + "integrity": "sha512-PoUZLw8HNKYPyxOBZPDJDs0Usqy0RyaSioTrC5Nlm5sVHEWPwssGJAAWxXO4q60j2PvLAOnfXPPo2pRWxcBTeg==", "dependencies": { "invariant": "2" } @@ -6825,6 +6635,55 @@ "node": ">= 8" } }, + "node_modules/@nomiclabs/hardhat-etherscan": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.0.tgz", + "integrity": "sha512-JroYgfN1AlYFkQTQ3nRwFi4o8NtZF7K/qFR2dxDUgHbCtIagkUseca9L4E/D2ScUm4XT40+8PbCdqZi+XmHyQA==", + "dependencies": { + "@ethersproject/abi": "^5.1.2", + "@ethersproject/address": "^5.0.2", + "cbor": "^5.0.2", + "chalk": "^2.4.2", + "debug": "^4.1.1", + "fs-extra": "^7.0.1", + "lodash": "^4.17.11", + "semver": "^6.3.0", + "table": "^6.8.0", + "undici": "^5.4.0" + }, + "peerDependencies": { + "hardhat": "^2.0.4" + } + }, + "node_modules/@nomiclabs/hardhat-etherscan/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@nomiclabs/hardhat-etherscan/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@nomiclabs/hardhat-etherscan/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/@npmcli/fs": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", @@ -7572,21 +7431,21 @@ } }, "node_modules/@snapshot-labs/snapshot.js": { - "version": "0.3.104", - "resolved": "https://registry.npmjs.org/@snapshot-labs/snapshot.js/-/snapshot.js-0.3.104.tgz", - "integrity": "sha512-zfLLUIZuCfKr8iRcS+sZL/Qr5I0kwfDIniQvB1On5taH58s5YKWEt/QFWK9U2oGw008x/A5Md0lnZJ6aNdS01Q==", + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/@snapshot-labs/snapshot.js/-/snapshot.js-0.4.20.tgz", + "integrity": "sha512-CSOyTODppuMKDCG69tc9PpFsxTG5D8PqDrNQxExIYvANBHlTGQEWawoGdfWvhDysxcVFOJkp/bStYGm0OcZW6g==", "dependencies": { "@ensdomains/eth-ens-namehash": "^2.0.15", - "@ethersproject/abi": "^5.0.4", + "@ethersproject/abi": "^5.6.4", "@ethersproject/bytes": "^5.6.1", - "@ethersproject/contracts": "^5.0.3", + "@ethersproject/contracts": "^5.6.2", "@ethersproject/hash": "^5.6.1", - "@ethersproject/providers": "^5.3.1", - "@ethersproject/wallet": "^5.4.0", - "ajv": "^8.6.0", - "ajv-formats": "^2.1.0", - "cross-fetch": "^3.0.6", - "json-to-graphql-query": "^2.0.0", + "@ethersproject/providers": "^5.6.8", + "@ethersproject/wallet": "^5.6.2", + "ajv": "^8.11.0", + "ajv-formats": "^2.1.1", + "cross-fetch": "^3.1.5", + "json-to-graphql-query": "^2.2.4", "lodash.set": "^4.3.2" }, "engines": { @@ -9116,9 +8975,9 @@ } }, "node_modules/@storybook/mdx1-csf/node_modules/@types/lodash": { - "version": "4.14.183", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.183.tgz", - "integrity": "sha512-UXavyuxzXKMqJPEpFPri6Ku5F9af6ZJXUneHhvQJxavrEjuHkFp2YnDWHcxJiG7hk8ZkWqjcyNeW1s/smZv5cw==", + "version": "4.14.184", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.184.tgz", + "integrity": "sha512-RoZphVtHbxPZizt4IcILciSWiC6dcn+eZ8oX9IWEYfDMcocdd42f7NPI6fQj+6zI8y4E0L7gu2pcZKLGTRaV9Q==", "dev": true }, "node_modules/@storybook/mdx1-csf/node_modules/prettier": { @@ -9462,9 +9321,9 @@ } }, "node_modules/@storybook/react/node_modules/@types/node": { - "version": "16.11.49", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.49.tgz", - "integrity": "sha512-Abq9fBviLV93OiXMu+f6r0elxCzRwc0RC5f99cU892uBITL44pTvgvEqlRlPRi8EGcO1z7Cp8A4d0s/p3J/+Nw==", + "version": "16.11.52", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.52.tgz", + "integrity": "sha512-GnstYouCa9kbYokBCWEVrszJ1P2rGAQpKrqACHKuixkaT8XGu8nsqHvEUIGqDs5vwtsJ7LrYqnPDKRD1V+M39A==", "dev": true }, "node_modules/@storybook/router": { @@ -10225,11 +10084,11 @@ } }, "node_modules/@synthetixio/codegen-graph-ts": { - "version": "2.74.1", - "resolved": "https://registry.npmjs.org/@synthetixio/codegen-graph-ts/-/codegen-graph-ts-2.74.1.tgz", - "integrity": "sha512-aohd8gpFTY2UOhhjM+tqDVwo51VIS1iub1nErEM4tPpfMZzvtD47IVwO8LK5xhg1B1qNo91/eMV1jiLlvE9/bg==", + "version": "2.74.2", + "resolved": "https://registry.npmjs.org/@synthetixio/codegen-graph-ts/-/codegen-graph-ts-2.74.2.tgz", + "integrity": "sha512-c4ns7fsXVv/wNBT01TGsbYrN3X02D6SIdJnfAW8Sit9JspFnfF7icnolENmRhjoLOY38DrIVuA7+IKhp3qWOtg==", "dependencies": { - "@synthetixio/wei": "2.74.1", + "@synthetixio/wei": "2.74.2", "axios": "^0.21.4", "commander": "^8.1.0", "graphql": "^15.5.0", @@ -10256,13 +10115,19 @@ "node": ">= 12" } }, + "node_modules/@synthetixio/contracts": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@synthetixio/contracts/-/contracts-1.1.3.tgz", + "integrity": "sha512-NpKecIAbd4WdOZAsr8RR8U9wG4JDUj4Bc779aUO3CXf7aLQqYLIDCj1SEXTL/qM4wrBLwYJVph8//UKvq+5/QQ==" + }, "node_modules/@synthetixio/contracts-interface": { - "version": "2.74.1", - "resolved": "https://registry.npmjs.org/@synthetixio/contracts-interface/-/contracts-interface-2.74.1.tgz", - "integrity": "sha512-6UZ5PNkjYLMUSWwbSL55zEVhTuAPIv+JpOPxzndD+U/lVZwnDXilrshmSWZ8r3zRmwEA+QWIAHGgSxnb6UCDDQ==", + "version": "2.76.1", + "resolved": "https://registry.npmjs.org/@synthetixio/contracts-interface/-/contracts-interface-2.76.1.tgz", + "integrity": "sha512-PZvC7zG6jFsQe88A6IkI/h1FMtWduF0pHPQcGMKEihWyydSln6focIM+hoc5ZZO7qOWm4iLfqrf5GJse2G3o4Q==", "dependencies": { + "@synthetixio/contracts": "1.1.3", "ethers": "^5.5.3", - "synthetix": "2.74.1" + "synthetix": "2.76.1" } }, "node_modules/@synthetixio/js": { @@ -10323,52 +10188,6 @@ "@ethersproject/wordlists": "^5.0.0" } }, - "node_modules/@synthetixio/js/node_modules/@eth-optimism/watcher": { - "version": "0.0.1-alpha.8", - "resolved": "https://registry.npmjs.org/@eth-optimism/watcher/-/watcher-0.0.1-alpha.8.tgz", - "integrity": "sha512-UICItZmRtQ4U2Ae8D56to0MZskFVdKOej3srcDg7PgAi/HqDetoyt5eutBPVgABiiIMTWvkoh6EsbgRJRPjWNg==", - "dev": true, - "dependencies": { - "ethers": "5.0.0" - } - }, - "node_modules/@synthetixio/js/node_modules/@eth-optimism/watcher/node_modules/ethers": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.0.0.tgz", - "integrity": "sha512-uOSACd2E8dg8XuiOewpL42uFH7SvrkA5k0oGkHoqSJl2lflrMPV+7ciWzyuPBjyHnOFvAPPJUpsXrwpFKaLFww==", - "dev": true, - "dependencies": { - "@ethersproject/abi": "^5.0.0", - "@ethersproject/abstract-provider": "^5.0.0", - "@ethersproject/abstract-signer": "^5.0.0", - "@ethersproject/address": "^5.0.0", - "@ethersproject/base64": "^5.0.0", - "@ethersproject/bignumber": "^5.0.0", - "@ethersproject/bytes": "^5.0.0", - "@ethersproject/constants": "^5.0.0", - "@ethersproject/contracts": "^5.0.0", - "@ethersproject/hash": "^5.0.0", - "@ethersproject/hdnode": "^5.0.0", - "@ethersproject/json-wallets": "^5.0.0", - "@ethersproject/keccak256": "^5.0.0", - "@ethersproject/logger": "^5.0.0", - "@ethersproject/networks": "^5.0.0", - "@ethersproject/pbkdf2": "^5.0.0", - "@ethersproject/properties": "^5.0.0", - "@ethersproject/providers": "^5.0.0", - "@ethersproject/random": "^5.0.0", - "@ethersproject/rlp": "^5.0.0", - "@ethersproject/sha2": "^5.0.0", - "@ethersproject/signing-key": "^5.0.0", - "@ethersproject/solidity": "^5.0.0", - "@ethersproject/strings": "^5.0.0", - "@ethersproject/transactions": "^5.0.0", - "@ethersproject/units": "^5.0.0", - "@ethersproject/wallet": "^5.0.0", - "@ethersproject/web": "^5.0.0", - "@ethersproject/wordlists": "^5.0.0" - } - }, "node_modules/@synthetixio/js/node_modules/abi-decoder": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/abi-decoder/-/abi-decoder-2.3.0.tgz", @@ -10491,39 +10310,49 @@ } }, "node_modules/@synthetixio/optimism-networks": { - "version": "2.74.1", - "resolved": "https://registry.npmjs.org/@synthetixio/optimism-networks/-/optimism-networks-2.74.1.tgz", - "integrity": "sha512-OZ3BeZLE56oK9nvYHwqeNYudxnwjLPC90Hx2KpLtLZ4sn2xsxJARL74pXTuoD45P7zMo8ulVYAo4yCldv7WWFQ==", + "version": "2.74.2", + "resolved": "https://registry.npmjs.org/@synthetixio/optimism-networks/-/optimism-networks-2.74.2.tgz", + "integrity": "sha512-YH2mrmcsVzRf3rxa01Qz1NZHQrezUCGbdR8Wxzb7NrEpchzHYMFj3CPW0F0PVY3Fk1I+gZXRM/tgYnMqdcknDQ==", "dependencies": { - "@eth-optimism/watcher": "^0.0.1-alpha.9", - "@metamask/providers": "^8.1.1", - "ethers": "^5.5.3" + "@ethersproject/bignumber": "^5.6.2", + "@ethersproject/bytes": "^5.6.1", + "@metamask/providers": "^8.1.1" } }, "node_modules/@synthetixio/providers": { - "version": "2.74.1", - "resolved": "https://registry.npmjs.org/@synthetixio/providers/-/providers-2.74.1.tgz", - "integrity": "sha512-YxRhy98dTq1BbwU0i8JvZQNQDLwQ8ADaX6ZfTOQzWGJO0fMF9qo9kEMN9CcZhC5tq9Davc0JBtyQJkqL/F7TLQ==", + "version": "2.74.7", + "resolved": "https://registry.npmjs.org/@synthetixio/providers/-/providers-2.74.7.tgz", + "integrity": "sha512-4Y/nSscXsF5CmWhco1Fbs3cJyv72yvQ/ZJlqeTH8Vj1t/fz62WshD8+sNKElCfy1cnPXQDY2UgzQryyRnfvEJg==", "dependencies": { - "@eth-optimism/provider": "^0.0.1-alpha.14", - "@synthetixio/contracts-interface": "2.74.1", - "@synthetixio/optimism-networks": "2.74.1", - "ethers": "^5.5.3" + "@ethersproject/bignumber": "^5.6.2", + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/providers": "^5.6.8", + "@synthetixio/contracts-interface": "2.76.1", + "@synthetixio/optimism-networks": "2.74.2" } }, "node_modules/@synthetixio/queries": { - "version": "2.74.3", - "resolved": "https://registry.npmjs.org/@synthetixio/queries/-/queries-2.74.3.tgz", - "integrity": "sha512-3RPWrD1B6Lthb6WihzPtGcZhgtM8GqSVblFmDzB4dcbWzeRypAOKLt5nimrGZTav+wE8A5VZcCaNZ5MsWPv00Q==", - "dependencies": { - "@snapshot-labs/snapshot.js": "^0.3.22", - "@synthetixio/codegen-graph-ts": "2.74.1", - "@synthetixio/contracts-interface": "2.74.1", - "@synthetixio/optimism-networks": "2.74.1", - "@synthetixio/wei": "2.74.1", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@synthetixio/queries/-/queries-3.0.5.tgz", + "integrity": "sha512-zCKwSD671+dI2Zysuxj/DEdEua7WeqgxZmUQppIbjtpjNi6ORFzdBb5ZTfZ/SiDy0D81jPY1VGcsA8siAXLl5w==", + "dependencies": { + "@ethersproject/abstract-signer": "^5.6.2", + "@ethersproject/address": "^5.6.1", + "@ethersproject/bignumber": "^5.6.2", + "@ethersproject/constants": "^5.6.1", + "@ethersproject/contracts": "^5.6.2", + "@ethersproject/providers": "^5.6.8", + "@ethersproject/strings": "^5.6.1", + "@ethersproject/transactions": "^5.6.2", + "@ethersproject/units": "^5.6.1", + "@snapshot-labs/snapshot.js": "^0.4.13", + "@synthetixio/codegen-graph-ts": "2.74.2", + "@synthetixio/contracts": "1.1.3", + "@synthetixio/contracts-interface": "2.76.1", + "@synthetixio/optimism-networks": "2.74.2", + "@synthetixio/wei": "2.74.2", "axios": "^0.21.4", "date-fns": "^2.19.0", - "ethers": "^5.5.3", "graphql": "^15.5.0", "graphql-request": "^3.4.0", "lodash": "^4.17.21" @@ -10760,20 +10589,24 @@ } }, "node_modules/@synthetixio/transaction-notifier": { - "version": "2.74.1", - "resolved": "https://registry.npmjs.org/@synthetixio/transaction-notifier/-/transaction-notifier-2.74.1.tgz", - "integrity": "sha512-vVcmV8S0sNQswE2Nzi5FTS1JAMRpBQ6FjMyrpAzs3XpAMqemTEZEetvLshQ1sasxZ8lMCZzGmkmf5FcOhZIBJQ==", + "version": "2.74.9", + "resolved": "https://registry.npmjs.org/@synthetixio/transaction-notifier/-/transaction-notifier-2.74.9.tgz", + "integrity": "sha512-bRn4kMxhOH12R/gpQKteihVRyPMGTpZecRrbvO1X2Q/1zumn1TzevtWnXOKelR+/50oXqE+MTgwIoBztWo/yDQ==", "dependencies": { - "ethers": "^5.5.3" + "@ethersproject/properties": "^5.6.0", + "@ethersproject/providers": "^5.6.8", + "@ethersproject/strings": "^5.6.1", + "@synthetixio/providers": "2.74.7" } }, "node_modules/@synthetixio/wei": { - "version": "2.74.1", - "resolved": "https://registry.npmjs.org/@synthetixio/wei/-/wei-2.74.1.tgz", - "integrity": "sha512-YhiEtumbO0o9cwQmoTaqfyDURUTp4s7ujcpESlHJ3fN0W4SLFkZPM3omv2A3vzTXDiIDJnOK7t6PXYuLfFS1sg==", + "version": "2.74.2", + "resolved": "https://registry.npmjs.org/@synthetixio/wei/-/wei-2.74.2.tgz", + "integrity": "sha512-2soQ4Wjm9M3GBMYNnYQHdOnTMfiKDYnXxZEwgj5dfdmYqYCd3Gc6fIMoogazcpDe/0dwkHp2RGuWqqdj0hZLrA==", "dependencies": { - "big.js": "^6.1.1", - "ethers": "^5.5.3" + "@ethersproject/bignumber": "^5.6.2", + "@ethersproject/bytes": "^5.6.1", + "big.js": "^6.1.1" } }, "node_modules/@szmarczak/http-timer": { @@ -11275,9 +11108,9 @@ } }, "node_modules/@truffle/abi-utils": { - "version": "0.2.16", - "resolved": "https://registry.npmjs.org/@truffle/abi-utils/-/abi-utils-0.2.16.tgz", - "integrity": "sha512-FCDANbJM5UJ0Mm61Z9MmQ3DVnMCCmMgOSFvGDORyYqHiXdS6uK0n77pN5tuUUCles8YIpgnCdijMWs8HoaRSMw==", + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/@truffle/abi-utils/-/abi-utils-0.2.17.tgz", + "integrity": "sha512-Lz8bDjEYInaesdpP3ENVnDkfSkEmrV2z9BNcIEQPQnqdB5x/H+rIrWGny7LV6rX3Kz3kAerF8eGBFh7Z/dEhZw==", "dev": true, "optional": true, "dependencies": { @@ -11287,21 +11120,21 @@ } }, "node_modules/@truffle/blockchain-utils": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@truffle/blockchain-utils/-/blockchain-utils-0.1.3.tgz", - "integrity": "sha512-K21Wf10u6VmS12/f9OrLN98f1RCqzrmuM2zlsly4b7BF/Xdh55Iq/jNSOnsNUJa+6Iaqqz6zeidquCYu9nTFng==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@truffle/blockchain-utils/-/blockchain-utils-0.1.4.tgz", + "integrity": "sha512-HegAo5A8UX9vE8dtceBRgCY207gOb9wj54c8mNOOWHcFpkyJz7kZYGo44As6Imh10/0hD2j7vHQ56Jf+uszJ3A==", "dev": true, "optional": true }, "node_modules/@truffle/codec": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.14.1.tgz", - "integrity": "sha512-ULvtciwbdUANe7VNsPCAIWSrxm0CFu145VVVxJ+yE1xHY9TiLKHOf+CBH2sMW3mVkbt5HwVUF5DGm+uXngK19A==", + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.14.2.tgz", + "integrity": "sha512-rFyj/TnIZ3N9n6cTcaEUbOXktGqZH/Mk48VjN/NT7f585zpCP82YmGTAxJwn61HuT2Zan8bksSElMivjUHKHeg==", "dev": true, "optional": true, "dependencies": { - "@truffle/abi-utils": "^0.2.16", - "@truffle/compile-common": "^0.7.33", + "@truffle/abi-utils": "^0.2.17", + "@truffle/compile-common": "^0.7.34", "big.js": "^6.0.3", "bn.js": "^5.1.3", "cbor": "^5.2.0", @@ -11348,29 +11181,29 @@ } }, "node_modules/@truffle/compile-common": { - "version": "0.7.33", - "resolved": "https://registry.npmjs.org/@truffle/compile-common/-/compile-common-0.7.33.tgz", - "integrity": "sha512-LvZhDheDGqb+TScSRSYAFZQBRFEn+2ic/gtJIJXB2Rm1U6cS5GLdvWrEdPPIAwP+xt0xZ4ySI4mw2wBL8MUSRg==", + "version": "0.7.34", + "resolved": "https://registry.npmjs.org/@truffle/compile-common/-/compile-common-0.7.34.tgz", + "integrity": "sha512-NA8HuTCw6pgTpCyMd7M70Ii8AVD921R95UnXB3dwVWwEyV1OksaAsTKfdLxeLnFR4ISkK6o2NqpFb/lM3+V+9w==", "dev": true, "optional": true, "dependencies": { - "@truffle/error": "^0.1.0", + "@truffle/error": "^0.1.1", "colors": "1.4.0" } }, "node_modules/@truffle/contract": { - "version": "4.5.21", - "resolved": "https://registry.npmjs.org/@truffle/contract/-/contract-4.5.21.tgz", - "integrity": "sha512-9yNfTrSlsZix3vNO+J5PMJDHglm82KjMaU3TwN7HgdNgFLd/IY/5OpUjTanTQq/5Rr9kmAWgzYilNkkqLkiYaw==", + "version": "4.5.22", + "resolved": "https://registry.npmjs.org/@truffle/contract/-/contract-4.5.22.tgz", + "integrity": "sha512-yqv+dlLQsPLHS0qMVVMmB1mVw5KhHFLV6K0y+amcoZGACvoX8Q+oITUpYY1hqI8aTd7uQFsDAaVPJouZuyCwwA==", "dev": true, "optional": true, "dependencies": { "@ensdomains/ensjs": "^2.1.0", - "@truffle/blockchain-utils": "^0.1.3", + "@truffle/blockchain-utils": "^0.1.4", "@truffle/contract-schema": "^3.4.9", - "@truffle/debug-utils": "^6.0.31", - "@truffle/error": "^0.1.0", - "@truffle/interface-adapter": "^0.5.20", + "@truffle/debug-utils": "^6.0.32", + "@truffle/error": "^0.1.1", + "@truffle/interface-adapter": "^0.5.21", "bignumber.js": "^7.2.1", "debug": "^4.3.1", "ethers": "^4.0.32", @@ -11979,13 +11812,13 @@ } }, "node_modules/@truffle/debug-utils": { - "version": "6.0.31", - "resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-6.0.31.tgz", - "integrity": "sha512-DSWebZgzAHGYQpeSvnJRt5K05aWNT/PxEvLIvII4/WT4wChQ3+ARVF8n1mBoX7Eqk/yQ534bXJ+rG8eFnzh4AQ==", + "version": "6.0.32", + "resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-6.0.32.tgz", + "integrity": "sha512-q/fDMQwY2qxIYuJs0oIIBxS26GNfFl0m5TVwkjoUlcg18O7LwnrnSezXcZw+id4k90kKqWtnjXD0/ZXX/gyXyw==", "dev": true, "optional": true, "dependencies": { - "@truffle/codec": "^0.14.1", + "@truffle/codec": "^0.14.2", "@trufflesuite/chromafi": "^3.0.0", "bn.js": "^5.1.3", "chalk": "^2.4.2", @@ -11994,16 +11827,16 @@ } }, "node_modules/@truffle/error": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.1.0.tgz", - "integrity": "sha512-RbUfp5VreNhsa2Q4YbBjz18rOQI909pG32bghl1hulO7IpvcqTS+C3Ge5cNbiWQ1WGzy1wIeKLW0tmQtHFB7qg==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.1.1.tgz", + "integrity": "sha512-sE7c9IHIGdbK4YayH4BC8i8qMjoAOeg6nUXUDZZp8wlU21/EMpaG+CLx+KqcIPyR+GSWIW3Dm0PXkr2nlggFDA==", "dev": true, "optional": true }, "node_modules/@truffle/interface-adapter": { - "version": "0.5.20", - "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.20.tgz", - "integrity": "sha512-GL0pNZ8vshlU4SokKD0L7Pb/Vrxcb5ZALGhH9+uKvm6bXnY6XjnxvEYZ1KgK/p+uoYCLY53g9Sgn/CXvcWmGLg==", + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.21.tgz", + "integrity": "sha512-2ltbu3upsWS0TAQu1kLQc048XlXNmDkCzH6iebX4dg3VBB+l7oG/pu5+/kl8t+LRfzGoEMLKwOQt7vk0Vm3PNA==", "dev": true, "optional": true, "dependencies": { @@ -13394,9 +13227,9 @@ } }, "node_modules/@types/uglify-js": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.16.0.tgz", - "integrity": "sha512-0yeUr92L3r0GLRnBOvtYK1v2SjqMIqQDHMl7GLb+l2L8+6LSFWEEWEIgVsPdMn5ImLM8qzWT8xFPtQYpp8co0g==", + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.0.tgz", + "integrity": "sha512-3HO6rm0y+/cqvOyA8xcYLweF0TKXlAxmQASjbOi49Co51A1N4nR4bEwBgRoD9kNM+rqFGArjKr654SLp2CoGmQ==", "dev": true, "dependencies": { "source-map": "^0.6.1" @@ -14364,6 +14197,7 @@ "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -14595,7 +14429,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "engines": { "node": ">=8" } @@ -14802,7 +14635,8 @@ "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true }, "node_modules/array-includes": { "version": "3.1.5", @@ -15012,7 +14846,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, "engines": { "node": ">=8" } @@ -15050,11 +14883,6 @@ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" }, - "node_modules/async-lock": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.3.2.tgz", - "integrity": "sha512-phnXdS3RP7PPcmP6NWWzWMU0sLTeyvtZCxBPpZdkYE3seGLKSQZs9FrmVO/qwypq98FUtWWUEYxziLkdGk5nnA==" - }, "node_modules/async-mutex": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.2.6.tgz", @@ -18149,6 +17977,7 @@ "version": "1.20.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "dev": true, "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.4", @@ -18172,6 +18001,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, "engines": { "node": ">= 0.8" } @@ -18180,6 +18010,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { "ms": "2.0.0" } @@ -18187,12 +18018,14 @@ "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true }, "node_modules/body-parser/node_modules/qs": { "version": "6.10.3", "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dev": true, "dependencies": { "side-channel": "^1.0.4" }, @@ -19135,9 +18968,9 @@ "integrity": "sha512-W2lPwkBkMZwFlPCXhIlYgxu+7gC/NUlCtdK652DAJ1JdgV0sTrvuPFshNPrFa1TY2JOkLhgdeEBplB4ezEa+xg==" }, "node_modules/caniuse-lite": { - "version": "1.0.30001377", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001377.tgz", - "integrity": "sha512-I5XeHI1x/mRSGl96LFOaSk528LA/yZG3m3iQgImGujjO8gotd/DL8QaI1R1h1dg5ATeI2jqPblMpKq4Tr5iKfQ==", + "version": "1.0.30001381", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001381.tgz", + "integrity": "sha512-fEnkDOKpvp6qc+olg7+NzE1SqyfiyKf4uci7fAU38M3zxs0YOyKOxW/nMZ2l9sJbt7KZHcDIxUnbI0Iime7V4w==", "funding": [ { "type": "opencollective", @@ -19193,8 +19026,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", - "dev": true, - "optional": true, "dependencies": { "bignumber.js": "^9.0.1", "nofilter": "^1.0.4" @@ -19212,8 +19043,6 @@ "version": "9.1.0", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.0.tgz", "integrity": "sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A==", - "dev": true, - "optional": true, "engines": { "node": "*" } @@ -19245,17 +19074,6 @@ "node": ">=4" } }, - "node_modules/chai-as-promised": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", - "dependencies": { - "check-error": "^1.0.2" - }, - "peerDependencies": { - "chai": ">= 2.1.2 < 5" - } - }, "node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -20659,6 +20477,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true, "engines": { "node": ">= 0.6" } @@ -20680,6 +20499,7 @@ "version": "0.5.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, "engines": { "node": ">= 0.6" } @@ -20687,7 +20507,8 @@ "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true }, "node_modules/cookiejar": { "version": "2.1.3", @@ -21667,9 +21488,9 @@ "dev": true }, "node_modules/cypress/node_modules/@types/node": { - "version": "14.18.24", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.24.tgz", - "integrity": "sha512-aJdn8XErcSrfr7k8ZDDfU6/2OgjZcB2Fu9d+ESK8D7Oa5mtsv8Fa8GpcwTA0v60kuZBaalKPzuzun4Ov1YWO/w==", + "version": "14.18.25", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.25.tgz", + "integrity": "sha512-9pLfceRSrKIsv/MISN6RoFWTIzka36Uk2Uuf5a8cHyDYhEgl5Hm5dXoe621KULeBjt+cFsY18mILsWWtJeG80w==", "dev": true }, "node_modules/cypress/node_modules/ansi-styles": { @@ -22565,6 +22386,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, "engines": { "node": ">= 0.8" } @@ -22597,6 +22419,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -23119,7 +22942,8 @@ "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true }, "node_modules/eip55": { "version": "2.1.0", @@ -23145,9 +22969,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.221", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.221.tgz", - "integrity": "sha512-aWg2mYhpxZ6Q6Xvyk7B2ziBca4YqrCDlXzmcD7wuRs65pVEVkMT1u2ifdjpAQais2O2o0rW964ZWWWYRlAL/kw==" + "version": "1.4.225", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.225.tgz", + "integrity": "sha512-ICHvGaCIQR3P88uK8aRtx8gmejbVJyC6bB4LEC3anzBrIzdzC7aiZHY4iFfXhN4st6I7lMO0x4sgBHf/7kBvRw==" }, "node_modules/elliptic": { "version": "6.5.4", @@ -23204,6 +23028,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, "engines": { "node": ">= 0.8" } @@ -23487,7 +23312,8 @@ "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true }, "node_modules/escape-string-regexp": { "version": "1.0.5", @@ -24614,6 +24440,7 @@ "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, "engines": { "node": ">= 0.6" } @@ -25472,9 +25299,9 @@ } }, "node_modules/ethers": { - "version": "5.6.9", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.6.9.tgz", - "integrity": "sha512-lMGC2zv9HC5EC+8r429WaWu3uWJUCgUCt8xxKCFqkrFuBDZXDYIdzDUECxzjf2BMF8IVBByY1EBoGSL3RTm8RA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.0.tgz", + "integrity": "sha512-5Xhzp2ZQRi0Em+0OkOcRHxPzCfoBfgtOQA+RUylSkuHbhTEaQklnYi2hsWbRgs3ztJsXVXd9VKBcO1ScWL8YfA==", "funding": [ { "type": "individual", @@ -25486,36 +25313,36 @@ } ], "dependencies": { - "@ethersproject/abi": "5.6.4", - "@ethersproject/abstract-provider": "5.6.1", - "@ethersproject/abstract-signer": "5.6.2", - "@ethersproject/address": "5.6.1", - "@ethersproject/base64": "5.6.1", - "@ethersproject/basex": "5.6.1", - "@ethersproject/bignumber": "5.6.2", - "@ethersproject/bytes": "5.6.1", - "@ethersproject/constants": "5.6.1", - "@ethersproject/contracts": "5.6.2", - "@ethersproject/hash": "5.6.1", - "@ethersproject/hdnode": "5.6.2", - "@ethersproject/json-wallets": "5.6.1", - "@ethersproject/keccak256": "5.6.1", - "@ethersproject/logger": "5.6.0", - "@ethersproject/networks": "5.6.4", - "@ethersproject/pbkdf2": "5.6.1", - "@ethersproject/properties": "5.6.0", - "@ethersproject/providers": "5.6.8", - "@ethersproject/random": "5.6.1", - "@ethersproject/rlp": "5.6.1", - "@ethersproject/sha2": "5.6.1", - "@ethersproject/signing-key": "5.6.2", - "@ethersproject/solidity": "5.6.1", - "@ethersproject/strings": "5.6.1", - "@ethersproject/transactions": "5.6.2", - "@ethersproject/units": "5.6.1", - "@ethersproject/wallet": "5.6.2", - "@ethersproject/web": "5.6.1", - "@ethersproject/wordlists": "5.6.1" + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.0", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.0", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.0", + "@ethersproject/wordlists": "5.7.0" } }, "node_modules/ethers-eip712": { @@ -25526,58 +25353,6 @@ "ethers": "^4.0.47 || ^5.0.8" } }, - "node_modules/ethers-v4": { - "name": "ethers", - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "dependencies": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "node_modules/ethers-v4/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/ethers-v4/node_modules/hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/ethers-v4/node_modules/js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==" - }, - "node_modules/ethers-v4/node_modules/scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" - }, - "node_modules/ethers-v4/node_modules/setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==" - }, - "node_modules/ethers-v4/node_modules/uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details." - }, "node_modules/etherscan-api": { "version": "10.0.5", "resolved": "https://registry.npmjs.org/etherscan-api/-/etherscan-api-10.0.5.tgz", @@ -26159,6 +25934,7 @@ "version": "4.18.1", "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", + "dev": true, "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", @@ -26200,6 +25976,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { "ms": "2.0.0" } @@ -26207,12 +25984,14 @@ "node_modules/express/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true }, "node_modules/express/node_modules/qs": { "version": "6.10.3", "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dev": true, "dependencies": { "side-channel": "^1.0.4" }, @@ -26710,6 +26489,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -26727,6 +26507,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { "ms": "2.0.0" } @@ -26734,7 +26515,8 @@ "node_modules/finalhandler/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true }, "node_modules/find-cache-dir": { "version": "2.1.0", @@ -27086,9 +26868,9 @@ } }, "node_modules/flatted": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", - "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, "node_modules/flush-write-stream": { @@ -27385,6 +27167,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, "engines": { "node": ">= 0.6" } @@ -27404,6 +27187,7 @@ "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, "engines": { "node": ">= 0.6" } @@ -28821,6 +28605,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -30008,6 +29793,7 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, "engines": { "node": ">= 0.10" } @@ -34685,14 +34471,6 @@ "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==" }, - "node_modules/level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "engines": { - "node": ">=6" - } - }, "node_modules/level-errors": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", @@ -34733,17 +34511,6 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" }, - "node_modules/level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dependencies": { - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/level-ws": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", @@ -35503,8 +35270,7 @@ "node_modules/lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==" }, "node_modules/lodash.uniq": { "version": "4.5.0", @@ -36211,6 +35977,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, "engines": { "node": ">= 0.6" } @@ -36474,7 +36241,8 @@ "node_modules/merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true }, "node_modules/merge-stream": { "version": "2.0.0", @@ -37168,6 +36936,7 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, "engines": { "node": ">= 0.6" } @@ -37644,8 +37413,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz", "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==", - "dev": true, - "optional": true, "engines": { "node": ">=8" } @@ -38348,6 +38115,7 @@ "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, "dependencies": { "ee-first": "1.1.1" }, @@ -38891,6 +38659,7 @@ "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, "engines": { "node": ">= 0.8" } @@ -39000,7 +38769,8 @@ "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true }, "node_modules/path-type": { "version": "4.0.0", @@ -39713,6 +39483,7 @@ "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" @@ -40282,6 +40053,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, "engines": { "node": ">= 0.6" } @@ -40290,6 +40062,7 @@ "version": "2.5.1", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -40304,6 +40077,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, "engines": { "node": ">= 0.8" } @@ -42507,6 +42281,7 @@ "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -42530,6 +42305,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { "ms": "2.0.0" } @@ -42537,12 +42313,14 @@ "node_modules/send/node_modules/debug/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true }, "node_modules/send/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true }, "node_modules/sentence-case": { "version": "2.1.1", @@ -42706,6 +42484,7 @@ "version": "1.15.0", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -42861,7 +42640,8 @@ "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true }, "node_modules/sha.js": { "version": "2.4.11", @@ -44093,6 +43873,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, "engines": { "node": ">= 0.8" } @@ -44250,7 +44031,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -44263,14 +44043,12 @@ "node_modules/string-width/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/string-width/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "engines": { "node": ">=8" } @@ -44375,7 +44153,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -44940,10 +44717,11 @@ } }, "node_modules/synthetix": { - "version": "2.74.1", - "resolved": "https://registry.npmjs.org/synthetix/-/synthetix-2.74.1.tgz", - "integrity": "sha512-ArZUnbMvbH96TN7M63s2lAiRZrqPYYUo3yHUJBSlzYK0Blx6AJEKgLH6RpmRTCwA48R/V5+3TmdAlWsAra6qPg==", + "version": "2.76.1", + "resolved": "https://registry.npmjs.org/synthetix/-/synthetix-2.76.1.tgz", + "integrity": "sha512-/BJeGjRM+JOcXN40A98xQ3aOm/hYzvDWvelYzMn4nX3itu8DWjnbK/Xu1I63nUY/jCCfoVCT9BNz5fW+Fy8e/w==", "dependencies": { + "@nomiclabs/hardhat-etherscan": "^3.1.0", "abi-decoder": "^2.3.0", "commander": "^8.1.0", "inquirer": "^6.5.2", @@ -45329,7 +45107,6 @@ "version": "6.8.0", "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", - "dev": true, "dependencies": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", @@ -45378,7 +45155,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -45393,7 +45169,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -45404,14 +45179,12 @@ "node_modules/table/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/table/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "engines": { "node": ">=8" } @@ -45420,7 +45193,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -45443,9 +45215,9 @@ } }, "node_modules/tape": { - "version": "4.15.1", - "resolved": "https://registry.npmjs.org/tape/-/tape-4.15.1.tgz", - "integrity": "sha512-k7F5pyr91n9D/yjSJwbLLYDCrTWXxMSXbbmHX2n334lSIc2rxeXyFkaBv4UuUd2gBYMrAOalPutAiCxC6q1qbw==", + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/tape/-/tape-4.16.0.tgz", + "integrity": "sha512-mBlqYFr2mHysgCFXAuSarIQ+ffhielpb7a5/IbeOhMaLnQYhkJLUm6CwO1RszWeHRxnIpMessZ3xL2Cfo94BWw==", "dev": true, "dependencies": { "call-bind": "~1.0.2", @@ -45453,15 +45225,15 @@ "defined": "~1.0.0", "dotignore": "~0.1.2", "for-each": "~0.3.3", - "glob": "~7.2.0", + "glob": "~7.2.3", "has": "~1.0.3", "inherits": "~2.0.4", "is-regex": "~1.1.4", "minimist": "~1.2.6", - "object-inspect": "~1.12.0", - "resolve": "~1.22.0", + "object-inspect": "~1.12.2", + "resolve": "~1.22.1", "resumer": "~0.0.0", - "string.prototype.trim": "~1.2.5", + "string.prototype.trim": "~1.2.6", "through": "~2.3.8" }, "bin": { @@ -46162,6 +45934,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, "engines": { "node": ">=0.6" } @@ -46385,14 +46158,6 @@ "typescript": ">=3.7.0" } }, - "node_modules/ts-md5": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/ts-md5/-/ts-md5-1.3.1.tgz", - "integrity": "sha512-DiwiXfwvcTeZ5wCE0z+2A9EseZsztaiZtGrtSaY5JOD7ekPnR/GoIVD5gXZAlK9Na9Kvpo9Waz5rW64WKAWApg==", - "engines": { - "node": ">=12" - } - }, "node_modules/ts-pnp": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", @@ -46539,6 +46304,7 @@ "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -46665,9 +46431,9 @@ "integrity": "sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg==" }, "node_modules/uglify-js": { - "version": "3.16.3", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.3.tgz", - "integrity": "sha512-uVbFqx9vvLhQg0iBaau9Z75AxWJ8tqM9AV890dIZCLApF4rTcyHwmAvLeEdYRs+BzYWu8Iw81F79ah0EfTXbaw==", + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.0.tgz", + "integrity": "sha512-aTeNPVmgIMPpm1cxXr2Q/nEbvkmV8yq66F3om7X3P/cvOXQ0TMQ64Wk63iyT1gPlmdmGzjGpyLh1f3y8MZWXGg==", "dev": true, "optional": true, "bin": { @@ -46735,6 +46501,14 @@ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==" }, + "node_modules/undici": { + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.9.1.tgz", + "integrity": "sha512-6fB3a+SNnWEm4CJbgo0/CWR8RGcOCQP68SF4X0mxtYTq2VNN8T88NYrWVBAeSX+zb7bny2dx2iYhP3XHi00omg==", + "engines": { + "node": ">=12.18" + } + }, "node_modules/unfetch": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz", @@ -46992,6 +46766,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, "engines": { "node": ">= 0.8" } @@ -47365,6 +47140,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, "engines": { "node": ">= 0.4.0" } @@ -47630,9 +47406,9 @@ } }, "node_modules/walletlink/node_modules/preact": { - "version": "10.10.3", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.10.3.tgz", - "integrity": "sha512-Gwwh0o531izatQQZu0yEX4mtfxVYsZJ4TT/o2VK3UZ/UuAWAWFnzsEfpZvad32vY3TKoRnSY2WqiDz2rH/viWQ==", + "version": "10.10.6", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.10.6.tgz", + "integrity": "sha512-w0mCL5vICUAZrh1DuHEdOWBjxdO62lvcO++jbzr8UhhYcTbFkpegLH9XX+7MadjTl/y0feoqwQ/zAnzkc/EGog==", "funding": { "type": "opencollective", "url": "https://opencollective.com/preact" @@ -48308,9 +48084,9 @@ "dev": true }, "node_modules/web3-bzz/node_modules/keyv": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.3.3.tgz", - "integrity": "sha512-AcysI17RvakTh8ir03+a3zJr5r0ovnAH/XTXei/4HIv3bL2K/jzvgivLK9UuI/JbU1aJjM3NSAnVvVVd3n+4DQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.4.1.tgz", + "integrity": "sha512-PzByhNxfBLnSBW2MZi1DF+W5+qB/7BMpOokewqIvqS8GFtP7xHm2oeGU72Y1fhtfOv/FiEnI4+nyViYDmUChnw==", "dev": true, "dependencies": { "compress-brotli": "^1.3.8", @@ -51839,24 +51615,24 @@ } }, "@cosmjs/amino": { - "version": "0.28.11", - "resolved": "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.28.11.tgz", - "integrity": "sha512-WJkQQq8gbk5doJJ/3Gcax26I+VC4HdbbSlNdyT5hc6T+U2Jmyry9RLSE+wEZyFMgEabhr43SbIxf64gWZeR8YA==", + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.28.13.tgz", + "integrity": "sha512-IHnH2zGwaY69qT4mVAavr/pfzx6YE+ud1NHJbvVePlbGiz68CXTi5LHR+K0lrKB5mQ7E+ZErWz2mw5U/x+V1wQ==", "requires": { - "@cosmjs/crypto": "0.28.11", - "@cosmjs/encoding": "0.28.11", - "@cosmjs/math": "0.28.11", - "@cosmjs/utils": "0.28.11" + "@cosmjs/crypto": "0.28.13", + "@cosmjs/encoding": "0.28.13", + "@cosmjs/math": "0.28.13", + "@cosmjs/utils": "0.28.13" } }, "@cosmjs/crypto": { - "version": "0.28.11", - "resolved": "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.28.11.tgz", - "integrity": "sha512-oJXOeBX4FP8bp0ZVydJFcRplErHp8cC6vNoULRck+7hcLuvp9tyv3SBOkBkwxTv81VcQyGCgn7WE0NYEKrpUbw==", + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.28.13.tgz", + "integrity": "sha512-ynKfM0q/tMBQMHJby6ad8lR3gkgBKaelQhIsCZTjClsnuC7oYT9y3ThSZCUWr7Pa9h0J8ahU2YV2oFWFVWJQzQ==", "requires": { - "@cosmjs/encoding": "0.28.11", - "@cosmjs/math": "0.28.11", - "@cosmjs/utils": "0.28.11", + "@cosmjs/encoding": "0.28.13", + "@cosmjs/math": "0.28.13", + "@cosmjs/utils": "0.28.13", "@noble/hashes": "^1", "bn.js": "^5.2.0", "elliptic": "^6.5.3", @@ -51864,9 +51640,9 @@ } }, "@cosmjs/encoding": { - "version": "0.28.11", - "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.28.11.tgz", - "integrity": "sha512-J7pvlzAt8hBZn316wGRmUlK3xwMgNXUvj4v56DK4fA0fv6VfGwMvVtHCXaqNQtzOGkC6EQcshzA/fL5MBIwu6A==", + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.28.13.tgz", + "integrity": "sha512-jtXbAYtV77rLHxoIrjGFsvgGjeTKttuHRv6cvuy3toCZzY7JzTclKH5O2g36IIE4lXwD9xwuhGJ2aa6A3dhNkA==", "requires": { "base64-js": "^1.3.0", "bech32": "^1.1.4", @@ -51874,60 +51650,60 @@ } }, "@cosmjs/json-rpc": { - "version": "0.28.11", - "resolved": "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.28.11.tgz", - "integrity": "sha512-YNZTozu5yWHyGGet5Wfc0CcxQezkMr37YaeU9elCaa11ClHlYAQ2NrPpPBOmgnJKsMhzfiKcAE9Sf6f4a0hCxA==", + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.28.13.tgz", + "integrity": "sha512-fInSvg7x9P6p+GWqet+TMhrMTM3OWWdLJOGS5w2ryubMjgpR1rLiAx77MdTNkArW+/6sUwku0sN4veM4ENQu6A==", "requires": { - "@cosmjs/stream": "0.28.11", + "@cosmjs/stream": "0.28.13", "xstream": "^11.14.0" } }, "@cosmjs/math": { - "version": "0.28.11", - "resolved": "https://registry.npmjs.org/@cosmjs/math/-/math-0.28.11.tgz", - "integrity": "sha512-MyhPnC4sYu86c2/0PpEeynaPl4nvAmLZH3acPh96SzcjERONbGZjjKtBFPq1avBrev2CCSPrZ4O8u9xpQ4aSvg==", + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/math/-/math-0.28.13.tgz", + "integrity": "sha512-PDpL8W/kbyeWi0mQ2OruyqE8ZUAdxPs1xCbDX3WXJwy2oU+X2UTbkuweJHVpS9CIqmZulBoWQAmlf6t6zr1N/g==", "requires": { "bn.js": "^5.2.0" } }, "@cosmjs/proto-signing": { - "version": "0.28.11", - "resolved": "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.28.11.tgz", - "integrity": "sha512-ym0DpLff+0RBkD/mtFf6wrzyuGhcbcjuDMEdcUWOrJTo6n8DXeRmHkJkyy/mrG3QC4tQX/A81+DhfkANQmgcxw==", - "requires": { - "@cosmjs/amino": "0.28.11", - "@cosmjs/crypto": "0.28.11", - "@cosmjs/encoding": "0.28.11", - "@cosmjs/math": "0.28.11", - "@cosmjs/utils": "0.28.11", + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.28.13.tgz", + "integrity": "sha512-nSl/2ZLsUJYz3Ad0RY3ihZUgRHIow2OnYqKsESMu+3RA/jTi9bDYhiBu8mNMHI0xrEJry918B2CyI56pOUHdPQ==", + "requires": { + "@cosmjs/amino": "0.28.13", + "@cosmjs/crypto": "0.28.13", + "@cosmjs/encoding": "0.28.13", + "@cosmjs/math": "0.28.13", + "@cosmjs/utils": "0.28.13", "cosmjs-types": "^0.4.0", "long": "^4.0.0" } }, "@cosmjs/socket": { - "version": "0.28.11", - "resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.28.11.tgz", - "integrity": "sha512-4BhsWN984SLBhwPCD89riQ3SEJzJ1RLJPeP6apIGjhh6pguQZmwa2U/TZjnEUOGnJkUG2FZUH99jRGSTYaIvZg==", + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.28.13.tgz", + "integrity": "sha512-lavwGxQ5VdeltyhpFtwCRVfxeWjH5D5mmN7jgx9nuCf3XSFbTcOYxrk2pQ4usenu1Q1KZdL4Yl5RCNrJuHD9Ug==", "requires": { - "@cosmjs/stream": "0.28.11", + "@cosmjs/stream": "0.28.13", "isomorphic-ws": "^4.0.1", "ws": "^7", "xstream": "^11.14.0" } }, "@cosmjs/stargate": { - "version": "0.28.11", - "resolved": "https://registry.npmjs.org/@cosmjs/stargate/-/stargate-0.28.11.tgz", - "integrity": "sha512-UyFH/mTNNKTZohVhj+SmjCRv/xopqU/UinGedmWzs4MqEZteX9xs6D3HTmRCgpmBQ03lpbTslE/FhhT9Hkl9KQ==", + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/stargate/-/stargate-0.28.13.tgz", + "integrity": "sha512-dVBMazDz8/eActHsRcZjDHHptOBMqvibj5CFgEtZBp22gP6ASzoAUXTlkSVk5FBf4sfuUHoff6st134/+PGMAg==", "requires": { "@confio/ics23": "^0.6.8", - "@cosmjs/amino": "0.28.11", - "@cosmjs/encoding": "0.28.11", - "@cosmjs/math": "0.28.11", - "@cosmjs/proto-signing": "0.28.11", - "@cosmjs/stream": "0.28.11", - "@cosmjs/tendermint-rpc": "0.28.11", - "@cosmjs/utils": "0.28.11", + "@cosmjs/amino": "0.28.13", + "@cosmjs/encoding": "0.28.13", + "@cosmjs/math": "0.28.13", + "@cosmjs/proto-signing": "0.28.13", + "@cosmjs/stream": "0.28.13", + "@cosmjs/tendermint-rpc": "0.28.13", + "@cosmjs/utils": "0.28.13", "cosmjs-types": "^0.4.0", "long": "^4.0.0", "protobufjs": "~6.11.3", @@ -51935,25 +51711,25 @@ } }, "@cosmjs/stream": { - "version": "0.28.11", - "resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.28.11.tgz", - "integrity": "sha512-3b6P4Il8mYzvY2bvEQyzgP+cm0HIGSpHNtuGjiWsQF3Wtp450iVRfEJqdt4+91vvxzfdjQEkQOLMaymnswX3sw==", + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.28.13.tgz", + "integrity": "sha512-AnjtfwT8NwPPkd3lhZhjOlOzT0Kn9bgEu2IPOZjQ1nmG2bplsr6TJmnwn0dJxHT7UGtex17h6whKB5N4wU37Wg==", "requires": { "xstream": "^11.14.0" } }, "@cosmjs/tendermint-rpc": { - "version": "0.28.11", - "resolved": "https://registry.npmjs.org/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.28.11.tgz", - "integrity": "sha512-TUhWsUYxbKftQmHQK5TBH62vNaKB1ybxoFZ2uJtGMVvY3jcBux7P0Ll/u5nwrM0ETAeo2RjucehJUpGBy9q+HQ==", - "requires": { - "@cosmjs/crypto": "0.28.11", - "@cosmjs/encoding": "0.28.11", - "@cosmjs/json-rpc": "0.28.11", - "@cosmjs/math": "0.28.11", - "@cosmjs/socket": "0.28.11", - "@cosmjs/stream": "0.28.11", - "@cosmjs/utils": "0.28.11", + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.28.13.tgz", + "integrity": "sha512-GB+ZmfuJIGQm0hsRtLYjeR3lOxF7Z6XyCBR0cX5AAYOZzSEBJjevPgUHD6tLn8zIhvzxaW3/VKnMB+WmlxdH4w==", + "requires": { + "@cosmjs/crypto": "0.28.13", + "@cosmjs/encoding": "0.28.13", + "@cosmjs/json-rpc": "0.28.13", + "@cosmjs/math": "0.28.13", + "@cosmjs/socket": "0.28.13", + "@cosmjs/stream": "0.28.13", + "@cosmjs/utils": "0.28.13", "axios": "^0.21.2", "readonly-date": "^1.0.0", "xstream": "^11.14.0" @@ -51970,9 +51746,9 @@ } }, "@cosmjs/utils": { - "version": "0.28.11", - "resolved": "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.28.11.tgz", - "integrity": "sha512-FXVEr7Pg6MX9VbY5NemuKbtFVabSlUlArWIV+R74FQg5LIuSa+0QkxSpNldCuOLBEU4/GlrzybT4uEl338vSzg==" + "version": "0.28.13", + "resolved": "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.28.13.tgz", + "integrity": "sha512-dVeMBiyg+46x7XBZEfJK8yTihphbCFpjVYmLJVqmTsHfJwymQ65cpyW/C+V/LgWARGK8hWQ/aX9HM5Ao8QmMSg==" }, "@cvbb/bc-bech32": { "version": "1.1.15", @@ -52259,9 +52035,9 @@ } }, "@emotion/babel-plugin": { - "version": "11.10.0", - "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.10.0.tgz", - "integrity": "sha512-xVnpDAAbtxL1dsuSelU5A7BnY/lftws0wUexNJZTPsvX/1tM4GZJbclgODhvW4E+NH7E5VFcH0bBn30NvniPJA==", + "version": "11.10.2", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.10.2.tgz", + "integrity": "sha512-xNQ57njWTFVfPAc3cjfuaPdsgLp5QOSuRsj9MA6ndEhH/AzuZM86qIQzt6rq+aGBwj3n5/TkLmU5lhAfdRmogA==", "requires": { "@babel/helper-module-imports": "^7.16.7", "@babel/plugin-syntax-jsx": "^7.17.12", @@ -52295,9 +52071,9 @@ } }, "@emotion/cache": { - "version": "11.10.1", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.1.tgz", - "integrity": "sha512-uZTj3Yz5D69GE25iFZcIQtibnVCFsc/6+XIozyL3ycgWvEdif2uEw9wlUt6umjLr4Keg9K6xRPHmD8LGi+6p1A==", + "version": "11.10.2", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.2.tgz", + "integrity": "sha512-GPR4PovENRvYDbCEnDRecPZYJzWdNMsM+Jn+13MC5uImVNbMyKwzv95DUHy5PDcgfPtKoDtfLU6emF1grrbQDg==", "requires": { "@emotion/memoize": "^0.8.0", "@emotion/sheet": "^1.2.0", @@ -52529,176 +52305,11 @@ "ethers": "^5.6.8" } }, - "@eth-optimism/provider": { - "version": "0.0.1-alpha.14", - "resolved": "https://registry.npmjs.org/@eth-optimism/provider/-/provider-0.0.1-alpha.14.tgz", - "integrity": "sha512-fEOSHxWt5nII345c4cQtUUZ7Pb/G3GzqvmJOddx27oUVr3zdjeScOO/VXoIf9B8wXxIqUz93i1MDHks8V95CRg==", - "requires": { - "@eth-optimism/core-utils": "0.0.1-alpha.30", - "bn.js": "^5.1.3", - "ethers": "^5.0.24" - }, - "dependencies": { - "@eth-optimism/core-utils": { - "version": "0.0.1-alpha.30", - "resolved": "https://registry.npmjs.org/@eth-optimism/core-utils/-/core-utils-0.0.1-alpha.30.tgz", - "integrity": "sha512-ir8OevZSRu3U7npO+oY9VXADtXIKGHbw/V9CGPMNgXyuoifnuBLuL0OouL0OUhPRAbPHauYwjJX1xr29nJe1Tw==", - "requires": { - "abstract-leveldown": "^6.2.2", - "async-lock": "^1.2.2", - "axios": "^0.19.0", - "bn.js": "^4.11.8", - "body-parser": "^1.19.0", - "chai": "^4.2.0", - "chai-as-promised": "^7.1.1", - "debug": "^4.1.1", - "dotenv": "^8.2.0", - "ethereumjs-util": "^6.2.0", - "ethers-v4": "npm:ethers@4", - "express": "^4.17.1", - "memdown": "^4.0.0", - "ts-md5": "^1.2.4", - "uuid": "^3.3.3" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "requires": { - "@types/node": "*" - } - }, - "abstract-leveldown": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz", - "integrity": "sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ==", - "requires": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - } - }, - "axios": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", - "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", - "requires": { - "follow-redirects": "1.5.10" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "dotenv": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", - "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==" - }, - "ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "requires": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "follow-redirects": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", - "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", - "requires": { - "debug": "=3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - } - } - }, - "immediate": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz", - "integrity": "sha512-RrGCXRm/fRVqMIhqXrGEX9rRADavPiDFSoMb/k64i9XMk8uH4r/Omi5Ctierj6XzNecwDbO4WuFbDD1zmpl3Tg==" - }, - "memdown": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-4.1.0.tgz", - "integrity": "sha512-RqDUWsJ3IH27+dHwBOg6/ZWJoGul+tesnaQ10Pr/ARx7GpskB01Ky0zNZ8EkM6lvQqXcxyzukmXA0T39XW2sRw==", - "requires": { - "abstract-leveldown": "~6.0.1", - "functional-red-black-tree": "~1.0.1", - "immediate": "~3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" - }, - "dependencies": { - "abstract-leveldown": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.0.3.tgz", - "integrity": "sha512-jzewKKpZbaYUa6HTThnrl+GrJhzjEAeuc7hTVpZdzg7kupXZFoqQDFwyOwLNbmJKJlmzw8yiipMPkDiuKkT06Q==", - "requires": { - "level-concat-iterator": "~2.0.0", - "xtend": "~4.0.0" - } - } - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - } - } - }, "@eth-optimism/watcher": { - "version": "0.0.1-alpha.9", - "resolved": "https://registry.npmjs.org/@eth-optimism/watcher/-/watcher-0.0.1-alpha.9.tgz", - "integrity": "sha512-FSMinaayA/nTQzSPv21tOUqok8gMfEB1UcIdLJkImt9NUzT4QjhGbrsPH6Q2hBlQkAApgTECMShUYZVMpZ7oOw==", + "version": "0.0.1-alpha.8", + "resolved": "https://registry.npmjs.org/@eth-optimism/watcher/-/watcher-0.0.1-alpha.8.tgz", + "integrity": "sha512-UICItZmRtQ4U2Ae8D56to0MZskFVdKOej3srcDg7PgAi/HqDetoyt5eutBPVgABiiIMTWvkoh6EsbgRJRPjWNg==", + "dev": true, "requires": { "ethers": "5.0.0" }, @@ -52707,6 +52318,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.0.0.tgz", "integrity": "sha512-uOSACd2E8dg8XuiOewpL42uFH7SvrkA5k0oGkHoqSJl2lflrMPV+7ciWzyuPBjyHnOFvAPPJUpsXrwpFKaLFww==", + "dev": true, "requires": { "@ethersproject/abi": "^5.0.0", "@ethersproject/abstract-provider": "^5.0.0", @@ -52760,373 +52372,374 @@ } }, "@ethersproject/abi": { - "version": "5.6.4", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.6.4.tgz", - "integrity": "sha512-TTeZUlCeIHG6527/2goZA6gW5F8Emoc7MrZDC7hhP84aRGvW3TEdTnZR08Ls88YXM1m2SuK42Osw/jSi3uO8gg==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", "requires": { - "@ethersproject/address": "^5.6.1", - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/constants": "^5.6.1", - "@ethersproject/hash": "^5.6.1", - "@ethersproject/keccak256": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.1" + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, "@ethersproject/abstract-provider": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.6.1.tgz", - "integrity": "sha512-BxlIgogYJtp1FS8Muvj8YfdClk3unZH0vRMVX791Z9INBNT/kuACZ9GzaY1Y4yFq+YSy6/w4gzj3HCRKrK9hsQ==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", "requires": { - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.3", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.2", - "@ethersproject/web": "^5.6.1" + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" } }, "@ethersproject/abstract-signer": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.6.2.tgz", - "integrity": "sha512-n1r6lttFBG0t2vNiI3HoWaS/KdOt8xyDjzlP2cuevlWLG6EX0OwcKLyG/Kp/cuwNxdy/ous+R/DEMdTUwWQIjQ==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", "requires": { - "@ethersproject/abstract-provider": "^5.6.1", - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0" + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" } }, "@ethersproject/address": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.1.tgz", - "integrity": "sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", "requires": { - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/keccak256": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.1" + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" } }, "@ethersproject/base64": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.6.1.tgz", - "integrity": "sha512-qB76rjop6a0RIYYMiB4Eh/8n+Hxu2NIZm8S/Q7kNo5pmZfXhHGHmS4MinUainiBC54SCyRnwzL+KZjj8zbsSsw==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", "requires": { - "@ethersproject/bytes": "^5.6.1" + "@ethersproject/bytes": "^5.7.0" } }, "@ethersproject/basex": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.6.1.tgz", - "integrity": "sha512-a52MkVz4vuBXR06nvflPMotld1FJWSj2QT0985v7P/emPZO00PucFAkbcmq2vpVU7Ts7umKiSI6SppiLykVWsA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", + "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", "requires": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/properties": "^5.6.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" } }, "@ethersproject/bignumber": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.2.tgz", - "integrity": "sha512-v7+EEUbhGqT3XJ9LMPsKvXYHFc8eHxTowFCG/HgJErmq4XHJ2WR7aeyICg3uTOAQ7Icn0GFHAohXEhxQHq4Ubw==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", "requires": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", "bn.js": "^5.2.1" } }, "@ethersproject/bytes": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.6.1.tgz", - "integrity": "sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", "requires": { - "@ethersproject/logger": "^5.6.0" + "@ethersproject/logger": "^5.7.0" } }, "@ethersproject/constants": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.6.1.tgz", - "integrity": "sha512-QSq9WVnZbxXYFftrjSjZDUshp6/eKp6qrtdBtUCm0QxCV5z1fG/w3kdlcsjMCQuQHUnAclKoK7XpXMezhRDOLg==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", "requires": { - "@ethersproject/bignumber": "^5.6.2" + "@ethersproject/bignumber": "^5.7.0" } }, "@ethersproject/contracts": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.6.2.tgz", - "integrity": "sha512-hguUA57BIKi6WY0kHvZp6PwPlWF87MCeB4B7Z7AbUpTxfFXFdn/3b0GmjZPagIHS+3yhcBJDnuEfU4Xz+Ks/8g==", - "requires": { - "@ethersproject/abi": "^5.6.3", - "@ethersproject/abstract-provider": "^5.6.1", - "@ethersproject/abstract-signer": "^5.6.2", - "@ethersproject/address": "^5.6.1", - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/constants": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.2" + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", + "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", + "requires": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" } }, "@ethersproject/hash": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.6.1.tgz", - "integrity": "sha512-L1xAHurbaxG8VVul4ankNX5HgQ8PNCTrnVXEiFnE9xoRnaUcgfD12tZINtDinSllxPLCtGwguQxJ5E6keE84pA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", "requires": { - "@ethersproject/abstract-signer": "^5.6.2", - "@ethersproject/address": "^5.6.1", - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/keccak256": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.1" + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, "@ethersproject/hdnode": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.6.2.tgz", - "integrity": "sha512-tERxW8Ccf9CxW2db3WsN01Qao3wFeRsfYY9TCuhmG0xNpl2IO8wgXU3HtWIZ49gUWPggRy4Yg5axU0ACaEKf1Q==", - "requires": { - "@ethersproject/abstract-signer": "^5.6.2", - "@ethersproject/basex": "^5.6.1", - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/pbkdf2": "^5.6.1", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/sha2": "^5.6.1", - "@ethersproject/signing-key": "^5.6.2", - "@ethersproject/strings": "^5.6.1", - "@ethersproject/transactions": "^5.6.2", - "@ethersproject/wordlists": "^5.6.1" + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", + "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" } }, "@ethersproject/json-wallets": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.6.1.tgz", - "integrity": "sha512-KfyJ6Zwz3kGeX25nLihPwZYlDqamO6pfGKNnVMWWfEVVp42lTfCZVXXy5Ie8IZTN0HKwAngpIPi7gk4IJzgmqQ==", - "requires": { - "@ethersproject/abstract-signer": "^5.6.2", - "@ethersproject/address": "^5.6.1", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/hdnode": "^5.6.2", - "@ethersproject/keccak256": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/pbkdf2": "^5.6.1", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/random": "^5.6.1", - "@ethersproject/strings": "^5.6.1", - "@ethersproject/transactions": "^5.6.2", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", + "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", "aes-js": "3.0.0", "scrypt-js": "3.0.1" } }, "@ethersproject/keccak256": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.6.1.tgz", - "integrity": "sha512-bB7DQHCTRDooZZdL3lk9wpL0+XuG3XLGHLh3cePnybsO3V0rdCAOQGpn/0R3aODmnTOOkCATJiD2hnL+5bwthA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", "requires": { - "@ethersproject/bytes": "^5.6.1", + "@ethersproject/bytes": "^5.7.0", "js-sha3": "0.8.0" } }, "@ethersproject/logger": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.6.0.tgz", - "integrity": "sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg==" + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==" }, "@ethersproject/networks": { - "version": "5.6.4", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.6.4.tgz", - "integrity": "sha512-KShHeHPahHI2UlWdtDMn2lJETcbtaJge4k7XSjDR9h79QTd6yQJmv6Cp2ZA4JdqWnhszAOLSuJEd9C0PRw7hSQ==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.0.tgz", + "integrity": "sha512-MG6oHSQHd4ebvJrleEQQ4HhVu8Ichr0RDYEfHzsVAVjHNM+w36x9wp9r+hf1JstMXtseXDtkiVoARAG6M959AA==", "requires": { - "@ethersproject/logger": "^5.6.0" + "@ethersproject/logger": "^5.7.0" } }, "@ethersproject/pbkdf2": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.6.1.tgz", - "integrity": "sha512-k4gRQ+D93zDRPNUfmduNKq065uadC2YjMP/CqwwX5qG6R05f47boq6pLZtV/RnC4NZAYOPH1Cyo54q0c9sshRQ==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", + "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", "requires": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/sha2": "^5.6.1" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" } }, "@ethersproject/properties": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.6.0.tgz", - "integrity": "sha512-szoOkHskajKePTJSZ46uHUWWkbv7TzP2ypdEK6jGMqJaEt2sb0jCgfBo0gH0m2HBpRixMuJ6TBRaQCF7a9DoCg==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", "requires": { - "@ethersproject/logger": "^5.6.0" + "@ethersproject/logger": "^5.7.0" } }, "@ethersproject/providers": { - "version": "5.6.8", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.6.8.tgz", - "integrity": "sha512-Wf+CseT/iOJjrGtAOf3ck9zS7AgPmr2fZ3N97r4+YXN3mBePTG2/bJ8DApl9mVwYL+RpYbNxMEkEp4mPGdwG/w==", - "requires": { - "@ethersproject/abstract-provider": "^5.6.1", - "@ethersproject/abstract-signer": "^5.6.2", - "@ethersproject/address": "^5.6.1", - "@ethersproject/base64": "^5.6.1", - "@ethersproject/basex": "^5.6.1", - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/constants": "^5.6.1", - "@ethersproject/hash": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.3", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/random": "^5.6.1", - "@ethersproject/rlp": "^5.6.1", - "@ethersproject/sha2": "^5.6.1", - "@ethersproject/strings": "^5.6.1", - "@ethersproject/transactions": "^5.6.2", - "@ethersproject/web": "^5.6.1", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.0.tgz", + "integrity": "sha512-+TTrrINMzZ0aXtlwO/95uhAggKm4USLm1PbeCBR/3XZ7+Oey+3pMyddzZEyRhizHpy1HXV0FRWRMI1O3EGYibA==", + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", "bech32": "1.1.4", "ws": "7.4.6" } }, "@ethersproject/random": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.6.1.tgz", - "integrity": "sha512-/wtPNHwbmng+5yi3fkipA8YBT59DdkGRoC2vWk09Dci/q5DlgnMkhIycjHlavrvrjJBkFjO/ueLyT+aUDfc4lA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", + "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", "requires": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, "@ethersproject/rlp": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.1.tgz", - "integrity": "sha512-uYjmcZx+DKlFUk7a5/W9aQVaoEC7+1MOBgNtvNg13+RnuUwT4F0zTovC0tmay5SmRslb29V1B7Y5KCri46WhuQ==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", "requires": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, "@ethersproject/sha2": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.6.1.tgz", - "integrity": "sha512-5K2GyqcW7G4Yo3uenHegbXRPDgARpWUiXc6RiF7b6i/HXUoWlb7uCARh7BAHg7/qT/Q5ydofNwiZcim9qpjB6g==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", + "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", "requires": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", "hash.js": "1.1.7" } }, "@ethersproject/signing-key": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.6.2.tgz", - "integrity": "sha512-jVbu0RuP7EFpw82vHcL+GP35+KaNruVAZM90GxgQnGqB6crhBqW/ozBfFvdeImtmb4qPko0uxXjn8l9jpn0cwQ==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", "requires": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", "bn.js": "^5.2.1", "elliptic": "6.5.4", "hash.js": "1.1.7" } }, "@ethersproject/solidity": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.6.1.tgz", - "integrity": "sha512-KWqVLkUUoLBfL1iwdzUVlkNqAUIFMpbbeH0rgCfKmJp0vFtY4AsaN91gHKo9ZZLkC4UOm3cI3BmMV4N53BOq4g==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", + "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", "requires": { - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/keccak256": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/sha2": "^5.6.1", - "@ethersproject/strings": "^5.6.1" + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, "@ethersproject/strings": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.6.1.tgz", - "integrity": "sha512-2X1Lgk6Jyfg26MUnsHiT456U9ijxKUybz8IM1Vih+NJxYtXhmvKBcHOmvGqpFSVJ0nQ4ZCoIViR8XlRw1v/+Cw==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", "requires": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/constants": "^5.6.1", - "@ethersproject/logger": "^5.6.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, "@ethersproject/transactions": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.6.2.tgz", - "integrity": "sha512-BuV63IRPHmJvthNkkt9G70Ullx6AcM+SDc+a8Aw/8Yew6YwT51TcBKEp1P4oOQ/bP25I18JJr7rcFRgFtU9B2Q==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", "requires": { - "@ethersproject/address": "^5.6.1", - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/constants": "^5.6.1", - "@ethersproject/keccak256": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/rlp": "^5.6.1", - "@ethersproject/signing-key": "^5.6.2" + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" } }, "@ethersproject/units": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.6.1.tgz", - "integrity": "sha512-rEfSEvMQ7obcx3KWD5EWWx77gqv54K6BKiZzKxkQJqtpriVsICrktIQmKl8ReNToPeIYPnFHpXvKpi068YFZXw==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", + "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", "requires": { - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/constants": "^5.6.1", - "@ethersproject/logger": "^5.6.0" + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, "@ethersproject/wallet": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.6.2.tgz", - "integrity": "sha512-lrgh0FDQPuOnHcF80Q3gHYsSUODp6aJLAdDmDV0xKCN/T7D99ta1jGVhulg3PY8wiXEngD0DfM0I2XKXlrqJfg==", - "requires": { - "@ethersproject/abstract-provider": "^5.6.1", - "@ethersproject/abstract-signer": "^5.6.2", - "@ethersproject/address": "^5.6.1", - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/hash": "^5.6.1", - "@ethersproject/hdnode": "^5.6.2", - "@ethersproject/json-wallets": "^5.6.1", - "@ethersproject/keccak256": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/random": "^5.6.1", - "@ethersproject/signing-key": "^5.6.2", - "@ethersproject/transactions": "^5.6.2", - "@ethersproject/wordlists": "^5.6.1" + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", + "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" } }, "@ethersproject/web": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.6.1.tgz", - "integrity": "sha512-/vSyzaQlNXkO1WV+RneYKqCJwualcUdx/Z3gseVovZP0wIlOFcCE1hkRhKBH8ImKbGQbMl9EAAyJFrJu7V0aqA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.0.tgz", + "integrity": "sha512-ApHcbbj+muRASVDSCl/tgxaH2LBkRMEYfLOLVa0COipx0+nlu0QKet7U2lEg0vdkh8XRSLf2nd1f1Uk9SrVSGA==", "requires": { - "@ethersproject/base64": "^5.6.1", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.1" + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, "@ethersproject/wordlists": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.6.1.tgz", - "integrity": "sha512-wiPRgBpNbNwCQFoCr8bcWO8o5I810cqO6mkdtKfLKFlLxeCWcnzDi4Alu8iyNzlhYuS9npCwivMbRWF19dyblw==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", + "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", "requires": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/hash": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.1" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, "@gar/promisify": { @@ -54558,9 +54171,9 @@ } }, "@ledgerhq/cryptoassets": { - "version": "6.31.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/cryptoassets/-/cryptoassets-6.31.0.tgz", - "integrity": "sha512-DM6JcGbX0n9TmcJhCVSrXOm6L4mQFifsZnBIzR2kFZ5/+r2H5Eca9FM+teJ/MUe2BtvuMg2slTzFTK/slLRWLw==", + "version": "6.32.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/cryptoassets/-/cryptoassets-6.32.0.tgz", + "integrity": "sha512-PoUZLw8HNKYPyxOBZPDJDs0Usqy0RyaSioTrC5Nlm5sVHEWPwssGJAAWxXO4q60j2PvLAOnfXPPo2pRWxcBTeg==", "requires": { "invariant": "2" } @@ -55344,6 +54957,48 @@ "fastq": "^1.6.0" } }, + "@nomiclabs/hardhat-etherscan": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.0.tgz", + "integrity": "sha512-JroYgfN1AlYFkQTQ3nRwFi4o8NtZF7K/qFR2dxDUgHbCtIagkUseca9L4E/D2ScUm4XT40+8PbCdqZi+XmHyQA==", + "requires": { + "@ethersproject/abi": "^5.1.2", + "@ethersproject/address": "^5.0.2", + "cbor": "^5.0.2", + "chalk": "^2.4.2", + "debug": "^4.1.1", + "fs-extra": "^7.0.1", + "lodash": "^4.17.11", + "semver": "^6.3.0", + "table": "^6.8.0", + "undici": "^5.4.0" + }, + "dependencies": { + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + } + } + }, "@npmcli/fs": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", @@ -56027,21 +55682,21 @@ } }, "@snapshot-labs/snapshot.js": { - "version": "0.3.104", - "resolved": "https://registry.npmjs.org/@snapshot-labs/snapshot.js/-/snapshot.js-0.3.104.tgz", - "integrity": "sha512-zfLLUIZuCfKr8iRcS+sZL/Qr5I0kwfDIniQvB1On5taH58s5YKWEt/QFWK9U2oGw008x/A5Md0lnZJ6aNdS01Q==", + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/@snapshot-labs/snapshot.js/-/snapshot.js-0.4.20.tgz", + "integrity": "sha512-CSOyTODppuMKDCG69tc9PpFsxTG5D8PqDrNQxExIYvANBHlTGQEWawoGdfWvhDysxcVFOJkp/bStYGm0OcZW6g==", "requires": { "@ensdomains/eth-ens-namehash": "^2.0.15", - "@ethersproject/abi": "^5.0.4", + "@ethersproject/abi": "^5.6.4", "@ethersproject/bytes": "^5.6.1", - "@ethersproject/contracts": "^5.0.3", + "@ethersproject/contracts": "^5.6.2", "@ethersproject/hash": "^5.6.1", - "@ethersproject/providers": "^5.3.1", - "@ethersproject/wallet": "^5.4.0", - "ajv": "^8.6.0", - "ajv-formats": "^2.1.0", - "cross-fetch": "^3.0.6", - "json-to-graphql-query": "^2.0.0", + "@ethersproject/providers": "^5.6.8", + "@ethersproject/wallet": "^5.6.2", + "ajv": "^8.11.0", + "ajv-formats": "^2.1.1", + "cross-fetch": "^3.1.5", + "json-to-graphql-query": "^2.2.4", "lodash.set": "^4.3.2" } }, @@ -57064,9 +56719,9 @@ }, "dependencies": { "@types/lodash": { - "version": "4.14.183", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.183.tgz", - "integrity": "sha512-UXavyuxzXKMqJPEpFPri6Ku5F9af6ZJXUneHhvQJxavrEjuHkFp2YnDWHcxJiG7hk8ZkWqjcyNeW1s/smZv5cw==", + "version": "4.14.184", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.184.tgz", + "integrity": "sha512-RoZphVtHbxPZizt4IcILciSWiC6dcn+eZ8oX9IWEYfDMcocdd42f7NPI6fQj+6zI8y4E0L7gu2pcZKLGTRaV9Q==", "dev": true }, "prettier": { @@ -57218,9 +56873,9 @@ }, "dependencies": { "@types/node": { - "version": "16.11.49", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.49.tgz", - "integrity": "sha512-Abq9fBviLV93OiXMu+f6r0elxCzRwc0RC5f99cU892uBITL44pTvgvEqlRlPRi8EGcO1z7Cp8A4d0s/p3J/+Nw==", + "version": "16.11.52", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.52.tgz", + "integrity": "sha512-GnstYouCa9kbYokBCWEVrszJ1P2rGAQpKrqACHKuixkaT8XGu8nsqHvEUIGqDs5vwtsJ7LrYqnPDKRD1V+M39A==", "dev": true } } @@ -57761,11 +57416,11 @@ } }, "@synthetixio/codegen-graph-ts": { - "version": "2.74.1", - "resolved": "https://registry.npmjs.org/@synthetixio/codegen-graph-ts/-/codegen-graph-ts-2.74.1.tgz", - "integrity": "sha512-aohd8gpFTY2UOhhjM+tqDVwo51VIS1iub1nErEM4tPpfMZzvtD47IVwO8LK5xhg1B1qNo91/eMV1jiLlvE9/bg==", + "version": "2.74.2", + "resolved": "https://registry.npmjs.org/@synthetixio/codegen-graph-ts/-/codegen-graph-ts-2.74.2.tgz", + "integrity": "sha512-c4ns7fsXVv/wNBT01TGsbYrN3X02D6SIdJnfAW8Sit9JspFnfF7icnolENmRhjoLOY38DrIVuA7+IKhp3qWOtg==", "requires": { - "@synthetixio/wei": "2.74.1", + "@synthetixio/wei": "2.74.2", "axios": "^0.21.4", "commander": "^8.1.0", "graphql": "^15.5.0", @@ -57788,13 +57443,19 @@ } } }, + "@synthetixio/contracts": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@synthetixio/contracts/-/contracts-1.1.3.tgz", + "integrity": "sha512-NpKecIAbd4WdOZAsr8RR8U9wG4JDUj4Bc779aUO3CXf7aLQqYLIDCj1SEXTL/qM4wrBLwYJVph8//UKvq+5/QQ==" + }, "@synthetixio/contracts-interface": { - "version": "2.74.1", - "resolved": "https://registry.npmjs.org/@synthetixio/contracts-interface/-/contracts-interface-2.74.1.tgz", - "integrity": "sha512-6UZ5PNkjYLMUSWwbSL55zEVhTuAPIv+JpOPxzndD+U/lVZwnDXilrshmSWZ8r3zRmwEA+QWIAHGgSxnb6UCDDQ==", + "version": "2.76.1", + "resolved": "https://registry.npmjs.org/@synthetixio/contracts-interface/-/contracts-interface-2.76.1.tgz", + "integrity": "sha512-PZvC7zG6jFsQe88A6IkI/h1FMtWduF0pHPQcGMKEihWyydSln6focIM+hoc5ZZO7qOWm4iLfqrf5GJse2G3o4Q==", "requires": { + "@synthetixio/contracts": "1.1.3", "ethers": "^5.5.3", - "synthetix": "2.74.1" + "synthetix": "2.76.1" } }, "@synthetixio/js": { @@ -57857,54 +57518,6 @@ } } }, - "@eth-optimism/watcher": { - "version": "0.0.1-alpha.8", - "resolved": "https://registry.npmjs.org/@eth-optimism/watcher/-/watcher-0.0.1-alpha.8.tgz", - "integrity": "sha512-UICItZmRtQ4U2Ae8D56to0MZskFVdKOej3srcDg7PgAi/HqDetoyt5eutBPVgABiiIMTWvkoh6EsbgRJRPjWNg==", - "dev": true, - "requires": { - "ethers": "5.0.0" - }, - "dependencies": { - "ethers": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.0.0.tgz", - "integrity": "sha512-uOSACd2E8dg8XuiOewpL42uFH7SvrkA5k0oGkHoqSJl2lflrMPV+7ciWzyuPBjyHnOFvAPPJUpsXrwpFKaLFww==", - "dev": true, - "requires": { - "@ethersproject/abi": "^5.0.0", - "@ethersproject/abstract-provider": "^5.0.0", - "@ethersproject/abstract-signer": "^5.0.0", - "@ethersproject/address": "^5.0.0", - "@ethersproject/base64": "^5.0.0", - "@ethersproject/bignumber": "^5.0.0", - "@ethersproject/bytes": "^5.0.0", - "@ethersproject/constants": "^5.0.0", - "@ethersproject/contracts": "^5.0.0", - "@ethersproject/hash": "^5.0.0", - "@ethersproject/hdnode": "^5.0.0", - "@ethersproject/json-wallets": "^5.0.0", - "@ethersproject/keccak256": "^5.0.0", - "@ethersproject/logger": "^5.0.0", - "@ethersproject/networks": "^5.0.0", - "@ethersproject/pbkdf2": "^5.0.0", - "@ethersproject/properties": "^5.0.0", - "@ethersproject/providers": "^5.0.0", - "@ethersproject/random": "^5.0.0", - "@ethersproject/rlp": "^5.0.0", - "@ethersproject/sha2": "^5.0.0", - "@ethersproject/signing-key": "^5.0.0", - "@ethersproject/solidity": "^5.0.0", - "@ethersproject/strings": "^5.0.0", - "@ethersproject/transactions": "^5.0.0", - "@ethersproject/units": "^5.0.0", - "@ethersproject/wallet": "^5.0.0", - "@ethersproject/web": "^5.0.0", - "@ethersproject/wordlists": "^5.0.0" - } - } - } - }, "abi-decoder": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/abi-decoder/-/abi-decoder-2.3.0.tgz", @@ -58019,39 +57632,49 @@ } }, "@synthetixio/optimism-networks": { - "version": "2.74.1", - "resolved": "https://registry.npmjs.org/@synthetixio/optimism-networks/-/optimism-networks-2.74.1.tgz", - "integrity": "sha512-OZ3BeZLE56oK9nvYHwqeNYudxnwjLPC90Hx2KpLtLZ4sn2xsxJARL74pXTuoD45P7zMo8ulVYAo4yCldv7WWFQ==", + "version": "2.74.2", + "resolved": "https://registry.npmjs.org/@synthetixio/optimism-networks/-/optimism-networks-2.74.2.tgz", + "integrity": "sha512-YH2mrmcsVzRf3rxa01Qz1NZHQrezUCGbdR8Wxzb7NrEpchzHYMFj3CPW0F0PVY3Fk1I+gZXRM/tgYnMqdcknDQ==", "requires": { - "@eth-optimism/watcher": "^0.0.1-alpha.9", - "@metamask/providers": "^8.1.1", - "ethers": "^5.5.3" + "@ethersproject/bignumber": "^5.6.2", + "@ethersproject/bytes": "^5.6.1", + "@metamask/providers": "^8.1.1" } }, "@synthetixio/providers": { - "version": "2.74.1", - "resolved": "https://registry.npmjs.org/@synthetixio/providers/-/providers-2.74.1.tgz", - "integrity": "sha512-YxRhy98dTq1BbwU0i8JvZQNQDLwQ8ADaX6ZfTOQzWGJO0fMF9qo9kEMN9CcZhC5tq9Davc0JBtyQJkqL/F7TLQ==", + "version": "2.74.7", + "resolved": "https://registry.npmjs.org/@synthetixio/providers/-/providers-2.74.7.tgz", + "integrity": "sha512-4Y/nSscXsF5CmWhco1Fbs3cJyv72yvQ/ZJlqeTH8Vj1t/fz62WshD8+sNKElCfy1cnPXQDY2UgzQryyRnfvEJg==", "requires": { - "@eth-optimism/provider": "^0.0.1-alpha.14", - "@synthetixio/contracts-interface": "2.74.1", - "@synthetixio/optimism-networks": "2.74.1", - "ethers": "^5.5.3" + "@ethersproject/bignumber": "^5.6.2", + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/providers": "^5.6.8", + "@synthetixio/contracts-interface": "2.76.1", + "@synthetixio/optimism-networks": "2.74.2" } }, "@synthetixio/queries": { - "version": "2.74.3", - "resolved": "https://registry.npmjs.org/@synthetixio/queries/-/queries-2.74.3.tgz", - "integrity": "sha512-3RPWrD1B6Lthb6WihzPtGcZhgtM8GqSVblFmDzB4dcbWzeRypAOKLt5nimrGZTav+wE8A5VZcCaNZ5MsWPv00Q==", - "requires": { - "@snapshot-labs/snapshot.js": "^0.3.22", - "@synthetixio/codegen-graph-ts": "2.74.1", - "@synthetixio/contracts-interface": "2.74.1", - "@synthetixio/optimism-networks": "2.74.1", - "@synthetixio/wei": "2.74.1", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@synthetixio/queries/-/queries-3.0.5.tgz", + "integrity": "sha512-zCKwSD671+dI2Zysuxj/DEdEua7WeqgxZmUQppIbjtpjNi6ORFzdBb5ZTfZ/SiDy0D81jPY1VGcsA8siAXLl5w==", + "requires": { + "@ethersproject/abstract-signer": "^5.6.2", + "@ethersproject/address": "^5.6.1", + "@ethersproject/bignumber": "^5.6.2", + "@ethersproject/constants": "^5.6.1", + "@ethersproject/contracts": "^5.6.2", + "@ethersproject/providers": "^5.6.8", + "@ethersproject/strings": "^5.6.1", + "@ethersproject/transactions": "^5.6.2", + "@ethersproject/units": "^5.6.1", + "@snapshot-labs/snapshot.js": "^0.4.13", + "@synthetixio/codegen-graph-ts": "2.74.2", + "@synthetixio/contracts": "1.1.3", + "@synthetixio/contracts-interface": "2.76.1", + "@synthetixio/optimism-networks": "2.74.2", + "@synthetixio/wei": "2.74.2", "axios": "^0.21.4", "date-fns": "^2.19.0", - "ethers": "^5.5.3", "graphql": "^15.5.0", "graphql-request": "^3.4.0", "lodash": "^4.17.21" @@ -58224,20 +57847,24 @@ } }, "@synthetixio/transaction-notifier": { - "version": "2.74.1", - "resolved": "https://registry.npmjs.org/@synthetixio/transaction-notifier/-/transaction-notifier-2.74.1.tgz", - "integrity": "sha512-vVcmV8S0sNQswE2Nzi5FTS1JAMRpBQ6FjMyrpAzs3XpAMqemTEZEetvLshQ1sasxZ8lMCZzGmkmf5FcOhZIBJQ==", + "version": "2.74.9", + "resolved": "https://registry.npmjs.org/@synthetixio/transaction-notifier/-/transaction-notifier-2.74.9.tgz", + "integrity": "sha512-bRn4kMxhOH12R/gpQKteihVRyPMGTpZecRrbvO1X2Q/1zumn1TzevtWnXOKelR+/50oXqE+MTgwIoBztWo/yDQ==", "requires": { - "ethers": "^5.5.3" + "@ethersproject/properties": "^5.6.0", + "@ethersproject/providers": "^5.6.8", + "@ethersproject/strings": "^5.6.1", + "@synthetixio/providers": "2.74.7" } }, "@synthetixio/wei": { - "version": "2.74.1", - "resolved": "https://registry.npmjs.org/@synthetixio/wei/-/wei-2.74.1.tgz", - "integrity": "sha512-YhiEtumbO0o9cwQmoTaqfyDURUTp4s7ujcpESlHJ3fN0W4SLFkZPM3omv2A3vzTXDiIDJnOK7t6PXYuLfFS1sg==", + "version": "2.74.2", + "resolved": "https://registry.npmjs.org/@synthetixio/wei/-/wei-2.74.2.tgz", + "integrity": "sha512-2soQ4Wjm9M3GBMYNnYQHdOnTMfiKDYnXxZEwgj5dfdmYqYCd3Gc6fIMoogazcpDe/0dwkHp2RGuWqqdj0hZLrA==", "requires": { - "big.js": "^6.1.1", - "ethers": "^5.5.3" + "@ethersproject/bignumber": "^5.6.2", + "@ethersproject/bytes": "^5.6.1", + "big.js": "^6.1.1" } }, "@szmarczak/http-timer": { @@ -58596,9 +58223,9 @@ } }, "@truffle/abi-utils": { - "version": "0.2.16", - "resolved": "https://registry.npmjs.org/@truffle/abi-utils/-/abi-utils-0.2.16.tgz", - "integrity": "sha512-FCDANbJM5UJ0Mm61Z9MmQ3DVnMCCmMgOSFvGDORyYqHiXdS6uK0n77pN5tuUUCles8YIpgnCdijMWs8HoaRSMw==", + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/@truffle/abi-utils/-/abi-utils-0.2.17.tgz", + "integrity": "sha512-Lz8bDjEYInaesdpP3ENVnDkfSkEmrV2z9BNcIEQPQnqdB5x/H+rIrWGny7LV6rX3Kz3kAerF8eGBFh7Z/dEhZw==", "dev": true, "optional": true, "requires": { @@ -58608,21 +58235,21 @@ } }, "@truffle/blockchain-utils": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@truffle/blockchain-utils/-/blockchain-utils-0.1.3.tgz", - "integrity": "sha512-K21Wf10u6VmS12/f9OrLN98f1RCqzrmuM2zlsly4b7BF/Xdh55Iq/jNSOnsNUJa+6Iaqqz6zeidquCYu9nTFng==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@truffle/blockchain-utils/-/blockchain-utils-0.1.4.tgz", + "integrity": "sha512-HegAo5A8UX9vE8dtceBRgCY207gOb9wj54c8mNOOWHcFpkyJz7kZYGo44As6Imh10/0hD2j7vHQ56Jf+uszJ3A==", "dev": true, "optional": true }, "@truffle/codec": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.14.1.tgz", - "integrity": "sha512-ULvtciwbdUANe7VNsPCAIWSrxm0CFu145VVVxJ+yE1xHY9TiLKHOf+CBH2sMW3mVkbt5HwVUF5DGm+uXngK19A==", + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.14.2.tgz", + "integrity": "sha512-rFyj/TnIZ3N9n6cTcaEUbOXktGqZH/Mk48VjN/NT7f585zpCP82YmGTAxJwn61HuT2Zan8bksSElMivjUHKHeg==", "dev": true, "optional": true, "requires": { - "@truffle/abi-utils": "^0.2.16", - "@truffle/compile-common": "^0.7.33", + "@truffle/abi-utils": "^0.2.17", + "@truffle/compile-common": "^0.7.34", "big.js": "^6.0.3", "bn.js": "^5.1.3", "cbor": "^5.2.0", @@ -58662,29 +58289,29 @@ } }, "@truffle/compile-common": { - "version": "0.7.33", - "resolved": "https://registry.npmjs.org/@truffle/compile-common/-/compile-common-0.7.33.tgz", - "integrity": "sha512-LvZhDheDGqb+TScSRSYAFZQBRFEn+2ic/gtJIJXB2Rm1U6cS5GLdvWrEdPPIAwP+xt0xZ4ySI4mw2wBL8MUSRg==", + "version": "0.7.34", + "resolved": "https://registry.npmjs.org/@truffle/compile-common/-/compile-common-0.7.34.tgz", + "integrity": "sha512-NA8HuTCw6pgTpCyMd7M70Ii8AVD921R95UnXB3dwVWwEyV1OksaAsTKfdLxeLnFR4ISkK6o2NqpFb/lM3+V+9w==", "dev": true, "optional": true, "requires": { - "@truffle/error": "^0.1.0", + "@truffle/error": "^0.1.1", "colors": "1.4.0" } }, "@truffle/contract": { - "version": "4.5.21", - "resolved": "https://registry.npmjs.org/@truffle/contract/-/contract-4.5.21.tgz", - "integrity": "sha512-9yNfTrSlsZix3vNO+J5PMJDHglm82KjMaU3TwN7HgdNgFLd/IY/5OpUjTanTQq/5Rr9kmAWgzYilNkkqLkiYaw==", + "version": "4.5.22", + "resolved": "https://registry.npmjs.org/@truffle/contract/-/contract-4.5.22.tgz", + "integrity": "sha512-yqv+dlLQsPLHS0qMVVMmB1mVw5KhHFLV6K0y+amcoZGACvoX8Q+oITUpYY1hqI8aTd7uQFsDAaVPJouZuyCwwA==", "dev": true, "optional": true, "requires": { "@ensdomains/ensjs": "^2.1.0", - "@truffle/blockchain-utils": "^0.1.3", + "@truffle/blockchain-utils": "^0.1.4", "@truffle/contract-schema": "^3.4.9", - "@truffle/debug-utils": "^6.0.31", - "@truffle/error": "^0.1.0", - "@truffle/interface-adapter": "^0.5.20", + "@truffle/debug-utils": "^6.0.32", + "@truffle/error": "^0.1.1", + "@truffle/interface-adapter": "^0.5.21", "bignumber.js": "^7.2.1", "debug": "^4.3.1", "ethers": "^4.0.32", @@ -59209,13 +58836,13 @@ } }, "@truffle/debug-utils": { - "version": "6.0.31", - "resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-6.0.31.tgz", - "integrity": "sha512-DSWebZgzAHGYQpeSvnJRt5K05aWNT/PxEvLIvII4/WT4wChQ3+ARVF8n1mBoX7Eqk/yQ534bXJ+rG8eFnzh4AQ==", + "version": "6.0.32", + "resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-6.0.32.tgz", + "integrity": "sha512-q/fDMQwY2qxIYuJs0oIIBxS26GNfFl0m5TVwkjoUlcg18O7LwnrnSezXcZw+id4k90kKqWtnjXD0/ZXX/gyXyw==", "dev": true, "optional": true, "requires": { - "@truffle/codec": "^0.14.1", + "@truffle/codec": "^0.14.2", "@trufflesuite/chromafi": "^3.0.0", "bn.js": "^5.1.3", "chalk": "^2.4.2", @@ -59224,16 +58851,16 @@ } }, "@truffle/error": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.1.0.tgz", - "integrity": "sha512-RbUfp5VreNhsa2Q4YbBjz18rOQI909pG32bghl1hulO7IpvcqTS+C3Ge5cNbiWQ1WGzy1wIeKLW0tmQtHFB7qg==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.1.1.tgz", + "integrity": "sha512-sE7c9IHIGdbK4YayH4BC8i8qMjoAOeg6nUXUDZZp8wlU21/EMpaG+CLx+KqcIPyR+GSWIW3Dm0PXkr2nlggFDA==", "dev": true, "optional": true }, "@truffle/interface-adapter": { - "version": "0.5.20", - "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.20.tgz", - "integrity": "sha512-GL0pNZ8vshlU4SokKD0L7Pb/Vrxcb5ZALGhH9+uKvm6bXnY6XjnxvEYZ1KgK/p+uoYCLY53g9Sgn/CXvcWmGLg==", + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.21.tgz", + "integrity": "sha512-2ltbu3upsWS0TAQu1kLQc048XlXNmDkCzH6iebX4dg3VBB+l7oG/pu5+/kl8t+LRfzGoEMLKwOQt7vk0Vm3PNA==", "dev": true, "optional": true, "requires": { @@ -60501,9 +60128,9 @@ } }, "@types/uglify-js": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.16.0.tgz", - "integrity": "sha512-0yeUr92L3r0GLRnBOvtYK1v2SjqMIqQDHMl7GLb+l2L8+6LSFWEEWEIgVsPdMn5ImLM8qzWT8xFPtQYpp8co0g==", + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.0.tgz", + "integrity": "sha512-3HO6rm0y+/cqvOyA8xcYLweF0TKXlAxmQASjbOi49Co51A1N4nR4bEwBgRoD9kNM+rqFGArjKr654SLp2CoGmQ==", "dev": true, "requires": { "source-map": "^0.6.1" @@ -61330,6 +60957,7 @@ "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, "requires": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -61499,8 +61127,7 @@ "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "3.2.1", @@ -61649,7 +61276,8 @@ "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true }, "array-includes": { "version": "3.1.5", @@ -61806,8 +61434,7 @@ "astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==" }, "async": { "version": "3.2.0", @@ -61844,11 +61471,6 @@ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" }, - "async-lock": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.3.2.tgz", - "integrity": "sha512-phnXdS3RP7PPcmP6NWWzWMU0sLTeyvtZCxBPpZdkYE3seGLKSQZs9FrmVO/qwypq98FUtWWUEYxziLkdGk5nnA==" - }, "async-mutex": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.2.6.tgz", @@ -64524,6 +64146,7 @@ "version": "1.20.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "dev": true, "requires": { "bytes": "3.1.2", "content-type": "~1.0.4", @@ -64542,12 +64165,14 @@ "bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "requires": { "ms": "2.0.0" } @@ -64555,12 +64180,14 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true }, "qs": { "version": "6.10.3", "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dev": true, "requires": { "side-channel": "^1.0.4" } @@ -65331,9 +64958,9 @@ "integrity": "sha512-W2lPwkBkMZwFlPCXhIlYgxu+7gC/NUlCtdK652DAJ1JdgV0sTrvuPFshNPrFa1TY2JOkLhgdeEBplB4ezEa+xg==" }, "caniuse-lite": { - "version": "1.0.30001377", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001377.tgz", - "integrity": "sha512-I5XeHI1x/mRSGl96LFOaSk528LA/yZG3m3iQgImGujjO8gotd/DL8QaI1R1h1dg5ATeI2jqPblMpKq4Tr5iKfQ==" + "version": "1.0.30001381", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001381.tgz", + "integrity": "sha512-fEnkDOKpvp6qc+olg7+NzE1SqyfiyKf4uci7fAU38M3zxs0YOyKOxW/nMZ2l9sJbt7KZHcDIxUnbI0Iime7V4w==" }, "capture-exit": { "version": "2.0.0", @@ -65370,8 +64997,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", - "dev": true, - "optional": true, "requires": { "bignumber.js": "^9.0.1", "nofilter": "^1.0.4" @@ -65380,9 +65005,7 @@ "bignumber.js": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.0.tgz", - "integrity": "sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A==", - "dev": true, - "optional": true + "integrity": "sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A==" } } }, @@ -65411,14 +65034,6 @@ "type-detect": "^4.0.5" } }, - "chai-as-promised": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", - "requires": { - "check-error": "^1.0.2" - } - }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -66536,7 +66151,8 @@ "content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true }, "convert-source-map": { "version": "1.8.0", @@ -66556,12 +66172,14 @@ "cookie": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true }, "cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true }, "cookiejar": { "version": "2.1.3", @@ -67348,9 +66966,9 @@ }, "dependencies": { "@types/node": { - "version": "14.18.24", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.24.tgz", - "integrity": "sha512-aJdn8XErcSrfr7k8ZDDfU6/2OgjZcB2Fu9d+ESK8D7Oa5mtsv8Fa8GpcwTA0v60kuZBaalKPzuzun4Ov1YWO/w==", + "version": "14.18.25", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.25.tgz", + "integrity": "sha512-9pLfceRSrKIsv/MISN6RoFWTIzka36Uk2Uuf5a8cHyDYhEgl5Hm5dXoe621KULeBjt+cFsY18mILsWWtJeG80w==", "dev": true }, "ansi-styles": { @@ -68050,7 +67668,8 @@ "depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true }, "deps-sort": { "version": "2.0.1", @@ -68076,7 +67695,8 @@ "destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true }, "detab": { "version": "2.0.4", @@ -68498,7 +68118,8 @@ "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true }, "eip55": { "version": "2.1.0", @@ -68522,9 +68143,9 @@ } }, "electron-to-chromium": { - "version": "1.4.221", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.221.tgz", - "integrity": "sha512-aWg2mYhpxZ6Q6Xvyk7B2ziBca4YqrCDlXzmcD7wuRs65pVEVkMT1u2ifdjpAQais2O2o0rW964ZWWWYRlAL/kw==" + "version": "1.4.225", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.225.tgz", + "integrity": "sha512-ICHvGaCIQR3P88uK8aRtx8gmejbVJyC6bB4LEC3anzBrIzdzC7aiZHY4iFfXhN4st6I7lMO0x4sgBHf/7kBvRw==" }, "elliptic": { "version": "6.5.4", @@ -68573,7 +68194,8 @@ "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true }, "encoding": { "version": "0.1.13", @@ -68815,7 +68437,8 @@ "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true }, "escape-string-regexp": { "version": "1.0.5", @@ -69590,7 +69213,8 @@ "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true }, "eth-block-tracker": { "version": "4.4.3", @@ -70415,40 +70039,40 @@ } }, "ethers": { - "version": "5.6.9", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.6.9.tgz", - "integrity": "sha512-lMGC2zv9HC5EC+8r429WaWu3uWJUCgUCt8xxKCFqkrFuBDZXDYIdzDUECxzjf2BMF8IVBByY1EBoGSL3RTm8RA==", - "requires": { - "@ethersproject/abi": "5.6.4", - "@ethersproject/abstract-provider": "5.6.1", - "@ethersproject/abstract-signer": "5.6.2", - "@ethersproject/address": "5.6.1", - "@ethersproject/base64": "5.6.1", - "@ethersproject/basex": "5.6.1", - "@ethersproject/bignumber": "5.6.2", - "@ethersproject/bytes": "5.6.1", - "@ethersproject/constants": "5.6.1", - "@ethersproject/contracts": "5.6.2", - "@ethersproject/hash": "5.6.1", - "@ethersproject/hdnode": "5.6.2", - "@ethersproject/json-wallets": "5.6.1", - "@ethersproject/keccak256": "5.6.1", - "@ethersproject/logger": "5.6.0", - "@ethersproject/networks": "5.6.4", - "@ethersproject/pbkdf2": "5.6.1", - "@ethersproject/properties": "5.6.0", - "@ethersproject/providers": "5.6.8", - "@ethersproject/random": "5.6.1", - "@ethersproject/rlp": "5.6.1", - "@ethersproject/sha2": "5.6.1", - "@ethersproject/signing-key": "5.6.2", - "@ethersproject/solidity": "5.6.1", - "@ethersproject/strings": "5.6.1", - "@ethersproject/transactions": "5.6.2", - "@ethersproject/units": "5.6.1", - "@ethersproject/wallet": "5.6.2", - "@ethersproject/web": "5.6.1", - "@ethersproject/wordlists": "5.6.1" + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.0.tgz", + "integrity": "sha512-5Xhzp2ZQRi0Em+0OkOcRHxPzCfoBfgtOQA+RUylSkuHbhTEaQklnYi2hsWbRgs3ztJsXVXd9VKBcO1ScWL8YfA==", + "requires": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.0", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.0", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.0", + "@ethersproject/wordlists": "5.7.0" } }, "ethers-eip712": { @@ -70456,58 +70080,6 @@ "resolved": "https://registry.npmjs.org/ethers-eip712/-/ethers-eip712-0.2.0.tgz", "integrity": "sha512-fgS196gCIXeiLwhsWycJJuxI9nL/AoUPGSQ+yvd+8wdWR+43G+J1n69LmWVWvAON0M6qNaf2BF4/M159U8fujQ==" }, - "ethers-v4": { - "version": "npm:ethers@4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", - "requires": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==" - }, - "scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" - }, - "setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==" - }, - "uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==" - } - } - }, "etherscan-api": { "version": "10.0.5", "resolved": "https://registry.npmjs.org/etherscan-api/-/etherscan-api-10.0.5.tgz", @@ -70985,6 +70557,7 @@ "version": "4.18.1", "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", + "dev": true, "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", @@ -71023,6 +70596,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "requires": { "ms": "2.0.0" } @@ -71030,12 +70604,14 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true }, "qs": { "version": "6.10.3", "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dev": true, "requires": { "side-channel": "^1.0.4" } @@ -71443,6 +71019,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, "requires": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -71457,6 +71034,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "requires": { "ms": "2.0.0" } @@ -71464,7 +71042,8 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true } } }, @@ -71758,9 +71337,9 @@ } }, "flatted": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", - "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, "flush-write-stream": { @@ -71966,7 +71545,8 @@ "forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true }, "fragment-cache": { "version": "0.2.1", @@ -71979,7 +71559,8 @@ "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true }, "from": { "version": "0.1.7", @@ -73077,6 +72658,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, "requires": { "depd": "2.0.0", "inherits": "2.0.4", @@ -73967,7 +73549,8 @@ "ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true }, "is_js": { "version": "0.9.0", @@ -77543,11 +77126,6 @@ "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==" }, - "level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==" - }, "level-errors": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", @@ -77590,14 +77168,6 @@ } } }, - "level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "requires": { - "xtend": "^4.0.2" - } - }, "level-ws": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", @@ -78187,8 +77757,7 @@ "lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==" }, "lodash.uniq": { "version": "4.5.0", @@ -78732,7 +78301,8 @@ "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true }, "memdown": { "version": "1.4.1", @@ -78940,7 +78510,8 @@ "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true }, "merge-stream": { "version": "2.0.0", @@ -79509,7 +79080,8 @@ "negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true }, "neo-async": { "version": "2.6.2", @@ -79888,9 +79460,7 @@ "nofilter": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz", - "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==", - "dev": true, - "optional": true + "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==" }, "normalize-hex": { "version": "0.0.2", @@ -80437,6 +80007,7 @@ "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, "requires": { "ee-first": "1.1.1" } @@ -80849,7 +80420,8 @@ "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true }, "pascal-case": { "version": "3.1.2", @@ -80943,7 +80515,8 @@ "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true }, "path-type": { "version": "4.0.0", @@ -81485,6 +81058,7 @@ "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, "requires": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" @@ -81908,12 +81482,14 @@ "range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true }, "raw-body": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, "requires": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -81924,7 +81500,8 @@ "bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true } } }, @@ -83599,6 +83176,7 @@ "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, "requires": { "debug": "2.6.9", "depd": "2.0.0", @@ -83619,6 +83197,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "requires": { "ms": "2.0.0" }, @@ -83626,14 +83205,16 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true } } }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true } } }, @@ -83851,6 +83432,7 @@ "version": "1.15.0", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, "requires": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -83915,7 +83497,8 @@ "setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true }, "sha.js": { "version": "2.4.11", @@ -84896,7 +84479,8 @@ "statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true }, "store": { "version": "2.0.12", @@ -85038,7 +84622,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -85048,14 +84631,12 @@ "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" } } }, @@ -85132,7 +84713,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "requires": { "ansi-regex": "^5.0.1" } @@ -85581,10 +85161,11 @@ } }, "synthetix": { - "version": "2.74.1", - "resolved": "https://registry.npmjs.org/synthetix/-/synthetix-2.74.1.tgz", - "integrity": "sha512-ArZUnbMvbH96TN7M63s2lAiRZrqPYYUo3yHUJBSlzYK0Blx6AJEKgLH6RpmRTCwA48R/V5+3TmdAlWsAra6qPg==", + "version": "2.76.1", + "resolved": "https://registry.npmjs.org/synthetix/-/synthetix-2.76.1.tgz", + "integrity": "sha512-/BJeGjRM+JOcXN40A98xQ3aOm/hYzvDWvelYzMn4nX3itu8DWjnbK/Xu1I63nUY/jCCfoVCT9BNz5fW+Fy8e/w==", "requires": { + "@nomiclabs/hardhat-etherscan": "^3.1.0", "abi-decoder": "^2.3.0", "commander": "^8.1.0", "inquirer": "^6.5.2", @@ -85952,7 +85533,6 @@ "version": "6.8.0", "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", - "dev": true, "requires": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", @@ -85965,7 +85545,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -85974,7 +85553,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "requires": { "color-name": "~1.1.4" } @@ -85982,20 +85560,17 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, "requires": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -86037,9 +85612,9 @@ "dev": true }, "tape": { - "version": "4.15.1", - "resolved": "https://registry.npmjs.org/tape/-/tape-4.15.1.tgz", - "integrity": "sha512-k7F5pyr91n9D/yjSJwbLLYDCrTWXxMSXbbmHX2n334lSIc2rxeXyFkaBv4UuUd2gBYMrAOalPutAiCxC6q1qbw==", + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/tape/-/tape-4.16.0.tgz", + "integrity": "sha512-mBlqYFr2mHysgCFXAuSarIQ+ffhielpb7a5/IbeOhMaLnQYhkJLUm6CwO1RszWeHRxnIpMessZ3xL2Cfo94BWw==", "dev": true, "requires": { "call-bind": "~1.0.2", @@ -86047,15 +85622,15 @@ "defined": "~1.0.0", "dotignore": "~0.1.2", "for-each": "~0.3.3", - "glob": "~7.2.0", + "glob": "~7.2.3", "has": "~1.0.3", "inherits": "~2.0.4", "is-regex": "~1.1.4", "minimist": "~1.2.6", - "object-inspect": "~1.12.0", - "resolve": "~1.22.0", + "object-inspect": "~1.12.2", + "resolve": "~1.22.1", "resumer": "~0.0.0", - "string.prototype.trim": "~1.2.5", + "string.prototype.trim": "~1.2.6", "through": "~2.3.8" }, "dependencies": { @@ -86617,7 +86192,8 @@ "toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true }, "tough-cookie": { "version": "2.5.0", @@ -86782,11 +86358,6 @@ "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", "dev": true }, - "ts-md5": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/ts-md5/-/ts-md5-1.3.1.tgz", - "integrity": "sha512-DiwiXfwvcTeZ5wCE0z+2A9EseZsztaiZtGrtSaY5JOD7ekPnR/GoIVD5gXZAlK9Na9Kvpo9Waz5rW64WKAWApg==" - }, "ts-pnp": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", @@ -86902,6 +86473,7 @@ "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, "requires": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -86996,9 +86568,9 @@ "integrity": "sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg==" }, "uglify-js": { - "version": "3.16.3", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.3.tgz", - "integrity": "sha512-uVbFqx9vvLhQg0iBaau9Z75AxWJ8tqM9AV890dIZCLApF4rTcyHwmAvLeEdYRs+BzYWu8Iw81F79ah0EfTXbaw==", + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.0.tgz", + "integrity": "sha512-aTeNPVmgIMPpm1cxXr2Q/nEbvkmV8yq66F3om7X3P/cvOXQ0TMQ64Wk63iyT1gPlmdmGzjGpyLh1f3y8MZWXGg==", "dev": true, "optional": true }, @@ -87051,6 +86623,11 @@ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==" }, + "undici": { + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.9.1.tgz", + "integrity": "sha512-6fB3a+SNnWEm4CJbgo0/CWR8RGcOCQP68SF4X0mxtYTq2VNN8T88NYrWVBAeSX+zb7bny2dx2iYhP3XHi00omg==" + }, "unfetch": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz", @@ -87243,7 +86820,8 @@ "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true }, "unset-value": { "version": "1.0.0", @@ -87519,7 +87097,8 @@ "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true }, "uuid": { "version": "8.3.2", @@ -87744,9 +87323,9 @@ } }, "preact": { - "version": "10.10.3", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.10.3.tgz", - "integrity": "sha512-Gwwh0o531izatQQZu0yEX4mtfxVYsZJ4TT/o2VK3UZ/UuAWAWFnzsEfpZvad32vY3TKoRnSY2WqiDz2rH/viWQ==" + "version": "10.10.6", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.10.6.tgz", + "integrity": "sha512-w0mCL5vICUAZrh1DuHEdOWBjxdO62lvcO++jbzr8UhhYcTbFkpegLH9XX+7MadjTl/y0feoqwQ/zAnzkc/EGog==" }, "readable-stream": { "version": "3.6.0", @@ -88338,9 +87917,9 @@ "dev": true }, "keyv": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.3.3.tgz", - "integrity": "sha512-AcysI17RvakTh8ir03+a3zJr5r0ovnAH/XTXei/4HIv3bL2K/jzvgivLK9UuI/JbU1aJjM3NSAnVvVVd3n+4DQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.4.1.tgz", + "integrity": "sha512-PzByhNxfBLnSBW2MZi1DF+W5+qB/7BMpOokewqIvqS8GFtP7xHm2oeGU72Y1fhtfOv/FiEnI4+nyViYDmUChnw==", "dev": true, "requires": { "compress-brotli": "^1.3.8", diff --git a/package.json b/package.json index 133d62900b..a77fd5fb53 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "kwenta", - "version": "3.1.1", + "version": "3.1.2", "scripts": { "dev": "next", "build": "next build", @@ -30,12 +30,12 @@ "@material-ui/core": "^4.12.3", "@metamask/detect-provider": "1.2.0", "@reach/dialog": "0.15.0", - "@synthetixio/contracts-interface": "2.74.1", - "@synthetixio/optimism-networks": "2.74.1", - "@synthetixio/providers": "2.74.1", - "@synthetixio/queries": "2.74.3", - "@synthetixio/transaction-notifier": "2.74.1", - "@synthetixio/wei": "2.74.1", + "@synthetixio/contracts-interface": "2.76.1", + "@synthetixio/optimism-networks": "2.74.2", + "@synthetixio/providers": "2.74.7", + "@synthetixio/queries": "3.0.5", + "@synthetixio/transaction-notifier": "2.74.9", + "@synthetixio/wei": "2.74.2", "@tippyjs/react": "4.1.0", "axios": "0.27.2", "bignumber.js": "9.0.0", @@ -46,7 +46,7 @@ "date-fns-tz": "1.1.4", "ethcall": "4.7.2", "ethereum-block-by-date": "^1.4.5", - "ethers": "5.6.9", + "ethers": "5.7.0", "graphql-request": "3.4.0", "i18next": "19.7.0", "imagemin-mozjpeg": "^10.0.0", diff --git a/pages/404.tsx b/pages/404.tsx index fa22dacb1f..c47033c7a4 100644 --- a/pages/404.tsx +++ b/pages/404.tsx @@ -4,6 +4,7 @@ import styled from 'styled-components'; import CaretLeftXLIcon from 'assets/svg/app/caret-left-xl.svg'; import CaretRightXLICon from 'assets/svg/app/caret-right-xl.svg'; +import GitHashID from 'sections/shared/Layout/AppLayout/GitHashID'; import { FlexDivRowCentered } from 'styles/common'; import media from 'styles/media'; @@ -20,6 +21,7 @@ const NotFoundPage = () => { {t('not-found.title')} {t('not-found.subtitle')} + diff --git a/pages/_app.tsx b/pages/_app.tsx index 4ad8a1e6ba..c31cca76db 100644 --- a/pages/_app.tsx +++ b/pages/_app.tsx @@ -35,7 +35,7 @@ type AppPropsWithLayout = AppProps & { }; const InnerApp: FC = ({ Component, pageProps }: AppPropsWithLayout) => { - const { provider, signer, network } = Connector.useContainer(); + const { provider, signer, network, synthetixjs } = Connector.useContainer(); const getLayout = Component.getLayout || ((page) => page); const currentTheme = useRecoilValue(currentThemeState); @@ -47,13 +47,14 @@ const InnerApp: FC = ({ Component, pageProps }: AppPropsWithLayout) => diff --git a/pages/dashboard/history.tsx b/pages/dashboard/history.tsx index 26ceeb1c8f..802584e8fa 100644 --- a/pages/dashboard/history.tsx +++ b/pages/dashboard/history.tsx @@ -3,6 +3,7 @@ import { useTranslation } from 'react-i18next'; import DashboardLayout from 'sections/dashboard/DashboardLayout'; import History from 'sections/dashboard/History'; +import GitHashID from 'sections/shared/Layout/AppLayout/GitHashID'; type HistoryPageProps = React.FC & { getLayout: (page: HTMLElement) => JSX.Element }; @@ -15,6 +16,7 @@ const HistoryPage: HistoryPageProps = () => { {t('dashboard-history.page-title')} + ); }; diff --git a/pages/dashboard/index.tsx b/pages/dashboard/index.tsx index 7d9db83267..c562d75dcb 100644 --- a/pages/dashboard/index.tsx +++ b/pages/dashboard/index.tsx @@ -3,6 +3,7 @@ import { useTranslation } from 'react-i18next'; import DashboardLayout from 'sections/dashboard/DashboardLayout'; import Overview from 'sections/dashboard/Overview'; +import GitHashID from 'sections/shared/Layout/AppLayout/GitHashID'; type DashboardComponent = React.FC & { getLayout: (page: HTMLElement) => JSX.Element }; @@ -15,6 +16,7 @@ const Dashboard: DashboardComponent = () => { {t('dashboard.page-title')} + ); }; diff --git a/pages/dashboard/markets.tsx b/pages/dashboard/markets.tsx index 96d2708905..4022154180 100644 --- a/pages/dashboard/markets.tsx +++ b/pages/dashboard/markets.tsx @@ -3,6 +3,7 @@ import { useTranslation } from 'react-i18next'; import DashboardLayout from 'sections/dashboard/DashboardLayout'; import Markets from 'sections/dashboard/Markets'; +import GitHashID from 'sections/shared/Layout/AppLayout/GitHashID'; type MarketsProps = React.FC & { getLayout: (page: HTMLElement) => JSX.Element }; @@ -14,8 +15,8 @@ const MarketsPage: MarketsProps = () => { {t('dashboard-markets.page-title')} - + ); }; diff --git a/pages/earn.tsx b/pages/earn.tsx index 2485f0f34d..4d36ec6c61 100644 --- a/pages/earn.tsx +++ b/pages/earn.tsx @@ -7,6 +7,7 @@ import Text from 'components/Text'; import PoolGrid from 'sections/earn/Grids/PoolGrid'; import StakeGrid from 'sections/earn/Grids/StakeGrid'; import Rewards from 'sections/earn/Rewards/Rewards'; +import GitHashID from 'sections/shared/Layout/AppLayout/GitHashID'; import { PageContent, FullHeightContainer } from 'styles/common'; const Earn: React.FC = () => { @@ -28,6 +29,7 @@ const Earn: React.FC = () => { + diff --git a/pages/exchange.tsx b/pages/exchange.tsx index 26029b9915..d021bf267e 100644 --- a/pages/exchange.tsx +++ b/pages/exchange.tsx @@ -9,6 +9,7 @@ import useExchange from 'hooks/useExchange'; import BasicSwap from 'sections/exchange/BasicSwap'; import { MobileSwap } from 'sections/exchange/MobileSwap'; import AppLayout from 'sections/shared/Layout/AppLayout'; +import GitHashID from 'sections/shared/Layout/AppLayout/GitHashID'; import { PageContent, FullHeightContainer, MainContent } from 'styles/common'; import { formatCurrency } from 'utils/formatters/number'; @@ -44,11 +45,13 @@ const Exchange: ExchangeComponent = () => { + + diff --git a/pages/index.tsx b/pages/index.tsx index 294d3d18ac..13c33acdcc 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -9,6 +9,7 @@ import Features from 'sections/homepage/Features'; import Hero from 'sections/homepage/Hero'; import ShortList from 'sections/homepage/ShortList'; import TradeNow from 'sections/homepage/TradeNow'; +import GitHashID from 'sections/shared/Layout/AppLayout/GitHashID'; import HomeLayout from 'sections/shared/Layout/HomeLayout'; import media from 'styles/media'; @@ -37,6 +38,7 @@ const HomePage: HomePageComponent = () => { + diff --git a/pages/leaderboard/index.tsx b/pages/leaderboard/index.tsx index ad743412da..7ce65541b9 100644 --- a/pages/leaderboard/index.tsx +++ b/pages/leaderboard/index.tsx @@ -6,6 +6,7 @@ import styled from 'styled-components'; import { MobileHiddenView, MobileOnlyView } from 'components/Media'; import Leaderboard from 'sections/leaderboard/Leaderboard'; import AppLayout from 'sections/shared/Layout/AppLayout'; +import GitHashID from 'sections/shared/Layout/AppLayout/GitHashID'; import { PageContent, MainContent, FullHeightContainer } from 'styles/common'; type LeaderComponent = FC & { getLayout: (page: HTMLElement) => JSX.Element }; @@ -23,12 +24,14 @@ const Leader: LeaderComponent = () => { + + diff --git a/pages/market.tsx b/pages/market.tsx index db718eea52..0aafd2ff10 100644 --- a/pages/market.tsx +++ b/pages/market.tsx @@ -13,6 +13,7 @@ import MarketInfo from 'sections/futures/MarketInfo'; import MobileTrade from 'sections/futures/MobileTrade/MobileTrade'; import Trade from 'sections/futures/Trade'; import AppLayout from 'sections/shared/Layout/AppLayout'; +import GitHashID from 'sections/shared/Layout/AppLayout/GitHashID'; import { currentMarketState } from 'store/futures'; import { PageContent, @@ -57,10 +58,12 @@ const Market: MarketComponent = () => { + + ); diff --git a/queries/futures/useGetFuturesPositionForMarkets.ts b/queries/futures/useGetFuturesPositionForMarkets.ts index b5997c8b3b..1a4f50a26a 100644 --- a/queries/futures/useGetFuturesPositionForMarkets.ts +++ b/queries/futures/useGetFuturesPositionForMarkets.ts @@ -1,21 +1,26 @@ +import { Provider, Contract } from 'ethcall'; import { utils as ethersUtils } from 'ethers'; import { useQuery, UseQueryOptions } from 'react-query'; import { useSetRecoilState, useRecoilValue } from 'recoil'; import QUERY_KEYS from 'constants/queryKeys'; import Connector from 'containers/Connector'; +import FuturesMarketABI from 'lib/abis/FuturesMarket.json'; +import FuturesMarketDataABI from 'lib/abis/FuturesMarketData.json'; import { appReadyState } from 'store/app'; import { futuresMarketsState, futuresAccountState, positionsState } from 'store/futures'; import { isL2State } from 'store/wallet'; import { MarketKeyByAsset } from 'utils/futures'; -import { FuturesPosition } from './types'; -import { mapFuturesPosition, getFuturesMarketContract } from './utils'; +import { FuturesPosition, PositionDetail } from './types'; +import { mapFuturesPosition } from './utils'; + +const ethCallProvider = new Provider(); const useGetFuturesPositionForMarkets = (options?: UseQueryOptions) => { const isAppReady = useRecoilValue(appReadyState); const isL2 = useRecoilValue(isL2State); - const { synthetixjs, network } = Connector.useContainer(); + const { synthetixjs, network, provider } = Connector.useContainer(); const setFuturesPositions = useSetRecoilState(positionsState); const futuresMarkets = useRecoilValue(futuresMarketsState); const { selectedFuturesAddress } = useRecoilValue(futuresAccountState); @@ -25,31 +30,41 @@ const useGetFuturesPositionForMarkets = (options?: UseQueryOptions( QUERY_KEYS.Futures.MarketsPositions(network.id, assets || [], selectedFuturesAddress || ''), async () => { - if (!assets || (selectedFuturesAddress && !isL2)) { - return []; - } + if (!assets || !provider || (selectedFuturesAddress && !isL2)) return []; + + await ethCallProvider.init(provider); const { contracts: { FuturesMarketData }, } = synthetixjs!; - const positionsForMarkets = await Promise.all( - assets.map((asset) => { - return Promise.all([ - FuturesMarketData.positionDetailsForMarketKey( - ethersUtils.formatBytes32String(MarketKeyByAsset[asset]), - selectedFuturesAddress - ), - getFuturesMarketContract(asset, synthetixjs!.contracts).canLiquidate( - selectedFuturesAddress - ), - ]); - }) - ); - - const futuresPositions = positionsForMarkets.map(([position, canLiquidate], i) => - mapFuturesPosition(position, canLiquidate, assets[i]) - ); + const FMD = new Contract(FuturesMarketData.address, FuturesMarketDataABI); + + const positionCalls = []; + const liquidationCalls = []; + + for (const { market, asset } of futuresMarkets) { + positionCalls.push( + FMD.positionDetailsForMarketKey( + ethersUtils.formatBytes32String(MarketKeyByAsset[asset]), + selectedFuturesAddress + ) + ); + const marketContract = new Contract(market, FuturesMarketABI); + liquidationCalls.push(marketContract.canLiquidate(selectedFuturesAddress)); + } + + const positions = (await ethCallProvider.all(positionCalls)) as PositionDetail[]; + const canLiquidateState = (await ethCallProvider.all(liquidationCalls)) as boolean[]; + + const futuresPositions = []; + + for (let i = 0; i < futuresMarkets.length; i++) { + const position = positions[i]; + const canLiquidate = canLiquidateState[i]; + + futuresPositions.push(mapFuturesPosition(position, canLiquidate, assets[i])); + } setFuturesPositions(futuresPositions); diff --git a/queries/futures/useGetFuturesTrades.ts b/queries/futures/useGetFuturesTrades.ts index ec410de328..56ff2ba146 100644 --- a/queries/futures/useGetFuturesTrades.ts +++ b/queries/futures/useGetFuturesTrades.ts @@ -4,6 +4,7 @@ import { useRecoilValue } from 'recoil'; import { DEFAULT_NUMBER_OF_TRADES, MAX_TIMESTAMP } from 'constants/defaults'; import QUERY_KEYS from 'constants/queryKeys'; +import { notNill } from 'queries/synths/utils'; import { appReadyState } from 'store/app'; import { isL2State, isWalletConnectedState, networkState } from 'store/wallet'; import logError from 'utils/logError'; @@ -69,7 +70,7 @@ const useGetFuturesTrades = ( enabled: isWalletConnected ? isL2 && isAppReady : isAppReady, refetchInterval: 15000, getNextPageParam: (lastPage, _) => { - return lastPage + return notNill(lastPage) && lastPage?.length > 0 ? { minTs: 0, maxTs: lastPage[lastPage.length - 1].timestamp.toNumber(), @@ -77,7 +78,7 @@ const useGetFuturesTrades = ( : null; }, getPreviousPageParam: (firstPage, _) => { - return firstPage + return notNill(firstPage) && firstPage?.length > 0 ? { minTs: firstPage[0].timestamp.toNumber(), maxTs: MAX_TIMESTAMP, diff --git a/queries/futures/utils.ts b/queries/futures/utils.ts index b9cc0c9e38..4bd36d9af6 100644 --- a/queries/futures/utils.ts +++ b/queries/futures/utils.ts @@ -1,5 +1,4 @@ import { BigNumber } from '@ethersproject/bignumber'; -import { Synths } from '@synthetixio/contracts-interface'; import { ContractsMap } from '@synthetixio/contracts-interface/build/node/src/types'; import Wei, { wei } from '@synthetixio/wei'; import { utils } from 'ethers'; @@ -280,7 +279,7 @@ export const mapMarginTransfers = ( const sizeWei = new Wei(size); const cleanSize = sizeWei.div(ETH_UNIT).abs(); const isPositive = sizeWei.gt(0); - const amount = `${isPositive ? '+' : '-'}${formatCurrency(Synths.sUSD, cleanSize, { + const amount = `${isPositive ? '+' : '-'}${formatCurrency('sUSD', cleanSize, { sign: '$', })}`; const numTimestamp = wei(timestamp).toNumber(); diff --git a/queries/rates/useExchangeRatesQuery.ts b/queries/rates/useExchangeRatesQuery.ts index f0977ff75a..e6314a5bfd 100644 --- a/queries/rates/useExchangeRatesQuery.ts +++ b/queries/rates/useExchangeRatesQuery.ts @@ -18,9 +18,16 @@ type CurrencyRate = BigNumberish; type SynthRatesTuple = [string[], CurrencyRate[]]; // Additional commonly used currencies to fetch, besides the one returned by the SynthUtil.synthsRates -const additionalCurrencies = [CRYPTO_CURRENCY_MAP.SNX, 'XAU', 'XAG', 'DYDX', 'APE'].map( - ethers.utils.formatBytes32String -); +const additionalCurrencies = [ + CRYPTO_CURRENCY_MAP.SNX, + 'XAU', + 'XAG', + 'DYDX', + 'APE', + 'BNB', + 'DOGE', + 'DebtRatio', +].map(ethers.utils.formatBytes32String); const useExchangeRatesQuery = (options?: UseQueryOptions) => { const isAppReady = useRecoilValue(appReadyState); diff --git a/queries/rates/useExternalPriceQuery.ts b/queries/rates/useExternalPriceQuery.ts index e92c7286a1..3118814af8 100644 --- a/queries/rates/useExternalPriceQuery.ts +++ b/queries/rates/useExternalPriceQuery.ts @@ -1,7 +1,7 @@ import axios from 'axios'; import { UseQueryOptions, useQuery } from 'react-query'; -import { FIAT_SYNTHS, COMMODITY_SYNTHS, CurrencyKey } from 'constants/currency'; +import { FIAT_SYNTHS, COMMODITY_SYNTHS, INDEX_SYNTHS, CurrencyKey } from 'constants/currency'; import QUERY_KEYS from 'constants/queryKeys'; import { synthToAsset } from 'utils/currencies'; import { FuturesMarketKey } from 'utils/futures'; @@ -45,10 +45,12 @@ const useExternalPriceQuery = ( return useQuery( QUERY_KEYS.Rates.ExternalPrice(marketKey), async () => { - return COMMODITY_SYNTHS.has(synthToAsset(marketKey) as any) - ? getCommodityPrice(synthToAsset(marketKey) as any) - : FIAT_SYNTHS.has(marketKey as any) - ? getForexPrice(marketKey as any) + return INDEX_SYNTHS.has(synthToAsset(marketKey)) + ? null + : COMMODITY_SYNTHS.has(synthToAsset(marketKey)) + ? getCommodityPrice(synthToAsset(marketKey)) + : FIAT_SYNTHS.has(marketKey) + ? getForexPrice(marketKey) : getCoinGeckoPrice(marketKey); }, { diff --git a/queries/rates/utils.ts b/queries/rates/utils.ts index 14eb23750d..7078b285a7 100644 --- a/queries/rates/utils.ts +++ b/queries/rates/utils.ts @@ -1,5 +1,6 @@ import { wei } from '@synthetixio/wei'; +import { DEBT_RATIO_UNIT } from 'constants/network'; import { CandleResult } from 'queries/futures/subgraph'; import { SYNTHS_ENDPOINT_MAIN } from 'queries/synths/constants'; import { FuturesMarketKey } from 'utils/futures'; @@ -22,7 +23,10 @@ export const mapLaggedDailyPrices = (rates: LatestRate[]): Prices => { return rates.map((rate) => { return { synth: rate.id, - price: wei(rate.rate).toNumber(), + price: + rate.id === 'DebtRatio' + ? wei(rate.rate).div(DEBT_RATIO_UNIT).toNumber() + : wei(rate.rate).toNumber(), }; }); }; @@ -42,6 +46,9 @@ const markets = new Set([ FuturesMarketKey.sWTI, FuturesMarketKey.sDYDX, FuturesMarketKey.sAPE, + FuturesMarketKey.sBNB, + FuturesMarketKey.sDOGE, + FuturesMarketKey.sDebtRatio, ]); const map: Record = { @@ -60,6 +67,9 @@ const map: Record = { [FuturesMarketKey.sDYDX]: 'dydx', [FuturesMarketKey.sAPE]: 'apecoin', [FuturesMarketKey.sAXS]: '', + [FuturesMarketKey.sDOGE]: 'dogecoin', + [FuturesMarketKey.sBNB]: 'binancecoin', + [FuturesMarketKey.sDebtRatio]: '', }; export const synthToCoingeckoPriceId = (marketKey: FuturesMarketKey) => { @@ -75,10 +85,10 @@ export const mapCandles = (candles: CandleResult[]): Candle[] => { return { id: id, synth: synth, - open: open.toNumber(), - high: high.toNumber(), - low: low.toNumber(), - close: close.toNumber(), + open: synth === 'DebtRatio' ? open.div(DEBT_RATIO_UNIT).toNumber() : open.toNumber(), + high: synth === 'DebtRatio' ? high.div(DEBT_RATIO_UNIT).toNumber() : high.toNumber(), + low: synth === 'DebtRatio' ? low.div(DEBT_RATIO_UNIT).toNumber() : low.toNumber(), + close: synth === 'DebtRatio' ? close.div(DEBT_RATIO_UNIT).toNumber() : close.toNumber(), timestamp: timestamp.toNumber(), }; }); @@ -89,11 +99,11 @@ export const mapPriceChart = (candles: CandleResult[]): Candle[] => { return { id: id, synth: synth, - open: open.toNumber(), - high: high.toNumber(), - low: low.toNumber(), - close: close.toNumber(), - average: average.toNumber(), + open: synth === 'DebtRatio' ? open.div(DEBT_RATIO_UNIT).toNumber() : open.toNumber(), + high: synth === 'DebtRatio' ? high.div(DEBT_RATIO_UNIT).toNumber() : high.toNumber(), + low: synth === 'DebtRatio' ? low.div(DEBT_RATIO_UNIT).toNumber() : low.toNumber(), + close: synth === 'DebtRatio' ? close.div(DEBT_RATIO_UNIT).toNumber() : close.toNumber(), + average: synth === 'DebtRatio' ? average.div(DEBT_RATIO_UNIT).toNumber() : average.toNumber(), timestamp: timestamp.toNumber(), }; }); diff --git a/queries/synths/useSynthBalances.ts b/queries/synths/useSynthBalances.ts index bedead67d1..2e6fc94d84 100644 --- a/queries/synths/useSynthBalances.ts +++ b/queries/synths/useSynthBalances.ts @@ -11,6 +11,8 @@ import Connector from 'containers/Connector'; import { balancesState } from 'store/futures'; import { networkState, walletAddressState } from 'store/wallet'; +import { notNill } from './utils'; + type SynthBalancesTuple = [string[], ethers.BigNumber[], ethers.BigNumber[]]; const useSynthBalances = (options?: UseQueryOptions) => { @@ -57,7 +59,7 @@ const useSynthBalances = (options?: UseQueryOptions) => { const balances = { balancesMap: balancesMap, balances: orderBy( - Object.values(balancesMap), + Object.values(balancesMap).filter(notNill), (balance) => balance.usdBalance.toNumber(), 'desc' ), diff --git a/queries/synths/utils.ts b/queries/synths/utils.ts index 637a9f2036..dd9760e2fc 100644 --- a/queries/synths/utils.ts +++ b/queries/synths/utils.ts @@ -32,3 +32,7 @@ export const getSynthsEndpoint = (network: Network): string => { ? SYNTHS_ENDPOINT_OPTIMISM_KOVAN : SYNTHS_ENDPOINT_MAIN; }; + +export function notNill(value: Value | null | undefined): value is Value { + return value !== null && value !== undefined; +} diff --git a/sections/dashboard/Deprecated/RedeemTxModal.tsx b/sections/dashboard/Deprecated/RedeemTxModal.tsx index 8568d0b53a..a4ac6012c2 100644 --- a/sections/dashboard/Deprecated/RedeemTxModal.tsx +++ b/sections/dashboard/Deprecated/RedeemTxModal.tsx @@ -6,7 +6,7 @@ import styled from 'styled-components'; import BaseModal from 'components/BaseModal'; import Currency from 'components/Currency'; -import { CurrencyKey, Synths } from 'constants/currency'; +import { CurrencyKey } from 'constants/currency'; import { MessageButton } from 'sections/exchange/FooterCard/common'; import { FlexDivColCentered, numericValueCSS } from 'styles/common'; import { formatCryptoCurrency } from 'utils/formatters/number'; @@ -42,7 +42,7 @@ export const RedeemTxModal: FC = ({ /> ))} {t('modals.deprecated-synths.to')} - + {t('modals.confirm-transaction.confirm-with-provider')} {txError != null && ( @@ -68,7 +68,7 @@ const BalanceItem: FC<{ currencyKey: CurrencyKey; amount: Wei | null }> = ({ - {formatCryptoCurrency(amount ?? wei(0), { maxDecimals: 2 })} {Synths.sUSD} + {formatCryptoCurrency(amount ?? wei(0), { maxDecimals: 2 })} {'sUSD'} ); diff --git a/sections/dashboard/FuturesHistoryTable/FuturesHistoryTable.tsx b/sections/dashboard/FuturesHistoryTable/FuturesHistoryTable.tsx index f4fc890558..741e1dad53 100644 --- a/sections/dashboard/FuturesHistoryTable/FuturesHistoryTable.tsx +++ b/sections/dashboard/FuturesHistoryTable/FuturesHistoryTable.tsx @@ -11,7 +11,7 @@ import styled from 'styled-components'; import Currency from 'components/Currency'; import Table, { TableNoResults } from 'components/Table'; import PositionType from 'components/Text/PositionType'; -import { Synths } from 'constants/currency'; +import { DEFAULT_CRYPTO_DECIMALS } from 'constants/defaults'; import { ETH_UNIT } from 'constants/network'; import { NO_VALUE } from 'constants/placeholder'; import ROUTES from 'constants/routes'; @@ -23,7 +23,7 @@ import { TradeStatus } from 'sections/futures/types'; import { futuresAccountState } from 'store/futures'; import { isL2State } from 'store/wallet'; import { formatCryptoCurrency, formatCurrency } from 'utils/formatters/number'; -import { FuturesMarketAsset, getMarketName, MarketKeyByAsset } from 'utils/futures'; +import { FuturesMarketAsset, getMarketName, isDecimalFour, MarketKeyByAsset } from 'utils/futures'; import TimeDisplay from '../../futures/Trades/TimeDisplay'; @@ -150,13 +150,12 @@ const FuturesHistoryTable: FC = () => { Header:
{t('dashboard.history.futures-history-table.price')}
, accessor: 'price', Cell: (cellProps: CellProps) => { + const formatOptions = isDecimalFour(cellProps.row.original.asset) + ? { sign: '$', minDecimals: DEFAULT_CRYPTO_DECIMALS } + : { sign: '$' }; return conditionalRender( cellProps.row.original.price, - <> - {formatCurrency(Synths.sUSD, cellProps.value, { - sign: '$', - })} - + <>{formatCurrency('sUSD', cellProps.value, formatOptions)} ); }, width: 120, @@ -171,7 +170,7 @@ const FuturesHistoryTable: FC = () => { -- ) : ( - {formatCurrency(Synths.sUSD, cellProps.value, { + {formatCurrency('sUSD', cellProps.value, { sign: '$', })} @@ -187,7 +186,7 @@ const FuturesHistoryTable: FC = () => { return conditionalRender( cellProps.row.original.feesPaid, { ), accessor: 'oraclePrice', Cell: (cellProps: CellProps) => { - const formatOptions = isEurForex(cellProps.row.original.asset) - ? { minDecimals: DEFAULT_FIAT_EURO_DECIMALS } + const formatOptions = isDecimalFour(cellProps.row.original.asset) + ? { minDecimals: DEFAULT_CRYPTO_DECIMALS } : {}; return ( { return ( @@ -242,7 +241,7 @@ const FuturesMarketsTable: FC = () => { Cell: (cellProps: CellProps) => { return ( { {cellProps.row.original.market} @@ -320,7 +319,7 @@ const FuturesMarketsTable: FC = () => { return (
@@ -357,7 +356,7 @@ const FuturesMarketsTable: FC = () => {
diff --git a/sections/dashboard/FuturesPositionsTable/FuturesPositionsTable.tsx b/sections/dashboard/FuturesPositionsTable/FuturesPositionsTable.tsx index fffa34f7d9..2543d34354 100644 --- a/sections/dashboard/FuturesPositionsTable/FuturesPositionsTable.tsx +++ b/sections/dashboard/FuturesPositionsTable/FuturesPositionsTable.tsx @@ -12,8 +12,7 @@ import Currency from 'components/Currency'; import { DesktopOnlyView, MobileOrTabletView } from 'components/Media'; import Table, { TableNoResults } from 'components/Table'; import PositionType from 'components/Text/PositionType'; -import { Synths } from 'constants/currency'; -import { DEFAULT_FIAT_EURO_DECIMALS } from 'constants/defaults'; +import { DEFAULT_CRYPTO_DECIMALS } from 'constants/defaults'; import { NO_VALUE } from 'constants/placeholder'; import ROUTES from 'constants/routes'; import Connector from 'containers/Connector'; @@ -25,7 +24,7 @@ import { formatNumber } from 'utils/formatters/number'; import { FuturesMarketAsset, getSynthDescription, - isEurForex, + isDecimalFour, MarketKeyByAsset, } from 'utils/futures'; @@ -179,7 +178,7 @@ const FuturesPositionsTable: FC = ({ return ( = ({
= ({ ), accessor: 'avgEntryPrice', Cell: (cellProps: CellProps) => { - const formatOptions = isEurForex(cellProps.row.original.asset) - ? { minDecimals: DEFAULT_FIAT_EURO_DECIMALS } + const formatOptions = isDecimalFour(cellProps.row.original.asset) + ? { minDecimals: DEFAULT_CRYPTO_DECIMALS } : {}; return cellProps.row.original.avgEntryPrice === undefined ? ( {NO_VALUE} ) : ( = ({ ), accessor: 'liquidationPrice', Cell: (cellProps: CellProps) => { - const formatOptions = isEurForex(cellProps.row.original.asset) - ? { minDecimals: DEFAULT_FIAT_EURO_DECIMALS } + const formatOptions = isDecimalFour(cellProps.row.original.asset) + ? { minDecimals: DEFAULT_CRYPTO_DECIMALS } : {}; return ( = ({ row, onClick }) =
@@ -58,7 +57,7 @@ const MobilePositionRow: React.FC = ({ row, onClick }) =
- +
diff --git a/sections/dashboard/MobileDashboard/FuturesMarkets.tsx b/sections/dashboard/MobileDashboard/FuturesMarkets.tsx index 11d7746c58..1e06299bf1 100644 --- a/sections/dashboard/MobileDashboard/FuturesMarkets.tsx +++ b/sections/dashboard/MobileDashboard/FuturesMarkets.tsx @@ -1,7 +1,6 @@ import React, { useMemo } from 'react'; import { useRecoilValue } from 'recoil'; -import { Synths } from 'constants/currency'; import useGetFuturesDailyTradeStats from 'queries/futures/useGetFuturesDailyTradeStats'; import { SectionHeader, SectionTitle } from 'sections/futures/MobileTrade/common'; import { futuresMarketsState } from 'store/futures'; @@ -33,7 +32,7 @@ const FuturesMarkets = () => {
24h Volume
- {formatCurrency(Synths.sUSD, dailyTradeStats.data?.totalVolume ?? zeroBN, { + {formatCurrency('sUSD', dailyTradeStats.data?.totalVolume ?? zeroBN, { sign: '$', minDecimals: 0, })} @@ -42,7 +41,7 @@ const FuturesMarkets = () => {
Open Interest
- {formatCurrency(Synths.sUSD, openInterest, { + {formatCurrency('sUSD', openInterest, { sign: '$', minDecimals: 0, })} diff --git a/sections/dashboard/MobileDashboard/OpenPositions.tsx b/sections/dashboard/MobileDashboard/OpenPositions.tsx index 1de1ae7e9d..4db664eb2e 100644 --- a/sections/dashboard/MobileDashboard/OpenPositions.tsx +++ b/sections/dashboard/MobileDashboard/OpenPositions.tsx @@ -7,7 +7,6 @@ import styled from 'styled-components'; import TabButton from 'components/Button/TabButton'; import { TabPanel } from 'components/Tab'; -import { Synths } from 'constants/currency'; import useGetCurrentPortfolioValue from 'queries/futures/useGetCurrentPortfolioValue'; import useGetFuturesPositionForAccount from 'queries/futures/useGetFuturesPositionForAccount'; import { SectionHeader, SectionTitle } from 'sections/futures/MobileTrade/common'; @@ -48,12 +47,12 @@ const OpenPositions: React.FC = () => { ); const totalSpotBalancesValue = formatCurrency( - Synths.sUSD, + 'sUSD', wei(synthBalances?.totalUSDBalance ?? zeroBN), { sign: '$' } ); - const totalFuturesPortfolioValue = formatCurrency(Synths.sUSD, wei(portfolioValue ?? zeroBN), { + const totalFuturesPortfolioValue = formatCurrency('sUSD', wei(portfolioValue ?? zeroBN), { sign: '$', }); diff --git a/sections/dashboard/MobileDashboard/SynthMarkets.tsx b/sections/dashboard/MobileDashboard/SynthMarkets.tsx index aad23b7686..7e91074d4a 100644 --- a/sections/dashboard/MobileDashboard/SynthMarkets.tsx +++ b/sections/dashboard/MobileDashboard/SynthMarkets.tsx @@ -2,7 +2,6 @@ import useSynthetixQueries from '@synthetixio/queries'; import React from 'react'; import { useRecoilValue } from 'recoil'; -import { Synths } from 'constants/currency'; import useGetFuturesDailyTradeStats from 'queries/futures/useGetFuturesDailyTradeStats'; import { SectionHeader, SectionTitle } from 'sections/futures/MobileTrade/common'; import { futuresMarketsState } from 'store/futures'; @@ -37,7 +36,7 @@ const SynthMarkets: React.FC = () => {
24h Volume
- {formatCurrency(Synths.sUSD, dailyTradeStats.data?.totalVolume || zeroBN, { + {formatCurrency('sUSD', dailyTradeStats.data?.totalVolume || zeroBN, { sign: '$', minDecimals: 0, })} @@ -46,7 +45,7 @@ const SynthMarkets: React.FC = () => {
Open Interest
- {formatCurrency(Synths.sUSD, openInterest ?? 0, { + {formatCurrency('sUSD', openInterest ?? 0, { sign: '$', minDecimals: 0, })} diff --git a/sections/dashboard/Overview/Overview.tsx b/sections/dashboard/Overview/Overview.tsx index 4691f18c2a..3f9a055b51 100644 --- a/sections/dashboard/Overview/Overview.tsx +++ b/sections/dashboard/Overview/Overview.tsx @@ -1,4 +1,3 @@ -import { Synths } from '@synthetixio/contracts-interface'; import useSynthetixQueries from '@synthetixio/queries'; import { wei } from '@synthetixio/wei'; import { FC, useState, useMemo } from 'react'; @@ -58,12 +57,12 @@ const Overview: FC = () => { const [activeMarketsTab, setActiveMarketsTab] = useState(MarketsTab.FUTURES); const totalSpotBalancesValue = formatCurrency( - Synths.sUSD, + 'sUSD', wei(synthBalances?.totalUSDBalance ?? zeroBN), { sign: '$' } ); - const totalFuturesPortfolioValue = formatCurrency(Synths.sUSD, wei(portfolioValue ?? zeroBN), { + const totalFuturesPortfolioValue = formatCurrency('sUSD', wei(portfolioValue ?? zeroBN), { sign: '$', }); diff --git a/sections/dashboard/PortfolioChart/PortfolioChart.tsx b/sections/dashboard/PortfolioChart/PortfolioChart.tsx index 3e55187a29..2d062e967b 100644 --- a/sections/dashboard/PortfolioChart/PortfolioChart.tsx +++ b/sections/dashboard/PortfolioChart/PortfolioChart.tsx @@ -5,7 +5,6 @@ import styled from 'styled-components'; import Currency from 'components/Currency'; import { MobileHiddenView, MobileOnlyView } from 'components/Media'; -import { Synths } from 'constants/currency'; import useGetCurrentPortfolioValue from 'queries/futures/useGetCurrentPortfolioValue'; import { walletAddressState } from 'store/wallet'; import { zeroBN } from 'utils/formatters/number'; @@ -26,11 +25,11 @@ const PortfolioChart: FC = () => { Portfolio Value - + - + diff --git a/sections/dashboard/SpotHistoryTable/SpotHistoryTable.tsx b/sections/dashboard/SpotHistoryTable/SpotHistoryTable.tsx index e1557f6423..bcd6638013 100644 --- a/sections/dashboard/SpotHistoryTable/SpotHistoryTable.tsx +++ b/sections/dashboard/SpotHistoryTable/SpotHistoryTable.tsx @@ -1,4 +1,3 @@ -import { Synths } from '@synthetixio/contracts-interface'; import type { SynthExchangeResult } from '@synthetixio/queries/build/node/generated/mainSubgraphQueries'; import * as _ from 'lodash/fp'; import values from 'lodash/values'; @@ -21,7 +20,6 @@ import useSelectedPriceCurrency from 'hooks/useSelectedPriceCurrency'; import useGetWalletTrades from 'queries/synths/useGetWalletTrades'; import { walletAddressState } from 'store/wallet'; import { ExternalLink } from 'styles/common'; -import { isFiatCurrency } from 'utils/currencies'; import TimeDisplay from '../../futures/Trades/TimeDisplay'; @@ -119,7 +117,7 @@ const SpotHistoryTable: FC = () => { { { price={cellProps.row.original.toAmountInUSD} sign={selectedPriceCurrency.sign} conversionRate={selectPriceCurrencyRate} - formatOptions={ - isFiatCurrency(currencyKey) - ? { - currencyKey: undefined, - sign: selectedPriceCurrency.sign, - } - : { - currencyKey: selectedPriceCurrency.sign, - sign: undefined, - } - } + formatOptions={{ + currencyKey: undefined, + sign: selectedPriceCurrency.sign, + }} /> ); }, diff --git a/sections/dashboard/SpotMarketsTable/SpotMarketsTable.tsx b/sections/dashboard/SpotMarketsTable/SpotMarketsTable.tsx index ed05242b07..9b6a53f053 100644 --- a/sections/dashboard/SpotMarketsTable/SpotMarketsTable.tsx +++ b/sections/dashboard/SpotMarketsTable/SpotMarketsTable.tsx @@ -1,4 +1,4 @@ -import { Synth, Synths } from '@synthetixio/contracts-interface'; +import { Synth } from '@synthetixio/contracts-interface'; import * as _ from 'lodash/fp'; import values from 'lodash/values'; import { useRouter } from 'next/router'; @@ -14,13 +14,13 @@ import ChangePercent from 'components/ChangePercent'; import Currency from 'components/Currency'; import Table from 'components/Table'; import { CurrencyKey } from 'constants/currency'; -import { DEFAULT_FIAT_EURO_DECIMALS } from 'constants/defaults'; +import { DEFAULT_CRYPTO_DECIMALS } from 'constants/defaults'; import Connector from 'containers/Connector'; import { Price, Rates } from 'queries/rates/types'; import useGetSynthsTradingVolumeForAllMarkets from 'queries/synths/useGetSynthsTradingVolumeForAllMarkets'; import { pastRatesState } from 'store/futures'; import { networkState } from 'store/wallet'; -import { isEurForex, MarketKeyByAsset, FuturesMarketAsset } from 'utils/futures'; +import { isDecimalFour, MarketKeyByAsset, FuturesMarketAsset } from 'utils/futures'; type SpotMarketsTableProps = { exchangeRates: Rates | null; @@ -127,12 +127,12 @@ const SpotMarketsTable: FC = ({ exchangeRates }) => { Header: {t('dashboard.overview.spot-markets-table.price')}, accessor: 'price', Cell: (cellProps: CellProps) => { - const formatOptions = isEurForex(cellProps.row.original.asset) - ? { minDecimals: DEFAULT_FIAT_EURO_DECIMALS } + const formatOptions = isDecimalFour(cellProps.row.original.asset) + ? { minDecimals: DEFAULT_CRYPTO_DECIMALS } : {}; return ( = ({ exchangeRates }) => { Cell: (cellProps: CellProps) => { return ( = ({ return conditionalRender( cellProps.row.original.usdBalance, = ({ return conditionalRender( cellProps.row.original.price, ); @@ -254,11 +254,11 @@ const SynthBalancesTable: FC = ({ {cellProps.row.original.synth} @@ -280,7 +280,7 @@ const SynthBalancesTable: FC = ({
{formatNumber(cellProps.row.original.balance ?? 0)}
diff --git a/sections/exchange/FooterCard/NoSynthsCard/NoSynthsCard.tsx b/sections/exchange/FooterCard/NoSynthsCard/NoSynthsCard.tsx index b788ac5f39..190190b80d 100644 --- a/sections/exchange/FooterCard/NoSynthsCard/NoSynthsCard.tsx +++ b/sections/exchange/FooterCard/NoSynthsCard/NoSynthsCard.tsx @@ -4,7 +4,6 @@ import { useTranslation, Trans } from 'react-i18next'; import { useRecoilValue } from 'recoil'; import { DesktopOnlyView, MobileOrTabletView } from 'components/Media'; -import { Synths } from 'constants/currency'; import { EXTERNAL_LINKS } from 'constants/links'; import ROUTES from 'constants/routes'; import { isL2State } from 'store/wallet'; @@ -12,8 +11,6 @@ import { NoTextTransform, ExternalLink } from 'styles/common'; import { MessageContainer, Message, MessageButton, FixedMessageContainerSpacer } from '../common'; -const { sUSD } = Synths; - type NoSynthsCardProps = { attached?: boolean; }; @@ -33,7 +30,7 @@ const NoSynthsCard: FC = ({ attached }) => { ]} /> @@ -44,7 +41,7 @@ const NoSynthsCard: FC = ({ attached }) => { ]} /> @@ -55,7 +52,7 @@ const NoSynthsCard: FC = ({ attached }) => { ]} /> diff --git a/sections/exchange/MobileSwap/SwapInfoBox.tsx b/sections/exchange/MobileSwap/SwapInfoBox.tsx index f7b5584931..edca751702 100644 --- a/sections/exchange/MobileSwap/SwapInfoBox.tsx +++ b/sections/exchange/MobileSwap/SwapInfoBox.tsx @@ -7,7 +7,6 @@ import styled from 'styled-components'; import TimerIcon from 'assets/svg/app/timer.svg'; import InfoBox from 'components/InfoBox'; import StyledTooltip from 'components/Tooltip/StyledTooltip'; -import { Synths } from 'constants/currency'; import { NO_VALUE } from 'constants/placeholder'; import { useExchangeContext } from 'contexts/ExchangeContext'; import { parseGasPriceObject } from 'hooks/useGas'; @@ -35,7 +34,7 @@ const SwapInfoBox: React.FC = () => { const formattedTransactionFee = React.useMemo(() => { return transactionFee - ? formatCurrency(Synths.sUSD, transactionFee, { sign: '$', maxDecimals: 1 }) + ? formatCurrency('sUSD', transactionFee, { sign: '$', maxDecimals: 1 }) : NO_VALUE; }, [transactionFee]); @@ -83,7 +82,7 @@ const SwapInfoBox: React.FC = () => { [t('common.summary.fee-cost')]: { value: feeCost != null - ? formatCurrency(Synths.sUSD, feeCost, { + ? formatCurrency('sUSD', feeCost, { sign: '$', minDecimals: feeCost.lt(0.01) ? 4 : 2, }) diff --git a/sections/futures/FuturesMarketTabs/FuturesMarketTab.tsx b/sections/futures/FuturesMarketTabs/FuturesMarketTab.tsx index b4e57c1bb9..1cbceccb37 100644 --- a/sections/futures/FuturesMarketTabs/FuturesMarketTab.tsx +++ b/sections/futures/FuturesMarketTabs/FuturesMarketTab.tsx @@ -9,13 +9,12 @@ import MarketBadge from 'components/Badge/MarketBadge'; import ChangePercent from 'components/ChangePercent'; import Currency from 'components/Currency'; import Table from 'components/Table'; -import { Synths } from 'constants/currency'; -import { DEFAULT_FIAT_EURO_DECIMALS } from 'constants/defaults'; +import { DEFAULT_CRYPTO_DECIMALS } from 'constants/defaults'; import ROUTES from 'constants/routes'; import useGetFuturesTradingVolumeForAllMarkets from 'queries/futures/useGetFuturesTradingVolumeForAllMarkets'; import { futuresMarketsState, pastRatesState } from 'store/futures'; import { FlexDivCol } from 'styles/common'; -import { FuturesMarketAsset, isEurForex, MarketKeyByAsset } from 'utils/futures'; +import { FuturesMarketAsset, isDecimalFour, MarketKeyByAsset } from 'utils/futures'; enum TableColumnAccessor { Market = 'market', @@ -65,8 +64,8 @@ const FuturesMarketsTable: FC = () => { Header: {t('futures.market.sidebar-tab.market-price')}, accessor: TableColumnAccessor.Market, Cell: (cellProps: CellProps) => { - const formatOptions = isEurForex(cellProps.row.original.asset) - ? { minDecimals: DEFAULT_FIAT_EURO_DECIMALS } + const formatOptions = isDecimalFour(cellProps.row.original.asset) + ? { minDecimals: DEFAULT_CRYPTO_DECIMALS } : {}; return ( @@ -87,7 +86,7 @@ const FuturesMarketsTable: FC = () => { 0}> { { export default TradingHistory; const Panel = styled.div` - height: 100%; - padding-bottom: 48px; + padding-bottom: 20px; `; diff --git a/sections/futures/MarketDetails/MarketDetails.tsx b/sections/futures/MarketDetails/MarketDetails.tsx index e2e6f15a37..251ae04d3c 100644 --- a/sections/futures/MarketDetails/MarketDetails.tsx +++ b/sections/futures/MarketDetails/MarketDetails.tsx @@ -1,4 +1,3 @@ -import { Synths } from '@synthetixio/contracts-interface'; import React, { useMemo } from 'react'; import { useTranslation } from 'react-i18next'; import { useRecoilValue } from 'recoil'; @@ -39,7 +38,7 @@ const MarketDetails: React.FC = ({ mobile }) => { const longText = useMemo(() => { return ( marketInfo?.openInterest && - formatCurrency(Synths.sUSD, marketInfo.openInterest.longUSD, { + formatCurrency('sUSD', marketInfo.openInterest.longUSD, { sign: '$', maxDecimals: 2, ...(marketInfo?.openInterest?.longUSD.gt(1e6) @@ -52,7 +51,7 @@ const MarketDetails: React.FC = ({ mobile }) => { const shortText = useMemo(() => { return ( marketInfo?.openInterest && - formatCurrency(Synths.sUSD, marketInfo.openInterest.shortUSD, { + formatCurrency('sUSD', marketInfo.openInterest.shortUSD, { sign: '$', maxDecimals: 2, ...(marketInfo?.openInterest?.shortUSD.gt(1e6) diff --git a/sections/futures/MarketDetails/useGetMarketData.ts b/sections/futures/MarketDetails/useGetMarketData.ts index 492447104c..963211385e 100644 --- a/sections/futures/MarketDetails/useGetMarketData.ts +++ b/sections/futures/MarketDetails/useGetMarketData.ts @@ -2,7 +2,7 @@ import { wei } from '@synthetixio/wei'; import React from 'react'; import { useRecoilValue } from 'recoil'; -import { DEFAULT_FIAT_EURO_DECIMALS } from 'constants/defaults'; +import { DEFAULT_CRYPTO_DECIMALS } from 'constants/defaults'; import { NO_VALUE } from 'constants/placeholder'; import useSelectedPriceCurrency from 'hooks/useSelectedPriceCurrency'; import useGetFuturesDailyTradeStatsForMarket from 'queries/futures/useGetFuturesDailyTrades'; @@ -17,7 +17,7 @@ import { } from 'store/futures'; import { isFiatCurrency } from 'utils/currencies'; import { formatCurrency, formatPercent, zeroBN } from 'utils/formatters/number'; -import { isEurForex } from 'utils/futures'; +import { isDecimalFour } from 'utils/futures'; type MarketData = Record; @@ -39,8 +39,8 @@ const useGetMarketData = (mobile?: boolean) => { const externalPriceQuery = useExternalPriceQuery(marketKey); const externalPrice = externalPriceQuery?.data ?? 0; const minDecimals = - isFiatCurrency(selectedPriceCurrency.name) && isEurForex(marketKey) - ? DEFAULT_FIAT_EURO_DECIMALS + isFiatCurrency(selectedPriceCurrency.name) && isDecimalFour(marketKey) + ? DEFAULT_CRYPTO_DECIMALS : undefined; const pastPrice = pastRates.find((price) => price.synth === marketAsset); diff --git a/sections/futures/MarketDetails/utils.ts b/sections/futures/MarketDetails/utils.ts index 63238eb705..3255031a00 100644 --- a/sections/futures/MarketDetails/utils.ts +++ b/sections/futures/MarketDetails/utils.ts @@ -1,15 +1,13 @@ -import { Synths } from 'constants/currency'; - const markets = [ - Synths.sETH, - Synths.sBTC, - Synths.sLINK, - Synths.sSOL, - Synths.sAVAX, - Synths.sMATIC, - Synths.sAAVE, - Synths.sUNI, - Synths.sEUR, + 'sETH', + 'sBTC', + 'sLINK', + 'sSOL', + 'sAVAX', + 'sMATIC', + 'sAAVE', + 'sUNI', + 'sEUR', 'sXAU', 'sXAG', 'sWTI', @@ -18,15 +16,15 @@ const markets = [ ] as const; const map: Record = { - [Synths.sETH]: 'ethereum', - [Synths.sBTC]: 'bitcoin', - [Synths.sLINK]: 'chainlink', - [Synths.sSOL]: 'solana', - [Synths.sAVAX]: 'avalanche-2', - [Synths.sMATIC]: 'matic-network', - [Synths.sAAVE]: 'aave', - [Synths.sUNI]: 'uniswap', - [Synths.sEUR]: 'euro', + sETH: 'ethereum', + sBTC: 'bitcoin', + sLINK: 'chainlink', + sSOL: 'solana', + sAVAX: 'avalanche-2', + sMATIC: 'matic-network', + sAAVE: 'aave', + sUNI: 'uniswap', + sEUR: 'euro', sXAU: '', sXAG: '', sWTI: '', diff --git a/sections/futures/MarketInfo/MarketInfo.tsx b/sections/futures/MarketInfo/MarketInfo.tsx index 4778862686..9662a28a7d 100644 --- a/sections/futures/MarketInfo/MarketInfo.tsx +++ b/sections/futures/MarketInfo/MarketInfo.tsx @@ -4,10 +4,11 @@ import { useTranslation } from 'react-i18next'; import { useRecoilValue } from 'recoil'; import styled from 'styled-components'; +import { DEFAULT_CRYPTO_DECIMALS } from 'constants/defaults'; import useSelectedPriceCurrency from 'hooks/useSelectedPriceCurrency'; import { currentMarketState, marketAssetRateState } from 'store/futures'; import { formatCurrency } from 'utils/formatters/number'; -import { getDisplayAsset } from 'utils/futures'; +import { getDisplayAsset, isDecimalFour } from 'utils/futures'; import MarketDetails from '../MarketDetails'; import PositionChart from '../PositionChart'; @@ -32,6 +33,10 @@ const MarketInfo: FC = () => { marketName, rate: formatCurrency(selectedPriceCurrency.name, basePriceRate, { currencyKey: selectedPriceCurrency.name, + minDecimals: + marketName != null && isDecimalFour(marketName) + ? DEFAULT_CRYPTO_DECIMALS + : undefined, }), }) : t('futures.market.page-title')} @@ -45,7 +50,7 @@ const MarketInfo: FC = () => { }; const Container = styled.div` - padding-bottom: 48px; + padding-bottom: 20px; `; export default MarketInfo; diff --git a/sections/futures/MarketInfoBox/MarketInfoBox.tsx b/sections/futures/MarketInfoBox/MarketInfoBox.tsx index 3b55512c18..8820426def 100644 --- a/sections/futures/MarketInfoBox/MarketInfoBox.tsx +++ b/sections/futures/MarketInfoBox/MarketInfoBox.tsx @@ -5,7 +5,6 @@ import styled from 'styled-components'; import InfoBox from 'components/InfoBox'; import PreviewArrow from 'components/PreviewArrow'; -import { Synths } from 'constants/currency'; import { FuturesPotentialTradeDetails } from 'queries/futures/types'; import { crossMarginAvailableMarginState, @@ -125,32 +124,32 @@ const MarketInfoBox: React.FC = () => { dataTestId="market-info-box" details={{ 'Total Margin': { - value: `${formatCurrency(Synths.sUSD, totalMargin, { - currencyKey: Synths.sUSD, + value: `${formatCurrency('sUSD', totalMargin, { + currencyKey: 'sUSD', sign: '$', })}`, }, 'Available Margin': { - value: `${formatCurrency(Synths.sUSD, availableMargin, { + value: `${formatCurrency('sUSD', availableMargin, { currencyKey: undefined, sign: '$', })}`, valueNode: ( - {formatCurrency(Synths.sUSD, previewTradeData?.availableMargin, { + {formatCurrency('sUSD', previewTradeData?.availableMargin, { sign: '$', })} ), }, 'Buying Power': { - value: `${formatCurrency(Synths.sUSD, buyingPower, { + value: `${formatCurrency('sUSD', buyingPower, { currencyKey: undefined, sign: '$', })}`, valueNode: previewTradeData?.buyingPower && ( - {formatCurrency(Synths.sUSD, previewTradeData?.buyingPower, { + {formatCurrency('sUSD', previewTradeData?.buyingPower, { sign: '$', })} diff --git a/sections/futures/MobileTrade/drawers/TradeConfirmationDrawer.tsx b/sections/futures/MobileTrade/drawers/TradeConfirmationDrawer.tsx index b1ee4f984e..5e3f6d9ebe 100644 --- a/sections/futures/MobileTrade/drawers/TradeConfirmationDrawer.tsx +++ b/sections/futures/MobileTrade/drawers/TradeConfirmationDrawer.tsx @@ -5,7 +5,7 @@ import { useRecoilValue } from 'recoil'; import styled from 'styled-components'; import Button from 'components/Button'; -import { Synths, CurrencyKey } from 'constants/currency'; +import { CurrencyKey } from 'constants/currency'; import Connector from 'containers/Connector'; import { useFuturesContext } from 'contexts/FuturesContext'; import useSelectedPriceCurrency from 'hooks/useSelectedPriceCurrency'; @@ -42,7 +42,7 @@ const TradeConfirmationDrawer: React.FC = ({ open, ); const ethPriceRate = useMemo( - () => newGetExchangeRatesForCurrencies(exchangeRates, Synths.sETH, selectedPriceCurrency.name), + () => newGetExchangeRatesForCurrencies(exchangeRates, 'sETH', selectedPriceCurrency.name), [exchangeRates, selectedPriceCurrency.name] ); @@ -82,21 +82,21 @@ const TradeConfirmationDrawer: React.FC = ({ open, { label: 'leverage', value: `${formatNumber(positionDetails?.leverage ?? zeroBN)}x` }, { label: 'current price', - value: formatCurrency(Synths.sUSD, positionDetails?.price ?? zeroBN, { sign: '$' }), + value: formatCurrency('sUSD', positionDetails?.price ?? zeroBN, { sign: '$' }), }, { label: 'liquidation price', - value: formatCurrency(Synths.sUSD, positionDetails?.liqPrice ?? zeroBN, { + value: formatCurrency('sUSD', positionDetails?.liqPrice ?? zeroBN, { sign: '$', }), }, { label: 'margin', - value: formatCurrency(Synths.sUSD, positionDetails?.margin ?? zeroBN, { sign: '$' }), + value: formatCurrency('sUSD', positionDetails?.margin ?? zeroBN, { sign: '$' }), }, { label: 'protocol fee', - value: formatCurrency(Synths.sUSD, positionDetails?.fee ?? zeroBN, { sign: '$' }), + value: formatCurrency('sUSD', positionDetails?.fee ?? zeroBN, { sign: '$' }), }, { label: 'network gas fee', diff --git a/sections/futures/MobileTrade/drawers/TradeDrawer.tsx b/sections/futures/MobileTrade/drawers/TradeDrawer.tsx index 46babd4f5a..1d3d6438be 100644 --- a/sections/futures/MobileTrade/drawers/TradeDrawer.tsx +++ b/sections/futures/MobileTrade/drawers/TradeDrawer.tsx @@ -2,7 +2,6 @@ import { wei } from '@synthetixio/wei'; import React from 'react'; import styled, { css } from 'styled-components'; -import { Synths } from 'constants/currency'; import { PositionSide } from 'queries/futures/types'; import TimeDisplay from 'sections/futures/Trades/TimeDisplay'; import { formatCryptoCurrency, formatCurrency } from 'utils/formatters/number'; @@ -39,7 +38,7 @@ const TradeDrawer: React.FC = ({ trade, closeDrawer }) => { { label: 'Size', value: formatCryptoCurrency(trade.amount) }, { label: 'Price', - value: formatCurrency(Synths.sUSD, trade.value, { + value: formatCurrency('sUSD', trade.value, { sign: '$', }), }, @@ -50,7 +49,7 @@ const TradeDrawer: React.FC = ({ trade, closeDrawer }) => { -- ) : ( - {formatCurrency(Synths.sUSD, trade.pnl, { + {formatCurrency('sUSD', trade.pnl, { sign: '$', })} @@ -60,7 +59,7 @@ const TradeDrawer: React.FC = ({ trade, closeDrawer }) => { label: 'Fees', value: trade.feesPaid.eq(0) ? '--' - : formatCurrency(Synths.sUSD, trade.feesPaid, { + : formatCurrency('sUSD', trade.feesPaid, { sign: '$', }), }, diff --git a/sections/futures/OrderSizing/OrderSizing.tsx b/sections/futures/OrderSizing/OrderSizing.tsx index cf34bfb008..2279501a27 100644 --- a/sections/futures/OrderSizing/OrderSizing.tsx +++ b/sections/futures/OrderSizing/OrderSizing.tsx @@ -3,7 +3,6 @@ import { useRecoilValue } from 'recoil'; import styled from 'styled-components'; import CustomInput from 'components/Input/CustomInput'; -import { Synths } from 'constants/currency'; import { useFuturesContext } from 'contexts/FuturesContext'; import { currentMarketState, @@ -51,7 +50,7 @@ const OrderSizing: React.FC = ({ disabled }) => { onTradeAmountChange(v)} @@ -66,7 +65,7 @@ const OrderSizing: React.FC = ({ disabled }) => { onTradeAmountSUSDChange(v)} diff --git a/sections/futures/PositionCard/ClosePositionModal.tsx b/sections/futures/PositionCard/ClosePositionModal.tsx index 75d3dcca1a..84bd88155e 100644 --- a/sections/futures/PositionCard/ClosePositionModal.tsx +++ b/sections/futures/PositionCard/ClosePositionModal.tsx @@ -10,7 +10,6 @@ import styled from 'styled-components'; import BaseModal from 'components/BaseModal'; import Button from 'components/Button'; import Error from 'components/Error'; -import { Synths } from 'constants/currency'; import Connector from 'containers/Connector'; import TransactionNotifier from 'containers/TransactionNotifier'; import { useRefetchContext } from 'contexts/RefetchContext'; @@ -57,7 +56,7 @@ const ClosePositionModal: FC = ({ onDismiss }) => { ); const ethPriceRate = useMemo( - () => newGetExchangeRatesForCurrencies(exchangeRates, Synths.sETH, selectedPriceCurrency.name), + () => newGetExchangeRatesForCurrencies(exchangeRates, 'sETH', selectedPriceCurrency.name), [exchangeRates, selectedPriceCurrency.name] ); @@ -122,11 +121,11 @@ const ClosePositionModal: FC = ({ onDismiss }) => { }, { label: t('futures.market.user.position.modal.ROI'), - value: formatCurrency(Synths.sUSD, positionDetails?.roi ?? zeroBN, { sign: '$' }), + value: formatCurrency('sUSD', positionDetails?.roi ?? zeroBN, { sign: '$' }), }, { label: t('futures.market.user.position.modal.fee'), - value: formatCurrency(Synths.sUSD, orderFee, { sign: '$' }), + value: formatCurrency('sUSD', orderFee, { sign: '$' }), }, { label: t('futures.market.user.position.modal.gas-fee'), diff --git a/sections/futures/PositionCard/PositionCard.tsx b/sections/futures/PositionCard/PositionCard.tsx index 251bdfcb0d..c0ab94942c 100644 --- a/sections/futures/PositionCard/PositionCard.tsx +++ b/sections/futures/PositionCard/PositionCard.tsx @@ -6,8 +6,7 @@ import styled, { css } from 'styled-components'; import PreviewArrow from 'components/PreviewArrow'; import StyledTooltip from 'components/Tooltip/StyledTooltip'; -import { Synths } from 'constants/currency'; -import { DEFAULT_FIAT_EURO_DECIMALS } from 'constants/defaults'; +import { DEFAULT_CRYPTO_DECIMALS } from 'constants/defaults'; import { NO_VALUE } from 'constants/placeholder'; import Connector from 'containers/Connector'; import { useFuturesContext } from 'contexts/FuturesContext'; @@ -26,7 +25,7 @@ import media from 'styles/media'; import { isFiatCurrency } from 'utils/currencies'; import { formatCurrency, formatPercent, zeroBN } from 'utils/formatters/number'; import { formatNumber } from 'utils/formatters/number'; -import { getMarketName, getSynthDescription, isEurForex, MarketKeyByAsset } from 'utils/futures'; +import { getMarketName, getSynthDescription, isDecimalFour, MarketKeyByAsset } from 'utils/futures'; type PositionCardProps = { dashboard?: boolean; @@ -79,8 +78,8 @@ const PositionCard: React.FC = () => { const { selectedPriceCurrency } = useSelectedPriceCurrency(); const minDecimals = - isFiatCurrency(selectedPriceCurrency.name) && isEurForex(marketKey) - ? DEFAULT_FIAT_EURO_DECIMALS + isFiatCurrency(selectedPriceCurrency.name) && isDecimalFour(marketKey) + ? DEFAULT_CRYPTO_DECIMALS : undefined; const positionHistory = futuresPositions?.find( @@ -140,9 +139,9 @@ const PositionCard: React.FC = () => { currencyIconKey: MarketKeyByAsset[marketAsset], marketShortName: marketAsset ? getMarketName(marketAsset) : 'Select a market', marketLongName: getSynthDescription(marketAsset, synthsMap, t), - marketPrice: formatCurrency(Synths.sUSD, marketAssetRate, { + marketPrice: formatCurrency('sUSD', marketAssetRate, { sign: '$', - minDecimals: marketAssetRate.lt(0.01) ? 4 : 2, + minDecimals, }), positionSide: positionDetails ? ( = () => { <> {`${formatNumber(positionDetails.size ?? 0, { minDecimals: positionDetails.size.abs().lt(0.01) ? 4 : 2, - })} (${formatCurrency(Synths.sUSD, positionDetails.notionalValue?.abs() ?? zeroBN, { + })} (${formatCurrency('sUSD', positionDetails.notionalValue?.abs() ?? zeroBN, { sign: '$', minDecimals: positionDetails.notionalValue?.abs()?.lt(0.01) ? 4 : 2, })})`} @@ -181,7 +180,7 @@ const PositionCard: React.FC = () => { > {`${formatNumber(previewData.positionSize ?? 0, { minDecimals: 2, - })} (${formatCurrency(Synths.sUSD, previewData.notionalValue?.abs() ?? zeroBN, { + })} (${formatCurrency('sUSD', previewData.notionalValue?.abs() ?? zeroBN, { sign: '$', minDecimals: 2, })})`} @@ -204,13 +203,13 @@ const PositionCard: React.FC = () => { ), liquidationPrice: positionDetails ? ( <> - {formatCurrency(Synths.sUSD, positionDetails?.liquidationPrice ?? zeroBN, { + {formatCurrency('sUSD', positionDetails?.liquidationPrice ?? zeroBN, { sign: '$', minDecimals, })} { - {formatCurrency(Synths.sUSD, previewData?.liquidationPrice ?? zeroBN, { + {formatCurrency('sUSD', previewData?.liquidationPrice ?? zeroBN, { sign: '$', minDecimals, })} @@ -224,39 +223,39 @@ const PositionCard: React.FC = () => { realizedPnl: realizedPnl, pnlText: positionDetails && pnl - ? `${formatCurrency(Synths.sUSD, pnl, { + ? `${formatCurrency('sUSD', pnl, { sign: '$', minDecimals: pnl.abs().lt(0.01) ? 4 : 2, })} (${formatPercent(pnlPct)})` : NO_VALUE, realizedPnlText: positionHistory && realizedPnl - ? `${formatCurrency(Synths.sUSD, realizedPnl, { + ? `${formatCurrency('sUSD', realizedPnl, { sign: '$', minDecimals: realizedPnl.abs().lt(0.01) ? 4 : 2, })} (${formatPercent(realizedPnlPct)})` : NO_VALUE, netFunding: netFunding, netFundingText: netFunding - ? `${formatCurrency(Synths.sUSD, netFunding, { + ? `${formatCurrency('sUSD', netFunding, { sign: '$', minDecimals: netFunding.abs().lt(0.01) ? 4 : 2, })}` : null, fees: positionDetails - ? formatCurrency(Synths.sUSD, positionHistory?.feesPaid ?? zeroBN, { + ? formatCurrency('sUSD', positionHistory?.feesPaid ?? zeroBN, { sign: '$', }) : NO_VALUE, avgEntryPrice: positionDetails ? ( <> - {formatCurrency(Synths.sUSD, positionHistory?.entryPrice ?? zeroBN, { + {formatCurrency('sUSD', positionHistory?.entryPrice ?? zeroBN, { sign: '$', minDecimals, })} { - {formatCurrency(Synths.sUSD, previewData.avgEntryPrice ?? zeroBN, { + {formatCurrency('sUSD', previewData.avgEntryPrice ?? zeroBN, { sign: '$', minDecimals, })} diff --git a/sections/futures/Trade/DepositMarginModal.tsx b/sections/futures/Trade/DepositMarginModal.tsx index f0cda69073..4407ff7b58 100644 --- a/sections/futures/Trade/DepositMarginModal.tsx +++ b/sections/futures/Trade/DepositMarginModal.tsx @@ -9,7 +9,6 @@ import BaseModal from 'components/BaseModal'; import Button from 'components/Button'; import Error from 'components/Error'; import CustomInput from 'components/Input/CustomInput'; -import { Synths } from 'constants/currency'; import { NO_VALUE } from 'constants/placeholder'; import TransactionNotifier from 'containers/TransactionNotifier'; import { useRefetchContext } from 'contexts/RefetchContext'; @@ -50,7 +49,7 @@ const DepositMarginModal: React.FC = ({ onDismiss, sUSD ); const ethPriceRate = React.useMemo( - () => newGetExchangeRatesForCurrencies(exchangeRates, Synths.sETH, selectedPriceCurrency.name), + () => newGetExchangeRatesForCurrencies(exchangeRates, 'sETH', selectedPriceCurrency.name), [exchangeRates, selectedPriceCurrency.name] ); @@ -117,7 +116,7 @@ const DepositMarginModal: React.FC = ({ onDismiss, sUSD {t('futures.market.trade.margin.modal.balance')}: - {formatCurrency(Synths.sUSD, sUSDBalance, { sign: '$' })} sUSD + {formatCurrency('sUSD', sUSDBalance, { sign: '$' })} sUSD = ({ onDismiss, sUSD {transactionFee - ? formatCurrency(Synths.sUSD, transactionFee, { sign: '$', maxDecimals: 1 }) + ? formatCurrency('sUSD', transactionFee, { sign: '$', maxDecimals: 1 }) : NO_VALUE} diff --git a/sections/futures/Trade/MarketActions.tsx b/sections/futures/Trade/MarketActions.tsx index 3e5ebe9141..4ac42591b4 100644 --- a/sections/futures/Trade/MarketActions.tsx +++ b/sections/futures/Trade/MarketActions.tsx @@ -5,7 +5,6 @@ import { useRecoilValue } from 'recoil'; import styled from 'styled-components'; import Button from 'components/Button'; -import { Synths } from 'constants/currency'; import { futuresAccountState, marketInfoState, positionState } from 'store/futures'; import { isL2State } from 'store/wallet'; import { zeroBN } from 'utils/formatters/number'; @@ -23,7 +22,7 @@ const MarketActions: React.FC = () => { const { useSynthsBalancesQuery } = useSynthetixQueries(); const synthsBalancesQuery = useSynthsBalancesQuery(selectedFuturesAddress); - const sUSDBalance = synthsBalancesQuery?.data?.balancesMap?.[Synths.sUSD]?.balance ?? zeroBN; + const sUSDBalance = synthsBalancesQuery?.data?.balancesMap?.['sUSD']?.balance ?? zeroBN; return ( <> diff --git a/sections/futures/Trade/MarketsDropdown.tsx b/sections/futures/Trade/MarketsDropdown.tsx index b29a0a11a5..2df221fa72 100644 --- a/sections/futures/Trade/MarketsDropdown.tsx +++ b/sections/futures/Trade/MarketsDropdown.tsx @@ -7,7 +7,7 @@ import { useRecoilValue } from 'recoil'; import styled, { css } from 'styled-components'; import Select from 'components/Select'; -import { DEFAULT_FIAT_EURO_DECIMALS } from 'constants/defaults'; +import { DEFAULT_CRYPTO_DECIMALS } from 'constants/defaults'; import ROUTES from 'constants/routes'; import Connector from 'containers/Connector'; import useFuturesMarketClosed, { FuturesClosureReason } from 'hooks/useFuturesMarketClosed'; @@ -20,7 +20,7 @@ import { FuturesMarketAsset, getMarketName, getSynthDescription, - isEurForex, + isDecimalFour, MarketKeyByAsset, } from 'utils/futures'; @@ -103,7 +103,7 @@ const MarketsDropdown: React.FC = ({ mobile }) => { const selectedPastPrice = getPastPrice(asset); const getMinDecimals = React.useCallback( - (asset: string) => (isEurForex(asset) ? DEFAULT_FIAT_EURO_DECIMALS : undefined), + (asset: string) => (isDecimalFour(asset) ? DEFAULT_CRYPTO_DECIMALS : undefined), [] ); diff --git a/sections/futures/Trade/NextPriceConfirmationModal.tsx b/sections/futures/Trade/NextPriceConfirmationModal.tsx index cf7c506d0c..36a1cc8ff8 100644 --- a/sections/futures/Trade/NextPriceConfirmationModal.tsx +++ b/sections/futures/Trade/NextPriceConfirmationModal.tsx @@ -8,7 +8,6 @@ import styled from 'styled-components'; import BaseModal from 'components/BaseModal'; import Button from 'components/Button'; import { DesktopOnlyView, MobileOrTabletView } from 'components/Media'; -import { Synths } from 'constants/currency'; import { NO_VALUE } from 'constants/placeholder'; import Connector from 'containers/Connector'; import { useFuturesContext } from 'contexts/FuturesContext'; @@ -65,7 +64,7 @@ const NextPriceConfirmationModal: FC = () => { ); const ethPriceRate = useMemo( - () => newGetExchangeRatesForCurrencies(exchangeRates, Synths.sETH, selectedPriceCurrency.name), + () => newGetExchangeRatesForCurrencies(exchangeRates, 'sETH', selectedPriceCurrency.name), [exchangeRates, selectedPriceCurrency.name] ); @@ -116,12 +115,12 @@ const NextPriceConfirmationModal: FC = () => { }, { label: t('futures.market.user.position.modal.deposit'), - value: formatCurrency(Synths.sUSD, totalDeposit, { sign: '$' }), + value: formatCurrency('sUSD', totalDeposit, { sign: '$' }), }, { label: t('futures.market.user.position.modal.np-discount'), value: !!nextPriceDiscount - ? formatCurrency(Synths.sUSD, nextPriceDiscount, { sign: '$' }) + ? formatCurrency('sUSD', nextPriceDiscount, { sign: '$' }) : NO_VALUE, }, { diff --git a/sections/futures/Trade/TradeConfirmationModal.tsx b/sections/futures/Trade/TradeConfirmationModal.tsx index 11d924f3df..c81aaa9e54 100644 --- a/sections/futures/Trade/TradeConfirmationModal.tsx +++ b/sections/futures/Trade/TradeConfirmationModal.tsx @@ -7,7 +7,7 @@ import styled from 'styled-components'; import BaseModal from 'components/BaseModal'; import Button from 'components/Button'; import { DesktopOnlyView, MobileOrTabletView } from 'components/Media'; -import { Synths, CurrencyKey } from 'constants/currency'; +import { CurrencyKey } from 'constants/currency'; import Connector from 'containers/Connector'; import TransactionNotifier from 'containers/TransactionNotifier'; import { useFuturesContext } from 'contexts/FuturesContext'; @@ -58,7 +58,7 @@ const TradeConfirmationModal: FC = () => { ); const ethPriceRate = useMemo( - () => newGetExchangeRatesForCurrencies(exchangeRates, Synths.sETH, selectedPriceCurrency.name), + () => newGetExchangeRatesForCurrencies(exchangeRates, 'sETH', selectedPriceCurrency.name), [exchangeRates, selectedPriceCurrency.name] ); @@ -99,21 +99,21 @@ const TradeConfirmationModal: FC = () => { { label: 'leverage', value: `${formatNumber(positionDetails?.leverage ?? zeroBN)}x` }, { label: 'current price', - value: formatCurrency(Synths.sUSD, positionDetails?.price ?? zeroBN, { sign: '$' }), + value: formatCurrency('sUSD', positionDetails?.price ?? zeroBN, { sign: '$' }), }, { label: 'liquidation price', - value: formatCurrency(Synths.sUSD, positionDetails?.liqPrice ?? zeroBN, { + value: formatCurrency('sUSD', positionDetails?.liqPrice ?? zeroBN, { sign: '$', }), }, { label: 'margin', - value: formatCurrency(Synths.sUSD, positionDetails?.margin ?? zeroBN, { sign: '$' }), + value: formatCurrency('sUSD', positionDetails?.margin ?? zeroBN, { sign: '$' }), }, { label: 'protocol fee', - value: formatCurrency(Synths.sUSD, positionDetails?.fee ?? zeroBN, { sign: '$' }), + value: formatCurrency('sUSD', positionDetails?.fee ?? zeroBN, { sign: '$' }), }, { label: 'network gas fee', diff --git a/sections/futures/Trade/WithdrawMarginModal.tsx b/sections/futures/Trade/WithdrawMarginModal.tsx index a1c66af009..f780eae07d 100644 --- a/sections/futures/Trade/WithdrawMarginModal.tsx +++ b/sections/futures/Trade/WithdrawMarginModal.tsx @@ -6,7 +6,6 @@ import { useRecoilValue } from 'recoil'; import Error from 'components/Error'; import CustomInput from 'components/Input/CustomInput'; -import { Synths } from 'constants/currency'; import { NO_VALUE } from 'constants/placeholder'; import TransactionNotifier from 'containers/TransactionNotifier'; import { useRefetchContext } from 'contexts/RefetchContext'; @@ -55,7 +54,7 @@ const WithdrawMarginModal: React.FC = ({ onDismiss }) ); const ethPriceRate = React.useMemo( - () => newGetExchangeRatesForCurrencies(exchangeRates, Synths.sETH, selectedPriceCurrency.name), + () => newGetExchangeRatesForCurrencies(exchangeRates, 'sETH', selectedPriceCurrency.name), [exchangeRates, selectedPriceCurrency.name] ); @@ -133,7 +132,7 @@ const WithdrawMarginModal: React.FC = ({ onDismiss }) {t('futures.market.trade.margin.modal.balance')}: - {formatCurrency(Synths.sUSD, accessibleMargin, { sign: '$' })} sUSD + {formatCurrency('sUSD', accessibleMargin, { sign: '$' })} sUSD @@ -166,7 +165,7 @@ const WithdrawMarginModal: React.FC = ({ onDismiss }) {transactionFee - ? formatCurrency(Synths.sUSD, transactionFee, { sign: '$', maxDecimals: 1 }) + ? formatCurrency('sUSD', transactionFee, { sign: '$', maxDecimals: 1 }) : NO_VALUE} diff --git a/sections/futures/Trades/Trades.tsx b/sections/futures/Trades/Trades.tsx index f637c9e4ef..0da1f9b287 100644 --- a/sections/futures/Trades/Trades.tsx +++ b/sections/futures/Trades/Trades.tsx @@ -7,12 +7,13 @@ import styled, { css } from 'styled-components'; import LinkIcon from 'assets/svg/app/link-blue.svg'; import Card from 'components/Card'; import Table, { TableNoResults } from 'components/Table'; -import { Synths } from 'constants/currency'; +import { DEFAULT_CRYPTO_DECIMALS } from 'constants/defaults'; import { ETH_UNIT } from 'constants/network'; import BlockExplorer from 'containers/BlockExplorer'; import { FuturesTrade } from 'queries/futures/types'; import { ExternalLink, GridDivCenteredRow } from 'styles/common'; import { formatCryptoCurrency, formatCurrency } from 'utils/formatters/number'; +import { isDecimalFour } from 'utils/futures'; import { PositionSide, TradeStatus } from '../types'; import TimeDisplay from './TimeDisplay'; @@ -85,13 +86,12 @@ const Trades: React.FC = ({ history, isLoading, isLoaded, marketAss ), accessor: 'value', sortType: 'basic', - Cell: (cellProps: CellProps) => ( - <> - {formatCurrency(Synths.sUSD, cellProps.value, { - sign: '$', - })} - - ), + Cell: (cellProps: CellProps) => { + const formatOptions = isDecimalFour(cellProps.row.original.asset) + ? { sign: '$', minDecimals: DEFAULT_CRYPTO_DECIMALS } + : { sign: '$' }; + return <>{formatCurrency('sUSD', cellProps.value, formatOptions)}; + }, width: 80, sortable: true, }, @@ -120,7 +120,7 @@ const Trades: React.FC = ({ history, isLoading, isLoaded, marketAss -- ) : ( - {formatCurrency(Synths.sUSD, cellProps.value, { + {formatCurrency('sUSD', cellProps.value, { sign: '$', })} @@ -138,7 +138,7 @@ const Trades: React.FC = ({ history, isLoading, isLoaded, marketAss <> {cellProps.value.eq(0) ? '--' - : formatCurrency(Synths.sUSD, cellProps.value, { + : formatCurrency('sUSD', cellProps.value, { sign: '$', })} diff --git a/sections/futures/TradingHistory/SkewInfo.tsx b/sections/futures/TradingHistory/SkewInfo.tsx index e5627d5d9c..b9de20ce84 100644 --- a/sections/futures/TradingHistory/SkewInfo.tsx +++ b/sections/futures/TradingHistory/SkewInfo.tsx @@ -1,3 +1,4 @@ +/* eslint-disable no-console */ import React from 'react'; import { useMemo } from 'react'; import { useTranslation } from 'react-i18next'; @@ -35,8 +36,12 @@ const SkewInfo: React.FC = () => { longValue: marketInfo?.openInterest?.longUSD, shortText: formatCurrency(currentMarket, marketInfo?.openInterest?.shortUSD, { sign: '$', + minDecimals: 0, + }), + longText: formatCurrency(currentMarket, marketInfo?.openInterest?.longUSD, { + sign: '$', + minDecimals: 0, }), - longText: formatCurrency(currentMarket, marketInfo?.openInterest?.longUSD, { sign: '$' }), } : DEFAULT_DATA; }, [marketInfo, currentMarket]); @@ -44,7 +49,17 @@ const SkewInfo: React.FC = () => { return ( - {formatPercent(data.short, { minDecimals: 0 })} + + + {formatPercent(data.short, { minDecimals: 0 })} + + { {t('futures.market.history.skew-label')} - {formatPercent(data.long, { minDecimals: 0 })} + + + {formatPercent(data.long, { minDecimals: 0 })} + + - -

{data.shortText}

-

{data.longText}

-
); }; @@ -72,42 +93,29 @@ const WithCursor = styled.div<{ cursor: 'help' }>` cursor: ${(props) => props.cursor}; `; -const OpenInterestRow = styled.div` - display: flex; - width: 100%; - justify-content: space-between; - line-height: 16px; - padding-bottom: 10px; - padding-top: 10px; - font-size: 13px; - font-family: ${(props) => props.theme.fonts.mono}; - - :last-child { - padding-bottom: 0; - } - .green { - color: ${(props) => props.theme.colors.selectedTheme.green}; - } - - .red { - color: ${(props) => props.theme.colors.selectedTheme.red}; - } -`; - -const SkewTooltip = styled(StyledTooltip)` +const SkewTooltip = styled(StyledTooltip)<{ isNumber?: boolean }>` left: -30px; z-index: 2; padding: 10px; + color: red; + + p, + span { + font-size: 13px; + font-family: ${(props) => + props.isNumber ? props.theme.fonts.mono : props.theme.fonts.regular}; + color: ${(props) => props.theme.colors.selectedTheme.button.text}; + } `; const SkewContainer = styled.div` + height: 55px; display: flex; flex-direction: column; column-gap: 5px; align-items: center; width: 100%; - height: auto; padding: 10px; margin-bottom: 16px; box-sizing: border-box; diff --git a/sections/futures/TradingHistory/TradesHistoryTable.tsx b/sections/futures/TradingHistory/TradesHistoryTable.tsx index f63bb0e2de..b7ebfd73b6 100644 --- a/sections/futures/TradingHistory/TradesHistoryTable.tsx +++ b/sections/futures/TradingHistory/TradesHistoryTable.tsx @@ -5,7 +5,7 @@ import { useRecoilValue } from 'recoil'; import styled, { css } from 'styled-components'; import Table from 'components/Table'; -import { DEFAULT_FIAT_EURO_DECIMALS } from 'constants/defaults'; +import { DEFAULT_CRYPTO_DECIMALS } from 'constants/defaults'; import { EXTERNAL_LINKS } from 'constants/links'; import { NO_VALUE } from 'constants/placeholder'; import { FuturesTrade } from 'queries/futures/types'; @@ -14,7 +14,7 @@ import { currentMarketState } from 'store/futures'; import { isL2MainnetState } from 'store/wallet'; import { CapitalizedText, NumericValue } from 'styles/common'; import { formatNumber } from 'utils/formatters/number'; -import { isEurForex } from 'utils/futures'; +import { isDecimalFour } from 'utils/futures'; type TradesHistoryTableProps = { numberOfTrades: number; @@ -41,16 +41,19 @@ const TradesHistoryTable: FC = ({ numberOfTrades, mobil const futuresTrades = futuresTradesPages.length > 0 - ? futuresTradesPages.flat().map((trade: FuturesTrade | null) => { - return { - value: Number(trade?.price), - amount: Number(trade?.size), - time: Number(trade?.timestamp), - id: trade?.txnHash, - currencyKey, - orderType: trade?.orderType, - }; - }) + ? futuresTradesPages + .flat() + .filter((value) => !!value) + .map((trade: FuturesTrade | null) => { + return { + value: Number(trade?.price), + amount: Number(trade?.size), + time: Number(trade?.timestamp), + id: trade?.txnHash, + currencyKey, + orderType: trade?.orderType, + }; + }) : []; return [...new Set(futuresTrades)]; }, [futuresTradesQuery.data, currencyKey]); @@ -58,7 +61,7 @@ const TradesHistoryTable: FC = ({ numberOfTrades, mobil const observer = useRef(null); const lastElementRef = useCallback( (node) => { - if (futuresTradesQuery.isLoading) return; + if (futuresTradesQuery.isLoading || data.length < 16) return; if (observer) { if (observer.current) { observer.current.disconnect(); @@ -74,7 +77,7 @@ const TradesHistoryTable: FC = ({ numberOfTrades, mobil observer.current?.observe(node); } }, - [futuresTradesQuery] + [futuresTradesQuery, data] ); const calTimeDelta = (time: number) => { @@ -147,8 +150,8 @@ const TradesHistoryTable: FC = ({ numberOfTrades, mobil Header: {t('futures.market.history.price-label')}, accessor: TableColumnAccessor.Price, Cell: (cellProps: CellProps) => { - const formatOptions = isEurForex(cellProps.row.original.currencyKey) - ? { minDecimals: DEFAULT_FIAT_EURO_DECIMALS } + const formatOptions = isDecimalFour(cellProps.row.original.currencyKey) + ? { minDecimals: DEFAULT_CRYPTO_DECIMALS } : {}; return ( diff --git a/sections/homepage/Assets/Assets.tsx b/sections/homepage/Assets/Assets.tsx index 13ef6713b2..add6039545 100644 --- a/sections/homepage/Assets/Assets.tsx +++ b/sections/homepage/Assets/Assets.tsx @@ -14,7 +14,7 @@ import Button from 'components/Button'; import ChangePercent from 'components/ChangePercent'; import Currency from 'components/Currency'; import { TabPanel } from 'components/Tab'; -import { CurrencyKey, Synths } from 'constants/currency'; +import { CurrencyKey } from 'constants/currency'; import Connector from 'containers/Connector'; import useGetFuturesTradingVolumeForAllMarkets from 'queries/futures/useGetFuturesTradingVolumeForAllMarkets'; import { Price } from 'queries/rates/types'; @@ -308,7 +308,7 @@ const Assets = () => { {image} { <>- ) : ( { {image} { <>- ) : ( { {image} { <>- ) : ( { {image} { <>- ) : ( { accessor: 'pnl', Cell: (cellProps: CellProps) => ( { accessor: 'pnl', Cell: (cellProps: CellProps) => ( { {totalTradeStats.isLoading ? ( ) : ( - formatCurrency(Synths.sUSD, totalTradeStats.data?.totalVolume || zeroBN, { + formatCurrency('sUSD', totalTradeStats.data?.totalVolume || zeroBN, { sign: '$', minDecimals: 0, }) diff --git a/sections/leaderboard/AllTime/AllTime.tsx b/sections/leaderboard/AllTime/AllTime.tsx index 61ebc0abb5..cee700c736 100644 --- a/sections/leaderboard/AllTime/AllTime.tsx +++ b/sections/leaderboard/AllTime/AllTime.tsx @@ -7,7 +7,6 @@ import styled from 'styled-components'; import Currency from 'components/Currency'; import { MobileHiddenView, MobileOnlyView } from 'components/Media'; import Table from 'components/Table'; -import { Synths } from 'constants/currency'; import { DEFAULT_LEADERBOARD_ROWS } from 'constants/defaults'; import Connector from 'containers/Connector'; import useENSAvatar from 'hooks/useENSAvatar'; @@ -166,7 +165,7 @@ const AllTime: FC = ({ stats, isLoading, searchTerm, onClickTrader sortType: 'basic', Cell: (cellProps: CellProps) => ( = ({ stats, isLoading, searchTerm, onClickTrader sortType: 'basic', Cell: (cellProps: CellProps) => ( = ({ stats, isLoading, searchTerm, onClickTrader Header: () => {t('leaderboard.leaderboard.table.pnl')}, accessor: 'pnl', Cell: (cellProps: CellProps) => ( - + ), width: 125, }, diff --git a/sections/leaderboard/Competition/Competition.tsx b/sections/leaderboard/Competition/Competition.tsx index 65250f0fda..16b9063aed 100644 --- a/sections/leaderboard/Competition/Competition.tsx +++ b/sections/leaderboard/Competition/Competition.tsx @@ -8,7 +8,6 @@ import styled from 'styled-components'; import Currency from 'components/Currency'; import { DesktopOnlyView, MobileOrTabletView } from 'components/Media'; import Table, { TableNoResults } from 'components/Table'; -import { Synths } from 'constants/currency'; import useGetFile from 'queries/files/useGetFile'; import { walletAddressState } from 'store/wallet'; import { formatPercent } from 'utils/formatters/number'; @@ -160,7 +159,7 @@ const Competition: FC = ({ sortType: 'basic', Cell: (cellProps: CellProps) => ( = ({ Cell: (cellProps: CellProps) => ( = ({ Cell: (cellProps: CellProps) => ( = ({ accessor: 'totalVolume', Cell: (cellProps: CellProps) => ( = ({ Cell: (cellProps: CellProps) => ( = ({ Cell: (cellProps: CellProps) => ( { + const gitID = process.env.GIT_HASH_ID!.toString(); + return ( +
+
+ {gitID} +
+ ); +}; + +const Container = styled.div` + font-family: ${(props) => props.theme.fonts.mono}; + font-size: 10px; + color: #2b3035; + + position: absolute; + bottom: 0px; + left: 50%; + transform: translate(-50%, -50%); + z-index: 1000; +`; + +export default GitHashID; diff --git a/sections/shared/Layout/AppLayout/GitHashID/index.ts b/sections/shared/Layout/AppLayout/GitHashID/index.ts new file mode 100644 index 0000000000..55569aeaf0 --- /dev/null +++ b/sections/shared/Layout/AppLayout/GitHashID/index.ts @@ -0,0 +1 @@ +export { default } from './GitHashID'; diff --git a/sections/shared/Layout/AppLayout/Header/BalanceActions.tsx b/sections/shared/Layout/AppLayout/Header/BalanceActions.tsx index 4de2c41b09..55b14956f6 100644 --- a/sections/shared/Layout/AppLayout/Header/BalanceActions.tsx +++ b/sections/shared/Layout/AppLayout/Header/BalanceActions.tsx @@ -8,7 +8,6 @@ import styled, { useTheme } from 'styled-components'; import Button from 'components/Button'; import CurrencyIcon from 'components/Currency/CurrencyIcon'; import Select from 'components/Select'; -import { Synths } from 'constants/currency'; import { balancesState, positionsState } from 'store/futures'; import { FlexDivRow, FlexDivRowCentered } from 'styles/common'; import { formatCurrency, zeroBN } from 'utils/formatters/number'; @@ -30,7 +29,7 @@ const BalanceActions: FC = () => { const synthBalances = useRecoilValue(balancesState); const futuresPositions = useRecoilValue(positionsState); - const sUSDBalance = synthBalances?.balancesMap?.[Synths.sUSD]?.balance ?? zeroBN; + const sUSDBalance = synthBalances?.balancesMap?.['sUSD']?.balance ?? zeroBN; const accessiblePositions = useMemo( () => futuresPositions?.filter((position) => position.remainingMargin.gt(zeroBN)) ?? [], @@ -50,7 +49,7 @@ const BalanceActions: FC = () => { return { label: getMarketName(asset), synthIcon: MarketKeyByAsset[asset], - marketRemainingMargin: formatCurrency(Synths.sUSD, remainingMargin, { sign: '$' }), + marketRemainingMargin: formatCurrency('sUSD', remainingMargin, { sign: '$' }), onClick: () => router.push(`/market/?asset=${asset}`), }; }, @@ -61,7 +60,7 @@ const BalanceActions: FC = () => { () => [ { label: 'header.balance.total-margin-label', - totalAvailableMargin: formatCurrency(Synths.sUSD, totalRemainingMargin, { sign: '$' }), + totalAvailableMargin: formatCurrency('sUSD', totalRemainingMargin, { sign: '$' }), options: accessiblePositions.map((market) => setMarketConfig(market.asset)), }, ], @@ -118,7 +117,7 @@ const BalanceActions: FC = () => { }; useEffect(() => { - setBalanceLabel(formatCurrency(Synths.sUSD, sUSDBalance, { sign: '$' })); + setBalanceLabel(formatCurrency('sUSD', sUSDBalance, { sign: '$' })); }, [balanceLabel, sUSDBalance]); if (!balanceLabel) { @@ -133,7 +132,7 @@ const BalanceActions: FC = () => { onClick={() => router.push(`/exchange/?quote=sUSD`)} noOutline > - + {t('header.balance.get-susd')} ) : ( @@ -142,7 +141,7 @@ const BalanceActions: FC = () => { formatGroupLabel={OptionsGroupLabel} controlHeight={41} options={OPTIONS} - value={{ label: balanceLabel, synthIcon: Synths.sUSD }} + value={{ label: balanceLabel, synthIcon: 'sUSD' }} menuWidth={290} maxMenuHeight={500} optionPadding={'0px'} //override default padding to 0 diff --git a/sections/shared/components/GasPriceSelect/GasPriceSelect.tsx b/sections/shared/components/GasPriceSelect/GasPriceSelect.tsx index 07cbecbc58..545a3d76bd 100644 --- a/sections/shared/components/GasPriceSelect/GasPriceSelect.tsx +++ b/sections/shared/components/GasPriceSelect/GasPriceSelect.tsx @@ -5,7 +5,6 @@ import { useMemo } from 'react'; import { useTranslation } from 'react-i18next'; import { useRecoilValue } from 'recoil'; -import { Synths } from 'constants/currency'; import { NO_VALUE } from 'constants/placeholder'; import { parseGasPriceObject } from 'hooks/useGas'; import { customGasPriceState, gasSpeedState, isL2State, isMainnetState } from 'store/wallet'; @@ -28,7 +27,7 @@ const GasPriceSelect: FC = ({ gasPrices, transactionFee, .. const formattedTransactionFee = useMemo(() => { return transactionFee - ? formatCurrency(Synths.sUSD, transactionFee, { sign: '$', maxDecimals: 1 }) + ? formatCurrency('sUSD', transactionFee, { sign: '$', maxDecimals: 1 }) : NO_VALUE; }, [transactionFee]); diff --git a/store/app/index.ts b/store/app/index.ts index 5eef8140c2..28df0447d4 100644 --- a/store/app/index.ts +++ b/store/app/index.ts @@ -2,22 +2,12 @@ import { Synth } from '@synthetixio/contracts-interface'; import { atom } from 'recoil'; import { Language } from 'translations/constants'; -import { Synths } from 'constants/currency'; import { DEFAULT_LANGUAGE, DEFAULT_PRICE_CURRENCY } from 'constants/defaults'; import { getAppKey } from '../utils'; import { languageStateKey, priceCurrencyStateKey } from './constants'; -export const PRICE_CURRENCIES = [ - Synths.sUSD, - Synths.sEUR, - Synths.sCHF, - Synths.sAUD, - Synths.sJPY, - Synths.sGBP, - Synths.sBTC, - Synths.sETH, -]; +export const PRICE_CURRENCIES = ['sUSD', 'sEUR', 'sCHF', 'sAUD', 'sJPY', 'sGBP', 'sBTC', 'sETH']; export const appReadyState = atom({ key: getAppKey('appReady'), diff --git a/store/exchange/index.ts b/store/exchange/index.ts index 95ad8463d5..64584a3d85 100644 --- a/store/exchange/index.ts +++ b/store/exchange/index.ts @@ -1,6 +1,6 @@ import { atom, selector } from 'recoil'; -import { Synths, CurrencyKey, CRYPTO_CURRENCY_MAP } from 'constants/currency'; +import { CurrencyKey, CRYPTO_CURRENCY_MAP } from 'constants/currency'; import { SwapRatio } from 'hooks/useExchange'; import { localStorageEffect } from 'store/effects'; import { getExchangeKey } from 'store/utils'; @@ -14,7 +14,7 @@ export const currencyPairState = atom({ key: getExchangeKey('currencyPair'), default: { base: null, - quote: Synths.sUSD, + quote: 'sUSD', }, effects: [localStorageEffect('exchange/currencyPair')], }); diff --git a/store/futures/index.ts b/store/futures/index.ts index bb64c3580e..3f95d3ce0e 100644 --- a/store/futures/index.ts +++ b/store/futures/index.ts @@ -2,7 +2,6 @@ import { Balances } from '@synthetixio/queries'; import Wei, { wei } from '@synthetixio/wei'; import { atom, selector } from 'recoil'; -import { Synths } from 'constants/currency'; import { DEFAULT_NP_LEVERAGE_ADJUSTMENT } from 'constants/defaults'; import { FuturesAccountState, @@ -237,7 +236,7 @@ export const marketAssetRateState = selector({ const exchangeRates = get(ratesState); const marketAsset = get(currentMarketState); - return newGetExchangeRatesForCurrencies(exchangeRates, marketAsset, Synths.sUSD); + return newGetExchangeRatesForCurrencies(exchangeRates, marketAsset, 'sUSD'); }, }); diff --git a/translations/en.json b/translations/en.json index a8e61b0ba9..66b2578d4b 100644 --- a/translations/en.json +++ b/translations/en.json @@ -975,7 +975,11 @@ "deprecated": "Deprecated", "futures-market-oil-short-name": "Oil Perpetual", "futures-market-gold-short-name": "Gold Perpetual", - "futures-market-silver-short-name": "Silver Perpetual" + "futures-market-silver-short-name": "Silver Perpetual", + "futures-market-ape-short-name": "ApeCoin Perpetual", + "futures-market-bnb-short-name": "Binance Coin Perpetual", + "futures-market-doge-short-name": "Dogecoin Perpetual", + "futures-market-debtratio-short-name": "Debt Ratio Perpetual" }, "currency-category": { "crypto": "crypto", diff --git a/utils/currencies.ts b/utils/currencies.ts index 8d0704cbdc..97a567294e 100644 --- a/utils/currencies.ts +++ b/utils/currencies.ts @@ -1,8 +1,9 @@ -import { Rates } from '@synthetixio/queries'; +import { Rates, Token } from '@synthetixio/queries'; import { wei } from '@synthetixio/wei'; import { CurrencyKey, Synths, CRYPTO_CURRENCY_MAP, FIAT_SYNTHS } from 'constants/currency'; +import { PriceResponse } from '../queries/coingecko/types'; import { FuturesMarketKey } from './futures'; export const isSynth = (currencyKey: CurrencyKey) => !!Synths[currencyKey]; @@ -54,5 +55,42 @@ export const newGetExchangeRatesForCurrencies = ( : rates[base].div(rates[quote]); }; +export const newGetExchangeRatesTupleForCurrencies = ( + rates: Rates | null, + base: CurrencyKey | FuturesMarketKey | string | null, + quote: CurrencyKey | FuturesMarketKey | null +) => { + base = new Set([ + FuturesMarketKey.sAPE, + FuturesMarketKey.sDYDX, + FuturesMarketKey.sXAU, + FuturesMarketKey.sXAG, + ]).has(base as FuturesMarketKey) + ? synthToAsset(base as CurrencyKey) + : base; + const baseRate = + rates == null || base == null || rates[base] === undefined ? wei(0) : rates[base]; + const quoteRate = + rates == null || quote == null || rates[quote] === undefined ? wei(0) : rates[quote]; + + return [baseRate, quoteRate]; +}; + +export const newGetCoinGeckoPricesForCurrencies = ( + coinGeckoPrices: PriceResponse | null, + baseCurrencyTokenAddress: Token['address'] | null +) => { + if (!coinGeckoPrices || !baseCurrencyTokenAddress) { + return wei(0); + } + const base = baseCurrencyTokenAddress.toLowerCase(); + + if (!coinGeckoPrices[base]) { + return wei(0); + } + + return wei(coinGeckoPrices[base].usd); +}; + export const getCurrencyKeyURLPath = (currencyKey: CurrencyKey) => `https:///www.synthetix.io/assets/synths/svg/${currencyKey}.svg`; diff --git a/utils/futures.ts b/utils/futures.ts index 56525acc44..8efdbff911 100644 --- a/utils/futures.ts +++ b/utils/futures.ts @@ -2,14 +2,17 @@ import { NetworkId, NetworkNameById, Synth } from '@synthetixio/contracts-interf import { TFunction } from 'i18next'; import { Dictionary } from 'lodash'; -import { Synths } from 'constants/currency'; - export const getMarketAsset = (marketKey: FuturesMarketKey) => { return markets[marketKey].asset; }; export const getMarketName = (asset: FuturesMarketAsset | null) => { - return `${getDisplayAsset(asset)}-PERP`; + switch (asset) { + case 'DebtRatio': + return `DEBT-PERP`; + default: + return `${getDisplayAsset(asset)}-PERP`; + } }; export const getDisplayAsset = (asset: string | null) => { @@ -18,7 +21,6 @@ export const getDisplayAsset = (asset: string | null) => { export const getSynthDescription = (synth: string, synthsMap: Dictionary, t: TFunction) => { const parsedSynthKey = synth ? (synth[0] !== 's' ? `s${synth}` : synth) : ''; - switch (parsedSynthKey) { case 'sWTI': return t('common.currency.futures-market-oil-short-name'); @@ -27,6 +29,13 @@ export const getSynthDescription = (synth: string, synthsMap: Dictionary, case 'sXAG': return t('common.currency.futures-market-silver-short-name'); case 'sAPE': + return t('common.currency.futures-market-ape-short-name'); + case 'sBNB': + return t('common.currency.futures-market-bnb-short-name'); + case 'sDOGE': + return t('common.currency.futures-market-doge-short-name'); + case 'sDebtRatio': + return t('common.currency.futures-market-debtratio-short-name'); case 'sDYDX': return t('common.currency.futures-market-short-name', { currencyName: getDisplayAsset(synth), @@ -39,8 +48,13 @@ export const getSynthDescription = (synth: string, synthsMap: Dictionary, } }; -export const isEurForex = (marketKeyOrAsset: string | undefined): boolean => - marketKeyOrAsset === Synths.sEUR || marketKeyOrAsset === 'EUR'; +export const isDecimalFour = (marketKeyOrAsset: string | undefined): boolean => + marketKeyOrAsset === 'sEUR' || + marketKeyOrAsset === 'EUR' || + marketKeyOrAsset === 'sDOGE' || + marketKeyOrAsset === 'DOGE' || + marketKeyOrAsset === 'sDebtRatio' || + marketKeyOrAsset === 'DebtRatio'; export enum FuturesMarketKey { sBTC = 'sBTC', @@ -58,6 +72,9 @@ export enum FuturesMarketKey { sDYDX = 'sDYDX', sWTI = 'sWTI', sAXS = 'sAXS', + sBNB = 'sBNB', + sDOGE = 'sDOGE', + sDebtRatio = 'sDebtRatio', } export enum FuturesMarketAsset { @@ -76,6 +93,9 @@ export enum FuturesMarketAsset { DYDX = 'DYDX', WTI = 'WTI', AXS = 'AXS', + BNB = 'BNB', + DOGE = 'DOGE', + DebtRatio = 'DebtRatio', } export const MarketAssetByKey: Record = { @@ -94,6 +114,9 @@ export const MarketAssetByKey: Record = { [FuturesMarketKey.sDYDX]: FuturesMarketAsset.DYDX, [FuturesMarketKey.sWTI]: FuturesMarketAsset.WTI, [FuturesMarketKey.sAXS]: FuturesMarketAsset.AXS, + [FuturesMarketKey.sBNB]: FuturesMarketAsset.BNB, + [FuturesMarketKey.sDOGE]: FuturesMarketAsset.DOGE, + [FuturesMarketKey.sDebtRatio]: FuturesMarketAsset.DebtRatio, } as const; export const MarketKeyByAsset: Record = { @@ -112,6 +135,9 @@ export const MarketKeyByAsset: Record = { [FuturesMarketAsset.DYDX]: FuturesMarketKey.sDYDX, [FuturesMarketAsset.WTI]: FuturesMarketKey.sWTI, [FuturesMarketAsset.AXS]: FuturesMarketKey.sAXS, + [FuturesMarketAsset.BNB]: FuturesMarketKey.sBNB, + [FuturesMarketAsset.DOGE]: FuturesMarketKey.sDOGE, + [FuturesMarketAsset.DebtRatio]: FuturesMarketKey.sDebtRatio, } as const; export interface FuturesMarketConfig { @@ -187,6 +213,21 @@ export const markets: Record = { asset: FuturesMarketAsset.DYDX, supports: 'mainnet', }, + [FuturesMarketKey.sBNB]: { + key: FuturesMarketKey.sBNB, + asset: FuturesMarketAsset.BNB, + supports: 'mainnet', + }, + [FuturesMarketKey.sDOGE]: { + key: FuturesMarketKey.sDOGE, + asset: FuturesMarketAsset.DOGE, + supports: 'mainnet', + }, + [FuturesMarketKey.sDebtRatio]: { + key: FuturesMarketKey.sDebtRatio, + asset: FuturesMarketAsset.DebtRatio, + supports: 'mainnet', + }, [FuturesMarketKey.sWTI]: { key: FuturesMarketKey.sWTI, asset: FuturesMarketAsset.WTI, diff --git a/utils/infura.ts b/utils/infura.ts index 4ae47003ce..79ad598498 100644 --- a/utils/infura.ts +++ b/utils/infura.ts @@ -8,6 +8,7 @@ export const INFURA_SUPPORTED_NETWORKS: Record = { 10: 'optimism-mainnet', 42: 'kovan', 69: 'optimism-kovan', + 420: 'goerli-ovm', 31337: 'mainnet-fork', };