From ab4d98413975a8f06eb6daee2a6d9fe738a61836 Mon Sep 17 00:00:00 2001 From: tiltom Date: Fri, 17 Jun 2022 09:50:37 +0200 Subject: [PATCH 01/38] Hide language selector for perpetuals --- src/app/components/HeaderLabs/index.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/app/components/HeaderLabs/index.tsx b/src/app/components/HeaderLabs/index.tsx index 3193979b6..0c255730c 100644 --- a/src/app/components/HeaderLabs/index.tsx +++ b/src/app/components/HeaderLabs/index.tsx @@ -4,7 +4,6 @@ import { Link } from 'react-router-dom'; import { usePageViews } from 'app/hooks/useAnalytics'; import WalletConnector from '../../containers/WalletConnector'; -import { LanguageToggle } from '../LanguageToggle'; import styles from './index.module.scss'; import { ReactComponent as SovLogo } from 'assets/images/sovryn-logo-labs.svg'; import { ReactComponent as ArrowBack } from 'assets/images/genesis/arrow_back.svg'; @@ -43,9 +42,10 @@ export const HeaderLabs: React.FC = ({ helpLink }) => { {t(translations.mainMenu.help)} )} -
+ {/* Hidden until we have translations */} + {/*
-
+
*/} From 8dc860a16ac8aeb1ed46ca815c51a1789fe5f925 Mon Sep 17 00:00:00 2001 From: tiltom Date: Mon, 20 Jun 2022 09:51:08 +0200 Subject: [PATCH 02/38] Fix reset order size after slippage dialog --- .../components/NewPositionCard/index.tsx | 6 +- .../components/TradeForm/index.tsx | 58 ++++++++++++++----- 2 files changed, 46 insertions(+), 18 deletions(-) diff --git a/src/app/pages/PerpetualPage/components/NewPositionCard/index.tsx b/src/app/pages/PerpetualPage/components/NewPositionCard/index.tsx index c0210272d..26b6a635d 100644 --- a/src/app/pages/PerpetualPage/components/NewPositionCard/index.tsx +++ b/src/app/pages/PerpetualPage/components/NewPositionCard/index.tsx @@ -154,8 +154,10 @@ export const NewPositionCard: React.FC = () => { setTrade(trade => ({ ...trade, pairType, - limit: '0', - trigger: '0', + expiry: undefined, + amount: '0', + limit: undefined, + trigger: undefined, })); } }, [dispatch, pairType, trade.pairType]); diff --git a/src/app/pages/PerpetualPage/components/TradeForm/index.tsx b/src/app/pages/PerpetualPage/components/TradeForm/index.tsx index 3840498c4..9c2ec08d9 100644 --- a/src/app/pages/PerpetualPage/components/TradeForm/index.tsx +++ b/src/app/pages/PerpetualPage/components/TradeForm/index.tsx @@ -259,19 +259,23 @@ export const TradeForm: React.FC = ({ [setTrade], ); - // reset amount, limit price and trigger price if pair or position changes - useEffect(() => { - setAmount('0'); - setLimit(undefined); - setTriggerPrice(undefined); + const resetForm = useCallback(() => { + if (trade.tradeType === PerpetualTradeType.MARKET) { + setAmount('0'); + setTrade({ ...trade, amount: '0' }); + } else { + setAmount('0'); + setLimit(undefined); + setTriggerPrice(undefined); - setTrade(trade => ({ - ...trade, - amount: '0', - limit: undefined, - trigger: undefined, - })); - }, [setTrade, trade.pairType, trade.position]); + setTrade({ + ...trade, + amount: '0', + limit: undefined, + trigger: undefined, + }); + } + }, [setTrade, trade]); useEffect(() => { if (entryPrice && (limit === undefined || triggerPrice === undefined)) { @@ -300,8 +304,7 @@ export const TradeForm: React.FC = ({ ); const bindSelectPosition = useCallback( - (position: TradingPosition) => () => - setTrade(trade => ({ ...trade, position })), + (position: TradingPosition) => setTrade(trade => ({ ...trade, position })), [setTrade], ); @@ -311,6 +314,16 @@ export const TradeForm: React.FC = ({ [setTrade], ); + const onLongClick = useCallback(() => { + resetForm(); + bindSelectPosition(TradingPosition.LONG); + }, [bindSelectPosition, resetForm]); + + const onShortClick = useCallback(() => { + resetForm(); + bindSelectPosition(TradingPosition.SHORT); + }, [bindSelectPosition, resetForm]); + const tradeButtonLabel = useMemo(() => { const i18nKey = { LONG_LIMIT: translations.perpetualPage.tradeForm.buttons.buyLimit, @@ -442,6 +455,19 @@ export const TradeForm: React.FC = ({ triggerPrice, ]); + useEffect(() => { + setAmount( + trade.amount !== '0' + ? Math.abs(numberFromWei(trade.amount)).toFixed(lotPrecision) + : '0', + ); + setTriggerPrice( + trade.trigger ? numberFromWei(trade.trigger).toFixed(2) : undefined, + ); + setLimit(trade.limit ? numberFromWei(trade.limit).toFixed(2) : undefined); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [lotPrecision, trade.pairType]); + useEffect(() => { // resets trade.keepPositionLeverage in case we flip the sign if (trade.tradeType !== PerpetualTradeType.MARKET && keepPositionLeverage) { @@ -463,7 +489,7 @@ export const TradeForm: React.FC = ({ trade.position !== TradingPosition.LONG && 'tw-opacity-25 hover:tw-opacity-100 tw-transition-opacity tw-duration-300', )} - onClick={bindSelectPosition(TradingPosition.LONG)} + onClick={onLongClick} > {t(translations.perpetualPage.tradeForm.buttons.buy)} @@ -473,7 +499,7 @@ export const TradeForm: React.FC = ({ trade.position !== TradingPosition.SHORT && 'tw-opacity-25 hover:tw-opacity-100 tw-transition-opacity tw-duration-300', )} - onClick={bindSelectPosition(TradingPosition.SHORT)} + onClick={onShortClick} > {t(translations.perpetualPage.tradeForm.buttons.sell)} From de1716fb1c50a23e14ef13c0efe058e3d05fbff6 Mon Sep 17 00:00:00 2001 From: tiltom Date: Mon, 20 Jun 2022 11:07:06 +0200 Subject: [PATCH 03/38] Adjust max trade size --- .../PerpetualPage/components/TradeForm/index.tsx | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/app/pages/PerpetualPage/components/TradeForm/index.tsx b/src/app/pages/PerpetualPage/components/TradeForm/index.tsx index 9c2ec08d9..597743a5c 100644 --- a/src/app/pages/PerpetualPage/components/TradeForm/index.tsx +++ b/src/app/pages/PerpetualPage/components/TradeForm/index.tsx @@ -104,6 +104,8 @@ export const TradeForm: React.FC = ({ [pair.collateralAsset], ); + const hasOpenTrades = traderState?.marginAccountPositionBC !== 0; + const maxTradeSize = useMemo(() => { const maxTradeSize = shrinkToLot( Math.abs( @@ -120,7 +122,14 @@ export const TradeForm: React.FC = ({ lotSize, ); - return Number.isFinite(maxTradeSize) ? maxTradeSize : 0; + const finiteMaxTradeSize = Number.isFinite(maxTradeSize) ? maxTradeSize : 0; + + return hasOpenTrades + ? Math.max( + finiteMaxTradeSize, + Math.abs(traderState.marginAccountPositionBC), + ) + : finiteMaxTradeSize; }, [ trade.position, trade.slippage, @@ -130,6 +139,7 @@ export const TradeForm: React.FC = ({ ammState, liqPoolState, lotSize, + hasOpenTrades, ]); const isMarketOrder = useMemo( @@ -145,8 +155,6 @@ export const TradeForm: React.FC = ({ [trade.tradeType], ); - const hasOpenTrades = traderState?.marginAccountPositionBC !== 0; - const [minLeverage, maxLeverage] = useMemo(() => { const amountChange = getSignedAmount(trade.position, trade.amount); const amountTarget = traderState.marginAccountPositionBC + amountChange; From cf2000aa94ac9075a28097c73dbbf17e0a13508d Mon Sep 17 00:00:00 2001 From: Victor Creed <69458664+creed-victor@users.noreply.github.com> Date: Tue, 21 Jun 2022 14:05:02 +0300 Subject: [PATCH 04/38] feat: netlify config (#2278) --- netlify.toml | 60 + package.json | 2 + yarn.lock | 3838 ++++++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 3799 insertions(+), 101 deletions(-) create mode 100644 netlify.toml diff --git a/netlify.toml b/netlify.toml new file mode 100644 index 000000000..a005a595b --- /dev/null +++ b/netlify.toml @@ -0,0 +1,60 @@ +[dev] + command = "yarn start" + port = 8888 + targetPort = 300 + framework = "create-react-app" + autoLaunch = true + +# Shared config for build +[build] + command = "yarn build" + [build.environment] + BUILD_STORYBOOK=true + REACT_APP_INTERCOM_ID = "zxxit1rp" + REACT_APP_NETWORK = "testnet" + REACT_APP_PORTIS_ID = "469a25c8-1101-4c57-823d-c47cb328f788" + REACT_APP_TRANSAK_ENV = "STAGING" + REACT_APP_TRANSAK_API_KEY = "a2d23229-58f9-4ca5-a3d4-2c3d2b1b9a81" + REACT_APP_ESTIMATOR_URI = "https://simulator.sovryn.app/simulate" + REACT_APP_MAILCHIMP = "https://gmail.us17.list-manage.com/subscribe/post?u=e66850f0b51ebbdbe1f2c3e36&id=ef5d452839" + REACT_APP_GRAPH_RSK = "https://subgraph.test.sovryn.app/subgraphs/name/DistributedCollective/sovryn-subgraph" + +[context.production] + [context.production.environment] + REACT_APP_NETWORK = "mainnet" + REACT_APP_GOOGLE_ANALYTICS = "UA-192081564-1" + REACT_APP_GRAPH_RSK = "https://subgraph.sovryn.app/subgraphs/name/DistributedCollective/sovryn-subgraph" + REACT_APP_INFURA_KEY = "12b606df88b3420aad7828acd0f11902" + REACT_APP_TRANSAK_ENV = "PRODUCTION" + REACT_APP_TRANSAK_API_KEY = "fadc5140-4d8f-4eda-ab37-5999dfedf353" + REACT_APP_ESTIMATOR_URI = "/simulate" + +# PR deployments (previews) +[context.deploy-preview] + +# Testnet deployment +[context.development] + +# Testnet deployment +[context.staging] + [context.staging.environment] + REACT_APP_NETWORK = "mainnet" + REACT_APP_GOOGLE_ANALYTICS = "UA-192081564-1" + REACT_APP_GRAPH_RSK = "https://subgraph.sovryn.app/subgraphs/name/DistributedCollective/sovryn-subgraph" + REACT_APP_INFURA_KEY = "12b606df88b3420aad7828acd0f11902" + REACT_APP_TRANSAK_ENV = "PRODUCTION" + REACT_APP_TRANSAK_API_KEY = "fadc5140-4d8f-4eda-ab37-5999dfedf353" + REACT_APP_BYPASS_MAINTENANCE = true + REACT_APP_STAGING = true + +# Staging deployments (all branches) +[context.branch-deploy] + [context.branch-deploy.environment] + REACT_APP_NETWORK = "mainnet" + REACT_APP_GOOGLE_ANALYTICS = "UA-192081564-1" + REACT_APP_GRAPH_RSK = "https://subgraph.sovryn.app/subgraphs/name/DistributedCollective/sovryn-subgraph" + REACT_APP_INFURA_KEY = "12b606df88b3420aad7828acd0f11902" + REACT_APP_TRANSAK_ENV = "PRODUCTION" + REACT_APP_TRANSAK_API_KEY = "fadc5140-4d8f-4eda-ab37-5999dfedf353" + REACT_APP_BYPASS_MAINTENANCE = true + REACT_APP_STAGING = true diff --git a/package.json b/package.json index 99cbdd7e1..df3cbd4f0 100644 --- a/package.json +++ b/package.json @@ -183,6 +183,7 @@ }, "scripts": { "start": "node scripts/start.js", + "dev": "netlify dev", "build": "if-env BUILD_STORYBOOK=true && yarn build:with-storybook || node scripts/build.js", "build:dev": "env-cmd -f .env.local yarn build", "build:testnet": "env-cmd -f .env.testnet yarn build", @@ -321,6 +322,7 @@ "@types/reactjs-localstorage": "1.0.0", "auto-changelog": "2.2.1", "git-revision-webpack-plugin": "3.0.6", + "netlify-cli": "10.5.1", "node-sass": "6.0.1", "postcss-import": "13", "postcss-nested": "5.0.6", diff --git a/yarn.lock b/yarn.lock index 5483b2bf2..6d07e11c2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -594,6 +594,16 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/parser@7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.8.tgz#61c243a3875f7d0b0962b0543a33ece6ff2f1f17" + integrity sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw== + +"@babel/parser@^7.0.0": + version "7.18.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.5.tgz#337062363436a893a2d22faa60be5bb37091c83c" + integrity sha512-YZWVaglMiplo7v8f1oMQ5ZPQr0vn7HPeZXxXWsxXJRjGVrzUFn9OxFQl1sb5wzfootjA/yChhW84BV+383FSOw== + "@babel/parser@^7.1.0", "@babel/parser@^7.12.11", "@babel/parser@^7.12.3", "@babel/parser@^7.12.7", "@babel/parser@^7.14.5", "@babel/parser@^7.15.0", "@babel/parser@^7.4.3", "@babel/parser@^7.7.0", "@babel/parser@^7.8.3", "@babel/parser@^7.9.0": version "7.15.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.3.tgz#3416d9bea748052cfcb63dbcc27368105b1ed862" @@ -2049,6 +2059,54 @@ classnames "^2.2" tslib "~1.13.0" +"@bugsnag/browser@^7.17.0": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@bugsnag/browser/-/browser-7.17.0.tgz#c777d673df6075d001a2a7eb290ea37e6b2411d2" + integrity sha512-hTF1Bb62kIDN576vVw+u2m1kyT4b/1lDlAOxi5S+T1npydd+DKPQToXNbRJr29z23Ni+GG26uWA1c+rzWdYRDQ== + dependencies: + "@bugsnag/core" "^7.17.0" + +"@bugsnag/core@^7.17.0": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@bugsnag/core/-/core-7.17.0.tgz#0422b87108c7807f6e334a573213126685b6df3d" + integrity sha512-qt3+Ub64tspbdb6wMiJZIOFyKGv7ZSGRa66GjBmW3Y9cTb42Y8cNx1/0hxY4cDhSbwfunGTqKCcjFRrRcTlfNA== + dependencies: + "@bugsnag/cuid" "^3.0.0" + "@bugsnag/safe-json-stringify" "^6.0.0" + error-stack-parser "^2.0.3" + iserror "0.0.2" + stack-generator "^2.0.3" + +"@bugsnag/cuid@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@bugsnag/cuid/-/cuid-3.0.0.tgz#2ee7642a30aee6dc86f5e7f824653741e42e5c35" + integrity sha512-LOt8aaBI+KvOQGneBtpuCz3YqzyEAehd1f3nC5yr9TIYW1+IzYKa2xWS4EiMz5pPOnRPHkyyS5t/wmSmN51Gjg== + +"@bugsnag/js@^7.0.0": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@bugsnag/js/-/js-7.17.0.tgz#0cabaee93bcb8436025a8d60932793cd133f3346" + integrity sha512-wBiB/4wv3X6Iw2HrU7wywGnT+tt1DfOJjTeZIcWVzJ4u9b5avx4SmvJogfHjYRV/BIZaGuG5wxZU/0NsQy429g== + dependencies: + "@bugsnag/browser" "^7.17.0" + "@bugsnag/node" "^7.17.0" + +"@bugsnag/node@^7.17.0": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@bugsnag/node/-/node-7.17.0.tgz#900cc24a543ed60c95bdaa3fa263e86dc4cb7444" + integrity sha512-tTk7QMp0eKTg8p0W404xnWHsAbz+cO7wyBUwrw2FAcLYj4QIbMqz0l0hjpwN+qUl07RbCrgdKA/RWN1Evf5ziw== + dependencies: + "@bugsnag/core" "^7.17.0" + byline "^5.0.0" + error-stack-parser "^2.0.2" + iserror "^0.0.2" + pump "^3.0.0" + stack-generator "^2.0.3" + +"@bugsnag/safe-json-stringify@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@bugsnag/safe-json-stringify/-/safe-json-stringify-6.0.0.tgz#22abdcd83e008c369902976730c34c150148a758" + integrity sha512-htzFO1Zc57S8kgdRK9mLcPVTW1BY2ijfH7Dk2CeZmspTWKdKqSo1iwmqrq2WtRjFlo8aRZYgLX0wFrDXF/9DLA== + "@cnakazawa/watch@^1.0.3": version "1.0.4" resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" @@ -2057,6 +2115,18 @@ exec-sh "^0.3.2" minimist "^1.2.0" +"@colors/colors@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" + integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + "@csstools/convert-colors@^1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" @@ -4116,6 +4186,17 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" +"@jest/types@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80" + integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^16.0.0" + chalk "^4.0.0" + "@jridgewell/resolve-uri@^3.0.3": version "3.0.5" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c" @@ -4126,6 +4207,14 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping@^0.3.0": version "0.3.4" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3" @@ -4213,6 +4302,21 @@ resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.50.0.tgz#29c6419e8379d496ab6d0426eadf3c4d100cd186" integrity sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA== +"@mapbox/node-pre-gyp@^1.0.5": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz#09a8781a3a036151cdebbe8719d6f8b25d4058bc" + integrity sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw== + dependencies: + detect-libc "^2.0.0" + https-proxy-agent "^5.0.0" + make-dir "^3.1.0" + node-fetch "^2.6.7" + nopt "^5.0.0" + npmlog "^5.0.1" + rimraf "^3.0.2" + semver "^7.3.5" + tar "^6.1.11" + "@mdx-js/loader@^1.6.22": version "1.6.22" resolved "https://registry.yarnpkg.com/@mdx-js/loader/-/loader-1.6.22.tgz#d9e8fe7f8185ff13c9c8639c048b123e30d322c4" @@ -4286,6 +4390,456 @@ resolved "https://registry.yarnpkg.com/@n1ru4l/graphql-live-query/-/graphql-live-query-0.9.0.tgz#defaebdd31f625bee49e6745934f36312532b2bc" integrity sha512-BTpWy1e+FxN82RnLz4x1+JcEewVdfmUhV1C6/XYD5AjS7PQp9QFF7K8bCD6gzPTr2l+prvqOyVueQhFJxB1vfg== +"@netlify/build@^27.1.3": + version "27.1.5" + resolved "https://registry.yarnpkg.com/@netlify/build/-/build-27.1.5.tgz#10b774a51be7f711e84cd2f504dad38ff35c2c62" + integrity sha512-ESlvMYSQvwKq14KFqYzBWI8Wy7mRrSKqJEOzK5hpSZq+kYsDsRcEVRUQ4MU/fqpOuKgn24JMHfpNrnUbvNv6zQ== + dependencies: + "@bugsnag/js" "^7.0.0" + "@netlify/cache-utils" "^4.0.0" + "@netlify/config" "^18.0.0" + "@netlify/edge-bundler" "^1.2.1" + "@netlify/functions-utils" "^4.1.15" + "@netlify/git-utils" "^4.0.0" + "@netlify/plugins-list" "^6.28.0" + "@netlify/run-utils" "^4.0.0" + "@netlify/zip-it-and-ship-it" "5.10.2" + "@sindresorhus/slugify" "^2.0.0" + "@types/node" "^16.0.0" + ansi-escapes "^5.0.0" + chalk "^5.0.0" + clean-stack "^4.0.0" + execa "^6.0.0" + figures "^4.0.0" + filter-obj "^3.0.0" + got "^10.0.0" + indent-string "^5.0.0" + is-plain-obj "^4.0.0" + js-yaml "^4.0.0" + keep-func-props "^4.0.0" + locate-path "^7.0.0" + log-process-errors "^8.0.0" + map-obj "^5.0.0" + memoize-one "^6.0.0" + os-name "^5.0.0" + p-event "^5.0.0" + p-every "^2.0.0" + p-filter "^3.0.0" + p-locate "^6.0.0" + p-reduce "^3.0.0" + path-exists "^5.0.0" + path-type "^5.0.0" + pkg-dir "^6.0.0" + pretty-ms "^7.0.0" + ps-list "^8.0.0" + read-pkg-up "^9.0.0" + readdirp "^3.4.0" + resolve "^2.0.0-next.1" + rfdc "^1.3.0" + safe-json-stringify "^1.2.0" + semver "^7.0.0" + statsd-client "0.4.7" + string-width "^5.0.0" + strip-ansi "^7.0.0" + supports-color "^9.0.0" + tmp-promise "^3.0.2" + ts-node "^10.6.0" + typescript "^4.5.4" + update-notifier "^5.0.0" + uuid "^8.0.0" + yargs "^17.3.1" + +"@netlify/cache-utils@^4.0.0": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@netlify/cache-utils/-/cache-utils-4.1.4.tgz#b8c7e654575e9ad1b8916b606674eaa0dfab079c" + integrity sha512-O31A0G5CelEAQ0ffkV6adscCP9/+0X4L3ABaxpBL02cr6XktOJd+imm+MiYF+9h/EYe8qRdwFeghjtlohXhcsQ== + dependencies: + cpy "^8.1.0" + del "^6.0.0" + get-stream "^6.0.0" + globby "^13.0.0" + junk "^4.0.0" + locate-path "^7.0.0" + move-file "^3.0.0" + path-exists "^5.0.0" + readdirp "^3.4.0" + +"@netlify/config@^18.0.0", "@netlify/config@^18.0.1": + version "18.0.1" + resolved "https://registry.yarnpkg.com/@netlify/config/-/config-18.0.1.tgz#4cfa0feb151b063bff4bd0f7c955bf9b7c065ec9" + integrity sha512-DqRjJfFIh+sDXzwpn4xoO5+xp4TjWF9GZ0y+RPpwyZpoL6h/kGJx13bsNrpiTGz07aS0GX8wYljeMGj/M8ABRw== + dependencies: + chalk "^5.0.0" + cron-parser "^4.1.0" + deepmerge "^4.2.2" + dot-prop "^7.0.0" + execa "^6.0.0" + fast-safe-stringify "^2.0.7" + figures "^4.0.0" + filter-obj "^3.0.0" + find-up "^6.0.0" + indent-string "^5.0.0" + is-plain-obj "^4.0.0" + js-yaml "^4.0.0" + map-obj "^5.0.0" + netlify "^11.0.1" + netlify-headers-parser "^6.0.2" + netlify-redirect-parser "13.0.5" + omit.js "^2.0.2" + p-locate "^6.0.0" + path-exists "^5.0.0" + path-type "^5.0.0" + toml "^3.0.0" + tomlify-j0.4 "^3.0.0" + validate-npm-package-name "^4.0.0" + yargs "^17.3.1" + +"@netlify/edge-bundler@^1.2.0", "@netlify/edge-bundler@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@netlify/edge-bundler/-/edge-bundler-1.2.1.tgz#79d3cfe46caea058d6b2c996e872612a23a8cc4d" + integrity sha512-fZaVWBMqzSHWcUviP2pvwx0GkE4XI2rkylnvd79lwz3GhKFX20MjsnUamQ3NPWrvuBxJOcdP/jeEC94CH2VPng== + dependencies: + common-path-prefix "^3.0.0" + del "^6.0.0" + env-paths "^3.0.0" + execa "^6.0.0" + glob-to-regexp "^0.4.1" + node-fetch "^3.1.1" + node-stream-zip "^1.15.0" + p-wait-for "^4.1.0" + semver "^7.3.5" + tmp-promise "^3.0.3" + uuid "^8.3.2" + +"@netlify/esbuild-android-64@0.14.25": + version "0.14.25" + resolved "https://registry.yarnpkg.com/@netlify/esbuild-android-64/-/esbuild-android-64-0.14.25.tgz#a8aeb8c1c2c767165f534a2dadbfcfbd30bfb6e5" + integrity sha512-z8vtc3jPgQxEcW9ldN5XwEPW0BHsaNFFZ4eIYSh0D2kxTCk1K2k6PY6+9+4wsCgyY0J5fnykCEjPj9AQBzCRpg== + +"@netlify/esbuild-android-arm64@0.14.25": + version "0.14.25" + resolved "https://registry.yarnpkg.com/@netlify/esbuild-android-arm64/-/esbuild-android-arm64-0.14.25.tgz#f11745bc8fb6d92b39ac606f6a318fe4a140328a" + integrity sha512-M0MHkLvOsGPano1Lpbwbik09/Dku0Pl9YJKtVZimo55/pd6kUFpktUbO+VSF9gA3ihdisEkL8/Y+gc4wxLbJkg== + +"@netlify/esbuild-darwin-64@0.14.25": + version "0.14.25" + resolved "https://registry.yarnpkg.com/@netlify/esbuild-darwin-64/-/esbuild-darwin-64-0.14.25.tgz#7cd831b458586788cad2219c59a09b29b36fb71f" + integrity sha512-V1GAIfYLsCIcGfGfyAQ+VhbJ/GrzrEkMamAZd5jO1I2T1XHyPMe4vYV7W7AZzcwcYzpdlj8MXIESCODlCDXnCQ== + +"@netlify/esbuild-darwin-arm64@0.14.25": + version "0.14.25" + resolved "https://registry.yarnpkg.com/@netlify/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.25.tgz#ae932361fab673bcc02d8dc9bb1bc1b62986b99c" + integrity sha512-jfX7SY2ZD4NzSCDHZiAJfHKoqINxymToWv5LUml5/FJa6602o+x+ghg8vFezVaap1XTr+ULdFbHOEiqKpeFl+A== + +"@netlify/esbuild-freebsd-64@0.14.25": + version "0.14.25" + resolved "https://registry.yarnpkg.com/@netlify/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.25.tgz#e5e613d4932b8c684f2ee061046e20f69a77aab3" + integrity sha512-rsK6mW/zaFZSPVa+7CthO3bPeW6qBE9VtwHAm5tdXCP3+Qpl+9rQnbs1CEqqWGrNUv+ExlTVqrAUKkdrGq8IPg== + +"@netlify/esbuild-freebsd-arm64@0.14.25": + version "0.14.25" + resolved "https://registry.yarnpkg.com/@netlify/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.25.tgz#4dcdf660038e20c181ab2d3dc59f61f05af9c7e1" + integrity sha512-ym2Tf0dsKWJbVu3keFSs1FZezk1PXmxckuFTr0+hJMUazeNwFqJJQrY3SiN0JM7jh+VunND2RePjfsSZpcK54g== + +"@netlify/esbuild-linux-32@0.14.25": + version "0.14.25" + resolved "https://registry.yarnpkg.com/@netlify/esbuild-linux-32/-/esbuild-linux-32-0.14.25.tgz#0a401b9ef7a5938de09ef8cf6ea5395afe19e62d" + integrity sha512-BGRAge/+6m8/lCejgLzCdq+GpN9ah3/XBp88YGgufb4h3c2CAxrq9fIlizHyZA4THHh2T/ka3rYdBOC5ciEwEw== + +"@netlify/esbuild-linux-64@0.14.25": + version "0.14.25" + resolved "https://registry.yarnpkg.com/@netlify/esbuild-linux-64/-/esbuild-linux-64-0.14.25.tgz#c813ea6c52617d0cd94c2b024c5042dad0cb68f2" + integrity sha512-yD579mskxDXrDR2vC7Dw/mEFTEuQoNYBcoKsIq+ctLiyQcKI1WCgAapJ+MCNpIDkmZp4O1uVuqIiMSyoMlv1QQ== + +"@netlify/esbuild-linux-arm64@0.14.25": + version "0.14.25" + resolved "https://registry.yarnpkg.com/@netlify/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.25.tgz#d9fcb814280843dcd95031c1765113836f42d731" + integrity sha512-t1BDP9Fb94jut9m+PE4AVaTQE40JaCJEVpszvvP/6aByR5NMQ5BrNaU8e6XZ6MS7bulYsJCEcJ8I/pPraXycqg== + +"@netlify/esbuild-linux-arm@0.14.25": + version "0.14.25" + resolved "https://registry.yarnpkg.com/@netlify/esbuild-linux-arm/-/esbuild-linux-arm-0.14.25.tgz#04debecf616352e772818a6a3533830ceeda3256" + integrity sha512-NtnVECEKNr53v11E4wJzQtf7oM3HSPShDZEcwadjuK85AIJpISZcc7Hi6k/g4PsSyGjp73hH8Jly2hh+o+ruvQ== + +"@netlify/esbuild-linux-mips64le@0.14.25": + version "0.14.25" + resolved "https://registry.yarnpkg.com/@netlify/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.25.tgz#4e8b9c4db357a838ab3c5c2959dfa22d063b2c67" + integrity sha512-Fo5sBkAVxxy+lEmKNo1bJD1lrVI9lpdwSzXW/I8k6ly9J8Vf2JNDYgvld4GSkNVTij5jA/zuN7aSQDEoIgx4mA== + +"@netlify/esbuild-linux-ppc64le@0.14.25": + version "0.14.25" + resolved "https://registry.yarnpkg.com/@netlify/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.25.tgz#d706b438f8d67375a2b71e4eeb966a5ae5d505e8" + integrity sha512-EDInkVpAqfyfmZtYI9g9E78ohPLtyZinR19/8PGtL4zZcRUP2AnEzQRtv4NkAKAlPGa8plv3SiGsg4qKeeYRFA== + +"@netlify/esbuild-linux-riscv64@0.14.25": + version "0.14.25" + resolved "https://registry.yarnpkg.com/@netlify/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.25.tgz#8802af621a258fd5c24b060f9fd217f1bbeaa75a" + integrity sha512-MACKlmgawjSkNBH34AQUNoC4CX+KD4kk5KfneiBzQeV5oUW89yBf2Q/GaqiTB58Jz93juBOkWwiV0z25AmJzvg== + +"@netlify/esbuild-linux-s390x@0.14.25": + version "0.14.25" + resolved "https://registry.yarnpkg.com/@netlify/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.25.tgz#6003ae1233c51c67ed0558674ea4f24bedd78e44" + integrity sha512-Mti6NSFGQ6GT+C9LTn15k2JttvtMcy+c1Xxqj8GYkiOqbM7Oh6NcMlXQiHxnCCsxw5Jx0WSWjdrn/dKhdiC13A== + +"@netlify/esbuild-netbsd-64@0.14.25": + version "0.14.25" + resolved "https://registry.yarnpkg.com/@netlify/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.25.tgz#9712bcac36b3dd3931c782a9ed7a84f1a1efe238" + integrity sha512-aNDKGpy926VcnA//hqw+d4k1q1ekpmhDdy0cuEib6ZS7Qb/5xGVRH6mjG8pf0TtonY9x+wiYNuQn4Dn/DwP9Kw== + +"@netlify/esbuild-openbsd-64@0.14.25": + version "0.14.25" + resolved "https://registry.yarnpkg.com/@netlify/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.25.tgz#8a7e5da296f2bf29c554ca1290a5c9be5b375643" + integrity sha512-70W5TnRX5MroXVN0munWpF5q/AAWlamoy+PUL6cnDgc7cfnRiHHrndY++ZpWczNif8t4fQKVtC4jdUemnyb8Ag== + +"@netlify/esbuild-sunos-64@0.14.25": + version "0.14.25" + resolved "https://registry.yarnpkg.com/@netlify/esbuild-sunos-64/-/esbuild-sunos-64-0.14.25.tgz#96858b4c85b28196d8539d51aa2389708db3136e" + integrity sha512-UImichNlQInjErof7tuoG/8VVbrn8Y5EVVMI4M+RoCafWh9NSl4a57hohcgwbeGwl5NcGJtHg+l/WqzlHQFFsQ== + +"@netlify/esbuild-windows-32@0.14.25": + version "0.14.25" + resolved "https://registry.yarnpkg.com/@netlify/esbuild-windows-32/-/esbuild-windows-32-0.14.25.tgz#c9977fea231fe0d1a3938aae0cc0d9de927d6486" + integrity sha512-OFisPQBbuIH8wMRm//fs7wQ7d6t1PuLylIUsUSgignjEV3BOts4+pjtq0J8Aq9kkKoVp8HGSJjaxpc6v2ER/KA== + +"@netlify/esbuild-windows-64@0.14.25": + version "0.14.25" + resolved "https://registry.yarnpkg.com/@netlify/esbuild-windows-64/-/esbuild-windows-64-0.14.25.tgz#b4f26b73916dacaa537867d034035939a362baf1" + integrity sha512-BgIxcEcqr4pfRc9fXStIXQVpjIkBUc3XHFEjH2t2R9pcEDU4BpMsdBgj0UA2x3Z0KtwVLLCOZDvSiaL+WkiTqA== + +"@netlify/esbuild-windows-arm64@0.14.25": + version "0.14.25" + resolved "https://registry.yarnpkg.com/@netlify/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.25.tgz#ddd8535b2cd003adc575f3275ccb1619eace9bc6" + integrity sha512-B5Neu8aXqucUthCvAwVX7IvKbNSD/n3VFiQQcH0YQ+mtbzEIRIFaEAIanGdkmLx0shVBOlY9JxIeRThGPt2/2A== + +"@netlify/esbuild@0.14.25": + version "0.14.25" + resolved "https://registry.yarnpkg.com/@netlify/esbuild/-/esbuild-0.14.25.tgz#8299e8ac8e32b0bf71cdc0860c26e6d904b3ef60" + integrity sha512-ko0cMTbYpajNr0Sy6kvSqR+JDvgU/vjJhO061K1h8+Zs4MlF5AUhaITkpSOrP3g45zp++IEwN1Brxr+/BIez+g== + optionalDependencies: + "@netlify/esbuild-android-64" "0.14.25" + "@netlify/esbuild-android-arm64" "0.14.25" + "@netlify/esbuild-darwin-64" "0.14.25" + "@netlify/esbuild-darwin-arm64" "0.14.25" + "@netlify/esbuild-freebsd-64" "0.14.25" + "@netlify/esbuild-freebsd-arm64" "0.14.25" + "@netlify/esbuild-linux-32" "0.14.25" + "@netlify/esbuild-linux-64" "0.14.25" + "@netlify/esbuild-linux-arm" "0.14.25" + "@netlify/esbuild-linux-arm64" "0.14.25" + "@netlify/esbuild-linux-mips64le" "0.14.25" + "@netlify/esbuild-linux-ppc64le" "0.14.25" + "@netlify/esbuild-linux-riscv64" "0.14.25" + "@netlify/esbuild-linux-s390x" "0.14.25" + "@netlify/esbuild-netbsd-64" "0.14.25" + "@netlify/esbuild-openbsd-64" "0.14.25" + "@netlify/esbuild-sunos-64" "0.14.25" + "@netlify/esbuild-windows-32" "0.14.25" + "@netlify/esbuild-windows-64" "0.14.25" + "@netlify/esbuild-windows-arm64" "0.14.25" + +"@netlify/framework-info@^9.0.2": + version "9.1.0" + resolved "https://registry.yarnpkg.com/@netlify/framework-info/-/framework-info-9.1.0.tgz#a501cd229ebf3648147c860c3fd6b5010a40acfc" + integrity sha512-QfvXia5K5gxrclHTpv+0ICXf/XnvEGfxfHM+2tj6v0XjSb15OGMnx4qvr8JWfrCY1h4YwHmuLzUTibSymRGaYg== + dependencies: + ajv "^8.0.0" + filter-obj "^3.0.0" + is-plain-obj "^4.0.0" + locate-path "^7.0.0" + p-filter "^3.0.0" + p-locate "^6.0.0" + read-pkg-up "^9.0.0" + semver "^7.3.4" + +"@netlify/functions-utils@^4.1.15": + version "4.1.15" + resolved "https://registry.yarnpkg.com/@netlify/functions-utils/-/functions-utils-4.1.15.tgz#e0c5bd3d760714e4d5b940eec97946fc2b71a673" + integrity sha512-Zwyk1SE7OnyQi0KIKK//7xocQw/AUQT0M/BYBQ+W5y2UIZiso/8ABuatfkCjDyzyucTHau/jMIYbEaaS08tF0g== + dependencies: + "@netlify/zip-it-and-ship-it" "5.10.2" + cpy "^8.1.0" + path-exists "^5.0.0" + +"@netlify/git-utils@^4.0.0": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@netlify/git-utils/-/git-utils-4.1.1.tgz#5e48e1073ba20916ab03f936330640ab6a64b549" + integrity sha512-nErJowHlUHd36R/1KsXFEh9a5VL98/fr/IjwealZRQK+2E4Pm9t/KBkvR+LAyqWoINrrtkbpwjBRnO4r034OUg== + dependencies: + execa "^6.0.0" + map-obj "^5.0.0" + micromatch "^4.0.2" + moize "^6.0.0" + path-exists "^5.0.0" + +"@netlify/local-functions-proxy-darwin-arm64@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-darwin-arm64/-/local-functions-proxy-darwin-arm64-1.1.1.tgz#c83a0a142637fb8cefe25c95f5c5cf6f2d7e32ed" + integrity sha512-lphJ9qqZ3glnKWEqlemU1LMqXxtJ/tKf7VzakqqyjigwLscXSZSb6fupSjQfd4tR1xqxA76ylws/2HDhc/gs+Q== + +"@netlify/local-functions-proxy-darwin-x64@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-darwin-x64/-/local-functions-proxy-darwin-x64-1.1.1.tgz#e8b558cfd459a5d8343d468e5c128a144638967a" + integrity sha512-4CRB0H+dXZzoEklq5Jpmg+chizXlVwCko94d8+UHWCgy/bA3M/rU/BJ8OLZisnJaAktHoeLABKtcLOhtRHpxZQ== + +"@netlify/local-functions-proxy-freebsd-arm64@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-freebsd-arm64/-/local-functions-proxy-freebsd-arm64-1.1.1.tgz#3a60e32fe1929f97817db5da0925c37feea7606e" + integrity sha512-u13lWTVMJDF0A6jX7V4N3HYGTIHLe5d1Z2wT43fSIHwXkTs6UXi72cGSraisajG+5JFIwHfPr7asw5vxFC0P9w== + +"@netlify/local-functions-proxy-freebsd-x64@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-freebsd-x64/-/local-functions-proxy-freebsd-x64-1.1.1.tgz#ddc526256cb835f6dbd6747d75a7f3dbcca77da8" + integrity sha512-g5xw4xATK5YDzvXtzJ8S1qSkWBiyF8VVRehXPMOAMzpGjCX86twYhWp8rbAk7yA1zBWmmWrWNA2Odq/MgpKJJg== + +"@netlify/local-functions-proxy-linux-arm64@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-linux-arm64/-/local-functions-proxy-linux-arm64-1.1.1.tgz#c88c3d8eacdaf655f871eb1eff58b1b3262c38ff" + integrity sha512-dPGu1H5n8na7mBKxiXQ+FNmthDAiA57wqgpm5JMAHtcdcmRvcXwJkwWVGvwfj8ShhYJHQaSaS9oPgO+mpKkgmA== + +"@netlify/local-functions-proxy-linux-arm@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-linux-arm/-/local-functions-proxy-linux-arm-1.1.1.tgz#d92905605f3f17c442001e6ead3710b64366fbd1" + integrity sha512-YsTpL+AbHwQrfHWXmKnwUrJBjoUON363nr6jUG1ueYnpbbv6wTUA7gI5snMi/gkGpqFusBthAA7C30e6bixfiA== + +"@netlify/local-functions-proxy-linux-ia32@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-linux-ia32/-/local-functions-proxy-linux-ia32-1.1.1.tgz#b4cb57c438a82f42c2e30ee4ec50cfa233379d59" + integrity sha512-Ra0FlXDrmPRaq+rYH3/ttkXSrwk1D5Zx/Na7UPfJZxMY7Qo5iY4bgi/FuzjzWzlp0uuKZOhYOYzYzsIIyrSvmw== + +"@netlify/local-functions-proxy-linux-ppc64@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-linux-ppc64/-/local-functions-proxy-linux-ppc64-1.1.1.tgz#3fdef281191dd819fee72ac58ccbca1ac650fee3" + integrity sha512-oXf1satwqwUUxz7LHS1BxbRqc4FFEKIDFTls04eXiLReFR3sqv9H/QuYNTCCDMuRcCOd92qKyDfATdnxT4HR8w== + +"@netlify/local-functions-proxy-linux-x64@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-linux-x64/-/local-functions-proxy-linux-x64-1.1.1.tgz#bd2c8059c5d7dd46ef5da174723ca2cdd7bfdb2f" + integrity sha512-bS3u4JuDg/eC0y4Na3i/29JBOxrdUvsK5JSjHfzUeZEbOcuXYf4KavTpHS5uikdvTgyczoSrvbmQJ5m0FLXfLA== + +"@netlify/local-functions-proxy-openbsd-x64@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-openbsd-x64/-/local-functions-proxy-openbsd-x64-1.1.1.tgz#31a3340f4f10dd5c95cd3f2dc9f1e967c051aa2a" + integrity sha512-1xLef/kLRNkBTXJ+ZGoRFcwsFxd/B2H3oeJZyXaZ3CN5umd9Mv9wZuAD74NuMt/535yRva8jtAJqvEgl9xMSdA== + +"@netlify/local-functions-proxy-win32-ia32@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-win32-ia32/-/local-functions-proxy-win32-ia32-1.1.1.tgz#354890bc58f54e8b26721447f243c49945f2fe74" + integrity sha512-4IOMDBxp2f8VbIkhZ85zGNDrZR4ey8d68fCMSOIwitjsnKav35YrCf8UmAh3UR6CNIRJdJL4MW1GYePJ7iJ8uA== + +"@netlify/local-functions-proxy-win32-x64@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-win32-x64/-/local-functions-proxy-win32-x64-1.1.1.tgz#7ee183b4ccd0062b6124275387d844530ea0b224" + integrity sha512-VCBXBJWBujVxyo5f+3r8ovLc9I7wJqpmgDn3ixs1fvdrER5Ac+SzYwYH4mUug9HI08mzTSAKZErzKeuadSez3w== + +"@netlify/local-functions-proxy@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy/-/local-functions-proxy-1.1.1.tgz#e5d1416e6d607f8e8bd4d295b1ee1e550d5bd3cb" + integrity sha512-eXSsayLT6PMvjzFQpjC9nkg2Otc3lZ5GoYele9M6f8PmsvWpaXRhwjNQ0NYhQQ2UZbLMIiO2dH8dbRsT3bMkFw== + optionalDependencies: + "@netlify/local-functions-proxy-darwin-arm64" "1.1.1" + "@netlify/local-functions-proxy-darwin-x64" "1.1.1" + "@netlify/local-functions-proxy-freebsd-arm64" "1.1.1" + "@netlify/local-functions-proxy-freebsd-x64" "1.1.1" + "@netlify/local-functions-proxy-linux-arm" "1.1.1" + "@netlify/local-functions-proxy-linux-arm64" "1.1.1" + "@netlify/local-functions-proxy-linux-ia32" "1.1.1" + "@netlify/local-functions-proxy-linux-ppc64" "1.1.1" + "@netlify/local-functions-proxy-linux-x64" "1.1.1" + "@netlify/local-functions-proxy-openbsd-x64" "1.1.1" + "@netlify/local-functions-proxy-win32-ia32" "1.1.1" + "@netlify/local-functions-proxy-win32-x64" "1.1.1" + +"@netlify/open-api@^2.10.0": + version "2.10.0" + resolved "https://registry.yarnpkg.com/@netlify/open-api/-/open-api-2.10.0.tgz#413bc76e86e4bf880921aa295958eb8afac042b1" + integrity sha512-ZJF4nbLPfxsWrVgp2reCb23HMxsWl5+r+K0RtIhxcZ/RxbHVihRA9mwyzIcxPWrT5x9uAAxCr1aKGP7IdsDe+Q== + +"@netlify/plugins-list@^6.27.0", "@netlify/plugins-list@^6.28.0": + version "6.28.0" + resolved "https://registry.yarnpkg.com/@netlify/plugins-list/-/plugins-list-6.28.0.tgz#1006982bdfaaebace4740bc81fbd48a250be6451" + integrity sha512-cx0d9oFg0q94YMuDJBEllbeL0SvGGAndjoOpmJaR9HZRnczzKvMCnK2Rjuf/Pf/bJmRQePFkKeCS7lKTOdoICw== + +"@netlify/run-utils@^4.0.0": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@netlify/run-utils/-/run-utils-4.0.1.tgz#c6ff494eb85753ab0a05ccb7a09da7f01cadd942" + integrity sha512-6xwmYJWcQkRTdtA/u6WFRYBTuU7j9j+lh7Ld2+6TsUricnyg4orMIKQBdmVYM3tGbzzAidTOjzmbc8XXzQOo6g== + dependencies: + execa "^6.0.0" + +"@netlify/zip-it-and-ship-it@5.10.2": + version "5.10.2" + resolved "https://registry.yarnpkg.com/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-5.10.2.tgz#dc43e4d0f7121e065be76b9753fed0bd50a4c2b8" + integrity sha512-aKKIaCxM0G0aU1YfK/epZ2XN1LOMxFtQ/tsIfYZIM69fAgkTyEJ0FeLS7jeTEjPl+t+k1pdqAZiHTxDFs6gbQA== + dependencies: + "@babel/parser" "7.16.8" + "@netlify/esbuild" "0.14.25" + "@vercel/nft" "^0.20.0" + archiver "^5.3.0" + common-path-prefix "^3.0.0" + cp-file "^9.0.0" + del "^6.0.0" + elf-cam "^0.1.1" + end-of-stream "^1.4.4" + es-module-lexer "^0.10.0" + execa "^5.0.0" + filter-obj "^2.0.1" + find-up "^5.0.0" + glob "^8.0.3" + is-builtin-module "^3.1.0" + junk "^3.1.0" + locate-path "^6.0.0" + merge-options "^3.0.4" + minimatch "^5.0.0" + normalize-path "^3.0.0" + p-map "^4.0.0" + path-exists "^4.0.0" + precinct "^9.0.1" + read-package-json-fast "^2.0.2" + require-package-name "^2.0.1" + resolve "^2.0.0-next.1" + semver "^7.0.0" + tmp-promise "^3.0.2" + toml "^3.0.0" + unixify "^1.0.0" + yargs "^17.0.0" + +"@netlify/zip-it-and-ship-it@^5.10.1": + version "5.11.0" + resolved "https://registry.yarnpkg.com/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-5.11.0.tgz#73fb56fe497fafe9ba70841dad2e7a890b7663c9" + integrity sha512-3Q7nulHfrqw5kixeOKG74uZBMfI4T1qC/d9ImUIKFqilwAWXcGjHpoeAD72W4+kGaHPJESB1rM3QtJpdWykkEg== + dependencies: + "@babel/parser" "7.16.8" + "@netlify/esbuild" "0.14.25" + "@vercel/nft" "^0.20.0" + archiver "^5.3.0" + common-path-prefix "^3.0.0" + cp-file "^9.0.0" + del "^6.0.0" + elf-cam "^0.1.1" + end-of-stream "^1.4.4" + es-module-lexer "^0.10.0" + execa "^5.0.0" + filter-obj "^2.0.1" + find-up "^5.0.0" + glob "^8.0.3" + is-builtin-module "^3.1.0" + junk "^3.1.0" + locate-path "^6.0.0" + merge-options "^3.0.4" + minimatch "^5.0.0" + normalize-path "^3.0.0" + p-map "^4.0.0" + path-exists "^4.0.0" + precinct "^9.0.1" + read-package-json-fast "^2.0.2" + require-package-name "^2.0.1" + resolve "^2.0.0-next.1" + semver "^7.0.0" + tmp-promise "^3.0.2" + toml "^3.0.0" + unixify "^1.0.0" + yargs "^17.0.0" + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -4320,6 +4874,107 @@ mkdirp "^1.0.4" rimraf "^3.0.2" +"@octokit/auth-token@^2.4.4": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.5.0.tgz#27c37ea26c205f28443402477ffd261311f21e36" + integrity sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g== + dependencies: + "@octokit/types" "^6.0.3" + +"@octokit/core@^3.5.1": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.6.0.tgz#3376cb9f3008d9b3d110370d90e0a1fcd5fe6085" + integrity sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q== + dependencies: + "@octokit/auth-token" "^2.4.4" + "@octokit/graphql" "^4.5.8" + "@octokit/request" "^5.6.3" + "@octokit/request-error" "^2.0.5" + "@octokit/types" "^6.0.3" + before-after-hook "^2.2.0" + universal-user-agent "^6.0.0" + +"@octokit/endpoint@^6.0.1": + version "6.0.12" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658" + integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA== + dependencies: + "@octokit/types" "^6.0.3" + is-plain-object "^5.0.0" + universal-user-agent "^6.0.0" + +"@octokit/graphql@^4.5.8": + version "4.8.0" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.8.0.tgz#664d9b11c0e12112cbf78e10f49a05959aa22cc3" + integrity sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg== + dependencies: + "@octokit/request" "^5.6.0" + "@octokit/types" "^6.0.3" + universal-user-agent "^6.0.0" + +"@octokit/openapi-types@^12.4.0": + version "12.4.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-12.4.0.tgz#fd8bf5db72bd566c5ba2cb76754512a9ebe66e71" + integrity sha512-Npcb7Pv30b33U04jvcD7l75yLU0mxhuX2Xqrn51YyZ5WTkF04bpbxLaZ6GcaTqu03WZQHoO/Gbfp95NGRueDUA== + +"@octokit/plugin-paginate-rest@^2.16.8": + version "2.19.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.19.0.tgz#b52eae6ecacfa1f5583dc2cc0985cfbed3ca78b0" + integrity sha512-hQ4Qysg2hNmEMuZeJkvyzM4eSZiTifOKqYAMsW8FnxFKowhuwWICSgBQ9Gn9GpUmgKB7qaf1hFvMjYaTAg5jQA== + dependencies: + "@octokit/types" "^6.36.0" + +"@octokit/plugin-request-log@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" + integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== + +"@octokit/plugin-rest-endpoint-methods@^5.12.0": + version "5.15.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.15.0.tgz#6c8251b55c33315a6e53e5b55654f72023ed5049" + integrity sha512-Gsw9+Xm56jVhfbJoy4pt6eOOyf8/3K6CAnx1Sl7U2GhZWcg8MR6YgXWnpfdF69S2ViMXLA7nfvTDAsZpFlkLRw== + dependencies: + "@octokit/types" "^6.36.0" + deprecation "^2.3.1" + +"@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677" + integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg== + dependencies: + "@octokit/types" "^6.0.3" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request@^5.6.0", "@octokit/request@^5.6.3": + version "5.6.3" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.3.tgz#19a022515a5bba965ac06c9d1334514eb50c48b0" + integrity sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A== + dependencies: + "@octokit/endpoint" "^6.0.1" + "@octokit/request-error" "^2.1.0" + "@octokit/types" "^6.16.1" + is-plain-object "^5.0.0" + node-fetch "^2.6.7" + universal-user-agent "^6.0.0" + +"@octokit/rest@^18.0.0": + version "18.12.0" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.12.0.tgz#f06bc4952fc87130308d810ca9d00e79f6988881" + integrity sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q== + dependencies: + "@octokit/core" "^3.5.1" + "@octokit/plugin-paginate-rest" "^2.16.8" + "@octokit/plugin-request-log" "^1.0.4" + "@octokit/plugin-rest-endpoint-methods" "^5.12.0" + +"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.36.0": + version "6.37.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.37.0.tgz#32eb78edb34cf5cea4ba5753ab8db75b776d617a" + integrity sha512-BXWQhFKRkjX4dVW5L2oYa0hzWOAqsEsujXsQLSdepPoDZfYdubrD1KDGpyNldGXtR8QM/WezDcxcIN1UKJMGPA== + dependencies: + "@octokit/openapi-types" "^12.4.0" + "@opengsn/common@^2.2.5": version "2.2.5" resolved "https://registry.yarnpkg.com/@opengsn/common/-/common-2.2.5.tgz#bb1b59c09f94537ec1aee32e3dce5b9a800db986" @@ -4704,6 +5359,48 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== +"@sindresorhus/is@^0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" + integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== + +"@sindresorhus/is@^2.0.0": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-2.1.1.tgz#ceff6a28a5b4867c2dd4a1ba513de278ccbe8bb1" + integrity sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg== + +"@sindresorhus/slugify@^1.1.0": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@sindresorhus/slugify/-/slugify-1.1.2.tgz#c2c0129298b8caace2d9156176fe244d0e83156c" + integrity sha512-V9nR/W0Xd9TSGXpZ4iFUcFGhuOJtZX82Fzxj1YISlbSgKvIiNa7eLEZrT0vAraPOt++KHauIVNYgGRgjc13dXA== + dependencies: + "@sindresorhus/transliterate" "^0.1.1" + escape-string-regexp "^4.0.0" + +"@sindresorhus/slugify@^2.0.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/slugify/-/slugify-2.1.0.tgz#1e252117008cd1121e4cdea9fc67767dd1653d25" + integrity sha512-gU3Gdm/V167BmUwIn8APHZ3SeeRVRUSOdXxnt7Q/JkUHLXaaTA/prYmoRumwsSitJZWUDYMzDWdWgrOdvE8IRQ== + dependencies: + "@sindresorhus/transliterate" "^1.0.0" + escape-string-regexp "^5.0.0" + +"@sindresorhus/transliterate@^0.1.1": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@sindresorhus/transliterate/-/transliterate-0.1.2.tgz#ffce368271d153550e87de81486004f2637425af" + integrity sha512-5/kmIOY9FF32nicXH+5yLNTX4NJ4atl7jRgqAJuIn/iyDFXBktOKDxCvyGE/EzmF4ngSUvjXxQUQlQiZ5lfw+w== + dependencies: + escape-string-regexp "^2.0.0" + lodash.deburr "^4.1.0" + +"@sindresorhus/transliterate@^1.0.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/transliterate/-/transliterate-1.5.0.tgz#841109db51fe3158787c42a91c45c3ffea7589be" + integrity sha512-/sfSkoNelLq5riqNRp5uBjHIKBi1MWZk9ubRT1WiBQuTfmDf7BeQkph2DJzRB83QagMPHk2VDjuvpy0VuwyzdA== + dependencies: + escape-string-regexp "^5.0.0" + lodash.deburr "^4.1.0" + "@sinonjs/commons@^1.7.0": version "1.8.3" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" @@ -5770,6 +6467,13 @@ dependencies: defer-to-connect "^1.0.1" +"@szmarczak/http-timer@^4.0.0": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" + integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== + dependencies: + defer-to-connect "^2.0.0" + "@testing-library/dom@*": version "8.1.0" resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.1.0.tgz#f8358b1883844ea569ba76b7e94582168df5370d" @@ -5850,6 +6554,26 @@ cross-fetch "^3.0.6" runtypes "^5.0.1" +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" + integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== + "@types/aria-query@^4.2.0": version "4.2.2" resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.2.tgz#ed4e0ad92306a704f9fb132a0cfcf77486dbe2bc" @@ -5915,6 +6639,16 @@ resolved "https://registry.yarnpkg.com/@types/braces/-/braces-3.0.1.tgz#5a284d193cfc61abb2e5a50d36ebbc50d942a32b" integrity sha512-+euflG6ygo4bn0JHtn4pYqcXwRtLvElQ7/nnjDu7iYG56H0+OhCd7d6Ug0IE3WcFpZozBKW2+80FUbv5QGk5AQ== +"@types/cacheable-request@^6.0.1": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.2.tgz#c324da0197de0a98a2312156536ae262429ff6b9" + integrity sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA== + dependencies: + "@types/http-cache-semantics" "*" + "@types/keyv" "*" + "@types/node" "*" + "@types/responselike" "*" + "@types/classnames@^2.2.11": version "2.3.1" resolved "https://registry.yarnpkg.com/@types/classnames/-/classnames-2.3.1.tgz#3c2467aa0f1a93f1f021e3b9bcf938bd5dfdc0dd" @@ -5946,11 +6680,27 @@ dependencies: "@types/node" "*" +"@types/decompress@*": + version "4.2.4" + resolved "https://registry.yarnpkg.com/@types/decompress/-/decompress-4.2.4.tgz#dd2715d3ac1f566d03e6e302d1a26ffab59f8c5c" + integrity sha512-/C8kTMRTNiNuWGl5nEyKbPiMv6HA+0RbEXzFhFBEzASM6+oa4tJro9b8nj7eRlOFfuLdzUU+DS/GPDlvvzMOhA== + dependencies: + "@types/node" "*" + "@types/dom4@^2.0.1": version "2.0.2" resolved "https://registry.yarnpkg.com/@types/dom4/-/dom4-2.0.2.tgz#6495303f049689ce936ed328a3e5ede9c51408ee" integrity sha512-Rt4IC1T7xkCWa0OG1oSsPa0iqnxlDeQqKXZAHrQGLb7wFGncWm85MaxKUjAGejOrUynOgWlFi4c6S6IyJwoK4g== +"@types/download@^8.0.0": + version "8.0.1" + resolved "https://registry.yarnpkg.com/@types/download/-/download-8.0.1.tgz#9653e0deb52f1b47f659e8e8be1651c8515bc0a7" + integrity sha512-t5DjMD6Y1DxjXtEHl7Kt+nQn9rOmVLYD8p4Swrcc5QpgyqyqR2gXTIK6RwwMnNeFJ+ZIiIW789fQKzCrK7AOFA== + dependencies: + "@types/decompress" "*" + "@types/got" "^8" + "@types/node" "*" + "@types/eslint@^7.2.6": version "7.28.0" resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.28.0.tgz#7e41f2481d301c68e14f483fe10b017753ce8d5a" @@ -6010,6 +6760,13 @@ dependencies: globby "*" +"@types/got@^8": + version "8.3.6" + resolved "https://registry.yarnpkg.com/@types/got/-/got-8.3.6.tgz#1d8762605818ae8b1ae320f9d7ca5247b6767da7" + integrity sha512-nvLlj+831dhdm4LR2Ly+HTpdLyBaMynoOr6wpIxS19d/bPeHQxFU5XQ6Gp6ohBpxvCWZM1uHQIC2+ySRH1rGrQ== + dependencies: + "@types/node" "*" + "@types/graceful-fs@^4.1.2": version "4.1.5" resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" @@ -6049,6 +6806,18 @@ resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz#693b316ad323ea97eed6b38ed1a3cc02b1672b57" integrity sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w== +"@types/http-cache-semantics@*": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" + integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== + +"@types/http-proxy@^1.17.8": + version "1.17.9" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.9.tgz#7f0e7931343761efde1e2bf48c40f02f3f75705a" + integrity sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw== + dependencies: + "@types/node" "*" + "@types/inquirer@6.0.1": version "6.0.1" resolved "https://registry.yarnpkg.com/@types/inquirer/-/inquirer-6.0.1.tgz#ea9b483a81f16f4f0d27d5c8d9d081dfa36c4ee9" @@ -6110,6 +6879,11 @@ resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.5.tgz#738dd390a6ecc5442f35e7f03fa1431353f7e138" integrity sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA== +"@types/json-buffer@~3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/json-buffer/-/json-buffer-3.0.0.tgz#85c1ff0f0948fc159810d4b5be35bf8c20875f64" + integrity sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ== + "@types/json-schema@*", "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8": version "7.0.9" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" @@ -6132,6 +6906,13 @@ dependencies: "@types/node" "*" +"@types/keyv@*", "@types/keyv@^3.1.1": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" + integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== + dependencies: + "@types/node" "*" + "@types/lodash.debounce@4.0.6": version "4.0.6" resolved "https://registry.yarnpkg.com/@types/lodash.debounce/-/lodash.debounce-4.0.6.tgz#c5a2326cd3efc46566c47e4c0aa248dc0ee57d60" @@ -6187,6 +6968,14 @@ resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== +"@types/node-fetch@^2.1.6": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.2.tgz#d1a9c5fd049d9415dce61571557104dec3ec81da" + integrity sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A== + dependencies: + "@types/node" "*" + form-data "^3.0.0" + "@types/node-fetch@^2.5.7": version "2.5.12" resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.12.tgz#8a6f779b1d4e60b7a57fb6fd48d84fb545b9cc66" @@ -6220,7 +7009,12 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.9.tgz#b97c057e6138adb7b720df2bd0264b03c9f504fd" integrity sha512-CMjgRNsks27IDwI785YMY0KLt3co/c0cQ5foxHYv/shC2w8oOnVwz5Ubq1QG5KzrcW+AXk6gzdnxIkDnTvzu3g== -"@types/normalize-package-data@^2.4.0": +"@types/node@^16.0.0": + version "16.11.41" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.41.tgz#88eb485b1bfdb4c224d878b7832239536aa2f813" + integrity sha512-mqoYK2TnVjdkGk8qXAVGc/x9nSaTpSrFaGFm43BUH3IdoBV0nta6hYaGmdOvIMlbHJbUEVen3gvwpwovAZKNdQ== + +"@types/normalize-package-data@^2.4.0", "@types/normalize-package-data@^2.4.1": version "2.4.1" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== @@ -6394,6 +7188,13 @@ dependencies: "@types/node" "*" +"@types/responselike@*": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" + integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== + dependencies: + "@types/node" "*" + "@types/scheduler@*": version "0.16.2" resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" @@ -6406,6 +7207,11 @@ dependencies: "@types/node" "*" +"@types/semver@^7.0.0": + version "7.3.10" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.10.tgz#5f19ee40cbeff87d916eedc8c2bfe2305d957f73" + integrity sha512-zsv3fsC7S84NN6nPK06u79oWgrPVd0NvOyqgghV1haPaFcVxIrP4DLomRwGAXk0ui4HZA7mOcSFL98sMVW9viw== + "@types/semver@^7.3.4": version "7.3.9" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.9.tgz#152c6c20a7688c30b967ec1841d31ace569863fc" @@ -6658,6 +7464,11 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.29.3.tgz#d7980c49aef643d0af8954c9f14f656b7fd16017" integrity sha512-s1eV1lKNgoIYLAl1JUba8NhULmf+jOmmeFO1G5MN/RBCyyzg4TIOfIOICVNC06lor+Xmy4FypIIhFiJXOknhIg== +"@typescript-eslint/types@5.29.0": + version "5.29.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.29.0.tgz#7861d3d288c031703b2d97bc113696b4d8c19aab" + integrity sha512-X99VbqvAXOMdVyfFmksMy3u8p8yoRGITgU1joBJPzeYa0rhdf5ok9S56/itRoUSh99fiDoMtarSIJXo7H/SnOg== + "@typescript-eslint/typescript-estree@3.10.1": version "3.10.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz#fd0061cc38add4fad45136d654408569f365b853" @@ -6685,6 +7496,19 @@ semver "^7.3.5" tsutils "^3.21.0" +"@typescript-eslint/typescript-estree@^5.13.0": + version "5.29.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.29.0.tgz#e83d19aa7fd2e74616aab2f25dfbe4de4f0b5577" + integrity sha512-mQvSUJ/JjGBdvo+1LwC+GY2XmSYjK1nAaVw2emp/E61wEVYEyibRHCqm1I1vEKbXCpUKuW4G7u9ZCaZhJbLoNQ== + dependencies: + "@typescript-eslint/types" "5.29.0" + "@typescript-eslint/visitor-keys" "5.29.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + "@typescript-eslint/visitor-keys@3.10.1": version "3.10.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz#cd4274773e3eb63b2e870ac602274487ecd1e931" @@ -6700,6 +7524,14 @@ "@typescript-eslint/types" "4.29.3" eslint-visitor-keys "^2.0.0" +"@typescript-eslint/visitor-keys@5.29.0": + version "5.29.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.29.0.tgz#7a4749fa7ef5160c44a451bf060ac1dc6dfb77ee" + integrity sha512-Hpb/mCWsjILvikMQoZIE3voc9wtQcS0A9FUw3h8bhr9UxBdtI/tw1ZDZUOXHXLOVMedKCH5NxyzATwnU78bWCQ== + dependencies: + "@typescript-eslint/types" "5.29.0" + eslint-visitor-keys "^3.3.0" + "@uniswap/lib@^2.0.6": version "2.1.0" resolved "https://registry.yarnpkg.com/@uniswap/lib/-/lib-2.1.0.tgz#5d8e3061a9cc9cfd49cb8f90033910591dc24e20" @@ -6710,6 +7542,23 @@ resolved "https://registry.yarnpkg.com/@uniswap/v2-core/-/v2-core-1.0.1.tgz#af8f508bf183204779938969e2e54043e147d425" integrity sha512-MtybtkUPSyysqLY2U210NBDeCHX+ltHt3oADGdjqoThZaFRDKwM6k1Nb3F0A3hk5hwuQvytFWhrWHOEq6nVJ8Q== +"@vercel/nft@^0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@vercel/nft/-/nft-0.20.0.tgz#43b1027599f9041b27b9f6ed132f632c53bc7ea1" + integrity sha512-+lxsJP/sG4E8UkhfrJC6evkLLfUpZrjXxqEdunr3Q9kiECi8JYBGz6B5EpU1+MmeNnRoSphLcLh/1tI998ye4w== + dependencies: + "@mapbox/node-pre-gyp" "^1.0.5" + acorn "^8.6.0" + bindings "^1.4.0" + estree-walker "2.0.2" + glob "^7.1.3" + graceful-fs "^4.2.9" + micromatch "^4.0.2" + node-gyp-build "^4.2.2" + node-pre-gyp "^0.13.0" + resolve-from "^5.0.0" + rollup-pluginutils "^2.8.2" + "@visx/responsive@1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@visx/responsive/-/responsive-1.1.0.tgz#f3c993ede413c6a13ae7d122229f319c02037e86" @@ -7337,6 +8186,11 @@ acorn-walk@^8.0.0: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.1.1.tgz#3ddab7f84e4a7e2313f6c414c5b7dac85f4e3ebc" integrity sha512-FbJdceMlPHEAWJOILDk1fXD8lnTlEIWFkqtfk+MvmL5q/qlHfN7GEHcsFZWt/Tea9jRNPWUZG4G976nqAAmU9w== +acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + acorn@^5.5.3: version "5.7.4" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" @@ -7357,6 +8211,11 @@ acorn@^8.0.4, acorn@^8.2.4: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c" integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA== +acorn@^8.4.1, acorn@^8.6.0: + version "8.7.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" + integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== + address@1.1.2, address@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" @@ -7406,6 +8265,14 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" +aggregate-error@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-4.0.1.tgz#25091fe1573b9e0be892aeda15c7c66a545f758e" + integrity sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w== + dependencies: + clean-stack "^4.0.0" + indent-string "^5.0.0" + airbnb-js-shims@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/airbnb-js-shims/-/airbnb-js-shims-2.2.1.tgz#db481102d682b98ed1daa4c5baa697a05ce5c040" @@ -7449,6 +8316,16 @@ ajv@6.12.6, ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.12.3, ajv@ json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^8.0.0: + version "8.11.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" + integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + ajv@^8.0.1: version "8.6.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.2.tgz#2fb45e0e5fcbc0813326c1c3da535d1881bb0571" @@ -7459,6 +8336,20 @@ ajv@^8.0.1: require-from-string "^2.0.2" uri-js "^4.2.2" +all-node-versions@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/all-node-versions/-/all-node-versions-8.0.0.tgz#d3a4dcffe5c589775c7ddbd15b63dbcc71face14" + integrity sha512-cF8ibgj23U7ai4qjSFzpeccwDXUlPFMzKe0Z6qf6gChR+9S0JMyzYz6oYz4n0nHi/FLH9BJIefsONsMH/WDM2w== + dependencies: + fetch-node-website "^5.0.3" + filter-obj "^2.0.1" + get-stream "^5.1.0" + global-cache-dir "^2.0.0" + jest-validate "^25.3.0" + path-exists "^4.0.0" + semver "^7.3.2" + write-file-atomic "^3.0.3" + alphanum-sort@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" @@ -7493,7 +8384,7 @@ ansi-colors@^4.1.1: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== -ansi-escapes@^3.0.0: +ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== @@ -7505,11 +8396,23 @@ ansi-escapes@^4.2.1, ansi-escapes@^4.3.1: dependencies: type-fest "^0.21.3" +ansi-escapes@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-5.0.0.tgz#b6a0caf0eef0c41af190e9a749e0c00ec04bb2a6" + integrity sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA== + dependencies: + type-fest "^1.0.2" + ansi-html@0.0.7, ansi-html@^0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= +ansi-regex@^0.2.0, ansi-regex@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9" + integrity sha512-sGwIGMjhYdW26/IhwK2gkWWI8DRCVO6uj3hYgHT+zD+QL1pa37tM3ujhyfcJIYSbsxp7Gxhy7zrRW/1AHm4BmA== + ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -7535,6 +8438,16 @@ ansi-regex@^5.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de" + integrity sha512-f2PKUkN5QngiSemowa6Mrk9MPCdtFiOSmibjZ+j1qhLGHHYsqZwmBMRF3IRMVXo8sybDqx2fJl2d/8OphBoWkA== + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -7559,6 +8472,11 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== +ansi-styles@^6.0.0, ansi-styles@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.1.0.tgz#87313c102b8118abd57371afab34618bf7350ed3" + integrity sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ== + ansi-to-html@^0.6.11: version "0.6.15" resolved "https://registry.yarnpkg.com/ansi-to-html/-/ansi-to-html-0.6.15.tgz#ac6ad4798a00f6aa045535d7f6a9cb9294eebea7" @@ -7566,6 +8484,11 @@ ansi-to-html@^0.6.11: dependencies: entities "^2.0.0" +ansi2html@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/ansi2html/-/ansi2html-0.0.1.tgz#bb8800461b440af00b91bf3d7366a5e0b8473ba8" + integrity sha512-M5dw9xdPrRLkLnDjle8WkXCdzJtFAhoHPemopSt7CP9/a86pRhycK9gKHIBDxt2UW3E9pqvafOM6WgFSHyrffA== + any-observable@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" @@ -7602,23 +8525,72 @@ aproba@^1.0.3, aproba@^1.1.1: resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== +"aproba@^1.0.3 || ^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + arch@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== -are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== +archive-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/archive-type/-/archive-type-4.0.0.tgz#f92e72233056dfc6969472749c267bdb046b1d70" + integrity sha512-zV4Ky0v1F8dBrdYElwTvQhweQ0P7Kwc1aluqJsYtOBP01jXcWCyW2IEfI1YiqsG+Iy7ZR+o5LF1N+PGECBxHWA== dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -arg@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/arg/-/arg-2.0.0.tgz#c06e7ff69ab05b3a4a03ebe0407fac4cba657545" - integrity sha512-XxNTUzKnz1ctK3ZIcI2XUPlD96wbHP2nGqkPKpvk/HNRlPveYrXIVSTk9m3LcqOgDPg3B1nMvdV/K8wZd7PG4w== + file-type "^4.2.0" + +archiver-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2" + integrity sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw== + dependencies: + glob "^7.1.4" + graceful-fs "^4.2.0" + lazystream "^1.0.0" + lodash.defaults "^4.2.0" + lodash.difference "^4.5.0" + lodash.flatten "^4.4.0" + lodash.isplainobject "^4.0.6" + lodash.union "^4.6.0" + normalize-path "^3.0.0" + readable-stream "^2.0.0" + +archiver@^5.3.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.1.tgz#21e92811d6f09ecfce649fbefefe8c79e57cbbb6" + integrity sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w== + dependencies: + archiver-utils "^2.1.0" + async "^3.2.3" + buffer-crc32 "^0.2.1" + readable-stream "^3.6.0" + readdir-glob "^1.0.0" + tar-stream "^2.2.0" + zip-stream "^4.1.0" + +are-we-there-yet@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" + integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== + dependencies: + delegates "^1.0.0" + readable-stream "^3.6.0" + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +arg@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arg/-/arg-2.0.0.tgz#c06e7ff69ab05b3a4a03ebe0407fac4cba657545" + integrity sha512-XxNTUzKnz1ctK3ZIcI2XUPlD96wbHP2nGqkPKpvk/HNRlPveYrXIVSTk9m3LcqOgDPg3B1nMvdV/K8wZd7PG4w== arg@^4.1.0: version "4.1.3" @@ -7773,6 +8745,11 @@ asap@~2.0.3, asap@~2.0.6: resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= +ascii-table@0.0.9: + version "0.0.9" + resolved "https://registry.yarnpkg.com/ascii-table/-/ascii-table-0.0.9.tgz#06a6604d6a55d4bf41a9a47d9872d7a78da31e73" + integrity sha512-xpkr6sCDIYTPqzvjG8M3ncw1YOTaloWZOyrUmicoEifBEKzQzt+ooUpRpQ/AbOoJfO/p2ZKiyp79qHThzJDulQ== + asn1.js@^5.2.0: version "5.4.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" @@ -7815,6 +8792,11 @@ assign-symbols@^1.0.0: resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= +ast-module-types@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ast-module-types/-/ast-module-types-3.0.0.tgz#9a6d8a80f438b6b8fe4995699d700297f398bf81" + integrity sha512-CMxMCOCS+4D+DkOQfuZf+vLrSEmY/7xtORwdxs4wtcC1wVgvk2MqFFTwQCFhvWsI4KPU9lcWXPI8DgRiz+xetQ== + ast-types-flow@^0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" @@ -7871,7 +8853,7 @@ async@0.9.x: resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= -async@^1.4.2: +async@^1.4.2, async@~1.5: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= @@ -7888,6 +8870,11 @@ async@^3.1.0: resolved "https://registry.yarnpkg.com/async/-/async-3.2.2.tgz#2eb7671034bb2194d45d30e31e24ec7e7f9670cd" integrity sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g== +async@^3.2.3: + version "3.2.4" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -8457,6 +9444,11 @@ bech32@^2.0.0: resolved "https://registry.yarnpkg.com/bech32/-/bech32-2.0.0.tgz#078d3686535075c8c79709f054b1b226a133b355" integrity sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg== +before-after-hook@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" + integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== + better-opn@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/better-opn/-/better-opn-2.1.1.tgz#94a55b4695dc79288f31d7d0e5f658320759f7c6" @@ -8464,6 +9456,13 @@ better-opn@^2.1.1: dependencies: open "^7.0.3" +better-opn@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/better-opn/-/better-opn-3.0.2.tgz#f96f35deaaf8f34144a4102651babcf00d1d8817" + integrity sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ== + dependencies: + open "^8.0.4" + bfj@^7.0.2: version "7.0.2" resolved "https://registry.yarnpkg.com/bfj/-/bfj-7.0.2.tgz#1988ce76f3add9ac2913fd8ba47aad9e651bfbb2" @@ -8494,7 +9493,7 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -bindings@^1.2.1, bindings@^1.5.0: +bindings@^1.2.1, bindings@^1.4.0, bindings@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== @@ -8517,7 +9516,15 @@ bitcoin-address-validation@2.2.1: bech32 "^2.0.0" sha256-uint8array "^0.10.3" -bl@^4.1.0: +bl@^1.0.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7" + integrity sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww== + dependencies: + readable-stream "^2.3.5" + safe-buffer "^5.1.1" + +bl@^4.0.3, bl@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== @@ -8541,6 +9548,11 @@ bluebird@^3.3.5, bluebird@^3.5.0, bluebird@^3.5.5: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== +blueimp-md5@^2.10.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/blueimp-md5/-/blueimp-md5-2.19.0.tgz#b53feea5498dcb53dc6ec4b823adb84b729c4af0" + integrity sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w== + bn.js@4.11.6: version "4.11.6" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" @@ -8621,6 +9633,20 @@ boxen@^4.2.0: type-fest "^0.8.1" widest-line "^3.1.0" +boxen@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" + integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== + dependencies: + ansi-align "^3.0.0" + camelcase "^6.2.0" + chalk "^4.1.0" + cli-boxes "^2.2.1" + string-width "^4.2.2" + type-fest "^0.20.2" + widest-line "^3.1.0" + wrap-ansi "^7.0.0" + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -8629,6 +9655,13 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + braces@^2.3.1, braces@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" @@ -8876,6 +9909,11 @@ buffer-alloc@^1.2.0: buffer-alloc-unsafe "^1.1.0" buffer-fill "^1.0.0" +buffer-crc32@^0.2.1, buffer-crc32@^0.2.13, buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== + buffer-equal-constant-time@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" @@ -8938,6 +9976,11 @@ bufferutil@^4.0.1: dependencies: node-gyp-build "^4.2.0" +builtin-modules@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" + integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== + builtin-modules@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887" @@ -8948,6 +9991,18 @@ builtin-status-codes@^3.0.0: resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= +builtins@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" + integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== + dependencies: + semver "^7.0.0" + +byline@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1" + integrity sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q== + bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" @@ -8958,6 +10013,11 @@ bytes@3.1.0, bytes@^3.0.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + c8@^7.6.0: version "7.8.0" resolved "https://registry.yarnpkg.com/c8/-/c8-7.8.0.tgz#8fcfe848587d9d5796f22e9b0546a387a66d1b3b" @@ -9035,6 +10095,27 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" +cacheable-lookup@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz#87be64a18b925234875e10a9bb1ebca4adce6b38" + integrity sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg== + dependencies: + "@types/keyv" "^3.1.1" + keyv "^4.0.0" + +cacheable-request@^2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d" + integrity sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ== + dependencies: + clone-response "1.0.2" + get-stream "3.0.0" + http-cache-semantics "3.8.1" + keyv "3.0.0" + lowercase-keys "1.0.0" + normalize-url "2.0.1" + responselike "1.0.2" + cacheable-request@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" @@ -9048,11 +10129,29 @@ cacheable-request@^6.0.0: normalize-url "^4.1.0" responselike "^1.0.2" +cacheable-request@^7.0.1: + version "7.0.2" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" + integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^4.0.0" + lowercase-keys "^2.0.0" + normalize-url "^6.0.1" + responselike "^2.0.0" + cached-path-relative@^1.0.0, cached-path-relative@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.1.0.tgz#865576dfef39c0d6a7defde794d078f5308e3ef3" integrity sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA== +cachedir@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" + integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== + call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -9080,6 +10179,11 @@ caller-path@^2.0.0: dependencies: caller-callsite "^2.0.0" +callsite@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + integrity sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ== + callsites@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" @@ -9219,6 +10323,17 @@ chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174" + integrity sha512-bIKA54hP8iZhyDT81TOsJiQvR1gW+ZYSXFaZUAvoD4wCHdbHY2actmpTE4x344ZlFqHbvoxKOaESULTZN2gstg== + dependencies: + ansi-styles "^1.1.0" + escape-string-regexp "^1.0.0" + has-ansi "^0.1.0" + strip-ansi "^0.3.0" + supports-color "^0.2.0" + chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" @@ -9246,6 +10361,11 @@ chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.0.1.tgz#ca57d71e82bb534a296df63bbacc4a1c22b2a4b6" + integrity sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w== + change-case-all@1.0.14: version "1.0.14" resolved "https://registry.yarnpkg.com/change-case-all/-/change-case-all-1.0.14.tgz#bac04da08ad143278d0ac3dda7eccd39280bfba1" @@ -9365,10 +10485,10 @@ chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.4.1, chokidar@^3.4.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" - integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== +chokidar@^3.0.2, chokidar@^3.5.2: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: anymatch "~3.1.2" braces "~3.0.2" @@ -9380,10 +10500,10 @@ chokidar@^3.4.1, chokidar@^3.4.2: optionalDependencies: fsevents "~2.3.2" -chokidar@^3.5.2: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== +chokidar@^3.4.1, chokidar@^3.4.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" + integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== dependencies: anymatch "~3.1.2" braces "~3.0.2" @@ -9415,6 +10535,11 @@ ci-info@^2.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== +ci-info@^3.0.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.2.tgz#6d2967ffa407466481c6c90b6e16b3098f080128" + integrity sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg== + cids@^0.7.1: version "0.7.5" resolved "https://registry.yarnpkg.com/cids/-/cids-0.7.5.tgz#60a08138a99bfb69b6be4ceb63bfef7a396b28b2" @@ -9466,17 +10591,33 @@ clean-css@^4.2.3: dependencies: source-map "~0.6.0" +clean-deep@^3.0.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/clean-deep/-/clean-deep-3.4.0.tgz#c465c4de1003ae13a1a859e6c69366ab96069f75" + integrity sha512-Lo78NV5ItJL/jl+B5w0BycAisaieJGXK1qYi/9m4SjR8zbqmrUtO7Yhro40wEShGmmxs/aJLI/A+jNhdkXK8mw== + dependencies: + lodash.isempty "^4.4.0" + lodash.isplainobject "^4.0.6" + lodash.transform "^4.6.0" + clean-stack@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== +clean-stack@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-4.2.0.tgz#c464e4cde4ac789f4e0735c5d75beb49d7b30b31" + integrity sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg== + dependencies: + escape-string-regexp "5.0.0" + cli-boxes@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= -cli-boxes@^2.2.0: +cli-boxes@^2.2.0, cli-boxes@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== @@ -9495,6 +10636,20 @@ cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" +cli-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea" + integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== + dependencies: + restore-cursor "^4.0.0" + +cli-progress@^3.7.0: + version "3.11.1" + resolved "https://registry.yarnpkg.com/cli-progress/-/cli-progress-3.11.1.tgz#02afb11be9a123f2a302931beb087eafe3a0d971" + integrity sha512-TTMA2LHrYaZeNMcgZGO10oYqj9hvd03pltNtVbu4ddeyDTHlYV7gWxsFiuvaQlgwMBFCv1TukcjiODWFlb16tQ== + dependencies: + string-width "^4.2.3" + cli-spinners@^2.0.0: version "2.6.0" resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.0.tgz#36c7dc98fb6a9a76bd6238ec3f77e2425627e939" @@ -9523,6 +10678,11 @@ cli-truncate@^0.2.1: slice-ansi "0.0.4" string-width "^1.0.1" +cli-width@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" + integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== + cli-width@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" @@ -9600,7 +10760,7 @@ clone-regexp@^2.1.0: dependencies: is-regexp "^2.0.0" -clone-response@^1.0.2: +clone-response@1.0.2, clone-response@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= @@ -9678,7 +10838,7 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -color-name@^1.0.0, color-name@~1.1.4: +color-name@^1.0.0, color-name@^1.1.4, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== @@ -9691,6 +10851,11 @@ color-string@^1.6.0: color-name "^1.0.0" simple-swizzle "^0.2.2" +color-support@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + color@^3.0.0, color@^3.1.3: version "3.2.1" resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" @@ -9704,7 +10869,17 @@ colorette@^1.2.1, colorette@^1.2.2: resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.3.0.tgz#ff45d2f0edb244069d3b772adeb04fed38d0a0af" integrity sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w== -colors@^1.1.2, colors@^1.2.1: +colors-option@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/colors-option/-/colors-option-3.0.0.tgz#51f5d0d2b511a01859cdd70eaa9ed43ca4abf108" + integrity sha512-DP3FpjsiDDvnQC1OJBsdOJZPuy7r0o6sepY2T5M3L/d2nrE23O/ErFkEqyY3ngVL1ZhTj/H0pCMNObZGkEOaaQ== + dependencies: + chalk "^5.0.0" + filter-obj "^3.0.0" + is-plain-obj "^4.0.0" + jest-validate "^27.3.1" + +colors@1.4.0, colors@^1.1.2, colors@^1.2.1: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== @@ -9739,11 +10914,16 @@ comma-separated-tokens@^1.0.0: resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== -commander@^2.19.0, commander@^2.20.0: +commander@^2.19.0, commander@^2.20.0, commander@^2.3.0, commander@^2.8.1: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== +commander@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" + integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== + commander@^4.0.0, commander@^4.0.1, commander@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" @@ -9759,6 +10939,16 @@ commander@^6.0.0, commander@^6.2.0, commander@^6.2.1: resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== +commander@^9.0.0, commander@^9.1.0: + version "9.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.3.0.tgz#f619114a5a2d2054e0d9ff1b31d5ccf89255e26b" + integrity sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw== + +common-path-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" + integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== + common-tags@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" @@ -9796,6 +10986,24 @@ compose-function@3.0.3: dependencies: arity-n "^1.0.4" +compress-brotli@^1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/compress-brotli/-/compress-brotli-1.3.8.tgz#0c0a60c97a989145314ec381e84e26682e7b38db" + integrity sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ== + dependencies: + "@types/json-buffer" "~3.0.0" + json-buffer "~3.0.1" + +compress-commons@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.1.tgz#df2a09a7ed17447642bad10a85cc9a19e5c42a7d" + integrity sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ== + dependencies: + buffer-crc32 "^0.2.13" + crc32-stream "^4.0.2" + normalize-path "^3.0.0" + readable-stream "^3.6.0" + compressible@~2.0.14, compressible@~2.0.16: version "2.0.18" resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" @@ -9849,6 +11057,32 @@ concat-stream@^1.5.0, concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@ readable-stream "^2.2.2" typedarray "^0.0.6" +concordance@^5.0.0: + version "5.0.4" + resolved "https://registry.yarnpkg.com/concordance/-/concordance-5.0.4.tgz#9896073261adced72f88d60e4d56f8efc4bbbbd2" + integrity sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw== + dependencies: + date-time "^3.1.0" + esutils "^2.0.3" + fast-diff "^1.2.0" + js-string-escape "^1.0.1" + lodash "^4.17.15" + md5-hex "^3.0.1" + semver "^7.3.2" + well-known-symbols "^2.0.0" + +configstore@^5.0.0, configstore@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" + integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== + dependencies: + dot-prop "^5.2.0" + graceful-fs "^4.1.2" + make-dir "^3.0.0" + unique-string "^2.0.0" + write-file-atomic "^3.0.0" + xdg-basedir "^4.0.0" + confusing-browser-globals@^1.0.10: version "1.0.10" resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz#30d1e7f3d1b882b25ec4933d1d1adac353d20a59" @@ -9864,7 +11098,7 @@ console-browserify@^1.1.0: resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== -console-control-strings@^1.0.0, console-control-strings@~1.1.0: +console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= @@ -9908,6 +11142,13 @@ content-disposition@0.5.3: dependencies: safe-buffer "5.1.2" +content-disposition@^0.5.2: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + content-hash@^2.5.2: version "2.5.2" resolved "https://registry.yarnpkg.com/content-hash/-/content-hash-2.5.2.tgz#bbc2655e7c21f14fd3bfc7b7d4bfe6e454c9e211" @@ -9917,7 +11158,7 @@ content-hash@^2.5.2: multicodec "^0.5.5" multihashes "^0.4.15" -content-type@~1.0.4: +content-type@^1.0.4, content-type@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== @@ -9956,6 +11197,11 @@ cookie@0.4.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== +cookie@^0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== + cookiejar@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.2.tgz#dd8a235530752f988f9a0844f3fc589e3111125c" @@ -9978,6 +11224,21 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= +copy-template-dir@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/copy-template-dir/-/copy-template-dir-1.4.0.tgz#cb2bd62415abe963a53bb867bb24379df3998112" + integrity sha512-xkXSJhvKz4MfLbVkZ7GyCaFo4ciB3uKI/HHzkGwj1eyTH5+7RTFxW5CE0irWAZgV5oFcO9hd6+NVXAtY9hlo7Q== + dependencies: + end-of-stream "^1.1.0" + graceful-fs "^4.1.3" + maxstache "^1.0.0" + maxstache-stream "^1.0.0" + mkdirp "^0.5.1" + noop2 "^2.0.0" + pump "^1.0.0" + readdirp "^2.0.0" + run-parallel "^1.1.4" + copy-to-clipboard@^3, copy-to-clipboard@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz#115aa1a9998ffab6196f93076ad6da3b913662ae" @@ -10086,7 +11347,17 @@ cp-file@^7.0.0: nested-error-stacks "^2.0.0" p-event "^4.1.0" -cpy@^8.1.1: +cp-file@^9.0.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/cp-file/-/cp-file-9.1.0.tgz#e98e30db72d57d47b5b1d444deb70d05e5684921" + integrity sha512-3scnzFj/94eb7y4wyXRWwvzLFaQp87yyfTnChIjlfYrVqp5lVO3E2hIJMeQIltUT0K2ZAB3An1qXcBmwGyvuwA== + dependencies: + graceful-fs "^4.1.2" + make-dir "^3.0.0" + nested-error-stacks "^2.0.0" + p-event "^4.1.0" + +cpy@^8.1.0, cpy@^8.1.1: version "8.1.2" resolved "https://registry.yarnpkg.com/cpy/-/cpy-8.1.2.tgz#e339ea54797ad23f8e3919a5cffd37bfc3f25935" integrity sha512-dmC4mUesv0OYH2kNFEidtf/skUwv4zePmGeepjyyJ0qTo5+8KhA1o99oIAwVVLzQMAeDJml74d6wPPKb6EZUTg== @@ -10109,6 +11380,14 @@ crc-32@^1.2.0: exit-on-epipe "~1.0.1" printj "~1.1.0" +crc32-stream@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.2.tgz#c922ad22b38395abe9d3870f02fa8134ed709007" + integrity sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w== + dependencies: + crc-32 "^1.2.0" + readable-stream "^3.4.0" + create-ecdh@^4.0.0: version "4.0.4" resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" @@ -10158,6 +11437,13 @@ create-require@^1.1.0: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== +cron-parser@^4.1.0, cron-parser@^4.2.1: + version "4.4.0" + resolved "https://registry.yarnpkg.com/cron-parser/-/cron-parser-4.4.0.tgz#829d67f9e68eb52fa051e62de0418909f05db983" + integrity sha512-TrE5Un4rtJaKgmzPewh67yrER5uKM0qI9hGLDBfWb8GGRe9pn/SDkhVrdHa4z7h0SeyeNxnQnogws/H+AQANQA== + dependencies: + luxon "^1.28.0" + cross-env@7.0.2: version "7.0.2" resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.2.tgz#bd5ed31339a93a3418ac4f3ca9ca3403082ae5f9" @@ -10248,6 +11534,11 @@ crypto-random-string@^1.0.0: resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= +crypto-random-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== + css-blank-pseudo@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz#dfdefd3254bf8a82027993674ccf35483bfcb3c5" @@ -10590,6 +11881,11 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" +data-uri-to-buffer@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz#b5db46aea50f6176428ac05b73be39a57701a64b" + integrity sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA== + data-urls@^1.0.0, data-urls@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" @@ -10618,6 +11914,13 @@ date-fns@^1.27.2: resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== +date-time@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/date-time/-/date-time-3.1.0.tgz#0d1e934d170579f481ed8df1e2b8ff70ee845e1e" + integrity sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg== + dependencies: + time-zone "^1.0.0" + dayjs@1.10.6: version "1.10.6" resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.6.tgz#288b2aa82f2d8418a6c9d4df5898c0737ad02a63" @@ -10656,6 +11959,13 @@ debug@^3.0.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6, debug@^3.2.7: dependencies: ms "^2.1.1" +debug@^4.0.0, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + debug@^4.3.2: version "4.3.3" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" @@ -10663,6 +11973,13 @@ debug@^4.3.2: dependencies: ms "2.1.2" +decache@^4.6.0: + version "4.6.1" + resolved "https://registry.yarnpkg.com/decache/-/decache-4.6.1.tgz#5928bfab97a6fcf22a65047a3d07999af36efaf0" + integrity sha512-ohApBM8u9ygepJCjgBrEZSSxPjc0T/PJkD+uNyxXPkqudyUpdXpwJYp0VISm2WrPVzASU6DZyIi6BWdyw7uJ2Q== + dependencies: + callsite "^1.0.0" + decamelize-keys@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" @@ -10693,6 +12010,66 @@ decompress-response@^3.2.0, decompress-response@^3.3.0: dependencies: mimic-response "^1.0.0" +decompress-response@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-5.0.0.tgz#7849396e80e3d1eba8cb2f75ef4930f76461cb0f" + integrity sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw== + dependencies: + mimic-response "^2.0.0" + +decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1" + integrity sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ== + dependencies: + file-type "^5.2.0" + is-stream "^1.1.0" + tar-stream "^1.5.2" + +decompress-tarbz2@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz#3082a5b880ea4043816349f378b56c516be1a39b" + integrity sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A== + dependencies: + decompress-tar "^4.1.0" + file-type "^6.1.0" + is-stream "^1.1.0" + seek-bzip "^1.0.5" + unbzip2-stream "^1.0.9" + +decompress-targz@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-4.1.1.tgz#c09bc35c4d11f3de09f2d2da53e9de23e7ce1eee" + integrity sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w== + dependencies: + decompress-tar "^4.1.1" + file-type "^5.2.0" + is-stream "^1.1.0" + +decompress-unzip@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69" + integrity sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw== + dependencies: + file-type "^3.8.0" + get-stream "^2.2.0" + pify "^2.3.0" + yauzl "^2.4.2" + +decompress@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/decompress/-/decompress-4.2.1.tgz#007f55cc6a62c055afa37c07eb6a4ee1b773f118" + integrity sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ== + dependencies: + decompress-tar "^4.0.0" + decompress-tarbz2 "^4.0.0" + decompress-targz "^4.0.0" + decompress-unzip "^4.0.1" + graceful-fs "^4.1.10" + make-dir "^1.0.0" + pify "^2.3.0" + strip-dirs "^2.0.0" + dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" @@ -10770,6 +12147,11 @@ defer-to-connect@^1.0.1: resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== +defer-to-connect@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + deferred-leveldown@~1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz#3acd2e0b75d1669924bc0a4b642851131173e1eb" @@ -10777,6 +12159,11 @@ deferred-leveldown@~1.2.1: dependencies: abstract-leveldown "~2.6.0" +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -10838,6 +12225,20 @@ del@^5.1.0: rimraf "^3.0.0" slash "^3.0.0" +del@^6.0.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/del/-/del-6.1.1.tgz#3b70314f1ec0aa325c6b14eb36b95786671edb7a" + integrity sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg== + dependencies: + globby "^11.0.1" + graceful-fs "^4.2.4" + is-glob "^4.0.1" + is-path-cwd "^2.2.0" + is-path-inside "^3.0.2" + p-map "^4.0.0" + rimraf "^3.0.2" + slash "^3.0.0" + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -10848,6 +12249,11 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" @@ -10858,6 +12264,11 @@ dependency-graph@^0.11.0: resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.11.0.tgz#ac0ce7ed68a54da22165a85e97a01d53f5eb2e27" integrity sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg== +deprecation@^2.0.0, deprecation@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" + integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== + deps-sort@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.1.tgz#9dfdc876d2bcec3386b6829ac52162cda9fa208d" @@ -10903,6 +12314,16 @@ detect-indent@^6.0.0: resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== + +detect-libc@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" + integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== + detect-newline@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" @@ -10934,6 +12355,80 @@ detect-port@^1.3.0: address "^1.0.1" debug "^2.6.0" +detective-amd@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/detective-amd/-/detective-amd-4.0.1.tgz#1a827d9e4fa2f832506bd87aa392f124155bca3a" + integrity sha512-bDo22IYbJ8yzALB0Ow5CQLtyhU1BpDksLB9dsWHI9Eh0N3OQR6aQqhjPsNDd69ncYwRfL1sTo7OA9T3VRVSe2Q== + dependencies: + ast-module-types "^3.0.0" + escodegen "^2.0.0" + get-amd-module-type "^4.0.0" + node-source-walk "^5.0.0" + +detective-cjs@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detective-cjs/-/detective-cjs-4.0.0.tgz#316e2c7ae14276a5dcfe0c43dc05d8cf9a0e5cf9" + integrity sha512-VsD6Yo1+1xgxJWoeDRyut7eqZ8EWaJI70C5eanSAPcBHzenHZx0uhjxaaEfIm0cHII7dBiwU98Orh44bwXN2jg== + dependencies: + ast-module-types "^3.0.0" + node-source-walk "^5.0.0" + +detective-es6@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/detective-es6/-/detective-es6-3.0.0.tgz#78c9ef5492d5b59748b411aecaaf52b5ca0f0bc2" + integrity sha512-Uv2b5Uih7vorYlqGzCX+nTPUb4CMzUAn3VPHTV5p5lBkAN4cAApLGgUz4mZE2sXlBfv4/LMmeP7qzxHV/ZcfWA== + dependencies: + node-source-walk "^5.0.0" + +detective-less@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/detective-less/-/detective-less-1.0.2.tgz#a68af9ca5f69d74b7d0aa190218b211d83b4f7e3" + integrity sha512-Rps1xDkEEBSq3kLdsdnHZL1x2S4NGDcbrjmd4q+PykK5aJwDdP5MBgrJw1Xo+kyUHuv3JEzPqxr+Dj9ryeDRTA== + dependencies: + debug "^4.0.0" + gonzales-pe "^4.2.3" + node-source-walk "^4.0.0" + +detective-postcss@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/detective-postcss/-/detective-postcss-6.1.0.tgz#01ca6f83dbc3158540fb0e6a6c631f3998946e54" + integrity sha512-ZFZnEmUrL2XHAC0j/4D1fdwZbo/anAcK84soJh7qc7xfx2Kc8gFO5Bk5I9jU7NLC/OAF1Yho1GLxEDnmQnRH2A== + dependencies: + is-url "^1.2.4" + postcss "^8.4.12" + postcss-values-parser "^6.0.2" + +detective-sass@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/detective-sass/-/detective-sass-4.0.1.tgz#2a9e303a0bd472d00aaa79512334845e3acbaffc" + integrity sha512-80zfpxux1krOrkxCHbtwvIs2gNHUBScnSqlGl0FvUuHVz8HD6vD2ov66OroMctyvzhM67fxhuEeVjIk18s6yTQ== + dependencies: + gonzales-pe "^4.3.0" + node-source-walk "^5.0.0" + +detective-scss@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/detective-scss/-/detective-scss-3.0.0.tgz#c3c7bc4799f51515a4f0ed1e8ca491151364230f" + integrity sha512-37MB/mhJyS45ngqfzd6eTbuLMoDgdZnH03ZOMW2m9WqJ/Rlbuc8kZAr0Ypovaf1DJiTRzy5mmxzOTja85jbzlA== + dependencies: + gonzales-pe "^4.3.0" + node-source-walk "^5.0.0" + +detective-stylus@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/detective-stylus/-/detective-stylus-2.0.1.tgz#d528dfa7ef3c4eb2fbc9a7249d54906ec4e05d09" + integrity sha512-/Tvs1pWLg8eYwwV6kZQY5IslGaYqc/GACxjcaGudiNtN5nKCH6o2WnJK3j0gA3huCnoQcbv8X7oz/c1lnvE3zQ== + +detective-typescript@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/detective-typescript/-/detective-typescript-9.0.0.tgz#57d674cec49ec775460ab975b5bcbb5c2d32ff8e" + integrity sha512-lR78AugfUSBojwlSRZBeEqQ1l8LI7rbxOl1qTUnGLcjZQDjZmrZCb7R46rK8U8B5WzFvJrxa7fEBA8FoD/n5fA== + dependencies: + "@typescript-eslint/typescript-estree" "^5.13.0" + ast-module-types "^3.0.0" + node-source-walk "^5.0.0" + typescript "^4.5.5" + detective@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b" @@ -11176,6 +12671,20 @@ dot-prop@^5.2.0: dependencies: is-obj "^2.0.0" +dot-prop@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" + integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== + dependencies: + is-obj "^2.0.0" + +dot-prop@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-7.2.0.tgz#468172a3529779814d21a779c1ba2f6d76609809" + integrity sha512-Ol/IPXUARn9CSbkrdV4VJo7uCy1I3VuSiWCaFSg+8BdUOzF9n3jefIpcgAydvUZbTdEBZs2vEiTiS9m61ssiDA== + dependencies: + type-fest "^2.11.2" + dotenv-defaults@^1.0.2: version "1.1.1" resolved "https://registry.yarnpkg.com/dotenv-defaults/-/dotenv-defaults-1.1.1.tgz#032c024f4b5906d9990eb06d722dc74cc60ec1bd" @@ -11220,6 +12729,23 @@ dotenv@^8.0.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== +download@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/download/-/download-8.0.0.tgz#afc0b309730811731aae9f5371c9f46be73e51b1" + integrity sha512-ASRY5QhDk7FK+XrQtQyvhpDKanLluEEQtWl/J7Lxuf/b+i8RYh997QeXvL85xitrmRKVlx9c7eTrcRdq2GS4eA== + dependencies: + archive-type "^4.0.0" + content-disposition "^0.5.2" + decompress "^4.2.1" + ext-name "^5.0.0" + file-type "^11.1.0" + filenamify "^3.0.0" + get-stream "^4.1.0" + got "^8.3.1" + make-dir "^2.1.0" + p-event "^2.1.0" + pify "^4.0.1" + downshift@^6.0.15: version "6.1.7" resolved "https://registry.yarnpkg.com/downshift/-/downshift-6.1.7.tgz#fdb4c4e4f1d11587985cd76e21e8b4b3fa72e44c" @@ -11272,6 +12798,11 @@ duplexify@^3.4.2, duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -11339,6 +12870,11 @@ element-resize-detector@^1.2.2: dependencies: batch-processor "1.0.0" +elf-cam@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/elf-cam/-/elf-cam-0.1.1.tgz#46883b10835ed9e417860636a870d57490ce9eda" + integrity sha512-tKSFTWOp5OwJSp6MKyQDX7umYDkvUuI8rxHXw8BuUQ63d9Trj9xLeo6SHyoTGSoZNNZVitFa+RuHHXuoAzN3Rw== + elliptic@6.3.3: version "6.3.3" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.3.3.tgz#5482d9646d54bcb89fd7d994fc9e2e9568876e3f" @@ -11382,7 +12918,7 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -emoji-regex@^9.0.0: +emoji-regex@^9.0.0, emoji-regex@^9.2.2: version "9.2.2" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== @@ -11430,7 +12966,7 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= -end-of-stream@^1.0.0, end-of-stream@^1.1.0: +end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1, end-of-stream@^1.4.4: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== @@ -11508,6 +13044,16 @@ env-paths@^2.2.0: resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== +env-paths@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-3.0.0.tgz#2f1e89c2f6dbd3408e1b1711dd82d62e317f58da" + integrity sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A== + +envinfo@^7.3.1: + version "7.8.1" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" + integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== + errno@^0.1.3, errno@~0.1.1, errno@~0.1.7: version "0.1.8" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" @@ -11522,6 +13068,13 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" +error-stack-parser@^2.0.2, error-stack-parser@^2.0.3: + version "2.1.4" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz#229cb01cdbfa84440bfa91876285b94680188286" + integrity sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ== + dependencies: + stackframe "^1.3.4" + error-stack-parser@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.6.tgz#5a99a707bd7a4c58a797902d48d82803ede6aad8" @@ -11571,6 +13124,11 @@ es-get-iterator@^1.0.2, es-get-iterator@^1.1.0: is-string "^1.0.5" isarray "^2.0.5" +es-module-lexer@^0.10.0: + version "0.10.5" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.10.5.tgz#06f76d51fa53b1f78e3bd8bb36dd275eda2fdd53" + integrity sha512-+7IwY/kiGAacQfY+YBhKMvEmyAJnw5grTUgjG85Pe7vcUI/6b7pZjZG8nQ7+48YhzEAEqrEgD2dCz/JIK+AYvw== + es-to-primitive@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" @@ -11603,6 +13161,11 @@ es6-iterator@2.0.3, es6-iterator@~2.0.3: es5-ext "^0.10.35" es6-symbol "^3.1.1" +es6-promisify@^6.0.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-6.1.1.tgz#46837651b7b06bf6fff893d03f29393668d01621" + integrity sha512-HBL8I3mIki5C1Cc9QjKUenHtnG0A5/xA8Q/AllRcfiwl2CZFXGK7ddBiCoRwAix4i2KxcQfjtIVcrVbB3vbmwg== + es6-shim@^0.35.5: version "0.35.6" resolved "https://registry.yarnpkg.com/es6-shim/-/es6-shim-0.35.6.tgz#d10578301a83af2de58b9eadb7c2c9945f7388a0" @@ -11621,6 +13184,11 @@ escalade@^3.0.2, escalade@^3.1.1: resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== +escape-goat@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" + integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== + escape-html@^1.0.3, escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -11636,7 +13204,12 @@ escape-string-regexp@2.0.0, escape-string-regexp@^2.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: +escape-string-regexp@5.0.0, escape-string-regexp@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== + +escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= @@ -11884,6 +13457,11 @@ eslint-visitor-keys@^2.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== +eslint-visitor-keys@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" + integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== + eslint-webpack-plugin@2.5.4, eslint-webpack-plugin@^2.5.2: version "2.5.4" resolved "https://registry.yarnpkg.com/eslint-webpack-plugin/-/eslint-webpack-plugin-2.5.4.tgz#473b84932f1a8e2c2b8e66a402d0497bf440b986" @@ -12035,6 +13613,11 @@ estree-to-babel@^3.1.0: "@babel/types" "^7.2.0" c8 "^7.6.0" +estree-walker@2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + estree-walker@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" @@ -12045,12 +13628,12 @@ estree-walker@^1.0.1: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== -esutils@^2.0.2: +esutils@^2.0.2, esutils@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -etag@~1.8.1: +etag@^1.8.1, etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= @@ -12727,6 +14310,36 @@ execa@^4.0.0: signal-exit "^3.0.2" strip-final-newline "^2.0.0" +execa@^5.0.0, execa@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +execa@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-6.1.0.tgz#cea16dee211ff011246556388effa0818394fb20" + integrity sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.1" + human-signals "^3.0.1" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^3.0.7" + strip-final-newline "^3.0.0" + execall@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/execall/-/execall-2.0.0.tgz#16a06b5fe5099df7d00be5d9c06eecded1663b45" @@ -12788,6 +14401,13 @@ expect@^26.6.0, expect@^26.6.2: jest-message-util "^26.6.2" jest-regex-util "^26.0.0" +express-logging@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/express-logging/-/express-logging-1.1.1.tgz#62839618cbab5bb3610f1a1c1485352fe9d26c2a" + integrity sha512-1KboYwxxCG5kwkJHR5LjFDTD1Mgl8n4PIMcCuhhd/1OqaxlC68P3QKbvvAbZVUtVgtlxEdTgSUwf6yxwzRCuuA== + dependencies: + on-headers "^1.0.0" + express@^4.14.0, express@^4.17.1: version "4.17.1" resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" @@ -12824,6 +14444,21 @@ express@^4.14.0, express@^4.17.1: utils-merge "1.0.1" vary "~1.1.2" +ext-list@^2.0.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/ext-list/-/ext-list-2.2.2.tgz#0b98e64ed82f5acf0f2931babf69212ef52ddd37" + integrity sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA== + dependencies: + mime-db "^1.28.0" + +ext-name@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ext-name/-/ext-name-5.0.0.tgz#70781981d183ee15d13993c8822045c506c8f0a6" + integrity sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ== + dependencies: + ext-list "^2.0.0" + sort-keys-length "^1.0.0" + ext@^1.1.2: version "1.4.0" resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" @@ -12911,11 +14546,16 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-diff@^1.1.2: +fast-diff@^1.1.2, fast-diff@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== +fast-equals@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/fast-equals/-/fast-equals-3.0.3.tgz#8e6cb4e51ca1018d87dd41982ef92758b3e4197f" + integrity sha512-NCe8qxnZFARSHGztGMZOO/PC1qa5MIFB5Hp66WdzbCRAz8U8US3bx1UTgLS49efBQPcUtO9gf5oVEY8o7y/7Kg== + fast-glob@^2.2.6: version "2.2.7" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" @@ -12939,7 +14579,7 @@ fast-glob@^3.0.3, fast-glob@^3.1.1, fast-glob@^3.2.7: merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^3.2.9: +fast-glob@^3.2.11, fast-glob@^3.2.9: version "3.2.11" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== @@ -13035,11 +14675,38 @@ fbjs@^3.0.0: setimmediate "^1.0.5" ua-parser-js "^0.7.30" +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== + dependencies: + pend "~1.2.0" + fecha@^4.2.0: version "4.2.1" resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.1.tgz#0a83ad8f86ef62a091e22bb5a039cd03d23eecce" integrity sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q== +fetch-blob@^3.1.2, fetch-blob@^3.1.4: + version "3.1.5" + resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.1.5.tgz#0077bf5f3fcdbd9d75a0b5362f77dbb743489863" + integrity sha512-N64ZpKqoLejlrwkIAnb9iLSA3Vx/kjgzpcDhygcqJ2KKjky8nCgUQ+dzXtbrLaWZGZNmNfQTsiQ0weZ1svglHg== + dependencies: + node-domexception "^1.0.0" + web-streams-polyfill "^3.0.3" + +fetch-node-website@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/fetch-node-website/-/fetch-node-website-5.0.3.tgz#eaafe4beca7b34b80de6f703b76bcac06eb26ec9" + integrity sha512-O86T46FUWSOq4AWON39oaT8H90QFKAbmjfOVBhgaS87AFfeW00txz73KTv7QopPWtHBbGdI1S8cIT1VK1OQYLg== + dependencies: + chalk "^4.0.0" + cli-progress "^3.7.0" + figures "^3.2.0" + filter-obj "^2.0.1" + got "^10.7.0" + jest-validate "^25.3.0" + figgy-pudding@^3.5.1: version "3.5.2" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" @@ -13060,13 +14727,21 @@ figures@^2.0.0: dependencies: escape-string-regexp "^1.0.5" -figures@^3.0.0: +figures@^3.0.0, figures@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== dependencies: escape-string-regexp "^1.0.5" +figures@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/figures/-/figures-4.0.1.tgz#27b26609907bc888b3e3b0ef5403643f80aa2518" + integrity sha512-rElJwkA/xS04Vfg+CaZodpso7VqBknOYbzi6I76hI4X80RUjkSxO2oAyPmGbuXUppywjqndOrQDl817hDnI++w== + dependencies: + escape-string-regexp "^5.0.0" + is-unicode-supported "^1.2.0" + file-entry-cache@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" @@ -13105,6 +14780,11 @@ file-loader@^6.2.0: loader-utils "^2.0.0" schema-utils "^3.0.0" +file-size@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/file-size/-/file-size-0.0.5.tgz#057d43c3a3ed735da3f90d6052ab380f1e6d5e3b" + integrity sha512-ZW056dw8Ta1RWHVOQue3LMZe+mSOnHkcM7AN9is8JoHSIHRiLD5szwPAHM3fM7P5SGJ1bkAmCv3PvUTGoluDqA== + file-system-cache@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/file-system-cache/-/file-system-cache-1.0.5.tgz#84259b36a2bbb8d3d6eb1021d3132ffe64cfff4f" @@ -13114,6 +14794,31 @@ file-system-cache@^1.0.5: fs-extra "^0.30.0" ramda "^0.21.0" +file-type@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-11.1.0.tgz#93780f3fed98b599755d846b99a1617a2ad063b8" + integrity sha512-rM0UO7Qm9K7TWTtA6AShI/t7H5BPjDeGVDaNyg9BjHAj3PysKy7+8C8D137R88jnR3rFJZQB/tFgydl5sN5m7g== + +file-type@^3.8.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" + integrity sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA== + +file-type@^4.2.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-4.4.0.tgz#1b600e5fca1fbdc6e80c0a70c71c8dba5f7906c5" + integrity sha512-f2UbFQEk7LXgWpi5ntcO86OeA/cC80fuDDDaX/fZ2ZGel+AF7leRQqBBW1eJNiiQkrZlAoM6P+VYP5P6bOlDEQ== + +file-type@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6" + integrity sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ== + +file-type@^6.1.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919" + integrity sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg== + file-uri-to-path@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" @@ -13126,6 +14831,20 @@ filelist@^1.0.1: dependencies: minimatch "^3.0.4" +filename-reserved-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" + integrity sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ== + +filenamify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-3.0.0.tgz#9603eb688179f8c5d40d828626dcbb92c3a4672c" + integrity sha512-5EFZ//MsvJgXjBAFJ+Bh2YaCTRF/VP1YOmGrgt+KJ4SFRLjI87EIdwLLuT6wQX0I4F9W41xutobzczjsOKlI/g== + dependencies: + filename-reserved-regex "^2.0.0" + strip-outer "^1.0.0" + trim-repeated "^1.0.0" + filesize@6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/filesize/-/filesize-6.1.0.tgz#e81bdaa780e2451d714d71c0d7a4f3238d37ad00" @@ -13153,6 +14872,16 @@ filter-obj@^1.1.0: resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" integrity sha1-mzERErxsYSehbgFsbF1/GeCAXFs= +filter-obj@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-2.0.2.tgz#fff662368e505d69826abb113f0f6a98f56e9d5f" + integrity sha512-lO3ttPjHZRfjMcxWKb1j1eDhTFsu4meeR3lnMcnBFhk6RuLhvEiuALu2TlfL310ph4lCYYwgF/ElIjdP739tdg== + +filter-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-3.0.0.tgz#dba2f9e64e921758ed9a51028ca2ed02d4cccbcf" + integrity sha512-oQZM+QmVni8MsYzcq9lgTHD/qeLqaG8XaOPOW7dzuSafVxSUlH1+1ZDefj2OD9f2XsmG5lFl2Euc9NI4jgwFWg== + finalhandler@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" @@ -13219,6 +14948,14 @@ find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" +find-up@^6.0.0, find-up@^6.1.0, find-up@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" + integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== + dependencies: + locate-path "^7.1.0" + path-exists "^5.0.0" + find-versions@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.2.0.tgz#10297f98030a786829681690545ef659ed1d254e" @@ -13292,6 +15029,14 @@ flush-write-stream@^1.0.0: inherits "^2.0.3" readable-stream "^2.3.6" +flush-write-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-2.0.0.tgz#6f58e776154f5eefacff92a6e5a681c88ac50f7c" + integrity sha512-uXClqPxT4xW0lcdSBheb2ObVU+kuqUk3Jk64EwieirEXZx9XUrVwp/JuBfKAWaM4T5Td/VL7QLDWPXp/MvGm/g== + dependencies: + inherits "^2.0.3" + readable-stream "^3.1.1" + fmix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/fmix/-/fmix-0.1.0.tgz#c7bbf124dec42c9d191cfb947d0a9778dd986c0c" @@ -13304,6 +15049,13 @@ fn.name@1.x.x: resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== +folder-walker@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/folder-walker/-/folder-walker-3.2.0.tgz#98e00e59773f43416a6dcf0926d4c9436f65121d" + integrity sha512-VjAQdSLsl6AkpZNyrQJfO7BXLo4chnStqb055bumZMbRUPpVuPN3a4ktsnRCmrFZjtMlYLkyXiR5rAs4WOpC4Q== + dependencies: + from2 "^2.1.0" + follow-redirects@1.5.10: version "1.5.10" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" @@ -13447,6 +15199,13 @@ formdata-node@^4.3.1: node-domexception "1.0.0" web-streams-polyfill "4.0.0-beta.1" +formdata-polyfill@^4.0.10: + version "4.0.10" + resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" + integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== + dependencies: + fetch-blob "^3.1.2" + forwarded@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" @@ -13469,7 +15228,14 @@ fresh@0.5.2: resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= -from2@^2.1.0: +from2-array@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/from2-array/-/from2-array-0.0.4.tgz#eafc16b65f6e2719bcd57fdc1869005ac1332cd6" + integrity sha512-0G0cAp7sYLobH7ALsr835x98PU/YeVF7wlwxdWbCUaea7wsa7lJfKZUAo6p2YZGZ8F94luCuqHZS3JtFER6uPg== + dependencies: + from2 "^2.0.3" + +from2@^2.0.3, from2@^2.1.0, from2@^2.1.1: version "2.3.0" resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= @@ -13482,6 +15248,11 @@ from@~0: resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4= +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + fs-extra@^0.30.0: version "0.30.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" @@ -13616,6 +15387,26 @@ fuse.js@^3.6.1: resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-3.6.1.tgz#7de85fdd6e1b3377c23ce010892656385fd9b10c" integrity sha512-hT9yh/tiinkmirKrlv4KWOjztdoZo1mx9Qh4KvWqC7isoXwdUY3PNWUxceF4/qO9R6riA2C29jdTOeQOIROjgw== +fuzzy@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/fuzzy/-/fuzzy-0.1.3.tgz#4c76ec2ff0ac1a36a9dccf9a00df8623078d4ed8" + integrity sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w== + +gauge@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395" + integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.2" + console-control-strings "^1.0.0" + has-unicode "^2.0.1" + object-assign "^4.1.1" + signal-exit "^3.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.2" + gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" @@ -13642,6 +15433,14 @@ gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== +get-amd-module-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/get-amd-module-type/-/get-amd-module-type-4.0.0.tgz#3d4e5b44eec81f8337157d7c52c4fa9389aff78b" + integrity sha512-GbBawUCuA2tY8ztiMiVo3e3P95gc2TVrfYFfpUHdHQA8WyxMCckK29bQsVKhYX8SUf+w6JLhL2LG8tSC0ANt9Q== + dependencies: + ast-module-types "^3.0.0" + node-source-walk "^5.0.0" + get-assigned-identifiers@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1" @@ -13676,6 +15475,11 @@ get-package-type@^0.1.0: resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== +get-port@^5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" + integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== + get-stdin@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" @@ -13686,11 +15490,19 @@ get-stdin@^7.0.0: resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6" integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ== -get-stream@^3.0.0: +get-stream@3.0.0, get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= +get-stream@^2.2.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" + integrity sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA== + dependencies: + object-assign "^4.0.1" + pinkie-promise "^2.0.0" + get-stream@^4.0.0, get-stream@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" @@ -13705,6 +15517,11 @@ get-stream@^5.0.0, get-stream@^5.1.0: dependencies: pump "^3.0.0" +get-stream@^6.0.0, get-stream@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -13717,11 +15534,40 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" +gh-release-fetch@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/gh-release-fetch/-/gh-release-fetch-3.0.2.tgz#18119c47a4babb918b525cd1c0cb2de50fd96be2" + integrity sha512-xcX1uaOVDvsm+io4bvJfBFpQCLfoI3DsFay2GBMUtEnNInbNFFZqxTh7X0WIorCDtOmtos5atp2BGHAGEzmlAg== + dependencies: + "@types/download" "^8.0.0" + "@types/node-fetch" "^2.1.6" + "@types/semver" "^7.0.0" + download "^8.0.0" + node-fetch "^2.3.0" + semver "^7.0.0" + +git-clone@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/git-clone/-/git-clone-0.2.0.tgz#9dce00facbab227d2562150052cd4a3a7ec15c41" + integrity sha512-1UAkEPIFbyjHaddljUKvPhhLRnrKaImT71T7rdvSvWLXw95nLdhdi6Qmlx0KOWoV1qqvHGLq5lMLJEZM0JXk8A== + +git-repo-info@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/git-repo-info/-/git-repo-info-2.1.1.tgz#220ffed8cbae74ef8a80e3052f2ccb5179aed058" + integrity sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg== + git-revision-webpack-plugin@3.0.6: version "3.0.6" resolved "https://registry.yarnpkg.com/git-revision-webpack-plugin/-/git-revision-webpack-plugin-3.0.6.tgz#5dd6c6829fae05b405059dea6195b23875d69d4d" integrity sha512-vW/9dBahGbpKPcccy3xKkHgdWoH/cAPPc3lQw+3edl7b4j29JfNGVrja0a1d8ZoRe4nTN8GCPrF9aBErDnzx5Q== +gitconfiglocal@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-2.1.0.tgz#07c28685c55cc5338b27b5acbcfe34aeb92e43d1" + integrity sha512-qoerOEliJn3z+Zyn1HW2F6eoYJqKwS6MgC9cztTLUB/xLWX8gD/6T60pKn4+t/d6tP7JlybI7Z3z+I572CR/Vg== + dependencies: + ini "^1.3.2" + github-slugger@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.3.0.tgz#9bd0a95c5efdfc46005e82a906ef8e2a059124c9" @@ -13771,6 +15617,11 @@ glob-to-regexp@^0.3.0: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@~7.1.1: version "7.1.7" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" @@ -13795,6 +15646,32 @@ glob@^7.1.0: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e" + integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + +global-cache-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/global-cache-dir/-/global-cache-dir-2.0.0.tgz#6912dc449279d1505753c0e3d08ef63fb3e686a1" + integrity sha512-30pvU3e8muclEhc9tt+jRMaywOS3QfNdURflJ5Zv0bohjhcVQpBe5bwRHghGSJORLOKW81/n+3iJvHRHs+/S1Q== + dependencies: + cachedir "^2.3.0" + path-exists "^4.0.0" + +global-dirs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" + integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== + dependencies: + ini "2.0.0" + global-modules@2.0.0, global-modules@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" @@ -13908,7 +15785,7 @@ globby@^11.0.0, globby@^11.0.2, globby@^11.0.3: merge2 "^1.3.0" slash "^3.0.0" -globby@^11.0.4: +globby@^11.0.1, globby@^11.0.4, globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -13920,6 +15797,17 @@ globby@^11.0.4: merge2 "^1.4.1" slash "^3.0.0" +globby@^13.0.0: + version "13.1.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.2.tgz#29047105582427ab6eca4f905200667b056da515" + integrity sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ== + dependencies: + dir-glob "^3.0.1" + fast-glob "^3.2.11" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^4.0.0" + globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" @@ -13959,7 +15847,7 @@ globule@^1.0.0: lodash "~4.17.10" minimatch "~3.0.2" -gonzales-pe@^4.3.0: +gonzales-pe@^4.2.3, gonzales-pe@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.3.0.tgz#fe9dec5f3c557eead09ff868c65826be54d067b3" integrity sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ== @@ -13983,6 +15871,27 @@ got@9.6.0, got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" +got@^10.0.0, got@^10.7.0: + version "10.7.0" + resolved "https://registry.yarnpkg.com/got/-/got-10.7.0.tgz#62889dbcd6cca32cd6a154cc2d0c6895121d091f" + integrity sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg== + dependencies: + "@sindresorhus/is" "^2.0.0" + "@szmarczak/http-timer" "^4.0.0" + "@types/cacheable-request" "^6.0.1" + cacheable-lookup "^2.0.0" + cacheable-request "^7.0.1" + decompress-response "^5.0.0" + duplexer3 "^0.1.4" + get-stream "^5.0.0" + lowercase-keys "^2.0.0" + mimic-response "^2.1.0" + p-cancelable "^2.0.0" + p-event "^4.0.0" + responselike "^2.0.0" + to-readable-stream "^2.0.0" + type-fest "^0.10.0" + got@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" @@ -14003,6 +15912,34 @@ got@^7.1.0: url-parse-lax "^1.0.0" url-to-options "^1.0.1" +got@^8.3.1: + version "8.3.2" + resolved "https://registry.yarnpkg.com/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937" + integrity sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw== + dependencies: + "@sindresorhus/is" "^0.7.0" + cacheable-request "^2.1.1" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + into-stream "^3.1.0" + is-retry-allowed "^1.1.0" + isurl "^1.0.0-alpha5" + lowercase-keys "^1.0.0" + mimic-response "^1.0.0" + p-cancelable "^0.4.0" + p-timeout "^2.0.1" + pify "^3.0.0" + safe-buffer "^5.1.1" + timed-out "^4.0.1" + url-parse-lax "^3.0.0" + url-to-options "^1.0.1" + +graceful-fs@^4.1.10, graceful-fs@^4.1.3, graceful-fs@^4.2.9: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.3, graceful-fs@^4.2.4: version "4.2.8" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" @@ -14068,6 +16005,16 @@ graphql@15.8.0: resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.8.0.tgz#33410e96b012fa3bdb1091cc99a94769db212b38" integrity sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw== +graphql@16.0.0: + version "16.0.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.0.0.tgz#5724f2767aefa543418e83671372117c39408c8f" + integrity sha512-n9NxoRfwnpYBZB/WJ7L166gyrShuZ8qYgVaX8oxVyELcJfAwkvwPt6WlYIl90WRlzqDjaNWvLmNOSnKs5llZWQ== + +graphql@^16.1.0: + version "16.5.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.5.0.tgz#41b5c1182eaac7f3d47164fb247f61e4dfb69c85" + integrity sha512-qbHgh8Ix+j/qY+a/ZcJnFQ+j8ezakqPiHwPiZhV/3PgGlgf96QMBB5/f2rkiC9sgLoy/xvT6TSiaf2nTHJh5iA== + growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" @@ -14161,6 +16108,13 @@ harmony-reflect@^1.4.6: resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.2.tgz#31ecbd32e648a34d030d86adb67d4d47547fe710" integrity sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g== +has-ansi@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e" + integrity sha512-1YsTg1fk2/6JToQhtZkArMkurq8UoWU1Qe0aR3VUHjgij4nOylSWLWAtBXoZ4/dXOmugfLGm1c+QhuD0JyedFA== + dependencies: + ansi-regex "^0.2.0" + has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" @@ -14219,7 +16173,7 @@ has-tostringtag@^1.0.0: dependencies: has-symbols "^1.0.2" -has-unicode@^2.0.0: +has-unicode@^2.0.0, has-unicode@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= @@ -14255,6 +16209,11 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" +has-yarn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" + integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== + has@^1.0.0, has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -14262,6 +16221,13 @@ has@^1.0.0, has@^1.0.3: dependencies: function-bind "^1.1.1" +hasbin@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/hasbin/-/hasbin-1.2.3.tgz#78c5926893c80215c2b568ae1fd3fcab7a2696b0" + integrity sha512-CCd8e/w2w28G8DyZvKgiHnQJ/5XXDz6qiUHnthvtag/6T5acUeN5lqq+HMoBqcmgWueWDhiCplrw0Kb1zDACRg== + dependencies: + async "~1.5" + hash-base@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" @@ -14287,6 +16253,14 @@ hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: inherits "^2.0.3" minimalistic-assert "^1.0.1" +hasha@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.2.tgz#a48477989b3b327aea3c04f53096d816d97522a1" + integrity sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ== + dependencies: + is-stream "^2.0.0" + type-fest "^0.8.0" + hast-to-hyperscript@^9.0.0: version "9.0.1" resolved "https://registry.yarnpkg.com/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz#9b67fd188e4c81e8ad66f803855334173920218d" @@ -14602,6 +16576,11 @@ htmlparser2@^6.1.0: domutils "^2.5.2" entities "^2.0.0" +http-cache-semantics@3.8.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" + integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== + http-cache-semantics@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" @@ -14623,6 +16602,17 @@ http-errors@1.7.2: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + http-errors@~1.6.2: version "1.6.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" @@ -14644,6 +16634,17 @@ http-errors@~1.7.2: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" +http-errors@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" + integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.1" + http-https@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b" @@ -14682,7 +16683,18 @@ http-proxy-middleware@0.19.1: lodash "^4.17.11" micromatch "^3.1.10" -http-proxy@^1.17.0: +http-proxy-middleware@^2.0.0: + version "2.0.6" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f" + integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw== + dependencies: + "@types/http-proxy" "^1.17.8" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" + +http-proxy@^1.17.0, http-proxy@^1.18.0, http-proxy@^1.18.1: version "1.18.1" resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== @@ -14718,6 +16730,16 @@ human-signals@^1.1.1: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +human-signals@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" + integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== + husky@4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/husky/-/husky-4.2.3.tgz#3b18d2ee5febe99e27f2983500202daffbc3151e" @@ -14755,7 +16777,7 @@ i18next@^20.2.2: dependencies: "@babel/runtime" "^7.12.0" -iconv-lite@0.4.24, iconv-lite@^0.4.24: +iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -14800,6 +16822,13 @@ iferr@^0.1.5: resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= +ignore-walk@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.4.tgz#c9a09f69b7c7b479a5d74ac1a3c0d4236d2a6335" + integrity sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ== + dependencies: + minimatch "^3.0.4" + ignore@^4.0.3, ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" @@ -14870,6 +16899,11 @@ import-from@^2.1.0: dependencies: resolve-from "^3.0.0" +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + integrity sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A== + import-lazy@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" @@ -14911,6 +16945,11 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== +indent-string@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-5.0.0.tgz#4fd2980fccaf8622d14c64d694f4cf33c81951a5" + integrity sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg== + indexes-of@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" @@ -14944,7 +16983,12 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: +ini@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + +ini@^1.3.2, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== @@ -14961,6 +17005,36 @@ inline-style-parser@0.1.1: resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== +inquirer-autocomplete-prompt@^1.0.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/inquirer-autocomplete-prompt/-/inquirer-autocomplete-prompt-1.4.0.tgz#e767592f747e3d5bb6336fe71fb4094352e4c317" + integrity sha512-qHgHyJmbULt4hI+kCmwX92MnSxDs/Yhdt4wPA30qnoa01OF6uTXV8yvH4hKXgdaTNmkZ9D01MHjqKYEuJN+ONw== + dependencies: + ansi-escapes "^4.3.1" + chalk "^4.0.0" + figures "^3.2.0" + run-async "^2.4.0" + rxjs "^6.6.2" + +inquirer@^6.0.0, inquirer@^6.5.1: + version "6.5.2" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" + integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== + dependencies: + ansi-escapes "^3.2.0" + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^2.0.0" + lodash "^4.17.12" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.4.0" + string-width "^2.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + inquirer@^7.0.0: version "7.3.3" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" @@ -15043,6 +17117,14 @@ interpret@^2.2.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== +into-stream@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" + integrity sha512-TcdjPibTksa1NQximqep2r17ISRiNE9fwlfbg3F8ANdvP5/yrFTew86VcO//jk4QTaMlbjypPBq76HN2zaKfZQ== + dependencies: + from2 "^2.1.1" + p-is-promise "^1.1.0" + invariant@2, invariant@^2.2.2, invariant@^2.2.3, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" @@ -15177,6 +17259,13 @@ is-buffer@^2.0.0, is-buffer@^2.0.2: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== +is-builtin-module@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.1.0.tgz#6fdb24313b1c03b75f8b9711c0feb8c30b903b00" + integrity sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg== + dependencies: + builtin-modules "^3.0.0" + is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.3: version "1.2.4" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" @@ -15215,6 +17304,13 @@ is-core-module@^2.2.0, is-core-module@^2.4.0: dependencies: has "^1.0.3" +is-core-module@^2.5.0, is-core-module@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" + integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== + dependencies: + has "^1.0.3" + is-core-module@^2.8.1: version "2.8.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" @@ -15271,7 +17367,7 @@ is-directory@^0.3.1: resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= -is-docker@^2.0.0: +is-docker@^2.0.0, is-docker@^2.1.1: version "2.2.1" resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== @@ -15328,6 +17424,11 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +is-fullwidth-code-point@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" + integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== + is-function@^1.0.1, is-function@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" @@ -15345,7 +17446,7 @@ is-generator-function@^1.0.7: dependencies: has-tostringtag "^1.0.0" -is-glob@4.0.3: +is-glob@4.0.3, is-glob@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -15383,6 +17484,14 @@ is-hexadecimal@^1.0.0: resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== +is-installed-globally@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" + integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== + dependencies: + global-dirs "^3.0.0" + is-path-inside "^3.0.2" + is-interactive@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" @@ -15412,11 +17521,21 @@ is-module@^1.0.0: resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= +is-natural-number@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8" + integrity sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ== + is-negative-zero@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== +is-npm@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" + integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== + is-number-object@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" @@ -15477,7 +17596,7 @@ is-path-inside@^2.1.0: dependencies: path-is-inside "^1.0.2" -is-path-inside@^3.0.1: +is-path-inside@^3.0.1, is-path-inside@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== @@ -15487,11 +17606,21 @@ is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= -is-plain-obj@^2.0.0: +is-plain-obj@^2.0.0, is-plain-obj@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== +is-plain-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" + integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== + +is-plain-obj@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== + is-plain-object@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-3.0.1.tgz#662d92d24c0aa4302407b0d45d21f2251c85f85b" @@ -15504,6 +17633,11 @@ is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + is-potential-custom-element-name@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" @@ -15544,7 +17678,7 @@ is-resolvable@^1.0.0: resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== -is-retry-allowed@^1.0.0: +is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== @@ -15569,6 +17703,11 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + is-string@^1.0.5, is-string@^1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" @@ -15611,6 +17750,11 @@ is-unicode-supported@^0.1.0: resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== +is-unicode-supported@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-1.2.0.tgz#f4f54f34d8ebc84a46b93559a036763b6d3e1014" + integrity sha512-wH+U77omcRzevfIG8dDhTS0V9zZyweakfD01FULl97+0EHiJTTZtJqxPSkIIo/SDPv/i07k/C9jAPY+jwLLeUQ== + is-upper-case@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/is-upper-case/-/is-upper-case-1.1.2.tgz#8d0b1fa7e7933a1e58483600ec7d9661cbaf756f" @@ -15625,6 +17769,16 @@ is-upper-case@^2.0.2: dependencies: tslib "^2.0.3" +is-url-superb@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-url-superb/-/is-url-superb-4.0.0.tgz#b54d1d2499bb16792748ac967aa3ecb41a33a8c2" + integrity sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA== + +is-url@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" + integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== + is-weakmap@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" @@ -15667,6 +17821,11 @@ is-wsl@^2.1.1, is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" +is-yarn-global@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" + integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== + isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" @@ -15687,6 +17846,11 @@ isbinaryfile@^4.0.2: resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.8.tgz#5d34b94865bd4946633ecc78a026fc76c5b11fcf" integrity sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w== +iserror@0.0.2, iserror@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/iserror/-/iserror-0.0.2.tgz#bd53451fe2f668b9f2402c1966787aaa2c7c0bf5" + integrity sha512-oKGGrFVaWwETimP3SiWwjDeY27ovZoyZPHtxblC4hCq9fXxed/jasx+ATWFFjCVSRZng8VTMsN1nDnGo6zMBSw== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -16629,6 +18793,18 @@ jest-validate@^24.9.0: leven "^3.1.0" pretty-format "^24.9.0" +jest-validate@^25.3.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-25.5.0.tgz#fb4c93f332c2e4cf70151a628e58a35e459a413a" + integrity sha512-okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ== + dependencies: + "@jest/types" "^25.5.0" + camelcase "^5.3.1" + chalk "^3.0.0" + jest-get-type "^25.2.6" + leven "^3.1.0" + pretty-format "^25.5.0" + jest-validate@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" @@ -16641,6 +18817,18 @@ jest-validate@^26.6.2: leven "^3.1.0" pretty-format "^26.6.2" +jest-validate@^27.3.1, jest-validate@^27.4.2: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.5.1.tgz#9197d54dc0bdb52260b8db40b46ae668e04df067" + integrity sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ== + dependencies: + "@jest/types" "^27.5.1" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^27.5.1" + leven "^3.1.0" + pretty-format "^27.5.1" + jest-watch-typeahead@0.4.2: version "0.4.2" resolved "https://registry.yarnpkg.com/jest-watch-typeahead/-/jest-watch-typeahead-0.4.2.tgz#e5be959698a7fa2302229a5082c488c3c8780a4a" @@ -16889,6 +19077,11 @@ json-buffer@3.0.0: resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= +json-buffer@3.0.1, json-buffer@~3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -17063,6 +19256,11 @@ junk@^3.1.0: resolved "https://registry.yarnpkg.com/junk/-/junk-3.1.0.tgz#31499098d902b7e98c5d9b9c80f43457a88abfa1" integrity sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ== +junk@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/junk/-/junk-4.0.0.tgz#9b1104ddf5281cd24ffa3c8a7443d19ce192b37f" + integrity sha512-ojtSU++zLJ3jQG9bAYjg94w+/DOJtRyD7nPaerMFrBhmdVmiV5/exYH5t4uHga4G/95nT6hr1OJoKIFbYbrW5w== + jwa@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" @@ -17080,6 +19278,11 @@ jws@^3.2.2: jwa "^1.4.1" safe-buffer "^5.0.1" +jwt-decode@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-3.1.2.tgz#3fb319f3675a2df0c2895c8f5e9fa4b67b04ed59" + integrity sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A== + keccak@^1.0.2: version "1.4.0" resolved "https://registry.yarnpkg.com/keccak/-/keccak-1.4.0.tgz#572f8a6dbee8e7b3aa421550f9e6408ca2186f80" @@ -17098,6 +19301,20 @@ keccak@^3.0.0: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" +keep-func-props@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/keep-func-props/-/keep-func-props-4.0.1.tgz#3a9ab077a1bcc7f98771fd534940826d44cd5df1" + integrity sha512-87ftOIICfdww3SxR5P1veq3ThBNyRPG0JGL//oaR08v0k2yTicEIHd7s0GqSJfQvlb+ybC3GiDepOweo0LDhvw== + dependencies: + mimic-fn "^4.0.0" + +keyv@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" + integrity sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA== + dependencies: + json-buffer "3.0.0" + keyv@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" @@ -17105,6 +19322,14 @@ keyv@^3.0.0: dependencies: json-buffer "3.0.0" +keyv@^4.0.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.3.1.tgz#7970672f137d987945821b1a07b524ce5a4edd27" + integrity sha512-nwP7AQOxFzELXsNq3zCx/oh81zu4DHWwCE6W9RaeHb7OHO0JpmKS8n801ovVQC7PTsZDWtPA5j1QY+/WWtARYg== + dependencies: + compress-brotli "^1.3.8" + json-buffer "3.0.1" + keyvaluestorage-interface@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz#13ebdf71f5284ad54be94bd1ad9ed79adad515ff" @@ -17181,6 +19406,15 @@ labeled-stream-splicer@^2.0.0: inherits "^2.0.1" stream-splicer "^2.0.0" +lambda-local@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lambda-local/-/lambda-local-2.0.2.tgz#7bc13858bd790562cc452ea794225f98b3a1c018" + integrity sha512-sCE0U645QdmQOx5y028kZnmvbfho4NkdAjmJuA8KdwPQS8tz9sByz281WHyEAfcBfXci/9eQxNURuL996Q8ybw== + dependencies: + commander "^9.0.0" + dotenv "^16.0.0" + winston "^3.6.0" + language-subtag-registry@~0.3.2: version "0.3.21" resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a" @@ -17201,7 +19435,7 @@ last-call-webpack-plugin@^3.0.0: lodash "^4.17.5" webpack-sources "^1.1.0" -latest-version@5.1.0: +latest-version@5.1.0, latest-version@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== @@ -17229,6 +19463,13 @@ lazy-universal-dotenv@^3.0.1: dotenv "^8.0.0" dotenv-expand "^5.1.0" +lazystream@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638" + integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw== + dependencies: + readable-stream "^2.0.5" + lcid@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" @@ -17490,11 +19731,23 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" +locate-path@^7.0.0, locate-path@^7.1.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.1.1.tgz#8e1e5a75c7343770cef02ff93c4bf1f0aa666374" + integrity sha512-vJXaRMJgRVD3+cUZs3Mncj2mxpt5mP0EmNOsxRSZRMlbqjvxzDEOIUWXGmavo0ZC9+tNZCBLQ66reA11nbpHZg== + dependencies: + p-locate "^6.0.0" + lodash._reinterpolate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + lodash.clonedeep@4.5.0, lodash.clonedeep@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" @@ -17505,6 +19758,26 @@ lodash.debounce@4.0.8, lodash.debounce@^4.0.8: resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= +lodash.deburr@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/lodash.deburr/-/lodash.deburr-4.1.0.tgz#ddb1bbb3ef07458c0177ba07de14422cb033ff9b" + integrity sha512-m/M1U1f3ddMCs6Hq2tAsYThTBDaAKFDX3dwDo97GEYzamXi9SqUpjWi/Rrj/gf3X2n8ktwgZrlP1z6E3v/IExQ== + +lodash.defaults@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== + +lodash.difference@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" + integrity sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA== + +lodash.flatten@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g== + lodash.get@^4, lodash.get@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" @@ -17520,6 +19793,11 @@ lodash.isboolean@^3.0.3: resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY= +lodash.isempty@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e" + integrity sha512-oKMuF3xEeqDltrGMfDxAPGIVMSSRv8tbRSODbrs4KGsRRLEhrW8N8Rd4DRgB2+621hY8A8XwwrTVhXWpxFvMzg== + lodash.isinteger@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" @@ -17580,11 +19858,21 @@ lodash.templatesettings@^4.0.0: dependencies: lodash._reinterpolate "^3.0.0" +lodash.transform@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.transform/-/lodash.transform-4.6.0.tgz#12306422f63324aed8483d3f38332b5f670547a0" + integrity sha512-LO37ZnhmBVx0GvOU/caQuipEh4GN82TcWv3yHlebGDgOxbxiwwzW5Pcx2AcvpIv2WmvmSMoC492yQFNhy/l/UQ== + lodash.truncate@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= +lodash.union@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" + integrity sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw== + lodash.uniq@4.5.0, lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" @@ -17600,11 +19888,24 @@ lodash@4.17.15: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== -"lodash@>=3.5 <5", lodash@^4.0.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.5, lodash@^4.7.0, lodash@~4.17.0, lodash@~4.17.10: +"lodash@>=3.5 <5", lodash@^4.0.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.5, lodash@^4.7.0, lodash@~4.17.0, lodash@~4.17.10: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +log-process-errors@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/log-process-errors/-/log-process-errors-8.0.0.tgz#f88a9556e4914037ad97ceee24b148dc1b566dfd" + integrity sha512-+SNGqNC1gCMJfhwYzAHr/YgNT/ZJc+V2nCkvtPnjrENMeCe+B/jgShBW0lmWoh6uVV2edFAPc/IUOkDdsjTbTg== + dependencies: + colors-option "^3.0.0" + figures "^4.0.0" + filter-obj "^3.0.0" + jest-validate "^27.4.2" + map-obj "^5.0.0" + moize "^6.1.0" + semver "^7.3.5" + log-symbols@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" @@ -17643,6 +19944,17 @@ log-update@^2.3.0: cli-cursor "^2.0.0" wrap-ansi "^3.0.1" +log-update@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-5.0.1.tgz#9e928bf70cb183c1f0c9e91d9e6b7115d597ce09" + integrity sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw== + dependencies: + ansi-escapes "^5.0.0" + cli-cursor "^4.0.0" + slice-ansi "^5.0.0" + strip-ansi "^7.0.1" + wrap-ansi "^8.0.1" + logform@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/logform/-/logform-2.3.0.tgz#a3997a05985de2ebd325ae0d166dffc9c6fe6b57" @@ -17654,6 +19966,17 @@ logform@^2.2.0: safe-stable-stringify "^1.1.0" triple-beam "^1.3.0" +logform@^2.3.2, logform@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/logform/-/logform-2.4.0.tgz#131651715a17d50f09c2a2c1a524ff1a4164bcfe" + integrity sha512-CPSJw4ftjf517EhXZGGvTHHkYobo7ZCc0kvwUoOYcjfR2UVrI66RHj8MCrfAdEitdmFqbu2BYdYs8FHHZSb6iw== + dependencies: + "@colors/colors" "1.5.0" + fecha "^4.2.0" + ms "^2.1.1" + safe-stable-stringify "^2.3.1" + triple-beam "^1.3.0" + loglevel@^1.6.6, loglevel@^1.6.8: version "1.7.1" resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" @@ -17702,6 +20025,11 @@ lower-case@^2.0.2: dependencies: tslib "^2.0.3" +lowercase-keys@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" + integrity sha512-RPlX0+PHuvxVDZ7xX+EBVAp4RsVxP/TdDSN2mJYdiq1Lc4Hz7EUSjUI7RZrKKlmrIzVhf6Jo2stj7++gVarS0A== + lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" @@ -17747,11 +20075,21 @@ ltgt@~2.2.0: resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5" integrity sha1-81ypHEk/e3PaDgdJUwTxezH4fuU= +luxon@^1.28.0: + version "1.28.0" + resolved "https://registry.yarnpkg.com/luxon/-/luxon-1.28.0.tgz#e7f96daad3938c06a62de0fb027115d251251fbf" + integrity sha512-TfTiyvZhwBYM/7QdAVDh+7dBTBA29v4ik0Ce9zda3Mnf8on1S5KJI8P2jKFZ8+5C0jhmr0KwJEO/Wdpm0VeWJQ== + lz-string@^1.4.4: version "1.4.4" resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY= +macos-release@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-3.1.0.tgz#6165bb0736ae567ed6649e36ce6a24d87cbb7aca" + integrity sha512-/M/R0gCDgM+Cv1IuBG1XGdfTFnMEG6PZeT+KGWHO/OG+imqmaD9CH5vHBTycEM3+Kc4uG2Il+tFAuUWLqQOeUA== + magic-string@^0.25.0, magic-string@^0.25.7: version "0.25.7" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" @@ -17759,6 +20097,13 @@ magic-string@^0.25.0, magic-string@^0.25.7: dependencies: sourcemap-codec "^1.4.4" +make-dir@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== + dependencies: + pify "^3.0.0" + make-dir@^2.0.0, make-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" @@ -17820,6 +20165,11 @@ map-obj@^4.0.0: resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.2.1.tgz#e4ea399dbc979ae735c83c863dd31bdf364277b7" integrity sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ== +map-obj@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-5.0.1.tgz#7623fb9f565284860977a96f9295fa155d31644c" + integrity sha512-p3Qoax94q4c4Pb4etNi2lQSQGlqOA4PoD3ARovo7NllRoObZHwNEYd40fz4qgX1zTFK4geU/R1kbowl5hU5OVg== + map-or-similar@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/map-or-similar/-/map-or-similar-1.5.0.tgz#6de2653174adfb5d9edc33c69d3e92a1b76faf08" @@ -17895,10 +20245,32 @@ mathjs@^9.4.4: tiny-emitter "^2.1.0" typed-function "^2.0.0" -mathml-tag-names@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz#4ddadd67308e780cf16a47685878ee27b736a0a3" - integrity sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg== +mathml-tag-names@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz#4ddadd67308e780cf16a47685878ee27b736a0a3" + integrity sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg== + +maxstache-stream@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/maxstache-stream/-/maxstache-stream-1.0.4.tgz#9c7f5cab7e5fdd2d90da86143b4e9631ea328040" + integrity sha512-v8qlfPN0pSp7bdSoLo1NTjG43GXGqk5W2NWFnOCq2GlmFFqebGzPCjLKSbShuqIOVorOtZSAy7O/S1OCCRONUw== + dependencies: + maxstache "^1.0.0" + pump "^1.0.0" + split2 "^1.0.0" + through2 "^2.0.0" + +maxstache@^1.0.0: + version "1.0.7" + resolved "https://registry.yarnpkg.com/maxstache/-/maxstache-1.0.7.tgz#2231d5180ba783d5ecfc31c45fedac7ae4276984" + integrity sha512-53ZBxHrZM+W//5AcRVewiLpDunHnucfdzZUGz54Fnvo4tE+J3p8EL66kBrs2UhBXvYKTWckWYYWBqJqoTcenqg== + +md5-hex@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-3.0.1.tgz#be3741b510591434b2784d79e556eefc2c9a8e5c" + integrity sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw== + dependencies: + blueimp-md5 "^2.10.0" md5.js@^1.3.4: version "1.3.5" @@ -17997,6 +20369,11 @@ memfs@^3.1.2: dependencies: fs-monkey "1.0.3" +memoize-one@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-6.0.0.tgz#b2591b871ed82948aee4727dc6abceeeac8c1045" + integrity sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw== + memoizerific@^1.11.3: version "1.11.3" resolved "https://registry.yarnpkg.com/memoizerific/-/memoizerific-1.11.3.tgz#7c87a4646444c32d75438570905f2dbd1b1a805a" @@ -18069,6 +20446,13 @@ merge-descriptors@1.0.1: resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= +merge-options@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/merge-options/-/merge-options-3.0.4.tgz#84709c2aa2a4b24c1981f66c179fe5565cc6dbb7" + integrity sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ== + dependencies: + is-plain-obj "^2.1.0" + merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -18103,6 +20487,16 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= +micro-api-client@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/micro-api-client/-/micro-api-client-3.3.0.tgz#52dd567d322f10faffe63d19d4feeac4e4ffd215" + integrity sha512-y0y6CUB9RLVsy3kfgayU28746QrNMpSm9O/AYGNsBgOkJr/X/Jk0VLGoO8Ude7Bpa8adywzF+MzXNZRFRsNPhg== + +micro-memoize@^4.0.9: + version "4.0.10" + resolved "https://registry.yarnpkg.com/micro-memoize/-/micro-memoize-4.0.10.tgz#cedf7682df990cd2290700af4537afa6dba7d4e9" + integrity sha512-rk0OlvEQkShjbr2EvGn1+GdCsgLDgABQyM9ZV6VoHNU7hiNM+eSOkjGWhiNabU/XWiEalWbjNQrNO+zcqd+pEA== + microevent.ts@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0" @@ -18148,6 +20542,11 @@ mime-db@1.49.0, "mime-db@>= 1.43.0 < 2": resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed" integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA== +mime-db@^1.28.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + mime-db@~1.33.0: version "1.33.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" @@ -18167,7 +20566,7 @@ mime-types@^2.1.12, mime-types@^2.1.16, mime-types@^2.1.27, mime-types@~2.1.17, dependencies: mime-db "1.49.0" -mime@1.6.0: +mime@1.6.0, mime@^1.2.11: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== @@ -18187,11 +20586,21 @@ mimic-fn@^2.0.0, mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + mimic-response@^1.0.0, mimic-response@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== +mimic-response@^2.0.0, mimic-response@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" + integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== + min-document@^2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" @@ -18256,6 +20665,13 @@ minimatch@4.2.1, minimatch@^4.0.0: dependencies: brace-expansion "^1.1.7" +minimatch@^5.0.0, minimatch@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" + integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== + dependencies: + brace-expansion "^2.0.1" + minimist-options@4.1.0, minimist-options@^4.0.2: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -18387,6 +20803,14 @@ modern-normalize@^1.0.0: resolved "https://registry.yarnpkg.com/modern-normalize/-/modern-normalize-1.1.0.tgz#da8e80140d9221426bd4f725c6e11283d34f90b7" integrity sha512-2lMlY1Yc1+CUy0gw4H95uNN7vjbpoED7NNRSBHE25nWfLBdmMzFCsPshlzbxHz+gYMcBEUN8V4pU16prcdPSgA== +module-definition@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/module-definition/-/module-definition-4.0.0.tgz#5b39cca9be28c5b0fec768eb2d9fd8de08a2550b" + integrity sha512-wntiAHV4lDn24BQn2kX6LKq0y85phHLHiv3aOPDF+lIs06kVjEMTe/ZTdrbVLnQV5FQsjik21taknvMhKY1Cug== + dependencies: + ast-module-types "^3.0.0" + node-source-walk "^5.0.0" + module-deps@^6.2.3: version "6.2.3" resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.2.3.tgz#15490bc02af4b56cf62299c7c17cba32d71a96ee" @@ -18408,6 +20832,14 @@ module-deps@^6.2.3: through2 "^2.0.0" xtend "^4.0.0" +moize@^6.0.0, moize@^6.1.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/moize/-/moize-6.1.1.tgz#e75f18734fcb22aec30205681eb97cd7eb3ffa51" + integrity sha512-6bryLehIBVByDdAkXhoaPP1fknkoq1hNPmVCDYIb/w5zwfidT02zLSto1uGbmnv1GKu02ysgAEaJ5Ic7QQaGQA== + dependencies: + fast-equals "^3.0.1" + micro-memoize "^4.0.9" + move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" @@ -18420,6 +20852,13 @@ move-concurrently@^1.0.1: rimraf "^2.5.4" run-queue "^1.0.3" +move-file@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/move-file/-/move-file-3.0.0.tgz#b2da5d7b4627e61ff5408841e81312143fa58a64" + integrity sha512-v6u4XjX3MFW6Jo1V/YfbhC7eiGSgvYPJ/NM+aGtTtB9/Y6IYj7YViaHu6dkgDsZFB7MbnAoSI5+Z26XZXnP0vg== + dependencies: + path-exists "^5.0.0" + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -18493,6 +20932,15 @@ multihashes@^0.4.15, multihashes@~0.4.15: multibase "^0.7.0" varint "^5.0.0" +multiparty@^4.2.1: + version "4.2.3" + resolved "https://registry.yarnpkg.com/multiparty/-/multiparty-4.2.3.tgz#6b14981badb5ad3f0929622868751810368d4633" + integrity sha512-Ak6EUJZuhGS8hJ3c2fY6UW5MbkGUPMBEGd13djUzoY/BHqV/gTuFWtC6IuVA7A2+v3yjBS6c4or50xhzTQZImQ== + dependencies: + http-errors "~1.8.1" + safe-buffer "5.2.1" + uid-safe "2.1.5" + murmur-128@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/murmur-128/-/murmur-128-0.2.1.tgz#a9f6568781d2350ecb1bf80c14968cadbeaa4b4d" @@ -18502,6 +20950,11 @@ murmur-128@^0.2.1: fmix "^0.1.0" imul "^1.0.0" +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ== + mute-stream@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" @@ -18522,6 +20975,11 @@ nanoid@^3.1.22, nanoid@^3.1.23: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.2.0.tgz#62667522da6673971cca916a6d3eff3f415ff80c" integrity sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA== +nanoid@^3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" + integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== + nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -18551,6 +21009,15 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= +needle@^2.2.1: + version "2.9.1" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.9.1.tgz#22d1dffbe3490c2b83e301f7709b6736cd8f2684" + integrity sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + negotiator@0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" @@ -18566,6 +21033,170 @@ nested-error-stacks@^2.0.0, nested-error-stacks@^2.1.0: resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz#0fbdcf3e13fe4994781280524f8b96b0cdff9c61" integrity sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug== +netlify-cli@10.5.1: + version "10.5.1" + resolved "https://registry.yarnpkg.com/netlify-cli/-/netlify-cli-10.5.1.tgz#a882c295654cc11b31f160efd764512886665beb" + integrity sha512-4WCcWDPXt2BEWm0kxelUSZhjixAQj9QUff6GamgtLwb/JSoD5blvVYddhaZfPGGz/K0ddIpf1n6fNTJuQhADcg== + dependencies: + "@netlify/build" "^27.1.3" + "@netlify/config" "^18.0.1" + "@netlify/edge-bundler" "^1.2.0" + "@netlify/framework-info" "^9.0.2" + "@netlify/local-functions-proxy" "^1.1.1" + "@netlify/plugins-list" "^6.27.0" + "@netlify/zip-it-and-ship-it" "^5.10.1" + "@octokit/rest" "^18.0.0" + "@sindresorhus/slugify" "^1.1.0" + ansi-escapes "^5.0.0" + ansi-styles "^5.0.0" + ansi2html "^0.0.1" + ascii-table "0.0.9" + backoff "^2.5.0" + better-opn "^3.0.0" + boxen "^5.0.0" + chalk "^4.0.0" + chokidar "^3.0.2" + ci-info "^3.0.0" + clean-deep "^3.0.2" + commander "^9.0.0" + concordance "^5.0.0" + configstore "^5.0.0" + content-type "^1.0.4" + cookie "^0.4.0" + copy-template-dir "^1.4.0" + cron-parser "^4.2.1" + debug "^4.1.1" + decache "^4.6.0" + del "^6.0.0" + dot-prop "^6.0.0" + dotenv "^16.0.0" + env-paths "^2.2.0" + envinfo "^7.3.1" + etag "^1.8.1" + execa "^5.0.0" + express "^4.17.1" + express-logging "^1.1.1" + find-up "^5.0.0" + flush-write-stream "^2.0.0" + folder-walker "^3.2.0" + from2-array "^0.0.4" + fuzzy "^0.1.3" + get-port "^5.1.0" + gh-release-fetch "^3.0.0" + git-clone "^0.2.0" + git-repo-info "^2.1.0" + gitconfiglocal "^2.1.0" + graphql "^16.1.0" + hasbin "^1.2.3" + hasha "^5.2.2" + http-proxy "^1.18.0" + http-proxy-middleware "^2.0.0" + https-proxy-agent "^5.0.0" + inquirer "^6.5.1" + inquirer-autocomplete-prompt "^1.0.1" + is-docker "^2.0.0" + is-plain-obj "^3.0.0" + is-wsl "^2.2.0" + isexe "^2.0.0" + jsonwebtoken "^8.5.1" + jwt-decode "^3.0.0" + lambda-local "^2.0.1" + listr "^0.14.3" + locate-path "^6.0.0" + lodash "^4.17.20" + log-symbols "^4.0.0" + log-update "^5.0.0" + memoize-one "^6.0.0" + minimist "^1.2.5" + multiparty "^4.2.1" + netlify "^11.0.1" + netlify-headers-parser "^6.0.2" + netlify-onegraph-internal "0.0.50" + netlify-redirect-parser "^13.0.5" + netlify-redirector "^0.2.1" + node-fetch "^2.6.0" + node-version-alias "^1.0.1" + omit.js "^2.0.2" + ora "^5.0.0" + p-event "^4.2.0" + p-filter "^2.1.0" + p-map "^4.0.0" + p-wait-for "^3.0.0" + parallel-transform "^1.2.0" + parse-github-url "^1.0.2" + parse-gitignore "^1.0.1" + path-key "^3.1.1" + prettyjson "^1.2.1" + pump "^3.0.0" + raw-body "^2.4.1" + read-pkg-up "^7.0.1" + semver "^7.3.5" + source-map-support "^0.5.19" + static-server "^2.2.1" + string-similarity "^4.0.4" + strip-ansi-control-characters "^2.0.0" + tabtab "^3.0.2" + tempy "^1.0.0" + terminal-link "^2.1.1" + through2-filter "^3.0.0" + through2-map "^3.0.0" + to-readable-stream "^2.1.0" + toml "^3.0.0" + unixify "^1.0.0" + update-notifier "^5.0.0" + uuid "^8.0.0" + wait-port "^0.2.2" + winston "^3.2.1" + write-file-atomic "^4.0.0" + +netlify-headers-parser@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/netlify-headers-parser/-/netlify-headers-parser-6.0.2.tgz#720ca0b2e4ace3f28cb090b1dd11c4602010fee4" + integrity sha512-ahDNi7R+Io4iMylyFrOfRUcBUELrXCT0hNVdqPKTHhH917NHiDCH69f6IhhqbzSaZ2/zGFPBrxA3FzJ48yXs3Q== + dependencies: + escape-string-regexp "^5.0.0" + is-plain-obj "^4.0.0" + map-obj "^5.0.0" + path-exists "^5.0.0" + toml "^3.0.0" + +netlify-onegraph-internal@0.0.50: + version "0.0.50" + resolved "https://registry.yarnpkg.com/netlify-onegraph-internal/-/netlify-onegraph-internal-0.0.50.tgz#16b331e855f7d27aa698a355e034c3c568a7a95f" + integrity sha512-58nsdeGU1a2OTR6UIdk6vd1HhIN3oj4X7EBX02inNK8O3Cx0zcMt1qGvsX6wbBkFMt/n2M8bUpJSwc3dPk3Jrg== + dependencies: + graphql "16.0.0" + node-fetch "^2.6.0" + uuid "^8.3.2" + +netlify-redirect-parser@13.0.5, netlify-redirect-parser@^13.0.5: + version "13.0.5" + resolved "https://registry.yarnpkg.com/netlify-redirect-parser/-/netlify-redirect-parser-13.0.5.tgz#f627a303d58e2cafde2d82f7e8582f89e0ebedb2" + integrity sha512-Q5YEQu9YLItP38VzmzJRZ+dP4HTnK0i4Reczq+AC4UDGGEcf9JkyUC8f9YgCoamtMPjX3Qb+o+7lF1vYztH/UQ== + dependencies: + filter-obj "^3.0.0" + is-plain-obj "^4.0.0" + path-exists "^5.0.0" + toml "^3.0.0" + +netlify-redirector@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/netlify-redirector/-/netlify-redirector-0.2.1.tgz#efdb761ea2c52edb3ecb5f237db0e10861f2ff0e" + integrity sha512-17vDR9p1Loanp+vd57y+b6WlKb5X+qb0LZ44oTYsKJbdonz4Md+Ybv1lzH1w1aKm5YWWXHR8LMpWyY9bjlAJKw== + +netlify@^11.0.1: + version "11.0.2" + resolved "https://registry.yarnpkg.com/netlify/-/netlify-11.0.2.tgz#d65f6b67d60315c669c863e59b7f48bac597f6c5" + integrity sha512-dOgKAADwP0qQ9iHmbB4erimtpW0YczJtQLrnYGBTFElstG2Y9sj+ZRFlIUvJhVLOOdzFy4j+x9Zmn9dUoD1e0A== + dependencies: + "@netlify/open-api" "^2.10.0" + lodash.camelcase "^4.3.0" + micro-api-client "^3.3.0" + node-fetch "^3.0.0" + omit.js "^2.0.2" + p-wait-for "^4.0.0" + qs "^6.9.6" + newton-raphson-method@1.0.2, newton-raphson-method@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/newton-raphson-method/-/newton-raphson-method-1.0.2.tgz#0a95c6ad86edc696aca7e1787cd8da034a4262b0" @@ -18608,7 +21239,7 @@ node-dir@^0.1.10: dependencies: minimatch "^3.0.2" -node-domexception@1.0.0: +node-domexception@1.0.0, node-domexception@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== @@ -18620,13 +21251,22 @@ node-emoji@^1.8.1: dependencies: lodash "^4.17.21" -node-fetch@2.6.7, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.6, node-fetch@^2.6.7: +node-fetch@2.6.7, node-fetch@^2.3.0, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.6, node-fetch@^2.6.7: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== dependencies: whatwg-url "^5.0.0" +node-fetch@^3.0.0, node-fetch@^3.1.1: + version "3.2.6" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.2.6.tgz#6d4627181697a9d9674aae0d61548e0d629b31b9" + integrity sha512-LAy/HZnLADOVkVPubaxHDft29booGglPFDr2Hw0J1AercRh01UiVFm++KMDnJeH9sHgNB4hsXPii7Sgym/sTbw== + dependencies: + data-uri-to-buffer "^4.0.0" + fetch-blob "^3.1.4" + formdata-polyfill "^4.0.10" + node-forge@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" @@ -18637,6 +21277,11 @@ node-gyp-build@^4.2.0: resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.2.3.tgz#ce6277f853835f718829efb47db20f3e4d9c4739" integrity sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg== +node-gyp-build@^4.2.2: + version "4.4.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.4.0.tgz#42e99687ce87ddeaf3a10b99dc06abc11021f3f4" + integrity sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ== + node-gyp@^7.1.0: version "7.1.2" resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-7.1.2.tgz#21a810aebb187120251c3bcec979af1587b188ae" @@ -18734,6 +21379,22 @@ node-plop@0.25.0, node-plop@~0.25.0: mkdirp "^0.5.1" resolve "^1.12.0" +node-pre-gyp@^0.13.0: + version "0.13.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.13.0.tgz#df9ab7b68dd6498137717838e4f92a33fc9daa42" + integrity sha512-Md1D3xnEne8b/HGVQkZZwV27WUi1ZRuZBij24TNaZwUPU3ZAFtvT6xxJGaUVillfmMKnn5oD1HoGsp2Ftik7SQ== + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + node-releases@^1.1.61, node-releases@^1.1.73: version "1.1.74" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.74.tgz#e5866488080ebaa70a93b91144ccde06f3c3463e" @@ -18765,6 +21426,50 @@ node-sass@6.0.1: stdout-stream "^1.4.0" "true-case-path" "^1.0.2" +node-source-walk@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/node-source-walk/-/node-source-walk-4.3.0.tgz#8336b56cfed23ac5180fe98f1e3bb6b11fd5317c" + integrity sha512-8Q1hXew6ETzqKRAs3jjLioSxNfT1cx74ooiF8RlAONwVMcfq+UdzLC2eB5qcPldUxaE5w3ytLkrmV1TGddhZTA== + dependencies: + "@babel/parser" "^7.0.0" + +node-source-walk@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/node-source-walk/-/node-source-walk-5.0.0.tgz#7cf93a0d12408081531fc440a00d7019eb3d5665" + integrity sha512-58APXoMXpmmU+oVBJFajhTCoD8d/OGtngnVAWzIo2A8yn0IXwBzvIVIsTzoie/SrA37u+1hnpNz2HMWx/VIqlw== + dependencies: + "@babel/parser" "^7.0.0" + +node-stream-zip@^1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/node-stream-zip/-/node-stream-zip-1.15.0.tgz#158adb88ed8004c6c49a396b50a6a5de3bca33ea" + integrity sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw== + +node-version-alias@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/node-version-alias/-/node-version-alias-1.0.1.tgz#3c77bdb4ec8c2516644f03ec73847359f94273fd" + integrity sha512-E9EhoJkpIIZyYplB298W8ZfhcojQrnKnUPcaOgJqVqICUZwPZkuj10nTzEscwdziOOj545v4tGPvNBG3ieUbSw== + dependencies: + all-node-versions "^8.0.0" + filter-obj "^2.0.1" + jest-validate "^25.3.0" + normalize-node-version "^10.0.0" + path-exists "^4.0.0" + semver "^7.3.2" + +noop2@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/noop2/-/noop2-2.0.0.tgz#4b636015e9882b54783c02b412f699d8c5cd0a5b" + integrity sha512-2bu7Pfpf6uNqashWV8P7yYeutQ3XkLY9MBSYI5sOAFZxuWcW/uJfLbKj5m6SvMDT9U1Y0C+7UFG+7VSiIdXjtA== + +nopt@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" + integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== + dependencies: + abbrev "1" + osenv "^0.1.4" + nopt@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" @@ -18772,6 +21477,16 @@ nopt@^5.0.0: dependencies: abbrev "1" +normalize-node-version@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/normalize-node-version/-/normalize-node-version-10.0.0.tgz#5ec513f3eb292a8c2f0d35ba519f97f077cb80bc" + integrity sha512-/gVbS/qAnowVxr2fJy3F0MxmCvx8QdXJDl8XUE7HT3vsDeDjQfZkX9OiPahF+51Hgy93cKG1hP6uyBjQsMCvWQ== + dependencies: + all-node-versions "^8.0.0" + filter-obj "^2.0.1" + jest-validate "^25.3.0" + semver "^7.3.2" + normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -18792,6 +21507,16 @@ normalize-package-data@^3.0.0: semver "^7.3.4" validate-npm-package-license "^3.0.1" +normalize-package-data@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" + integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== + dependencies: + hosted-git-info "^4.0.1" + is-core-module "^2.5.0" + semver "^7.3.4" + validate-npm-package-license "^3.0.1" + normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" @@ -18824,6 +21549,15 @@ normalize-url@1.9.1: query-string "^4.1.0" sort-keys "^1.0.0" +normalize-url@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" + integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw== + dependencies: + prepend-http "^2.0.0" + query-string "^5.0.1" + sort-keys "^2.0.0" + normalize-url@^3.0.0: version "3.3.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" @@ -18834,11 +21568,37 @@ normalize-url@^4.1.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + normalize.css@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/normalize.css/-/normalize.css-8.0.1.tgz#9b98a208738b9cc2634caacbc42d131c97487bf3" integrity sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg== +npm-bundled@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" + integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== + dependencies: + npm-normalize-package-bin "^1.0.1" + +npm-normalize-package-bin@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" + integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== + +npm-packlist@^1.1.6: + version "1.4.8" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" + integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + npm-normalize-package-bin "^1.0.1" + npm-run-all@1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-1.4.0.tgz#a469bb9feabe5bf3aa9916833baf6776582e8948" @@ -18857,14 +21617,21 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -npm-run-path@^4.0.0: +npm-run-path@^4.0.0, npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: path-key "^3.0.0" -npmlog@^4.0.0, npmlog@^4.1.2: +npm-run-path@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" + integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== + dependencies: + path-key "^4.0.0" + +npmlog@^4.0.0, npmlog@^4.0.2, npmlog@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -18874,6 +21641,16 @@ npmlog@^4.0.0, npmlog@^4.1.2: gauge "~2.7.3" set-blocking "~2.0.0" +npmlog@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" + integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== + dependencies: + are-we-there-yet "^2.0.0" + console-control-strings "^1.1.0" + gauge "^3.0.0" + set-blocking "^2.0.0" + nth-check@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" @@ -19071,6 +21848,11 @@ obuf@^1.0.0, obuf@^1.1.2: resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== +omit.js@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/omit.js/-/omit.js-2.0.2.tgz#dd9b8436fab947a5f3ff214cb2538631e313ec2f" + integrity sha512-hJmu9D+bNB40YpL9jYebQl4lsTW6yEHRTroJzNLqQJYHm7c+NQnJGfZmIWh8S3q3KoaxV1aLhV6B3+0N0/kyJg== + on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" @@ -19078,7 +21860,7 @@ on-finished@~2.3.0: dependencies: ee-first "1.1.1" -on-headers@~1.0.1, on-headers@~1.0.2: +on-headers@^1.0.0, on-headers@~1.0.1, on-headers@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== @@ -19104,13 +21886,20 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" -onetime@^5.1.0: +onetime@^5.1.0, onetime@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + open@^7.0.2, open@^7.0.3, open@^7.1.0: version "7.4.2" resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" @@ -19119,6 +21908,15 @@ open@^7.0.2, open@^7.0.3, open@^7.1.0: is-docker "^2.0.0" is-wsl "^2.1.1" +open@^8.0.4: + version "8.4.0" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" + integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + opencollective-postinstall@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" @@ -19129,7 +21927,7 @@ opener@^1.5.2: resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== -opn@^5.5.0: +opn@^5.2.0, opn@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== @@ -19196,7 +21994,7 @@ ora@^3.4.0: strip-ansi "^5.2.0" wcwidth "^1.0.1" -ora@^5.4.1: +ora@^5.0.0, ora@^5.4.1: version "5.4.1" resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== @@ -19223,6 +22021,11 @@ os-browserify@^0.3.0, os-browserify@~0.3.0: resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ== + os-locale@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" @@ -19232,11 +22035,27 @@ os-locale@^3.0.0: lcid "^2.0.0" mem "^4.0.0" -os-tmpdir@~1.0.2: +os-name@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/os-name/-/os-name-5.0.1.tgz#acb4f996ec5bd86c41755fef9d6d31905c47172e" + integrity sha512-0EQpaHUHq7olp2/YFUr+0vZi9tMpDTblHGz+Ch5RntKxiRXOAY0JOz1UlxhSjMSksHvkm13eD6elJj3M8Ht/kw== + dependencies: + macos-release "^3.0.1" + windows-release "^5.0.1" + +os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + overlayscrollbars@^1.13.1: version "1.13.1" resolved "https://registry.yarnpkg.com/overlayscrollbars/-/overlayscrollbars-1.13.1.tgz#0b840a88737f43a946b9d87875a2f9e421d0338a" @@ -19261,11 +22080,21 @@ p-cancelable@^0.3.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" integrity sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw== +p-cancelable@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.4.1.tgz#35f363d67d52081c8d9585e37bcceb7e0bbcb2a0" + integrity sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ== + p-cancelable@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== +p-cancelable@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" + integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== + p-defer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" @@ -19283,13 +22112,34 @@ p-each-series@^2.1.0: resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== -p-event@^4.1.0: +p-event@^2.1.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/p-event/-/p-event-2.3.1.tgz#596279ef169ab2c3e0cae88c1cfbb08079993ef6" + integrity sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA== + dependencies: + p-timeout "^2.0.1" + +p-event@^4.0.0, p-event@^4.1.0, p-event@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/p-event/-/p-event-4.2.0.tgz#af4b049c8acd91ae81083ebd1e6f5cae2044c1b5" integrity sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ== dependencies: p-timeout "^3.1.0" +p-event@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/p-event/-/p-event-5.0.1.tgz#614624ec02ae7f4f13d09a721c90586184af5b0c" + integrity sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ== + dependencies: + p-timeout "^5.0.2" + +p-every@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-every/-/p-every-2.0.0.tgz#ad940b82b1bd1da01c307b11e1dd25fe7286181a" + integrity sha512-MCz9DqD5opPC48Zsd+BHm56O/HfhYIQQtupfDzhXoVgQdg/Ux4F8/JcdRuQ+arq7zD5fB6zP3axbH3d9Nr8dlw== + dependencies: + p-map "^2.0.0" + p-filter@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-filter/-/p-filter-2.1.0.tgz#1b1472562ae7a0f742f0f3d3d3718ea66ff9c09c" @@ -19297,6 +22147,13 @@ p-filter@^2.1.0: dependencies: p-map "^2.0.0" +p-filter@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-filter/-/p-filter-3.0.0.tgz#ce50e03b24b23930e11679ab8694bd09a2d7ed35" + integrity sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg== + dependencies: + p-map "^5.1.0" + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" @@ -19307,6 +22164,11 @@ p-finally@^2.0.0: resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== +p-is-promise@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" + integrity sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg== + p-is-promise@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" @@ -19333,6 +22195,13 @@ p-limit@^2.0.0, p-limit@^2.2.0: dependencies: p-try "^2.0.0" +p-limit@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" + integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== + dependencies: + yocto-queue "^1.0.0" + p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" @@ -19361,6 +22230,13 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" +p-locate@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" + integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== + dependencies: + p-limit "^4.0.0" + p-map@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" @@ -19380,11 +22256,23 @@ p-map@^4.0.0: dependencies: aggregate-error "^3.0.0" +p-map@^5.1.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-5.5.0.tgz#054ca8ca778dfa4cf3f8db6638ccb5b937266715" + integrity sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg== + dependencies: + aggregate-error "^4.0.0" + p-reduce@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo= +p-reduce@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-3.0.0.tgz#f11773794792974bd1f7a14c72934248abff4160" + integrity sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q== + p-retry@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" @@ -19399,13 +22287,25 @@ p-timeout@^1.1.1: dependencies: p-finally "^1.0.0" -p-timeout@^3.1.0: +p-timeout@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038" + integrity sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA== + dependencies: + p-finally "^1.0.0" + +p-timeout@^3.0.0, p-timeout@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== dependencies: p-finally "^1.0.0" +p-timeout@^5.0.0, p-timeout@^5.0.2: + version "5.1.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-5.1.0.tgz#b3c691cf4415138ce2d9cfe071dba11f0fee085b" + integrity sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew== + p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" @@ -19416,6 +22316,20 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +p-wait-for@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/p-wait-for/-/p-wait-for-3.2.0.tgz#640429bcabf3b0dd9f492c31539c5718cb6a3f1f" + integrity sha512-wpgERjNkLrBiFmkMEjuZJEWKKDrNfHCKA1OhyN1wg1FrLkULbviEy6py1AyJUgZ72YWFbZ38FIpnqvVqAlDUwA== + dependencies: + p-timeout "^3.0.0" + +p-wait-for@^4.0.0, p-wait-for@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-wait-for/-/p-wait-for-4.1.0.tgz#290f126f49bbd7c84e0cedccb342cd631aaa0f16" + integrity sha512-i8nE5q++9h8oaQHWltS1Tnnv4IoMDOlqN7C0KFG2OdbK0iFJIt6CROZ8wfBM+K4Pxqfnq4C4lkkpXqTEpB5DZw== + dependencies: + p-timeout "^5.0.0" + package-json@^6.3.0: version "6.5.0" resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" @@ -19431,7 +22345,7 @@ pako@~1.0.5: resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== -parallel-transform@^1.1.0: +parallel-transform@^1.1.0, parallel-transform@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== @@ -19518,6 +22432,11 @@ parse-github-url@^1.0.2: resolved "https://registry.yarnpkg.com/parse-github-url/-/parse-github-url-1.0.2.tgz#242d3b65cbcdda14bb50439e3242acf6971db395" integrity sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw== +parse-gitignore@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parse-gitignore/-/parse-gitignore-1.0.1.tgz#8b9dc57f17b810d495c5dfa62eb07caffe7758c7" + integrity sha512-UGyowyjtx26n65kdAMWhm6/3uy5uSrpcuH7tt+QEVudiBoVS+eqHxD5kbi9oWVRwj7sCzXqwuM+rUGw7earl6A== + parse-headers@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.4.tgz#9eaf2d02bed2d1eff494331ce3df36d7924760bf" @@ -19531,7 +22450,7 @@ parse-json@^4.0.0: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" -parse-json@^5.0.0: +parse-json@^5.0.0, parse-json@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== @@ -19541,6 +22460,11 @@ parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" +parse-ms@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-2.1.0.tgz#348565a753d4391fa524029956b172cb7753097d" + integrity sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA== + parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" @@ -19637,6 +22561,11 @@ path-exists@^4.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== +path-exists@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" + integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== + path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -19652,11 +22581,16 @@ path-key@^2.0.0, path-key@^2.0.1: resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= -path-key@^3.0.0, path-key@^3.1.0: +path-key@^3.0.0, path-key@^3.1.0, path-key@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + path-parse@^1.0.6, path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" @@ -19708,6 +22642,11 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +path-type@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-5.0.0.tgz#14b01ed7aea7ddf9c7c3f46181d4d04f9c785bb8" + integrity sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg== + pause-stream@0.0.11: version "0.0.11" resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" @@ -19726,6 +22665,11 @@ pbkdf2@^3.0.17, pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== + penpal@3.0.7: version "3.0.7" resolved "https://registry.yarnpkg.com/penpal/-/penpal-3.0.7.tgz#d252711ed93b30f1d867eb82342785b3a95f5f75" @@ -19813,6 +22757,13 @@ pkg-dir@^5.0.0: dependencies: find-up "^5.0.0" +pkg-dir@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-6.0.1.tgz#8ec964cecaef98a2bdb9c164733f90a5bcd2352d" + integrity sha512-C9R+PTCKGA32HG0n5I4JMYkdLL58ZpayVuncQHQrGeKa8o26A4o2x0u6BKekHG+Au0jv5ZW7Xfq1Cj6lm9Ag4w== + dependencies: + find-up "^6.1.0" + pkg-up@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" @@ -20695,6 +23646,15 @@ postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: indexes-of "^1.0.1" uniq "^1.0.1" +postcss-values-parser@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-6.0.2.tgz#636edc5b86c953896f1bb0d7a7a6615df00fb76f" + integrity sha512-YLJpK0N1brcNJrs9WatuJFtHaV9q5aAOj+S4DI5S7jgHlRfm0PIbDCAFRYMQD5SHq7Fy6xsDhyutgS0QOAs0qw== + dependencies: + color-name "^1.1.4" + is-url-superb "^4.0.0" + quote-unquote "^1.0.0" + postcss@7.0.21: version "7.0.21" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.21.tgz#06bb07824c19c2021c5d056d5b10c35b989f7e17" @@ -20740,11 +23700,38 @@ postcss@^8.1.0, postcss@^8.1.6, postcss@^8.2.1: nanoid "^3.1.23" source-map-js "^0.6.2" +postcss@^8.4.12: + version "8.4.14" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" + integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + preact@10.4.1: version "10.4.1" resolved "https://registry.yarnpkg.com/preact/-/preact-10.4.1.tgz#9b3ba020547673a231c6cf16f0fbaef0e8863431" integrity sha512-WKrRpCSwL2t3tpOOGhf2WfTpcmbpxaWtDbdJdKdjd0aEiTkvOmS4NBkG6kzlaAHI9AkQ3iVqbFWM3Ei7mZ4o1Q== +precinct@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/precinct/-/precinct-9.0.1.tgz#64e7ea0de4bea1b73572e50531dfe297c7b8a7c7" + integrity sha512-hVNS6JvfvlZ64B3ezKeGAcVhIuOvuAiSVzagHX/+KjVPkYWoCNkfyMgCl1bjDtAFQSlzi95NcS9ykUWrl1L1vA== + dependencies: + commander "^9.1.0" + detective-amd "^4.0.1" + detective-cjs "^4.0.0" + detective-es6 "^3.0.0" + detective-less "^1.0.2" + detective-postcss "^6.0.1" + detective-sass "^4.0.1" + detective-scss "^3.0.0" + detective-stylus "^2.0.0" + detective-typescript "^9.0.0" + module-definition "^4.0.0" + node-source-walk "^5.0.0" + precond@0.2: version "0.2.3" resolved "https://registry.yarnpkg.com/precond/-/precond-0.2.3.tgz#aa9591bcaa24923f1e0f4849d240f47efc1075ac" @@ -20854,6 +23841,21 @@ pretty-hrtime@^1.0.3: resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= +pretty-ms@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-7.0.1.tgz#7d903eaab281f7d8e03c66f867e239dc32fb73e8" + integrity sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q== + dependencies: + parse-ms "^2.1.0" + +prettyjson@^1.2.1: + version "1.2.5" + resolved "https://registry.yarnpkg.com/prettyjson/-/prettyjson-1.2.5.tgz#ef3cfffcc70505c032abc59785884b4027031835" + integrity sha512-rksPWtoZb2ZpT5OVgtmy0KHVM+Dca3iVwWY9ifwhcexfjebtgjg3wmrUt9PvJ59XIYBcknQeYHD8IAnVlh9lAw== + dependencies: + colors "1.4.0" + minimist "^1.2.0" + printj@~1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222" @@ -20986,6 +23988,11 @@ prr@~1.0.1: resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= +ps-list@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/ps-list/-/ps-list-8.1.0.tgz#aded36339500cd929f1425ece9bf58ac6d3a213e" + integrity sha512-NoGBqJe7Ou3kfQxEvDzDyKGAyEgwIuD3YrfXinjcCmBRv0hTld0Xb71hrXvtsNPj7HSFATfemvzB8PPJtq6Yag== + ps-tree@^1.0.1: version "1.2.0" resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.2.0.tgz#5e7425b89508736cdd4f2224d028f7bb3f722ebd" @@ -21015,6 +24022,14 @@ public-encrypt@^4.0.0: randombytes "^2.0.1" safe-buffer "^5.1.2" +pump@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954" + integrity sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + pump@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" @@ -21060,6 +24075,13 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +pupa@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" + integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== + dependencies: + escape-goat "^2.0.0" + purgecss@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/purgecss/-/purgecss-3.1.3.tgz#26987ec09d12eeadc318e22f6e5a9eb0be094f41" @@ -21130,6 +24152,13 @@ qs@^6.9.4: dependencies: side-channel "^1.0.4" +qs@^6.9.6: + version "6.10.5" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.5.tgz#974715920a80ff6a262264acd2c7e6c2a53282b4" + integrity sha512-O5RlPh0VFtR78y79rgcgKK4wbAI0C5zGVLztOIdpWX6ep368q5Hv6XRxDvXuZ9q3C6v+e3n8UfZZJw7IIG27eQ== + dependencies: + side-channel "^1.0.4" + qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" @@ -21201,6 +24230,11 @@ quick-lru@^4.0.1: resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== +quote-unquote@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/quote-unquote/-/quote-unquote-1.0.0.tgz#67a9a77148effeaf81a4d428404a710baaac8a0b" + integrity sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg== + raf@3.4.1, raf@^3.4.1: version "3.4.1" resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" @@ -21213,6 +24247,11 @@ ramda@^0.21.0: resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.21.0.tgz#a001abedb3ff61077d4ff1d577d44de77e8d0a35" integrity sha1-oAGr7bP/YQd9T/HVd9RN536NCjU= +random-bytes@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b" + integrity sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ== + randombytes@2.1.0, randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.0.6, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -21253,6 +24292,16 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" +raw-body@^2.4.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + raw-loader@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.2.tgz#1aac6b7d1ad1501e66efdac1522c73e59a584eb6" @@ -21261,7 +24310,7 @@ raw-loader@^4.0.2: loader-utils "^2.0.0" schema-utils "^3.0.0" -rc@^1.0.1, rc@^1.1.6, rc@^1.2.8: +rc@^1.0.1, rc@^1.1.6, rc@^1.2.7, rc@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -21766,6 +24815,14 @@ read-only-stream@^2.0.0: dependencies: readable-stream "^2.0.2" +read-package-json-fast@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz#323ca529630da82cb34b36cc0b996693c98c2b83" + integrity sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ== + dependencies: + json-parse-even-better-errors "^2.3.0" + npm-normalize-package-bin "^1.0.1" + read-pkg-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" @@ -21791,6 +24848,15 @@ read-pkg-up@^7.0.1: read-pkg "^5.2.0" type-fest "^0.8.1" +read-pkg-up@^9.0.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-9.1.0.tgz#38ca48e0bc6c6b260464b14aad9bcd4e5b1fbdc3" + integrity sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg== + dependencies: + find-up "^6.3.0" + read-pkg "^7.1.0" + type-fest "^2.5.0" + read-pkg@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" @@ -21810,7 +24876,17 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@^2.3.7, readable-stream@~2.3.6: +read-pkg@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-7.1.0.tgz#438b4caed1ad656ba359b3e00fd094f3c427a43e" + integrity sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg== + dependencies: + "@types/normalize-package-data" "^2.4.1" + normalize-package-data "^3.0.2" + parse-json "^5.2.0" + type-fest "^2.0.0" + +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@^2.3.7, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -21852,7 +24928,14 @@ readable-stream@~1.0.15: isarray "0.0.1" string_decoder "~0.10.x" -readdirp@^2.2.1: +readdir-glob@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.1.tgz#f0e10bb7bf7bfa7e0add8baffdc54c3f7dbee6c4" + integrity sha512-91/k1EzZwDx6HbERR+zucygRFfiPl2zkIYZtv3Jjr6Mn7SkKcVct8aVO+sSRiGMc6fLf72du3d92/uY63YPdEA== + dependencies: + minimatch "^3.0.4" + +readdirp@^2.0.0, readdirp@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== @@ -21861,7 +24944,7 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" -readdirp@~3.6.0: +readdirp@^3.4.0, readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== @@ -22324,6 +25407,11 @@ require-main-filename@^2.0.0: resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== +require-package-name@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/require-package-name/-/require-package-name-2.0.1.tgz#c11e97276b65b8e2923f75dabf5fb2ef0c3841b9" + integrity sha512-uuoJ1hU/k6M0779t3VMVIYpb2VMJk05cehCaABFhXaibcbvfgR8wKiozLjVFSzJPmQMRqIcO0HMyTFqfV09V6Q== + requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" @@ -22455,6 +25543,15 @@ resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14. is-core-module "^2.2.0" path-parse "^1.0.6" +resolve@^2.0.0-next.1: + version "2.0.0-next.4" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" + integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + resolve@^2.0.0-next.3: version "2.0.0-next.3" resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46" @@ -22463,13 +25560,20 @@ resolve@^2.0.0-next.3: is-core-module "^2.2.0" path-parse "^1.0.6" -responselike@^1.0.2: +responselike@1.0.2, responselike@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= dependencies: lowercase-keys "^1.0.0" +responselike@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" + integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== + dependencies: + lowercase-keys "^2.0.0" + restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -22486,6 +25590,14 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" +restore-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9" + integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" @@ -22514,6 +25626,11 @@ rework@1.0.1: convert-source-map "^0.3.3" css "^2.0.0" +rfdc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" + integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== + rgb-regex@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" @@ -22531,7 +25648,7 @@ rimraf@2.6.3, rimraf@~2.6.2: dependencies: glob "^7.1.3" -rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.3: +rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -22607,12 +25724,12 @@ rsvp@^4.8.4: resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== -run-async@^2.4.0: +run-async@^2.2.0, run-async@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== -run-parallel@^1.1.9: +run-parallel@^1.1.4, run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== @@ -22636,7 +25753,7 @@ rustbn.js@~0.2.0: resolved "https://registry.yarnpkg.com/rustbn.js/-/rustbn.js-0.2.0.tgz#8082cb886e707155fd1cb6f23bd591ab8d55d0ca" integrity sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA== -rxjs@6, rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.6.0: +rxjs@6, rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.6.0, rxjs@^6.6.2: version "6.6.7" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== @@ -22667,7 +25784,7 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -22679,6 +25796,11 @@ safe-event-emitter@^1.0.1: dependencies: events "^3.0.0" +safe-json-stringify@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz#356e44bc98f1f93ce45df14bcd7c01cda86e0afd" + integrity sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg== + safe-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" @@ -22691,6 +25813,11 @@ safe-stable-stringify@^1.1.0: resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-1.1.1.tgz#c8a220ab525cd94e60ebf47ddc404d610dc5d84a" integrity sha512-ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw== +safe-stable-stringify@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz#ab67cbe1fe7d40603ca641c5e765cb942d04fc73" + integrity sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg== + "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -22875,6 +26002,13 @@ seedrandom@^3.0.5: resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-3.0.5.tgz#54edc85c95222525b0c7a6f6b3543d8e0b3aa0a7" integrity sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg== +seek-bzip@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.6.tgz#35c4171f55a680916b52a07859ecf3b5857f21c4" + integrity sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ== + dependencies: + commander "^2.8.1" + select-hose@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" @@ -22897,12 +26031,19 @@ semver-compare@^1.0.0: resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= +semver-diff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" + integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== + dependencies: + semver "^6.3.0" + semver-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== -"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -22927,6 +26068,13 @@ semver@7.3.2: resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== +semver@^7.0.0, semver@^7.3.7: + version "7.3.7" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== + dependencies: + lru-cache "^6.0.0" + semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: version "7.3.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" @@ -23103,6 +26251,11 @@ setprototypeof@1.1.1: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" @@ -23207,6 +26360,11 @@ signal-exit@^3.0.0, signal-exit@^3.0.2: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== +signal-exit@^3.0.3, signal-exit@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + signedsource@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/signedsource/-/signedsource-1.0.0.tgz#1ddace4981798f93bd833973803d80d52e93ad6a" @@ -23285,6 +26443,14 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" +slice-ansi@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" + integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== + dependencies: + ansi-styles "^6.0.0" + is-fullwidth-code-point "^4.0.0" + snake-case@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-2.1.0.tgz#41bdb1b73f30ec66a04d4e2cad1b76387d4d6d9f" @@ -23393,6 +26559,13 @@ sockjs@^0.3.21: uuid "^3.4.0" websocket-driver "^0.7.4" +sort-keys-length@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sort-keys-length/-/sort-keys-length-1.0.1.tgz#9cb6f4f4e9e48155a6aa0671edd336ff1479a188" + integrity sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw== + dependencies: + sort-keys "^1.0.0" + sort-keys@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" @@ -23400,6 +26573,13 @@ sort-keys@^1.0.0: dependencies: is-plain-obj "^1.0.0" +sort-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" + integrity sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg== + dependencies: + is-plain-obj "^1.0.0" + source-list-map@^2.0.0, source-list-map@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" @@ -23428,6 +26608,11 @@ source-map-js@^0.6.2: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== +source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: version "0.5.3" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" @@ -23447,7 +26632,7 @@ source-map-support@^0.5.16, source-map-support@^0.5.6, source-map-support@~0.5.1 buffer-from "^1.0.0" source-map "^0.6.0" -source-map-support@^0.5.17: +source-map-support@^0.5.17, source-map-support@^0.5.19: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== @@ -23565,6 +26750,13 @@ split-string@^3.0.1, split-string@^3.0.2: dependencies: extend-shallow "^3.0.0" +split2@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/split2/-/split2-1.1.1.tgz#162d9b18865f02ab2f2ad9585522db9b54c481f9" + integrity sha512-cfurE2q8LamExY+lJ9Ex3ZfBwqAPduzOKVscPDXNCLLMvyaeD3DTz1yk7fVIs6Chco+12XeD0BB6HEoYzPYbXA== + dependencies: + through2 "~2.0.0" + split@0.3: version "0.3.3" resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" @@ -23618,6 +26810,13 @@ stable@^0.1.8: resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== +stack-generator@^2.0.3: + version "2.0.10" + resolved "https://registry.yarnpkg.com/stack-generator/-/stack-generator-2.0.10.tgz#8ae171e985ed62287d4f1ed55a1633b3fb53bb4d" + integrity sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ== + dependencies: + stackframe "^1.3.4" + stack-trace@0.0.x: version "0.0.10" resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" @@ -23642,6 +26841,11 @@ stackframe@^1.1.1: resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303" integrity sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA== +stackframe@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.3.4.tgz#b881a004c8c149a5e8efef37d51b16e412943310" + integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== + state-toggle@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe" @@ -23655,6 +26859,27 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" +static-server@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/static-server/-/static-server-2.2.1.tgz#49e3cae2a001736b0ee9e95d21d3d843fc95efaa" + integrity sha512-j5eeW6higxYNmXMIT8iHjsdiViTpQDthg7o+SHsRtqdbxscdHqBHXwrXjHC8hL3F0Tsu34ApUpDkwzMBPBsrLw== + dependencies: + chalk "^0.5.1" + commander "^2.3.0" + file-size "0.0.5" + mime "^1.2.11" + opn "^5.2.0" + +statsd-client@0.4.7: + version "0.4.7" + resolved "https://registry.yarnpkg.com/statsd-client/-/statsd-client-0.4.7.tgz#a423894bd80bd27524c992001511530ef16933d1" + integrity sha512-+sGCE6FednJ/vI7vywErOg/mhVqmf6Zlktz7cdGRnF/cQWXD9ifMgtqU1CIIXmhSwm11SCk4zDN+bwNCvIR/Kg== + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + "statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" @@ -23820,6 +27045,11 @@ string-natural-compare@^3.0.1: resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4" integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw== +string-similarity@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/string-similarity/-/string-similarity-4.0.4.tgz#42d01ab0b34660ea8a018da8f56a3309bb8b2a5b" + integrity sha512-/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ== + string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -23829,7 +27059,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1: +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== @@ -23837,6 +27067,15 @@ string-width@^1.0.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.2.2, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + string-width@^3.0.0, string-width@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" @@ -23855,14 +27094,14 @@ string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" -string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== +string-width@^5.0.0, string-width@^5.0.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" "string.prototype.matchall@^4.0.0 || ^3.0.1", string.prototype.matchall@^4.0.5: version "4.0.5" @@ -23950,6 +27189,11 @@ stringify-object@^3.3.0: is-obj "^1.0.1" is-regexp "^1.0.0" +strip-ansi-control-characters@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi-control-characters/-/strip-ansi-control-characters-2.0.0.tgz#8875b5ba3a859a0a44f94e1cf7d3eda8980997b9" + integrity sha512-Q0/k5orrVGeaOlIOUn1gybGU0IcAbgHQT1faLo5hik4DqClKVSaka5xOhNNoRgtfztHVxCYxi7j71mrWom0bIw== + strip-ansi@6.0.0, strip-ansi@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" @@ -23957,6 +27201,13 @@ strip-ansi@6.0.0, strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" +strip-ansi@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.3.0.tgz#25f48ea22ca79187f3174a4db8759347bb126220" + integrity sha512-DerhZL7j6i6/nEnVG0qViKXI0OKouvvpsAiaj7c+LfqZZZxdwZtv8+UiA/w4VUJpT8UzX0pR1dcHOii1GbmruQ== + dependencies: + ansi-regex "^0.2.1" + strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -23985,6 +27236,13 @@ strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" +strip-ansi@^7.0.0, strip-ansi@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" + integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== + dependencies: + ansi-regex "^6.0.1" + strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -24003,6 +27261,13 @@ strip-comments@^1.0.2: babel-extract-comments "^1.0.0" babel-plugin-transform-object-rest-spread "^6.26.0" +strip-dirs@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5" + integrity sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g== + dependencies: + is-natural-number "^4.0.1" + strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" @@ -24013,6 +27278,11 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + strip-hex-prefix@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" @@ -24037,6 +27307,13 @@ strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= +strip-outer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" + integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== + dependencies: + escape-string-regexp "^1.0.2" + style-loader@0.23.1: version "0.23.1" resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz#cb9154606f3e771ab6c4ab637026a1049174d925" @@ -24205,6 +27482,11 @@ sugarss@^2.0.0: dependencies: postcss "^7.0.2" +supports-color@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a" + integrity sha512-tdCZ28MnM7k7cJDJc7Eq80A9CsRFAAOZUy41npOZCs++qSjfIy7o5Rh46CBk+Dk5FbKJ33X3Tqg4YrV07N5RaA== + supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" @@ -24231,6 +27513,11 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +supports-color@^9.0.0: + version "9.2.2" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.2.2.tgz#502acaf82f2b7ee78eb7c83dcac0f89694e5a7bb" + integrity sha512-XC6g/Kgux+rJXmwokjm9ECpD6k/smUoS5LKlUCcsYr4IY3rW0XyAympon2RmxGrlnZURMpg5T18gWDP9CsHXFA== + supports-hyperlinks@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" @@ -24367,6 +27654,18 @@ table@^6.0.9: string-width "^4.2.0" strip-ansi "^6.0.0" +tabtab@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/tabtab/-/tabtab-3.0.2.tgz#a2cea0f1035f88d145d7da77eaabbd3fe03e1ec9" + integrity sha512-jANKmUe0sIQc/zTALTBy186PoM/k6aPrh3A7p6AaAfF6WPSbTx1JYeGIGH162btpH+mmVEXln+UxwViZHO2Jhg== + dependencies: + debug "^4.0.1" + es6-promisify "^6.0.0" + inquirer "^6.0.0" + minimist "^1.2.0" + mkdirp "^0.5.1" + untildify "^3.0.3" + tailwindcss@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-2.0.3.tgz#f8d07797d1f89dc4b171673c26237b58783c2c86" @@ -24398,7 +27697,31 @@ tapable@^1.0.0, tapable@^1.1.3: resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== -tar@^4.0.2: +tar-stream@^1.5.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" + integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== + dependencies: + bl "^1.0.0" + buffer-alloc "^1.2.0" + end-of-stream "^1.0.0" + fs-constants "^1.0.0" + readable-stream "^2.3.0" + to-buffer "^1.1.1" + xtend "^4.0.0" + +tar-stream@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +tar@^4, tar@^4.0.2: version "4.4.19" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== @@ -24423,6 +27746,18 @@ tar@^6.0.2: mkdirp "^1.0.3" yallist "^4.0.0" +tar@^6.1.11: + version "6.1.11" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" + integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + telejson@^5.3.2: version "5.3.3" resolved "https://registry.yarnpkg.com/telejson/-/telejson-5.3.3.tgz#fa8ca84543e336576d8734123876a9f02bf41d2e" @@ -24442,6 +27777,11 @@ temp-dir@^1.0.0: resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0= +temp-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e" + integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== + temp@^0.9.1: version "0.9.4" resolved "https://registry.yarnpkg.com/temp/-/temp-0.9.4.tgz#cd20a8580cb63635d0e4e9d4bd989d44286e7620" @@ -24459,6 +27799,17 @@ tempy@^0.3.0: type-fest "^0.3.1" unique-string "^1.0.0" +tempy@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tempy/-/tempy-1.0.1.tgz#30fe901fd869cfb36ee2bd999805aa72fbb035de" + integrity sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w== + dependencies: + del "^6.0.0" + is-stream "^2.0.0" + temp-dir "^2.0.0" + type-fest "^0.16.0" + unique-string "^2.0.0" + term-size@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" @@ -24471,7 +27822,7 @@ term-size@^2.1.0: resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54" integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== -terminal-link@^2.0.0: +terminal-link@^2.0.0, terminal-link@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== @@ -24582,7 +27933,23 @@ throttle-debounce@^3.0.1: resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-3.0.1.tgz#32f94d84dfa894f786c9a1f290e7a645b6a19abb" integrity sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg== -through2@^2.0.0: +through2-filter@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-3.0.0.tgz#700e786df2367c2c88cd8aa5be4cf9c1e7831254" + integrity sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA== + dependencies: + through2 "~2.0.0" + xtend "~4.0.0" + +through2-map@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/through2-map/-/through2-map-3.0.0.tgz#a6c3026ce63b4898a997d540506b66ffd970f271" + integrity sha512-Ms68QPbSJKjRYY7fmqZHB0VGt+vD0/tjmDHUWgxltjifCof6hZWWeQAEi27Wjbs7jyNlIIyerQw/TVj7gHkd/Q== + dependencies: + through2 "~2.0.0" + xtend "^4.0.0" + +through2@^2.0.0, through2@~2.0.0: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== @@ -24590,7 +27957,7 @@ through2@^2.0.0: readable-stream "~2.3.6" xtend "~4.0.1" -through@2, "through@>=2.2.7 <3", through@^2.3.6, through@~2.3, through@~2.3.1: +through@2, "through@>=2.2.7 <3", through@^2.3.6, through@^2.3.8, through@~2.3, through@~2.3.1: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= @@ -24600,6 +27967,11 @@ thunky@^1.0.2: resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== +time-zone@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/time-zone/-/time-zone-1.0.0.tgz#99c5bf55958966af6d06d83bdf3800dc82faec5d" + integrity sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA== + timed-out@^4.0.0, timed-out@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" @@ -24654,6 +28026,13 @@ title-case@^3.0.3: dependencies: tslib "^2.0.3" +tmp-promise@^3.0.2, tmp-promise@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.3.tgz#60a1a1cc98c988674fcbfd23b6e3367bdeac4ce7" + integrity sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ== + dependencies: + tmp "^0.2.0" + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -24661,6 +28040,13 @@ tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" +tmp@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + tmpl@1.0.x: version "1.0.5" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" @@ -24671,6 +28057,11 @@ to-arraybuffer@^1.0.0: resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= +to-buffer@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" + integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== + to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" @@ -24693,6 +28084,11 @@ to-readable-stream@^1.0.0: resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== +to-readable-stream@^2.0.0, to-readable-stream@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-2.1.0.tgz#82880316121bea662cdc226adb30addb50cb06e8" + integrity sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w== + to-regex-range@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" @@ -24728,6 +28124,21 @@ toidentifier@1.0.0: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +toml@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" + integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== + +tomlify-j0.4@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/tomlify-j0.4/-/tomlify-j0.4-3.0.0.tgz#99414d45268c3a3b8bf38be82145b7bba34b7473" + integrity sha512-2Ulkc8T7mXJ2l0W476YC/A209PR38Nw8PuaCNtk9uI3t1zzFdGQeWYGQvmj2PZkVvRC/Yoi4xQKMRnWc/N29tQ== + totalist@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df" @@ -24783,6 +28194,13 @@ trim-newlines@^3.0.0: resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== +trim-repeated@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" + integrity sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg== + dependencies: + escape-string-regexp "^1.0.2" + trim-trailing-lines@^1.0.0: version "1.1.4" resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz#bd4abbec7cc880462f10b2c8b5ce1d8d1ec7c2c0" @@ -24855,6 +28273,25 @@ ts-node@8.8.2: source-map-support "^0.5.6" yn "3.1.1" +ts-node@^10.6.0: + version "10.8.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.8.1.tgz#ea2bd3459011b52699d7e88daa55a45a1af4f066" + integrity sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + ts-node@^9: version "9.1.1" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" @@ -24974,6 +28411,11 @@ type-detect@4.0.8: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== +type-fest@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.10.0.tgz#7f06b2b9fbfc581068d1341ffabd0349ceafc642" + integrity sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw== + type-fest@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" @@ -24984,6 +28426,11 @@ type-fest@^0.13.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== +type-fest@^0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860" + integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== + type-fest@^0.18.0: version "0.18.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" @@ -25009,11 +28456,21 @@ type-fest@^0.6.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== -type-fest@^0.8.1: +type-fest@^0.8.0, type-fest@^0.8.1: version "0.8.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== +type-fest@^1.0.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" + integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== + +type-fest@^2.0.0, type-fest@^2.11.2, type-fest@^2.5.0: + version "2.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.13.1.tgz#621c84220df0e01a8469002594fc005714f0cfba" + integrity sha512-hXYyrPFwETT2swFLHeoKtJrvSF/ftG/sA15/8nGaLuaDGfVAaq8DYFpu4yOyV4tzp082WqnTEoMsm3flKMI2FQ== + type-is@~1.6.17, type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -25078,6 +28535,11 @@ typescript@3.8.2: resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.2.tgz#91d6868aaead7da74f493c553aeff76c0c0b1d5a" integrity sha512-EgOVgL/4xfVrCMbhYKUQTdF37SQn4Iw73H5BgCrF1Abdun7Kwy/QZsE/ssAy0y4LxBbvua3PIbFsbRczWWnDdQ== +typescript@^4.5.4, typescript@^4.5.5: + version "4.7.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235" + integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== + u2f-api@0.2.7: version "0.2.7" resolved "https://registry.yarnpkg.com/u2f-api/-/u2f-api-0.2.7.tgz#17bf196b242f6bf72353d9858e6a7566cc192720" @@ -25093,6 +28555,13 @@ uglify-js@^3.1.4: resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.1.tgz#e2cb9fe34db9cb4cf7e35d1d26dfea28e09a7d06" integrity sha512-JhS3hmcVaXlp/xSo3PKY5R0JqKs5M3IV+exdLHW99qKvKivPO4Z8qbej6mte17SOPqAOVMjt/XGgWacnFSzM3g== +uid-safe@2.1.5: + version "2.1.5" + resolved "https://registry.yarnpkg.com/uid-safe/-/uid-safe-2.1.5.tgz#2b3d5c7240e8fc2e58f8aa269e5ee49c0857bd3a" + integrity sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA== + dependencies: + random-bytes "~1.0.0" + ultron@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" @@ -25113,6 +28582,14 @@ unbox-primitive@^1.0.1: has-symbols "^1.0.2" which-boxed-primitive "^1.0.2" +unbzip2-stream@^1.0.9: + version "1.4.3" + resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" + integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== + dependencies: + buffer "^5.2.1" + through "^2.3.8" + unc-path-regex@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" @@ -25242,6 +28719,13 @@ unique-string@^1.0.0: dependencies: crypto-random-string "^1.0.0" +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== + dependencies: + crypto-random-string "^2.0.0" + unist-builder@2.0.3, unist-builder@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-2.0.3.tgz#77648711b5d86af0942f334397a33c5e91516436" @@ -25345,6 +28829,11 @@ unist-util-visit@^1.1.0: dependencies: unist-util-visit-parents "^2.0.0" +universal-user-agent@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" + integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== + universalify@^0.1.0, universalify@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -25380,6 +28869,11 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" +untildify@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/untildify/-/untildify-3.0.3.tgz#1e7b42b140bcfd922b22e70ca1265bfe3634c7c9" + integrity sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA== + upath@^1.1.1, upath@^1.1.2, upath@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" @@ -25393,6 +28887,26 @@ update-check@1.5.2: registry-auth-token "3.3.2" registry-url "3.1.0" +update-notifier@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" + integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw== + dependencies: + boxen "^5.0.0" + chalk "^4.1.0" + configstore "^5.0.1" + has-yarn "^2.1.0" + import-lazy "^2.1.0" + is-ci "^2.0.0" + is-installed-globally "^0.4.0" + is-npm "^5.0.0" + is-yarn-global "^0.3.0" + latest-version "^5.1.0" + pupa "^2.1.1" + semver "^7.3.4" + semver-diff "^3.1.1" + xdg-basedir "^4.0.0" + upper-case-first@^1.1.0, upper-case-first@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-1.1.2.tgz#5d79bedcff14419518fd2edb0a0507c9b6859115" @@ -25641,11 +29155,16 @@ uuid@^3.0.1, uuid@^3.3.2, uuid@^3.4.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -uuid@^8.3.0: +uuid@^8.0.0, uuid@^8.3.0, uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + v8-compile-cache@^2.0.3, v8-compile-cache@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" @@ -25689,6 +29208,13 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +validate-npm-package-name@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz#fe8f1c50ac20afdb86f177da85b3600f0ac0d747" + integrity sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q== + dependencies: + builtins "^5.0.0" + value-equal@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" @@ -25814,6 +29340,15 @@ w3c-xmlserializer@^2.0.0: dependencies: xml-name-validator "^3.0.0" +wait-port@^0.2.2: + version "0.2.9" + resolved "https://registry.yarnpkg.com/wait-port/-/wait-port-0.2.9.tgz#3905cf271b5dbe37a85c03b85b418b81cb24ee55" + integrity sha512-hQ/cVKsNqGZ/UbZB/oakOGFqic00YAMM5/PEj3Bt4vKarv2jWIWzDbqlwT94qMs/exAQAsvMOq99sZblV92zxQ== + dependencies: + chalk "^2.4.2" + commander "^3.0.2" + debug "^4.1.1" + walker@^1.0.7, walker@~1.0.5: version "1.0.7" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" @@ -25870,7 +29405,7 @@ web-streams-polyfill@4.0.0-beta.1: resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.1.tgz#3b19b9817374b7cee06d374ba7eeb3aeb80e8c95" integrity sha512-3ux37gEX670UUphBF9AMCq8XM6iQ8Ac6A+DSRRjDoRBm1ufCkaCDdNVbaqq60PsEkdNlLKrGtv/YBP4EJXqNtQ== -web-streams-polyfill@^3.2.0: +web-streams-polyfill@^3.0.3, web-streams-polyfill@^3.2.0: version "3.2.1" resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== @@ -27463,6 +30998,11 @@ websocket@^1.0.31, websocket@^1.0.32: typedarray-to-buffer "^3.1.5" yaeti "^0.0.6" +well-known-symbols@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/well-known-symbols/-/well-known-symbols-2.0.0.tgz#e9c7c07dbd132b7b84212c8174391ec1f9871ba5" + integrity sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q== + whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" @@ -27584,6 +31124,13 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2 || 2" +wide-align@^1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + dependencies: + string-width "^1.0.2 || 2 || 3 || 4" + widest-line@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" @@ -27598,6 +31145,13 @@ widest-line@^3.1.0: dependencies: string-width "^4.0.0" +windows-release@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-5.0.1.tgz#d1f7cd1f25660ba05cac6359711844dce909a8ed" + integrity sha512-y1xFdFvdMiDXI3xiOhMbJwt1Y7dUxidha0CWPs1NgjZIjZANTcX7+7bMqNjuezhzb8s5JGEiBAbQjQQYYy7ulw== + dependencies: + execa "^5.1.1" + winston-transport@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.4.0.tgz#17af518daa690d5b2ecccaa7acf7b20ca7925e59" @@ -27606,6 +31160,31 @@ winston-transport@^4.4.0: readable-stream "^2.3.7" triple-beam "^1.2.0" +winston-transport@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.5.0.tgz#6e7b0dd04d393171ed5e4e4905db265f7ab384fa" + integrity sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q== + dependencies: + logform "^2.3.2" + readable-stream "^3.6.0" + triple-beam "^1.3.0" + +winston@^3.2.1, winston@^3.6.0: + version "3.7.2" + resolved "https://registry.yarnpkg.com/winston/-/winston-3.7.2.tgz#95b4eeddbec902b3db1424932ac634f887c400b1" + integrity sha512-QziIqtojHBoyzUOdQvQiar1DH0Xp9nF1A1y7NVy2DGEsz82SBDtOalS0ulTRGVT14xPX3WRWkCsdcJKqNflKng== + dependencies: + "@dabh/diagnostics" "^2.0.2" + async "^3.2.3" + is-stream "^2.0.0" + logform "^2.4.0" + one-time "^1.0.0" + readable-stream "^3.4.0" + safe-stable-stringify "^2.3.1" + stack-trace "0.0.x" + triple-beam "^1.3.0" + winston-transport "^4.5.0" + winston@^3.3.3: version "3.3.3" resolved "https://registry.yarnpkg.com/winston/-/winston-3.3.3.tgz#ae6172042cafb29786afa3d09c8ff833ab7c9170" @@ -27976,6 +31555,15 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.0.1.tgz#2101e861777fec527d0ea90c57c6b03aac56a5b3" + integrity sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -28000,6 +31588,14 @@ write-file-atomic@^3.0.0, write-file-atomic@^3.0.3: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" +write-file-atomic@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.1.tgz#9faa33a964c1c85ff6f849b80b42a88c2c537c8f" + integrity sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^3.0.7" + write@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" @@ -28060,6 +31656,11 @@ x-is-string@^0.1.0: resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" integrity sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI= +xdg-basedir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" + integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== + xhr-request-promise@^0.1.2: version "0.1.3" resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz#2d5f4b16d8c6c893be97f1a62b0ed4cf3ca5f96c" @@ -28280,11 +31881,32 @@ yargs@^17.0.0: y18n "^5.0.5" yargs-parser "^21.0.0" +yargs@^17.3.1: + version "17.5.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e" + integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.0.0" + yarn@1.22.10: version "1.22.10" resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.22.10.tgz#c99daa06257c80f8fa2c3f1490724e394c26b18c" integrity sha512-IanQGI9RRPAN87VGTF7zs2uxkSyQSrSPsju0COgbsKQOOXr5LtcVPeyXWgwVa0ywG3d8dg6kSYKGBuYK021qeA== +yauzl@^2.4.2: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + yeast@0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" @@ -28300,6 +31922,11 @@ yocto-queue@^0.1.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== +yocto-queue@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" + integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== + zen-observable-ts@^1.2.0: version "1.2.3" resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-1.2.3.tgz#c2f5ccebe812faf0cfcde547e6004f65b1a6d769" @@ -28320,6 +31947,15 @@ zen-observable@0.8.15: resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== +zip-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.0.tgz#51dd326571544e36aa3f756430b313576dc8fc79" + integrity sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A== + dependencies: + archiver-utils "^2.1.0" + compress-commons "^4.1.0" + readable-stream "^3.6.0" + zwitch@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" From 4c319f3b1859f01a7d0c029f2bb7de1489a1b75b Mon Sep 17 00:00:00 2001 From: Victor Creed <69458664+creed-victor@users.noreply.github.com> Date: Tue, 21 Jun 2022 16:04:29 +0300 Subject: [PATCH 05/38] test PR (#2279) * test PR * fix: netlify config file * fix: netlify config --- docs/Netlify.md | 1 + netlify.toml | 19 +++---------------- 2 files changed, 4 insertions(+), 16 deletions(-) create mode 100644 docs/Netlify.md diff --git a/docs/Netlify.md b/docs/Netlify.md new file mode 100644 index 000000000..eeb2eb288 --- /dev/null +++ b/docs/Netlify.md @@ -0,0 +1 @@ +# Netlify Deployments diff --git a/netlify.toml b/netlify.toml index a005a595b..20aacdf3a 100644 --- a/netlify.toml +++ b/netlify.toml @@ -1,7 +1,6 @@ [dev] command = "yarn start" port = 8888 - targetPort = 300 framework = "create-react-app" autoLaunch = true @@ -9,7 +8,7 @@ [build] command = "yarn build" [build.environment] - BUILD_STORYBOOK=true + BUILD_STORYBOOK = "true" REACT_APP_INTERCOM_ID = "zxxit1rp" REACT_APP_NETWORK = "testnet" REACT_APP_PORTIS_ID = "469a25c8-1101-4c57-823d-c47cb328f788" @@ -35,18 +34,6 @@ # Testnet deployment [context.development] -# Testnet deployment -[context.staging] - [context.staging.environment] - REACT_APP_NETWORK = "mainnet" - REACT_APP_GOOGLE_ANALYTICS = "UA-192081564-1" - REACT_APP_GRAPH_RSK = "https://subgraph.sovryn.app/subgraphs/name/DistributedCollective/sovryn-subgraph" - REACT_APP_INFURA_KEY = "12b606df88b3420aad7828acd0f11902" - REACT_APP_TRANSAK_ENV = "PRODUCTION" - REACT_APP_TRANSAK_API_KEY = "fadc5140-4d8f-4eda-ab37-5999dfedf353" - REACT_APP_BYPASS_MAINTENANCE = true - REACT_APP_STAGING = true - # Staging deployments (all branches) [context.branch-deploy] [context.branch-deploy.environment] @@ -56,5 +43,5 @@ REACT_APP_INFURA_KEY = "12b606df88b3420aad7828acd0f11902" REACT_APP_TRANSAK_ENV = "PRODUCTION" REACT_APP_TRANSAK_API_KEY = "fadc5140-4d8f-4eda-ab37-5999dfedf353" - REACT_APP_BYPASS_MAINTENANCE = true - REACT_APP_STAGING = true + REACT_APP_BYPASS_MAINTENANCE = "true" + REACT_APP_STAGING = "true" From 916816cf58385f112b5e8b6cba6daf157c3b12ba Mon Sep 17 00:00:00 2001 From: Victor Creed Date: Tue, 21 Jun 2022 16:41:50 +0300 Subject: [PATCH 06/38] netlify testnet config --- netlify.toml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/netlify.toml b/netlify.toml index 20aacdf3a..a25fa7890 100644 --- a/netlify.toml +++ b/netlify.toml @@ -31,9 +31,6 @@ # PR deployments (previews) [context.deploy-preview] -# Testnet deployment -[context.development] - # Staging deployments (all branches) [context.branch-deploy] [context.branch-deploy.environment] @@ -45,3 +42,9 @@ REACT_APP_TRANSAK_API_KEY = "fadc5140-4d8f-4eda-ab37-5999dfedf353" REACT_APP_BYPASS_MAINTENANCE = "true" REACT_APP_STAGING = "true" + +# Testnet deployment +[context.development] + [context.development.environment] + REACT_APP_NETWORK = "testnet" + REACT_APP_GRAPH_RSK = "https://subgraph.test.sovryn.app/subgraphs/name/DistributedCollective/sovryn-subgraph" From 335f8a84da149928a31f2f646e1dd1ade644cbf8 Mon Sep 17 00:00:00 2001 From: soulBit Date: Tue, 21 Jun 2022 15:37:03 +0100 Subject: [PATCH 07/38] feat: add extra rel attribute to favicon for metamask "connected sites" (#2274) --- public/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/index.html b/public/index.html index 6af96846f..3b07ac568 100644 --- a/public/index.html +++ b/public/index.html @@ -7,7 +7,7 @@ href="%PUBLIC_URL%/safari-pinned-tab.svg" color="#ffffff" /> - + From a48b84770434730a0da5134f609dd771907607b6 Mon Sep 17 00:00:00 2001 From: Pietro Maximoff <74987028+pietro-maximoff@users.noreply.github.com> Date: Wed, 22 Jun 2022 15:27:56 +0300 Subject: [PATCH 08/38] [BorrowPage] - replace borrow history endpoint with graphql (#2251) * [BorrowPage] - replace borrow history endpoint with graphql * [BorrowHistory] - fix borrow history hook * [BorrowHistory] - update borrow history according pr comments * feat: use graphql-codegen for borrow history data * chore: update borrow history data typing for use in Table component * chore: add graphql codegen pre-script calls Co-authored-by: soulBit --- package.json | 2 + .../hooks/useGetBorrowHistoryData.ts | 10 + src/app/containers/BorrowHistory/index.tsx | 204 +- src/utils/graphql/README.md | 52 +- src/utils/graphql/rsk/generated.tsx | 4465 +++++++++++------ .../rsk/operations/getBorrowHistory.graphql | 22 + src/utils/graphql/rsk/schema.graphql | 4423 ++++++++++------ 7 files changed, 5906 insertions(+), 3272 deletions(-) create mode 100644 src/app/containers/BorrowHistory/hooks/useGetBorrowHistoryData.ts create mode 100644 src/utils/graphql/rsk/operations/getBorrowHistory.graphql diff --git a/package.json b/package.json index df3cbd4f0..5cefcd0cb 100644 --- a/package.json +++ b/package.json @@ -182,7 +182,9 @@ "changelog": "./bin/changelog" }, "scripts": { + "prestart": "yarn generate:graphql", "start": "node scripts/start.js", + "prebuild": "yarn generate:graphql", "dev": "netlify dev", "build": "if-env BUILD_STORYBOOK=true && yarn build:with-storybook || node scripts/build.js", "build:dev": "env-cmd -f .env.local yarn build", diff --git a/src/app/containers/BorrowHistory/hooks/useGetBorrowHistoryData.ts b/src/app/containers/BorrowHistory/hooks/useGetBorrowHistoryData.ts new file mode 100644 index 000000000..f743a4903 --- /dev/null +++ b/src/app/containers/BorrowHistory/hooks/useGetBorrowHistoryData.ts @@ -0,0 +1,10 @@ +import { useAccount } from 'app/hooks/useAccount'; +import { useGetBorrowHistoryQuery } from 'utils/graphql/rsk/generated'; +export function useGetBorrowHistoryData() { + const account = useAccount(); + return useGetBorrowHistoryQuery({ + variables: { + user: account.toLowerCase(), + }, + }); +} diff --git a/src/app/containers/BorrowHistory/index.tsx b/src/app/containers/BorrowHistory/index.tsx index e219d947f..f3342a864 100644 --- a/src/app/containers/BorrowHistory/index.tsx +++ b/src/app/containers/BorrowHistory/index.tsx @@ -1,164 +1,76 @@ -import React from 'react'; +import React, { useMemo } from 'react'; import { useTranslation } from 'react-i18next'; -import { useTable, useSortBy } from 'react-table'; -import { Icon, Text } from '@blueprintjs/core'; import { translations } from 'locales/i18n'; +import { AssetsDictionary } from 'utils/dictionaries/assets-dictionary'; +import { DisplayDate } from 'app/components/ActiveUserLoanContainer/components/DisplayDate'; +import { useGetBorrowHistoryData } from './hooks/useGetBorrowHistoryData'; +import { Table } from 'app/components/Table'; +import { AssetRenderer } from 'app/components/AssetRenderer'; +import { toAssetNumberFormat } from 'utils/display-text/format'; -import { BorrowAmount } from '../../components/ActiveBorrowTable/BorrowAmount'; -import { AssetsDictionary } from '../../../utils/dictionaries/assets-dictionary'; -import { CollateralAmount } from '../../components/ActiveBorrowTable/CollateralAmount'; -import { DisplayDate } from '../../components/ActiveUserLoanContainer/components/DisplayDate'; -import { useGetContractPastEvents } from '../../hooks/useGetContractPastEvents'; -import { weiToFixed } from '../../../utils/blockchain/math-helpers'; -import { SkeletonRow } from '../../components/Skeleton/SkeletonRow'; - -interface Props {} - -export function BorrowHistory(props: Props) { +export const BorrowHistory: React.FC = () => { const { t } = useTranslation(); + const { data, loading } = useGetBorrowHistoryData(); - const { events, loading } = useGetContractPastEvents( - 'sovrynProtocol', - 'Borrow', - ); + const rows = useMemo(() => { + if (!data || loading) return; + return data.borrows.map(item => { + return { + key: item.loanId.id, + borrowAmount: item.newPrincipal, + collateralAmount: item.newCollateral, + interestAPR: item.interestRate, + timestamp: item.timestamp, + loanToken: item.loanToken, + collateralToken: item.collateralToken, + }; + }); + }, [data, loading]); - const columns = React.useMemo( + const columns = useMemo( () => [ { - Header: t(translations.borrowHistory.table.headers.borrowAmount), - accessor: 'borrowAmount', - sortType: 'alphanumeric', - sortable: true, + id: 'borrowAmount', + title: t(translations.borrowHistory.table.headers.borrowAmount), + cellRenderer: row => { + const loanToken = AssetsDictionary.getByTokenContractAddress( + row.loanToken, + ); + return ( + <> + {toAssetNumberFormat(row.borrowAmount, loanToken.asset)}{' '} + + + ); + }, }, { - Header: t(translations.borrowHistory.table.headers.collateralAmount), - accessor: 'collateralAmount', - sortType: 'alphanumeric', - sortable: true, + id: 'collateralAmount', + title: t(translations.borrowHistory.table.headers.collateralAmount), + cellRenderer: row => { + const collateralToken = AssetsDictionary.getByTokenContractAddress( + row.collateralToken, + ); + return ( + <> + {toAssetNumberFormat(row.collateralAmount, collateralToken.asset)}{' '} + + + ); + }, }, { - Header: t(translations.borrowHistory.table.headers.interestAPR), - accessor: 'interestAPR', - sortable: true, + id: 'interestAPR', + title: t(translations.borrowHistory.table.headers.interestAPR), + cellRenderer: row => <>{Number(row.interestAPR).toFixed(2)} %, }, { - Header: t(translations.borrowHistory.table.headers.timestamp), - accessor: 'timestamp', - sortable: true, - }, - { - Header: '', - accessor: 'actions', + id: 'timestamp', + title: t(translations.borrowHistory.table.headers.timestamp), + cellRenderer: row => , }, ], [t], ); - const data = React.useMemo(() => { - return events.map(item => { - const timestamp = String( - // EventData is incorrectly typed in web3-eth-contract - new Date((item as any).eventDate).getTime() / 1e3, - ); - return { - id: item.returnValues.loanId, - borrowAmount: ( - - ), - collateralAmount: ( - - ), - interestAPR: <>{weiToFixed(item.returnValues.interestRate, 2)} %, - timestamp: , - }; - }); - }, [events]); - const { - getTableProps, - getTableBodyProps, - headerGroups, - rows, - prepareRow, - } = useTable({ columns, data }, useSortBy); - return ( -
- - - {headerGroups.map(headerGroup => ( - - {headerGroup.headers.map(column => ( - - ))} - - ))} - - - {rows.map(row => { - prepareRow(row); - return ( - - {row.cells.map(cell => { - return ( - - ); - })} - - ); - })} - {rows.length === 0 && !loading && ( - - - - )} - {rows.length === 0 && loading && ( - - - - )} - -
- - {column.render('Header')} - {column.sortable && ( - - {column.isSorted ? ( - column.isSortedDesc ? ( - - ) : ( - - ) - ) : ( - - )} - - )} - -
- {cell.render('Cell')} -
{t(translations.borrowHistory.no_items)}
- -
-
- ); -} + return ; +}; diff --git a/src/utils/graphql/README.md b/src/utils/graphql/README.md index dcea8787e..534f98e02 100644 --- a/src/utils/graphql/README.md +++ b/src/utils/graphql/README.md @@ -1,13 +1,55 @@ # GraphQL Usage -## updating schemas +## Updating schemas 1. run `yarn generate:graphql:fetch:testnet` or `yarn generate:graphql:fetch:mainnet` 2. run `yarn generate:graphql` -## adding queries +## Adding queries -1. Find or create a file in ./[subgraph]/operations/ with the topic as filename with .graphql as extension. +1. Find or create a file in `./subgraph/operations/` with the topic as filename, and `.graphql` as extension. Whatever name is defined here will be used as the basis for any generated hooks, so choose wisely! e.g. `getBorrowHistory.graphql` will generate a hook with name `useGetBorrowHistory()`. 2. Write your qraphql query/subscription/mutation - a. make sure to include all required query variables. https://graphql.org/learn/queries/#variables -3. run `yarn generate:graphql` or `yarn generate:graphql --watch` + 1. make sure to include all required query variables - see https://graphql.org/learn/queries/#variables for reference + 2. make sure to split any entity fields out into a separate fragment which will be used to type returned data - e.g: + +```gql +fragment BorrowFields on Borrow { + loanId { + id + } + loanToken + collateralToken + newPrincipal + newCollateral + interestRate + interestDuration + collateralToLoanRate + timestamp + transaction { + id + } +} +``` + +3. run `yarn generate:graphql` or `yarn generate:graphql --watch` to watch files for further changes. + +## Using generated hooks + +As described in generated docs from graphql-codegen tool, using the example hook `useGetBorrowHistory()`: + +- To run a query within a React component, call `useGetBorrowHistoryQuery` and pass it any options that fit your needs. supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; +- When your component renders, `useGetBorrowHistoryQuery` returns an object from Apollo Client that contains loading, error, and data properties you can use to render your UI. + +```javascript +const { data, loading, error } = useGetBorrowHistoryQuery({ + variables: { + user: '0x0000000000000000000000000000', + }, +}); +``` + +- Custom data types from the entities in Graph schema will be exported and applied automatically to the returned data from this hook call. + +# Examples + +For more info see live example here: https://www.graphql-code-generator.com/ (Choose "React-Apollo Hooks" from Live Example list) diff --git a/src/utils/graphql/rsk/generated.tsx b/src/utils/graphql/rsk/generated.tsx index 5b2f713c4..ac31d3064 100644 --- a/src/utils/graphql/rsk/generated.tsx +++ b/src/utils/graphql/rsk/generated.tsx @@ -31,46 +31,46 @@ export type Block_Height = { /** Granular event data for the Loan entity. Emitted when a user Borrows (takes out a loan) */ export type Borrow = { __typename?: 'Borrow'; - collateralToLoanRate: Scalars['BigInt']; + collateralToLoanRate: Scalars['BigDecimal']; collateralToken: Scalars['Bytes']; - currentMargin: Scalars['BigInt']; + currentMargin: Scalars['BigDecimal']; emittedBy: Scalars['Bytes']; id: Scalars['ID']; - interestDuration: Scalars['BigInt']; - interestRate: Scalars['BigInt']; + interestDuration: Scalars['BigDecimal']; + interestRate: Scalars['BigDecimal']; lender: Scalars['Bytes']; loanId: Loan; loanToken: Scalars['Bytes']; - newCollateral: Scalars['BigInt']; - newPrincipal: Scalars['BigInt']; - timestamp: Scalars['BigInt']; + newCollateral: Scalars['BigDecimal']; + newPrincipal: Scalars['BigDecimal']; + timestamp: Scalars['Int']; transaction: Transaction; user: User; }; export type Borrow_Filter = { - collateralToLoanRate?: InputMaybe; - collateralToLoanRate_gt?: InputMaybe; - collateralToLoanRate_gte?: InputMaybe; - collateralToLoanRate_in?: InputMaybe>; - collateralToLoanRate_lt?: InputMaybe; - collateralToLoanRate_lte?: InputMaybe; - collateralToLoanRate_not?: InputMaybe; - collateralToLoanRate_not_in?: InputMaybe>; + collateralToLoanRate?: InputMaybe; + collateralToLoanRate_gt?: InputMaybe; + collateralToLoanRate_gte?: InputMaybe; + collateralToLoanRate_in?: InputMaybe>; + collateralToLoanRate_lt?: InputMaybe; + collateralToLoanRate_lte?: InputMaybe; + collateralToLoanRate_not?: InputMaybe; + collateralToLoanRate_not_in?: InputMaybe>; collateralToken?: InputMaybe; collateralToken_contains?: InputMaybe; collateralToken_in?: InputMaybe>; collateralToken_not?: InputMaybe; collateralToken_not_contains?: InputMaybe; collateralToken_not_in?: InputMaybe>; - currentMargin?: InputMaybe; - currentMargin_gt?: InputMaybe; - currentMargin_gte?: InputMaybe; - currentMargin_in?: InputMaybe>; - currentMargin_lt?: InputMaybe; - currentMargin_lte?: InputMaybe; - currentMargin_not?: InputMaybe; - currentMargin_not_in?: InputMaybe>; + currentMargin?: InputMaybe; + currentMargin_gt?: InputMaybe; + currentMargin_gte?: InputMaybe; + currentMargin_in?: InputMaybe>; + currentMargin_lt?: InputMaybe; + currentMargin_lte?: InputMaybe; + currentMargin_not?: InputMaybe; + currentMargin_not_in?: InputMaybe>; emittedBy?: InputMaybe; emittedBy_contains?: InputMaybe; emittedBy_in?: InputMaybe>; @@ -85,22 +85,22 @@ export type Borrow_Filter = { id_lte?: InputMaybe; id_not?: InputMaybe; id_not_in?: InputMaybe>; - interestDuration?: InputMaybe; - interestDuration_gt?: InputMaybe; - interestDuration_gte?: InputMaybe; - interestDuration_in?: InputMaybe>; - interestDuration_lt?: InputMaybe; - interestDuration_lte?: InputMaybe; - interestDuration_not?: InputMaybe; - interestDuration_not_in?: InputMaybe>; - interestRate?: InputMaybe; - interestRate_gt?: InputMaybe; - interestRate_gte?: InputMaybe; - interestRate_in?: InputMaybe>; - interestRate_lt?: InputMaybe; - interestRate_lte?: InputMaybe; - interestRate_not?: InputMaybe; - interestRate_not_in?: InputMaybe>; + interestDuration?: InputMaybe; + interestDuration_gt?: InputMaybe; + interestDuration_gte?: InputMaybe; + interestDuration_in?: InputMaybe>; + interestDuration_lt?: InputMaybe; + interestDuration_lte?: InputMaybe; + interestDuration_not?: InputMaybe; + interestDuration_not_in?: InputMaybe>; + interestRate?: InputMaybe; + interestRate_gt?: InputMaybe; + interestRate_gte?: InputMaybe; + interestRate_in?: InputMaybe>; + interestRate_lt?: InputMaybe; + interestRate_lte?: InputMaybe; + interestRate_not?: InputMaybe; + interestRate_not_in?: InputMaybe>; lender?: InputMaybe; lender_contains?: InputMaybe; lender_in?: InputMaybe>; @@ -127,30 +127,30 @@ export type Borrow_Filter = { loanToken_not?: InputMaybe; loanToken_not_contains?: InputMaybe; loanToken_not_in?: InputMaybe>; - newCollateral?: InputMaybe; - newCollateral_gt?: InputMaybe; - newCollateral_gte?: InputMaybe; - newCollateral_in?: InputMaybe>; - newCollateral_lt?: InputMaybe; - newCollateral_lte?: InputMaybe; - newCollateral_not?: InputMaybe; - newCollateral_not_in?: InputMaybe>; - newPrincipal?: InputMaybe; - newPrincipal_gt?: InputMaybe; - newPrincipal_gte?: InputMaybe; - newPrincipal_in?: InputMaybe>; - newPrincipal_lt?: InputMaybe; - newPrincipal_lte?: InputMaybe; - newPrincipal_not?: InputMaybe; - newPrincipal_not_in?: InputMaybe>; - timestamp?: InputMaybe; - timestamp_gt?: InputMaybe; - timestamp_gte?: InputMaybe; - timestamp_in?: InputMaybe>; - timestamp_lt?: InputMaybe; - timestamp_lte?: InputMaybe; - timestamp_not?: InputMaybe; - timestamp_not_in?: InputMaybe>; + newCollateral?: InputMaybe; + newCollateral_gt?: InputMaybe; + newCollateral_gte?: InputMaybe; + newCollateral_in?: InputMaybe>; + newCollateral_lt?: InputMaybe; + newCollateral_lte?: InputMaybe; + newCollateral_not?: InputMaybe; + newCollateral_not_in?: InputMaybe>; + newPrincipal?: InputMaybe; + newPrincipal_gt?: InputMaybe; + newPrincipal_gte?: InputMaybe; + newPrincipal_in?: InputMaybe>; + newPrincipal_lt?: InputMaybe; + newPrincipal_lte?: InputMaybe; + newPrincipal_not?: InputMaybe; + newPrincipal_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; transaction?: InputMaybe; transaction_contains?: InputMaybe; transaction_ends_with?: InputMaybe; @@ -339,17 +339,17 @@ export enum CandleSticksInterval { export type CloseWithDeposit = { __typename?: 'CloseWithDeposit'; closer: Scalars['Bytes']; - collateralToLoanRate: Scalars['BigInt']; + collateralToLoanRate: Scalars['BigDecimal']; collateralToken: Scalars['Bytes']; - collateralWithdrawAmount: Scalars['BigInt']; - currentMargin: Scalars['BigInt']; + collateralWithdrawAmount: Scalars['BigDecimal']; + currentMargin: Scalars['BigDecimal']; emittedBy: Scalars['Bytes']; id: Scalars['ID']; lender: Scalars['Bytes']; loanId: Loan; loanToken: Scalars['Bytes']; - repayAmount: Scalars['BigInt']; - timestamp: Scalars['BigInt']; + repayAmount: Scalars['BigDecimal']; + timestamp: Scalars['Int']; transaction: Transaction; user: Scalars['Bytes']; }; @@ -361,36 +361,36 @@ export type CloseWithDeposit_Filter = { closer_not?: InputMaybe; closer_not_contains?: InputMaybe; closer_not_in?: InputMaybe>; - collateralToLoanRate?: InputMaybe; - collateralToLoanRate_gt?: InputMaybe; - collateralToLoanRate_gte?: InputMaybe; - collateralToLoanRate_in?: InputMaybe>; - collateralToLoanRate_lt?: InputMaybe; - collateralToLoanRate_lte?: InputMaybe; - collateralToLoanRate_not?: InputMaybe; - collateralToLoanRate_not_in?: InputMaybe>; + collateralToLoanRate?: InputMaybe; + collateralToLoanRate_gt?: InputMaybe; + collateralToLoanRate_gte?: InputMaybe; + collateralToLoanRate_in?: InputMaybe>; + collateralToLoanRate_lt?: InputMaybe; + collateralToLoanRate_lte?: InputMaybe; + collateralToLoanRate_not?: InputMaybe; + collateralToLoanRate_not_in?: InputMaybe>; collateralToken?: InputMaybe; collateralToken_contains?: InputMaybe; collateralToken_in?: InputMaybe>; collateralToken_not?: InputMaybe; collateralToken_not_contains?: InputMaybe; collateralToken_not_in?: InputMaybe>; - collateralWithdrawAmount?: InputMaybe; - collateralWithdrawAmount_gt?: InputMaybe; - collateralWithdrawAmount_gte?: InputMaybe; - collateralWithdrawAmount_in?: InputMaybe>; - collateralWithdrawAmount_lt?: InputMaybe; - collateralWithdrawAmount_lte?: InputMaybe; - collateralWithdrawAmount_not?: InputMaybe; - collateralWithdrawAmount_not_in?: InputMaybe>; - currentMargin?: InputMaybe; - currentMargin_gt?: InputMaybe; - currentMargin_gte?: InputMaybe; - currentMargin_in?: InputMaybe>; - currentMargin_lt?: InputMaybe; - currentMargin_lte?: InputMaybe; - currentMargin_not?: InputMaybe; - currentMargin_not_in?: InputMaybe>; + collateralWithdrawAmount?: InputMaybe; + collateralWithdrawAmount_gt?: InputMaybe; + collateralWithdrawAmount_gte?: InputMaybe; + collateralWithdrawAmount_in?: InputMaybe>; + collateralWithdrawAmount_lt?: InputMaybe; + collateralWithdrawAmount_lte?: InputMaybe; + collateralWithdrawAmount_not?: InputMaybe; + collateralWithdrawAmount_not_in?: InputMaybe>; + currentMargin?: InputMaybe; + currentMargin_gt?: InputMaybe; + currentMargin_gte?: InputMaybe; + currentMargin_in?: InputMaybe>; + currentMargin_lt?: InputMaybe; + currentMargin_lte?: InputMaybe; + currentMargin_not?: InputMaybe; + currentMargin_not_in?: InputMaybe>; emittedBy?: InputMaybe; emittedBy_contains?: InputMaybe; emittedBy_in?: InputMaybe>; @@ -431,22 +431,22 @@ export type CloseWithDeposit_Filter = { loanToken_not?: InputMaybe; loanToken_not_contains?: InputMaybe; loanToken_not_in?: InputMaybe>; - repayAmount?: InputMaybe; - repayAmount_gt?: InputMaybe; - repayAmount_gte?: InputMaybe; - repayAmount_in?: InputMaybe>; - repayAmount_lt?: InputMaybe; - repayAmount_lte?: InputMaybe; - repayAmount_not?: InputMaybe; - repayAmount_not_in?: InputMaybe>; - timestamp?: InputMaybe; - timestamp_gt?: InputMaybe; - timestamp_gte?: InputMaybe; - timestamp_in?: InputMaybe>; - timestamp_lt?: InputMaybe; - timestamp_lte?: InputMaybe; - timestamp_not?: InputMaybe; - timestamp_not_in?: InputMaybe>; + repayAmount?: InputMaybe; + repayAmount_gt?: InputMaybe; + repayAmount_gte?: InputMaybe; + repayAmount_in?: InputMaybe>; + repayAmount_lt?: InputMaybe; + repayAmount_lte?: InputMaybe; + repayAmount_not?: InputMaybe; + repayAmount_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; transaction?: InputMaybe; transaction_contains?: InputMaybe; transaction_ends_with?: InputMaybe; @@ -491,16 +491,16 @@ export type CloseWithSwap = { __typename?: 'CloseWithSwap'; closer: Scalars['Bytes']; collateralToken: Scalars['Bytes']; - currentLeverage: Scalars['BigInt']; + currentLeverage: Scalars['BigDecimal']; emittedBy: Scalars['Bytes']; - exitPrice: Scalars['BigInt']; + exitPrice: Scalars['BigDecimal']; id: Scalars['ID']; lender: Scalars['Bytes']; - loanCloseAmount: Scalars['BigInt']; + loanCloseAmount: Scalars['BigDecimal']; loanId: Loan; loanToken: Scalars['Bytes']; - positionCloseSize: Scalars['BigInt']; - timestamp: Scalars['BigInt']; + positionCloseSize: Scalars['BigDecimal']; + timestamp: Scalars['Int']; transaction: Transaction; user: Scalars['Bytes']; }; @@ -518,28 +518,28 @@ export type CloseWithSwap_Filter = { collateralToken_not?: InputMaybe; collateralToken_not_contains?: InputMaybe; collateralToken_not_in?: InputMaybe>; - currentLeverage?: InputMaybe; - currentLeverage_gt?: InputMaybe; - currentLeverage_gte?: InputMaybe; - currentLeverage_in?: InputMaybe>; - currentLeverage_lt?: InputMaybe; - currentLeverage_lte?: InputMaybe; - currentLeverage_not?: InputMaybe; - currentLeverage_not_in?: InputMaybe>; + currentLeverage?: InputMaybe; + currentLeverage_gt?: InputMaybe; + currentLeverage_gte?: InputMaybe; + currentLeverage_in?: InputMaybe>; + currentLeverage_lt?: InputMaybe; + currentLeverage_lte?: InputMaybe; + currentLeverage_not?: InputMaybe; + currentLeverage_not_in?: InputMaybe>; emittedBy?: InputMaybe; emittedBy_contains?: InputMaybe; emittedBy_in?: InputMaybe>; emittedBy_not?: InputMaybe; emittedBy_not_contains?: InputMaybe; emittedBy_not_in?: InputMaybe>; - exitPrice?: InputMaybe; - exitPrice_gt?: InputMaybe; - exitPrice_gte?: InputMaybe; - exitPrice_in?: InputMaybe>; - exitPrice_lt?: InputMaybe; - exitPrice_lte?: InputMaybe; - exitPrice_not?: InputMaybe; - exitPrice_not_in?: InputMaybe>; + exitPrice?: InputMaybe; + exitPrice_gt?: InputMaybe; + exitPrice_gte?: InputMaybe; + exitPrice_in?: InputMaybe>; + exitPrice_lt?: InputMaybe; + exitPrice_lte?: InputMaybe; + exitPrice_not?: InputMaybe; + exitPrice_not_in?: InputMaybe>; id?: InputMaybe; id_gt?: InputMaybe; id_gte?: InputMaybe; @@ -554,14 +554,14 @@ export type CloseWithSwap_Filter = { lender_not?: InputMaybe; lender_not_contains?: InputMaybe; lender_not_in?: InputMaybe>; - loanCloseAmount?: InputMaybe; - loanCloseAmount_gt?: InputMaybe; - loanCloseAmount_gte?: InputMaybe; - loanCloseAmount_in?: InputMaybe>; - loanCloseAmount_lt?: InputMaybe; - loanCloseAmount_lte?: InputMaybe; - loanCloseAmount_not?: InputMaybe; - loanCloseAmount_not_in?: InputMaybe>; + loanCloseAmount?: InputMaybe; + loanCloseAmount_gt?: InputMaybe; + loanCloseAmount_gte?: InputMaybe; + loanCloseAmount_in?: InputMaybe>; + loanCloseAmount_lt?: InputMaybe; + loanCloseAmount_lte?: InputMaybe; + loanCloseAmount_not?: InputMaybe; + loanCloseAmount_not_in?: InputMaybe>; loanId?: InputMaybe; loanId_contains?: InputMaybe; loanId_ends_with?: InputMaybe; @@ -582,22 +582,22 @@ export type CloseWithSwap_Filter = { loanToken_not?: InputMaybe; loanToken_not_contains?: InputMaybe; loanToken_not_in?: InputMaybe>; - positionCloseSize?: InputMaybe; - positionCloseSize_gt?: InputMaybe; - positionCloseSize_gte?: InputMaybe; - positionCloseSize_in?: InputMaybe>; - positionCloseSize_lt?: InputMaybe; - positionCloseSize_lte?: InputMaybe; - positionCloseSize_not?: InputMaybe; - positionCloseSize_not_in?: InputMaybe>; - timestamp?: InputMaybe; - timestamp_gt?: InputMaybe; - timestamp_gte?: InputMaybe; - timestamp_in?: InputMaybe>; - timestamp_lt?: InputMaybe; - timestamp_lte?: InputMaybe; - timestamp_not?: InputMaybe; - timestamp_not_in?: InputMaybe>; + positionCloseSize?: InputMaybe; + positionCloseSize_gt?: InputMaybe; + positionCloseSize_gte?: InputMaybe; + positionCloseSize_in?: InputMaybe>; + positionCloseSize_lt?: InputMaybe; + positionCloseSize_lte?: InputMaybe; + positionCloseSize_not?: InputMaybe; + positionCloseSize_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; transaction?: InputMaybe; transaction_contains?: InputMaybe; transaction_ends_with?: InputMaybe; @@ -640,37 +640,38 @@ export enum CloseWithSwap_OrderBy { /** Autogenerated for debugging - to be eventually deleted. Although this is pretty useful, maybe keep */ export type Conversion = { __typename?: 'Conversion'; - _amount: Scalars['BigInt']; - _conversionFee: Scalars['BigInt']; + _amount: Scalars['BigDecimal']; + _conversionFee: Scalars['BigDecimal']; _fromToken: Token; - _protocolFee: Scalars['BigInt']; - _return: Scalars['BigInt']; + _protocolFee: Scalars['BigDecimal']; + _return: Scalars['BigDecimal']; _toToken: Token; _trader: Scalars['Bytes']; - emittedBy: Scalars['Bytes']; + blockNumber: Scalars['Int']; + emittedBy: LiquidityPool; id: Scalars['ID']; swapTransaction: Swap; - timestamp: Scalars['BigInt']; + timestamp: Scalars['Int']; transaction: Transaction; }; export type Conversion_Filter = { - _amount?: InputMaybe; - _amount_gt?: InputMaybe; - _amount_gte?: InputMaybe; - _amount_in?: InputMaybe>; - _amount_lt?: InputMaybe; - _amount_lte?: InputMaybe; - _amount_not?: InputMaybe; - _amount_not_in?: InputMaybe>; - _conversionFee?: InputMaybe; - _conversionFee_gt?: InputMaybe; - _conversionFee_gte?: InputMaybe; - _conversionFee_in?: InputMaybe>; - _conversionFee_lt?: InputMaybe; - _conversionFee_lte?: InputMaybe; - _conversionFee_not?: InputMaybe; - _conversionFee_not_in?: InputMaybe>; + _amount?: InputMaybe; + _amount_gt?: InputMaybe; + _amount_gte?: InputMaybe; + _amount_in?: InputMaybe>; + _amount_lt?: InputMaybe; + _amount_lte?: InputMaybe; + _amount_not?: InputMaybe; + _amount_not_in?: InputMaybe>; + _conversionFee?: InputMaybe; + _conversionFee_gt?: InputMaybe; + _conversionFee_gte?: InputMaybe; + _conversionFee_in?: InputMaybe>; + _conversionFee_lt?: InputMaybe; + _conversionFee_lte?: InputMaybe; + _conversionFee_not?: InputMaybe; + _conversionFee_not_in?: InputMaybe>; _fromToken?: InputMaybe; _fromToken_contains?: InputMaybe; _fromToken_ends_with?: InputMaybe; @@ -685,22 +686,22 @@ export type Conversion_Filter = { _fromToken_not_in?: InputMaybe>; _fromToken_not_starts_with?: InputMaybe; _fromToken_starts_with?: InputMaybe; - _protocolFee?: InputMaybe; - _protocolFee_gt?: InputMaybe; - _protocolFee_gte?: InputMaybe; - _protocolFee_in?: InputMaybe>; - _protocolFee_lt?: InputMaybe; - _protocolFee_lte?: InputMaybe; - _protocolFee_not?: InputMaybe; - _protocolFee_not_in?: InputMaybe>; - _return?: InputMaybe; - _return_gt?: InputMaybe; - _return_gte?: InputMaybe; - _return_in?: InputMaybe>; - _return_lt?: InputMaybe; - _return_lte?: InputMaybe; - _return_not?: InputMaybe; - _return_not_in?: InputMaybe>; + _protocolFee?: InputMaybe; + _protocolFee_gt?: InputMaybe; + _protocolFee_gte?: InputMaybe; + _protocolFee_in?: InputMaybe>; + _protocolFee_lt?: InputMaybe; + _protocolFee_lte?: InputMaybe; + _protocolFee_not?: InputMaybe; + _protocolFee_not_in?: InputMaybe>; + _return?: InputMaybe; + _return_gt?: InputMaybe; + _return_gte?: InputMaybe; + _return_in?: InputMaybe>; + _return_lt?: InputMaybe; + _return_lte?: InputMaybe; + _return_not?: InputMaybe; + _return_not_in?: InputMaybe>; _toToken?: InputMaybe; _toToken_contains?: InputMaybe; _toToken_ends_with?: InputMaybe; @@ -721,12 +722,28 @@ export type Conversion_Filter = { _trader_not?: InputMaybe; _trader_not_contains?: InputMaybe; _trader_not_in?: InputMaybe>; - emittedBy?: InputMaybe; - emittedBy_contains?: InputMaybe; - emittedBy_in?: InputMaybe>; - emittedBy_not?: InputMaybe; - emittedBy_not_contains?: InputMaybe; - emittedBy_not_in?: InputMaybe>; + blockNumber?: InputMaybe; + blockNumber_gt?: InputMaybe; + blockNumber_gte?: InputMaybe; + blockNumber_in?: InputMaybe>; + blockNumber_lt?: InputMaybe; + blockNumber_lte?: InputMaybe; + blockNumber_not?: InputMaybe; + blockNumber_not_in?: InputMaybe>; + emittedBy?: InputMaybe; + emittedBy_contains?: InputMaybe; + emittedBy_ends_with?: InputMaybe; + emittedBy_gt?: InputMaybe; + emittedBy_gte?: InputMaybe; + emittedBy_in?: InputMaybe>; + emittedBy_lt?: InputMaybe; + emittedBy_lte?: InputMaybe; + emittedBy_not?: InputMaybe; + emittedBy_not_contains?: InputMaybe; + emittedBy_not_ends_with?: InputMaybe; + emittedBy_not_in?: InputMaybe>; + emittedBy_not_starts_with?: InputMaybe; + emittedBy_starts_with?: InputMaybe; id?: InputMaybe; id_gt?: InputMaybe; id_gte?: InputMaybe; @@ -749,14 +766,14 @@ export type Conversion_Filter = { swapTransaction_not_in?: InputMaybe>; swapTransaction_not_starts_with?: InputMaybe; swapTransaction_starts_with?: InputMaybe; - timestamp?: InputMaybe; - timestamp_gt?: InputMaybe; - timestamp_gte?: InputMaybe; - timestamp_in?: InputMaybe>; - timestamp_lt?: InputMaybe; - timestamp_lte?: InputMaybe; - timestamp_not?: InputMaybe; - timestamp_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; transaction?: InputMaybe; transaction_contains?: InputMaybe; transaction_ends_with?: InputMaybe; @@ -781,6 +798,7 @@ export enum Conversion_OrderBy { Return = '_return', ToToken = '_toToken', Trader = '_trader', + BlockNumber = 'blockNumber', EmittedBy = 'emittedBy', Id = 'id', SwapTransaction = 'swapTransaction', @@ -791,18 +809,18 @@ export enum Conversion_OrderBy { /** The ConverterRegistry registers each new AMM pool added to the Sovryn Protocol */ export type ConverterRegistry = { __typename?: 'ConverterRegistry'; - addedToContractRegistryAtBlockNumber?: Maybe; - addedToContractRegistryAtBlockTimestamp?: Maybe; + addedToContractRegistryAtBlockNumber?: Maybe; + addedToContractRegistryAtBlockTimestamp?: Maybe; addedToContractRegistryAtTransactionHash?: Maybe; connectorTokens?: Maybe>; /** All the converters (AMM pools) associated with this registry */ converters?: Maybe>; /** ID is the address of the converter registry contract */ id: Scalars['ID']; - lastUsedAtBlockNumber?: Maybe; - lastUsedAtBlockTimestamp?: Maybe; + lastUsedAtBlockNumber?: Maybe; + lastUsedAtBlockTimestamp?: Maybe; lastUsedAtTransactionHash?: Maybe; - numConverters: Scalars['BigInt']; + numConverters: Scalars['Int']; owner: Scalars['Bytes']; smartTokens?: Maybe>; }; @@ -835,29 +853,27 @@ export type ConverterRegistrySmartTokensArgs = { }; export type ConverterRegistry_Filter = { - addedToContractRegistryAtBlockNumber?: InputMaybe; - addedToContractRegistryAtBlockNumber_gt?: InputMaybe; - addedToContractRegistryAtBlockNumber_gte?: InputMaybe; - addedToContractRegistryAtBlockNumber_in?: InputMaybe< - Array - >; - addedToContractRegistryAtBlockNumber_lt?: InputMaybe; - addedToContractRegistryAtBlockNumber_lte?: InputMaybe; - addedToContractRegistryAtBlockNumber_not?: InputMaybe; + addedToContractRegistryAtBlockNumber?: InputMaybe; + addedToContractRegistryAtBlockNumber_gt?: InputMaybe; + addedToContractRegistryAtBlockNumber_gte?: InputMaybe; + addedToContractRegistryAtBlockNumber_in?: InputMaybe>; + addedToContractRegistryAtBlockNumber_lt?: InputMaybe; + addedToContractRegistryAtBlockNumber_lte?: InputMaybe; + addedToContractRegistryAtBlockNumber_not?: InputMaybe; addedToContractRegistryAtBlockNumber_not_in?: InputMaybe< - Array + Array >; - addedToContractRegistryAtBlockTimestamp?: InputMaybe; - addedToContractRegistryAtBlockTimestamp_gt?: InputMaybe; - addedToContractRegistryAtBlockTimestamp_gte?: InputMaybe; + addedToContractRegistryAtBlockTimestamp?: InputMaybe; + addedToContractRegistryAtBlockTimestamp_gt?: InputMaybe; + addedToContractRegistryAtBlockTimestamp_gte?: InputMaybe; addedToContractRegistryAtBlockTimestamp_in?: InputMaybe< - Array + Array >; - addedToContractRegistryAtBlockTimestamp_lt?: InputMaybe; - addedToContractRegistryAtBlockTimestamp_lte?: InputMaybe; - addedToContractRegistryAtBlockTimestamp_not?: InputMaybe; + addedToContractRegistryAtBlockTimestamp_lt?: InputMaybe; + addedToContractRegistryAtBlockTimestamp_lte?: InputMaybe; + addedToContractRegistryAtBlockTimestamp_not?: InputMaybe; addedToContractRegistryAtBlockTimestamp_not_in?: InputMaybe< - Array + Array >; addedToContractRegistryAtTransactionHash?: InputMaybe; addedToContractRegistryAtTransactionHash_contains?: InputMaybe< @@ -897,22 +913,22 @@ export type ConverterRegistry_Filter = { id_lte?: InputMaybe; id_not?: InputMaybe; id_not_in?: InputMaybe>; - lastUsedAtBlockNumber?: InputMaybe; - lastUsedAtBlockNumber_gt?: InputMaybe; - lastUsedAtBlockNumber_gte?: InputMaybe; - lastUsedAtBlockNumber_in?: InputMaybe>; - lastUsedAtBlockNumber_lt?: InputMaybe; - lastUsedAtBlockNumber_lte?: InputMaybe; - lastUsedAtBlockNumber_not?: InputMaybe; - lastUsedAtBlockNumber_not_in?: InputMaybe>; - lastUsedAtBlockTimestamp?: InputMaybe; - lastUsedAtBlockTimestamp_gt?: InputMaybe; - lastUsedAtBlockTimestamp_gte?: InputMaybe; - lastUsedAtBlockTimestamp_in?: InputMaybe>; - lastUsedAtBlockTimestamp_lt?: InputMaybe; - lastUsedAtBlockTimestamp_lte?: InputMaybe; - lastUsedAtBlockTimestamp_not?: InputMaybe; - lastUsedAtBlockTimestamp_not_in?: InputMaybe>; + lastUsedAtBlockNumber?: InputMaybe; + lastUsedAtBlockNumber_gt?: InputMaybe; + lastUsedAtBlockNumber_gte?: InputMaybe; + lastUsedAtBlockNumber_in?: InputMaybe>; + lastUsedAtBlockNumber_lt?: InputMaybe; + lastUsedAtBlockNumber_lte?: InputMaybe; + lastUsedAtBlockNumber_not?: InputMaybe; + lastUsedAtBlockNumber_not_in?: InputMaybe>; + lastUsedAtBlockTimestamp?: InputMaybe; + lastUsedAtBlockTimestamp_gt?: InputMaybe; + lastUsedAtBlockTimestamp_gte?: InputMaybe; + lastUsedAtBlockTimestamp_in?: InputMaybe>; + lastUsedAtBlockTimestamp_lt?: InputMaybe; + lastUsedAtBlockTimestamp_lte?: InputMaybe; + lastUsedAtBlockTimestamp_not?: InputMaybe; + lastUsedAtBlockTimestamp_not_in?: InputMaybe>; lastUsedAtTransactionHash?: InputMaybe; lastUsedAtTransactionHash_contains?: InputMaybe; lastUsedAtTransactionHash_ends_with?: InputMaybe; @@ -927,14 +943,14 @@ export type ConverterRegistry_Filter = { lastUsedAtTransactionHash_not_in?: InputMaybe>; lastUsedAtTransactionHash_not_starts_with?: InputMaybe; lastUsedAtTransactionHash_starts_with?: InputMaybe; - numConverters?: InputMaybe; - numConverters_gt?: InputMaybe; - numConverters_gte?: InputMaybe; - numConverters_in?: InputMaybe>; - numConverters_lt?: InputMaybe; - numConverters_lte?: InputMaybe; - numConverters_not?: InputMaybe; - numConverters_not_in?: InputMaybe>; + numConverters?: InputMaybe; + numConverters_gt?: InputMaybe; + numConverters_gte?: InputMaybe; + numConverters_in?: InputMaybe>; + numConverters_lt?: InputMaybe; + numConverters_lte?: InputMaybe; + numConverters_not?: InputMaybe; + numConverters_not_in?: InputMaybe>; owner?: InputMaybe; owner_contains?: InputMaybe; owner_in?: InputMaybe>; @@ -958,27 +974,37 @@ export enum ConverterRegistry_OrderBy { SmartTokens = 'smartTokens', } +export type Deposit = { + __typename?: 'Deposit'; + amount: Scalars['BigDecimal']; + emittedBy: Scalars['Bytes']; + id: Scalars['ID']; + timestamp: Scalars['Int']; + to: Scalars['Bytes']; + transaction: Transaction; +}; + /** Granular event data for the Loan entity. Emitted when a user closes adds collateral to a Margin Trade or Borrow */ export type DepositCollateral = { __typename?: 'DepositCollateral'; - depositAmount: Scalars['BigInt']; + depositAmount: Scalars['BigDecimal']; emittedBy: Scalars['Bytes']; id: Scalars['ID']; loanId: Loan; - rate?: Maybe; - timestamp: Scalars['BigInt']; + rate?: Maybe; + timestamp: Scalars['Int']; transaction: Transaction; }; export type DepositCollateral_Filter = { - depositAmount?: InputMaybe; - depositAmount_gt?: InputMaybe; - depositAmount_gte?: InputMaybe; - depositAmount_in?: InputMaybe>; - depositAmount_lt?: InputMaybe; - depositAmount_lte?: InputMaybe; - depositAmount_not?: InputMaybe; - depositAmount_not_in?: InputMaybe>; + depositAmount?: InputMaybe; + depositAmount_gt?: InputMaybe; + depositAmount_gte?: InputMaybe; + depositAmount_in?: InputMaybe>; + depositAmount_lt?: InputMaybe; + depositAmount_lte?: InputMaybe; + depositAmount_not?: InputMaybe; + depositAmount_not_in?: InputMaybe>; emittedBy?: InputMaybe; emittedBy_contains?: InputMaybe; emittedBy_in?: InputMaybe>; @@ -1007,22 +1033,22 @@ export type DepositCollateral_Filter = { loanId_not_in?: InputMaybe>; loanId_not_starts_with?: InputMaybe; loanId_starts_with?: InputMaybe; - rate?: InputMaybe; - rate_gt?: InputMaybe; - rate_gte?: InputMaybe; - rate_in?: InputMaybe>; - rate_lt?: InputMaybe; - rate_lte?: InputMaybe; - rate_not?: InputMaybe; - rate_not_in?: InputMaybe>; - timestamp?: InputMaybe; - timestamp_gt?: InputMaybe; - timestamp_gte?: InputMaybe; - timestamp_in?: InputMaybe>; - timestamp_lt?: InputMaybe; - timestamp_lte?: InputMaybe; - timestamp_not?: InputMaybe; - timestamp_not_in?: InputMaybe>; + rate?: InputMaybe; + rate_gt?: InputMaybe; + rate_gte?: InputMaybe; + rate_in?: InputMaybe>; + rate_lt?: InputMaybe; + rate_lte?: InputMaybe; + rate_not?: InputMaybe; + rate_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; transaction?: InputMaybe; transaction_contains?: InputMaybe; transaction_ends_with?: InputMaybe; @@ -1049,23 +1075,85 @@ export enum DepositCollateral_OrderBy { Transaction = 'transaction', } +export type Deposit_Filter = { + amount?: InputMaybe; + amount_gt?: InputMaybe; + amount_gte?: InputMaybe; + amount_in?: InputMaybe>; + amount_lt?: InputMaybe; + amount_lte?: InputMaybe; + amount_not?: InputMaybe; + amount_not_in?: InputMaybe>; + emittedBy?: InputMaybe; + emittedBy_contains?: InputMaybe; + emittedBy_in?: InputMaybe>; + emittedBy_not?: InputMaybe; + emittedBy_not_contains?: InputMaybe; + emittedBy_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; + to?: InputMaybe; + to_contains?: InputMaybe; + to_in?: InputMaybe>; + to_not?: InputMaybe; + to_not_contains?: InputMaybe; + to_not_in?: InputMaybe>; + transaction?: InputMaybe; + transaction_contains?: InputMaybe; + transaction_ends_with?: InputMaybe; + transaction_gt?: InputMaybe; + transaction_gte?: InputMaybe; + transaction_in?: InputMaybe>; + transaction_lt?: InputMaybe; + transaction_lte?: InputMaybe; + transaction_not?: InputMaybe; + transaction_not_contains?: InputMaybe; + transaction_not_ends_with?: InputMaybe; + transaction_not_in?: InputMaybe>; + transaction_not_starts_with?: InputMaybe; + transaction_starts_with?: InputMaybe; +}; + +export enum Deposit_OrderBy { + Amount = 'amount', + EmittedBy = 'emittedBy', + Id = 'id', + Timestamp = 'timestamp', + To = 'to', + Transaction = 'transaction', +} + export type FeeSharingTokensTransferred = { __typename?: 'FeeSharingTokensTransferred'; - amount: Scalars['BigInt']; + amount: Scalars['BigDecimal']; id: Scalars['ID']; sender: Scalars['Bytes']; token: Scalars['Bytes']; }; export type FeeSharingTokensTransferred_Filter = { - amount?: InputMaybe; - amount_gt?: InputMaybe; - amount_gte?: InputMaybe; - amount_in?: InputMaybe>; - amount_lt?: InputMaybe; - amount_lte?: InputMaybe; - amount_not?: InputMaybe; - amount_not_in?: InputMaybe>; + amount?: InputMaybe; + amount_gt?: InputMaybe; + amount_gte?: InputMaybe; + amount_in?: InputMaybe>; + amount_lt?: InputMaybe; + amount_lte?: InputMaybe; + amount_not?: InputMaybe; + amount_not_in?: InputMaybe>; id?: InputMaybe; id_gt?: InputMaybe; id_gte?: InputMaybe; @@ -1097,28 +1185,28 @@ export enum FeeSharingTokensTransferred_OrderBy { export type LendingHistoryItem = { __typename?: 'LendingHistoryItem'; - amount: Scalars['BigInt']; + amount: Scalars['BigDecimal']; /** The underlying asset for this pool (eg USDT for the iUSDT pool) */ asset?: Maybe; emittedBy: Scalars['String']; id: Scalars['ID']; lender: User; lendingPool: LendingPool; - loanTokenAmount: Scalars['BigInt']; + loanTokenAmount: Scalars['BigDecimal']; transaction: Transaction; type: LendingHistoryType; userLendingHistory: UserLendingHistory; }; export type LendingHistoryItem_Filter = { - amount?: InputMaybe; - amount_gt?: InputMaybe; - amount_gte?: InputMaybe; - amount_in?: InputMaybe>; - amount_lt?: InputMaybe; - amount_lte?: InputMaybe; - amount_not?: InputMaybe; - amount_not_in?: InputMaybe>; + amount?: InputMaybe; + amount_gt?: InputMaybe; + amount_gte?: InputMaybe; + amount_in?: InputMaybe>; + amount_lt?: InputMaybe; + amount_lte?: InputMaybe; + amount_not?: InputMaybe; + amount_not_in?: InputMaybe>; asset?: InputMaybe; asset_contains?: InputMaybe; asset_ends_with?: InputMaybe; @@ -1183,14 +1271,14 @@ export type LendingHistoryItem_Filter = { lendingPool_not_in?: InputMaybe>; lendingPool_not_starts_with?: InputMaybe; lendingPool_starts_with?: InputMaybe; - loanTokenAmount?: InputMaybe; - loanTokenAmount_gt?: InputMaybe; - loanTokenAmount_gte?: InputMaybe; - loanTokenAmount_in?: InputMaybe>; - loanTokenAmount_lt?: InputMaybe; - loanTokenAmount_lte?: InputMaybe; - loanTokenAmount_not?: InputMaybe; - loanTokenAmount_not_in?: InputMaybe>; + loanTokenAmount?: InputMaybe; + loanTokenAmount_gt?: InputMaybe; + loanTokenAmount_gte?: InputMaybe; + loanTokenAmount_in?: InputMaybe>; + loanTokenAmount_lt?: InputMaybe; + loanTokenAmount_lte?: InputMaybe; + loanTokenAmount_not?: InputMaybe; + loanTokenAmount_not_in?: InputMaybe>; transaction?: InputMaybe; transaction_contains?: InputMaybe; transaction_ends_with?: InputMaybe; @@ -1243,31 +1331,28 @@ export enum LendingHistoryType { UnLend = 'UnLend', } -/** - * A Lending Pool (iToken), where Users can lend assets to earn interest, and Users - * can borrow assets to Margin Trade or just as a regular loan. - */ +/** A Lending Pool (iToken), where Users can lend assets to earn interest, and Users can borrow assets to Margin Trade or just as a regular loan. */ export type LendingPool = { __typename?: 'LendingPool'; - assetBalance: Scalars['BigInt']; + assetBalance: Scalars['BigDecimal']; /** ID is the contract address of the iToken */ id: Scalars['ID']; - poolTokenBalance: Scalars['BigInt']; + poolTokenBalance: Scalars['BigDecimal']; /** Total asset volume lent over all time */ - totalAssetLent: Scalars['BigInt']; + totalAssetLent: Scalars['BigDecimal']; /** The actual asset being lent and borrowed in this pool */ underlyingAsset: Token; }; export type LendingPool_Filter = { - assetBalance?: InputMaybe; - assetBalance_gt?: InputMaybe; - assetBalance_gte?: InputMaybe; - assetBalance_in?: InputMaybe>; - assetBalance_lt?: InputMaybe; - assetBalance_lte?: InputMaybe; - assetBalance_not?: InputMaybe; - assetBalance_not_in?: InputMaybe>; + assetBalance?: InputMaybe; + assetBalance_gt?: InputMaybe; + assetBalance_gte?: InputMaybe; + assetBalance_in?: InputMaybe>; + assetBalance_lt?: InputMaybe; + assetBalance_lte?: InputMaybe; + assetBalance_not?: InputMaybe; + assetBalance_not_in?: InputMaybe>; id?: InputMaybe; id_gt?: InputMaybe; id_gte?: InputMaybe; @@ -1276,22 +1361,22 @@ export type LendingPool_Filter = { id_lte?: InputMaybe; id_not?: InputMaybe; id_not_in?: InputMaybe>; - poolTokenBalance?: InputMaybe; - poolTokenBalance_gt?: InputMaybe; - poolTokenBalance_gte?: InputMaybe; - poolTokenBalance_in?: InputMaybe>; - poolTokenBalance_lt?: InputMaybe; - poolTokenBalance_lte?: InputMaybe; - poolTokenBalance_not?: InputMaybe; - poolTokenBalance_not_in?: InputMaybe>; - totalAssetLent?: InputMaybe; - totalAssetLent_gt?: InputMaybe; - totalAssetLent_gte?: InputMaybe; - totalAssetLent_in?: InputMaybe>; - totalAssetLent_lt?: InputMaybe; - totalAssetLent_lte?: InputMaybe; - totalAssetLent_not?: InputMaybe; - totalAssetLent_not_in?: InputMaybe>; + poolTokenBalance?: InputMaybe; + poolTokenBalance_gt?: InputMaybe; + poolTokenBalance_gte?: InputMaybe; + poolTokenBalance_in?: InputMaybe>; + poolTokenBalance_lt?: InputMaybe; + poolTokenBalance_lte?: InputMaybe; + poolTokenBalance_not?: InputMaybe; + poolTokenBalance_not_in?: InputMaybe>; + totalAssetLent?: InputMaybe; + totalAssetLent_gt?: InputMaybe; + totalAssetLent_gte?: InputMaybe; + totalAssetLent_in?: InputMaybe>; + totalAssetLent_lt?: InputMaybe; + totalAssetLent_lte?: InputMaybe; + totalAssetLent_not?: InputMaybe; + totalAssetLent_not_in?: InputMaybe>; underlyingAsset?: InputMaybe; underlyingAsset_contains?: InputMaybe; underlyingAsset_ends_with?: InputMaybe; @@ -1319,53 +1404,53 @@ export enum LendingPool_OrderBy { /** Granular event data for the Loan entity. Emitted when a loan is fully or partially liquidated */ export type Liquidate = { __typename?: 'Liquidate'; - collateralToLoanRate: Scalars['BigInt']; + collateralToLoanRate: Scalars['BigDecimal']; collateralToken: Scalars['Bytes']; - collateralWithdrawAmount: Scalars['BigInt']; - currentMargin: Scalars['BigInt']; + collateralWithdrawAmount: Scalars['BigDecimal']; + currentMargin: Scalars['BigDecimal']; emittedBy: Scalars['Bytes']; id: Scalars['ID']; lender: Scalars['Bytes']; liquidator: Scalars['Bytes']; loanId: Loan; loanToken: Scalars['Bytes']; - repayAmount: Scalars['BigInt']; - timestamp: Scalars['BigInt']; + repayAmount: Scalars['BigDecimal']; + timestamp: Scalars['Int']; transaction: Transaction; user: User; }; export type Liquidate_Filter = { - collateralToLoanRate?: InputMaybe; - collateralToLoanRate_gt?: InputMaybe; - collateralToLoanRate_gte?: InputMaybe; - collateralToLoanRate_in?: InputMaybe>; - collateralToLoanRate_lt?: InputMaybe; - collateralToLoanRate_lte?: InputMaybe; - collateralToLoanRate_not?: InputMaybe; - collateralToLoanRate_not_in?: InputMaybe>; + collateralToLoanRate?: InputMaybe; + collateralToLoanRate_gt?: InputMaybe; + collateralToLoanRate_gte?: InputMaybe; + collateralToLoanRate_in?: InputMaybe>; + collateralToLoanRate_lt?: InputMaybe; + collateralToLoanRate_lte?: InputMaybe; + collateralToLoanRate_not?: InputMaybe; + collateralToLoanRate_not_in?: InputMaybe>; collateralToken?: InputMaybe; collateralToken_contains?: InputMaybe; collateralToken_in?: InputMaybe>; collateralToken_not?: InputMaybe; collateralToken_not_contains?: InputMaybe; collateralToken_not_in?: InputMaybe>; - collateralWithdrawAmount?: InputMaybe; - collateralWithdrawAmount_gt?: InputMaybe; - collateralWithdrawAmount_gte?: InputMaybe; - collateralWithdrawAmount_in?: InputMaybe>; - collateralWithdrawAmount_lt?: InputMaybe; - collateralWithdrawAmount_lte?: InputMaybe; - collateralWithdrawAmount_not?: InputMaybe; - collateralWithdrawAmount_not_in?: InputMaybe>; - currentMargin?: InputMaybe; - currentMargin_gt?: InputMaybe; - currentMargin_gte?: InputMaybe; - currentMargin_in?: InputMaybe>; - currentMargin_lt?: InputMaybe; - currentMargin_lte?: InputMaybe; - currentMargin_not?: InputMaybe; - currentMargin_not_in?: InputMaybe>; + collateralWithdrawAmount?: InputMaybe; + collateralWithdrawAmount_gt?: InputMaybe; + collateralWithdrawAmount_gte?: InputMaybe; + collateralWithdrawAmount_in?: InputMaybe>; + collateralWithdrawAmount_lt?: InputMaybe; + collateralWithdrawAmount_lte?: InputMaybe; + collateralWithdrawAmount_not?: InputMaybe; + collateralWithdrawAmount_not_in?: InputMaybe>; + currentMargin?: InputMaybe; + currentMargin_gt?: InputMaybe; + currentMargin_gte?: InputMaybe; + currentMargin_in?: InputMaybe>; + currentMargin_lt?: InputMaybe; + currentMargin_lte?: InputMaybe; + currentMargin_not?: InputMaybe; + currentMargin_not_in?: InputMaybe>; emittedBy?: InputMaybe; emittedBy_contains?: InputMaybe; emittedBy_in?: InputMaybe>; @@ -1412,22 +1497,22 @@ export type Liquidate_Filter = { loanToken_not?: InputMaybe; loanToken_not_contains?: InputMaybe; loanToken_not_in?: InputMaybe>; - repayAmount?: InputMaybe; - repayAmount_gt?: InputMaybe; - repayAmount_gte?: InputMaybe; - repayAmount_in?: InputMaybe>; - repayAmount_lt?: InputMaybe; - repayAmount_lte?: InputMaybe; - repayAmount_not?: InputMaybe; - repayAmount_not_in?: InputMaybe>; - timestamp?: InputMaybe; - timestamp_gt?: InputMaybe; - timestamp_gte?: InputMaybe; - timestamp_in?: InputMaybe>; - timestamp_lt?: InputMaybe; - timestamp_lte?: InputMaybe; - timestamp_not?: InputMaybe; - timestamp_not_in?: InputMaybe>; + repayAmount?: InputMaybe; + repayAmount_gt?: InputMaybe; + repayAmount_gte?: InputMaybe; + repayAmount_in?: InputMaybe>; + repayAmount_lt?: InputMaybe; + repayAmount_lte?: InputMaybe; + repayAmount_not?: InputMaybe; + repayAmount_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; transaction?: InputMaybe; transaction_contains?: InputMaybe; transaction_ends_with?: InputMaybe; @@ -1477,16 +1562,16 @@ export enum Liquidate_OrderBy { export type LiquidityHistoryItem = { __typename?: 'LiquidityHistoryItem'; - amount: Scalars['BigInt']; + amount: Scalars['BigDecimal']; emittedBy: Scalars['String']; /** ID is transaction hash + log index */ id: Scalars['ID']; liquidityPool: LiquidityPool; - newBalance: Scalars['BigInt']; - newSupply: Scalars['BigInt']; + newBalance: Scalars['BigDecimal']; + newSupply: Scalars['BigDecimal']; provider: Scalars['String']; reserveToken: Token; - timestamp: Scalars['BigInt']; + timestamp: Scalars['Int']; transaction: Transaction; type: LiquidityHistoryType; user: User; @@ -1494,14 +1579,14 @@ export type LiquidityHistoryItem = { }; export type LiquidityHistoryItem_Filter = { - amount?: InputMaybe; - amount_gt?: InputMaybe; - amount_gte?: InputMaybe; - amount_in?: InputMaybe>; - amount_lt?: InputMaybe; - amount_lte?: InputMaybe; - amount_not?: InputMaybe; - amount_not_in?: InputMaybe>; + amount?: InputMaybe; + amount_gt?: InputMaybe; + amount_gte?: InputMaybe; + amount_in?: InputMaybe>; + amount_lt?: InputMaybe; + amount_lte?: InputMaybe; + amount_not?: InputMaybe; + amount_not_in?: InputMaybe>; emittedBy?: InputMaybe; emittedBy_contains?: InputMaybe; emittedBy_ends_with?: InputMaybe; @@ -1538,22 +1623,22 @@ export type LiquidityHistoryItem_Filter = { liquidityPool_not_in?: InputMaybe>; liquidityPool_not_starts_with?: InputMaybe; liquidityPool_starts_with?: InputMaybe; - newBalance?: InputMaybe; - newBalance_gt?: InputMaybe; - newBalance_gte?: InputMaybe; - newBalance_in?: InputMaybe>; - newBalance_lt?: InputMaybe; - newBalance_lte?: InputMaybe; - newBalance_not?: InputMaybe; - newBalance_not_in?: InputMaybe>; - newSupply?: InputMaybe; - newSupply_gt?: InputMaybe; - newSupply_gte?: InputMaybe; - newSupply_in?: InputMaybe>; - newSupply_lt?: InputMaybe; - newSupply_lte?: InputMaybe; - newSupply_not?: InputMaybe; - newSupply_not_in?: InputMaybe>; + newBalance?: InputMaybe; + newBalance_gt?: InputMaybe; + newBalance_gte?: InputMaybe; + newBalance_in?: InputMaybe>; + newBalance_lt?: InputMaybe; + newBalance_lte?: InputMaybe; + newBalance_not?: InputMaybe; + newBalance_not_in?: InputMaybe>; + newSupply?: InputMaybe; + newSupply_gt?: InputMaybe; + newSupply_gte?: InputMaybe; + newSupply_in?: InputMaybe>; + newSupply_lt?: InputMaybe; + newSupply_lte?: InputMaybe; + newSupply_not?: InputMaybe; + newSupply_not_in?: InputMaybe>; provider?: InputMaybe; provider_contains?: InputMaybe; provider_ends_with?: InputMaybe; @@ -1582,14 +1667,14 @@ export type LiquidityHistoryItem_Filter = { reserveToken_not_in?: InputMaybe>; reserveToken_not_starts_with?: InputMaybe; reserveToken_starts_with?: InputMaybe; - timestamp?: InputMaybe; - timestamp_gt?: InputMaybe; - timestamp_gte?: InputMaybe; - timestamp_in?: InputMaybe>; - timestamp_lt?: InputMaybe; - timestamp_lte?: InputMaybe; - timestamp_not?: InputMaybe; - timestamp_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; transaction?: InputMaybe; transaction_contains?: InputMaybe; transaction_ends_with?: InputMaybe; @@ -1659,35 +1744,192 @@ export enum LiquidityHistoryType { Removed = 'Removed', } +export type LiquidityMiningAllocationPoint = { + __typename?: 'LiquidityMiningAllocationPoint'; + allocationPoint: Scalars['BigInt']; + ammPoolToken?: Maybe; + id: Scalars['ID']; + lendingPoolToken?: Maybe; + poolTokenAddedBlock: Scalars['Int']; + poolTokenAddedTimestamp: Scalars['Int']; + poolTokenUpdatedBlock: Scalars['Int']; + poolTokenUpdatedTImestamp: Scalars['Int']; + /** Calculated as (totalRewardPerBlock * allocationPoint) / totalAllocationPoint */ + rewardPerBlock: Scalars['BigDecimal']; +}; + +export type LiquidityMiningAllocationPoint_Filter = { + allocationPoint?: InputMaybe; + allocationPoint_gt?: InputMaybe; + allocationPoint_gte?: InputMaybe; + allocationPoint_in?: InputMaybe>; + allocationPoint_lt?: InputMaybe; + allocationPoint_lte?: InputMaybe; + allocationPoint_not?: InputMaybe; + allocationPoint_not_in?: InputMaybe>; + ammPoolToken?: InputMaybe; + ammPoolToken_contains?: InputMaybe; + ammPoolToken_ends_with?: InputMaybe; + ammPoolToken_gt?: InputMaybe; + ammPoolToken_gte?: InputMaybe; + ammPoolToken_in?: InputMaybe>; + ammPoolToken_lt?: InputMaybe; + ammPoolToken_lte?: InputMaybe; + ammPoolToken_not?: InputMaybe; + ammPoolToken_not_contains?: InputMaybe; + ammPoolToken_not_ends_with?: InputMaybe; + ammPoolToken_not_in?: InputMaybe>; + ammPoolToken_not_starts_with?: InputMaybe; + ammPoolToken_starts_with?: InputMaybe; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + lendingPoolToken?: InputMaybe; + lendingPoolToken_contains?: InputMaybe; + lendingPoolToken_ends_with?: InputMaybe; + lendingPoolToken_gt?: InputMaybe; + lendingPoolToken_gte?: InputMaybe; + lendingPoolToken_in?: InputMaybe>; + lendingPoolToken_lt?: InputMaybe; + lendingPoolToken_lte?: InputMaybe; + lendingPoolToken_not?: InputMaybe; + lendingPoolToken_not_contains?: InputMaybe; + lendingPoolToken_not_ends_with?: InputMaybe; + lendingPoolToken_not_in?: InputMaybe>; + lendingPoolToken_not_starts_with?: InputMaybe; + lendingPoolToken_starts_with?: InputMaybe; + poolTokenAddedBlock?: InputMaybe; + poolTokenAddedBlock_gt?: InputMaybe; + poolTokenAddedBlock_gte?: InputMaybe; + poolTokenAddedBlock_in?: InputMaybe>; + poolTokenAddedBlock_lt?: InputMaybe; + poolTokenAddedBlock_lte?: InputMaybe; + poolTokenAddedBlock_not?: InputMaybe; + poolTokenAddedBlock_not_in?: InputMaybe>; + poolTokenAddedTimestamp?: InputMaybe; + poolTokenAddedTimestamp_gt?: InputMaybe; + poolTokenAddedTimestamp_gte?: InputMaybe; + poolTokenAddedTimestamp_in?: InputMaybe>; + poolTokenAddedTimestamp_lt?: InputMaybe; + poolTokenAddedTimestamp_lte?: InputMaybe; + poolTokenAddedTimestamp_not?: InputMaybe; + poolTokenAddedTimestamp_not_in?: InputMaybe>; + poolTokenUpdatedBlock?: InputMaybe; + poolTokenUpdatedBlock_gt?: InputMaybe; + poolTokenUpdatedBlock_gte?: InputMaybe; + poolTokenUpdatedBlock_in?: InputMaybe>; + poolTokenUpdatedBlock_lt?: InputMaybe; + poolTokenUpdatedBlock_lte?: InputMaybe; + poolTokenUpdatedBlock_not?: InputMaybe; + poolTokenUpdatedBlock_not_in?: InputMaybe>; + poolTokenUpdatedTImestamp?: InputMaybe; + poolTokenUpdatedTImestamp_gt?: InputMaybe; + poolTokenUpdatedTImestamp_gte?: InputMaybe; + poolTokenUpdatedTImestamp_in?: InputMaybe>; + poolTokenUpdatedTImestamp_lt?: InputMaybe; + poolTokenUpdatedTImestamp_lte?: InputMaybe; + poolTokenUpdatedTImestamp_not?: InputMaybe; + poolTokenUpdatedTImestamp_not_in?: InputMaybe>; + rewardPerBlock?: InputMaybe; + rewardPerBlock_gt?: InputMaybe; + rewardPerBlock_gte?: InputMaybe; + rewardPerBlock_in?: InputMaybe>; + rewardPerBlock_lt?: InputMaybe; + rewardPerBlock_lte?: InputMaybe; + rewardPerBlock_not?: InputMaybe; + rewardPerBlock_not_in?: InputMaybe>; +}; + +export enum LiquidityMiningAllocationPoint_OrderBy { + AllocationPoint = 'allocationPoint', + AmmPoolToken = 'ammPoolToken', + Id = 'id', + LendingPoolToken = 'lendingPoolToken', + PoolTokenAddedBlock = 'poolTokenAddedBlock', + PoolTokenAddedTimestamp = 'poolTokenAddedTimestamp', + PoolTokenUpdatedBlock = 'poolTokenUpdatedBlock', + PoolTokenUpdatedTImestamp = 'poolTokenUpdatedTImestamp', + RewardPerBlock = 'rewardPerBlock', +} + +/** This entity will have only one instance (id: 0), and will hold global variables required for liquidity mining rewards calculations */ +export type LiquidityMiningGlobal = { + __typename?: 'LiquidityMiningGlobal'; + id: Scalars['ID']; + totalAllocationPoint: Scalars['BigInt']; + totalRewardPerBlock: Scalars['BigInt']; +}; + +export type LiquidityMiningGlobal_Filter = { + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + totalAllocationPoint?: InputMaybe; + totalAllocationPoint_gt?: InputMaybe; + totalAllocationPoint_gte?: InputMaybe; + totalAllocationPoint_in?: InputMaybe>; + totalAllocationPoint_lt?: InputMaybe; + totalAllocationPoint_lte?: InputMaybe; + totalAllocationPoint_not?: InputMaybe; + totalAllocationPoint_not_in?: InputMaybe>; + totalRewardPerBlock?: InputMaybe; + totalRewardPerBlock_gt?: InputMaybe; + totalRewardPerBlock_gte?: InputMaybe; + totalRewardPerBlock_in?: InputMaybe>; + totalRewardPerBlock_lt?: InputMaybe; + totalRewardPerBlock_lte?: InputMaybe; + totalRewardPerBlock_not?: InputMaybe; + totalRewardPerBlock_not_in?: InputMaybe>; +}; + +export enum LiquidityMiningGlobal_OrderBy { + Id = 'id', + TotalAllocationPoint = 'totalAllocationPoint', + TotalRewardPerBlock = 'totalRewardPerBlock', +} + /** AMM Pool (sometimes referred to as a Converter) */ export type LiquidityPool = { __typename?: 'LiquidityPool'; /** Activated with be true when this pool is activated, and will change to false is the pool is deactivated */ activated?: Maybe; connectorTokens: Array; + /** Divide by maxConversionFee to get percentage */ conversionFee?: Maybe; - createdAtBlockNumber?: Maybe; - createdAtTimestamp?: Maybe; + createdAtBlockNumber?: Maybe; + createdAtTimestamp?: Maybe; createdAtTransaction: Transaction; currentConverterRegistry?: Maybe; /** ID is the contract address of the Converter */ id: Scalars['ID']; - lastResetBlockNumber?: Maybe; - lastResetTimestamp?: Maybe; + lastResetBlockNumber?: Maybe; + lastResetTimestamp?: Maybe; maxConversionFee?: Maybe; owner?: Maybe; - poolTokens: Array; + poolTokens?: Maybe>; smartToken?: Maybe; + /** The reserve assets of this AMM Pool. The are stored here like this so that they can be accessed inside mappings when the LiquidityPool is loaded. */ + token0?: Maybe; /** - * The reserve assets of this AMM Pool. The are stored here like this so that - * they can be accessed inside mappings when the LiquidityPool is loaded. + * The balance for each token on this liquidity pool + * NB: For the V2 pools (USDT, DOC, BPRO), this balance is the staked balance, not the contract balance */ - token0?: Maybe; + token0Balance: Scalars['BigDecimal']; token1?: Maybe; + token1Balance: Scalars['BigDecimal']; /** Sovryn uses Bancor V1 and Bancor V2 pools */ type?: Maybe; version?: Maybe; - weight?: Maybe; }; /** AMM Pool (sometimes referred to as a Converter) */ @@ -1702,156 +1944,30 @@ export type LiquidityPoolConnectorTokensArgs = { /** AMM Pool (sometimes referred to as a Converter) */ export type LiquidityPoolPoolTokensArgs = { first?: InputMaybe; - orderBy?: InputMaybe; + orderBy?: InputMaybe; orderDirection?: InputMaybe; skip?: InputMaybe; - where?: InputMaybe; -}; - -/** Autogenerated for debugging - to be eventually deleted */ -export type LiquidityPoolAdded = { - __typename?: 'LiquidityPoolAdded'; - _liquidityPool: Scalars['Bytes']; - emittedBy: Scalars['Bytes']; - id: Scalars['ID']; - timestamp: Scalars['BigInt']; - transaction: Transaction; -}; - -export type LiquidityPoolAdded_Filter = { - _liquidityPool?: InputMaybe; - _liquidityPool_contains?: InputMaybe; - _liquidityPool_in?: InputMaybe>; - _liquidityPool_not?: InputMaybe; - _liquidityPool_not_contains?: InputMaybe; - _liquidityPool_not_in?: InputMaybe>; - emittedBy?: InputMaybe; - emittedBy_contains?: InputMaybe; - emittedBy_in?: InputMaybe>; - emittedBy_not?: InputMaybe; - emittedBy_not_contains?: InputMaybe; - emittedBy_not_in?: InputMaybe>; - id?: InputMaybe; - id_gt?: InputMaybe; - id_gte?: InputMaybe; - id_in?: InputMaybe>; - id_lt?: InputMaybe; - id_lte?: InputMaybe; - id_not?: InputMaybe; - id_not_in?: InputMaybe>; - timestamp?: InputMaybe; - timestamp_gt?: InputMaybe; - timestamp_gte?: InputMaybe; - timestamp_in?: InputMaybe>; - timestamp_lt?: InputMaybe; - timestamp_lte?: InputMaybe; - timestamp_not?: InputMaybe; - timestamp_not_in?: InputMaybe>; - transaction?: InputMaybe; - transaction_contains?: InputMaybe; - transaction_ends_with?: InputMaybe; - transaction_gt?: InputMaybe; - transaction_gte?: InputMaybe; - transaction_in?: InputMaybe>; - transaction_lt?: InputMaybe; - transaction_lte?: InputMaybe; - transaction_not?: InputMaybe; - transaction_not_contains?: InputMaybe; - transaction_not_ends_with?: InputMaybe; - transaction_not_in?: InputMaybe>; - transaction_not_starts_with?: InputMaybe; - transaction_starts_with?: InputMaybe; + where?: InputMaybe; }; -export enum LiquidityPoolAdded_OrderBy { - LiquidityPool = '_liquidityPool', - EmittedBy = 'emittedBy', - Id = 'id', - Timestamp = 'timestamp', - Transaction = 'transaction', -} - -/** Autogenerated for debugging - to be eventually deleted */ -export type LiquidityPoolRemoved = { - __typename?: 'LiquidityPoolRemoved'; - _liquidityPool: Scalars['Bytes']; - emittedBy: Scalars['Bytes']; +/** + * This entity stores the relationship between liquidity pools and underlying tokens + * It also currently stores the total volumes bought and sold, but this should be moved to the LiquidityPool + */ +export type LiquidityPoolToken = { + __typename?: 'LiquidityPoolToken'; + /** ID is liquidityPool address + tokenAddress */ id: Scalars['ID']; - timestamp: Scalars['BigInt']; - transaction: Transaction; + liquidityPool: LiquidityPool; + /** The pool token that represents this token-liquidityPool relationship */ + poolToken: PoolToken; + token: Token; + totalVolume: Scalars['BigDecimal']; + volumeBought: Scalars['BigDecimal']; + volumeSold: Scalars['BigDecimal']; }; -export type LiquidityPoolRemoved_Filter = { - _liquidityPool?: InputMaybe; - _liquidityPool_contains?: InputMaybe; - _liquidityPool_in?: InputMaybe>; - _liquidityPool_not?: InputMaybe; - _liquidityPool_not_contains?: InputMaybe; - _liquidityPool_not_in?: InputMaybe>; - emittedBy?: InputMaybe; - emittedBy_contains?: InputMaybe; - emittedBy_in?: InputMaybe>; - emittedBy_not?: InputMaybe; - emittedBy_not_contains?: InputMaybe; - emittedBy_not_in?: InputMaybe>; - id?: InputMaybe; - id_gt?: InputMaybe; - id_gte?: InputMaybe; - id_in?: InputMaybe>; - id_lt?: InputMaybe; - id_lte?: InputMaybe; - id_not?: InputMaybe; - id_not_in?: InputMaybe>; - timestamp?: InputMaybe; - timestamp_gt?: InputMaybe; - timestamp_gte?: InputMaybe; - timestamp_in?: InputMaybe>; - timestamp_lt?: InputMaybe; - timestamp_lte?: InputMaybe; - timestamp_not?: InputMaybe; - timestamp_not_in?: InputMaybe>; - transaction?: InputMaybe; - transaction_contains?: InputMaybe; - transaction_ends_with?: InputMaybe; - transaction_gt?: InputMaybe; - transaction_gte?: InputMaybe; - transaction_in?: InputMaybe>; - transaction_lt?: InputMaybe; - transaction_lte?: InputMaybe; - transaction_not?: InputMaybe; - transaction_not_contains?: InputMaybe; - transaction_not_ends_with?: InputMaybe; - transaction_not_in?: InputMaybe>; - transaction_not_starts_with?: InputMaybe; - transaction_starts_with?: InputMaybe; -}; - -export enum LiquidityPoolRemoved_OrderBy { - LiquidityPool = '_liquidityPool', - EmittedBy = 'emittedBy', - Id = 'id', - Timestamp = 'timestamp', - Transaction = 'transaction', -} - -/** - * This entity stores the relationship between liquidity pools and underlying tokens - * It also currently stores the total volumes bought and so - */ -export type LiquidityPoolToken = { - __typename?: 'LiquidityPoolToken'; - /** ID is liquidityPool address + tokenAddress */ - id: Scalars['ID']; - liquidityPool: LiquidityPool; - /** The pool token that represents this token-liquidityPool relationship */ - poolToken: PoolToken; - token: Token; - totalVolume: Scalars['BigDecimal']; - volumeBought: Scalars['BigDecimal']; - volumeSold: Scalars['BigDecimal']; -}; - -export type LiquidityPoolToken_Filter = { +export type LiquidityPoolToken_Filter = { id?: InputMaybe; id_gt?: InputMaybe; id_gte?: InputMaybe; @@ -1951,22 +2067,22 @@ export type LiquidityPool_Filter = { conversionFee_lte?: InputMaybe; conversionFee_not?: InputMaybe; conversionFee_not_in?: InputMaybe>; - createdAtBlockNumber?: InputMaybe; - createdAtBlockNumber_gt?: InputMaybe; - createdAtBlockNumber_gte?: InputMaybe; - createdAtBlockNumber_in?: InputMaybe>; - createdAtBlockNumber_lt?: InputMaybe; - createdAtBlockNumber_lte?: InputMaybe; - createdAtBlockNumber_not?: InputMaybe; - createdAtBlockNumber_not_in?: InputMaybe>; - createdAtTimestamp?: InputMaybe; - createdAtTimestamp_gt?: InputMaybe; - createdAtTimestamp_gte?: InputMaybe; - createdAtTimestamp_in?: InputMaybe>; - createdAtTimestamp_lt?: InputMaybe; - createdAtTimestamp_lte?: InputMaybe; - createdAtTimestamp_not?: InputMaybe; - createdAtTimestamp_not_in?: InputMaybe>; + createdAtBlockNumber?: InputMaybe; + createdAtBlockNumber_gt?: InputMaybe; + createdAtBlockNumber_gte?: InputMaybe; + createdAtBlockNumber_in?: InputMaybe>; + createdAtBlockNumber_lt?: InputMaybe; + createdAtBlockNumber_lte?: InputMaybe; + createdAtBlockNumber_not?: InputMaybe; + createdAtBlockNumber_not_in?: InputMaybe>; + createdAtTimestamp?: InputMaybe; + createdAtTimestamp_gt?: InputMaybe; + createdAtTimestamp_gte?: InputMaybe; + createdAtTimestamp_in?: InputMaybe>; + createdAtTimestamp_lt?: InputMaybe; + createdAtTimestamp_lte?: InputMaybe; + createdAtTimestamp_not?: InputMaybe; + createdAtTimestamp_not_in?: InputMaybe>; createdAtTransaction?: InputMaybe; createdAtTransaction_contains?: InputMaybe; createdAtTransaction_ends_with?: InputMaybe; @@ -2003,22 +2119,22 @@ export type LiquidityPool_Filter = { id_lte?: InputMaybe; id_not?: InputMaybe; id_not_in?: InputMaybe>; - lastResetBlockNumber?: InputMaybe; - lastResetBlockNumber_gt?: InputMaybe; - lastResetBlockNumber_gte?: InputMaybe; - lastResetBlockNumber_in?: InputMaybe>; - lastResetBlockNumber_lt?: InputMaybe; - lastResetBlockNumber_lte?: InputMaybe; - lastResetBlockNumber_not?: InputMaybe; - lastResetBlockNumber_not_in?: InputMaybe>; - lastResetTimestamp?: InputMaybe; - lastResetTimestamp_gt?: InputMaybe; - lastResetTimestamp_gte?: InputMaybe; - lastResetTimestamp_in?: InputMaybe>; - lastResetTimestamp_lt?: InputMaybe; - lastResetTimestamp_lte?: InputMaybe; - lastResetTimestamp_not?: InputMaybe; - lastResetTimestamp_not_in?: InputMaybe>; + lastResetBlockNumber?: InputMaybe; + lastResetBlockNumber_gt?: InputMaybe; + lastResetBlockNumber_gte?: InputMaybe; + lastResetBlockNumber_in?: InputMaybe>; + lastResetBlockNumber_lt?: InputMaybe; + lastResetBlockNumber_lte?: InputMaybe; + lastResetBlockNumber_not?: InputMaybe; + lastResetBlockNumber_not_in?: InputMaybe>; + lastResetTimestamp?: InputMaybe; + lastResetTimestamp_gt?: InputMaybe; + lastResetTimestamp_gte?: InputMaybe; + lastResetTimestamp_in?: InputMaybe>; + lastResetTimestamp_lt?: InputMaybe; + lastResetTimestamp_lte?: InputMaybe; + lastResetTimestamp_not?: InputMaybe; + lastResetTimestamp_not_in?: InputMaybe>; maxConversionFee?: InputMaybe; maxConversionFee_gt?: InputMaybe; maxConversionFee_gte?: InputMaybe; @@ -2056,6 +2172,14 @@ export type LiquidityPool_Filter = { smartToken_not_starts_with?: InputMaybe; smartToken_starts_with?: InputMaybe; token0?: InputMaybe; + token0Balance?: InputMaybe; + token0Balance_gt?: InputMaybe; + token0Balance_gte?: InputMaybe; + token0Balance_in?: InputMaybe>; + token0Balance_lt?: InputMaybe; + token0Balance_lte?: InputMaybe; + token0Balance_not?: InputMaybe; + token0Balance_not_in?: InputMaybe>; token0_contains?: InputMaybe; token0_ends_with?: InputMaybe; token0_gt?: InputMaybe; @@ -2070,6 +2194,14 @@ export type LiquidityPool_Filter = { token0_not_starts_with?: InputMaybe; token0_starts_with?: InputMaybe; token1?: InputMaybe; + token1Balance?: InputMaybe; + token1Balance_gt?: InputMaybe; + token1Balance_gte?: InputMaybe; + token1Balance_in?: InputMaybe>; + token1Balance_lt?: InputMaybe; + token1Balance_lte?: InputMaybe; + token1Balance_not?: InputMaybe; + token1Balance_not_in?: InputMaybe>; token1_contains?: InputMaybe; token1_ends_with?: InputMaybe; token1_gt?: InputMaybe; @@ -2099,14 +2231,6 @@ export type LiquidityPool_Filter = { version_lte?: InputMaybe; version_not?: InputMaybe; version_not_in?: InputMaybe>; - weight?: InputMaybe; - weight_gt?: InputMaybe; - weight_gte?: InputMaybe; - weight_in?: InputMaybe>; - weight_lt?: InputMaybe; - weight_lte?: InputMaybe; - weight_not?: InputMaybe; - weight_not_in?: InputMaybe>; }; export enum LiquidityPool_OrderBy { @@ -2125,10 +2249,11 @@ export enum LiquidityPool_OrderBy { PoolTokens = 'poolTokens', SmartToken = 'smartToken', Token0 = 'token0', + Token0Balance = 'token0Balance', Token1 = 'token1', + Token1Balance = 'token1Balance', Type = 'type', Version = 'version', - Weight = 'weight', } /** A Loan can be initialized by either a Margin Trade event or a Borrow event */ @@ -2145,7 +2270,7 @@ export type Loan = { closewithDeposits?: Maybe>; collateralToken: Token; depositCollateral?: Maybe>; - endTimestamp?: Maybe; + endTimestamp?: Maybe; id: Scalars['ID']; /** If a Liquidate, CloseWithSwap or CloseWithDeposit event occurs with 0 margin or 0 leverage, this property changes to false */ isOpen: Scalars['Boolean']; @@ -2154,17 +2279,20 @@ export type Loan = { maxBorrowedAmount: Scalars['BigDecimal']; /** The maximum this position size was - mainly for debugging purposes */ maximumPositionSize: Scalars['BigDecimal']; + /** Next date that the loan will be rolled over, interest paid, and rollover reward paid */ + nextRollover?: Maybe; /** Total of collateral (user collateral in a Borrow, and user collateral + borrowed amount in a Trade) in collateral tokens */ positionSize: Scalars['BigDecimal']; /** The realized PnL is quoted in the collateral currency */ realizedPnL: Scalars['BigDecimal']; realizedPnLPercent: Scalars['BigDecimal']; + rollovers?: Maybe>; startBorrowedAmount: Scalars['BigDecimal']; /** Initial size of the position */ startPositionSize: Scalars['BigDecimal']; /** The start rate of the loan in loan tokens (eg if it is a long USD/BTC margin trade, this is the BTC price in USD) */ startRate: Scalars['BigDecimal']; - startTimestamp: Scalars['BigInt']; + startTimestamp: Scalars['Int']; /** Sum of position volume from Trade, Borrow and DepositCollateral events in this loan, in collateral token */ totalBought: Scalars['BigDecimal']; /** Sum of position change volume from CloseWithSwap, CloseWithDeposit and Liquidate events in this loan, in collateral token */ @@ -2220,6 +2348,15 @@ export type LoanLiquidatesArgs = { where?: InputMaybe; }; +/** A Loan can be initialized by either a Margin Trade event or a Borrow event */ +export type LoanRolloversArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + /** A Loan can be initialized by either a Margin Trade event or a Borrow event */ export type LoanTradeArgs = { first?: InputMaybe; @@ -2273,14 +2410,14 @@ export type Loan_Filter = { collateralToken_not_in?: InputMaybe>; collateralToken_not_starts_with?: InputMaybe; collateralToken_starts_with?: InputMaybe; - endTimestamp?: InputMaybe; - endTimestamp_gt?: InputMaybe; - endTimestamp_gte?: InputMaybe; - endTimestamp_in?: InputMaybe>; - endTimestamp_lt?: InputMaybe; - endTimestamp_lte?: InputMaybe; - endTimestamp_not?: InputMaybe; - endTimestamp_not_in?: InputMaybe>; + endTimestamp?: InputMaybe; + endTimestamp_gt?: InputMaybe; + endTimestamp_gte?: InputMaybe; + endTimestamp_in?: InputMaybe>; + endTimestamp_lt?: InputMaybe; + endTimestamp_lte?: InputMaybe; + endTimestamp_not?: InputMaybe; + endTimestamp_not_in?: InputMaybe>; id?: InputMaybe; id_gt?: InputMaybe; id_gte?: InputMaybe; @@ -2323,6 +2460,14 @@ export type Loan_Filter = { maximumPositionSize_lte?: InputMaybe; maximumPositionSize_not?: InputMaybe; maximumPositionSize_not_in?: InputMaybe>; + nextRollover?: InputMaybe; + nextRollover_gt?: InputMaybe; + nextRollover_gte?: InputMaybe; + nextRollover_in?: InputMaybe>; + nextRollover_lt?: InputMaybe; + nextRollover_lte?: InputMaybe; + nextRollover_not?: InputMaybe; + nextRollover_not_in?: InputMaybe>; positionSize?: InputMaybe; positionSize_gt?: InputMaybe; positionSize_gte?: InputMaybe; @@ -2371,14 +2516,14 @@ export type Loan_Filter = { startRate_lte?: InputMaybe; startRate_not?: InputMaybe; startRate_not_in?: InputMaybe>; - startTimestamp?: InputMaybe; - startTimestamp_gt?: InputMaybe; - startTimestamp_gte?: InputMaybe; - startTimestamp_in?: InputMaybe>; - startTimestamp_lt?: InputMaybe; - startTimestamp_lte?: InputMaybe; - startTimestamp_not?: InputMaybe; - startTimestamp_not_in?: InputMaybe>; + startTimestamp?: InputMaybe; + startTimestamp_gt?: InputMaybe; + startTimestamp_gte?: InputMaybe; + startTimestamp_in?: InputMaybe>; + startTimestamp_lt?: InputMaybe; + startTimestamp_lte?: InputMaybe; + startTimestamp_not?: InputMaybe; + startTimestamp_not_in?: InputMaybe>; totalBought?: InputMaybe; totalBought_gt?: InputMaybe; totalBought_gte?: InputMaybe; @@ -2431,9 +2576,11 @@ export enum Loan_OrderBy { LoanToken = 'loanToken', MaxBorrowedAmount = 'maxBorrowedAmount', MaximumPositionSize = 'maximumPositionSize', + NextRollover = 'nextRollover', PositionSize = 'positionSize', RealizedPnL = 'realizedPnL', RealizedPnLPercent = 'realizedPnLPercent', + Rollovers = 'rollovers', StartBorrowedAmount = 'startBorrowedAmount', StartPositionSize = 'startPositionSize', StartRate = 'startRate', @@ -2445,13 +2592,242 @@ export enum Loan_OrderBy { User = 'user', } +export type MarginOrderCanceled = { + __typename?: 'MarginOrderCanceled'; + emittedBy: Scalars['Bytes']; + hash: Scalars['Bytes']; + id: Scalars['ID']; + timestamp: Scalars['Int']; + trader: Scalars['Bytes']; + transaction: Transaction; +}; + +export type MarginOrderCanceled_Filter = { + emittedBy?: InputMaybe; + emittedBy_contains?: InputMaybe; + emittedBy_in?: InputMaybe>; + emittedBy_not?: InputMaybe; + emittedBy_not_contains?: InputMaybe; + emittedBy_not_in?: InputMaybe>; + hash?: InputMaybe; + hash_contains?: InputMaybe; + hash_in?: InputMaybe>; + hash_not?: InputMaybe; + hash_not_contains?: InputMaybe; + hash_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; + trader?: InputMaybe; + trader_contains?: InputMaybe; + trader_in?: InputMaybe>; + trader_not?: InputMaybe; + trader_not_contains?: InputMaybe; + trader_not_in?: InputMaybe>; + transaction?: InputMaybe; + transaction_contains?: InputMaybe; + transaction_ends_with?: InputMaybe; + transaction_gt?: InputMaybe; + transaction_gte?: InputMaybe; + transaction_in?: InputMaybe>; + transaction_lt?: InputMaybe; + transaction_lte?: InputMaybe; + transaction_not?: InputMaybe; + transaction_not_contains?: InputMaybe; + transaction_not_ends_with?: InputMaybe; + transaction_not_in?: InputMaybe>; + transaction_not_starts_with?: InputMaybe; + transaction_starts_with?: InputMaybe; +}; + +export enum MarginOrderCanceled_OrderBy { + EmittedBy = 'emittedBy', + Hash = 'hash', + Id = 'id', + Timestamp = 'timestamp', + Trader = 'trader', + Transaction = 'transaction', +} + +export type MarginOrderFilled = { + __typename?: 'MarginOrderFilled'; + collateral: Scalars['BigDecimal']; + collateralTokenAddress: Scalars['Bytes']; + collateralTokenSent: Scalars['BigDecimal']; + emittedBy: Scalars['Bytes']; + filledPrice: Scalars['BigDecimal']; + hash: Scalars['Bytes']; + id: Scalars['ID']; + leverageAmount: Scalars['BigDecimal']; + loanTokenAddress: Scalars['Bytes']; + loanTokenSent: Scalars['BigDecimal']; + principal: Scalars['BigDecimal']; + timestamp: Scalars['Int']; + trader: User; + transaction: Transaction; +}; + +export type MarginOrderFilled_Filter = { + collateral?: InputMaybe; + collateralTokenAddress?: InputMaybe; + collateralTokenAddress_contains?: InputMaybe; + collateralTokenAddress_in?: InputMaybe>; + collateralTokenAddress_not?: InputMaybe; + collateralTokenAddress_not_contains?: InputMaybe; + collateralTokenAddress_not_in?: InputMaybe>; + collateralTokenSent?: InputMaybe; + collateralTokenSent_gt?: InputMaybe; + collateralTokenSent_gte?: InputMaybe; + collateralTokenSent_in?: InputMaybe>; + collateralTokenSent_lt?: InputMaybe; + collateralTokenSent_lte?: InputMaybe; + collateralTokenSent_not?: InputMaybe; + collateralTokenSent_not_in?: InputMaybe>; + collateral_gt?: InputMaybe; + collateral_gte?: InputMaybe; + collateral_in?: InputMaybe>; + collateral_lt?: InputMaybe; + collateral_lte?: InputMaybe; + collateral_not?: InputMaybe; + collateral_not_in?: InputMaybe>; + emittedBy?: InputMaybe; + emittedBy_contains?: InputMaybe; + emittedBy_in?: InputMaybe>; + emittedBy_not?: InputMaybe; + emittedBy_not_contains?: InputMaybe; + emittedBy_not_in?: InputMaybe>; + filledPrice?: InputMaybe; + filledPrice_gt?: InputMaybe; + filledPrice_gte?: InputMaybe; + filledPrice_in?: InputMaybe>; + filledPrice_lt?: InputMaybe; + filledPrice_lte?: InputMaybe; + filledPrice_not?: InputMaybe; + filledPrice_not_in?: InputMaybe>; + hash?: InputMaybe; + hash_contains?: InputMaybe; + hash_in?: InputMaybe>; + hash_not?: InputMaybe; + hash_not_contains?: InputMaybe; + hash_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + leverageAmount?: InputMaybe; + leverageAmount_gt?: InputMaybe; + leverageAmount_gte?: InputMaybe; + leverageAmount_in?: InputMaybe>; + leverageAmount_lt?: InputMaybe; + leverageAmount_lte?: InputMaybe; + leverageAmount_not?: InputMaybe; + leverageAmount_not_in?: InputMaybe>; + loanTokenAddress?: InputMaybe; + loanTokenAddress_contains?: InputMaybe; + loanTokenAddress_in?: InputMaybe>; + loanTokenAddress_not?: InputMaybe; + loanTokenAddress_not_contains?: InputMaybe; + loanTokenAddress_not_in?: InputMaybe>; + loanTokenSent?: InputMaybe; + loanTokenSent_gt?: InputMaybe; + loanTokenSent_gte?: InputMaybe; + loanTokenSent_in?: InputMaybe>; + loanTokenSent_lt?: InputMaybe; + loanTokenSent_lte?: InputMaybe; + loanTokenSent_not?: InputMaybe; + loanTokenSent_not_in?: InputMaybe>; + principal?: InputMaybe; + principal_gt?: InputMaybe; + principal_gte?: InputMaybe; + principal_in?: InputMaybe>; + principal_lt?: InputMaybe; + principal_lte?: InputMaybe; + principal_not?: InputMaybe; + principal_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; + trader?: InputMaybe; + trader_contains?: InputMaybe; + trader_ends_with?: InputMaybe; + trader_gt?: InputMaybe; + trader_gte?: InputMaybe; + trader_in?: InputMaybe>; + trader_lt?: InputMaybe; + trader_lte?: InputMaybe; + trader_not?: InputMaybe; + trader_not_contains?: InputMaybe; + trader_not_ends_with?: InputMaybe; + trader_not_in?: InputMaybe>; + trader_not_starts_with?: InputMaybe; + trader_starts_with?: InputMaybe; + transaction?: InputMaybe; + transaction_contains?: InputMaybe; + transaction_ends_with?: InputMaybe; + transaction_gt?: InputMaybe; + transaction_gte?: InputMaybe; + transaction_in?: InputMaybe>; + transaction_lt?: InputMaybe; + transaction_lte?: InputMaybe; + transaction_not?: InputMaybe; + transaction_not_contains?: InputMaybe; + transaction_not_ends_with?: InputMaybe; + transaction_not_in?: InputMaybe>; + transaction_not_starts_with?: InputMaybe; + transaction_starts_with?: InputMaybe; +}; + +export enum MarginOrderFilled_OrderBy { + Collateral = 'collateral', + CollateralTokenAddress = 'collateralTokenAddress', + CollateralTokenSent = 'collateralTokenSent', + EmittedBy = 'emittedBy', + FilledPrice = 'filledPrice', + Hash = 'hash', + Id = 'id', + LeverageAmount = 'leverageAmount', + LoanTokenAddress = 'loanTokenAddress', + LoanTokenSent = 'loanTokenSent', + Principal = 'principal', + Timestamp = 'timestamp', + Trader = 'trader', + Transaction = 'transaction', +} + +export enum Network { + Mainnet = 'Mainnet', + Testnet = 'Testnet', +} + export type NewConverter = { __typename?: 'NewConverter'; _converter: Scalars['Bytes']; _owner: Scalars['Bytes']; _type: Scalars['Int']; id: Scalars['ID']; - timestamp: Scalars['BigInt']; + timestamp: Scalars['Int']; transaction: Transaction; }; @@ -2484,14 +2860,14 @@ export type NewConverter_Filter = { id_lte?: InputMaybe; id_not?: InputMaybe; id_not_in?: InputMaybe>; - timestamp?: InputMaybe; - timestamp_gt?: InputMaybe; - timestamp_gte?: InputMaybe; - timestamp_in?: InputMaybe>; - timestamp_lt?: InputMaybe; - timestamp_lte?: InputMaybe; - timestamp_not?: InputMaybe; - timestamp_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; transaction?: InputMaybe; transaction_contains?: InputMaybe; transaction_ends_with?: InputMaybe; @@ -2517,33 +2893,453 @@ export enum NewConverter_OrderBy { Transaction = 'transaction', } +export type OrderCanceled = { + __typename?: 'OrderCanceled'; + emittedBy: Scalars['Bytes']; + hash: Scalars['Bytes']; + id: Scalars['ID']; + maker: Scalars['Bytes']; + timestamp: Scalars['Int']; + transaction: Transaction; +}; + +export type OrderCanceled_Filter = { + emittedBy?: InputMaybe; + emittedBy_contains?: InputMaybe; + emittedBy_in?: InputMaybe>; + emittedBy_not?: InputMaybe; + emittedBy_not_contains?: InputMaybe; + emittedBy_not_in?: InputMaybe>; + hash?: InputMaybe; + hash_contains?: InputMaybe; + hash_in?: InputMaybe>; + hash_not?: InputMaybe; + hash_not_contains?: InputMaybe; + hash_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + maker?: InputMaybe; + maker_contains?: InputMaybe; + maker_in?: InputMaybe>; + maker_not?: InputMaybe; + maker_not_contains?: InputMaybe; + maker_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; + transaction?: InputMaybe; + transaction_contains?: InputMaybe; + transaction_ends_with?: InputMaybe; + transaction_gt?: InputMaybe; + transaction_gte?: InputMaybe; + transaction_in?: InputMaybe>; + transaction_lt?: InputMaybe; + transaction_lte?: InputMaybe; + transaction_not?: InputMaybe; + transaction_not_contains?: InputMaybe; + transaction_not_ends_with?: InputMaybe; + transaction_not_in?: InputMaybe>; + transaction_not_starts_with?: InputMaybe; + transaction_starts_with?: InputMaybe; +}; + +export enum OrderCanceled_OrderBy { + EmittedBy = 'emittedBy', + Hash = 'hash', + Id = 'id', + Maker = 'maker', + Timestamp = 'timestamp', + Transaction = 'transaction', +} + +export type OrderCreated = { + __typename?: 'OrderCreated'; + emittedBy: Scalars['Bytes']; + hash: Scalars['Bytes']; + id: Scalars['ID']; + limitPrice: Scalars['BigInt']; + network: Network; + order_amountIn: Scalars['BigInt']; + order_amountOutMin: Scalars['BigInt']; + order_created: Scalars['BigInt']; + order_deadline: Scalars['BigInt']; + order_fromToken: Scalars['Bytes']; + order_maker: User; + order_recipient: Scalars['Bytes']; + order_toToken: Scalars['Bytes']; + timestamp: Scalars['Int']; + transaction: Transaction; +}; + +export type OrderCreated_Filter = { + emittedBy?: InputMaybe; + emittedBy_contains?: InputMaybe; + emittedBy_in?: InputMaybe>; + emittedBy_not?: InputMaybe; + emittedBy_not_contains?: InputMaybe; + emittedBy_not_in?: InputMaybe>; + hash?: InputMaybe; + hash_contains?: InputMaybe; + hash_in?: InputMaybe>; + hash_not?: InputMaybe; + hash_not_contains?: InputMaybe; + hash_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + limitPrice?: InputMaybe; + limitPrice_gt?: InputMaybe; + limitPrice_gte?: InputMaybe; + limitPrice_in?: InputMaybe>; + limitPrice_lt?: InputMaybe; + limitPrice_lte?: InputMaybe; + limitPrice_not?: InputMaybe; + limitPrice_not_in?: InputMaybe>; + network?: InputMaybe; + network_in?: InputMaybe>; + network_not?: InputMaybe; + network_not_in?: InputMaybe>; + order_amountIn?: InputMaybe; + order_amountIn_gt?: InputMaybe; + order_amountIn_gte?: InputMaybe; + order_amountIn_in?: InputMaybe>; + order_amountIn_lt?: InputMaybe; + order_amountIn_lte?: InputMaybe; + order_amountIn_not?: InputMaybe; + order_amountIn_not_in?: InputMaybe>; + order_amountOutMin?: InputMaybe; + order_amountOutMin_gt?: InputMaybe; + order_amountOutMin_gte?: InputMaybe; + order_amountOutMin_in?: InputMaybe>; + order_amountOutMin_lt?: InputMaybe; + order_amountOutMin_lte?: InputMaybe; + order_amountOutMin_not?: InputMaybe; + order_amountOutMin_not_in?: InputMaybe>; + order_created?: InputMaybe; + order_created_gt?: InputMaybe; + order_created_gte?: InputMaybe; + order_created_in?: InputMaybe>; + order_created_lt?: InputMaybe; + order_created_lte?: InputMaybe; + order_created_not?: InputMaybe; + order_created_not_in?: InputMaybe>; + order_deadline?: InputMaybe; + order_deadline_gt?: InputMaybe; + order_deadline_gte?: InputMaybe; + order_deadline_in?: InputMaybe>; + order_deadline_lt?: InputMaybe; + order_deadline_lte?: InputMaybe; + order_deadline_not?: InputMaybe; + order_deadline_not_in?: InputMaybe>; + order_fromToken?: InputMaybe; + order_fromToken_contains?: InputMaybe; + order_fromToken_in?: InputMaybe>; + order_fromToken_not?: InputMaybe; + order_fromToken_not_contains?: InputMaybe; + order_fromToken_not_in?: InputMaybe>; + order_maker?: InputMaybe; + order_maker_contains?: InputMaybe; + order_maker_ends_with?: InputMaybe; + order_maker_gt?: InputMaybe; + order_maker_gte?: InputMaybe; + order_maker_in?: InputMaybe>; + order_maker_lt?: InputMaybe; + order_maker_lte?: InputMaybe; + order_maker_not?: InputMaybe; + order_maker_not_contains?: InputMaybe; + order_maker_not_ends_with?: InputMaybe; + order_maker_not_in?: InputMaybe>; + order_maker_not_starts_with?: InputMaybe; + order_maker_starts_with?: InputMaybe; + order_recipient?: InputMaybe; + order_recipient_contains?: InputMaybe; + order_recipient_in?: InputMaybe>; + order_recipient_not?: InputMaybe; + order_recipient_not_contains?: InputMaybe; + order_recipient_not_in?: InputMaybe>; + order_toToken?: InputMaybe; + order_toToken_contains?: InputMaybe; + order_toToken_in?: InputMaybe>; + order_toToken_not?: InputMaybe; + order_toToken_not_contains?: InputMaybe; + order_toToken_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; + transaction?: InputMaybe; + transaction_contains?: InputMaybe; + transaction_ends_with?: InputMaybe; + transaction_gt?: InputMaybe; + transaction_gte?: InputMaybe; + transaction_in?: InputMaybe>; + transaction_lt?: InputMaybe; + transaction_lte?: InputMaybe; + transaction_not?: InputMaybe; + transaction_not_contains?: InputMaybe; + transaction_not_ends_with?: InputMaybe; + transaction_not_in?: InputMaybe>; + transaction_not_starts_with?: InputMaybe; + transaction_starts_with?: InputMaybe; +}; + +export enum OrderCreated_OrderBy { + EmittedBy = 'emittedBy', + Hash = 'hash', + Id = 'id', + LimitPrice = 'limitPrice', + Network = 'network', + OrderAmountIn = 'order_amountIn', + OrderAmountOutMin = 'order_amountOutMin', + OrderCreated = 'order_created', + OrderDeadline = 'order_deadline', + OrderFromToken = 'order_fromToken', + OrderMaker = 'order_maker', + OrderRecipient = 'order_recipient', + OrderToToken = 'order_toToken', + Timestamp = 'timestamp', + Transaction = 'transaction', +} + export enum OrderDirection { Asc = 'asc', Desc = 'desc', } +export type OrderFilled = { + __typename?: 'OrderFilled'; + amountIn: Scalars['BigDecimal']; + amountOut: Scalars['BigDecimal']; + emittedBy: Scalars['Bytes']; + filledPrice: Scalars['BigDecimal']; + hash: Scalars['Bytes']; + id: Scalars['ID']; + maker: User; + path: Array; + timestamp: Scalars['Int']; + transaction: Transaction; +}; + +export type OrderFilled_Filter = { + amountIn?: InputMaybe; + amountIn_gt?: InputMaybe; + amountIn_gte?: InputMaybe; + amountIn_in?: InputMaybe>; + amountIn_lt?: InputMaybe; + amountIn_lte?: InputMaybe; + amountIn_not?: InputMaybe; + amountIn_not_in?: InputMaybe>; + amountOut?: InputMaybe; + amountOut_gt?: InputMaybe; + amountOut_gte?: InputMaybe; + amountOut_in?: InputMaybe>; + amountOut_lt?: InputMaybe; + amountOut_lte?: InputMaybe; + amountOut_not?: InputMaybe; + amountOut_not_in?: InputMaybe>; + emittedBy?: InputMaybe; + emittedBy_contains?: InputMaybe; + emittedBy_in?: InputMaybe>; + emittedBy_not?: InputMaybe; + emittedBy_not_contains?: InputMaybe; + emittedBy_not_in?: InputMaybe>; + filledPrice?: InputMaybe; + filledPrice_gt?: InputMaybe; + filledPrice_gte?: InputMaybe; + filledPrice_in?: InputMaybe>; + filledPrice_lt?: InputMaybe; + filledPrice_lte?: InputMaybe; + filledPrice_not?: InputMaybe; + filledPrice_not_in?: InputMaybe>; + hash?: InputMaybe; + hash_contains?: InputMaybe; + hash_in?: InputMaybe>; + hash_not?: InputMaybe; + hash_not_contains?: InputMaybe; + hash_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + maker?: InputMaybe; + maker_contains?: InputMaybe; + maker_ends_with?: InputMaybe; + maker_gt?: InputMaybe; + maker_gte?: InputMaybe; + maker_in?: InputMaybe>; + maker_lt?: InputMaybe; + maker_lte?: InputMaybe; + maker_not?: InputMaybe; + maker_not_contains?: InputMaybe; + maker_not_ends_with?: InputMaybe; + maker_not_in?: InputMaybe>; + maker_not_starts_with?: InputMaybe; + maker_starts_with?: InputMaybe; + path?: InputMaybe>; + path_contains?: InputMaybe>; + path_not?: InputMaybe>; + path_not_contains?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; + transaction?: InputMaybe; + transaction_contains?: InputMaybe; + transaction_ends_with?: InputMaybe; + transaction_gt?: InputMaybe; + transaction_gte?: InputMaybe; + transaction_in?: InputMaybe>; + transaction_lt?: InputMaybe; + transaction_lte?: InputMaybe; + transaction_not?: InputMaybe; + transaction_not_contains?: InputMaybe; + transaction_not_ends_with?: InputMaybe; + transaction_not_in?: InputMaybe>; + transaction_not_starts_with?: InputMaybe; + transaction_starts_with?: InputMaybe; +}; + +export enum OrderFilled_OrderBy { + AmountIn = 'amountIn', + AmountOut = 'amountOut', + EmittedBy = 'emittedBy', + FilledPrice = 'filledPrice', + Hash = 'hash', + Id = 'id', + Maker = 'maker', + Path = 'path', + Timestamp = 'timestamp', + Transaction = 'transaction', +} + +export type OwnerUpdate = { + __typename?: 'OwnerUpdate'; + emittedBy: Scalars['String']; + id: Scalars['ID']; + newOwner: Scalars['String']; + prevOwner: Scalars['String']; + timestamp: Scalars['BigInt']; +}; + +export type OwnerUpdate_Filter = { + emittedBy?: InputMaybe; + emittedBy_contains?: InputMaybe; + emittedBy_ends_with?: InputMaybe; + emittedBy_gt?: InputMaybe; + emittedBy_gte?: InputMaybe; + emittedBy_in?: InputMaybe>; + emittedBy_lt?: InputMaybe; + emittedBy_lte?: InputMaybe; + emittedBy_not?: InputMaybe; + emittedBy_not_contains?: InputMaybe; + emittedBy_not_ends_with?: InputMaybe; + emittedBy_not_in?: InputMaybe>; + emittedBy_not_starts_with?: InputMaybe; + emittedBy_starts_with?: InputMaybe; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + newOwner?: InputMaybe; + newOwner_contains?: InputMaybe; + newOwner_ends_with?: InputMaybe; + newOwner_gt?: InputMaybe; + newOwner_gte?: InputMaybe; + newOwner_in?: InputMaybe>; + newOwner_lt?: InputMaybe; + newOwner_lte?: InputMaybe; + newOwner_not?: InputMaybe; + newOwner_not_contains?: InputMaybe; + newOwner_not_ends_with?: InputMaybe; + newOwner_not_in?: InputMaybe>; + newOwner_not_starts_with?: InputMaybe; + newOwner_starts_with?: InputMaybe; + prevOwner?: InputMaybe; + prevOwner_contains?: InputMaybe; + prevOwner_ends_with?: InputMaybe; + prevOwner_gt?: InputMaybe; + prevOwner_gte?: InputMaybe; + prevOwner_in?: InputMaybe>; + prevOwner_lt?: InputMaybe; + prevOwner_lte?: InputMaybe; + prevOwner_not?: InputMaybe; + prevOwner_not_contains?: InputMaybe; + prevOwner_not_ends_with?: InputMaybe; + prevOwner_not_in?: InputMaybe>; + prevOwner_not_starts_with?: InputMaybe; + prevOwner_starts_with?: InputMaybe; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; +}; + +export enum OwnerUpdate_OrderBy { + EmittedBy = 'emittedBy', + Id = 'id', + NewOwner = 'newOwner', + PrevOwner = 'prevOwner', + Timestamp = 'timestamp', +} + /** Granular event data for the Loan entity. Emitted when a user Borrows and when a loan is rolled over */ export type PayBorrowingFee = { __typename?: 'PayBorrowingFee'; - amount: Scalars['BigInt']; + amount: Scalars['BigDecimal']; emittedBy: Scalars['Bytes']; id: Scalars['ID']; loanId: Loan; payer: Scalars['Bytes']; - timestamp: Scalars['BigInt']; + timestamp: Scalars['Int']; token: Scalars['Bytes']; transaction: Transaction; }; export type PayBorrowingFee_Filter = { - amount?: InputMaybe; - amount_gt?: InputMaybe; - amount_gte?: InputMaybe; - amount_in?: InputMaybe>; - amount_lt?: InputMaybe; - amount_lte?: InputMaybe; - amount_not?: InputMaybe; - amount_not_in?: InputMaybe>; + amount?: InputMaybe; + amount_gt?: InputMaybe; + amount_gte?: InputMaybe; + amount_in?: InputMaybe>; + amount_lt?: InputMaybe; + amount_lte?: InputMaybe; + amount_not?: InputMaybe; + amount_not_in?: InputMaybe>; emittedBy?: InputMaybe; emittedBy_contains?: InputMaybe; emittedBy_in?: InputMaybe>; @@ -2578,14 +3374,14 @@ export type PayBorrowingFee_Filter = { payer_not?: InputMaybe; payer_not_contains?: InputMaybe; payer_not_in?: InputMaybe>; - timestamp?: InputMaybe; - timestamp_gt?: InputMaybe; - timestamp_gte?: InputMaybe; - timestamp_in?: InputMaybe>; - timestamp_lt?: InputMaybe; - timestamp_lte?: InputMaybe; - timestamp_not?: InputMaybe; - timestamp_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; token?: InputMaybe; token_contains?: InputMaybe; token_in?: InputMaybe>; @@ -2622,24 +3418,24 @@ export enum PayBorrowingFee_OrderBy { /** Granular event data for the Loan entity. Emitted when a user Lends or Unlends and when a loan is rolled over */ export type PayLendingFee = { __typename?: 'PayLendingFee'; - amount: Scalars['BigInt']; + amount: Scalars['BigDecimal']; emittedBy: Scalars['Bytes']; id: Scalars['ID']; payer: Scalars['Bytes']; - timestamp: Scalars['BigInt']; + timestamp: Scalars['Int']; token: Scalars['Bytes']; transaction: Transaction; }; export type PayLendingFee_Filter = { - amount?: InputMaybe; - amount_gt?: InputMaybe; - amount_gte?: InputMaybe; - amount_in?: InputMaybe>; - amount_lt?: InputMaybe; - amount_lte?: InputMaybe; - amount_not?: InputMaybe; - amount_not_in?: InputMaybe>; + amount?: InputMaybe; + amount_gt?: InputMaybe; + amount_gte?: InputMaybe; + amount_in?: InputMaybe>; + amount_lt?: InputMaybe; + amount_lte?: InputMaybe; + amount_not?: InputMaybe; + amount_not_in?: InputMaybe>; emittedBy?: InputMaybe; emittedBy_contains?: InputMaybe; emittedBy_in?: InputMaybe>; @@ -2660,14 +3456,14 @@ export type PayLendingFee_Filter = { payer_not?: InputMaybe; payer_not_contains?: InputMaybe; payer_not_in?: InputMaybe>; - timestamp?: InputMaybe; - timestamp_gt?: InputMaybe; - timestamp_gte?: InputMaybe; - timestamp_in?: InputMaybe>; - timestamp_lt?: InputMaybe; - timestamp_lte?: InputMaybe; - timestamp_not?: InputMaybe; - timestamp_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; token?: InputMaybe; token_contains?: InputMaybe; token_in?: InputMaybe>; @@ -2703,25 +3499,25 @@ export enum PayLendingFee_OrderBy { /** Granular event data for the Loan entity. Emitted when a user Margin Trades and when a loan is rolled over */ export type PayTradingFee = { __typename?: 'PayTradingFee'; - amount: Scalars['BigInt']; + amount: Scalars['BigDecimal']; emittedBy: Scalars['Bytes']; id: Scalars['ID']; loanId: Loan; payer: Scalars['Bytes']; - timestamp: Scalars['BigInt']; + timestamp: Scalars['Int']; token: Scalars['Bytes']; transaction: Transaction; }; export type PayTradingFee_Filter = { - amount?: InputMaybe; - amount_gt?: InputMaybe; - amount_gte?: InputMaybe; - amount_in?: InputMaybe>; - amount_lt?: InputMaybe; - amount_lte?: InputMaybe; - amount_not?: InputMaybe; - amount_not_in?: InputMaybe>; + amount?: InputMaybe; + amount_gt?: InputMaybe; + amount_gte?: InputMaybe; + amount_in?: InputMaybe>; + amount_lt?: InputMaybe; + amount_lte?: InputMaybe; + amount_not?: InputMaybe; + amount_not_in?: InputMaybe>; emittedBy?: InputMaybe; emittedBy_contains?: InputMaybe; emittedBy_in?: InputMaybe>; @@ -2756,14 +3552,14 @@ export type PayTradingFee_Filter = { payer_not?: InputMaybe; payer_not_contains?: InputMaybe; payer_not_in?: InputMaybe>; - timestamp?: InputMaybe; - timestamp_gt?: InputMaybe; - timestamp_gte?: InputMaybe; - timestamp_in?: InputMaybe>; - timestamp_lt?: InputMaybe; - timestamp_lte?: InputMaybe; - timestamp_not?: InputMaybe; - timestamp_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; token?: InputMaybe; token_contains?: InputMaybe; token_in?: InputMaybe>; @@ -2797,42 +3593,24 @@ export enum PayTradingFee_OrderBy { Transaction = 'transaction', } -/** - * For the V1 pools, the pool token and smart token are the same. However, for V2 - * pools, there is one pool token per asset and only one smart token for the pool. - */ +/** For the V1 pools, the pool token and smart token are the same. However, for V2 pools, there is one pool token per asset and only one smart token for the pool. */ export type PoolToken = { __typename?: 'PoolToken'; - converters?: Maybe>; decimals?: Maybe; id: Scalars['ID']; + liquidityPool: LiquidityPool; name?: Maybe; symbol?: Maybe; - underlyingAssets?: Maybe>; -}; - -/** - * For the V1 pools, the pool token and smart token are the same. However, for V2 - * pools, there is one pool token per asset and only one smart token for the pool. - */ -export type PoolTokenConvertersArgs = { - first?: InputMaybe; - orderBy?: InputMaybe; - orderDirection?: InputMaybe; - skip?: InputMaybe; - where?: InputMaybe; + underlyingAssets: Array; }; -/** - * For the V1 pools, the pool token and smart token are the same. However, for V2 - * pools, there is one pool token per asset and only one smart token for the pool. - */ +/** For the V1 pools, the pool token and smart token are the same. However, for V2 pools, there is one pool token per asset and only one smart token for the pool. */ export type PoolTokenUnderlyingAssetsArgs = { first?: InputMaybe; - orderBy?: InputMaybe; + orderBy?: InputMaybe; orderDirection?: InputMaybe; skip?: InputMaybe; - where?: InputMaybe; + where?: InputMaybe; }; export type PoolToken_Filter = { @@ -2852,6 +3630,20 @@ export type PoolToken_Filter = { id_lte?: InputMaybe; id_not?: InputMaybe; id_not_in?: InputMaybe>; + liquidityPool?: InputMaybe; + liquidityPool_contains?: InputMaybe; + liquidityPool_ends_with?: InputMaybe; + liquidityPool_gt?: InputMaybe; + liquidityPool_gte?: InputMaybe; + liquidityPool_in?: InputMaybe>; + liquidityPool_lt?: InputMaybe; + liquidityPool_lte?: InputMaybe; + liquidityPool_not?: InputMaybe; + liquidityPool_not_contains?: InputMaybe; + liquidityPool_not_ends_with?: InputMaybe; + liquidityPool_not_in?: InputMaybe>; + liquidityPool_not_starts_with?: InputMaybe; + liquidityPool_starts_with?: InputMaybe; name?: InputMaybe; name_contains?: InputMaybe; name_ends_with?: InputMaybe; @@ -2880,12 +3672,16 @@ export type PoolToken_Filter = { symbol_not_in?: InputMaybe>; symbol_not_starts_with?: InputMaybe; symbol_starts_with?: InputMaybe; + underlyingAssets?: InputMaybe>; + underlyingAssets_contains?: InputMaybe>; + underlyingAssets_not?: InputMaybe>; + underlyingAssets_not_contains?: InputMaybe>; }; export enum PoolToken_OrderBy { - Converters = 'converters', Decimals = 'decimals', Id = 'id', + LiquidityPool = 'liquidityPool', Name = 'name', Symbol = 'symbol', UnderlyingAssets = 'underlyingAssets', @@ -2894,21 +3690,23 @@ export enum PoolToken_OrderBy { export type Proposal = { __typename?: 'Proposal'; canceled?: Maybe; - countVotersAgainst: Scalars['BigInt']; - countVotersFor: Scalars['BigInt']; + /** Number of unique wallets that voted against this proposal */ + countVotersAgainst: Scalars['Int']; + /** Number of unique wallets that voted for this proposal */ + countVotersFor: Scalars['Int']; created: Transaction; description: Scalars['String']; emittedBy: Scalars['Bytes']; - endBlock: Scalars['BigInt']; + endBlock: Scalars['Int']; executed?: Maybe; id: Scalars['ID']; - proposalId: Scalars['BigInt']; + proposalId: Scalars['Int']; proposer: Scalars['Bytes']; queued?: Maybe; signatures: Array; - startBlock: Scalars['BigInt']; + startBlock: Scalars['Int']; targets: Array; - timestamp: Scalars['BigInt']; + timestamp: Scalars['Int']; values: Array; votes?: Maybe>; votesAgainst: Scalars['BigInt']; @@ -2938,22 +3736,22 @@ export type Proposal_Filter = { canceled_not_in?: InputMaybe>; canceled_not_starts_with?: InputMaybe; canceled_starts_with?: InputMaybe; - countVotersAgainst?: InputMaybe; - countVotersAgainst_gt?: InputMaybe; - countVotersAgainst_gte?: InputMaybe; - countVotersAgainst_in?: InputMaybe>; - countVotersAgainst_lt?: InputMaybe; - countVotersAgainst_lte?: InputMaybe; - countVotersAgainst_not?: InputMaybe; - countVotersAgainst_not_in?: InputMaybe>; - countVotersFor?: InputMaybe; - countVotersFor_gt?: InputMaybe; - countVotersFor_gte?: InputMaybe; - countVotersFor_in?: InputMaybe>; - countVotersFor_lt?: InputMaybe; - countVotersFor_lte?: InputMaybe; - countVotersFor_not?: InputMaybe; - countVotersFor_not_in?: InputMaybe>; + countVotersAgainst?: InputMaybe; + countVotersAgainst_gt?: InputMaybe; + countVotersAgainst_gte?: InputMaybe; + countVotersAgainst_in?: InputMaybe>; + countVotersAgainst_lt?: InputMaybe; + countVotersAgainst_lte?: InputMaybe; + countVotersAgainst_not?: InputMaybe; + countVotersAgainst_not_in?: InputMaybe>; + countVotersFor?: InputMaybe; + countVotersFor_gt?: InputMaybe; + countVotersFor_gte?: InputMaybe; + countVotersFor_in?: InputMaybe>; + countVotersFor_lt?: InputMaybe; + countVotersFor_lte?: InputMaybe; + countVotersFor_not?: InputMaybe; + countVotersFor_not_in?: InputMaybe>; created?: InputMaybe; created_contains?: InputMaybe; created_ends_with?: InputMaybe; @@ -2988,14 +3786,14 @@ export type Proposal_Filter = { emittedBy_not?: InputMaybe; emittedBy_not_contains?: InputMaybe; emittedBy_not_in?: InputMaybe>; - endBlock?: InputMaybe; - endBlock_gt?: InputMaybe; - endBlock_gte?: InputMaybe; - endBlock_in?: InputMaybe>; - endBlock_lt?: InputMaybe; - endBlock_lte?: InputMaybe; - endBlock_not?: InputMaybe; - endBlock_not_in?: InputMaybe>; + endBlock?: InputMaybe; + endBlock_gt?: InputMaybe; + endBlock_gte?: InputMaybe; + endBlock_in?: InputMaybe>; + endBlock_lt?: InputMaybe; + endBlock_lte?: InputMaybe; + endBlock_not?: InputMaybe; + endBlock_not_in?: InputMaybe>; executed?: InputMaybe; executed_contains?: InputMaybe; executed_ends_with?: InputMaybe; @@ -3018,14 +3816,14 @@ export type Proposal_Filter = { id_lte?: InputMaybe; id_not?: InputMaybe; id_not_in?: InputMaybe>; - proposalId?: InputMaybe; - proposalId_gt?: InputMaybe; - proposalId_gte?: InputMaybe; - proposalId_in?: InputMaybe>; - proposalId_lt?: InputMaybe; - proposalId_lte?: InputMaybe; - proposalId_not?: InputMaybe; - proposalId_not_in?: InputMaybe>; + proposalId?: InputMaybe; + proposalId_gt?: InputMaybe; + proposalId_gte?: InputMaybe; + proposalId_in?: InputMaybe>; + proposalId_lt?: InputMaybe; + proposalId_lte?: InputMaybe; + proposalId_not?: InputMaybe; + proposalId_not_in?: InputMaybe>; proposer?: InputMaybe; proposer_contains?: InputMaybe; proposer_in?: InputMaybe>; @@ -3050,26 +3848,26 @@ export type Proposal_Filter = { signatures_contains?: InputMaybe>; signatures_not?: InputMaybe>; signatures_not_contains?: InputMaybe>; - startBlock?: InputMaybe; - startBlock_gt?: InputMaybe; - startBlock_gte?: InputMaybe; - startBlock_in?: InputMaybe>; - startBlock_lt?: InputMaybe; - startBlock_lte?: InputMaybe; - startBlock_not?: InputMaybe; - startBlock_not_in?: InputMaybe>; + startBlock?: InputMaybe; + startBlock_gt?: InputMaybe; + startBlock_gte?: InputMaybe; + startBlock_in?: InputMaybe>; + startBlock_lt?: InputMaybe; + startBlock_lte?: InputMaybe; + startBlock_not?: InputMaybe; + startBlock_not_in?: InputMaybe>; targets?: InputMaybe>; targets_contains?: InputMaybe>; targets_not?: InputMaybe>; targets_not_contains?: InputMaybe>; - timestamp?: InputMaybe; - timestamp_gt?: InputMaybe; - timestamp_gte?: InputMaybe; - timestamp_in?: InputMaybe>; - timestamp_lt?: InputMaybe; - timestamp_lte?: InputMaybe; - timestamp_not?: InputMaybe; - timestamp_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; values?: InputMaybe>; values_contains?: InputMaybe>; values_not?: InputMaybe>; @@ -3116,30 +3914,27 @@ export enum Proposal_OrderBy { } /** - * This entity will have only one instance and will be used to store protocol-wide - * data like list of tokens and number or users. + * This entity will have only one instance and will be used to store protocol-wide data like list of tokens and number or users. * The ID of this one entity is "0" */ export type ProtocolStats = { __typename?: 'ProtocolStats'; btcUsdPrice: Scalars['BigDecimal']; + /** This is SOV staked by vesting contracts. It in incremented when the contracts stake the tokens, and decremented when users claim their unlocked tokens */ + currentStakedByVestingSov: Scalars['BigDecimal']; + /** This is SOV staked by users (not vesting contracts). It is incremented when users stake tokens, and decremented when users withdraw tokens from the staking contract */ + currentVoluntarilyStakedSov: Scalars['BigDecimal']; /** Only one entity should be created, with ID "0" */ id: Scalars['ID']; /** An array of all tokens in the protocol */ tokens: Array; /** Total volume of fees earned by liquidity providers to AMM pools (in usd) */ totalAmmLpFeesUsd: Scalars['BigDecimal']; - /** - * Total volume of fees earned by SOV stakers from AMM conversion events (in - * usd). These fees began after the fee-sharing SIP was executed. - */ + /** Total volume of fees earned by SOV stakers from AMM conversion events (in usd). These fees began after the fee-sharing SIP was executed. */ totalAmmStakerFeesUsd: Scalars['BigDecimal']; /** Total volume that has passed through every AMM pool of the Sovryn protocol (in usd) */ totalAmmVolumeUsd: Scalars['BigDecimal']; - /** - * Total of collateral property in Trade event (in usd). This may be changed to - * borrowed amount volume, but collateral keeps it consistent with margin trading - */ + /** Total of collateral property in Trade event (in usd). This may be changed to borrowed amount volume, but collateral keeps it consistent with margin trading */ totalBorrowVolumeUsd: Scalars['BigDecimal']; /** Total fees from Borrowing earned by SOV stakers (in usd) */ totalBorrowingFeesUsd: Scalars['BigDecimal']; @@ -3157,38 +3952,22 @@ export type ProtocolStats = { totalLiquidateVolumeUsd: Scalars['BigDecimal']; /** Total of positionSize property in Trade event (in usd). This includes user collateral and borrowed amount */ totalMarginTradeVolumeUsd: Scalars['BigDecimal']; - /** - * This is SOV staked by vesting contracts. It in incremented when the contracts - * stake the tokens, and decremented when users claim their unlocked tokens - */ - totalStakedByVestingSov: Scalars['BigInt']; /** Total fees from Margin Trading earned by SOV stakers (in usd) */ totalTradingFeesUsd: Scalars['BigDecimal']; - /** - * NOT YET IMPLEMENTED: This will be a total of volumes of all transaction types - * (AMM Swaps, Margin Trades, CloseWithSwap etc etc) - */ - totalTransactedVolumeUsd: Scalars['BigInt']; + /** NOT YET IMPLEMENTED: This will be a total of volumes of all transaction types (AMM Swaps, Margin Trades, CloseWithSwap etc etc) */ + totalTransactedVolumeUsd: Scalars['Int']; /** Total volume withdrawn from Lending Pool over all time (in usd) */ totalUnlendVolumeUsd: Scalars['BigDecimal']; /** - * Total number of users of the protocol. This number is incremented each time a - * user initiates a transaction with the Protocol. + * Total number of users of the protocol. This number is incremented each time a user initiates a transaction with the Protocol. * Currently this is incremented by specific user actions, but could be incremented on a per Transaction basis. */ - totalUsers: Scalars['BigInt']; - /** - * This is SOV staked by users (not vesting contracts). It is incremented when - * users stake tokens, and decremented when users withdraw tokens from the - * staking contract - */ - totalVoluntarilyStakedSov: Scalars['BigInt']; + totalUsers: Scalars['Int']; usdStablecoin: Token; }; /** - * This entity will have only one instance and will be used to store protocol-wide - * data like list of tokens and number or users. + * This entity will have only one instance and will be used to store protocol-wide data like list of tokens and number or users. * The ID of this one entity is "0" */ export type ProtocolStatsTokensArgs = { @@ -3208,6 +3987,22 @@ export type ProtocolStats_Filter = { btcUsdPrice_lte?: InputMaybe; btcUsdPrice_not?: InputMaybe; btcUsdPrice_not_in?: InputMaybe>; + currentStakedByVestingSov?: InputMaybe; + currentStakedByVestingSov_gt?: InputMaybe; + currentStakedByVestingSov_gte?: InputMaybe; + currentStakedByVestingSov_in?: InputMaybe>; + currentStakedByVestingSov_lt?: InputMaybe; + currentStakedByVestingSov_lte?: InputMaybe; + currentStakedByVestingSov_not?: InputMaybe; + currentStakedByVestingSov_not_in?: InputMaybe>; + currentVoluntarilyStakedSov?: InputMaybe; + currentVoluntarilyStakedSov_gt?: InputMaybe; + currentVoluntarilyStakedSov_gte?: InputMaybe; + currentVoluntarilyStakedSov_in?: InputMaybe>; + currentVoluntarilyStakedSov_lt?: InputMaybe; + currentVoluntarilyStakedSov_lte?: InputMaybe; + currentVoluntarilyStakedSov_not?: InputMaybe; + currentVoluntarilyStakedSov_not_in?: InputMaybe>; id?: InputMaybe; id_gt?: InputMaybe; id_gte?: InputMaybe; @@ -3320,14 +4115,6 @@ export type ProtocolStats_Filter = { totalMarginTradeVolumeUsd_lte?: InputMaybe; totalMarginTradeVolumeUsd_not?: InputMaybe; totalMarginTradeVolumeUsd_not_in?: InputMaybe>; - totalStakedByVestingSov?: InputMaybe; - totalStakedByVestingSov_gt?: InputMaybe; - totalStakedByVestingSov_gte?: InputMaybe; - totalStakedByVestingSov_in?: InputMaybe>; - totalStakedByVestingSov_lt?: InputMaybe; - totalStakedByVestingSov_lte?: InputMaybe; - totalStakedByVestingSov_not?: InputMaybe; - totalStakedByVestingSov_not_in?: InputMaybe>; totalTradingFeesUsd?: InputMaybe; totalTradingFeesUsd_gt?: InputMaybe; totalTradingFeesUsd_gte?: InputMaybe; @@ -3336,14 +4123,14 @@ export type ProtocolStats_Filter = { totalTradingFeesUsd_lte?: InputMaybe; totalTradingFeesUsd_not?: InputMaybe; totalTradingFeesUsd_not_in?: InputMaybe>; - totalTransactedVolumeUsd?: InputMaybe; - totalTransactedVolumeUsd_gt?: InputMaybe; - totalTransactedVolumeUsd_gte?: InputMaybe; - totalTransactedVolumeUsd_in?: InputMaybe>; - totalTransactedVolumeUsd_lt?: InputMaybe; - totalTransactedVolumeUsd_lte?: InputMaybe; - totalTransactedVolumeUsd_not?: InputMaybe; - totalTransactedVolumeUsd_not_in?: InputMaybe>; + totalTransactedVolumeUsd?: InputMaybe; + totalTransactedVolumeUsd_gt?: InputMaybe; + totalTransactedVolumeUsd_gte?: InputMaybe; + totalTransactedVolumeUsd_in?: InputMaybe>; + totalTransactedVolumeUsd_lt?: InputMaybe; + totalTransactedVolumeUsd_lte?: InputMaybe; + totalTransactedVolumeUsd_not?: InputMaybe; + totalTransactedVolumeUsd_not_in?: InputMaybe>; totalUnlendVolumeUsd?: InputMaybe; totalUnlendVolumeUsd_gt?: InputMaybe; totalUnlendVolumeUsd_gte?: InputMaybe; @@ -3352,22 +4139,14 @@ export type ProtocolStats_Filter = { totalUnlendVolumeUsd_lte?: InputMaybe; totalUnlendVolumeUsd_not?: InputMaybe; totalUnlendVolumeUsd_not_in?: InputMaybe>; - totalUsers?: InputMaybe; - totalUsers_gt?: InputMaybe; - totalUsers_gte?: InputMaybe; - totalUsers_in?: InputMaybe>; - totalUsers_lt?: InputMaybe; - totalUsers_lte?: InputMaybe; - totalUsers_not?: InputMaybe; - totalUsers_not_in?: InputMaybe>; - totalVoluntarilyStakedSov?: InputMaybe; - totalVoluntarilyStakedSov_gt?: InputMaybe; - totalVoluntarilyStakedSov_gte?: InputMaybe; - totalVoluntarilyStakedSov_in?: InputMaybe>; - totalVoluntarilyStakedSov_lt?: InputMaybe; - totalVoluntarilyStakedSov_lte?: InputMaybe; - totalVoluntarilyStakedSov_not?: InputMaybe; - totalVoluntarilyStakedSov_not_in?: InputMaybe>; + totalUsers?: InputMaybe; + totalUsers_gt?: InputMaybe; + totalUsers_gte?: InputMaybe; + totalUsers_in?: InputMaybe>; + totalUsers_lt?: InputMaybe; + totalUsers_lte?: InputMaybe; + totalUsers_not?: InputMaybe; + totalUsers_not_in?: InputMaybe>; usdStablecoin?: InputMaybe; usdStablecoin_contains?: InputMaybe; usdStablecoin_ends_with?: InputMaybe; @@ -3386,6 +4165,8 @@ export type ProtocolStats_Filter = { export enum ProtocolStats_OrderBy { BtcUsdPrice = 'btcUsdPrice', + CurrentStakedByVestingSov = 'currentStakedByVestingSov', + CurrentVoluntarilyStakedSov = 'currentVoluntarilyStakedSov', Id = 'id', Tokens = 'tokens', TotalAmmLpFeesUsd = 'totalAmmLpFeesUsd', @@ -3400,12 +4181,10 @@ export enum ProtocolStats_OrderBy { TotalLendingFeesUsd = 'totalLendingFeesUsd', TotalLiquidateVolumeUsd = 'totalLiquidateVolumeUsd', TotalMarginTradeVolumeUsd = 'totalMarginTradeVolumeUsd', - TotalStakedByVestingSov = 'totalStakedByVestingSov', TotalTradingFeesUsd = 'totalTradingFeesUsd', TotalTransactedVolumeUsd = 'totalTransactedVolumeUsd', TotalUnlendVolumeUsd = 'totalUnlendVolumeUsd', TotalUsers = 'totalUsers', - TotalVoluntarilyStakedSov = 'totalVoluntarilyStakedSov', UsdStablecoin = 'usdStablecoin', } @@ -3425,8 +4204,10 @@ export type Query = { conversions: Array; converterRegistries: Array; converterRegistry?: Maybe; + deposit?: Maybe; depositCollateral?: Maybe; depositCollaterals: Array; + deposits: Array; feeSharingTokensTransferred?: Maybe; feeSharingTokensTransferreds: Array; lendingHistoryItem?: Maybe; @@ -3437,18 +4218,30 @@ export type Query = { liquidates: Array; liquidityHistoryItem?: Maybe; liquidityHistoryItems: Array; + liquidityMiningAllocationPoint?: Maybe; + liquidityMiningAllocationPoints: Array; + liquidityMiningGlobal?: Maybe; + liquidityMiningGlobals: Array; liquidityPool?: Maybe; - liquidityPoolAdded?: Maybe; - liquidityPoolAddeds: Array; - liquidityPoolRemoved?: Maybe; - liquidityPoolRemoveds: Array; liquidityPoolToken?: Maybe; liquidityPoolTokens: Array; liquidityPools: Array; loan?: Maybe; loans: Array; + marginOrderCanceled?: Maybe; + marginOrderCanceleds: Array; + marginOrderFilled?: Maybe; + marginOrderFilleds: Array; newConverter?: Maybe; newConverters: Array; + orderCanceled?: Maybe; + orderCanceleds: Array; + orderCreated?: Maybe; + orderCreateds: Array; + orderFilled?: Maybe; + orderFilleds: Array; + ownerUpdate?: Maybe; + ownerUpdates: Array; payBorrowingFee?: Maybe; payBorrowingFees: Array; payLendingFee?: Maybe; @@ -3462,19 +4255,17 @@ export type Query = { protocolStats: Array; rewardsEarnedHistoryItem?: Maybe; rewardsEarnedHistoryItems: Array; + rollover?: Maybe; + rollovers: Array; smartToken?: Maybe; smartTokenAdded?: Maybe; smartTokenAddeds: Array; - smartTokenRemoved?: Maybe; - smartTokenRemoveds: Array; smartTokens: Array; stakeHistoryItem?: Maybe; stakeHistoryItems: Array; swap?: Maybe; swaps: Array; token?: Maybe; - tokenPoolToken?: Maybe; - tokenPoolTokens: Array; tokenSmartToken?: Maybe; tokenSmartTokens: Array; tokens: Array; @@ -3502,6 +4293,8 @@ export type Query = { vestingHistoryItems: Array; voteCast?: Maybe; voteCasts: Array; + withdrawal?: Maybe; + withdrawals: Array; }; export type Query_MetaArgs = { @@ -3604,6 +4397,12 @@ export type QueryConverterRegistryArgs = { subgraphError?: _SubgraphErrorPolicy_; }; +export type QueryDepositArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + export type QueryDepositCollateralArgs = { block?: InputMaybe; id: Scalars['ID']; @@ -3620,6 +4419,16 @@ export type QueryDepositCollateralsArgs = { where?: InputMaybe; }; +export type QueryDepositsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + export type QueryFeeSharingTokensTransferredArgs = { block?: InputMaybe; id: Scalars['ID']; @@ -3700,100 +4509,196 @@ export type QueryLiquidityHistoryItemsArgs = { where?: InputMaybe; }; +export type QueryLiquidityMiningAllocationPointArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + +export type QueryLiquidityMiningAllocationPointsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + +export type QueryLiquidityMiningGlobalArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + +export type QueryLiquidityMiningGlobalsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + export type QueryLiquidityPoolArgs = { block?: InputMaybe; - id: Scalars['ID']; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + +export type QueryLiquidityPoolTokenArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + +export type QueryLiquidityPoolTokensArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + +export type QueryLiquidityPoolsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + +export type QueryLoanArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + +export type QueryLoansArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + +export type QueryMarginOrderCanceledArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + +export type QueryMarginOrderCanceledsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; }; -export type QueryLiquidityPoolAddedArgs = { +export type QueryMarginOrderFilledArgs = { block?: InputMaybe; id: Scalars['ID']; subgraphError?: _SubgraphErrorPolicy_; }; -export type QueryLiquidityPoolAddedsArgs = { +export type QueryMarginOrderFilledsArgs = { block?: InputMaybe; first?: InputMaybe; - orderBy?: InputMaybe; + orderBy?: InputMaybe; orderDirection?: InputMaybe; skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; - where?: InputMaybe; + where?: InputMaybe; }; -export type QueryLiquidityPoolRemovedArgs = { +export type QueryNewConverterArgs = { block?: InputMaybe; id: Scalars['ID']; subgraphError?: _SubgraphErrorPolicy_; }; -export type QueryLiquidityPoolRemovedsArgs = { +export type QueryNewConvertersArgs = { block?: InputMaybe; first?: InputMaybe; - orderBy?: InputMaybe; + orderBy?: InputMaybe; orderDirection?: InputMaybe; skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; - where?: InputMaybe; + where?: InputMaybe; }; -export type QueryLiquidityPoolTokenArgs = { +export type QueryOrderCanceledArgs = { block?: InputMaybe; id: Scalars['ID']; subgraphError?: _SubgraphErrorPolicy_; }; -export type QueryLiquidityPoolTokensArgs = { +export type QueryOrderCanceledsArgs = { block?: InputMaybe; first?: InputMaybe; - orderBy?: InputMaybe; + orderBy?: InputMaybe; orderDirection?: InputMaybe; skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; - where?: InputMaybe; + where?: InputMaybe; }; -export type QueryLiquidityPoolsArgs = { +export type QueryOrderCreatedArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + +export type QueryOrderCreatedsArgs = { block?: InputMaybe; first?: InputMaybe; - orderBy?: InputMaybe; + orderBy?: InputMaybe; orderDirection?: InputMaybe; skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; - where?: InputMaybe; + where?: InputMaybe; }; -export type QueryLoanArgs = { +export type QueryOrderFilledArgs = { block?: InputMaybe; id: Scalars['ID']; subgraphError?: _SubgraphErrorPolicy_; }; -export type QueryLoansArgs = { +export type QueryOrderFilledsArgs = { block?: InputMaybe; first?: InputMaybe; - orderBy?: InputMaybe; + orderBy?: InputMaybe; orderDirection?: InputMaybe; skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; - where?: InputMaybe; + where?: InputMaybe; }; -export type QueryNewConverterArgs = { +export type QueryOwnerUpdateArgs = { block?: InputMaybe; id: Scalars['ID']; subgraphError?: _SubgraphErrorPolicy_; }; -export type QueryNewConvertersArgs = { +export type QueryOwnerUpdatesArgs = { block?: InputMaybe; first?: InputMaybe; - orderBy?: InputMaybe; + orderBy?: InputMaybe; orderDirection?: InputMaybe; skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; - where?: InputMaybe; + where?: InputMaybe; }; export type QueryPayBorrowingFeeArgs = { @@ -3902,42 +4807,42 @@ export type QueryRewardsEarnedHistoryItemsArgs = { where?: InputMaybe; }; -export type QuerySmartTokenArgs = { +export type QueryRolloverArgs = { block?: InputMaybe; id: Scalars['ID']; subgraphError?: _SubgraphErrorPolicy_; }; -export type QuerySmartTokenAddedArgs = { +export type QueryRolloversArgs = { block?: InputMaybe; - id: Scalars['ID']; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; }; -export type QuerySmartTokenAddedsArgs = { +export type QuerySmartTokenArgs = { block?: InputMaybe; - first?: InputMaybe; - orderBy?: InputMaybe; - orderDirection?: InputMaybe; - skip?: InputMaybe; + id: Scalars['ID']; subgraphError?: _SubgraphErrorPolicy_; - where?: InputMaybe; }; -export type QuerySmartTokenRemovedArgs = { +export type QuerySmartTokenAddedArgs = { block?: InputMaybe; id: Scalars['ID']; subgraphError?: _SubgraphErrorPolicy_; }; -export type QuerySmartTokenRemovedsArgs = { +export type QuerySmartTokenAddedsArgs = { block?: InputMaybe; first?: InputMaybe; - orderBy?: InputMaybe; + orderBy?: InputMaybe; orderDirection?: InputMaybe; skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; - where?: InputMaybe; + where?: InputMaybe; }; export type QuerySmartTokensArgs = { @@ -3988,22 +4893,6 @@ export type QueryTokenArgs = { subgraphError?: _SubgraphErrorPolicy_; }; -export type QueryTokenPoolTokenArgs = { - block?: InputMaybe; - id: Scalars['ID']; - subgraphError?: _SubgraphErrorPolicy_; -}; - -export type QueryTokenPoolTokensArgs = { - block?: InputMaybe; - first?: InputMaybe; - orderBy?: InputMaybe; - orderDirection?: InputMaybe; - skip?: InputMaybe; - subgraphError?: _SubgraphErrorPolicy_; - where?: InputMaybe; -}; - export type QueryTokenSmartTokenArgs = { block?: InputMaybe; id: Scalars['ID']; @@ -4222,6 +5111,22 @@ export type QueryVoteCastsArgs = { where?: InputMaybe; }; +export type QueryWithdrawalArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + +export type QueryWithdrawalsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + export enum RewardsEarnedAction { EarnReward = 'EarnReward', RewardClaimed = 'RewardClaimed', @@ -4232,9 +5137,9 @@ export enum RewardsEarnedAction { export type RewardsEarnedHistoryItem = { __typename?: 'RewardsEarnedHistoryItem'; action: RewardsEarnedAction; - amount: Scalars['BigInt']; + amount: Scalars['BigDecimal']; id: Scalars['ID']; - timestamp: Scalars['BigInt']; + timestamp: Scalars['Int']; token?: Maybe; transaction: Transaction; user: UserRewardsEarnedHistory; @@ -4245,14 +5150,14 @@ export type RewardsEarnedHistoryItem_Filter = { action_in?: InputMaybe>; action_not?: InputMaybe; action_not_in?: InputMaybe>; - amount?: InputMaybe; - amount_gt?: InputMaybe; - amount_gte?: InputMaybe; - amount_in?: InputMaybe>; - amount_lt?: InputMaybe; - amount_lte?: InputMaybe; - amount_not?: InputMaybe; - amount_not_in?: InputMaybe>; + amount?: InputMaybe; + amount_gt?: InputMaybe; + amount_gte?: InputMaybe; + amount_in?: InputMaybe>; + amount_lt?: InputMaybe; + amount_lte?: InputMaybe; + amount_not?: InputMaybe; + amount_not_in?: InputMaybe>; id?: InputMaybe; id_gt?: InputMaybe; id_gte?: InputMaybe; @@ -4261,14 +5166,14 @@ export type RewardsEarnedHistoryItem_Filter = { id_lte?: InputMaybe; id_not?: InputMaybe; id_not_in?: InputMaybe>; - timestamp?: InputMaybe; - timestamp_gt?: InputMaybe; - timestamp_gte?: InputMaybe; - timestamp_in?: InputMaybe>; - timestamp_lt?: InputMaybe; - timestamp_lte?: InputMaybe; - timestamp_not?: InputMaybe; - timestamp_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; token?: InputMaybe; token_contains?: InputMaybe; token_ends_with?: InputMaybe; @@ -4323,71 +5228,45 @@ export enum RewardsEarnedHistoryItem_OrderBy { User = 'user', } -/** - * The smart token represents a single reserve asset on a single pool. - * For V1 pools, there is 1 smart token representing both reserve assets. For V2 - * pools, there are 2 smart tokens, one for each reserve asset. - */ -export type SmartToken = { - __typename?: 'SmartToken'; - addedToRegistryBlockNumber?: Maybe; - addedToRegistryTransactionHash?: Maybe; - /** - * connectorTokens are the entity that holds the many-to-many relationship - * between the underlying token asset and the smart token - */ - connectorTokens?: Maybe>; - currentConverterRegistry?: Maybe; - decimals?: Maybe; - /** ID is smart token address */ - id: Scalars['ID']; - /** The AMM pool this smart token "belongs" to */ - liquidityPool: LiquidityPool; - name?: Maybe; - owner: Scalars['Bytes']; - /** smartTokenType can be Relay or Liquid */ - smartTokenType?: Maybe; - symbol?: Maybe; - transfersEnabled?: Maybe; - version?: Maybe; -}; - -/** - * The smart token represents a single reserve asset on a single pool. - * For V1 pools, there is 1 smart token representing both reserve assets. For V2 - * pools, there are 2 smart tokens, one for each reserve asset. - */ -export type SmartTokenConnectorTokensArgs = { - first?: InputMaybe; - orderBy?: InputMaybe; - orderDirection?: InputMaybe; - skip?: InputMaybe; - where?: InputMaybe; -}; - -/** Autogenerated for debugging - to be eventually deleted */ -export type SmartTokenAdded = { - __typename?: 'SmartTokenAdded'; - _smartToken: Scalars['Bytes']; +export type Rollover = { + __typename?: 'Rollover'; + collateral: Scalars['BigDecimal']; emittedBy: Scalars['Bytes']; + endTimestamp: Scalars['Int']; id: Scalars['ID']; - timestamp: Scalars['BigInt']; + lender: Scalars['Bytes']; + loanId: Loan; + principal: Scalars['BigDecimal']; + reward: Scalars['BigDecimal']; + rewardReceiver: User; + timestamp: Scalars['Int']; transaction: Transaction; + user: User; }; -export type SmartTokenAdded_Filter = { - _smartToken?: InputMaybe; - _smartToken_contains?: InputMaybe; - _smartToken_in?: InputMaybe>; - _smartToken_not?: InputMaybe; - _smartToken_not_contains?: InputMaybe; - _smartToken_not_in?: InputMaybe>; +export type Rollover_Filter = { + collateral?: InputMaybe; + collateral_gt?: InputMaybe; + collateral_gte?: InputMaybe; + collateral_in?: InputMaybe>; + collateral_lt?: InputMaybe; + collateral_lte?: InputMaybe; + collateral_not?: InputMaybe; + collateral_not_in?: InputMaybe>; emittedBy?: InputMaybe; emittedBy_contains?: InputMaybe; emittedBy_in?: InputMaybe>; emittedBy_not?: InputMaybe; emittedBy_not_contains?: InputMaybe; emittedBy_not_in?: InputMaybe>; + endTimestamp?: InputMaybe; + endTimestamp_gt?: InputMaybe; + endTimestamp_gte?: InputMaybe; + endTimestamp_in?: InputMaybe>; + endTimestamp_lt?: InputMaybe; + endTimestamp_lte?: InputMaybe; + endTimestamp_not?: InputMaybe; + endTimestamp_not_in?: InputMaybe>; id?: InputMaybe; id_gt?: InputMaybe; id_gte?: InputMaybe; @@ -4396,14 +5275,64 @@ export type SmartTokenAdded_Filter = { id_lte?: InputMaybe; id_not?: InputMaybe; id_not_in?: InputMaybe>; - timestamp?: InputMaybe; - timestamp_gt?: InputMaybe; - timestamp_gte?: InputMaybe; - timestamp_in?: InputMaybe>; - timestamp_lt?: InputMaybe; - timestamp_lte?: InputMaybe; - timestamp_not?: InputMaybe; - timestamp_not_in?: InputMaybe>; + lender?: InputMaybe; + lender_contains?: InputMaybe; + lender_in?: InputMaybe>; + lender_not?: InputMaybe; + lender_not_contains?: InputMaybe; + lender_not_in?: InputMaybe>; + loanId?: InputMaybe; + loanId_contains?: InputMaybe; + loanId_ends_with?: InputMaybe; + loanId_gt?: InputMaybe; + loanId_gte?: InputMaybe; + loanId_in?: InputMaybe>; + loanId_lt?: InputMaybe; + loanId_lte?: InputMaybe; + loanId_not?: InputMaybe; + loanId_not_contains?: InputMaybe; + loanId_not_ends_with?: InputMaybe; + loanId_not_in?: InputMaybe>; + loanId_not_starts_with?: InputMaybe; + loanId_starts_with?: InputMaybe; + principal?: InputMaybe; + principal_gt?: InputMaybe; + principal_gte?: InputMaybe; + principal_in?: InputMaybe>; + principal_lt?: InputMaybe; + principal_lte?: InputMaybe; + principal_not?: InputMaybe; + principal_not_in?: InputMaybe>; + reward?: InputMaybe; + rewardReceiver?: InputMaybe; + rewardReceiver_contains?: InputMaybe; + rewardReceiver_ends_with?: InputMaybe; + rewardReceiver_gt?: InputMaybe; + rewardReceiver_gte?: InputMaybe; + rewardReceiver_in?: InputMaybe>; + rewardReceiver_lt?: InputMaybe; + rewardReceiver_lte?: InputMaybe; + rewardReceiver_not?: InputMaybe; + rewardReceiver_not_contains?: InputMaybe; + rewardReceiver_not_ends_with?: InputMaybe; + rewardReceiver_not_in?: InputMaybe>; + rewardReceiver_not_starts_with?: InputMaybe; + rewardReceiver_starts_with?: InputMaybe; + reward_gt?: InputMaybe; + reward_gte?: InputMaybe; + reward_in?: InputMaybe>; + reward_lt?: InputMaybe; + reward_lte?: InputMaybe; + reward_not?: InputMaybe; + reward_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; transaction?: InputMaybe; transaction_contains?: InputMaybe; transaction_ends_with?: InputMaybe; @@ -4418,27 +5347,85 @@ export type SmartTokenAdded_Filter = { transaction_not_in?: InputMaybe>; transaction_not_starts_with?: InputMaybe; transaction_starts_with?: InputMaybe; + user?: InputMaybe; + user_contains?: InputMaybe; + user_ends_with?: InputMaybe; + user_gt?: InputMaybe; + user_gte?: InputMaybe; + user_in?: InputMaybe>; + user_lt?: InputMaybe; + user_lte?: InputMaybe; + user_not?: InputMaybe; + user_not_contains?: InputMaybe; + user_not_ends_with?: InputMaybe; + user_not_in?: InputMaybe>; + user_not_starts_with?: InputMaybe; + user_starts_with?: InputMaybe; }; -export enum SmartTokenAdded_OrderBy { - SmartToken = '_smartToken', +export enum Rollover_OrderBy { + Collateral = 'collateral', EmittedBy = 'emittedBy', + EndTimestamp = 'endTimestamp', Id = 'id', + Lender = 'lender', + LoanId = 'loanId', + Principal = 'principal', + Reward = 'reward', + RewardReceiver = 'rewardReceiver', Timestamp = 'timestamp', Transaction = 'transaction', + User = 'user', } +/** + * The smart token represents a single reserve asset on a single pool. + * For V1 pools, there is 1 smart token representing both reserve assets. For V2 pools, there are 2 smart tokens, one for each reserve asset. + */ +export type SmartToken = { + __typename?: 'SmartToken'; + addedToRegistryBlockNumber?: Maybe; + addedToRegistryTransactionHash?: Maybe; + /** connectorTokens are the entity that holds the many-to-many relationship between the underlying token asset and the smart token */ + connectorTokens?: Maybe>; + currentConverterRegistry?: Maybe; + decimals?: Maybe; + /** ID is smart token address */ + id: Scalars['ID']; + /** The AMM pool this smart token "belongs" to */ + liquidityPool: LiquidityPool; + name?: Maybe; + owner: Scalars['String']; + /** smartTokenType can be Relay or Liquid */ + smartTokenType?: Maybe; + symbol?: Maybe; + transfersEnabled?: Maybe; + version?: Maybe; +}; + +/** + * The smart token represents a single reserve asset on a single pool. + * For V1 pools, there is 1 smart token representing both reserve assets. For V2 pools, there are 2 smart tokens, one for each reserve asset. + */ +export type SmartTokenConnectorTokensArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + /** Autogenerated for debugging - to be eventually deleted */ -export type SmartTokenRemoved = { - __typename?: 'SmartTokenRemoved'; +export type SmartTokenAdded = { + __typename?: 'SmartTokenAdded'; _smartToken: Scalars['Bytes']; emittedBy: Scalars['Bytes']; id: Scalars['ID']; - timestamp: Scalars['BigInt']; + timestamp: Scalars['Int']; transaction: Transaction; }; -export type SmartTokenRemoved_Filter = { +export type SmartTokenAdded_Filter = { _smartToken?: InputMaybe; _smartToken_contains?: InputMaybe; _smartToken_in?: InputMaybe>; @@ -4459,14 +5446,14 @@ export type SmartTokenRemoved_Filter = { id_lte?: InputMaybe; id_not?: InputMaybe; id_not_in?: InputMaybe>; - timestamp?: InputMaybe; - timestamp_gt?: InputMaybe; - timestamp_gte?: InputMaybe; - timestamp_in?: InputMaybe>; - timestamp_lt?: InputMaybe; - timestamp_lte?: InputMaybe; - timestamp_not?: InputMaybe; - timestamp_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; transaction?: InputMaybe; transaction_contains?: InputMaybe; transaction_ends_with?: InputMaybe; @@ -4483,7 +5470,7 @@ export type SmartTokenRemoved_Filter = { transaction_starts_with?: InputMaybe; }; -export enum SmartTokenRemoved_OrderBy { +export enum SmartTokenAdded_OrderBy { SmartToken = '_smartToken', EmittedBy = 'emittedBy', Id = 'id', @@ -4492,14 +5479,14 @@ export enum SmartTokenRemoved_OrderBy { } export type SmartToken_Filter = { - addedToRegistryBlockNumber?: InputMaybe; - addedToRegistryBlockNumber_gt?: InputMaybe; - addedToRegistryBlockNumber_gte?: InputMaybe; - addedToRegistryBlockNumber_in?: InputMaybe>; - addedToRegistryBlockNumber_lt?: InputMaybe; - addedToRegistryBlockNumber_lte?: InputMaybe; - addedToRegistryBlockNumber_not?: InputMaybe; - addedToRegistryBlockNumber_not_in?: InputMaybe>; + addedToRegistryBlockNumber?: InputMaybe; + addedToRegistryBlockNumber_gt?: InputMaybe; + addedToRegistryBlockNumber_gte?: InputMaybe; + addedToRegistryBlockNumber_in?: InputMaybe>; + addedToRegistryBlockNumber_lt?: InputMaybe; + addedToRegistryBlockNumber_lte?: InputMaybe; + addedToRegistryBlockNumber_not?: InputMaybe; + addedToRegistryBlockNumber_not_in?: InputMaybe>; addedToRegistryTransactionHash?: InputMaybe; addedToRegistryTransactionHash_contains?: InputMaybe; addedToRegistryTransactionHash_in?: InputMaybe>; @@ -4550,12 +5537,20 @@ export type SmartToken_Filter = { name_not_in?: InputMaybe>; name_not_starts_with?: InputMaybe; name_starts_with?: InputMaybe; - owner?: InputMaybe; - owner_contains?: InputMaybe; - owner_in?: InputMaybe>; - owner_not?: InputMaybe; - owner_not_contains?: InputMaybe; - owner_not_in?: InputMaybe>; + owner?: InputMaybe; + owner_contains?: InputMaybe; + owner_ends_with?: InputMaybe; + owner_gt?: InputMaybe; + owner_gte?: InputMaybe; + owner_in?: InputMaybe>; + owner_lt?: InputMaybe; + owner_lte?: InputMaybe; + owner_not?: InputMaybe; + owner_not_contains?: InputMaybe; + owner_not_ends_with?: InputMaybe; + owner_not_in?: InputMaybe>; + owner_not_starts_with?: InputMaybe; + owner_starts_with?: InputMaybe; smartTokenType?: InputMaybe; smartTokenType_contains?: InputMaybe; smartTokenType_ends_with?: InputMaybe; @@ -4627,10 +5622,10 @@ export enum StakeHistoryAction { export type StakeHistoryItem = { __typename?: 'StakeHistoryItem'; action: StakeHistoryAction; - amount?: Maybe; + amount?: Maybe; id: Scalars['ID']; - lockedUntil?: Maybe; - timestamp: Scalars['BigInt']; + lockedUntil?: Maybe; + timestamp: Scalars['Int']; transaction: Transaction; user: UserStakeHistory; }; @@ -4640,38 +5635,38 @@ export type StakeHistoryItem_Filter = { action_in?: InputMaybe>; action_not?: InputMaybe; action_not_in?: InputMaybe>; - amount?: InputMaybe; - amount_gt?: InputMaybe; - amount_gte?: InputMaybe; - amount_in?: InputMaybe>; - amount_lt?: InputMaybe; - amount_lte?: InputMaybe; - amount_not?: InputMaybe; - amount_not_in?: InputMaybe>; + amount?: InputMaybe; + amount_gt?: InputMaybe; + amount_gte?: InputMaybe; + amount_in?: InputMaybe>; + amount_lt?: InputMaybe; + amount_lte?: InputMaybe; + amount_not?: InputMaybe; + amount_not_in?: InputMaybe>; id?: InputMaybe; id_gt?: InputMaybe; id_gte?: InputMaybe; - id_in?: InputMaybe>; - id_lt?: InputMaybe; - id_lte?: InputMaybe; - id_not?: InputMaybe; - id_not_in?: InputMaybe>; - lockedUntil?: InputMaybe; - lockedUntil_gt?: InputMaybe; - lockedUntil_gte?: InputMaybe; - lockedUntil_in?: InputMaybe>; - lockedUntil_lt?: InputMaybe; - lockedUntil_lte?: InputMaybe; - lockedUntil_not?: InputMaybe; - lockedUntil_not_in?: InputMaybe>; - timestamp?: InputMaybe; - timestamp_gt?: InputMaybe; - timestamp_gte?: InputMaybe; - timestamp_in?: InputMaybe>; - timestamp_lt?: InputMaybe; - timestamp_lte?: InputMaybe; - timestamp_not?: InputMaybe; - timestamp_not_in?: InputMaybe>; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + lockedUntil?: InputMaybe; + lockedUntil_gt?: InputMaybe; + lockedUntil_gte?: InputMaybe; + lockedUntil_in?: InputMaybe>; + lockedUntil_lt?: InputMaybe; + lockedUntil_lte?: InputMaybe; + lockedUntil_not?: InputMaybe; + lockedUntil_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; transaction?: InputMaybe; transaction_contains?: InputMaybe; transaction_ends_with?: InputMaybe; @@ -4728,8 +5723,10 @@ export type Subscription = { conversions: Array; converterRegistries: Array; converterRegistry?: Maybe; + deposit?: Maybe; depositCollateral?: Maybe; depositCollaterals: Array; + deposits: Array; feeSharingTokensTransferred?: Maybe; feeSharingTokensTransferreds: Array; lendingHistoryItem?: Maybe; @@ -4740,18 +5737,30 @@ export type Subscription = { liquidates: Array; liquidityHistoryItem?: Maybe; liquidityHistoryItems: Array; + liquidityMiningAllocationPoint?: Maybe; + liquidityMiningAllocationPoints: Array; + liquidityMiningGlobal?: Maybe; + liquidityMiningGlobals: Array; liquidityPool?: Maybe; - liquidityPoolAdded?: Maybe; - liquidityPoolAddeds: Array; - liquidityPoolRemoved?: Maybe; - liquidityPoolRemoveds: Array; liquidityPoolToken?: Maybe; liquidityPoolTokens: Array; liquidityPools: Array; loan?: Maybe; loans: Array; + marginOrderCanceled?: Maybe; + marginOrderCanceleds: Array; + marginOrderFilled?: Maybe; + marginOrderFilleds: Array; newConverter?: Maybe; newConverters: Array; + orderCanceled?: Maybe; + orderCanceleds: Array; + orderCreated?: Maybe; + orderCreateds: Array; + orderFilled?: Maybe; + orderFilleds: Array; + ownerUpdate?: Maybe; + ownerUpdates: Array; payBorrowingFee?: Maybe; payBorrowingFees: Array; payLendingFee?: Maybe; @@ -4765,19 +5774,17 @@ export type Subscription = { protocolStats: Array; rewardsEarnedHistoryItem?: Maybe; rewardsEarnedHistoryItems: Array; + rollover?: Maybe; + rollovers: Array; smartToken?: Maybe; smartTokenAdded?: Maybe; smartTokenAddeds: Array; - smartTokenRemoved?: Maybe; - smartTokenRemoveds: Array; smartTokens: Array; stakeHistoryItem?: Maybe; stakeHistoryItems: Array; swap?: Maybe; swaps: Array; token?: Maybe; - tokenPoolToken?: Maybe; - tokenPoolTokens: Array; tokenSmartToken?: Maybe; tokenSmartTokens: Array; tokens: Array; @@ -4805,6 +5812,8 @@ export type Subscription = { vestingHistoryItems: Array; voteCast?: Maybe; voteCasts: Array; + withdrawal?: Maybe; + withdrawals: Array; }; export type Subscription_MetaArgs = { @@ -4907,6 +5916,12 @@ export type SubscriptionConverterRegistryArgs = { subgraphError?: _SubgraphErrorPolicy_; }; +export type SubscriptionDepositArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + export type SubscriptionDepositCollateralArgs = { block?: InputMaybe; id: Scalars['ID']; @@ -4923,6 +5938,16 @@ export type SubscriptionDepositCollateralsArgs = { where?: InputMaybe; }; +export type SubscriptionDepositsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + export type SubscriptionFeeSharingTokensTransferredArgs = { block?: InputMaybe; id: Scalars['ID']; @@ -5003,42 +6028,42 @@ export type SubscriptionLiquidityHistoryItemsArgs = { where?: InputMaybe; }; -export type SubscriptionLiquidityPoolArgs = { - block?: InputMaybe; - id: Scalars['ID']; - subgraphError?: _SubgraphErrorPolicy_; -}; - -export type SubscriptionLiquidityPoolAddedArgs = { +export type SubscriptionLiquidityMiningAllocationPointArgs = { block?: InputMaybe; id: Scalars['ID']; subgraphError?: _SubgraphErrorPolicy_; }; -export type SubscriptionLiquidityPoolAddedsArgs = { +export type SubscriptionLiquidityMiningAllocationPointsArgs = { block?: InputMaybe; first?: InputMaybe; - orderBy?: InputMaybe; + orderBy?: InputMaybe; orderDirection?: InputMaybe; skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; - where?: InputMaybe; + where?: InputMaybe; }; -export type SubscriptionLiquidityPoolRemovedArgs = { +export type SubscriptionLiquidityMiningGlobalArgs = { block?: InputMaybe; id: Scalars['ID']; subgraphError?: _SubgraphErrorPolicy_; }; -export type SubscriptionLiquidityPoolRemovedsArgs = { +export type SubscriptionLiquidityMiningGlobalsArgs = { block?: InputMaybe; first?: InputMaybe; - orderBy?: InputMaybe; + orderBy?: InputMaybe; orderDirection?: InputMaybe; skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; - where?: InputMaybe; + where?: InputMaybe; +}; + +export type SubscriptionLiquidityPoolArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; }; export type SubscriptionLiquidityPoolTokenArgs = { @@ -5083,6 +6108,38 @@ export type SubscriptionLoansArgs = { where?: InputMaybe; }; +export type SubscriptionMarginOrderCanceledArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + +export type SubscriptionMarginOrderCanceledsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + +export type SubscriptionMarginOrderFilledArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + +export type SubscriptionMarginOrderFilledsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + export type SubscriptionNewConverterArgs = { block?: InputMaybe; id: Scalars['ID']; @@ -5099,6 +6156,70 @@ export type SubscriptionNewConvertersArgs = { where?: InputMaybe; }; +export type SubscriptionOrderCanceledArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + +export type SubscriptionOrderCanceledsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + +export type SubscriptionOrderCreatedArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + +export type SubscriptionOrderCreatedsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + +export type SubscriptionOrderFilledArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + +export type SubscriptionOrderFilledsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + +export type SubscriptionOwnerUpdateArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + +export type SubscriptionOwnerUpdatesArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + export type SubscriptionPayBorrowingFeeArgs = { block?: InputMaybe; id: Scalars['ID']; @@ -5205,42 +6326,42 @@ export type SubscriptionRewardsEarnedHistoryItemsArgs = { where?: InputMaybe; }; -export type SubscriptionSmartTokenArgs = { +export type SubscriptionRolloverArgs = { block?: InputMaybe; id: Scalars['ID']; subgraphError?: _SubgraphErrorPolicy_; }; -export type SubscriptionSmartTokenAddedArgs = { +export type SubscriptionRolloversArgs = { block?: InputMaybe; - id: Scalars['ID']; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; }; -export type SubscriptionSmartTokenAddedsArgs = { +export type SubscriptionSmartTokenArgs = { block?: InputMaybe; - first?: InputMaybe; - orderBy?: InputMaybe; - orderDirection?: InputMaybe; - skip?: InputMaybe; + id: Scalars['ID']; subgraphError?: _SubgraphErrorPolicy_; - where?: InputMaybe; }; -export type SubscriptionSmartTokenRemovedArgs = { +export type SubscriptionSmartTokenAddedArgs = { block?: InputMaybe; id: Scalars['ID']; subgraphError?: _SubgraphErrorPolicy_; }; -export type SubscriptionSmartTokenRemovedsArgs = { +export type SubscriptionSmartTokenAddedsArgs = { block?: InputMaybe; first?: InputMaybe; - orderBy?: InputMaybe; + orderBy?: InputMaybe; orderDirection?: InputMaybe; skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; - where?: InputMaybe; + where?: InputMaybe; }; export type SubscriptionSmartTokensArgs = { @@ -5291,22 +6412,6 @@ export type SubscriptionTokenArgs = { subgraphError?: _SubgraphErrorPolicy_; }; -export type SubscriptionTokenPoolTokenArgs = { - block?: InputMaybe; - id: Scalars['ID']; - subgraphError?: _SubgraphErrorPolicy_; -}; - -export type SubscriptionTokenPoolTokensArgs = { - block?: InputMaybe; - first?: InputMaybe; - orderBy?: InputMaybe; - orderDirection?: InputMaybe; - skip?: InputMaybe; - subgraphError?: _SubgraphErrorPolicy_; - where?: InputMaybe; -}; - export type SubscriptionTokenSmartTokenArgs = { block?: InputMaybe; id: Scalars['ID']; @@ -5525,11 +6630,25 @@ export type SubscriptionVoteCastsArgs = { where?: InputMaybe; }; +export type SubscriptionWithdrawalArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + +export type SubscriptionWithdrawalsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + /** * The Swap entity is an aggregated entity of the individual Conversion events in a transaction. - * For example, if a User swaps XUSD to SOV, there will be 2 Conversion events - * through 2 AMMs (XUSD-BTC and BTC-SOV) in one transaction. These two Conversions - * are aggregated here. + * For example, if a User swaps XUSD to SOV, there will be 2 Conversion events through 2 AMMs (XUSD-BTC and BTC-SOV) in one transaction. These two Conversions are aggregated here. */ export type Swap = { __typename?: 'Swap'; @@ -5540,12 +6659,15 @@ export type Swap = { /** Transaction hash of this swap */ id: Scalars['ID']; isBorrow: Scalars['Boolean']; + /** Was this swap a limit order? */ + isLimit: Scalars['Boolean']; + /** Was this swap part of a margin trade? */ isMarginTrade: Scalars['Boolean']; /** The number of AMM Conversions involved in this swap (this is primarily for debugging purposes) */ numConversions: Scalars['Int']; /** Rate is calculated as toAmount / fromAmount */ rate: Scalars['BigDecimal']; - timestamp: Scalars['BigInt']; + timestamp: Scalars['Int']; toAmount: Scalars['BigDecimal']; toToken: Token; transaction: Transaction; @@ -5555,9 +6677,7 @@ export type Swap = { /** * The Swap entity is an aggregated entity of the individual Conversion events in a transaction. - * For example, if a User swaps XUSD to SOV, there will be 2 Conversion events - * through 2 AMMs (XUSD-BTC and BTC-SOV) in one transaction. These two Conversions - * are aggregated here. + * For example, if a User swaps XUSD to SOV, there will be 2 Conversion events through 2 AMMs (XUSD-BTC and BTC-SOV) in one transaction. These two Conversions are aggregated here. */ export type SwapConversionsArgs = { first?: InputMaybe; @@ -5602,6 +6722,10 @@ export type Swap_Filter = { isBorrow_in?: InputMaybe>; isBorrow_not?: InputMaybe; isBorrow_not_in?: InputMaybe>; + isLimit?: InputMaybe; + isLimit_in?: InputMaybe>; + isLimit_not?: InputMaybe; + isLimit_not_in?: InputMaybe>; isMarginTrade?: InputMaybe; isMarginTrade_in?: InputMaybe>; isMarginTrade_not?: InputMaybe; @@ -5622,14 +6746,14 @@ export type Swap_Filter = { rate_lte?: InputMaybe; rate_not?: InputMaybe; rate_not_in?: InputMaybe>; - timestamp?: InputMaybe; - timestamp_gt?: InputMaybe; - timestamp_gte?: InputMaybe; - timestamp_in?: InputMaybe>; - timestamp_lt?: InputMaybe; - timestamp_lte?: InputMaybe; - timestamp_not?: InputMaybe; - timestamp_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; toAmount?: InputMaybe; toAmount_gt?: InputMaybe; toAmount_gte?: InputMaybe; @@ -5688,6 +6812,7 @@ export enum Swap_OrderBy { FromToken = 'fromToken', Id = 'id', IsBorrow = 'isBorrow', + IsLimit = 'isLimit', IsMarginTrade = 'isMarginTrade', NumConversions = 'numConversions', Rate = 'rate', @@ -5700,123 +6825,53 @@ export enum Swap_OrderBy { /** This entity represents an ERC20 token traded on the Sovryn Protocol */ export type Token = { - __typename?: 'Token'; - /** The total volume of this token that has been traded through the protocol quoted in BTC */ - btcVolume: Scalars['BigDecimal']; - currentConverterRegistry?: Maybe; - decimals?: Maybe; - /** Does this token have an AMM pool with rBTC as the other reserve asset? */ - hasBtcPool?: Maybe; - /** Does this token have an AMM pool with the protocol stablecoin as the other reserve asset? */ - hasStablecoinPool?: Maybe; - /** The ID is the contract address of the token on RSK */ - id: Scalars['ID']; - lastPriceBtc: Scalars['BigDecimal']; - lastPriceUsd: Scalars['BigDecimal']; - /** The addresses of the LiquidityPools where this token is a reserve asset */ - liquidityPools?: Maybe>; - name?: Maybe; - /** previous BTC price used for candleSticks */ - prevPriceBtc: Scalars['BigDecimal']; - /** previous BTC price used for candleSticks */ - prevPriceUsd: Scalars['BigDecimal']; - /** The smart tokens that have this token as an underlying asset */ - smartTokens?: Maybe>; - symbol?: Maybe; - /** The total volume of this token that has been traded through the protocol */ - tokenVolume: Scalars['BigDecimal']; - /** The total volume of this token that has been traded through the protocol quoted in USD */ - usdVolume: Scalars['BigDecimal']; - version?: Maybe; -}; - -/** This entity represents an ERC20 token traded on the Sovryn Protocol */ -export type TokenLiquidityPoolsArgs = { - first?: InputMaybe; - orderBy?: InputMaybe; - orderDirection?: InputMaybe; - skip?: InputMaybe; - where?: InputMaybe; -}; - -/** This entity represents an ERC20 token traded on the Sovryn Protocol */ -export type TokenSmartTokensArgs = { - first?: InputMaybe; - orderBy?: InputMaybe; - orderDirection?: InputMaybe; - skip?: InputMaybe; - where?: InputMaybe; -}; - -/** The entity stores the many-to-many relationship between underlying tokens and pool tokens */ -export type TokenPoolToken = { - __typename?: 'TokenPoolToken'; - /** ID is token address + poolToken address */ - id: Scalars['ID']; - liquidityPool: LiquidityPool; - poolToken: PoolToken; - token: Token; -}; - -export type TokenPoolToken_Filter = { - id?: InputMaybe; - id_gt?: InputMaybe; - id_gte?: InputMaybe; - id_in?: InputMaybe>; - id_lt?: InputMaybe; - id_lte?: InputMaybe; - id_not?: InputMaybe; - id_not_in?: InputMaybe>; - liquidityPool?: InputMaybe; - liquidityPool_contains?: InputMaybe; - liquidityPool_ends_with?: InputMaybe; - liquidityPool_gt?: InputMaybe; - liquidityPool_gte?: InputMaybe; - liquidityPool_in?: InputMaybe>; - liquidityPool_lt?: InputMaybe; - liquidityPool_lte?: InputMaybe; - liquidityPool_not?: InputMaybe; - liquidityPool_not_contains?: InputMaybe; - liquidityPool_not_ends_with?: InputMaybe; - liquidityPool_not_in?: InputMaybe>; - liquidityPool_not_starts_with?: InputMaybe; - liquidityPool_starts_with?: InputMaybe; - poolToken?: InputMaybe; - poolToken_contains?: InputMaybe; - poolToken_ends_with?: InputMaybe; - poolToken_gt?: InputMaybe; - poolToken_gte?: InputMaybe; - poolToken_in?: InputMaybe>; - poolToken_lt?: InputMaybe; - poolToken_lte?: InputMaybe; - poolToken_not?: InputMaybe; - poolToken_not_contains?: InputMaybe; - poolToken_not_ends_with?: InputMaybe; - poolToken_not_in?: InputMaybe>; - poolToken_not_starts_with?: InputMaybe; - poolToken_starts_with?: InputMaybe; - token?: InputMaybe; - token_contains?: InputMaybe; - token_ends_with?: InputMaybe; - token_gt?: InputMaybe; - token_gte?: InputMaybe; - token_in?: InputMaybe>; - token_lt?: InputMaybe; - token_lte?: InputMaybe; - token_not?: InputMaybe; - token_not_contains?: InputMaybe; - token_not_ends_with?: InputMaybe; - token_not_in?: InputMaybe>; - token_not_starts_with?: InputMaybe; - token_starts_with?: InputMaybe; + __typename?: 'Token'; + /** The total volume of this token that has been traded through the protocol quoted in BTC */ + btcVolume: Scalars['BigDecimal']; + currentConverterRegistry?: Maybe; + decimals?: Maybe; + /** Does this token have an AMM pool with rBTC as the other reserve asset? */ + hasBtcPool?: Maybe; + /** Does this token have an AMM pool with the protocol stablecoin as the other reserve asset? */ + hasStablecoinPool?: Maybe; + /** The ID is the contract address of the token on RSK */ + id: Scalars['ID']; + lastPriceBtc: Scalars['BigDecimal']; + lastPriceUsd: Scalars['BigDecimal']; + /** The addresses of the LiquidityPools where this token is a reserve asset */ + liquidityPools?: Maybe>; + name?: Maybe; + /** previous BTC price used for candleSticks */ + prevPriceBtc: Scalars['BigDecimal']; + /** previous BTC price used for candleSticks */ + prevPriceUsd: Scalars['BigDecimal']; + /** The smart tokens that have this token as an underlying asset */ + smartTokens?: Maybe>; + symbol?: Maybe; + /** The total volume of this token that has been traded through the protocol */ + tokenVolume: Scalars['BigDecimal']; + /** The total volume of this token that has been traded through the protocol quoted in USD */ + usdVolume: Scalars['BigDecimal']; + version?: Maybe; }; -export enum TokenPoolToken_OrderBy { - Id = 'id', - LiquidityPool = 'liquidityPool', - PoolToken = 'poolToken', - Token = 'token', -} +/** This entity represents an ERC20 token traded on the Sovryn Protocol */ +export type TokenLiquidityPoolsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +/** This entity represents an ERC20 token traded on the Sovryn Protocol */ +export type TokenSmartTokensArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; /** This entity is to store a many-to-many relationship between tokens and smart tokens */ export type TokenSmartToken = { @@ -6028,27 +7083,27 @@ export enum Token_OrderBy { export type TokensStaked = { __typename?: 'TokensStaked'; - amount: Scalars['BigInt']; + amount: Scalars['BigDecimal']; emittedBy: Scalars['Bytes']; id: Scalars['ID']; isUserStaked: Scalars['Boolean']; - lockedUntil: Scalars['BigInt']; + lockedUntil: Scalars['Int']; staker: Scalars['Bytes']; - timestamp: Scalars['BigInt']; - totalStaked: Scalars['BigInt']; + timestamp: Scalars['Int']; + totalStaked: Scalars['BigDecimal']; transaction: Transaction; user?: Maybe; }; export type TokensStaked_Filter = { - amount?: InputMaybe; - amount_gt?: InputMaybe; - amount_gte?: InputMaybe; - amount_in?: InputMaybe>; - amount_lt?: InputMaybe; - amount_lte?: InputMaybe; - amount_not?: InputMaybe; - amount_not_in?: InputMaybe>; + amount?: InputMaybe; + amount_gt?: InputMaybe; + amount_gte?: InputMaybe; + amount_in?: InputMaybe>; + amount_lt?: InputMaybe; + amount_lte?: InputMaybe; + amount_not?: InputMaybe; + amount_not_in?: InputMaybe>; emittedBy?: InputMaybe; emittedBy_contains?: InputMaybe; emittedBy_in?: InputMaybe>; @@ -6067,36 +7122,36 @@ export type TokensStaked_Filter = { isUserStaked_in?: InputMaybe>; isUserStaked_not?: InputMaybe; isUserStaked_not_in?: InputMaybe>; - lockedUntil?: InputMaybe; - lockedUntil_gt?: InputMaybe; - lockedUntil_gte?: InputMaybe; - lockedUntil_in?: InputMaybe>; - lockedUntil_lt?: InputMaybe; - lockedUntil_lte?: InputMaybe; - lockedUntil_not?: InputMaybe; - lockedUntil_not_in?: InputMaybe>; + lockedUntil?: InputMaybe; + lockedUntil_gt?: InputMaybe; + lockedUntil_gte?: InputMaybe; + lockedUntil_in?: InputMaybe>; + lockedUntil_lt?: InputMaybe; + lockedUntil_lte?: InputMaybe; + lockedUntil_not?: InputMaybe; + lockedUntil_not_in?: InputMaybe>; staker?: InputMaybe; staker_contains?: InputMaybe; staker_in?: InputMaybe>; staker_not?: InputMaybe; staker_not_contains?: InputMaybe; staker_not_in?: InputMaybe>; - timestamp?: InputMaybe; - timestamp_gt?: InputMaybe; - timestamp_gte?: InputMaybe; - timestamp_in?: InputMaybe>; - timestamp_lt?: InputMaybe; - timestamp_lte?: InputMaybe; - timestamp_not?: InputMaybe; - timestamp_not_in?: InputMaybe>; - totalStaked?: InputMaybe; - totalStaked_gt?: InputMaybe; - totalStaked_gte?: InputMaybe; - totalStaked_in?: InputMaybe>; - totalStaked_lt?: InputMaybe; - totalStaked_lte?: InputMaybe; - totalStaked_not?: InputMaybe; - totalStaked_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; + totalStaked?: InputMaybe; + totalStaked_gt?: InputMaybe; + totalStaked_gte?: InputMaybe; + totalStaked_in?: InputMaybe>; + totalStaked_lt?: InputMaybe; + totalStaked_lte?: InputMaybe; + totalStaked_not?: InputMaybe; + totalStaked_not_in?: InputMaybe>; transaction?: InputMaybe; transaction_contains?: InputMaybe; transaction_ends_with?: InputMaybe; @@ -6142,69 +7197,77 @@ export enum TokensStaked_OrderBy { export type Trade = { __typename?: 'Trade'; - borrowedAmount: Scalars['BigInt']; - collateralToken: Scalars['Bytes']; - currentLeverage: Scalars['BigInt']; + borrowedAmount: Scalars['BigDecimal']; + collateralToken: Token; + currentLeverage: Scalars['BigDecimal']; emittedBy: Scalars['Bytes']; - entryLeverage: Scalars['BigInt']; - entryPrice: Scalars['BigInt']; + entryLeverage: Scalars['BigDecimal']; + entryPrice: Scalars['BigDecimal']; id: Scalars['ID']; - interestRate: Scalars['BigInt']; + interestRate: Scalars['BigDecimal']; lender: Scalars['Bytes']; loanId: Loan; - loanToken: Scalars['Bytes']; - positionSize: Scalars['BigInt']; - settlementDate: Scalars['BigInt']; - timestamp: Scalars['BigInt']; + loanToken: Token; + positionSize: Scalars['BigDecimal']; + settlementDate: Scalars['Int']; + timestamp: Scalars['Int']; transaction: Transaction; user: User; }; export type Trade_Filter = { - borrowedAmount?: InputMaybe; - borrowedAmount_gt?: InputMaybe; - borrowedAmount_gte?: InputMaybe; - borrowedAmount_in?: InputMaybe>; - borrowedAmount_lt?: InputMaybe; - borrowedAmount_lte?: InputMaybe; - borrowedAmount_not?: InputMaybe; - borrowedAmount_not_in?: InputMaybe>; - collateralToken?: InputMaybe; - collateralToken_contains?: InputMaybe; - collateralToken_in?: InputMaybe>; - collateralToken_not?: InputMaybe; - collateralToken_not_contains?: InputMaybe; - collateralToken_not_in?: InputMaybe>; - currentLeverage?: InputMaybe; - currentLeverage_gt?: InputMaybe; - currentLeverage_gte?: InputMaybe; - currentLeverage_in?: InputMaybe>; - currentLeverage_lt?: InputMaybe; - currentLeverage_lte?: InputMaybe; - currentLeverage_not?: InputMaybe; - currentLeverage_not_in?: InputMaybe>; + borrowedAmount?: InputMaybe; + borrowedAmount_gt?: InputMaybe; + borrowedAmount_gte?: InputMaybe; + borrowedAmount_in?: InputMaybe>; + borrowedAmount_lt?: InputMaybe; + borrowedAmount_lte?: InputMaybe; + borrowedAmount_not?: InputMaybe; + borrowedAmount_not_in?: InputMaybe>; + collateralToken?: InputMaybe; + collateralToken_contains?: InputMaybe; + collateralToken_ends_with?: InputMaybe; + collateralToken_gt?: InputMaybe; + collateralToken_gte?: InputMaybe; + collateralToken_in?: InputMaybe>; + collateralToken_lt?: InputMaybe; + collateralToken_lte?: InputMaybe; + collateralToken_not?: InputMaybe; + collateralToken_not_contains?: InputMaybe; + collateralToken_not_ends_with?: InputMaybe; + collateralToken_not_in?: InputMaybe>; + collateralToken_not_starts_with?: InputMaybe; + collateralToken_starts_with?: InputMaybe; + currentLeverage?: InputMaybe; + currentLeverage_gt?: InputMaybe; + currentLeverage_gte?: InputMaybe; + currentLeverage_in?: InputMaybe>; + currentLeverage_lt?: InputMaybe; + currentLeverage_lte?: InputMaybe; + currentLeverage_not?: InputMaybe; + currentLeverage_not_in?: InputMaybe>; emittedBy?: InputMaybe; emittedBy_contains?: InputMaybe; emittedBy_in?: InputMaybe>; emittedBy_not?: InputMaybe; emittedBy_not_contains?: InputMaybe; emittedBy_not_in?: InputMaybe>; - entryLeverage?: InputMaybe; - entryLeverage_gt?: InputMaybe; - entryLeverage_gte?: InputMaybe; - entryLeverage_in?: InputMaybe>; - entryLeverage_lt?: InputMaybe; - entryLeverage_lte?: InputMaybe; - entryLeverage_not?: InputMaybe; - entryLeverage_not_in?: InputMaybe>; - entryPrice?: InputMaybe; - entryPrice_gt?: InputMaybe; - entryPrice_gte?: InputMaybe; - entryPrice_in?: InputMaybe>; - entryPrice_lt?: InputMaybe; - entryPrice_lte?: InputMaybe; - entryPrice_not?: InputMaybe; - entryPrice_not_in?: InputMaybe>; + entryLeverage?: InputMaybe; + entryLeverage_gt?: InputMaybe; + entryLeverage_gte?: InputMaybe; + entryLeverage_in?: InputMaybe>; + entryLeverage_lt?: InputMaybe; + entryLeverage_lte?: InputMaybe; + entryLeverage_not?: InputMaybe; + entryLeverage_not_in?: InputMaybe>; + entryPrice?: InputMaybe; + entryPrice_gt?: InputMaybe; + entryPrice_gte?: InputMaybe; + entryPrice_in?: InputMaybe>; + entryPrice_lt?: InputMaybe; + entryPrice_lte?: InputMaybe; + entryPrice_not?: InputMaybe; + entryPrice_not_in?: InputMaybe>; id?: InputMaybe; id_gt?: InputMaybe; id_gte?: InputMaybe; @@ -6213,14 +7276,14 @@ export type Trade_Filter = { id_lte?: InputMaybe; id_not?: InputMaybe; id_not_in?: InputMaybe>; - interestRate?: InputMaybe; - interestRate_gt?: InputMaybe; - interestRate_gte?: InputMaybe; - interestRate_in?: InputMaybe>; - interestRate_lt?: InputMaybe; - interestRate_lte?: InputMaybe; - interestRate_not?: InputMaybe; - interestRate_not_in?: InputMaybe>; + interestRate?: InputMaybe; + interestRate_gt?: InputMaybe; + interestRate_gte?: InputMaybe; + interestRate_in?: InputMaybe>; + interestRate_lt?: InputMaybe; + interestRate_lte?: InputMaybe; + interestRate_not?: InputMaybe; + interestRate_not_in?: InputMaybe>; lender?: InputMaybe; lender_contains?: InputMaybe; lender_in?: InputMaybe>; @@ -6241,36 +7304,44 @@ export type Trade_Filter = { loanId_not_in?: InputMaybe>; loanId_not_starts_with?: InputMaybe; loanId_starts_with?: InputMaybe; - loanToken?: InputMaybe; - loanToken_contains?: InputMaybe; - loanToken_in?: InputMaybe>; - loanToken_not?: InputMaybe; - loanToken_not_contains?: InputMaybe; - loanToken_not_in?: InputMaybe>; - positionSize?: InputMaybe; - positionSize_gt?: InputMaybe; - positionSize_gte?: InputMaybe; - positionSize_in?: InputMaybe>; - positionSize_lt?: InputMaybe; - positionSize_lte?: InputMaybe; - positionSize_not?: InputMaybe; - positionSize_not_in?: InputMaybe>; - settlementDate?: InputMaybe; - settlementDate_gt?: InputMaybe; - settlementDate_gte?: InputMaybe; - settlementDate_in?: InputMaybe>; - settlementDate_lt?: InputMaybe; - settlementDate_lte?: InputMaybe; - settlementDate_not?: InputMaybe; - settlementDate_not_in?: InputMaybe>; - timestamp?: InputMaybe; - timestamp_gt?: InputMaybe; - timestamp_gte?: InputMaybe; - timestamp_in?: InputMaybe>; - timestamp_lt?: InputMaybe; - timestamp_lte?: InputMaybe; - timestamp_not?: InputMaybe; - timestamp_not_in?: InputMaybe>; + loanToken?: InputMaybe; + loanToken_contains?: InputMaybe; + loanToken_ends_with?: InputMaybe; + loanToken_gt?: InputMaybe; + loanToken_gte?: InputMaybe; + loanToken_in?: InputMaybe>; + loanToken_lt?: InputMaybe; + loanToken_lte?: InputMaybe; + loanToken_not?: InputMaybe; + loanToken_not_contains?: InputMaybe; + loanToken_not_ends_with?: InputMaybe; + loanToken_not_in?: InputMaybe>; + loanToken_not_starts_with?: InputMaybe; + loanToken_starts_with?: InputMaybe; + positionSize?: InputMaybe; + positionSize_gt?: InputMaybe; + positionSize_gte?: InputMaybe; + positionSize_in?: InputMaybe>; + positionSize_lt?: InputMaybe; + positionSize_lte?: InputMaybe; + positionSize_not?: InputMaybe; + positionSize_not_in?: InputMaybe>; + settlementDate?: InputMaybe; + settlementDate_gt?: InputMaybe; + settlementDate_gte?: InputMaybe; + settlementDate_in?: InputMaybe>; + settlementDate_lt?: InputMaybe; + settlementDate_lte?: InputMaybe; + settlementDate_not?: InputMaybe; + settlementDate_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; transaction?: InputMaybe; transaction_contains?: InputMaybe; transaction_ends_with?: InputMaybe; @@ -6323,36 +7394,44 @@ export enum Trade_OrderBy { /** Transaction data, including hash and timestamp */ export type Transaction = { __typename?: 'Transaction'; - blockNumber: Scalars['BigInt']; + blockNumber: Scalars['Int']; /** The account that initiated this transaction. This must be an Account and not a Contract. */ - from: Scalars['Bytes']; + from: User; gasLimit: Scalars['BigInt']; gasPrice: Scalars['BigInt']; /** ID is transaction hash */ id: Scalars['ID']; /** The index of this transaction within the block */ - index: Scalars['BigInt']; + index: Scalars['Int']; /** The timestamp the transaction was confirmed */ - timestamp: Scalars['BigInt']; + timestamp: Scalars['Int']; to?: Maybe; value: Scalars['BigInt']; }; export type Transaction_Filter = { - blockNumber?: InputMaybe; - blockNumber_gt?: InputMaybe; - blockNumber_gte?: InputMaybe; - blockNumber_in?: InputMaybe>; - blockNumber_lt?: InputMaybe; - blockNumber_lte?: InputMaybe; - blockNumber_not?: InputMaybe; - blockNumber_not_in?: InputMaybe>; - from?: InputMaybe; - from_contains?: InputMaybe; - from_in?: InputMaybe>; - from_not?: InputMaybe; - from_not_contains?: InputMaybe; - from_not_in?: InputMaybe>; + blockNumber?: InputMaybe; + blockNumber_gt?: InputMaybe; + blockNumber_gte?: InputMaybe; + blockNumber_in?: InputMaybe>; + blockNumber_lt?: InputMaybe; + blockNumber_lte?: InputMaybe; + blockNumber_not?: InputMaybe; + blockNumber_not_in?: InputMaybe>; + from?: InputMaybe; + from_contains?: InputMaybe; + from_ends_with?: InputMaybe; + from_gt?: InputMaybe; + from_gte?: InputMaybe; + from_in?: InputMaybe>; + from_lt?: InputMaybe; + from_lte?: InputMaybe; + from_not?: InputMaybe; + from_not_contains?: InputMaybe; + from_not_ends_with?: InputMaybe; + from_not_in?: InputMaybe>; + from_not_starts_with?: InputMaybe; + from_starts_with?: InputMaybe; gasLimit?: InputMaybe; gasLimit_gt?: InputMaybe; gasLimit_gte?: InputMaybe; @@ -6377,22 +7456,22 @@ export type Transaction_Filter = { id_lte?: InputMaybe; id_not?: InputMaybe; id_not_in?: InputMaybe>; - index?: InputMaybe; - index_gt?: InputMaybe; - index_gte?: InputMaybe; - index_in?: InputMaybe>; - index_lt?: InputMaybe; - index_lte?: InputMaybe; - index_not?: InputMaybe; - index_not_in?: InputMaybe>; - timestamp?: InputMaybe; - timestamp_gt?: InputMaybe; - timestamp_gte?: InputMaybe; - timestamp_in?: InputMaybe>; - timestamp_lt?: InputMaybe; - timestamp_lte?: InputMaybe; - timestamp_not?: InputMaybe; - timestamp_not_in?: InputMaybe>; + index?: InputMaybe; + index_gt?: InputMaybe; + index_gte?: InputMaybe; + index_in?: InputMaybe>; + index_lt?: InputMaybe; + index_lte?: InputMaybe; + index_not?: InputMaybe; + index_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; to?: InputMaybe; to_contains?: InputMaybe; to_in?: InputMaybe>; @@ -6426,12 +7505,11 @@ export type User = { __typename?: 'User'; /** An array of Borrow events */ borrows?: Maybe>; + /** Timestamp of User's first interaction with the protocol (first transaction) */ + createdAtTimestamp: Scalars['Int']; /** ID is user wallet address */ id: Scalars['ID']; - /** - * The lending history of a User, separated into lending pools. Explore the - * UserLendingHistory entity for more granular events. - */ + /** The lending history of a User, separated into lending pools. Explore the UserLendingHistory entity for more granular events. */ lendingHistory?: Maybe>; /** An array of Liquidation events linked to this user */ liquidations?: Maybe>; @@ -6444,10 +7522,7 @@ export type User = { * Explore the UserRewardsEarnedHistory entity for more granular events */ rewardsEarnedHistory?: Maybe>; - /** - * The SOV Staking history of a user. This includes withdrawing vested tokens. - * Explore the UserStakeHistory entity for more granular events. - */ + /** The SOV Staking history of a user. This includes withdrawing vested tokens. Explore the UserStakeHistory entity for more granular events. */ stakeHistory?: Maybe>; /** * Swaps here refers to only user-triggered swaps. For example, a swap that is part of a margin trade would not be included. @@ -6456,6 +7531,8 @@ export type User = { swaps?: Maybe>; /** An array of margin trade Trade events */ trades?: Maybe>; + /** Transactions initiated by this user */ + transactions?: Maybe>; /** See UserTotals entity for full documentation */ userTotals?: Maybe; /** Vesting contracts owned by User, labelled by type */ @@ -6545,6 +7622,15 @@ export type UserTradesArgs = { where?: InputMaybe; }; +/** This entity contains all user-specific data displayed on the dapp, including all user actions */ +export type UserTransactionsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + /** This entity contains all user-specific data displayed on the dapp, including all user actions */ export type UserVestingContractsArgs = { first?: InputMaybe; @@ -6571,13 +7657,10 @@ export type UserLendingHistory = { /** Granular Lend/UnLend events. Derived from Mint/Burn events on the contracts */ lendingHistory?: Maybe>; lendingPool: LendingPool; - /** - * Total volume this User has lent to this pool over all time (in the underlying - * asset currency, ie rBTC for the rBTC lending pool) - */ - totalLendVolume: Scalars['BigInt']; + /** Total volume this User has lent to this pool over all time (in the underlying asset currency, ie rBTC for the rBTC lending pool) */ + totalLendVolume: Scalars['BigDecimal']; /** Total volume this User has withdrawn from this pool over all time */ - totalUnlendVolume: Scalars['BigInt']; + totalUnlendVolume: Scalars['BigDecimal']; user: User; }; @@ -6613,22 +7696,22 @@ export type UserLendingHistory_Filter = { lendingPool_not_in?: InputMaybe>; lendingPool_not_starts_with?: InputMaybe; lendingPool_starts_with?: InputMaybe; - totalLendVolume?: InputMaybe; - totalLendVolume_gt?: InputMaybe; - totalLendVolume_gte?: InputMaybe; - totalLendVolume_in?: InputMaybe>; - totalLendVolume_lt?: InputMaybe; - totalLendVolume_lte?: InputMaybe; - totalLendVolume_not?: InputMaybe; - totalLendVolume_not_in?: InputMaybe>; - totalUnlendVolume?: InputMaybe; - totalUnlendVolume_gt?: InputMaybe; - totalUnlendVolume_gte?: InputMaybe; - totalUnlendVolume_in?: InputMaybe>; - totalUnlendVolume_lt?: InputMaybe; - totalUnlendVolume_lte?: InputMaybe; - totalUnlendVolume_not?: InputMaybe; - totalUnlendVolume_not_in?: InputMaybe>; + totalLendVolume?: InputMaybe; + totalLendVolume_gt?: InputMaybe; + totalLendVolume_gte?: InputMaybe; + totalLendVolume_in?: InputMaybe>; + totalLendVolume_lt?: InputMaybe; + totalLendVolume_lte?: InputMaybe; + totalLendVolume_not?: InputMaybe; + totalLendVolume_not_in?: InputMaybe>; + totalUnlendVolume?: InputMaybe; + totalUnlendVolume_gt?: InputMaybe; + totalUnlendVolume_gte?: InputMaybe; + totalUnlendVolume_in?: InputMaybe>; + totalUnlendVolume_lt?: InputMaybe; + totalUnlendVolume_lte?: InputMaybe; + totalUnlendVolume_not?: InputMaybe; + totalUnlendVolume_not_in?: InputMaybe>; user?: InputMaybe; user_contains?: InputMaybe; user_ends_with?: InputMaybe; @@ -6660,10 +7743,10 @@ export type UserLiquidityHistory = { id: Scalars['ID']; liquidityHistory?: Maybe>; poolToken: PoolToken; - totalAsset0LiquidityAdded: Scalars['BigInt']; - totalAsset0LiquidityRemoved: Scalars['BigInt']; - totalAsset1LiquidityAdded: Scalars['BigInt']; - totalAsset1LiquidityRemoved: Scalars['BigInt']; + totalAsset0LiquidityAdded: Scalars['BigDecimal']; + totalAsset0LiquidityRemoved: Scalars['BigDecimal']; + totalAsset1LiquidityAdded: Scalars['BigDecimal']; + totalAsset1LiquidityRemoved: Scalars['BigDecimal']; user: User; }; @@ -6699,38 +7782,38 @@ export type UserLiquidityHistory_Filter = { poolToken_not_in?: InputMaybe>; poolToken_not_starts_with?: InputMaybe; poolToken_starts_with?: InputMaybe; - totalAsset0LiquidityAdded?: InputMaybe; - totalAsset0LiquidityAdded_gt?: InputMaybe; - totalAsset0LiquidityAdded_gte?: InputMaybe; - totalAsset0LiquidityAdded_in?: InputMaybe>; - totalAsset0LiquidityAdded_lt?: InputMaybe; - totalAsset0LiquidityAdded_lte?: InputMaybe; - totalAsset0LiquidityAdded_not?: InputMaybe; - totalAsset0LiquidityAdded_not_in?: InputMaybe>; - totalAsset0LiquidityRemoved?: InputMaybe; - totalAsset0LiquidityRemoved_gt?: InputMaybe; - totalAsset0LiquidityRemoved_gte?: InputMaybe; - totalAsset0LiquidityRemoved_in?: InputMaybe>; - totalAsset0LiquidityRemoved_lt?: InputMaybe; - totalAsset0LiquidityRemoved_lte?: InputMaybe; - totalAsset0LiquidityRemoved_not?: InputMaybe; - totalAsset0LiquidityRemoved_not_in?: InputMaybe>; - totalAsset1LiquidityAdded?: InputMaybe; - totalAsset1LiquidityAdded_gt?: InputMaybe; - totalAsset1LiquidityAdded_gte?: InputMaybe; - totalAsset1LiquidityAdded_in?: InputMaybe>; - totalAsset1LiquidityAdded_lt?: InputMaybe; - totalAsset1LiquidityAdded_lte?: InputMaybe; - totalAsset1LiquidityAdded_not?: InputMaybe; - totalAsset1LiquidityAdded_not_in?: InputMaybe>; - totalAsset1LiquidityRemoved?: InputMaybe; - totalAsset1LiquidityRemoved_gt?: InputMaybe; - totalAsset1LiquidityRemoved_gte?: InputMaybe; - totalAsset1LiquidityRemoved_in?: InputMaybe>; - totalAsset1LiquidityRemoved_lt?: InputMaybe; - totalAsset1LiquidityRemoved_lte?: InputMaybe; - totalAsset1LiquidityRemoved_not?: InputMaybe; - totalAsset1LiquidityRemoved_not_in?: InputMaybe>; + totalAsset0LiquidityAdded?: InputMaybe; + totalAsset0LiquidityAdded_gt?: InputMaybe; + totalAsset0LiquidityAdded_gte?: InputMaybe; + totalAsset0LiquidityAdded_in?: InputMaybe>; + totalAsset0LiquidityAdded_lt?: InputMaybe; + totalAsset0LiquidityAdded_lte?: InputMaybe; + totalAsset0LiquidityAdded_not?: InputMaybe; + totalAsset0LiquidityAdded_not_in?: InputMaybe>; + totalAsset0LiquidityRemoved?: InputMaybe; + totalAsset0LiquidityRemoved_gt?: InputMaybe; + totalAsset0LiquidityRemoved_gte?: InputMaybe; + totalAsset0LiquidityRemoved_in?: InputMaybe>; + totalAsset0LiquidityRemoved_lt?: InputMaybe; + totalAsset0LiquidityRemoved_lte?: InputMaybe; + totalAsset0LiquidityRemoved_not?: InputMaybe; + totalAsset0LiquidityRemoved_not_in?: InputMaybe>; + totalAsset1LiquidityAdded?: InputMaybe; + totalAsset1LiquidityAdded_gt?: InputMaybe; + totalAsset1LiquidityAdded_gte?: InputMaybe; + totalAsset1LiquidityAdded_in?: InputMaybe>; + totalAsset1LiquidityAdded_lt?: InputMaybe; + totalAsset1LiquidityAdded_lte?: InputMaybe; + totalAsset1LiquidityAdded_not?: InputMaybe; + totalAsset1LiquidityAdded_not_in?: InputMaybe>; + totalAsset1LiquidityRemoved?: InputMaybe; + totalAsset1LiquidityRemoved_gt?: InputMaybe; + totalAsset1LiquidityRemoved_gte?: InputMaybe; + totalAsset1LiquidityRemoved_in?: InputMaybe>; + totalAsset1LiquidityRemoved_lt?: InputMaybe; + totalAsset1LiquidityRemoved_lte?: InputMaybe; + totalAsset1LiquidityRemoved_not?: InputMaybe; + totalAsset1LiquidityRemoved_not_in?: InputMaybe>; user?: InputMaybe; user_contains?: InputMaybe; user_ends_with?: InputMaybe; @@ -6762,13 +7845,13 @@ export enum UserLiquidityHistory_OrderBy { export type UserRewardsEarnedHistory = { __typename?: 'UserRewardsEarnedHistory'; /** This is incremented by EarnReward and RewardClaimed events, and set to 0 by RewardWithdrawn events */ - availableRewardSov: Scalars['BigInt']; + availableRewardSov: Scalars['BigDecimal']; /** This is incremented by EarnReward events, and set to 0 by TokensStaked events on the LockedSOV contract */ - availableTradingRewards: Scalars['BigInt']; + availableTradingRewards: Scalars['BigDecimal']; id: Scalars['ID']; rewardsEarnedHistory?: Maybe>; /** This is the total of all EarnReward and RewardClaimed events */ - totalFeesAndRewardsEarned: Scalars['BigInt']; + totalFeesAndRewardsEarned: Scalars['BigDecimal']; user: User; }; @@ -6782,22 +7865,22 @@ export type UserRewardsEarnedHistoryRewardsEarnedHistoryArgs = { }; export type UserRewardsEarnedHistory_Filter = { - availableRewardSov?: InputMaybe; - availableRewardSov_gt?: InputMaybe; - availableRewardSov_gte?: InputMaybe; - availableRewardSov_in?: InputMaybe>; - availableRewardSov_lt?: InputMaybe; - availableRewardSov_lte?: InputMaybe; - availableRewardSov_not?: InputMaybe; - availableRewardSov_not_in?: InputMaybe>; - availableTradingRewards?: InputMaybe; - availableTradingRewards_gt?: InputMaybe; - availableTradingRewards_gte?: InputMaybe; - availableTradingRewards_in?: InputMaybe>; - availableTradingRewards_lt?: InputMaybe; - availableTradingRewards_lte?: InputMaybe; - availableTradingRewards_not?: InputMaybe; - availableTradingRewards_not_in?: InputMaybe>; + availableRewardSov?: InputMaybe; + availableRewardSov_gt?: InputMaybe; + availableRewardSov_gte?: InputMaybe; + availableRewardSov_in?: InputMaybe>; + availableRewardSov_lt?: InputMaybe; + availableRewardSov_lte?: InputMaybe; + availableRewardSov_not?: InputMaybe; + availableRewardSov_not_in?: InputMaybe>; + availableTradingRewards?: InputMaybe; + availableTradingRewards_gt?: InputMaybe; + availableTradingRewards_gte?: InputMaybe; + availableTradingRewards_in?: InputMaybe>; + availableTradingRewards_lt?: InputMaybe; + availableTradingRewards_lte?: InputMaybe; + availableTradingRewards_not?: InputMaybe; + availableTradingRewards_not_in?: InputMaybe>; id?: InputMaybe; id_gt?: InputMaybe; id_gte?: InputMaybe; @@ -6806,14 +7889,14 @@ export type UserRewardsEarnedHistory_Filter = { id_lte?: InputMaybe; id_not?: InputMaybe; id_not_in?: InputMaybe>; - totalFeesAndRewardsEarned?: InputMaybe; - totalFeesAndRewardsEarned_gt?: InputMaybe; - totalFeesAndRewardsEarned_gte?: InputMaybe; - totalFeesAndRewardsEarned_in?: InputMaybe>; - totalFeesAndRewardsEarned_lt?: InputMaybe; - totalFeesAndRewardsEarned_lte?: InputMaybe; - totalFeesAndRewardsEarned_not?: InputMaybe; - totalFeesAndRewardsEarned_not_in?: InputMaybe>; + totalFeesAndRewardsEarned?: InputMaybe; + totalFeesAndRewardsEarned_gt?: InputMaybe; + totalFeesAndRewardsEarned_gte?: InputMaybe; + totalFeesAndRewardsEarned_in?: InputMaybe>; + totalFeesAndRewardsEarned_lt?: InputMaybe; + totalFeesAndRewardsEarned_lte?: InputMaybe; + totalFeesAndRewardsEarned_not?: InputMaybe; + totalFeesAndRewardsEarned_not_in?: InputMaybe>; user?: InputMaybe; user_contains?: InputMaybe; user_ends_with?: InputMaybe; @@ -6843,9 +7926,9 @@ export type UserStakeHistory = { __typename?: 'UserStakeHistory'; id: Scalars['ID']; stakeHistory?: Maybe>; - totalRemaining: Scalars['BigInt']; - totalStaked: Scalars['BigInt']; - totalWithdrawn: Scalars['BigInt']; + totalRemaining: Scalars['BigDecimal']; + totalStaked: Scalars['BigDecimal']; + totalWithdrawn: Scalars['BigDecimal']; user: User; }; @@ -6866,30 +7949,30 @@ export type UserStakeHistory_Filter = { id_lte?: InputMaybe; id_not?: InputMaybe; id_not_in?: InputMaybe>; - totalRemaining?: InputMaybe; - totalRemaining_gt?: InputMaybe; - totalRemaining_gte?: InputMaybe; - totalRemaining_in?: InputMaybe>; - totalRemaining_lt?: InputMaybe; - totalRemaining_lte?: InputMaybe; - totalRemaining_not?: InputMaybe; - totalRemaining_not_in?: InputMaybe>; - totalStaked?: InputMaybe; - totalStaked_gt?: InputMaybe; - totalStaked_gte?: InputMaybe; - totalStaked_in?: InputMaybe>; - totalStaked_lt?: InputMaybe; - totalStaked_lte?: InputMaybe; - totalStaked_not?: InputMaybe; - totalStaked_not_in?: InputMaybe>; - totalWithdrawn?: InputMaybe; - totalWithdrawn_gt?: InputMaybe; - totalWithdrawn_gte?: InputMaybe; - totalWithdrawn_in?: InputMaybe>; - totalWithdrawn_lt?: InputMaybe; - totalWithdrawn_lte?: InputMaybe; - totalWithdrawn_not?: InputMaybe; - totalWithdrawn_not_in?: InputMaybe>; + totalRemaining?: InputMaybe; + totalRemaining_gt?: InputMaybe; + totalRemaining_gte?: InputMaybe; + totalRemaining_in?: InputMaybe>; + totalRemaining_lt?: InputMaybe; + totalRemaining_lte?: InputMaybe; + totalRemaining_not?: InputMaybe; + totalRemaining_not_in?: InputMaybe>; + totalStaked?: InputMaybe; + totalStaked_gt?: InputMaybe; + totalStaked_gte?: InputMaybe; + totalStaked_in?: InputMaybe>; + totalStaked_lt?: InputMaybe; + totalStaked_lte?: InputMaybe; + totalStaked_not?: InputMaybe; + totalStaked_not_in?: InputMaybe>; + totalWithdrawn?: InputMaybe; + totalWithdrawn_gt?: InputMaybe; + totalWithdrawn_gte?: InputMaybe; + totalWithdrawn_in?: InputMaybe>; + totalWithdrawn_lt?: InputMaybe; + totalWithdrawn_lte?: InputMaybe; + totalWithdrawn_not?: InputMaybe; + totalWithdrawn_not_in?: InputMaybe>; user?: InputMaybe; user_contains?: InputMaybe; user_ends_with?: InputMaybe; @@ -7097,6 +8180,14 @@ export enum UserTotal_OrderBy { } export type User_Filter = { + createdAtTimestamp?: InputMaybe; + createdAtTimestamp_gt?: InputMaybe; + createdAtTimestamp_gte?: InputMaybe; + createdAtTimestamp_in?: InputMaybe>; + createdAtTimestamp_lt?: InputMaybe; + createdAtTimestamp_lte?: InputMaybe; + createdAtTimestamp_not?: InputMaybe; + createdAtTimestamp_not_in?: InputMaybe>; id?: InputMaybe; id_gt?: InputMaybe; id_gte?: InputMaybe; @@ -7109,6 +8200,7 @@ export type User_Filter = { export enum User_OrderBy { Borrows = 'borrows', + CreatedAtTimestamp = 'createdAtTimestamp', Id = 'id', LendingHistory = 'lendingHistory', Liquidations = 'liquidations', @@ -7118,6 +8210,7 @@ export enum User_OrderBy { StakeHistory = 'stakeHistory', Swaps = 'swaps', Trades = 'trades', + Transactions = 'transactions', UserTotals = 'userTotals', VestingContracts = 'vestingContracts', Votes = 'votes', @@ -7125,15 +8218,15 @@ export enum User_OrderBy { export type VestingContract = { __typename?: 'VestingContract'; - cliff?: Maybe; - createdAtTimestamp: Scalars['BigInt']; + cliff?: Maybe; + createdAtTimestamp: Scalars['Int']; createdAtTransaction: Transaction; - currentBalance: Scalars['BigInt']; - duration?: Maybe; + currentBalance: Scalars['BigDecimal']; + duration?: Maybe; emittedBy: Scalars['Bytes']; id: Scalars['ID']; stakeHistory?: Maybe>; - startingBalance: Scalars['BigInt']; + startingBalance: Scalars['BigDecimal']; type: VestingContractType; user: User; }; @@ -7156,22 +8249,22 @@ export enum VestingContractType { } export type VestingContract_Filter = { - cliff?: InputMaybe; - cliff_gt?: InputMaybe; - cliff_gte?: InputMaybe; - cliff_in?: InputMaybe>; - cliff_lt?: InputMaybe; - cliff_lte?: InputMaybe; - cliff_not?: InputMaybe; - cliff_not_in?: InputMaybe>; - createdAtTimestamp?: InputMaybe; - createdAtTimestamp_gt?: InputMaybe; - createdAtTimestamp_gte?: InputMaybe; - createdAtTimestamp_in?: InputMaybe>; - createdAtTimestamp_lt?: InputMaybe; - createdAtTimestamp_lte?: InputMaybe; - createdAtTimestamp_not?: InputMaybe; - createdAtTimestamp_not_in?: InputMaybe>; + cliff?: InputMaybe; + cliff_gt?: InputMaybe; + cliff_gte?: InputMaybe; + cliff_in?: InputMaybe>; + cliff_lt?: InputMaybe; + cliff_lte?: InputMaybe; + cliff_not?: InputMaybe; + cliff_not_in?: InputMaybe>; + createdAtTimestamp?: InputMaybe; + createdAtTimestamp_gt?: InputMaybe; + createdAtTimestamp_gte?: InputMaybe; + createdAtTimestamp_in?: InputMaybe>; + createdAtTimestamp_lt?: InputMaybe; + createdAtTimestamp_lte?: InputMaybe; + createdAtTimestamp_not?: InputMaybe; + createdAtTimestamp_not_in?: InputMaybe>; createdAtTransaction?: InputMaybe; createdAtTransaction_contains?: InputMaybe; createdAtTransaction_ends_with?: InputMaybe; @@ -7186,22 +8279,22 @@ export type VestingContract_Filter = { createdAtTransaction_not_in?: InputMaybe>; createdAtTransaction_not_starts_with?: InputMaybe; createdAtTransaction_starts_with?: InputMaybe; - currentBalance?: InputMaybe; - currentBalance_gt?: InputMaybe; - currentBalance_gte?: InputMaybe; - currentBalance_in?: InputMaybe>; - currentBalance_lt?: InputMaybe; - currentBalance_lte?: InputMaybe; - currentBalance_not?: InputMaybe; - currentBalance_not_in?: InputMaybe>; - duration?: InputMaybe; - duration_gt?: InputMaybe; - duration_gte?: InputMaybe; - duration_in?: InputMaybe>; - duration_lt?: InputMaybe; - duration_lte?: InputMaybe; - duration_not?: InputMaybe; - duration_not_in?: InputMaybe>; + currentBalance?: InputMaybe; + currentBalance_gt?: InputMaybe; + currentBalance_gte?: InputMaybe; + currentBalance_in?: InputMaybe>; + currentBalance_lt?: InputMaybe; + currentBalance_lte?: InputMaybe; + currentBalance_not?: InputMaybe; + currentBalance_not_in?: InputMaybe>; + duration?: InputMaybe; + duration_gt?: InputMaybe; + duration_gte?: InputMaybe; + duration_in?: InputMaybe>; + duration_lt?: InputMaybe; + duration_lte?: InputMaybe; + duration_not?: InputMaybe; + duration_not_in?: InputMaybe>; emittedBy?: InputMaybe; emittedBy_contains?: InputMaybe; emittedBy_in?: InputMaybe>; @@ -7216,14 +8309,14 @@ export type VestingContract_Filter = { id_lte?: InputMaybe; id_not?: InputMaybe; id_not_in?: InputMaybe>; - startingBalance?: InputMaybe; - startingBalance_gt?: InputMaybe; - startingBalance_gte?: InputMaybe; - startingBalance_in?: InputMaybe>; - startingBalance_lt?: InputMaybe; - startingBalance_lte?: InputMaybe; - startingBalance_not?: InputMaybe; - startingBalance_not_in?: InputMaybe>; + startingBalance?: InputMaybe; + startingBalance_gt?: InputMaybe; + startingBalance_gte?: InputMaybe; + startingBalance_in?: InputMaybe>; + startingBalance_lt?: InputMaybe; + startingBalance_lte?: InputMaybe; + startingBalance_not?: InputMaybe; + startingBalance_not_in?: InputMaybe>; type?: InputMaybe; type_in?: InputMaybe>; type_not?: InputMaybe; @@ -7261,13 +8354,13 @@ export enum VestingContract_OrderBy { export type VestingHistoryItem = { __typename?: 'VestingHistoryItem'; action: VestingHistoryItemAction; - amount: Scalars['BigInt']; + amount: Scalars['BigDecimal']; emittedBy: Scalars['Bytes']; id: Scalars['ID']; - lockedUntil: Scalars['BigInt']; + lockedUntil: Scalars['Int']; staker: VestingContract; - timestamp: Scalars['BigInt']; - totalStaked: Scalars['BigInt']; + timestamp: Scalars['Int']; + totalStaked: Scalars['BigDecimal']; transaction: Transaction; }; @@ -7282,14 +8375,14 @@ export type VestingHistoryItem_Filter = { action_in?: InputMaybe>; action_not?: InputMaybe; action_not_in?: InputMaybe>; - amount?: InputMaybe; - amount_gt?: InputMaybe; - amount_gte?: InputMaybe; - amount_in?: InputMaybe>; - amount_lt?: InputMaybe; - amount_lte?: InputMaybe; - amount_not?: InputMaybe; - amount_not_in?: InputMaybe>; + amount?: InputMaybe; + amount_gt?: InputMaybe; + amount_gte?: InputMaybe; + amount_in?: InputMaybe>; + amount_lt?: InputMaybe; + amount_lte?: InputMaybe; + amount_not?: InputMaybe; + amount_not_in?: InputMaybe>; emittedBy?: InputMaybe; emittedBy_contains?: InputMaybe; emittedBy_in?: InputMaybe>; @@ -7304,14 +8397,14 @@ export type VestingHistoryItem_Filter = { id_lte?: InputMaybe; id_not?: InputMaybe; id_not_in?: InputMaybe>; - lockedUntil?: InputMaybe; - lockedUntil_gt?: InputMaybe; - lockedUntil_gte?: InputMaybe; - lockedUntil_in?: InputMaybe>; - lockedUntil_lt?: InputMaybe; - lockedUntil_lte?: InputMaybe; - lockedUntil_not?: InputMaybe; - lockedUntil_not_in?: InputMaybe>; + lockedUntil?: InputMaybe; + lockedUntil_gt?: InputMaybe; + lockedUntil_gte?: InputMaybe; + lockedUntil_in?: InputMaybe>; + lockedUntil_lt?: InputMaybe; + lockedUntil_lte?: InputMaybe; + lockedUntil_not?: InputMaybe; + lockedUntil_not_in?: InputMaybe>; staker?: InputMaybe; staker_contains?: InputMaybe; staker_ends_with?: InputMaybe; @@ -7326,22 +8419,22 @@ export type VestingHistoryItem_Filter = { staker_not_in?: InputMaybe>; staker_not_starts_with?: InputMaybe; staker_starts_with?: InputMaybe; - timestamp?: InputMaybe; - timestamp_gt?: InputMaybe; - timestamp_gte?: InputMaybe; - timestamp_in?: InputMaybe>; - timestamp_lt?: InputMaybe; - timestamp_lte?: InputMaybe; - timestamp_not?: InputMaybe; - timestamp_not_in?: InputMaybe>; - totalStaked?: InputMaybe; - totalStaked_gt?: InputMaybe; - totalStaked_gte?: InputMaybe; - totalStaked_in?: InputMaybe>; - totalStaked_lt?: InputMaybe; - totalStaked_lte?: InputMaybe; - totalStaked_not?: InputMaybe; - totalStaked_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; + totalStaked?: InputMaybe; + totalStaked_gt?: InputMaybe; + totalStaked_gte?: InputMaybe; + totalStaked_in?: InputMaybe>; + totalStaked_lt?: InputMaybe; + totalStaked_lte?: InputMaybe; + totalStaked_not?: InputMaybe; + totalStaked_not_in?: InputMaybe>; transaction?: InputMaybe; transaction_contains?: InputMaybe; transaction_ends_with?: InputMaybe; @@ -7375,9 +8468,9 @@ export type VoteCast = { emittedBy: Scalars['Bytes']; id: Scalars['ID']; proposal: Proposal; - proposalId: Scalars['BigInt']; + proposalId: Scalars['Int']; support: Scalars['Boolean']; - timestamp: Scalars['BigInt']; + timestamp: Scalars['Int']; transaction: Transaction; voter: User; votes: Scalars['BigInt']; @@ -7399,14 +8492,14 @@ export type VoteCast_Filter = { id_not?: InputMaybe; id_not_in?: InputMaybe>; proposal?: InputMaybe; - proposalId?: InputMaybe; - proposalId_gt?: InputMaybe; - proposalId_gte?: InputMaybe; - proposalId_in?: InputMaybe>; - proposalId_lt?: InputMaybe; - proposalId_lte?: InputMaybe; - proposalId_not?: InputMaybe; - proposalId_not_in?: InputMaybe>; + proposalId?: InputMaybe; + proposalId_gt?: InputMaybe; + proposalId_gte?: InputMaybe; + proposalId_in?: InputMaybe>; + proposalId_lt?: InputMaybe; + proposalId_lte?: InputMaybe; + proposalId_not?: InputMaybe; + proposalId_not_in?: InputMaybe>; proposal_contains?: InputMaybe; proposal_ends_with?: InputMaybe; proposal_gt?: InputMaybe; @@ -7424,14 +8517,14 @@ export type VoteCast_Filter = { support_in?: InputMaybe>; support_not?: InputMaybe; support_not_in?: InputMaybe>; - timestamp?: InputMaybe; - timestamp_gt?: InputMaybe; - timestamp_gte?: InputMaybe; - timestamp_in?: InputMaybe>; - timestamp_lt?: InputMaybe; - timestamp_lte?: InputMaybe; - timestamp_not?: InputMaybe; - timestamp_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; transaction?: InputMaybe; transaction_contains?: InputMaybe; transaction_ends_with?: InputMaybe; @@ -7482,6 +8575,78 @@ export enum VoteCast_OrderBy { Votes = 'votes', } +export type Withdrawal = { + __typename?: 'Withdrawal'; + amount: Scalars['BigDecimal']; + emittedBy: Scalars['Bytes']; + id: Scalars['ID']; + receiver: Scalars['Bytes']; + timestamp: Scalars['Int']; + transaction: Transaction; +}; + +export type Withdrawal_Filter = { + amount?: InputMaybe; + amount_gt?: InputMaybe; + amount_gte?: InputMaybe; + amount_in?: InputMaybe>; + amount_lt?: InputMaybe; + amount_lte?: InputMaybe; + amount_not?: InputMaybe; + amount_not_in?: InputMaybe>; + emittedBy?: InputMaybe; + emittedBy_contains?: InputMaybe; + emittedBy_in?: InputMaybe>; + emittedBy_not?: InputMaybe; + emittedBy_not_contains?: InputMaybe; + emittedBy_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + receiver?: InputMaybe; + receiver_contains?: InputMaybe; + receiver_in?: InputMaybe>; + receiver_not?: InputMaybe; + receiver_not_contains?: InputMaybe; + receiver_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; + transaction?: InputMaybe; + transaction_contains?: InputMaybe; + transaction_ends_with?: InputMaybe; + transaction_gt?: InputMaybe; + transaction_gte?: InputMaybe; + transaction_in?: InputMaybe>; + transaction_lt?: InputMaybe; + transaction_lte?: InputMaybe; + transaction_not?: InputMaybe; + transaction_not_contains?: InputMaybe; + transaction_not_ends_with?: InputMaybe; + transaction_not_in?: InputMaybe>; + transaction_not_starts_with?: InputMaybe; + transaction_starts_with?: InputMaybe; +}; + +export enum Withdrawal_OrderBy { + Amount = 'amount', + EmittedBy = 'emittedBy', + Id = 'id', + Receiver = 'receiver', + Timestamp = 'timestamp', + Transaction = 'transaction', +} + export type _Block_ = { __typename?: '_Block_'; /** The hash of the block */ @@ -7513,6 +8678,41 @@ export enum _SubgraphErrorPolicy_ { Deny = 'deny', } +export type GetBorrowHistoryQueryVariables = Exact<{ + user?: InputMaybe; +}>; + +export type GetBorrowHistoryQuery = { + __typename?: 'Query'; + borrows: Array<{ + __typename?: 'Borrow'; + loanToken: string; + collateralToken: string; + newPrincipal: string; + newCollateral: string; + interestRate: string; + interestDuration: string; + collateralToLoanRate: string; + timestamp: number; + loanId: { __typename?: 'Loan'; id: string }; + transaction: { __typename?: 'Transaction'; id: string }; + }>; +}; + +export type BorrowFieldsFragment = { + __typename?: 'Borrow'; + loanToken: string; + collateralToken: string; + newPrincipal: string; + newCollateral: string; + interestRate: string; + interestDuration: string; + collateralToLoanRate: string; + timestamp: number; + loanId: { __typename?: 'Loan'; id: string }; + transaction: { __typename?: 'Transaction'; id: string }; +}; + export type UsersQueryVariables = Exact<{ where?: InputMaybe; }>; @@ -7535,6 +8735,83 @@ export type UsersQuery = { }>; }; +export const BorrowFieldsFragmentDoc = gql` + fragment BorrowFields on Borrow { + loanId { + id + } + loanToken + collateralToken + newPrincipal + newCollateral + interestRate + interestDuration + collateralToLoanRate + timestamp + transaction { + id + } + } +`; +export const GetBorrowHistoryDocument = gql` + query getBorrowHistory($user: String) { + borrows(where: { user: $user }) { + ...BorrowFields + } + } + ${BorrowFieldsFragmentDoc} +`; + +/** + * __useGetBorrowHistoryQuery__ + * + * To run a query within a React component, call `useGetBorrowHistoryQuery` and pass it any options that fit your needs. + * When your component renders, `useGetBorrowHistoryQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useGetBorrowHistoryQuery({ + * variables: { + * user: // value for 'user' + * }, + * }); + */ +export function useGetBorrowHistoryQuery( + baseOptions?: Apollo.QueryHookOptions< + GetBorrowHistoryQuery, + GetBorrowHistoryQueryVariables + >, +) { + const options = { ...defaultOptions, ...baseOptions }; + return Apollo.useQuery( + GetBorrowHistoryDocument, + options, + ); +} +export function useGetBorrowHistoryLazyQuery( + baseOptions?: Apollo.LazyQueryHookOptions< + GetBorrowHistoryQuery, + GetBorrowHistoryQueryVariables + >, +) { + const options = { ...defaultOptions, ...baseOptions }; + return Apollo.useLazyQuery< + GetBorrowHistoryQuery, + GetBorrowHistoryQueryVariables + >(GetBorrowHistoryDocument, options); +} +export type GetBorrowHistoryQueryHookResult = ReturnType< + typeof useGetBorrowHistoryQuery +>; +export type GetBorrowHistoryLazyQueryHookResult = ReturnType< + typeof useGetBorrowHistoryLazyQuery +>; +export type GetBorrowHistoryQueryResult = Apollo.QueryResult< + GetBorrowHistoryQuery, + GetBorrowHistoryQueryVariables +>; export const UsersDocument = gql` query users($where: User_filter) { users(subgraphError: allow, where: $where) { diff --git a/src/utils/graphql/rsk/operations/getBorrowHistory.graphql b/src/utils/graphql/rsk/operations/getBorrowHistory.graphql new file mode 100644 index 000000000..decd8f9e7 --- /dev/null +++ b/src/utils/graphql/rsk/operations/getBorrowHistory.graphql @@ -0,0 +1,22 @@ +query getBorrowHistory($user: String) { + borrows(where: { user: $user }) { + ...BorrowFields + } +} + +fragment BorrowFields on Borrow { + loanId { + id + } + loanToken + collateralToken + newPrincipal + newCollateral + interestRate + interestDuration + collateralToLoanRate + timestamp + transaction { + id + } +} diff --git a/src/utils/graphql/rsk/schema.graphql b/src/utils/graphql/rsk/schema.graphql index 7a2184b59..209a61902 100644 --- a/src/utils/graphql/rsk/schema.graphql +++ b/src/utils/graphql/rsk/schema.graphql @@ -18,46 +18,46 @@ input Block_height { Granular event data for the Loan entity. Emitted when a user Borrows (takes out a loan) """ type Borrow { - collateralToLoanRate: BigInt! + collateralToLoanRate: BigDecimal! collateralToken: Bytes! - currentMargin: BigInt! + currentMargin: BigDecimal! emittedBy: Bytes! id: ID! - interestDuration: BigInt! - interestRate: BigInt! + interestDuration: BigDecimal! + interestRate: BigDecimal! lender: Bytes! loanId: Loan! loanToken: Bytes! - newCollateral: BigInt! - newPrincipal: BigInt! - timestamp: BigInt! + newCollateral: BigDecimal! + newPrincipal: BigDecimal! + timestamp: Int! transaction: Transaction! user: User! } input Borrow_filter { - collateralToLoanRate: BigInt - collateralToLoanRate_gt: BigInt - collateralToLoanRate_gte: BigInt - collateralToLoanRate_in: [BigInt!] - collateralToLoanRate_lt: BigInt - collateralToLoanRate_lte: BigInt - collateralToLoanRate_not: BigInt - collateralToLoanRate_not_in: [BigInt!] + collateralToLoanRate: BigDecimal + collateralToLoanRate_gt: BigDecimal + collateralToLoanRate_gte: BigDecimal + collateralToLoanRate_in: [BigDecimal!] + collateralToLoanRate_lt: BigDecimal + collateralToLoanRate_lte: BigDecimal + collateralToLoanRate_not: BigDecimal + collateralToLoanRate_not_in: [BigDecimal!] collateralToken: Bytes collateralToken_contains: Bytes collateralToken_in: [Bytes!] collateralToken_not: Bytes collateralToken_not_contains: Bytes collateralToken_not_in: [Bytes!] - currentMargin: BigInt - currentMargin_gt: BigInt - currentMargin_gte: BigInt - currentMargin_in: [BigInt!] - currentMargin_lt: BigInt - currentMargin_lte: BigInt - currentMargin_not: BigInt - currentMargin_not_in: [BigInt!] + currentMargin: BigDecimal + currentMargin_gt: BigDecimal + currentMargin_gte: BigDecimal + currentMargin_in: [BigDecimal!] + currentMargin_lt: BigDecimal + currentMargin_lte: BigDecimal + currentMargin_not: BigDecimal + currentMargin_not_in: [BigDecimal!] emittedBy: Bytes emittedBy_contains: Bytes emittedBy_in: [Bytes!] @@ -72,22 +72,22 @@ input Borrow_filter { id_lte: ID id_not: ID id_not_in: [ID!] - interestDuration: BigInt - interestDuration_gt: BigInt - interestDuration_gte: BigInt - interestDuration_in: [BigInt!] - interestDuration_lt: BigInt - interestDuration_lte: BigInt - interestDuration_not: BigInt - interestDuration_not_in: [BigInt!] - interestRate: BigInt - interestRate_gt: BigInt - interestRate_gte: BigInt - interestRate_in: [BigInt!] - interestRate_lt: BigInt - interestRate_lte: BigInt - interestRate_not: BigInt - interestRate_not_in: [BigInt!] + interestDuration: BigDecimal + interestDuration_gt: BigDecimal + interestDuration_gte: BigDecimal + interestDuration_in: [BigDecimal!] + interestDuration_lt: BigDecimal + interestDuration_lte: BigDecimal + interestDuration_not: BigDecimal + interestDuration_not_in: [BigDecimal!] + interestRate: BigDecimal + interestRate_gt: BigDecimal + interestRate_gte: BigDecimal + interestRate_in: [BigDecimal!] + interestRate_lt: BigDecimal + interestRate_lte: BigDecimal + interestRate_not: BigDecimal + interestRate_not_in: [BigDecimal!] lender: Bytes lender_contains: Bytes lender_in: [Bytes!] @@ -114,30 +114,30 @@ input Borrow_filter { loanToken_not: Bytes loanToken_not_contains: Bytes loanToken_not_in: [Bytes!] - newCollateral: BigInt - newCollateral_gt: BigInt - newCollateral_gte: BigInt - newCollateral_in: [BigInt!] - newCollateral_lt: BigInt - newCollateral_lte: BigInt - newCollateral_not: BigInt - newCollateral_not_in: [BigInt!] - newPrincipal: BigInt - newPrincipal_gt: BigInt - newPrincipal_gte: BigInt - newPrincipal_in: [BigInt!] - newPrincipal_lt: BigInt - newPrincipal_lte: BigInt - newPrincipal_not: BigInt - newPrincipal_not_in: [BigInt!] - timestamp: BigInt - timestamp_gt: BigInt - timestamp_gte: BigInt - timestamp_in: [BigInt!] - timestamp_lt: BigInt - timestamp_lte: BigInt - timestamp_not: BigInt - timestamp_not_in: [BigInt!] + newCollateral: BigDecimal + newCollateral_gt: BigDecimal + newCollateral_gte: BigDecimal + newCollateral_in: [BigDecimal!] + newCollateral_lt: BigDecimal + newCollateral_lte: BigDecimal + newCollateral_not: BigDecimal + newCollateral_not_in: [BigDecimal!] + newPrincipal: BigDecimal + newPrincipal_gt: BigDecimal + newPrincipal_gte: BigDecimal + newPrincipal_in: [BigDecimal!] + newPrincipal_lt: BigDecimal + newPrincipal_lte: BigDecimal + newPrincipal_not: BigDecimal + newPrincipal_not_in: [BigDecimal!] + timestamp: Int + timestamp_gt: Int + timestamp_gte: Int + timestamp_in: [Int!] + timestamp_lt: Int + timestamp_lte: Int + timestamp_not: Int + timestamp_not_in: [Int!] transaction: String transaction_contains: String transaction_ends_with: String @@ -328,17 +328,17 @@ Granular event data for the Loan entity. Emitted when a user closes a loan initi """ type CloseWithDeposit { closer: Bytes! - collateralToLoanRate: BigInt! + collateralToLoanRate: BigDecimal! collateralToken: Bytes! - collateralWithdrawAmount: BigInt! - currentMargin: BigInt! + collateralWithdrawAmount: BigDecimal! + currentMargin: BigDecimal! emittedBy: Bytes! id: ID! lender: Bytes! loanId: Loan! loanToken: Bytes! - repayAmount: BigInt! - timestamp: BigInt! + repayAmount: BigDecimal! + timestamp: Int! transaction: Transaction! user: Bytes! } @@ -350,36 +350,36 @@ input CloseWithDeposit_filter { closer_not: Bytes closer_not_contains: Bytes closer_not_in: [Bytes!] - collateralToLoanRate: BigInt - collateralToLoanRate_gt: BigInt - collateralToLoanRate_gte: BigInt - collateralToLoanRate_in: [BigInt!] - collateralToLoanRate_lt: BigInt - collateralToLoanRate_lte: BigInt - collateralToLoanRate_not: BigInt - collateralToLoanRate_not_in: [BigInt!] + collateralToLoanRate: BigDecimal + collateralToLoanRate_gt: BigDecimal + collateralToLoanRate_gte: BigDecimal + collateralToLoanRate_in: [BigDecimal!] + collateralToLoanRate_lt: BigDecimal + collateralToLoanRate_lte: BigDecimal + collateralToLoanRate_not: BigDecimal + collateralToLoanRate_not_in: [BigDecimal!] collateralToken: Bytes collateralToken_contains: Bytes collateralToken_in: [Bytes!] collateralToken_not: Bytes collateralToken_not_contains: Bytes collateralToken_not_in: [Bytes!] - collateralWithdrawAmount: BigInt - collateralWithdrawAmount_gt: BigInt - collateralWithdrawAmount_gte: BigInt - collateralWithdrawAmount_in: [BigInt!] - collateralWithdrawAmount_lt: BigInt - collateralWithdrawAmount_lte: BigInt - collateralWithdrawAmount_not: BigInt - collateralWithdrawAmount_not_in: [BigInt!] - currentMargin: BigInt - currentMargin_gt: BigInt - currentMargin_gte: BigInt - currentMargin_in: [BigInt!] - currentMargin_lt: BigInt - currentMargin_lte: BigInt - currentMargin_not: BigInt - currentMargin_not_in: [BigInt!] + collateralWithdrawAmount: BigDecimal + collateralWithdrawAmount_gt: BigDecimal + collateralWithdrawAmount_gte: BigDecimal + collateralWithdrawAmount_in: [BigDecimal!] + collateralWithdrawAmount_lt: BigDecimal + collateralWithdrawAmount_lte: BigDecimal + collateralWithdrawAmount_not: BigDecimal + collateralWithdrawAmount_not_in: [BigDecimal!] + currentMargin: BigDecimal + currentMargin_gt: BigDecimal + currentMargin_gte: BigDecimal + currentMargin_in: [BigDecimal!] + currentMargin_lt: BigDecimal + currentMargin_lte: BigDecimal + currentMargin_not: BigDecimal + currentMargin_not_in: [BigDecimal!] emittedBy: Bytes emittedBy_contains: Bytes emittedBy_in: [Bytes!] @@ -420,22 +420,22 @@ input CloseWithDeposit_filter { loanToken_not: Bytes loanToken_not_contains: Bytes loanToken_not_in: [Bytes!] - repayAmount: BigInt - repayAmount_gt: BigInt - repayAmount_gte: BigInt - repayAmount_in: [BigInt!] - repayAmount_lt: BigInt - repayAmount_lte: BigInt - repayAmount_not: BigInt - repayAmount_not_in: [BigInt!] - timestamp: BigInt - timestamp_gt: BigInt - timestamp_gte: BigInt - timestamp_in: [BigInt!] - timestamp_lt: BigInt - timestamp_lte: BigInt - timestamp_not: BigInt - timestamp_not_in: [BigInt!] + repayAmount: BigDecimal + repayAmount_gt: BigDecimal + repayAmount_gte: BigDecimal + repayAmount_in: [BigDecimal!] + repayAmount_lt: BigDecimal + repayAmount_lte: BigDecimal + repayAmount_not: BigDecimal + repayAmount_not_in: [BigDecimal!] + timestamp: Int + timestamp_gt: Int + timestamp_gte: Int + timestamp_in: [Int!] + timestamp_lt: Int + timestamp_lte: Int + timestamp_not: Int + timestamp_not_in: [Int!] transaction: String transaction_contains: String transaction_ends_with: String @@ -481,16 +481,16 @@ Granular event data for the Loan entity. Emitted when a user closes a loan initi type CloseWithSwap { closer: Bytes! collateralToken: Bytes! - currentLeverage: BigInt! + currentLeverage: BigDecimal! emittedBy: Bytes! - exitPrice: BigInt! + exitPrice: BigDecimal! id: ID! lender: Bytes! - loanCloseAmount: BigInt! + loanCloseAmount: BigDecimal! loanId: Loan! loanToken: Bytes! - positionCloseSize: BigInt! - timestamp: BigInt! + positionCloseSize: BigDecimal! + timestamp: Int! transaction: Transaction! user: Bytes! } @@ -508,28 +508,28 @@ input CloseWithSwap_filter { collateralToken_not: Bytes collateralToken_not_contains: Bytes collateralToken_not_in: [Bytes!] - currentLeverage: BigInt - currentLeverage_gt: BigInt - currentLeverage_gte: BigInt - currentLeverage_in: [BigInt!] - currentLeverage_lt: BigInt - currentLeverage_lte: BigInt - currentLeverage_not: BigInt - currentLeverage_not_in: [BigInt!] + currentLeverage: BigDecimal + currentLeverage_gt: BigDecimal + currentLeverage_gte: BigDecimal + currentLeverage_in: [BigDecimal!] + currentLeverage_lt: BigDecimal + currentLeverage_lte: BigDecimal + currentLeverage_not: BigDecimal + currentLeverage_not_in: [BigDecimal!] emittedBy: Bytes emittedBy_contains: Bytes emittedBy_in: [Bytes!] emittedBy_not: Bytes emittedBy_not_contains: Bytes emittedBy_not_in: [Bytes!] - exitPrice: BigInt - exitPrice_gt: BigInt - exitPrice_gte: BigInt - exitPrice_in: [BigInt!] - exitPrice_lt: BigInt - exitPrice_lte: BigInt - exitPrice_not: BigInt - exitPrice_not_in: [BigInt!] + exitPrice: BigDecimal + exitPrice_gt: BigDecimal + exitPrice_gte: BigDecimal + exitPrice_in: [BigDecimal!] + exitPrice_lt: BigDecimal + exitPrice_lte: BigDecimal + exitPrice_not: BigDecimal + exitPrice_not_in: [BigDecimal!] id: ID id_gt: ID id_gte: ID @@ -544,14 +544,14 @@ input CloseWithSwap_filter { lender_not: Bytes lender_not_contains: Bytes lender_not_in: [Bytes!] - loanCloseAmount: BigInt - loanCloseAmount_gt: BigInt - loanCloseAmount_gte: BigInt - loanCloseAmount_in: [BigInt!] - loanCloseAmount_lt: BigInt - loanCloseAmount_lte: BigInt - loanCloseAmount_not: BigInt - loanCloseAmount_not_in: [BigInt!] + loanCloseAmount: BigDecimal + loanCloseAmount_gt: BigDecimal + loanCloseAmount_gte: BigDecimal + loanCloseAmount_in: [BigDecimal!] + loanCloseAmount_lt: BigDecimal + loanCloseAmount_lte: BigDecimal + loanCloseAmount_not: BigDecimal + loanCloseAmount_not_in: [BigDecimal!] loanId: String loanId_contains: String loanId_ends_with: String @@ -572,22 +572,22 @@ input CloseWithSwap_filter { loanToken_not: Bytes loanToken_not_contains: Bytes loanToken_not_in: [Bytes!] - positionCloseSize: BigInt - positionCloseSize_gt: BigInt - positionCloseSize_gte: BigInt - positionCloseSize_in: [BigInt!] - positionCloseSize_lt: BigInt - positionCloseSize_lte: BigInt - positionCloseSize_not: BigInt - positionCloseSize_not_in: [BigInt!] - timestamp: BigInt - timestamp_gt: BigInt - timestamp_gte: BigInt - timestamp_in: [BigInt!] - timestamp_lt: BigInt - timestamp_lte: BigInt - timestamp_not: BigInt - timestamp_not_in: [BigInt!] + positionCloseSize: BigDecimal + positionCloseSize_gt: BigDecimal + positionCloseSize_gte: BigDecimal + positionCloseSize_in: [BigDecimal!] + positionCloseSize_lt: BigDecimal + positionCloseSize_lte: BigDecimal + positionCloseSize_not: BigDecimal + positionCloseSize_not_in: [BigDecimal!] + timestamp: Int + timestamp_gt: Int + timestamp_gte: Int + timestamp_in: [Int!] + timestamp_lt: Int + timestamp_lte: Int + timestamp_not: Int + timestamp_not_in: [Int!] transaction: String transaction_contains: String transaction_ends_with: String @@ -631,37 +631,38 @@ enum CloseWithSwap_orderBy { Autogenerated for debugging - to be eventually deleted. Although this is pretty useful, maybe keep """ type Conversion { - _amount: BigInt! - _conversionFee: BigInt! + _amount: BigDecimal! + _conversionFee: BigDecimal! _fromToken: Token! - _protocolFee: BigInt! - _return: BigInt! + _protocolFee: BigDecimal! + _return: BigDecimal! _toToken: Token! _trader: Bytes! - emittedBy: Bytes! + blockNumber: Int! + emittedBy: LiquidityPool! id: ID! swapTransaction: Swap! - timestamp: BigInt! + timestamp: Int! transaction: Transaction! } input Conversion_filter { - _amount: BigInt - _amount_gt: BigInt - _amount_gte: BigInt - _amount_in: [BigInt!] - _amount_lt: BigInt - _amount_lte: BigInt - _amount_not: BigInt - _amount_not_in: [BigInt!] - _conversionFee: BigInt - _conversionFee_gt: BigInt - _conversionFee_gte: BigInt - _conversionFee_in: [BigInt!] - _conversionFee_lt: BigInt - _conversionFee_lte: BigInt - _conversionFee_not: BigInt - _conversionFee_not_in: [BigInt!] + _amount: BigDecimal + _amount_gt: BigDecimal + _amount_gte: BigDecimal + _amount_in: [BigDecimal!] + _amount_lt: BigDecimal + _amount_lte: BigDecimal + _amount_not: BigDecimal + _amount_not_in: [BigDecimal!] + _conversionFee: BigDecimal + _conversionFee_gt: BigDecimal + _conversionFee_gte: BigDecimal + _conversionFee_in: [BigDecimal!] + _conversionFee_lt: BigDecimal + _conversionFee_lte: BigDecimal + _conversionFee_not: BigDecimal + _conversionFee_not_in: [BigDecimal!] _fromToken: String _fromToken_contains: String _fromToken_ends_with: String @@ -676,22 +677,22 @@ input Conversion_filter { _fromToken_not_in: [String!] _fromToken_not_starts_with: String _fromToken_starts_with: String - _protocolFee: BigInt - _protocolFee_gt: BigInt - _protocolFee_gte: BigInt - _protocolFee_in: [BigInt!] - _protocolFee_lt: BigInt - _protocolFee_lte: BigInt - _protocolFee_not: BigInt - _protocolFee_not_in: [BigInt!] - _return: BigInt - _return_gt: BigInt - _return_gte: BigInt - _return_in: [BigInt!] - _return_lt: BigInt - _return_lte: BigInt - _return_not: BigInt - _return_not_in: [BigInt!] + _protocolFee: BigDecimal + _protocolFee_gt: BigDecimal + _protocolFee_gte: BigDecimal + _protocolFee_in: [BigDecimal!] + _protocolFee_lt: BigDecimal + _protocolFee_lte: BigDecimal + _protocolFee_not: BigDecimal + _protocolFee_not_in: [BigDecimal!] + _return: BigDecimal + _return_gt: BigDecimal + _return_gte: BigDecimal + _return_in: [BigDecimal!] + _return_lt: BigDecimal + _return_lte: BigDecimal + _return_not: BigDecimal + _return_not_in: [BigDecimal!] _toToken: String _toToken_contains: String _toToken_ends_with: String @@ -712,12 +713,28 @@ input Conversion_filter { _trader_not: Bytes _trader_not_contains: Bytes _trader_not_in: [Bytes!] - emittedBy: Bytes - emittedBy_contains: Bytes - emittedBy_in: [Bytes!] - emittedBy_not: Bytes - emittedBy_not_contains: Bytes - emittedBy_not_in: [Bytes!] + blockNumber: Int + blockNumber_gt: Int + blockNumber_gte: Int + blockNumber_in: [Int!] + blockNumber_lt: Int + blockNumber_lte: Int + blockNumber_not: Int + blockNumber_not_in: [Int!] + emittedBy: String + emittedBy_contains: String + emittedBy_ends_with: String + emittedBy_gt: String + emittedBy_gte: String + emittedBy_in: [String!] + emittedBy_lt: String + emittedBy_lte: String + emittedBy_not: String + emittedBy_not_contains: String + emittedBy_not_ends_with: String + emittedBy_not_in: [String!] + emittedBy_not_starts_with: String + emittedBy_starts_with: String id: ID id_gt: ID id_gte: ID @@ -740,14 +757,14 @@ input Conversion_filter { swapTransaction_not_in: [String!] swapTransaction_not_starts_with: String swapTransaction_starts_with: String - timestamp: BigInt - timestamp_gt: BigInt - timestamp_gte: BigInt - timestamp_in: [BigInt!] - timestamp_lt: BigInt - timestamp_lte: BigInt - timestamp_not: BigInt - timestamp_not_in: [BigInt!] + timestamp: Int + timestamp_gt: Int + timestamp_gte: Int + timestamp_in: [Int!] + timestamp_lt: Int + timestamp_lte: Int + timestamp_not: Int + timestamp_not_in: [Int!] transaction: String transaction_contains: String transaction_ends_with: String @@ -772,6 +789,7 @@ enum Conversion_orderBy { _return _toToken _trader + blockNumber emittedBy id swapTransaction @@ -783,8 +801,8 @@ enum Conversion_orderBy { The ConverterRegistry registers each new AMM pool added to the Sovryn Protocol """ type ConverterRegistry { - addedToContractRegistryAtBlockNumber: BigInt - addedToContractRegistryAtBlockTimestamp: BigInt + addedToContractRegistryAtBlockNumber: Int + addedToContractRegistryAtBlockTimestamp: Int addedToContractRegistryAtTransactionHash: String connectorTokens( first: Int = 100 @@ -809,10 +827,10 @@ type ConverterRegistry { ID is the address of the converter registry contract """ id: ID! - lastUsedAtBlockNumber: BigInt - lastUsedAtBlockTimestamp: BigInt + lastUsedAtBlockNumber: Int + lastUsedAtBlockTimestamp: Int lastUsedAtTransactionHash: String - numConverters: BigInt! + numConverters: Int! owner: Bytes! smartTokens( first: Int = 100 @@ -824,22 +842,22 @@ type ConverterRegistry { } input ConverterRegistry_filter { - addedToContractRegistryAtBlockNumber: BigInt - addedToContractRegistryAtBlockNumber_gt: BigInt - addedToContractRegistryAtBlockNumber_gte: BigInt - addedToContractRegistryAtBlockNumber_in: [BigInt!] - addedToContractRegistryAtBlockNumber_lt: BigInt - addedToContractRegistryAtBlockNumber_lte: BigInt - addedToContractRegistryAtBlockNumber_not: BigInt - addedToContractRegistryAtBlockNumber_not_in: [BigInt!] - addedToContractRegistryAtBlockTimestamp: BigInt - addedToContractRegistryAtBlockTimestamp_gt: BigInt - addedToContractRegistryAtBlockTimestamp_gte: BigInt - addedToContractRegistryAtBlockTimestamp_in: [BigInt!] - addedToContractRegistryAtBlockTimestamp_lt: BigInt - addedToContractRegistryAtBlockTimestamp_lte: BigInt - addedToContractRegistryAtBlockTimestamp_not: BigInt - addedToContractRegistryAtBlockTimestamp_not_in: [BigInt!] + addedToContractRegistryAtBlockNumber: Int + addedToContractRegistryAtBlockNumber_gt: Int + addedToContractRegistryAtBlockNumber_gte: Int + addedToContractRegistryAtBlockNumber_in: [Int!] + addedToContractRegistryAtBlockNumber_lt: Int + addedToContractRegistryAtBlockNumber_lte: Int + addedToContractRegistryAtBlockNumber_not: Int + addedToContractRegistryAtBlockNumber_not_in: [Int!] + addedToContractRegistryAtBlockTimestamp: Int + addedToContractRegistryAtBlockTimestamp_gt: Int + addedToContractRegistryAtBlockTimestamp_gte: Int + addedToContractRegistryAtBlockTimestamp_in: [Int!] + addedToContractRegistryAtBlockTimestamp_lt: Int + addedToContractRegistryAtBlockTimestamp_lte: Int + addedToContractRegistryAtBlockTimestamp_not: Int + addedToContractRegistryAtBlockTimestamp_not_in: [Int!] addedToContractRegistryAtTransactionHash: String addedToContractRegistryAtTransactionHash_contains: String addedToContractRegistryAtTransactionHash_ends_with: String @@ -862,22 +880,22 @@ input ConverterRegistry_filter { id_lte: ID id_not: ID id_not_in: [ID!] - lastUsedAtBlockNumber: BigInt - lastUsedAtBlockNumber_gt: BigInt - lastUsedAtBlockNumber_gte: BigInt - lastUsedAtBlockNumber_in: [BigInt!] - lastUsedAtBlockNumber_lt: BigInt - lastUsedAtBlockNumber_lte: BigInt - lastUsedAtBlockNumber_not: BigInt - lastUsedAtBlockNumber_not_in: [BigInt!] - lastUsedAtBlockTimestamp: BigInt - lastUsedAtBlockTimestamp_gt: BigInt - lastUsedAtBlockTimestamp_gte: BigInt - lastUsedAtBlockTimestamp_in: [BigInt!] - lastUsedAtBlockTimestamp_lt: BigInt - lastUsedAtBlockTimestamp_lte: BigInt - lastUsedAtBlockTimestamp_not: BigInt - lastUsedAtBlockTimestamp_not_in: [BigInt!] + lastUsedAtBlockNumber: Int + lastUsedAtBlockNumber_gt: Int + lastUsedAtBlockNumber_gte: Int + lastUsedAtBlockNumber_in: [Int!] + lastUsedAtBlockNumber_lt: Int + lastUsedAtBlockNumber_lte: Int + lastUsedAtBlockNumber_not: Int + lastUsedAtBlockNumber_not_in: [Int!] + lastUsedAtBlockTimestamp: Int + lastUsedAtBlockTimestamp_gt: Int + lastUsedAtBlockTimestamp_gte: Int + lastUsedAtBlockTimestamp_in: [Int!] + lastUsedAtBlockTimestamp_lt: Int + lastUsedAtBlockTimestamp_lte: Int + lastUsedAtBlockTimestamp_not: Int + lastUsedAtBlockTimestamp_not_in: [Int!] lastUsedAtTransactionHash: String lastUsedAtTransactionHash_contains: String lastUsedAtTransactionHash_ends_with: String @@ -892,14 +910,14 @@ input ConverterRegistry_filter { lastUsedAtTransactionHash_not_in: [String!] lastUsedAtTransactionHash_not_starts_with: String lastUsedAtTransactionHash_starts_with: String - numConverters: BigInt - numConverters_gt: BigInt - numConverters_gte: BigInt - numConverters_in: [BigInt!] - numConverters_lt: BigInt - numConverters_lte: BigInt - numConverters_not: BigInt - numConverters_not_in: [BigInt!] + numConverters: Int + numConverters_gt: Int + numConverters_gte: Int + numConverters_in: [Int!] + numConverters_lt: Int + numConverters_lte: Int + numConverters_not: Int + numConverters_not_in: [Int!] owner: Bytes owner_contains: Bytes owner_in: [Bytes!] @@ -923,28 +941,37 @@ enum ConverterRegistry_orderBy { smartTokens } +type Deposit { + amount: BigDecimal! + emittedBy: Bytes! + id: ID! + timestamp: Int! + to: Bytes! + transaction: Transaction! +} + """ Granular event data for the Loan entity. Emitted when a user closes adds collateral to a Margin Trade or Borrow """ type DepositCollateral { - depositAmount: BigInt! + depositAmount: BigDecimal! emittedBy: Bytes! id: ID! loanId: Loan! - rate: BigInt - timestamp: BigInt! + rate: BigDecimal + timestamp: Int! transaction: Transaction! } input DepositCollateral_filter { - depositAmount: BigInt - depositAmount_gt: BigInt - depositAmount_gte: BigInt - depositAmount_in: [BigInt!] - depositAmount_lt: BigInt - depositAmount_lte: BigInt - depositAmount_not: BigInt - depositAmount_not_in: [BigInt!] + depositAmount: BigDecimal + depositAmount_gt: BigDecimal + depositAmount_gte: BigDecimal + depositAmount_in: [BigDecimal!] + depositAmount_lt: BigDecimal + depositAmount_lte: BigDecimal + depositAmount_not: BigDecimal + depositAmount_not_in: [BigDecimal!] emittedBy: Bytes emittedBy_contains: Bytes emittedBy_in: [Bytes!] @@ -973,22 +1000,22 @@ input DepositCollateral_filter { loanId_not_in: [String!] loanId_not_starts_with: String loanId_starts_with: String - rate: BigInt - rate_gt: BigInt - rate_gte: BigInt - rate_in: [BigInt!] - rate_lt: BigInt - rate_lte: BigInt - rate_not: BigInt - rate_not_in: [BigInt!] - timestamp: BigInt - timestamp_gt: BigInt - timestamp_gte: BigInt - timestamp_in: [BigInt!] - timestamp_lt: BigInt - timestamp_lte: BigInt - timestamp_not: BigInt - timestamp_not_in: [BigInt!] + rate: BigDecimal + rate_gt: BigDecimal + rate_gte: BigDecimal + rate_in: [BigDecimal!] + rate_lt: BigDecimal + rate_lte: BigDecimal + rate_not: BigDecimal + rate_not_in: [BigDecimal!] + timestamp: Int + timestamp_gt: Int + timestamp_gte: Int + timestamp_in: [Int!] + timestamp_lt: Int + timestamp_lte: Int + timestamp_not: Int + timestamp_not_in: [Int!] transaction: String transaction_contains: String transaction_ends_with: String @@ -1015,22 +1042,84 @@ enum DepositCollateral_orderBy { transaction } +input Deposit_filter { + amount: BigDecimal + amount_gt: BigDecimal + amount_gte: BigDecimal + amount_in: [BigDecimal!] + amount_lt: BigDecimal + amount_lte: BigDecimal + amount_not: BigDecimal + amount_not_in: [BigDecimal!] + emittedBy: Bytes + emittedBy_contains: Bytes + emittedBy_in: [Bytes!] + emittedBy_not: Bytes + emittedBy_not_contains: Bytes + emittedBy_not_in: [Bytes!] + id: ID + id_gt: ID + id_gte: ID + id_in: [ID!] + id_lt: ID + id_lte: ID + id_not: ID + id_not_in: [ID!] + timestamp: Int + timestamp_gt: Int + timestamp_gte: Int + timestamp_in: [Int!] + timestamp_lt: Int + timestamp_lte: Int + timestamp_not: Int + timestamp_not_in: [Int!] + to: Bytes + to_contains: Bytes + to_in: [Bytes!] + to_not: Bytes + to_not_contains: Bytes + to_not_in: [Bytes!] + transaction: String + transaction_contains: String + transaction_ends_with: String + transaction_gt: String + transaction_gte: String + transaction_in: [String!] + transaction_lt: String + transaction_lte: String + transaction_not: String + transaction_not_contains: String + transaction_not_ends_with: String + transaction_not_in: [String!] + transaction_not_starts_with: String + transaction_starts_with: String +} + +enum Deposit_orderBy { + amount + emittedBy + id + timestamp + to + transaction +} + type FeeSharingTokensTransferred { - amount: BigInt! + amount: BigDecimal! id: ID! sender: Bytes! token: Bytes! } input FeeSharingTokensTransferred_filter { - amount: BigInt - amount_gt: BigInt - amount_gte: BigInt - amount_in: [BigInt!] - amount_lt: BigInt - amount_lte: BigInt - amount_not: BigInt - amount_not_in: [BigInt!] + amount: BigDecimal + amount_gt: BigDecimal + amount_gte: BigDecimal + amount_in: [BigDecimal!] + amount_lt: BigDecimal + amount_lte: BigDecimal + amount_not: BigDecimal + amount_not_in: [BigDecimal!] id: ID id_gt: ID id_gte: ID @@ -1061,7 +1150,7 @@ enum FeeSharingTokensTransferred_orderBy { } type LendingHistoryItem { - amount: BigInt! + amount: BigDecimal! """ The underlying asset for this pool (eg USDT for the iUSDT pool) @@ -1071,21 +1160,21 @@ type LendingHistoryItem { id: ID! lender: User! lendingPool: LendingPool! - loanTokenAmount: BigInt! + loanTokenAmount: BigDecimal! transaction: Transaction! type: LendingHistoryType! userLendingHistory: UserLendingHistory! } input LendingHistoryItem_filter { - amount: BigInt - amount_gt: BigInt - amount_gte: BigInt - amount_in: [BigInt!] - amount_lt: BigInt - amount_lte: BigInt - amount_not: BigInt - amount_not_in: [BigInt!] + amount: BigDecimal + amount_gt: BigDecimal + amount_gte: BigDecimal + amount_in: [BigDecimal!] + amount_lt: BigDecimal + amount_lte: BigDecimal + amount_not: BigDecimal + amount_not_in: [BigDecimal!] asset: String asset_contains: String asset_ends_with: String @@ -1150,14 +1239,14 @@ input LendingHistoryItem_filter { lendingPool_not_in: [String!] lendingPool_not_starts_with: String lendingPool_starts_with: String - loanTokenAmount: BigInt - loanTokenAmount_gt: BigInt - loanTokenAmount_gte: BigInt - loanTokenAmount_in: [BigInt!] - loanTokenAmount_lt: BigInt - loanTokenAmount_lte: BigInt - loanTokenAmount_not: BigInt - loanTokenAmount_not_in: [BigInt!] + loanTokenAmount: BigDecimal + loanTokenAmount_gt: BigDecimal + loanTokenAmount_gte: BigDecimal + loanTokenAmount_in: [BigDecimal!] + loanTokenAmount_lt: BigDecimal + loanTokenAmount_lte: BigDecimal + loanTokenAmount_not: BigDecimal + loanTokenAmount_not_in: [BigDecimal!] transaction: String transaction_contains: String transaction_ends_with: String @@ -1214,18 +1303,18 @@ enum LendingHistoryType { A Lending Pool (iToken), where Users can lend assets to earn interest, and Users can borrow assets to Margin Trade or just as a regular loan. """ type LendingPool { - assetBalance: BigInt! + assetBalance: BigDecimal! """ ID is the contract address of the iToken """ id: ID! - poolTokenBalance: BigInt! + poolTokenBalance: BigDecimal! """ Total asset volume lent over all time """ - totalAssetLent: BigInt! + totalAssetLent: BigDecimal! """ The actual asset being lent and borrowed in this pool @@ -1234,14 +1323,14 @@ type LendingPool { } input LendingPool_filter { - assetBalance: BigInt - assetBalance_gt: BigInt - assetBalance_gte: BigInt - assetBalance_in: [BigInt!] - assetBalance_lt: BigInt - assetBalance_lte: BigInt - assetBalance_not: BigInt - assetBalance_not_in: [BigInt!] + assetBalance: BigDecimal + assetBalance_gt: BigDecimal + assetBalance_gte: BigDecimal + assetBalance_in: [BigDecimal!] + assetBalance_lt: BigDecimal + assetBalance_lte: BigDecimal + assetBalance_not: BigDecimal + assetBalance_not_in: [BigDecimal!] id: ID id_gt: ID id_gte: ID @@ -1250,22 +1339,22 @@ input LendingPool_filter { id_lte: ID id_not: ID id_not_in: [ID!] - poolTokenBalance: BigInt - poolTokenBalance_gt: BigInt - poolTokenBalance_gte: BigInt - poolTokenBalance_in: [BigInt!] - poolTokenBalance_lt: BigInt - poolTokenBalance_lte: BigInt - poolTokenBalance_not: BigInt - poolTokenBalance_not_in: [BigInt!] - totalAssetLent: BigInt - totalAssetLent_gt: BigInt - totalAssetLent_gte: BigInt - totalAssetLent_in: [BigInt!] - totalAssetLent_lt: BigInt - totalAssetLent_lte: BigInt - totalAssetLent_not: BigInt - totalAssetLent_not_in: [BigInt!] + poolTokenBalance: BigDecimal + poolTokenBalance_gt: BigDecimal + poolTokenBalance_gte: BigDecimal + poolTokenBalance_in: [BigDecimal!] + poolTokenBalance_lt: BigDecimal + poolTokenBalance_lte: BigDecimal + poolTokenBalance_not: BigDecimal + poolTokenBalance_not_in: [BigDecimal!] + totalAssetLent: BigDecimal + totalAssetLent_gt: BigDecimal + totalAssetLent_gte: BigDecimal + totalAssetLent_in: [BigDecimal!] + totalAssetLent_lt: BigDecimal + totalAssetLent_lte: BigDecimal + totalAssetLent_not: BigDecimal + totalAssetLent_not_in: [BigDecimal!] underlyingAsset: String underlyingAsset_contains: String underlyingAsset_ends_with: String @@ -1294,53 +1383,53 @@ enum LendingPool_orderBy { Granular event data for the Loan entity. Emitted when a loan is fully or partially liquidated """ type Liquidate { - collateralToLoanRate: BigInt! + collateralToLoanRate: BigDecimal! collateralToken: Bytes! - collateralWithdrawAmount: BigInt! - currentMargin: BigInt! + collateralWithdrawAmount: BigDecimal! + currentMargin: BigDecimal! emittedBy: Bytes! id: ID! lender: Bytes! liquidator: Bytes! loanId: Loan! loanToken: Bytes! - repayAmount: BigInt! - timestamp: BigInt! + repayAmount: BigDecimal! + timestamp: Int! transaction: Transaction! user: User! } input Liquidate_filter { - collateralToLoanRate: BigInt - collateralToLoanRate_gt: BigInt - collateralToLoanRate_gte: BigInt - collateralToLoanRate_in: [BigInt!] - collateralToLoanRate_lt: BigInt - collateralToLoanRate_lte: BigInt - collateralToLoanRate_not: BigInt - collateralToLoanRate_not_in: [BigInt!] + collateralToLoanRate: BigDecimal + collateralToLoanRate_gt: BigDecimal + collateralToLoanRate_gte: BigDecimal + collateralToLoanRate_in: [BigDecimal!] + collateralToLoanRate_lt: BigDecimal + collateralToLoanRate_lte: BigDecimal + collateralToLoanRate_not: BigDecimal + collateralToLoanRate_not_in: [BigDecimal!] collateralToken: Bytes collateralToken_contains: Bytes collateralToken_in: [Bytes!] collateralToken_not: Bytes collateralToken_not_contains: Bytes collateralToken_not_in: [Bytes!] - collateralWithdrawAmount: BigInt - collateralWithdrawAmount_gt: BigInt - collateralWithdrawAmount_gte: BigInt - collateralWithdrawAmount_in: [BigInt!] - collateralWithdrawAmount_lt: BigInt - collateralWithdrawAmount_lte: BigInt - collateralWithdrawAmount_not: BigInt - collateralWithdrawAmount_not_in: [BigInt!] - currentMargin: BigInt - currentMargin_gt: BigInt - currentMargin_gte: BigInt - currentMargin_in: [BigInt!] - currentMargin_lt: BigInt - currentMargin_lte: BigInt - currentMargin_not: BigInt - currentMargin_not_in: [BigInt!] + collateralWithdrawAmount: BigDecimal + collateralWithdrawAmount_gt: BigDecimal + collateralWithdrawAmount_gte: BigDecimal + collateralWithdrawAmount_in: [BigDecimal!] + collateralWithdrawAmount_lt: BigDecimal + collateralWithdrawAmount_lte: BigDecimal + collateralWithdrawAmount_not: BigDecimal + collateralWithdrawAmount_not_in: [BigDecimal!] + currentMargin: BigDecimal + currentMargin_gt: BigDecimal + currentMargin_gte: BigDecimal + currentMargin_in: [BigDecimal!] + currentMargin_lt: BigDecimal + currentMargin_lte: BigDecimal + currentMargin_not: BigDecimal + currentMargin_not_in: [BigDecimal!] emittedBy: Bytes emittedBy_contains: Bytes emittedBy_in: [Bytes!] @@ -1387,22 +1476,22 @@ input Liquidate_filter { loanToken_not: Bytes loanToken_not_contains: Bytes loanToken_not_in: [Bytes!] - repayAmount: BigInt - repayAmount_gt: BigInt - repayAmount_gte: BigInt - repayAmount_in: [BigInt!] - repayAmount_lt: BigInt - repayAmount_lte: BigInt - repayAmount_not: BigInt - repayAmount_not_in: [BigInt!] - timestamp: BigInt - timestamp_gt: BigInt - timestamp_gte: BigInt - timestamp_in: [BigInt!] - timestamp_lt: BigInt - timestamp_lte: BigInt - timestamp_not: BigInt - timestamp_not_in: [BigInt!] + repayAmount: BigDecimal + repayAmount_gt: BigDecimal + repayAmount_gte: BigDecimal + repayAmount_in: [BigDecimal!] + repayAmount_lt: BigDecimal + repayAmount_lte: BigDecimal + repayAmount_not: BigDecimal + repayAmount_not_in: [BigDecimal!] + timestamp: Int + timestamp_gt: Int + timestamp_gte: Int + timestamp_in: [Int!] + timestamp_lt: Int + timestamp_lte: Int + timestamp_not: Int + timestamp_not_in: [Int!] transaction: String transaction_contains: String transaction_ends_with: String @@ -1451,7 +1540,7 @@ enum Liquidate_orderBy { } type LiquidityHistoryItem { - amount: BigInt! + amount: BigDecimal! emittedBy: String! """ @@ -1459,11 +1548,11 @@ type LiquidityHistoryItem { """ id: ID! liquidityPool: LiquidityPool! - newBalance: BigInt! - newSupply: BigInt! + newBalance: BigDecimal! + newSupply: BigDecimal! provider: String! reserveToken: Token! - timestamp: BigInt! + timestamp: Int! transaction: Transaction! type: LiquidityHistoryType! user: User! @@ -1471,14 +1560,14 @@ type LiquidityHistoryItem { } input LiquidityHistoryItem_filter { - amount: BigInt - amount_gt: BigInt - amount_gte: BigInt - amount_in: [BigInt!] - amount_lt: BigInt - amount_lte: BigInt - amount_not: BigInt - amount_not_in: [BigInt!] + amount: BigDecimal + amount_gt: BigDecimal + amount_gte: BigDecimal + amount_in: [BigDecimal!] + amount_lt: BigDecimal + amount_lte: BigDecimal + amount_not: BigDecimal + amount_not_in: [BigDecimal!] emittedBy: String emittedBy_contains: String emittedBy_ends_with: String @@ -1515,22 +1604,22 @@ input LiquidityHistoryItem_filter { liquidityPool_not_in: [String!] liquidityPool_not_starts_with: String liquidityPool_starts_with: String - newBalance: BigInt - newBalance_gt: BigInt - newBalance_gte: BigInt - newBalance_in: [BigInt!] - newBalance_lt: BigInt - newBalance_lte: BigInt - newBalance_not: BigInt - newBalance_not_in: [BigInt!] - newSupply: BigInt - newSupply_gt: BigInt - newSupply_gte: BigInt - newSupply_in: [BigInt!] - newSupply_lt: BigInt - newSupply_lte: BigInt - newSupply_not: BigInt - newSupply_not_in: [BigInt!] + newBalance: BigDecimal + newBalance_gt: BigDecimal + newBalance_gte: BigDecimal + newBalance_in: [BigDecimal!] + newBalance_lt: BigDecimal + newBalance_lte: BigDecimal + newBalance_not: BigDecimal + newBalance_not_in: [BigDecimal!] + newSupply: BigDecimal + newSupply_gt: BigDecimal + newSupply_gte: BigDecimal + newSupply_in: [BigDecimal!] + newSupply_lt: BigDecimal + newSupply_lte: BigDecimal + newSupply_not: BigDecimal + newSupply_not_in: [BigDecimal!] provider: String provider_contains: String provider_ends_with: String @@ -1559,14 +1648,14 @@ input LiquidityHistoryItem_filter { reserveToken_not_in: [String!] reserveToken_not_starts_with: String reserveToken_starts_with: String - timestamp: BigInt - timestamp_gt: BigInt - timestamp_gte: BigInt - timestamp_in: [BigInt!] - timestamp_lt: BigInt - timestamp_lte: BigInt - timestamp_not: BigInt - timestamp_not_in: [BigInt!] + timestamp: Int + timestamp_gt: Int + timestamp_gte: Int + timestamp_in: [Int!] + timestamp_lt: Int + timestamp_lte: Int + timestamp_not: Int + timestamp_not_in: [Int!] transaction: String transaction_contains: String transaction_ends_with: String @@ -1636,6 +1725,163 @@ enum LiquidityHistoryType { Removed } +type LiquidityMiningAllocationPoint { + allocationPoint: BigInt! + ammPoolToken: SmartToken + id: ID! + lendingPoolToken: LendingPool + poolTokenAddedBlock: Int! + poolTokenAddedTimestamp: Int! + poolTokenUpdatedBlock: Int! + poolTokenUpdatedTImestamp: Int! + + """ + Calculated as (totalRewardPerBlock * allocationPoint) / totalAllocationPoint + """ + rewardPerBlock: BigDecimal! +} + +input LiquidityMiningAllocationPoint_filter { + allocationPoint: BigInt + allocationPoint_gt: BigInt + allocationPoint_gte: BigInt + allocationPoint_in: [BigInt!] + allocationPoint_lt: BigInt + allocationPoint_lte: BigInt + allocationPoint_not: BigInt + allocationPoint_not_in: [BigInt!] + ammPoolToken: String + ammPoolToken_contains: String + ammPoolToken_ends_with: String + ammPoolToken_gt: String + ammPoolToken_gte: String + ammPoolToken_in: [String!] + ammPoolToken_lt: String + ammPoolToken_lte: String + ammPoolToken_not: String + ammPoolToken_not_contains: String + ammPoolToken_not_ends_with: String + ammPoolToken_not_in: [String!] + ammPoolToken_not_starts_with: String + ammPoolToken_starts_with: String + id: ID + id_gt: ID + id_gte: ID + id_in: [ID!] + id_lt: ID + id_lte: ID + id_not: ID + id_not_in: [ID!] + lendingPoolToken: String + lendingPoolToken_contains: String + lendingPoolToken_ends_with: String + lendingPoolToken_gt: String + lendingPoolToken_gte: String + lendingPoolToken_in: [String!] + lendingPoolToken_lt: String + lendingPoolToken_lte: String + lendingPoolToken_not: String + lendingPoolToken_not_contains: String + lendingPoolToken_not_ends_with: String + lendingPoolToken_not_in: [String!] + lendingPoolToken_not_starts_with: String + lendingPoolToken_starts_with: String + poolTokenAddedBlock: Int + poolTokenAddedBlock_gt: Int + poolTokenAddedBlock_gte: Int + poolTokenAddedBlock_in: [Int!] + poolTokenAddedBlock_lt: Int + poolTokenAddedBlock_lte: Int + poolTokenAddedBlock_not: Int + poolTokenAddedBlock_not_in: [Int!] + poolTokenAddedTimestamp: Int + poolTokenAddedTimestamp_gt: Int + poolTokenAddedTimestamp_gte: Int + poolTokenAddedTimestamp_in: [Int!] + poolTokenAddedTimestamp_lt: Int + poolTokenAddedTimestamp_lte: Int + poolTokenAddedTimestamp_not: Int + poolTokenAddedTimestamp_not_in: [Int!] + poolTokenUpdatedBlock: Int + poolTokenUpdatedBlock_gt: Int + poolTokenUpdatedBlock_gte: Int + poolTokenUpdatedBlock_in: [Int!] + poolTokenUpdatedBlock_lt: Int + poolTokenUpdatedBlock_lte: Int + poolTokenUpdatedBlock_not: Int + poolTokenUpdatedBlock_not_in: [Int!] + poolTokenUpdatedTImestamp: Int + poolTokenUpdatedTImestamp_gt: Int + poolTokenUpdatedTImestamp_gte: Int + poolTokenUpdatedTImestamp_in: [Int!] + poolTokenUpdatedTImestamp_lt: Int + poolTokenUpdatedTImestamp_lte: Int + poolTokenUpdatedTImestamp_not: Int + poolTokenUpdatedTImestamp_not_in: [Int!] + rewardPerBlock: BigDecimal + rewardPerBlock_gt: BigDecimal + rewardPerBlock_gte: BigDecimal + rewardPerBlock_in: [BigDecimal!] + rewardPerBlock_lt: BigDecimal + rewardPerBlock_lte: BigDecimal + rewardPerBlock_not: BigDecimal + rewardPerBlock_not_in: [BigDecimal!] +} + +enum LiquidityMiningAllocationPoint_orderBy { + allocationPoint + ammPoolToken + id + lendingPoolToken + poolTokenAddedBlock + poolTokenAddedTimestamp + poolTokenUpdatedBlock + poolTokenUpdatedTImestamp + rewardPerBlock +} + +""" +This entity will have only one instance (id: 0), and will hold global variables required for liquidity mining rewards calculations +""" +type LiquidityMiningGlobal { + id: ID! + totalAllocationPoint: BigInt! + totalRewardPerBlock: BigInt! +} + +input LiquidityMiningGlobal_filter { + id: ID + id_gt: ID + id_gte: ID + id_in: [ID!] + id_lt: ID + id_lte: ID + id_not: ID + id_not_in: [ID!] + totalAllocationPoint: BigInt + totalAllocationPoint_gt: BigInt + totalAllocationPoint_gte: BigInt + totalAllocationPoint_in: [BigInt!] + totalAllocationPoint_lt: BigInt + totalAllocationPoint_lte: BigInt + totalAllocationPoint_not: BigInt + totalAllocationPoint_not_in: [BigInt!] + totalRewardPerBlock: BigInt + totalRewardPerBlock_gt: BigInt + totalRewardPerBlock_gte: BigInt + totalRewardPerBlock_in: [BigInt!] + totalRewardPerBlock_lt: BigInt + totalRewardPerBlock_lte: BigInt + totalRewardPerBlock_not: BigInt + totalRewardPerBlock_not_in: [BigInt!] +} + +enum LiquidityMiningGlobal_orderBy { + id + totalAllocationPoint + totalRewardPerBlock +} + """ AMM Pool (sometimes referred to as a Converter) """ @@ -1651,9 +1897,13 @@ type LiquidityPool { skip: Int = 0 where: LiquidityPoolToken_filter ): [LiquidityPoolToken!]! + + """ + Divide by maxConversionFee to get percentage + """ conversionFee: BigInt - createdAtBlockNumber: BigInt - createdAtTimestamp: BigInt + createdAtBlockNumber: Int + createdAtTimestamp: Int createdAtTransaction: Transaction! currentConverterRegistry: ConverterRegistry @@ -1661,183 +1911,61 @@ type LiquidityPool { ID is the contract address of the Converter """ id: ID! - lastResetBlockNumber: BigInt - lastResetTimestamp: BigInt + lastResetBlockNumber: Int + lastResetTimestamp: Int maxConversionFee: BigInt owner: String poolTokens( first: Int = 100 - orderBy: TokenPoolToken_orderBy + orderBy: PoolToken_orderBy orderDirection: OrderDirection skip: Int = 0 - where: TokenPoolToken_filter - ): [TokenPoolToken!]! + where: PoolToken_filter + ): [PoolToken!] smartToken: SmartToken """ The reserve assets of this AMM Pool. The are stored here like this so that they can be accessed inside mappings when the LiquidityPool is loaded. """ token0: Token + + """ + The balance for each token on this liquidity pool + NB: For the V2 pools (USDT, DOC, BPRO), this balance is the staked balance, not the contract balance + """ + token0Balance: BigDecimal! token1: Token + token1Balance: BigDecimal! """ Sovryn uses Bancor V1 and Bancor V2 pools """ type: Int version: Int - weight: BigInt } """ -Autogenerated for debugging - to be eventually deleted +This entity stores the relationship between liquidity pools and underlying tokens +It also currently stores the total volumes bought and sold, but this should be moved to the LiquidityPool """ -type LiquidityPoolAdded { - _liquidityPool: Bytes! - emittedBy: Bytes! +type LiquidityPoolToken { + """ + ID is liquidityPool address + tokenAddress + """ id: ID! - timestamp: BigInt! - transaction: Transaction! -} - -input LiquidityPoolAdded_filter { - _liquidityPool: Bytes - _liquidityPool_contains: Bytes - _liquidityPool_in: [Bytes!] - _liquidityPool_not: Bytes - _liquidityPool_not_contains: Bytes - _liquidityPool_not_in: [Bytes!] - emittedBy: Bytes - emittedBy_contains: Bytes - emittedBy_in: [Bytes!] - emittedBy_not: Bytes - emittedBy_not_contains: Bytes - emittedBy_not_in: [Bytes!] - id: ID - id_gt: ID - id_gte: ID - id_in: [ID!] - id_lt: ID - id_lte: ID - id_not: ID - id_not_in: [ID!] - timestamp: BigInt - timestamp_gt: BigInt - timestamp_gte: BigInt - timestamp_in: [BigInt!] - timestamp_lt: BigInt - timestamp_lte: BigInt - timestamp_not: BigInt - timestamp_not_in: [BigInt!] - transaction: String - transaction_contains: String - transaction_ends_with: String - transaction_gt: String - transaction_gte: String - transaction_in: [String!] - transaction_lt: String - transaction_lte: String - transaction_not: String - transaction_not_contains: String - transaction_not_ends_with: String - transaction_not_in: [String!] - transaction_not_starts_with: String - transaction_starts_with: String -} - -enum LiquidityPoolAdded_orderBy { - _liquidityPool - emittedBy - id - timestamp - transaction -} + liquidityPool: LiquidityPool! -""" -Autogenerated for debugging - to be eventually deleted -""" -type LiquidityPoolRemoved { - _liquidityPool: Bytes! - emittedBy: Bytes! - id: ID! - timestamp: BigInt! - transaction: Transaction! + """ + The pool token that represents this token-liquidityPool relationship + """ + poolToken: PoolToken! + token: Token! + totalVolume: BigDecimal! + volumeBought: BigDecimal! + volumeSold: BigDecimal! } -input LiquidityPoolRemoved_filter { - _liquidityPool: Bytes - _liquidityPool_contains: Bytes - _liquidityPool_in: [Bytes!] - _liquidityPool_not: Bytes - _liquidityPool_not_contains: Bytes - _liquidityPool_not_in: [Bytes!] - emittedBy: Bytes - emittedBy_contains: Bytes - emittedBy_in: [Bytes!] - emittedBy_not: Bytes - emittedBy_not_contains: Bytes - emittedBy_not_in: [Bytes!] - id: ID - id_gt: ID - id_gte: ID - id_in: [ID!] - id_lt: ID - id_lte: ID - id_not: ID - id_not_in: [ID!] - timestamp: BigInt - timestamp_gt: BigInt - timestamp_gte: BigInt - timestamp_in: [BigInt!] - timestamp_lt: BigInt - timestamp_lte: BigInt - timestamp_not: BigInt - timestamp_not_in: [BigInt!] - transaction: String - transaction_contains: String - transaction_ends_with: String - transaction_gt: String - transaction_gte: String - transaction_in: [String!] - transaction_lt: String - transaction_lte: String - transaction_not: String - transaction_not_contains: String - transaction_not_ends_with: String - transaction_not_in: [String!] - transaction_not_starts_with: String - transaction_starts_with: String -} - -enum LiquidityPoolRemoved_orderBy { - _liquidityPool - emittedBy - id - timestamp - transaction -} - -""" -This entity stores the relationship between liquidity pools and underlying tokens -It also currently stores the total volumes bought and so -""" -type LiquidityPoolToken { - """ - ID is liquidityPool address + tokenAddress - """ - id: ID! - liquidityPool: LiquidityPool! - - """ - The pool token that represents this token-liquidityPool relationship - """ - poolToken: PoolToken! - token: Token! - totalVolume: BigDecimal! - volumeBought: BigDecimal! - volumeSold: BigDecimal! -} - -input LiquidityPoolToken_filter { +input LiquidityPoolToken_filter { id: ID id_gt: ID id_gte: ID @@ -1937,22 +2065,22 @@ input LiquidityPool_filter { conversionFee_lte: BigInt conversionFee_not: BigInt conversionFee_not_in: [BigInt!] - createdAtBlockNumber: BigInt - createdAtBlockNumber_gt: BigInt - createdAtBlockNumber_gte: BigInt - createdAtBlockNumber_in: [BigInt!] - createdAtBlockNumber_lt: BigInt - createdAtBlockNumber_lte: BigInt - createdAtBlockNumber_not: BigInt - createdAtBlockNumber_not_in: [BigInt!] - createdAtTimestamp: BigInt - createdAtTimestamp_gt: BigInt - createdAtTimestamp_gte: BigInt - createdAtTimestamp_in: [BigInt!] - createdAtTimestamp_lt: BigInt - createdAtTimestamp_lte: BigInt - createdAtTimestamp_not: BigInt - createdAtTimestamp_not_in: [BigInt!] + createdAtBlockNumber: Int + createdAtBlockNumber_gt: Int + createdAtBlockNumber_gte: Int + createdAtBlockNumber_in: [Int!] + createdAtBlockNumber_lt: Int + createdAtBlockNumber_lte: Int + createdAtBlockNumber_not: Int + createdAtBlockNumber_not_in: [Int!] + createdAtTimestamp: Int + createdAtTimestamp_gt: Int + createdAtTimestamp_gte: Int + createdAtTimestamp_in: [Int!] + createdAtTimestamp_lt: Int + createdAtTimestamp_lte: Int + createdAtTimestamp_not: Int + createdAtTimestamp_not_in: [Int!] createdAtTransaction: String createdAtTransaction_contains: String createdAtTransaction_ends_with: String @@ -1989,22 +2117,22 @@ input LiquidityPool_filter { id_lte: ID id_not: ID id_not_in: [ID!] - lastResetBlockNumber: BigInt - lastResetBlockNumber_gt: BigInt - lastResetBlockNumber_gte: BigInt - lastResetBlockNumber_in: [BigInt!] - lastResetBlockNumber_lt: BigInt - lastResetBlockNumber_lte: BigInt - lastResetBlockNumber_not: BigInt - lastResetBlockNumber_not_in: [BigInt!] - lastResetTimestamp: BigInt - lastResetTimestamp_gt: BigInt - lastResetTimestamp_gte: BigInt - lastResetTimestamp_in: [BigInt!] - lastResetTimestamp_lt: BigInt - lastResetTimestamp_lte: BigInt - lastResetTimestamp_not: BigInt - lastResetTimestamp_not_in: [BigInt!] + lastResetBlockNumber: Int + lastResetBlockNumber_gt: Int + lastResetBlockNumber_gte: Int + lastResetBlockNumber_in: [Int!] + lastResetBlockNumber_lt: Int + lastResetBlockNumber_lte: Int + lastResetBlockNumber_not: Int + lastResetBlockNumber_not_in: [Int!] + lastResetTimestamp: Int + lastResetTimestamp_gt: Int + lastResetTimestamp_gte: Int + lastResetTimestamp_in: [Int!] + lastResetTimestamp_lt: Int + lastResetTimestamp_lte: Int + lastResetTimestamp_not: Int + lastResetTimestamp_not_in: [Int!] maxConversionFee: BigInt maxConversionFee_gt: BigInt maxConversionFee_gte: BigInt @@ -2042,6 +2170,14 @@ input LiquidityPool_filter { smartToken_not_starts_with: String smartToken_starts_with: String token0: String + token0Balance: BigDecimal + token0Balance_gt: BigDecimal + token0Balance_gte: BigDecimal + token0Balance_in: [BigDecimal!] + token0Balance_lt: BigDecimal + token0Balance_lte: BigDecimal + token0Balance_not: BigDecimal + token0Balance_not_in: [BigDecimal!] token0_contains: String token0_ends_with: String token0_gt: String @@ -2056,6 +2192,14 @@ input LiquidityPool_filter { token0_not_starts_with: String token0_starts_with: String token1: String + token1Balance: BigDecimal + token1Balance_gt: BigDecimal + token1Balance_gte: BigDecimal + token1Balance_in: [BigDecimal!] + token1Balance_lt: BigDecimal + token1Balance_lte: BigDecimal + token1Balance_not: BigDecimal + token1Balance_not_in: [BigDecimal!] token1_contains: String token1_ends_with: String token1_gt: String @@ -2085,14 +2229,6 @@ input LiquidityPool_filter { version_lte: Int version_not: Int version_not_in: [Int!] - weight: BigInt - weight_gt: BigInt - weight_gte: BigInt - weight_in: [BigInt!] - weight_lt: BigInt - weight_lte: BigInt - weight_not: BigInt - weight_not_in: [BigInt!] } enum LiquidityPool_orderBy { @@ -2111,10 +2247,11 @@ enum LiquidityPool_orderBy { poolTokens smartToken token0 + token0Balance token1 + token1Balance type version - weight } """ @@ -2164,7 +2301,7 @@ type Loan { skip: Int = 0 where: DepositCollateral_filter ): [DepositCollateral!] - endTimestamp: BigInt + endTimestamp: Int id: ID! """ @@ -2186,6 +2323,11 @@ type Loan { """ maximumPositionSize: BigDecimal! + """ + Next date that the loan will be rolled over, interest paid, and rollover reward paid + """ + nextRollover: Int + """ Total of collateral (user collateral in a Borrow, and user collateral + borrowed amount in a Trade) in collateral tokens """ @@ -2196,6 +2338,13 @@ type Loan { """ realizedPnL: BigDecimal! realizedPnLPercent: BigDecimal! + rollovers( + first: Int = 100 + orderBy: Rollover_orderBy + orderDirection: OrderDirection + skip: Int = 0 + where: Rollover_filter + ): [Rollover!] startBorrowedAmount: BigDecimal! """ @@ -2207,7 +2356,7 @@ type Loan { The start rate of the loan in loan tokens (eg if it is a long USD/BTC margin trade, this is the BTC price in USD) """ startRate: BigDecimal! - startTimestamp: BigInt! + startTimestamp: Int! """ Sum of position volume from Trade, Borrow and DepositCollateral events in this loan, in collateral token @@ -2277,14 +2426,14 @@ input Loan_filter { collateralToken_not_in: [String!] collateralToken_not_starts_with: String collateralToken_starts_with: String - endTimestamp: BigInt - endTimestamp_gt: BigInt - endTimestamp_gte: BigInt - endTimestamp_in: [BigInt!] - endTimestamp_lt: BigInt - endTimestamp_lte: BigInt - endTimestamp_not: BigInt - endTimestamp_not_in: [BigInt!] + endTimestamp: Int + endTimestamp_gt: Int + endTimestamp_gte: Int + endTimestamp_in: [Int!] + endTimestamp_lt: Int + endTimestamp_lte: Int + endTimestamp_not: Int + endTimestamp_not_in: [Int!] id: ID id_gt: ID id_gte: ID @@ -2327,6 +2476,14 @@ input Loan_filter { maximumPositionSize_lte: BigDecimal maximumPositionSize_not: BigDecimal maximumPositionSize_not_in: [BigDecimal!] + nextRollover: Int + nextRollover_gt: Int + nextRollover_gte: Int + nextRollover_in: [Int!] + nextRollover_lt: Int + nextRollover_lte: Int + nextRollover_not: Int + nextRollover_not_in: [Int!] positionSize: BigDecimal positionSize_gt: BigDecimal positionSize_gte: BigDecimal @@ -2375,14 +2532,14 @@ input Loan_filter { startRate_lte: BigDecimal startRate_not: BigDecimal startRate_not_in: [BigDecimal!] - startTimestamp: BigInt - startTimestamp_gt: BigInt - startTimestamp_gte: BigInt - startTimestamp_in: [BigInt!] - startTimestamp_lt: BigInt - startTimestamp_lte: BigInt - startTimestamp_not: BigInt - startTimestamp_not_in: [BigInt!] + startTimestamp: Int + startTimestamp_gt: Int + startTimestamp_gte: Int + startTimestamp_in: [Int!] + startTimestamp_lt: Int + startTimestamp_lte: Int + startTimestamp_not: Int + startTimestamp_not_in: [Int!] totalBought: BigDecimal totalBought_gt: BigDecimal totalBought_gte: BigDecimal @@ -2435,9 +2592,11 @@ enum Loan_orderBy { loanToken maxBorrowedAmount maximumPositionSize + nextRollover positionSize realizedPnL realizedPnLPercent + rollovers startBorrowedAmount startPositionSize startRate @@ -2449,12 +2608,239 @@ enum Loan_orderBy { user } +type MarginOrderCanceled { + emittedBy: Bytes! + hash: Bytes! + id: ID! + timestamp: Int! + trader: Bytes! + transaction: Transaction! +} + +input MarginOrderCanceled_filter { + emittedBy: Bytes + emittedBy_contains: Bytes + emittedBy_in: [Bytes!] + emittedBy_not: Bytes + emittedBy_not_contains: Bytes + emittedBy_not_in: [Bytes!] + hash: Bytes + hash_contains: Bytes + hash_in: [Bytes!] + hash_not: Bytes + hash_not_contains: Bytes + hash_not_in: [Bytes!] + id: ID + id_gt: ID + id_gte: ID + id_in: [ID!] + id_lt: ID + id_lte: ID + id_not: ID + id_not_in: [ID!] + timestamp: Int + timestamp_gt: Int + timestamp_gte: Int + timestamp_in: [Int!] + timestamp_lt: Int + timestamp_lte: Int + timestamp_not: Int + timestamp_not_in: [Int!] + trader: Bytes + trader_contains: Bytes + trader_in: [Bytes!] + trader_not: Bytes + trader_not_contains: Bytes + trader_not_in: [Bytes!] + transaction: String + transaction_contains: String + transaction_ends_with: String + transaction_gt: String + transaction_gte: String + transaction_in: [String!] + transaction_lt: String + transaction_lte: String + transaction_not: String + transaction_not_contains: String + transaction_not_ends_with: String + transaction_not_in: [String!] + transaction_not_starts_with: String + transaction_starts_with: String +} + +enum MarginOrderCanceled_orderBy { + emittedBy + hash + id + timestamp + trader + transaction +} + +type MarginOrderFilled { + collateral: BigDecimal! + collateralTokenAddress: Bytes! + collateralTokenSent: BigDecimal! + emittedBy: Bytes! + filledPrice: BigDecimal! + hash: Bytes! + id: ID! + leverageAmount: BigDecimal! + loanTokenAddress: Bytes! + loanTokenSent: BigDecimal! + principal: BigDecimal! + timestamp: Int! + trader: User! + transaction: Transaction! +} + +input MarginOrderFilled_filter { + collateral: BigDecimal + collateralTokenAddress: Bytes + collateralTokenAddress_contains: Bytes + collateralTokenAddress_in: [Bytes!] + collateralTokenAddress_not: Bytes + collateralTokenAddress_not_contains: Bytes + collateralTokenAddress_not_in: [Bytes!] + collateralTokenSent: BigDecimal + collateralTokenSent_gt: BigDecimal + collateralTokenSent_gte: BigDecimal + collateralTokenSent_in: [BigDecimal!] + collateralTokenSent_lt: BigDecimal + collateralTokenSent_lte: BigDecimal + collateralTokenSent_not: BigDecimal + collateralTokenSent_not_in: [BigDecimal!] + collateral_gt: BigDecimal + collateral_gte: BigDecimal + collateral_in: [BigDecimal!] + collateral_lt: BigDecimal + collateral_lte: BigDecimal + collateral_not: BigDecimal + collateral_not_in: [BigDecimal!] + emittedBy: Bytes + emittedBy_contains: Bytes + emittedBy_in: [Bytes!] + emittedBy_not: Bytes + emittedBy_not_contains: Bytes + emittedBy_not_in: [Bytes!] + filledPrice: BigDecimal + filledPrice_gt: BigDecimal + filledPrice_gte: BigDecimal + filledPrice_in: [BigDecimal!] + filledPrice_lt: BigDecimal + filledPrice_lte: BigDecimal + filledPrice_not: BigDecimal + filledPrice_not_in: [BigDecimal!] + hash: Bytes + hash_contains: Bytes + hash_in: [Bytes!] + hash_not: Bytes + hash_not_contains: Bytes + hash_not_in: [Bytes!] + id: ID + id_gt: ID + id_gte: ID + id_in: [ID!] + id_lt: ID + id_lte: ID + id_not: ID + id_not_in: [ID!] + leverageAmount: BigDecimal + leverageAmount_gt: BigDecimal + leverageAmount_gte: BigDecimal + leverageAmount_in: [BigDecimal!] + leverageAmount_lt: BigDecimal + leverageAmount_lte: BigDecimal + leverageAmount_not: BigDecimal + leverageAmount_not_in: [BigDecimal!] + loanTokenAddress: Bytes + loanTokenAddress_contains: Bytes + loanTokenAddress_in: [Bytes!] + loanTokenAddress_not: Bytes + loanTokenAddress_not_contains: Bytes + loanTokenAddress_not_in: [Bytes!] + loanTokenSent: BigDecimal + loanTokenSent_gt: BigDecimal + loanTokenSent_gte: BigDecimal + loanTokenSent_in: [BigDecimal!] + loanTokenSent_lt: BigDecimal + loanTokenSent_lte: BigDecimal + loanTokenSent_not: BigDecimal + loanTokenSent_not_in: [BigDecimal!] + principal: BigDecimal + principal_gt: BigDecimal + principal_gte: BigDecimal + principal_in: [BigDecimal!] + principal_lt: BigDecimal + principal_lte: BigDecimal + principal_not: BigDecimal + principal_not_in: [BigDecimal!] + timestamp: Int + timestamp_gt: Int + timestamp_gte: Int + timestamp_in: [Int!] + timestamp_lt: Int + timestamp_lte: Int + timestamp_not: Int + timestamp_not_in: [Int!] + trader: String + trader_contains: String + trader_ends_with: String + trader_gt: String + trader_gte: String + trader_in: [String!] + trader_lt: String + trader_lte: String + trader_not: String + trader_not_contains: String + trader_not_ends_with: String + trader_not_in: [String!] + trader_not_starts_with: String + trader_starts_with: String + transaction: String + transaction_contains: String + transaction_ends_with: String + transaction_gt: String + transaction_gte: String + transaction_in: [String!] + transaction_lt: String + transaction_lte: String + transaction_not: String + transaction_not_contains: String + transaction_not_ends_with: String + transaction_not_in: [String!] + transaction_not_starts_with: String + transaction_starts_with: String +} + +enum MarginOrderFilled_orderBy { + collateral + collateralTokenAddress + collateralTokenSent + emittedBy + filledPrice + hash + id + leverageAmount + loanTokenAddress + loanTokenSent + principal + timestamp + trader + transaction +} + +enum Network { + Mainnet + Testnet +} + type NewConverter { _converter: Bytes! _owner: Bytes! _type: Int! id: ID! - timestamp: BigInt! + timestamp: Int! transaction: Transaction! } @@ -2487,14 +2873,14 @@ input NewConverter_filter { id_lte: ID id_not: ID id_not_in: [ID!] - timestamp: BigInt - timestamp_gt: BigInt - timestamp_gte: BigInt - timestamp_in: [BigInt!] - timestamp_lt: BigInt - timestamp_lte: BigInt - timestamp_not: BigInt - timestamp_not_in: [BigInt!] + timestamp: Int + timestamp_gt: Int + timestamp_gte: Int + timestamp_in: [Int!] + timestamp_lt: Int + timestamp_lte: Int + timestamp_not: Int + timestamp_not_in: [Int!] transaction: String transaction_contains: String transaction_ends_with: String @@ -2520,34 +2906,450 @@ enum NewConverter_orderBy { transaction } +type OrderCanceled { + emittedBy: Bytes! + hash: Bytes! + id: ID! + maker: Bytes! + timestamp: Int! + transaction: Transaction! +} + +input OrderCanceled_filter { + emittedBy: Bytes + emittedBy_contains: Bytes + emittedBy_in: [Bytes!] + emittedBy_not: Bytes + emittedBy_not_contains: Bytes + emittedBy_not_in: [Bytes!] + hash: Bytes + hash_contains: Bytes + hash_in: [Bytes!] + hash_not: Bytes + hash_not_contains: Bytes + hash_not_in: [Bytes!] + id: ID + id_gt: ID + id_gte: ID + id_in: [ID!] + id_lt: ID + id_lte: ID + id_not: ID + id_not_in: [ID!] + maker: Bytes + maker_contains: Bytes + maker_in: [Bytes!] + maker_not: Bytes + maker_not_contains: Bytes + maker_not_in: [Bytes!] + timestamp: Int + timestamp_gt: Int + timestamp_gte: Int + timestamp_in: [Int!] + timestamp_lt: Int + timestamp_lte: Int + timestamp_not: Int + timestamp_not_in: [Int!] + transaction: String + transaction_contains: String + transaction_ends_with: String + transaction_gt: String + transaction_gte: String + transaction_in: [String!] + transaction_lt: String + transaction_lte: String + transaction_not: String + transaction_not_contains: String + transaction_not_ends_with: String + transaction_not_in: [String!] + transaction_not_starts_with: String + transaction_starts_with: String +} + +enum OrderCanceled_orderBy { + emittedBy + hash + id + maker + timestamp + transaction +} + +type OrderCreated { + emittedBy: Bytes! + hash: Bytes! + id: ID! + limitPrice: BigInt! + network: Network! + order_amountIn: BigInt! + order_amountOutMin: BigInt! + order_created: BigInt! + order_deadline: BigInt! + order_fromToken: Bytes! + order_maker: User! + order_recipient: Bytes! + order_toToken: Bytes! + timestamp: Int! + transaction: Transaction! +} + +input OrderCreated_filter { + emittedBy: Bytes + emittedBy_contains: Bytes + emittedBy_in: [Bytes!] + emittedBy_not: Bytes + emittedBy_not_contains: Bytes + emittedBy_not_in: [Bytes!] + hash: Bytes + hash_contains: Bytes + hash_in: [Bytes!] + hash_not: Bytes + hash_not_contains: Bytes + hash_not_in: [Bytes!] + id: ID + id_gt: ID + id_gte: ID + id_in: [ID!] + id_lt: ID + id_lte: ID + id_not: ID + id_not_in: [ID!] + limitPrice: BigInt + limitPrice_gt: BigInt + limitPrice_gte: BigInt + limitPrice_in: [BigInt!] + limitPrice_lt: BigInt + limitPrice_lte: BigInt + limitPrice_not: BigInt + limitPrice_not_in: [BigInt!] + network: Network + network_in: [Network!] + network_not: Network + network_not_in: [Network!] + order_amountIn: BigInt + order_amountIn_gt: BigInt + order_amountIn_gte: BigInt + order_amountIn_in: [BigInt!] + order_amountIn_lt: BigInt + order_amountIn_lte: BigInt + order_amountIn_not: BigInt + order_amountIn_not_in: [BigInt!] + order_amountOutMin: BigInt + order_amountOutMin_gt: BigInt + order_amountOutMin_gte: BigInt + order_amountOutMin_in: [BigInt!] + order_amountOutMin_lt: BigInt + order_amountOutMin_lte: BigInt + order_amountOutMin_not: BigInt + order_amountOutMin_not_in: [BigInt!] + order_created: BigInt + order_created_gt: BigInt + order_created_gte: BigInt + order_created_in: [BigInt!] + order_created_lt: BigInt + order_created_lte: BigInt + order_created_not: BigInt + order_created_not_in: [BigInt!] + order_deadline: BigInt + order_deadline_gt: BigInt + order_deadline_gte: BigInt + order_deadline_in: [BigInt!] + order_deadline_lt: BigInt + order_deadline_lte: BigInt + order_deadline_not: BigInt + order_deadline_not_in: [BigInt!] + order_fromToken: Bytes + order_fromToken_contains: Bytes + order_fromToken_in: [Bytes!] + order_fromToken_not: Bytes + order_fromToken_not_contains: Bytes + order_fromToken_not_in: [Bytes!] + order_maker: String + order_maker_contains: String + order_maker_ends_with: String + order_maker_gt: String + order_maker_gte: String + order_maker_in: [String!] + order_maker_lt: String + order_maker_lte: String + order_maker_not: String + order_maker_not_contains: String + order_maker_not_ends_with: String + order_maker_not_in: [String!] + order_maker_not_starts_with: String + order_maker_starts_with: String + order_recipient: Bytes + order_recipient_contains: Bytes + order_recipient_in: [Bytes!] + order_recipient_not: Bytes + order_recipient_not_contains: Bytes + order_recipient_not_in: [Bytes!] + order_toToken: Bytes + order_toToken_contains: Bytes + order_toToken_in: [Bytes!] + order_toToken_not: Bytes + order_toToken_not_contains: Bytes + order_toToken_not_in: [Bytes!] + timestamp: Int + timestamp_gt: Int + timestamp_gte: Int + timestamp_in: [Int!] + timestamp_lt: Int + timestamp_lte: Int + timestamp_not: Int + timestamp_not_in: [Int!] + transaction: String + transaction_contains: String + transaction_ends_with: String + transaction_gt: String + transaction_gte: String + transaction_in: [String!] + transaction_lt: String + transaction_lte: String + transaction_not: String + transaction_not_contains: String + transaction_not_ends_with: String + transaction_not_in: [String!] + transaction_not_starts_with: String + transaction_starts_with: String +} + +enum OrderCreated_orderBy { + emittedBy + hash + id + limitPrice + network + order_amountIn + order_amountOutMin + order_created + order_deadline + order_fromToken + order_maker + order_recipient + order_toToken + timestamp + transaction +} + enum OrderDirection { asc desc } +type OrderFilled { + amountIn: BigDecimal! + amountOut: BigDecimal! + emittedBy: Bytes! + filledPrice: BigDecimal! + hash: Bytes! + id: ID! + maker: User! + path: [String!]! + timestamp: Int! + transaction: Transaction! +} + +input OrderFilled_filter { + amountIn: BigDecimal + amountIn_gt: BigDecimal + amountIn_gte: BigDecimal + amountIn_in: [BigDecimal!] + amountIn_lt: BigDecimal + amountIn_lte: BigDecimal + amountIn_not: BigDecimal + amountIn_not_in: [BigDecimal!] + amountOut: BigDecimal + amountOut_gt: BigDecimal + amountOut_gte: BigDecimal + amountOut_in: [BigDecimal!] + amountOut_lt: BigDecimal + amountOut_lte: BigDecimal + amountOut_not: BigDecimal + amountOut_not_in: [BigDecimal!] + emittedBy: Bytes + emittedBy_contains: Bytes + emittedBy_in: [Bytes!] + emittedBy_not: Bytes + emittedBy_not_contains: Bytes + emittedBy_not_in: [Bytes!] + filledPrice: BigDecimal + filledPrice_gt: BigDecimal + filledPrice_gte: BigDecimal + filledPrice_in: [BigDecimal!] + filledPrice_lt: BigDecimal + filledPrice_lte: BigDecimal + filledPrice_not: BigDecimal + filledPrice_not_in: [BigDecimal!] + hash: Bytes + hash_contains: Bytes + hash_in: [Bytes!] + hash_not: Bytes + hash_not_contains: Bytes + hash_not_in: [Bytes!] + id: ID + id_gt: ID + id_gte: ID + id_in: [ID!] + id_lt: ID + id_lte: ID + id_not: ID + id_not_in: [ID!] + maker: String + maker_contains: String + maker_ends_with: String + maker_gt: String + maker_gte: String + maker_in: [String!] + maker_lt: String + maker_lte: String + maker_not: String + maker_not_contains: String + maker_not_ends_with: String + maker_not_in: [String!] + maker_not_starts_with: String + maker_starts_with: String + path: [String!] + path_contains: [String!] + path_not: [String!] + path_not_contains: [String!] + timestamp: Int + timestamp_gt: Int + timestamp_gte: Int + timestamp_in: [Int!] + timestamp_lt: Int + timestamp_lte: Int + timestamp_not: Int + timestamp_not_in: [Int!] + transaction: String + transaction_contains: String + transaction_ends_with: String + transaction_gt: String + transaction_gte: String + transaction_in: [String!] + transaction_lt: String + transaction_lte: String + transaction_not: String + transaction_not_contains: String + transaction_not_ends_with: String + transaction_not_in: [String!] + transaction_not_starts_with: String + transaction_starts_with: String +} + +enum OrderFilled_orderBy { + amountIn + amountOut + emittedBy + filledPrice + hash + id + maker + path + timestamp + transaction +} + +type OwnerUpdate { + emittedBy: String! + id: ID! + newOwner: String! + prevOwner: String! + timestamp: BigInt! +} + +input OwnerUpdate_filter { + emittedBy: String + emittedBy_contains: String + emittedBy_ends_with: String + emittedBy_gt: String + emittedBy_gte: String + emittedBy_in: [String!] + emittedBy_lt: String + emittedBy_lte: String + emittedBy_not: String + emittedBy_not_contains: String + emittedBy_not_ends_with: String + emittedBy_not_in: [String!] + emittedBy_not_starts_with: String + emittedBy_starts_with: String + id: ID + id_gt: ID + id_gte: ID + id_in: [ID!] + id_lt: ID + id_lte: ID + id_not: ID + id_not_in: [ID!] + newOwner: String + newOwner_contains: String + newOwner_ends_with: String + newOwner_gt: String + newOwner_gte: String + newOwner_in: [String!] + newOwner_lt: String + newOwner_lte: String + newOwner_not: String + newOwner_not_contains: String + newOwner_not_ends_with: String + newOwner_not_in: [String!] + newOwner_not_starts_with: String + newOwner_starts_with: String + prevOwner: String + prevOwner_contains: String + prevOwner_ends_with: String + prevOwner_gt: String + prevOwner_gte: String + prevOwner_in: [String!] + prevOwner_lt: String + prevOwner_lte: String + prevOwner_not: String + prevOwner_not_contains: String + prevOwner_not_ends_with: String + prevOwner_not_in: [String!] + prevOwner_not_starts_with: String + prevOwner_starts_with: String + timestamp: BigInt + timestamp_gt: BigInt + timestamp_gte: BigInt + timestamp_in: [BigInt!] + timestamp_lt: BigInt + timestamp_lte: BigInt + timestamp_not: BigInt + timestamp_not_in: [BigInt!] +} + +enum OwnerUpdate_orderBy { + emittedBy + id + newOwner + prevOwner + timestamp +} + """ Granular event data for the Loan entity. Emitted when a user Borrows and when a loan is rolled over """ type PayBorrowingFee { - amount: BigInt! + amount: BigDecimal! emittedBy: Bytes! id: ID! loanId: Loan! payer: Bytes! - timestamp: BigInt! + timestamp: Int! token: Bytes! transaction: Transaction! } input PayBorrowingFee_filter { - amount: BigInt - amount_gt: BigInt - amount_gte: BigInt - amount_in: [BigInt!] - amount_lt: BigInt - amount_lte: BigInt - amount_not: BigInt - amount_not_in: [BigInt!] + amount: BigDecimal + amount_gt: BigDecimal + amount_gte: BigDecimal + amount_in: [BigDecimal!] + amount_lt: BigDecimal + amount_lte: BigDecimal + amount_not: BigDecimal + amount_not_in: [BigDecimal!] emittedBy: Bytes emittedBy_contains: Bytes emittedBy_in: [Bytes!] @@ -2580,16 +3382,16 @@ input PayBorrowingFee_filter { payer_contains: Bytes payer_in: [Bytes!] payer_not: Bytes - payer_not_contains: Bytes - payer_not_in: [Bytes!] - timestamp: BigInt - timestamp_gt: BigInt - timestamp_gte: BigInt - timestamp_in: [BigInt!] - timestamp_lt: BigInt - timestamp_lte: BigInt - timestamp_not: BigInt - timestamp_not_in: [BigInt!] + payer_not_contains: Bytes + payer_not_in: [Bytes!] + timestamp: Int + timestamp_gt: Int + timestamp_gte: Int + timestamp_in: [Int!] + timestamp_lt: Int + timestamp_lte: Int + timestamp_not: Int + timestamp_not_in: [Int!] token: Bytes token_contains: Bytes token_in: [Bytes!] @@ -2627,24 +3429,24 @@ enum PayBorrowingFee_orderBy { Granular event data for the Loan entity. Emitted when a user Lends or Unlends and when a loan is rolled over """ type PayLendingFee { - amount: BigInt! + amount: BigDecimal! emittedBy: Bytes! id: ID! payer: Bytes! - timestamp: BigInt! + timestamp: Int! token: Bytes! transaction: Transaction! } input PayLendingFee_filter { - amount: BigInt - amount_gt: BigInt - amount_gte: BigInt - amount_in: [BigInt!] - amount_lt: BigInt - amount_lte: BigInt - amount_not: BigInt - amount_not_in: [BigInt!] + amount: BigDecimal + amount_gt: BigDecimal + amount_gte: BigDecimal + amount_in: [BigDecimal!] + amount_lt: BigDecimal + amount_lte: BigDecimal + amount_not: BigDecimal + amount_not_in: [BigDecimal!] emittedBy: Bytes emittedBy_contains: Bytes emittedBy_in: [Bytes!] @@ -2665,14 +3467,14 @@ input PayLendingFee_filter { payer_not: Bytes payer_not_contains: Bytes payer_not_in: [Bytes!] - timestamp: BigInt - timestamp_gt: BigInt - timestamp_gte: BigInt - timestamp_in: [BigInt!] - timestamp_lt: BigInt - timestamp_lte: BigInt - timestamp_not: BigInt - timestamp_not_in: [BigInt!] + timestamp: Int + timestamp_gt: Int + timestamp_gte: Int + timestamp_in: [Int!] + timestamp_lt: Int + timestamp_lte: Int + timestamp_not: Int + timestamp_not_in: [Int!] token: Bytes token_contains: Bytes token_in: [Bytes!] @@ -2709,25 +3511,25 @@ enum PayLendingFee_orderBy { Granular event data for the Loan entity. Emitted when a user Margin Trades and when a loan is rolled over """ type PayTradingFee { - amount: BigInt! + amount: BigDecimal! emittedBy: Bytes! id: ID! loanId: Loan! payer: Bytes! - timestamp: BigInt! + timestamp: Int! token: Bytes! transaction: Transaction! } input PayTradingFee_filter { - amount: BigInt - amount_gt: BigInt - amount_gte: BigInt - amount_in: [BigInt!] - amount_lt: BigInt - amount_lte: BigInt - amount_not: BigInt - amount_not_in: [BigInt!] + amount: BigDecimal + amount_gt: BigDecimal + amount_gte: BigDecimal + amount_in: [BigDecimal!] + amount_lt: BigDecimal + amount_lte: BigDecimal + amount_not: BigDecimal + amount_not_in: [BigDecimal!] emittedBy: Bytes emittedBy_contains: Bytes emittedBy_in: [Bytes!] @@ -2762,14 +3564,14 @@ input PayTradingFee_filter { payer_not: Bytes payer_not_contains: Bytes payer_not_in: [Bytes!] - timestamp: BigInt - timestamp_gt: BigInt - timestamp_gte: BigInt - timestamp_in: [BigInt!] - timestamp_lt: BigInt - timestamp_lte: BigInt - timestamp_not: BigInt - timestamp_not_in: [BigInt!] + timestamp: Int + timestamp_gt: Int + timestamp_gte: Int + timestamp_in: [Int!] + timestamp_lt: Int + timestamp_lte: Int + timestamp_not: Int + timestamp_not_in: [Int!] token: Bytes token_contains: Bytes token_in: [Bytes!] @@ -2807,24 +3609,18 @@ enum PayTradingFee_orderBy { For the V1 pools, the pool token and smart token are the same. However, for V2 pools, there is one pool token per asset and only one smart token for the pool. """ type PoolToken { - converters( - first: Int = 100 - orderBy: LiquidityPoolToken_orderBy - orderDirection: OrderDirection - skip: Int = 0 - where: LiquidityPoolToken_filter - ): [LiquidityPoolToken!] decimals: Int id: ID! + liquidityPool: LiquidityPool! name: String symbol: String underlyingAssets( first: Int = 100 - orderBy: TokenPoolToken_orderBy + orderBy: Token_orderBy orderDirection: OrderDirection skip: Int = 0 - where: TokenPoolToken_filter - ): [TokenPoolToken!] + where: Token_filter + ): [Token!]! } input PoolToken_filter { @@ -2844,6 +3640,20 @@ input PoolToken_filter { id_lte: ID id_not: ID id_not_in: [ID!] + liquidityPool: String + liquidityPool_contains: String + liquidityPool_ends_with: String + liquidityPool_gt: String + liquidityPool_gte: String + liquidityPool_in: [String!] + liquidityPool_lt: String + liquidityPool_lte: String + liquidityPool_not: String + liquidityPool_not_contains: String + liquidityPool_not_ends_with: String + liquidityPool_not_in: [String!] + liquidityPool_not_starts_with: String + liquidityPool_starts_with: String name: String name_contains: String name_ends_with: String @@ -2872,12 +3682,16 @@ input PoolToken_filter { symbol_not_in: [String!] symbol_not_starts_with: String symbol_starts_with: String + underlyingAssets: [String!] + underlyingAssets_contains: [String!] + underlyingAssets_not: [String!] + underlyingAssets_not_contains: [String!] } enum PoolToken_orderBy { - converters decimals id + liquidityPool name symbol underlyingAssets @@ -2885,21 +3699,29 @@ enum PoolToken_orderBy { type Proposal { canceled: Transaction - countVotersAgainst: BigInt! - countVotersFor: BigInt! + + """ + Number of unique wallets that voted against this proposal + """ + countVotersAgainst: Int! + + """ + Number of unique wallets that voted for this proposal + """ + countVotersFor: Int! created: Transaction! description: String! emittedBy: Bytes! - endBlock: BigInt! + endBlock: Int! executed: Transaction id: ID! - proposalId: BigInt! + proposalId: Int! proposer: Bytes! queued: Transaction signatures: [String!]! - startBlock: BigInt! + startBlock: Int! targets: [String!]! - timestamp: BigInt! + timestamp: Int! values: [BigInt!]! votes( first: Int = 100 @@ -2927,22 +3749,22 @@ input Proposal_filter { canceled_not_in: [String!] canceled_not_starts_with: String canceled_starts_with: String - countVotersAgainst: BigInt - countVotersAgainst_gt: BigInt - countVotersAgainst_gte: BigInt - countVotersAgainst_in: [BigInt!] - countVotersAgainst_lt: BigInt - countVotersAgainst_lte: BigInt - countVotersAgainst_not: BigInt - countVotersAgainst_not_in: [BigInt!] - countVotersFor: BigInt - countVotersFor_gt: BigInt - countVotersFor_gte: BigInt - countVotersFor_in: [BigInt!] - countVotersFor_lt: BigInt - countVotersFor_lte: BigInt - countVotersFor_not: BigInt - countVotersFor_not_in: [BigInt!] + countVotersAgainst: Int + countVotersAgainst_gt: Int + countVotersAgainst_gte: Int + countVotersAgainst_in: [Int!] + countVotersAgainst_lt: Int + countVotersAgainst_lte: Int + countVotersAgainst_not: Int + countVotersAgainst_not_in: [Int!] + countVotersFor: Int + countVotersFor_gt: Int + countVotersFor_gte: Int + countVotersFor_in: [Int!] + countVotersFor_lt: Int + countVotersFor_lte: Int + countVotersFor_not: Int + countVotersFor_not_in: [Int!] created: String created_contains: String created_ends_with: String @@ -2977,14 +3799,14 @@ input Proposal_filter { emittedBy_not: Bytes emittedBy_not_contains: Bytes emittedBy_not_in: [Bytes!] - endBlock: BigInt - endBlock_gt: BigInt - endBlock_gte: BigInt - endBlock_in: [BigInt!] - endBlock_lt: BigInt - endBlock_lte: BigInt - endBlock_not: BigInt - endBlock_not_in: [BigInt!] + endBlock: Int + endBlock_gt: Int + endBlock_gte: Int + endBlock_in: [Int!] + endBlock_lt: Int + endBlock_lte: Int + endBlock_not: Int + endBlock_not_in: [Int!] executed: String executed_contains: String executed_ends_with: String @@ -3007,14 +3829,14 @@ input Proposal_filter { id_lte: ID id_not: ID id_not_in: [ID!] - proposalId: BigInt - proposalId_gt: BigInt - proposalId_gte: BigInt - proposalId_in: [BigInt!] - proposalId_lt: BigInt - proposalId_lte: BigInt - proposalId_not: BigInt - proposalId_not_in: [BigInt!] + proposalId: Int + proposalId_gt: Int + proposalId_gte: Int + proposalId_in: [Int!] + proposalId_lt: Int + proposalId_lte: Int + proposalId_not: Int + proposalId_not_in: [Int!] proposer: Bytes proposer_contains: Bytes proposer_in: [Bytes!] @@ -3039,26 +3861,26 @@ input Proposal_filter { signatures_contains: [String!] signatures_not: [String!] signatures_not_contains: [String!] - startBlock: BigInt - startBlock_gt: BigInt - startBlock_gte: BigInt - startBlock_in: [BigInt!] - startBlock_lt: BigInt - startBlock_lte: BigInt - startBlock_not: BigInt - startBlock_not_in: [BigInt!] + startBlock: Int + startBlock_gt: Int + startBlock_gte: Int + startBlock_in: [Int!] + startBlock_lt: Int + startBlock_lte: Int + startBlock_not: Int + startBlock_not_in: [Int!] targets: [String!] targets_contains: [String!] targets_not: [String!] targets_not_contains: [String!] - timestamp: BigInt - timestamp_gt: BigInt - timestamp_gte: BigInt - timestamp_in: [BigInt!] - timestamp_lt: BigInt - timestamp_lte: BigInt - timestamp_not: BigInt - timestamp_not_in: [BigInt!] + timestamp: Int + timestamp_gt: Int + timestamp_gte: Int + timestamp_in: [Int!] + timestamp_lt: Int + timestamp_lte: Int + timestamp_not: Int + timestamp_not_in: [Int!] values: [BigInt!] values_contains: [BigInt!] values_not: [BigInt!] @@ -3111,6 +3933,16 @@ The ID of this one entity is "0" type ProtocolStats { btcUsdPrice: BigDecimal! + """ + This is SOV staked by vesting contracts. It in incremented when the contracts stake the tokens, and decremented when users claim their unlocked tokens + """ + currentStakedByVestingSov: BigDecimal! + + """ + This is SOV staked by users (not vesting contracts). It is incremented when users stake tokens, and decremented when users withdraw tokens from the staking contract + """ + currentVoluntarilyStakedSov: BigDecimal! + """ Only one entity should be created, with ID "0" """ @@ -3187,11 +4019,6 @@ type ProtocolStats { """ totalMarginTradeVolumeUsd: BigDecimal! - """ - This is SOV staked by vesting contracts. It in incremented when the contracts stake the tokens, and decremented when users claim their unlocked tokens - """ - totalStakedByVestingSov: BigInt! - """ Total fees from Margin Trading earned by SOV stakers (in usd) """ @@ -3200,7 +4027,7 @@ type ProtocolStats { """ NOT YET IMPLEMENTED: This will be a total of volumes of all transaction types (AMM Swaps, Margin Trades, CloseWithSwap etc etc) """ - totalTransactedVolumeUsd: BigInt! + totalTransactedVolumeUsd: Int! """ Total volume withdrawn from Lending Pool over all time (in usd) @@ -3211,12 +4038,7 @@ type ProtocolStats { Total number of users of the protocol. This number is incremented each time a user initiates a transaction with the Protocol. Currently this is incremented by specific user actions, but could be incremented on a per Transaction basis. """ - totalUsers: BigInt! - - """ - This is SOV staked by users (not vesting contracts). It is incremented when users stake tokens, and decremented when users withdraw tokens from the staking contract - """ - totalVoluntarilyStakedSov: BigInt! + totalUsers: Int! usdStablecoin: Token! } @@ -3229,6 +4051,22 @@ input ProtocolStats_filter { btcUsdPrice_lte: BigDecimal btcUsdPrice_not: BigDecimal btcUsdPrice_not_in: [BigDecimal!] + currentStakedByVestingSov: BigDecimal + currentStakedByVestingSov_gt: BigDecimal + currentStakedByVestingSov_gte: BigDecimal + currentStakedByVestingSov_in: [BigDecimal!] + currentStakedByVestingSov_lt: BigDecimal + currentStakedByVestingSov_lte: BigDecimal + currentStakedByVestingSov_not: BigDecimal + currentStakedByVestingSov_not_in: [BigDecimal!] + currentVoluntarilyStakedSov: BigDecimal + currentVoluntarilyStakedSov_gt: BigDecimal + currentVoluntarilyStakedSov_gte: BigDecimal + currentVoluntarilyStakedSov_in: [BigDecimal!] + currentVoluntarilyStakedSov_lt: BigDecimal + currentVoluntarilyStakedSov_lte: BigDecimal + currentVoluntarilyStakedSov_not: BigDecimal + currentVoluntarilyStakedSov_not_in: [BigDecimal!] id: ID id_gt: ID id_gte: ID @@ -3337,14 +4175,6 @@ input ProtocolStats_filter { totalMarginTradeVolumeUsd_lte: BigDecimal totalMarginTradeVolumeUsd_not: BigDecimal totalMarginTradeVolumeUsd_not_in: [BigDecimal!] - totalStakedByVestingSov: BigInt - totalStakedByVestingSov_gt: BigInt - totalStakedByVestingSov_gte: BigInt - totalStakedByVestingSov_in: [BigInt!] - totalStakedByVestingSov_lt: BigInt - totalStakedByVestingSov_lte: BigInt - totalStakedByVestingSov_not: BigInt - totalStakedByVestingSov_not_in: [BigInt!] totalTradingFeesUsd: BigDecimal totalTradingFeesUsd_gt: BigDecimal totalTradingFeesUsd_gte: BigDecimal @@ -3353,14 +4183,14 @@ input ProtocolStats_filter { totalTradingFeesUsd_lte: BigDecimal totalTradingFeesUsd_not: BigDecimal totalTradingFeesUsd_not_in: [BigDecimal!] - totalTransactedVolumeUsd: BigInt - totalTransactedVolumeUsd_gt: BigInt - totalTransactedVolumeUsd_gte: BigInt - totalTransactedVolumeUsd_in: [BigInt!] - totalTransactedVolumeUsd_lt: BigInt - totalTransactedVolumeUsd_lte: BigInt - totalTransactedVolumeUsd_not: BigInt - totalTransactedVolumeUsd_not_in: [BigInt!] + totalTransactedVolumeUsd: Int + totalTransactedVolumeUsd_gt: Int + totalTransactedVolumeUsd_gte: Int + totalTransactedVolumeUsd_in: [Int!] + totalTransactedVolumeUsd_lt: Int + totalTransactedVolumeUsd_lte: Int + totalTransactedVolumeUsd_not: Int + totalTransactedVolumeUsd_not_in: [Int!] totalUnlendVolumeUsd: BigDecimal totalUnlendVolumeUsd_gt: BigDecimal totalUnlendVolumeUsd_gte: BigDecimal @@ -3369,22 +4199,14 @@ input ProtocolStats_filter { totalUnlendVolumeUsd_lte: BigDecimal totalUnlendVolumeUsd_not: BigDecimal totalUnlendVolumeUsd_not_in: [BigDecimal!] - totalUsers: BigInt - totalUsers_gt: BigInt - totalUsers_gte: BigInt - totalUsers_in: [BigInt!] - totalUsers_lt: BigInt - totalUsers_lte: BigInt - totalUsers_not: BigInt - totalUsers_not_in: [BigInt!] - totalVoluntarilyStakedSov: BigInt - totalVoluntarilyStakedSov_gt: BigInt - totalVoluntarilyStakedSov_gte: BigInt - totalVoluntarilyStakedSov_in: [BigInt!] - totalVoluntarilyStakedSov_lt: BigInt - totalVoluntarilyStakedSov_lte: BigInt - totalVoluntarilyStakedSov_not: BigInt - totalVoluntarilyStakedSov_not_in: [BigInt!] + totalUsers: Int + totalUsers_gt: Int + totalUsers_gte: Int + totalUsers_in: [Int!] + totalUsers_lt: Int + totalUsers_lte: Int + totalUsers_not: Int + totalUsers_not_in: [Int!] usdStablecoin: String usdStablecoin_contains: String usdStablecoin_ends_with: String @@ -3403,6 +4225,8 @@ input ProtocolStats_filter { enum ProtocolStats_orderBy { btcUsdPrice + currentStakedByVestingSov + currentVoluntarilyStakedSov id tokens totalAmmLpFeesUsd @@ -3417,12 +4241,10 @@ enum ProtocolStats_orderBy { totalLendingFeesUsd totalLiquidateVolumeUsd totalMarginTradeVolumeUsd - totalStakedByVestingSov totalTradingFeesUsd totalTransactedVolumeUsd totalUnlendVolumeUsd totalUsers - totalVoluntarilyStakedSov usdStablecoin } @@ -3599,6 +4421,18 @@ type Query { """ subgraphError: _SubgraphErrorPolicy_! = deny ): ConverterRegistry + deposit( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + id: ID! + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + ): Deposit depositCollateral( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. @@ -3627,6 +4461,22 @@ type Query { subgraphError: _SubgraphErrorPolicy_! = deny where: DepositCollateral_filter ): [DepositCollateral!]! + deposits( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + first: Int = 100 + orderBy: Deposit_orderBy + orderDirection: OrderDirection + skip: Int = 0 + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + where: Deposit_filter + ): [Deposit!]! feeSharingTokensTransferred( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. @@ -3767,7 +4617,7 @@ type Query { subgraphError: _SubgraphErrorPolicy_! = deny where: LiquidityHistoryItem_filter ): [LiquidityHistoryItem!]! - liquidityPool( + liquidityMiningAllocationPoint( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. """ @@ -3778,63 +4628,63 @@ type Query { Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. """ subgraphError: _SubgraphErrorPolicy_! = deny - ): LiquidityPool - liquidityPoolAdded( + ): LiquidityMiningAllocationPoint + liquidityMiningAllocationPoints( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. """ block: Block_height - id: ID! + first: Int = 100 + orderBy: LiquidityMiningAllocationPoint_orderBy + orderDirection: OrderDirection + skip: Int = 0 """ Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. """ subgraphError: _SubgraphErrorPolicy_! = deny - ): LiquidityPoolAdded - liquidityPoolAddeds( + where: LiquidityMiningAllocationPoint_filter + ): [LiquidityMiningAllocationPoint!]! + liquidityMiningGlobal( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. """ block: Block_height - first: Int = 100 - orderBy: LiquidityPoolAdded_orderBy - orderDirection: OrderDirection - skip: Int = 0 + id: ID! """ Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. """ subgraphError: _SubgraphErrorPolicy_! = deny - where: LiquidityPoolAdded_filter - ): [LiquidityPoolAdded!]! - liquidityPoolRemoved( + ): LiquidityMiningGlobal + liquidityMiningGlobals( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. """ block: Block_height - id: ID! + first: Int = 100 + orderBy: LiquidityMiningGlobal_orderBy + orderDirection: OrderDirection + skip: Int = 0 """ Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. """ subgraphError: _SubgraphErrorPolicy_! = deny - ): LiquidityPoolRemoved - liquidityPoolRemoveds( + where: LiquidityMiningGlobal_filter + ): [LiquidityMiningGlobal!]! + liquidityPool( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. """ block: Block_height - first: Int = 100 - orderBy: LiquidityPoolRemoved_orderBy - orderDirection: OrderDirection - skip: Int = 0 + id: ID! """ Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. """ subgraphError: _SubgraphErrorPolicy_! = deny - where: LiquidityPoolRemoved_filter - ): [LiquidityPoolRemoved!]! + ): LiquidityPool liquidityPoolToken( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. @@ -3907,6 +4757,62 @@ type Query { subgraphError: _SubgraphErrorPolicy_! = deny where: Loan_filter ): [Loan!]! + marginOrderCanceled( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + id: ID! + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + ): MarginOrderCanceled + marginOrderCanceleds( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + first: Int = 100 + orderBy: MarginOrderCanceled_orderBy + orderDirection: OrderDirection + skip: Int = 0 + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + where: MarginOrderCanceled_filter + ): [MarginOrderCanceled!]! + marginOrderFilled( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + id: ID! + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + ): MarginOrderFilled + marginOrderFilleds( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + first: Int = 100 + orderBy: MarginOrderFilled_orderBy + orderDirection: OrderDirection + skip: Int = 0 + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + where: MarginOrderFilled_filter + ): [MarginOrderFilled!]! newConverter( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. @@ -3918,14 +4824,126 @@ type Query { Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. """ subgraphError: _SubgraphErrorPolicy_! = deny - ): NewConverter - newConverters( + ): NewConverter + newConverters( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + first: Int = 100 + orderBy: NewConverter_orderBy + orderDirection: OrderDirection + skip: Int = 0 + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + where: NewConverter_filter + ): [NewConverter!]! + orderCanceled( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + id: ID! + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + ): OrderCanceled + orderCanceleds( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + first: Int = 100 + orderBy: OrderCanceled_orderBy + orderDirection: OrderDirection + skip: Int = 0 + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + where: OrderCanceled_filter + ): [OrderCanceled!]! + orderCreated( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + id: ID! + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + ): OrderCreated + orderCreateds( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + first: Int = 100 + orderBy: OrderCreated_orderBy + orderDirection: OrderDirection + skip: Int = 0 + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + where: OrderCreated_filter + ): [OrderCreated!]! + orderFilled( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + id: ID! + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + ): OrderFilled + orderFilleds( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + first: Int = 100 + orderBy: OrderFilled_orderBy + orderDirection: OrderDirection + skip: Int = 0 + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + where: OrderFilled_filter + ): [OrderFilled!]! + ownerUpdate( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + id: ID! + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + ): OwnerUpdate + ownerUpdates( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. """ block: Block_height first: Int = 100 - orderBy: NewConverter_orderBy + orderBy: OwnerUpdate_orderBy orderDirection: OrderDirection skip: Int = 0 @@ -3933,8 +4951,8 @@ type Query { Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. """ subgraphError: _SubgraphErrorPolicy_! = deny - where: NewConverter_filter - ): [NewConverter!]! + where: OwnerUpdate_filter + ): [OwnerUpdate!]! payBorrowingFee( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. @@ -4119,7 +5137,7 @@ type Query { subgraphError: _SubgraphErrorPolicy_! = deny where: RewardsEarnedHistoryItem_filter ): [RewardsEarnedHistoryItem!]! - smartToken( + rollover( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. """ @@ -4130,36 +5148,36 @@ type Query { Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. """ subgraphError: _SubgraphErrorPolicy_! = deny - ): SmartToken - smartTokenAdded( + ): Rollover + rollovers( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. """ block: Block_height - id: ID! + first: Int = 100 + orderBy: Rollover_orderBy + orderDirection: OrderDirection + skip: Int = 0 """ Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. """ subgraphError: _SubgraphErrorPolicy_! = deny - ): SmartTokenAdded - smartTokenAddeds( + where: Rollover_filter + ): [Rollover!]! + smartToken( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. """ block: Block_height - first: Int = 100 - orderBy: SmartTokenAdded_orderBy - orderDirection: OrderDirection - skip: Int = 0 + id: ID! """ Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. """ subgraphError: _SubgraphErrorPolicy_! = deny - where: SmartTokenAdded_filter - ): [SmartTokenAdded!]! - smartTokenRemoved( + ): SmartToken + smartTokenAdded( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. """ @@ -4170,14 +5188,14 @@ type Query { Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. """ subgraphError: _SubgraphErrorPolicy_! = deny - ): SmartTokenRemoved - smartTokenRemoveds( + ): SmartTokenAdded + smartTokenAddeds( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. """ block: Block_height first: Int = 100 - orderBy: SmartTokenRemoved_orderBy + orderBy: SmartTokenAdded_orderBy orderDirection: OrderDirection skip: Int = 0 @@ -4185,8 +5203,8 @@ type Query { Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. """ subgraphError: _SubgraphErrorPolicy_! = deny - where: SmartTokenRemoved_filter - ): [SmartTokenRemoved!]! + where: SmartTokenAdded_filter + ): [SmartTokenAdded!]! smartTokens( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. @@ -4271,34 +5289,6 @@ type Query { """ subgraphError: _SubgraphErrorPolicy_! = deny ): Token - tokenPoolToken( - """ - The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. - """ - block: Block_height - id: ID! - - """ - Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. - """ - subgraphError: _SubgraphErrorPolicy_! = deny - ): TokenPoolToken - tokenPoolTokens( - """ - The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. - """ - block: Block_height - first: Int = 100 - orderBy: TokenPoolToken_orderBy - orderDirection: OrderDirection - skip: Int = 0 - - """ - Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. - """ - subgraphError: _SubgraphErrorPolicy_! = deny - where: TokenPoolToken_filter - ): [TokenPoolToken!]! tokenSmartToken( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. @@ -4679,6 +5669,34 @@ type Query { subgraphError: _SubgraphErrorPolicy_! = deny where: VoteCast_filter ): [VoteCast!]! + withdrawal( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + id: ID! + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + ): Withdrawal + withdrawals( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + first: Int = 100 + orderBy: Withdrawal_orderBy + orderDirection: OrderDirection + skip: Int = 0 + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + where: Withdrawal_filter + ): [Withdrawal!]! } enum RewardsEarnedAction { @@ -4690,9 +5708,9 @@ enum RewardsEarnedAction { type RewardsEarnedHistoryItem { action: RewardsEarnedAction! - amount: BigInt! + amount: BigDecimal! id: ID! - timestamp: BigInt! + timestamp: Int! token: Token transaction: Transaction! user: UserRewardsEarnedHistory! @@ -4703,14 +5721,14 @@ input RewardsEarnedHistoryItem_filter { action_in: [RewardsEarnedAction!] action_not: RewardsEarnedAction action_not_in: [RewardsEarnedAction!] - amount: BigInt - amount_gt: BigInt - amount_gte: BigInt - amount_in: [BigInt!] - amount_lt: BigInt - amount_lte: BigInt - amount_not: BigInt - amount_not_in: [BigInt!] + amount: BigDecimal + amount_gt: BigDecimal + amount_gte: BigDecimal + amount_in: [BigDecimal!] + amount_lt: BigDecimal + amount_lte: BigDecimal + amount_not: BigDecimal + amount_not_in: [BigDecimal!] id: ID id_gt: ID id_gte: ID @@ -4719,14 +5737,14 @@ input RewardsEarnedHistoryItem_filter { id_lte: ID id_not: ID id_not_in: [ID!] - timestamp: BigInt - timestamp_gt: BigInt - timestamp_gte: BigInt - timestamp_in: [BigInt!] - timestamp_lt: BigInt - timestamp_lte: BigInt - timestamp_not: BigInt - timestamp_not_in: [BigInt!] + timestamp: Int + timestamp_gt: Int + timestamp_gte: Int + timestamp_in: [Int!] + timestamp_lt: Int + timestamp_lte: Int + timestamp_not: Int + timestamp_not_in: [Int!] token: String token_contains: String token_ends_with: String @@ -4781,12 +5799,161 @@ enum RewardsEarnedHistoryItem_orderBy { user } +type Rollover { + collateral: BigDecimal! + emittedBy: Bytes! + endTimestamp: Int! + id: ID! + lender: Bytes! + loanId: Loan! + principal: BigDecimal! + reward: BigDecimal! + rewardReceiver: User! + timestamp: Int! + transaction: Transaction! + user: User! +} + +input Rollover_filter { + collateral: BigDecimal + collateral_gt: BigDecimal + collateral_gte: BigDecimal + collateral_in: [BigDecimal!] + collateral_lt: BigDecimal + collateral_lte: BigDecimal + collateral_not: BigDecimal + collateral_not_in: [BigDecimal!] + emittedBy: Bytes + emittedBy_contains: Bytes + emittedBy_in: [Bytes!] + emittedBy_not: Bytes + emittedBy_not_contains: Bytes + emittedBy_not_in: [Bytes!] + endTimestamp: Int + endTimestamp_gt: Int + endTimestamp_gte: Int + endTimestamp_in: [Int!] + endTimestamp_lt: Int + endTimestamp_lte: Int + endTimestamp_not: Int + endTimestamp_not_in: [Int!] + id: ID + id_gt: ID + id_gte: ID + id_in: [ID!] + id_lt: ID + id_lte: ID + id_not: ID + id_not_in: [ID!] + lender: Bytes + lender_contains: Bytes + lender_in: [Bytes!] + lender_not: Bytes + lender_not_contains: Bytes + lender_not_in: [Bytes!] + loanId: String + loanId_contains: String + loanId_ends_with: String + loanId_gt: String + loanId_gte: String + loanId_in: [String!] + loanId_lt: String + loanId_lte: String + loanId_not: String + loanId_not_contains: String + loanId_not_ends_with: String + loanId_not_in: [String!] + loanId_not_starts_with: String + loanId_starts_with: String + principal: BigDecimal + principal_gt: BigDecimal + principal_gte: BigDecimal + principal_in: [BigDecimal!] + principal_lt: BigDecimal + principal_lte: BigDecimal + principal_not: BigDecimal + principal_not_in: [BigDecimal!] + reward: BigDecimal + rewardReceiver: String + rewardReceiver_contains: String + rewardReceiver_ends_with: String + rewardReceiver_gt: String + rewardReceiver_gte: String + rewardReceiver_in: [String!] + rewardReceiver_lt: String + rewardReceiver_lte: String + rewardReceiver_not: String + rewardReceiver_not_contains: String + rewardReceiver_not_ends_with: String + rewardReceiver_not_in: [String!] + rewardReceiver_not_starts_with: String + rewardReceiver_starts_with: String + reward_gt: BigDecimal + reward_gte: BigDecimal + reward_in: [BigDecimal!] + reward_lt: BigDecimal + reward_lte: BigDecimal + reward_not: BigDecimal + reward_not_in: [BigDecimal!] + timestamp: Int + timestamp_gt: Int + timestamp_gte: Int + timestamp_in: [Int!] + timestamp_lt: Int + timestamp_lte: Int + timestamp_not: Int + timestamp_not_in: [Int!] + transaction: String + transaction_contains: String + transaction_ends_with: String + transaction_gt: String + transaction_gte: String + transaction_in: [String!] + transaction_lt: String + transaction_lte: String + transaction_not: String + transaction_not_contains: String + transaction_not_ends_with: String + transaction_not_in: [String!] + transaction_not_starts_with: String + transaction_starts_with: String + user: String + user_contains: String + user_ends_with: String + user_gt: String + user_gte: String + user_in: [String!] + user_lt: String + user_lte: String + user_not: String + user_not_contains: String + user_not_ends_with: String + user_not_in: [String!] + user_not_starts_with: String + user_starts_with: String +} + +enum Rollover_orderBy { + collateral + emittedBy + endTimestamp + id + lender + loanId + principal + reward + rewardReceiver + timestamp + transaction + user +} + """ The smart token represents a single reserve asset on a single pool. For V1 pools, there is 1 smart token representing both reserve assets. For V2 pools, there are 2 smart tokens, one for each reserve asset. """ type SmartToken { - addedToRegistryBlockNumber: BigInt + addedToRegistryBlockNumber: Int addedToRegistryTransactionHash: Bytes """ @@ -4812,7 +5979,7 @@ type SmartToken { """ liquidityPool: LiquidityPool! name: String - owner: Bytes! + owner: String! """ smartTokenType can be Relay or Liquid @@ -4830,7 +5997,7 @@ type SmartTokenAdded { _smartToken: Bytes! emittedBy: Bytes! id: ID! - timestamp: BigInt! + timestamp: Int! transaction: Transaction! } @@ -4855,14 +6022,14 @@ input SmartTokenAdded_filter { id_lte: ID id_not: ID id_not_in: [ID!] - timestamp: BigInt - timestamp_gt: BigInt - timestamp_gte: BigInt - timestamp_in: [BigInt!] - timestamp_lt: BigInt - timestamp_lte: BigInt - timestamp_not: BigInt - timestamp_not_in: [BigInt!] + timestamp: Int + timestamp_gt: Int + timestamp_gte: Int + timestamp_in: [Int!] + timestamp_lt: Int + timestamp_lte: Int + timestamp_not: Int + timestamp_not_in: [Int!] transaction: String transaction_contains: String transaction_ends_with: String @@ -4887,79 +6054,15 @@ enum SmartTokenAdded_orderBy { transaction } -""" -Autogenerated for debugging - to be eventually deleted -""" -type SmartTokenRemoved { - _smartToken: Bytes! - emittedBy: Bytes! - id: ID! - timestamp: BigInt! - transaction: Transaction! -} - -input SmartTokenRemoved_filter { - _smartToken: Bytes - _smartToken_contains: Bytes - _smartToken_in: [Bytes!] - _smartToken_not: Bytes - _smartToken_not_contains: Bytes - _smartToken_not_in: [Bytes!] - emittedBy: Bytes - emittedBy_contains: Bytes - emittedBy_in: [Bytes!] - emittedBy_not: Bytes - emittedBy_not_contains: Bytes - emittedBy_not_in: [Bytes!] - id: ID - id_gt: ID - id_gte: ID - id_in: [ID!] - id_lt: ID - id_lte: ID - id_not: ID - id_not_in: [ID!] - timestamp: BigInt - timestamp_gt: BigInt - timestamp_gte: BigInt - timestamp_in: [BigInt!] - timestamp_lt: BigInt - timestamp_lte: BigInt - timestamp_not: BigInt - timestamp_not_in: [BigInt!] - transaction: String - transaction_contains: String - transaction_ends_with: String - transaction_gt: String - transaction_gte: String - transaction_in: [String!] - transaction_lt: String - transaction_lte: String - transaction_not: String - transaction_not_contains: String - transaction_not_ends_with: String - transaction_not_in: [String!] - transaction_not_starts_with: String - transaction_starts_with: String -} - -enum SmartTokenRemoved_orderBy { - _smartToken - emittedBy - id - timestamp - transaction -} - input SmartToken_filter { - addedToRegistryBlockNumber: BigInt - addedToRegistryBlockNumber_gt: BigInt - addedToRegistryBlockNumber_gte: BigInt - addedToRegistryBlockNumber_in: [BigInt!] - addedToRegistryBlockNumber_lt: BigInt - addedToRegistryBlockNumber_lte: BigInt - addedToRegistryBlockNumber_not: BigInt - addedToRegistryBlockNumber_not_in: [BigInt!] + addedToRegistryBlockNumber: Int + addedToRegistryBlockNumber_gt: Int + addedToRegistryBlockNumber_gte: Int + addedToRegistryBlockNumber_in: [Int!] + addedToRegistryBlockNumber_lt: Int + addedToRegistryBlockNumber_lte: Int + addedToRegistryBlockNumber_not: Int + addedToRegistryBlockNumber_not_in: [Int!] addedToRegistryTransactionHash: Bytes addedToRegistryTransactionHash_contains: Bytes addedToRegistryTransactionHash_in: [Bytes!] @@ -5010,12 +6113,20 @@ input SmartToken_filter { name_not_in: [String!] name_not_starts_with: String name_starts_with: String - owner: Bytes - owner_contains: Bytes - owner_in: [Bytes!] - owner_not: Bytes - owner_not_contains: Bytes - owner_not_in: [Bytes!] + owner: String + owner_contains: String + owner_ends_with: String + owner_gt: String + owner_gte: String + owner_in: [String!] + owner_lt: String + owner_lte: String + owner_not: String + owner_not_contains: String + owner_not_ends_with: String + owner_not_in: [String!] + owner_not_starts_with: String + owner_starts_with: String smartTokenType: String smartTokenType_contains: String smartTokenType_ends_with: String @@ -5086,10 +6197,10 @@ enum StakeHistoryAction { type StakeHistoryItem { action: StakeHistoryAction! - amount: BigInt + amount: BigDecimal id: ID! - lockedUntil: BigInt - timestamp: BigInt! + lockedUntil: Int + timestamp: Int! transaction: Transaction! user: UserStakeHistory! } @@ -5099,14 +6210,14 @@ input StakeHistoryItem_filter { action_in: [StakeHistoryAction!] action_not: StakeHistoryAction action_not_in: [StakeHistoryAction!] - amount: BigInt - amount_gt: BigInt - amount_gte: BigInt - amount_in: [BigInt!] - amount_lt: BigInt - amount_lte: BigInt - amount_not: BigInt - amount_not_in: [BigInt!] + amount: BigDecimal + amount_gt: BigDecimal + amount_gte: BigDecimal + amount_in: [BigDecimal!] + amount_lt: BigDecimal + amount_lte: BigDecimal + amount_not: BigDecimal + amount_not_in: [BigDecimal!] id: ID id_gt: ID id_gte: ID @@ -5115,22 +6226,22 @@ input StakeHistoryItem_filter { id_lte: ID id_not: ID id_not_in: [ID!] - lockedUntil: BigInt - lockedUntil_gt: BigInt - lockedUntil_gte: BigInt - lockedUntil_in: [BigInt!] - lockedUntil_lt: BigInt - lockedUntil_lte: BigInt - lockedUntil_not: BigInt - lockedUntil_not_in: [BigInt!] - timestamp: BigInt - timestamp_gt: BigInt - timestamp_gte: BigInt - timestamp_in: [BigInt!] - timestamp_lt: BigInt - timestamp_lte: BigInt - timestamp_not: BigInt - timestamp_not_in: [BigInt!] + lockedUntil: Int + lockedUntil_gt: Int + lockedUntil_gte: Int + lockedUntil_in: [Int!] + lockedUntil_lt: Int + lockedUntil_lte: Int + lockedUntil_not: Int + lockedUntil_not_in: [Int!] + timestamp: Int + timestamp_gt: Int + timestamp_gte: Int + timestamp_in: [Int!] + timestamp_lt: Int + timestamp_lte: Int + timestamp_not: Int + timestamp_not_in: [Int!] transaction: String transaction_contains: String transaction_ends_with: String @@ -5344,6 +6455,18 @@ type Subscription { """ subgraphError: _SubgraphErrorPolicy_! = deny ): ConverterRegistry + deposit( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + id: ID! + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + ): Deposit depositCollateral( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. @@ -5372,6 +6495,22 @@ type Subscription { subgraphError: _SubgraphErrorPolicy_! = deny where: DepositCollateral_filter ): [DepositCollateral!]! + deposits( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + first: Int = 100 + orderBy: Deposit_orderBy + orderDirection: OrderDirection + skip: Int = 0 + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + where: Deposit_filter + ): [Deposit!]! feeSharingTokensTransferred( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. @@ -5512,7 +6651,7 @@ type Subscription { subgraphError: _SubgraphErrorPolicy_! = deny where: LiquidityHistoryItem_filter ): [LiquidityHistoryItem!]! - liquidityPool( + liquidityMiningAllocationPoint( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. """ @@ -5523,63 +6662,63 @@ type Subscription { Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. """ subgraphError: _SubgraphErrorPolicy_! = deny - ): LiquidityPool - liquidityPoolAdded( + ): LiquidityMiningAllocationPoint + liquidityMiningAllocationPoints( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. """ block: Block_height - id: ID! + first: Int = 100 + orderBy: LiquidityMiningAllocationPoint_orderBy + orderDirection: OrderDirection + skip: Int = 0 """ Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. """ subgraphError: _SubgraphErrorPolicy_! = deny - ): LiquidityPoolAdded - liquidityPoolAddeds( + where: LiquidityMiningAllocationPoint_filter + ): [LiquidityMiningAllocationPoint!]! + liquidityMiningGlobal( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. """ block: Block_height - first: Int = 100 - orderBy: LiquidityPoolAdded_orderBy - orderDirection: OrderDirection - skip: Int = 0 + id: ID! """ Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. """ subgraphError: _SubgraphErrorPolicy_! = deny - where: LiquidityPoolAdded_filter - ): [LiquidityPoolAdded!]! - liquidityPoolRemoved( + ): LiquidityMiningGlobal + liquidityMiningGlobals( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. """ block: Block_height - id: ID! + first: Int = 100 + orderBy: LiquidityMiningGlobal_orderBy + orderDirection: OrderDirection + skip: Int = 0 """ Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. """ subgraphError: _SubgraphErrorPolicy_! = deny - ): LiquidityPoolRemoved - liquidityPoolRemoveds( + where: LiquidityMiningGlobal_filter + ): [LiquidityMiningGlobal!]! + liquidityPool( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. """ block: Block_height - first: Int = 100 - orderBy: LiquidityPoolRemoved_orderBy - orderDirection: OrderDirection - skip: Int = 0 + id: ID! """ Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. """ subgraphError: _SubgraphErrorPolicy_! = deny - where: LiquidityPoolRemoved_filter - ): [LiquidityPoolRemoved!]! + ): LiquidityPool liquidityPoolToken( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. @@ -5652,6 +6791,62 @@ type Subscription { subgraphError: _SubgraphErrorPolicy_! = deny where: Loan_filter ): [Loan!]! + marginOrderCanceled( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + id: ID! + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + ): MarginOrderCanceled + marginOrderCanceleds( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + first: Int = 100 + orderBy: MarginOrderCanceled_orderBy + orderDirection: OrderDirection + skip: Int = 0 + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + where: MarginOrderCanceled_filter + ): [MarginOrderCanceled!]! + marginOrderFilled( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + id: ID! + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + ): MarginOrderFilled + marginOrderFilleds( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + first: Int = 100 + orderBy: MarginOrderFilled_orderBy + orderDirection: OrderDirection + skip: Int = 0 + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + where: MarginOrderFilled_filter + ): [MarginOrderFilled!]! newConverter( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. @@ -5680,6 +6875,118 @@ type Subscription { subgraphError: _SubgraphErrorPolicy_! = deny where: NewConverter_filter ): [NewConverter!]! + orderCanceled( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + id: ID! + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + ): OrderCanceled + orderCanceleds( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + first: Int = 100 + orderBy: OrderCanceled_orderBy + orderDirection: OrderDirection + skip: Int = 0 + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + where: OrderCanceled_filter + ): [OrderCanceled!]! + orderCreated( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + id: ID! + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + ): OrderCreated + orderCreateds( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + first: Int = 100 + orderBy: OrderCreated_orderBy + orderDirection: OrderDirection + skip: Int = 0 + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + where: OrderCreated_filter + ): [OrderCreated!]! + orderFilled( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + id: ID! + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + ): OrderFilled + orderFilleds( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + first: Int = 100 + orderBy: OrderFilled_orderBy + orderDirection: OrderDirection + skip: Int = 0 + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + where: OrderFilled_filter + ): [OrderFilled!]! + ownerUpdate( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + id: ID! + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + ): OwnerUpdate + ownerUpdates( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + first: Int = 100 + orderBy: OwnerUpdate_orderBy + orderDirection: OrderDirection + skip: Int = 0 + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + where: OwnerUpdate_filter + ): [OwnerUpdate!]! payBorrowingFee( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. @@ -5864,7 +7171,7 @@ type Subscription { subgraphError: _SubgraphErrorPolicy_! = deny where: RewardsEarnedHistoryItem_filter ): [RewardsEarnedHistoryItem!]! - smartToken( + rollover( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. """ @@ -5875,36 +7182,36 @@ type Subscription { Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. """ subgraphError: _SubgraphErrorPolicy_! = deny - ): SmartToken - smartTokenAdded( + ): Rollover + rollovers( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. """ block: Block_height - id: ID! + first: Int = 100 + orderBy: Rollover_orderBy + orderDirection: OrderDirection + skip: Int = 0 """ Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. """ subgraphError: _SubgraphErrorPolicy_! = deny - ): SmartTokenAdded - smartTokenAddeds( + where: Rollover_filter + ): [Rollover!]! + smartToken( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. """ block: Block_height - first: Int = 100 - orderBy: SmartTokenAdded_orderBy - orderDirection: OrderDirection - skip: Int = 0 + id: ID! """ Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. """ subgraphError: _SubgraphErrorPolicy_! = deny - where: SmartTokenAdded_filter - ): [SmartTokenAdded!]! - smartTokenRemoved( + ): SmartToken + smartTokenAdded( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. """ @@ -5915,14 +7222,14 @@ type Subscription { Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. """ subgraphError: _SubgraphErrorPolicy_! = deny - ): SmartTokenRemoved - smartTokenRemoveds( + ): SmartTokenAdded + smartTokenAddeds( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. """ block: Block_height first: Int = 100 - orderBy: SmartTokenRemoved_orderBy + orderBy: SmartTokenAdded_orderBy orderDirection: OrderDirection skip: Int = 0 @@ -5930,8 +7237,8 @@ type Subscription { Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. """ subgraphError: _SubgraphErrorPolicy_! = deny - where: SmartTokenRemoved_filter - ): [SmartTokenRemoved!]! + where: SmartTokenAdded_filter + ): [SmartTokenAdded!]! smartTokens( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. @@ -6016,34 +7323,6 @@ type Subscription { """ subgraphError: _SubgraphErrorPolicy_! = deny ): Token - tokenPoolToken( - """ - The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. - """ - block: Block_height - id: ID! - - """ - Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. - """ - subgraphError: _SubgraphErrorPolicy_! = deny - ): TokenPoolToken - tokenPoolTokens( - """ - The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. - """ - block: Block_height - first: Int = 100 - orderBy: TokenPoolToken_orderBy - orderDirection: OrderDirection - skip: Int = 0 - - """ - Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. - """ - subgraphError: _SubgraphErrorPolicy_! = deny - where: TokenPoolToken_filter - ): [TokenPoolToken!]! tokenSmartToken( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. @@ -6394,9 +7673,37 @@ type Subscription { Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. """ subgraphError: _SubgraphErrorPolicy_! = deny - where: VestingHistoryItem_filter - ): [VestingHistoryItem!]! - voteCast( + where: VestingHistoryItem_filter + ): [VestingHistoryItem!]! + voteCast( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + id: ID! + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + ): VoteCast + voteCasts( + """ + The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. + """ + block: Block_height + first: Int = 100 + orderBy: VoteCast_orderBy + orderDirection: OrderDirection + skip: Int = 0 + + """ + Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. + """ + subgraphError: _SubgraphErrorPolicy_! = deny + where: VoteCast_filter + ): [VoteCast!]! + withdrawal( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. """ @@ -6407,14 +7714,14 @@ type Subscription { Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. """ subgraphError: _SubgraphErrorPolicy_! = deny - ): VoteCast - voteCasts( + ): Withdrawal + withdrawals( """ The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted. """ block: Block_height first: Int = 100 - orderBy: VoteCast_orderBy + orderBy: Withdrawal_orderBy orderDirection: OrderDirection skip: Int = 0 @@ -6422,8 +7729,8 @@ type Subscription { Set to `allow` to receive data even if the subgraph has skipped over errors while syncing. """ subgraphError: _SubgraphErrorPolicy_! = deny - where: VoteCast_filter - ): [VoteCast!]! + where: Withdrawal_filter + ): [Withdrawal!]! } """ @@ -6449,6 +7756,15 @@ type Swap { """ id: ID! isBorrow: Boolean! + + """ + Was this swap a limit order? + """ + isLimit: Boolean! + + """ + Was this swap part of a margin trade? + """ isMarginTrade: Boolean! """ @@ -6460,7 +7776,7 @@ type Swap { Rate is calculated as toAmount / fromAmount """ rate: BigDecimal! - timestamp: BigInt! + timestamp: Int! toAmount: BigDecimal! toToken: Token! transaction: Transaction! @@ -6506,6 +7822,10 @@ input Swap_filter { isBorrow_in: [Boolean!] isBorrow_not: Boolean isBorrow_not_in: [Boolean!] + isLimit: Boolean + isLimit_in: [Boolean!] + isLimit_not: Boolean + isLimit_not_in: [Boolean!] isMarginTrade: Boolean isMarginTrade_in: [Boolean!] isMarginTrade_not: Boolean @@ -6526,14 +7846,14 @@ input Swap_filter { rate_lte: BigDecimal rate_not: BigDecimal rate_not_in: [BigDecimal!] - timestamp: BigInt - timestamp_gt: BigInt - timestamp_gte: BigInt - timestamp_in: [BigInt!] - timestamp_lt: BigInt - timestamp_lte: BigInt - timestamp_not: BigInt - timestamp_not_in: [BigInt!] + timestamp: Int + timestamp_gt: Int + timestamp_gte: Int + timestamp_in: [Int!] + timestamp_lt: Int + timestamp_lte: Int + timestamp_not: Int + timestamp_not_in: [Int!] toAmount: BigDecimal toAmount_gt: BigDecimal toAmount_gte: BigDecimal @@ -6592,6 +7912,7 @@ enum Swap_orderBy { fromToken id isBorrow + isLimit isMarginTrade numConversions rate @@ -6676,79 +7997,6 @@ type Token { version: Int } -""" -The entity stores the many-to-many relationship between underlying tokens and pool tokens -""" -type TokenPoolToken { - """ - ID is token address + poolToken address - """ - id: ID! - liquidityPool: LiquidityPool! - poolToken: PoolToken! - token: Token! -} - -input TokenPoolToken_filter { - id: ID - id_gt: ID - id_gte: ID - id_in: [ID!] - id_lt: ID - id_lte: ID - id_not: ID - id_not_in: [ID!] - liquidityPool: String - liquidityPool_contains: String - liquidityPool_ends_with: String - liquidityPool_gt: String - liquidityPool_gte: String - liquidityPool_in: [String!] - liquidityPool_lt: String - liquidityPool_lte: String - liquidityPool_not: String - liquidityPool_not_contains: String - liquidityPool_not_ends_with: String - liquidityPool_not_in: [String!] - liquidityPool_not_starts_with: String - liquidityPool_starts_with: String - poolToken: String - poolToken_contains: String - poolToken_ends_with: String - poolToken_gt: String - poolToken_gte: String - poolToken_in: [String!] - poolToken_lt: String - poolToken_lte: String - poolToken_not: String - poolToken_not_contains: String - poolToken_not_ends_with: String - poolToken_not_in: [String!] - poolToken_not_starts_with: String - poolToken_starts_with: String - token: String - token_contains: String - token_ends_with: String - token_gt: String - token_gte: String - token_in: [String!] - token_lt: String - token_lte: String - token_not: String - token_not_contains: String - token_not_ends_with: String - token_not_in: [String!] - token_not_starts_with: String - token_starts_with: String -} - -enum TokenPoolToken_orderBy { - id - liquidityPool - poolToken - token -} - """ This entity is to store a many-to-many relationship between tokens and smart tokens """ @@ -6964,27 +8212,27 @@ enum Token_orderBy { } type TokensStaked { - amount: BigInt! + amount: BigDecimal! emittedBy: Bytes! id: ID! isUserStaked: Boolean! - lockedUntil: BigInt! + lockedUntil: Int! staker: Bytes! - timestamp: BigInt! - totalStaked: BigInt! + timestamp: Int! + totalStaked: BigDecimal! transaction: Transaction! user: User } input TokensStaked_filter { - amount: BigInt - amount_gt: BigInt - amount_gte: BigInt - amount_in: [BigInt!] - amount_lt: BigInt - amount_lte: BigInt - amount_not: BigInt - amount_not_in: [BigInt!] + amount: BigDecimal + amount_gt: BigDecimal + amount_gte: BigDecimal + amount_in: [BigDecimal!] + amount_lt: BigDecimal + amount_lte: BigDecimal + amount_not: BigDecimal + amount_not_in: [BigDecimal!] emittedBy: Bytes emittedBy_contains: Bytes emittedBy_in: [Bytes!] @@ -7003,36 +8251,36 @@ input TokensStaked_filter { isUserStaked_in: [Boolean!] isUserStaked_not: Boolean isUserStaked_not_in: [Boolean!] - lockedUntil: BigInt - lockedUntil_gt: BigInt - lockedUntil_gte: BigInt - lockedUntil_in: [BigInt!] - lockedUntil_lt: BigInt - lockedUntil_lte: BigInt - lockedUntil_not: BigInt - lockedUntil_not_in: [BigInt!] + lockedUntil: Int + lockedUntil_gt: Int + lockedUntil_gte: Int + lockedUntil_in: [Int!] + lockedUntil_lt: Int + lockedUntil_lte: Int + lockedUntil_not: Int + lockedUntil_not_in: [Int!] staker: Bytes staker_contains: Bytes staker_in: [Bytes!] staker_not: Bytes staker_not_contains: Bytes staker_not_in: [Bytes!] - timestamp: BigInt - timestamp_gt: BigInt - timestamp_gte: BigInt - timestamp_in: [BigInt!] - timestamp_lt: BigInt - timestamp_lte: BigInt - timestamp_not: BigInt - timestamp_not_in: [BigInt!] - totalStaked: BigInt - totalStaked_gt: BigInt - totalStaked_gte: BigInt - totalStaked_in: [BigInt!] - totalStaked_lt: BigInt - totalStaked_lte: BigInt - totalStaked_not: BigInt - totalStaked_not_in: [BigInt!] + timestamp: Int + timestamp_gt: Int + timestamp_gte: Int + timestamp_in: [Int!] + timestamp_lt: Int + timestamp_lte: Int + timestamp_not: Int + timestamp_not_in: [Int!] + totalStaked: BigDecimal + totalStaked_gt: BigDecimal + totalStaked_gte: BigDecimal + totalStaked_in: [BigDecimal!] + totalStaked_lt: BigDecimal + totalStaked_lte: BigDecimal + totalStaked_not: BigDecimal + totalStaked_not_in: [BigDecimal!] transaction: String transaction_contains: String transaction_ends_with: String @@ -7077,69 +8325,77 @@ enum TokensStaked_orderBy { } type Trade { - borrowedAmount: BigInt! - collateralToken: Bytes! - currentLeverage: BigInt! + borrowedAmount: BigDecimal! + collateralToken: Token! + currentLeverage: BigDecimal! emittedBy: Bytes! - entryLeverage: BigInt! - entryPrice: BigInt! + entryLeverage: BigDecimal! + entryPrice: BigDecimal! id: ID! - interestRate: BigInt! + interestRate: BigDecimal! lender: Bytes! loanId: Loan! - loanToken: Bytes! - positionSize: BigInt! - settlementDate: BigInt! - timestamp: BigInt! + loanToken: Token! + positionSize: BigDecimal! + settlementDate: Int! + timestamp: Int! transaction: Transaction! user: User! } input Trade_filter { - borrowedAmount: BigInt - borrowedAmount_gt: BigInt - borrowedAmount_gte: BigInt - borrowedAmount_in: [BigInt!] - borrowedAmount_lt: BigInt - borrowedAmount_lte: BigInt - borrowedAmount_not: BigInt - borrowedAmount_not_in: [BigInt!] - collateralToken: Bytes - collateralToken_contains: Bytes - collateralToken_in: [Bytes!] - collateralToken_not: Bytes - collateralToken_not_contains: Bytes - collateralToken_not_in: [Bytes!] - currentLeverage: BigInt - currentLeverage_gt: BigInt - currentLeverage_gte: BigInt - currentLeverage_in: [BigInt!] - currentLeverage_lt: BigInt - currentLeverage_lte: BigInt - currentLeverage_not: BigInt - currentLeverage_not_in: [BigInt!] + borrowedAmount: BigDecimal + borrowedAmount_gt: BigDecimal + borrowedAmount_gte: BigDecimal + borrowedAmount_in: [BigDecimal!] + borrowedAmount_lt: BigDecimal + borrowedAmount_lte: BigDecimal + borrowedAmount_not: BigDecimal + borrowedAmount_not_in: [BigDecimal!] + collateralToken: String + collateralToken_contains: String + collateralToken_ends_with: String + collateralToken_gt: String + collateralToken_gte: String + collateralToken_in: [String!] + collateralToken_lt: String + collateralToken_lte: String + collateralToken_not: String + collateralToken_not_contains: String + collateralToken_not_ends_with: String + collateralToken_not_in: [String!] + collateralToken_not_starts_with: String + collateralToken_starts_with: String + currentLeverage: BigDecimal + currentLeverage_gt: BigDecimal + currentLeverage_gte: BigDecimal + currentLeverage_in: [BigDecimal!] + currentLeverage_lt: BigDecimal + currentLeverage_lte: BigDecimal + currentLeverage_not: BigDecimal + currentLeverage_not_in: [BigDecimal!] emittedBy: Bytes emittedBy_contains: Bytes emittedBy_in: [Bytes!] emittedBy_not: Bytes emittedBy_not_contains: Bytes emittedBy_not_in: [Bytes!] - entryLeverage: BigInt - entryLeverage_gt: BigInt - entryLeverage_gte: BigInt - entryLeverage_in: [BigInt!] - entryLeverage_lt: BigInt - entryLeverage_lte: BigInt - entryLeverage_not: BigInt - entryLeverage_not_in: [BigInt!] - entryPrice: BigInt - entryPrice_gt: BigInt - entryPrice_gte: BigInt - entryPrice_in: [BigInt!] - entryPrice_lt: BigInt - entryPrice_lte: BigInt - entryPrice_not: BigInt - entryPrice_not_in: [BigInt!] + entryLeverage: BigDecimal + entryLeverage_gt: BigDecimal + entryLeverage_gte: BigDecimal + entryLeverage_in: [BigDecimal!] + entryLeverage_lt: BigDecimal + entryLeverage_lte: BigDecimal + entryLeverage_not: BigDecimal + entryLeverage_not_in: [BigDecimal!] + entryPrice: BigDecimal + entryPrice_gt: BigDecimal + entryPrice_gte: BigDecimal + entryPrice_in: [BigDecimal!] + entryPrice_lt: BigDecimal + entryPrice_lte: BigDecimal + entryPrice_not: BigDecimal + entryPrice_not_in: [BigDecimal!] id: ID id_gt: ID id_gte: ID @@ -7148,14 +8404,14 @@ input Trade_filter { id_lte: ID id_not: ID id_not_in: [ID!] - interestRate: BigInt - interestRate_gt: BigInt - interestRate_gte: BigInt - interestRate_in: [BigInt!] - interestRate_lt: BigInt - interestRate_lte: BigInt - interestRate_not: BigInt - interestRate_not_in: [BigInt!] + interestRate: BigDecimal + interestRate_gt: BigDecimal + interestRate_gte: BigDecimal + interestRate_in: [BigDecimal!] + interestRate_lt: BigDecimal + interestRate_lte: BigDecimal + interestRate_not: BigDecimal + interestRate_not_in: [BigDecimal!] lender: Bytes lender_contains: Bytes lender_in: [Bytes!] @@ -7176,36 +8432,44 @@ input Trade_filter { loanId_not_in: [String!] loanId_not_starts_with: String loanId_starts_with: String - loanToken: Bytes - loanToken_contains: Bytes - loanToken_in: [Bytes!] - loanToken_not: Bytes - loanToken_not_contains: Bytes - loanToken_not_in: [Bytes!] - positionSize: BigInt - positionSize_gt: BigInt - positionSize_gte: BigInt - positionSize_in: [BigInt!] - positionSize_lt: BigInt - positionSize_lte: BigInt - positionSize_not: BigInt - positionSize_not_in: [BigInt!] - settlementDate: BigInt - settlementDate_gt: BigInt - settlementDate_gte: BigInt - settlementDate_in: [BigInt!] - settlementDate_lt: BigInt - settlementDate_lte: BigInt - settlementDate_not: BigInt - settlementDate_not_in: [BigInt!] - timestamp: BigInt - timestamp_gt: BigInt - timestamp_gte: BigInt - timestamp_in: [BigInt!] - timestamp_lt: BigInt - timestamp_lte: BigInt - timestamp_not: BigInt - timestamp_not_in: [BigInt!] + loanToken: String + loanToken_contains: String + loanToken_ends_with: String + loanToken_gt: String + loanToken_gte: String + loanToken_in: [String!] + loanToken_lt: String + loanToken_lte: String + loanToken_not: String + loanToken_not_contains: String + loanToken_not_ends_with: String + loanToken_not_in: [String!] + loanToken_not_starts_with: String + loanToken_starts_with: String + positionSize: BigDecimal + positionSize_gt: BigDecimal + positionSize_gte: BigDecimal + positionSize_in: [BigDecimal!] + positionSize_lt: BigDecimal + positionSize_lte: BigDecimal + positionSize_not: BigDecimal + positionSize_not_in: [BigDecimal!] + settlementDate: Int + settlementDate_gt: Int + settlementDate_gte: Int + settlementDate_in: [Int!] + settlementDate_lt: Int + settlementDate_lte: Int + settlementDate_not: Int + settlementDate_not_in: [Int!] + timestamp: Int + timestamp_gt: Int + timestamp_gte: Int + timestamp_in: [Int!] + timestamp_lt: Int + timestamp_lte: Int + timestamp_not: Int + timestamp_not_in: [Int!] transaction: String transaction_contains: String transaction_ends_with: String @@ -7259,12 +8523,12 @@ enum Trade_orderBy { Transaction data, including hash and timestamp """ type Transaction { - blockNumber: BigInt! + blockNumber: Int! """ The account that initiated this transaction. This must be an Account and not a Contract. """ - from: Bytes! + from: User! gasLimit: BigInt! gasPrice: BigInt! @@ -7276,31 +8540,39 @@ type Transaction { """ The index of this transaction within the block """ - index: BigInt! + index: Int! """ The timestamp the transaction was confirmed """ - timestamp: BigInt! + timestamp: Int! to: Bytes value: BigInt! } input Transaction_filter { - blockNumber: BigInt - blockNumber_gt: BigInt - blockNumber_gte: BigInt - blockNumber_in: [BigInt!] - blockNumber_lt: BigInt - blockNumber_lte: BigInt - blockNumber_not: BigInt - blockNumber_not_in: [BigInt!] - from: Bytes - from_contains: Bytes - from_in: [Bytes!] - from_not: Bytes - from_not_contains: Bytes - from_not_in: [Bytes!] + blockNumber: Int + blockNumber_gt: Int + blockNumber_gte: Int + blockNumber_in: [Int!] + blockNumber_lt: Int + blockNumber_lte: Int + blockNumber_not: Int + blockNumber_not_in: [Int!] + from: String + from_contains: String + from_ends_with: String + from_gt: String + from_gte: String + from_in: [String!] + from_lt: String + from_lte: String + from_not: String + from_not_contains: String + from_not_ends_with: String + from_not_in: [String!] + from_not_starts_with: String + from_starts_with: String gasLimit: BigInt gasLimit_gt: BigInt gasLimit_gte: BigInt @@ -7325,22 +8597,22 @@ input Transaction_filter { id_lte: ID id_not: ID id_not_in: [ID!] - index: BigInt - index_gt: BigInt - index_gte: BigInt - index_in: [BigInt!] - index_lt: BigInt - index_lte: BigInt - index_not: BigInt - index_not_in: [BigInt!] - timestamp: BigInt - timestamp_gt: BigInt - timestamp_gte: BigInt - timestamp_in: [BigInt!] - timestamp_lt: BigInt - timestamp_lte: BigInt - timestamp_not: BigInt - timestamp_not_in: [BigInt!] + index: Int + index_gt: Int + index_gte: Int + index_in: [Int!] + index_lt: Int + index_lte: Int + index_not: Int + index_not_in: [Int!] + timestamp: Int + timestamp_gt: Int + timestamp_gte: Int + timestamp_in: [Int!] + timestamp_lt: Int + timestamp_lte: Int + timestamp_not: Int + timestamp_not_in: [Int!] to: Bytes to_contains: Bytes to_in: [Bytes!] @@ -7384,6 +8656,11 @@ type User { where: Borrow_filter ): [Borrow!] + """ + Timestamp of User's first interaction with the protocol (first transaction) + """ + createdAtTimestamp: Int! + """ ID is user wallet address """ @@ -7479,6 +8756,17 @@ type User { where: Trade_filter ): [Trade!] + """ + Transactions initiated by this user + """ + transactions( + first: Int = 100 + orderBy: Transaction_orderBy + orderDirection: OrderDirection + skip: Int = 0 + where: Transaction_filter + ): [Transaction!] + """ See UserTotals entity for full documentation """ @@ -7531,12 +8819,12 @@ type UserLendingHistory { """ Total volume this User has lent to this pool over all time (in the underlying asset currency, ie rBTC for the rBTC lending pool) """ - totalLendVolume: BigInt! + totalLendVolume: BigDecimal! """ Total volume this User has withdrawn from this pool over all time """ - totalUnlendVolume: BigInt! + totalUnlendVolume: BigDecimal! user: User! } @@ -7563,22 +8851,22 @@ input UserLendingHistory_filter { lendingPool_not_in: [String!] lendingPool_not_starts_with: String lendingPool_starts_with: String - totalLendVolume: BigInt - totalLendVolume_gt: BigInt - totalLendVolume_gte: BigInt - totalLendVolume_in: [BigInt!] - totalLendVolume_lt: BigInt - totalLendVolume_lte: BigInt - totalLendVolume_not: BigInt - totalLendVolume_not_in: [BigInt!] - totalUnlendVolume: BigInt - totalUnlendVolume_gt: BigInt - totalUnlendVolume_gte: BigInt - totalUnlendVolume_in: [BigInt!] - totalUnlendVolume_lt: BigInt - totalUnlendVolume_lte: BigInt - totalUnlendVolume_not: BigInt - totalUnlendVolume_not_in: [BigInt!] + totalLendVolume: BigDecimal + totalLendVolume_gt: BigDecimal + totalLendVolume_gte: BigDecimal + totalLendVolume_in: [BigDecimal!] + totalLendVolume_lt: BigDecimal + totalLendVolume_lte: BigDecimal + totalLendVolume_not: BigDecimal + totalLendVolume_not_in: [BigDecimal!] + totalUnlendVolume: BigDecimal + totalUnlendVolume_gt: BigDecimal + totalUnlendVolume_gte: BigDecimal + totalUnlendVolume_in: [BigDecimal!] + totalUnlendVolume_lt: BigDecimal + totalUnlendVolume_lte: BigDecimal + totalUnlendVolume_not: BigDecimal + totalUnlendVolume_not_in: [BigDecimal!] user: String user_contains: String user_ends_with: String @@ -7617,10 +8905,10 @@ type UserLiquidityHistory { where: LiquidityHistoryItem_filter ): [LiquidityHistoryItem!] poolToken: PoolToken! - totalAsset0LiquidityAdded: BigInt! - totalAsset0LiquidityRemoved: BigInt! - totalAsset1LiquidityAdded: BigInt! - totalAsset1LiquidityRemoved: BigInt! + totalAsset0LiquidityAdded: BigDecimal! + totalAsset0LiquidityRemoved: BigDecimal! + totalAsset1LiquidityAdded: BigDecimal! + totalAsset1LiquidityRemoved: BigDecimal! user: User! } @@ -7647,38 +8935,38 @@ input UserLiquidityHistory_filter { poolToken_not_in: [String!] poolToken_not_starts_with: String poolToken_starts_with: String - totalAsset0LiquidityAdded: BigInt - totalAsset0LiquidityAdded_gt: BigInt - totalAsset0LiquidityAdded_gte: BigInt - totalAsset0LiquidityAdded_in: [BigInt!] - totalAsset0LiquidityAdded_lt: BigInt - totalAsset0LiquidityAdded_lte: BigInt - totalAsset0LiquidityAdded_not: BigInt - totalAsset0LiquidityAdded_not_in: [BigInt!] - totalAsset0LiquidityRemoved: BigInt - totalAsset0LiquidityRemoved_gt: BigInt - totalAsset0LiquidityRemoved_gte: BigInt - totalAsset0LiquidityRemoved_in: [BigInt!] - totalAsset0LiquidityRemoved_lt: BigInt - totalAsset0LiquidityRemoved_lte: BigInt - totalAsset0LiquidityRemoved_not: BigInt - totalAsset0LiquidityRemoved_not_in: [BigInt!] - totalAsset1LiquidityAdded: BigInt - totalAsset1LiquidityAdded_gt: BigInt - totalAsset1LiquidityAdded_gte: BigInt - totalAsset1LiquidityAdded_in: [BigInt!] - totalAsset1LiquidityAdded_lt: BigInt - totalAsset1LiquidityAdded_lte: BigInt - totalAsset1LiquidityAdded_not: BigInt - totalAsset1LiquidityAdded_not_in: [BigInt!] - totalAsset1LiquidityRemoved: BigInt - totalAsset1LiquidityRemoved_gt: BigInt - totalAsset1LiquidityRemoved_gte: BigInt - totalAsset1LiquidityRemoved_in: [BigInt!] - totalAsset1LiquidityRemoved_lt: BigInt - totalAsset1LiquidityRemoved_lte: BigInt - totalAsset1LiquidityRemoved_not: BigInt - totalAsset1LiquidityRemoved_not_in: [BigInt!] + totalAsset0LiquidityAdded: BigDecimal + totalAsset0LiquidityAdded_gt: BigDecimal + totalAsset0LiquidityAdded_gte: BigDecimal + totalAsset0LiquidityAdded_in: [BigDecimal!] + totalAsset0LiquidityAdded_lt: BigDecimal + totalAsset0LiquidityAdded_lte: BigDecimal + totalAsset0LiquidityAdded_not: BigDecimal + totalAsset0LiquidityAdded_not_in: [BigDecimal!] + totalAsset0LiquidityRemoved: BigDecimal + totalAsset0LiquidityRemoved_gt: BigDecimal + totalAsset0LiquidityRemoved_gte: BigDecimal + totalAsset0LiquidityRemoved_in: [BigDecimal!] + totalAsset0LiquidityRemoved_lt: BigDecimal + totalAsset0LiquidityRemoved_lte: BigDecimal + totalAsset0LiquidityRemoved_not: BigDecimal + totalAsset0LiquidityRemoved_not_in: [BigDecimal!] + totalAsset1LiquidityAdded: BigDecimal + totalAsset1LiquidityAdded_gt: BigDecimal + totalAsset1LiquidityAdded_gte: BigDecimal + totalAsset1LiquidityAdded_in: [BigDecimal!] + totalAsset1LiquidityAdded_lt: BigDecimal + totalAsset1LiquidityAdded_lte: BigDecimal + totalAsset1LiquidityAdded_not: BigDecimal + totalAsset1LiquidityAdded_not_in: [BigDecimal!] + totalAsset1LiquidityRemoved: BigDecimal + totalAsset1LiquidityRemoved_gt: BigDecimal + totalAsset1LiquidityRemoved_gte: BigDecimal + totalAsset1LiquidityRemoved_in: [BigDecimal!] + totalAsset1LiquidityRemoved_lt: BigDecimal + totalAsset1LiquidityRemoved_lte: BigDecimal + totalAsset1LiquidityRemoved_not: BigDecimal + totalAsset1LiquidityRemoved_not_in: [BigDecimal!] user: String user_contains: String user_ends_with: String @@ -7713,12 +9001,12 @@ type UserRewardsEarnedHistory { """ This is incremented by EarnReward and RewardClaimed events, and set to 0 by RewardWithdrawn events """ - availableRewardSov: BigInt! + availableRewardSov: BigDecimal! """ This is incremented by EarnReward events, and set to 0 by TokensStaked events on the LockedSOV contract """ - availableTradingRewards: BigInt! + availableTradingRewards: BigDecimal! id: ID! rewardsEarnedHistory( first: Int = 100 @@ -7731,27 +9019,27 @@ type UserRewardsEarnedHistory { """ This is the total of all EarnReward and RewardClaimed events """ - totalFeesAndRewardsEarned: BigInt! + totalFeesAndRewardsEarned: BigDecimal! user: User! } input UserRewardsEarnedHistory_filter { - availableRewardSov: BigInt - availableRewardSov_gt: BigInt - availableRewardSov_gte: BigInt - availableRewardSov_in: [BigInt!] - availableRewardSov_lt: BigInt - availableRewardSov_lte: BigInt - availableRewardSov_not: BigInt - availableRewardSov_not_in: [BigInt!] - availableTradingRewards: BigInt - availableTradingRewards_gt: BigInt - availableTradingRewards_gte: BigInt - availableTradingRewards_in: [BigInt!] - availableTradingRewards_lt: BigInt - availableTradingRewards_lte: BigInt - availableTradingRewards_not: BigInt - availableTradingRewards_not_in: [BigInt!] + availableRewardSov: BigDecimal + availableRewardSov_gt: BigDecimal + availableRewardSov_gte: BigDecimal + availableRewardSov_in: [BigDecimal!] + availableRewardSov_lt: BigDecimal + availableRewardSov_lte: BigDecimal + availableRewardSov_not: BigDecimal + availableRewardSov_not_in: [BigDecimal!] + availableTradingRewards: BigDecimal + availableTradingRewards_gt: BigDecimal + availableTradingRewards_gte: BigDecimal + availableTradingRewards_in: [BigDecimal!] + availableTradingRewards_lt: BigDecimal + availableTradingRewards_lte: BigDecimal + availableTradingRewards_not: BigDecimal + availableTradingRewards_not_in: [BigDecimal!] id: ID id_gt: ID id_gte: ID @@ -7760,14 +9048,14 @@ input UserRewardsEarnedHistory_filter { id_lte: ID id_not: ID id_not_in: [ID!] - totalFeesAndRewardsEarned: BigInt - totalFeesAndRewardsEarned_gt: BigInt - totalFeesAndRewardsEarned_gte: BigInt - totalFeesAndRewardsEarned_in: [BigInt!] - totalFeesAndRewardsEarned_lt: BigInt - totalFeesAndRewardsEarned_lte: BigInt - totalFeesAndRewardsEarned_not: BigInt - totalFeesAndRewardsEarned_not_in: [BigInt!] + totalFeesAndRewardsEarned: BigDecimal + totalFeesAndRewardsEarned_gt: BigDecimal + totalFeesAndRewardsEarned_gte: BigDecimal + totalFeesAndRewardsEarned_in: [BigDecimal!] + totalFeesAndRewardsEarned_lt: BigDecimal + totalFeesAndRewardsEarned_lte: BigDecimal + totalFeesAndRewardsEarned_not: BigDecimal + totalFeesAndRewardsEarned_not_in: [BigDecimal!] user: String user_contains: String user_ends_with: String @@ -7802,9 +9090,9 @@ type UserStakeHistory { skip: Int = 0 where: StakeHistoryItem_filter ): [StakeHistoryItem!] - totalRemaining: BigInt! - totalStaked: BigInt! - totalWithdrawn: BigInt! + totalRemaining: BigDecimal! + totalStaked: BigDecimal! + totalWithdrawn: BigDecimal! user: User! } @@ -7817,30 +9105,30 @@ input UserStakeHistory_filter { id_lte: ID id_not: ID id_not_in: [ID!] - totalRemaining: BigInt - totalRemaining_gt: BigInt - totalRemaining_gte: BigInt - totalRemaining_in: [BigInt!] - totalRemaining_lt: BigInt - totalRemaining_lte: BigInt - totalRemaining_not: BigInt - totalRemaining_not_in: [BigInt!] - totalStaked: BigInt - totalStaked_gt: BigInt - totalStaked_gte: BigInt - totalStaked_in: [BigInt!] - totalStaked_lt: BigInt - totalStaked_lte: BigInt - totalStaked_not: BigInt - totalStaked_not_in: [BigInt!] - totalWithdrawn: BigInt - totalWithdrawn_gt: BigInt - totalWithdrawn_gte: BigInt - totalWithdrawn_in: [BigInt!] - totalWithdrawn_lt: BigInt - totalWithdrawn_lte: BigInt - totalWithdrawn_not: BigInt - totalWithdrawn_not_in: [BigInt!] + totalRemaining: BigDecimal + totalRemaining_gt: BigDecimal + totalRemaining_gte: BigDecimal + totalRemaining_in: [BigDecimal!] + totalRemaining_lt: BigDecimal + totalRemaining_lte: BigDecimal + totalRemaining_not: BigDecimal + totalRemaining_not_in: [BigDecimal!] + totalStaked: BigDecimal + totalStaked_gt: BigDecimal + totalStaked_gte: BigDecimal + totalStaked_in: [BigDecimal!] + totalStaked_lt: BigDecimal + totalStaked_lte: BigDecimal + totalStaked_not: BigDecimal + totalStaked_not_in: [BigDecimal!] + totalWithdrawn: BigDecimal + totalWithdrawn_gt: BigDecimal + totalWithdrawn_gte: BigDecimal + totalWithdrawn_in: [BigDecimal!] + totalWithdrawn_lt: BigDecimal + totalWithdrawn_lte: BigDecimal + totalWithdrawn_not: BigDecimal + totalWithdrawn_not_in: [BigDecimal!] user: String user_contains: String user_ends_with: String @@ -8045,6 +9333,14 @@ enum UserTotal_orderBy { } input User_filter { + createdAtTimestamp: Int + createdAtTimestamp_gt: Int + createdAtTimestamp_gte: Int + createdAtTimestamp_in: [Int!] + createdAtTimestamp_lt: Int + createdAtTimestamp_lte: Int + createdAtTimestamp_not: Int + createdAtTimestamp_not_in: [Int!] id: ID id_gt: ID id_gte: ID @@ -8057,6 +9353,7 @@ input User_filter { enum User_orderBy { borrows + createdAtTimestamp id lendingHistory liquidations @@ -8066,17 +9363,18 @@ enum User_orderBy { stakeHistory swaps trades + transactions userTotals vestingContracts votes } type VestingContract { - cliff: BigInt - createdAtTimestamp: BigInt! + cliff: Int + createdAtTimestamp: Int! createdAtTransaction: Transaction! - currentBalance: BigInt! - duration: BigInt + currentBalance: BigDecimal! + duration: Int emittedBy: Bytes! id: ID! stakeHistory( @@ -8086,7 +9384,7 @@ type VestingContract { skip: Int = 0 where: VestingHistoryItem_filter ): [VestingHistoryItem!] - startingBalance: BigInt! + startingBalance: BigDecimal! type: VestingContractType! user: User! } @@ -8101,22 +9399,22 @@ enum VestingContractType { } input VestingContract_filter { - cliff: BigInt - cliff_gt: BigInt - cliff_gte: BigInt - cliff_in: [BigInt!] - cliff_lt: BigInt - cliff_lte: BigInt - cliff_not: BigInt - cliff_not_in: [BigInt!] - createdAtTimestamp: BigInt - createdAtTimestamp_gt: BigInt - createdAtTimestamp_gte: BigInt - createdAtTimestamp_in: [BigInt!] - createdAtTimestamp_lt: BigInt - createdAtTimestamp_lte: BigInt - createdAtTimestamp_not: BigInt - createdAtTimestamp_not_in: [BigInt!] + cliff: Int + cliff_gt: Int + cliff_gte: Int + cliff_in: [Int!] + cliff_lt: Int + cliff_lte: Int + cliff_not: Int + cliff_not_in: [Int!] + createdAtTimestamp: Int + createdAtTimestamp_gt: Int + createdAtTimestamp_gte: Int + createdAtTimestamp_in: [Int!] + createdAtTimestamp_lt: Int + createdAtTimestamp_lte: Int + createdAtTimestamp_not: Int + createdAtTimestamp_not_in: [Int!] createdAtTransaction: String createdAtTransaction_contains: String createdAtTransaction_ends_with: String @@ -8131,22 +9429,22 @@ input VestingContract_filter { createdAtTransaction_not_in: [String!] createdAtTransaction_not_starts_with: String createdAtTransaction_starts_with: String - currentBalance: BigInt - currentBalance_gt: BigInt - currentBalance_gte: BigInt - currentBalance_in: [BigInt!] - currentBalance_lt: BigInt - currentBalance_lte: BigInt - currentBalance_not: BigInt - currentBalance_not_in: [BigInt!] - duration: BigInt - duration_gt: BigInt - duration_gte: BigInt - duration_in: [BigInt!] - duration_lt: BigInt - duration_lte: BigInt - duration_not: BigInt - duration_not_in: [BigInt!] + currentBalance: BigDecimal + currentBalance_gt: BigDecimal + currentBalance_gte: BigDecimal + currentBalance_in: [BigDecimal!] + currentBalance_lt: BigDecimal + currentBalance_lte: BigDecimal + currentBalance_not: BigDecimal + currentBalance_not_in: [BigDecimal!] + duration: Int + duration_gt: Int + duration_gte: Int + duration_in: [Int!] + duration_lt: Int + duration_lte: Int + duration_not: Int + duration_not_in: [Int!] emittedBy: Bytes emittedBy_contains: Bytes emittedBy_in: [Bytes!] @@ -8161,14 +9459,14 @@ input VestingContract_filter { id_lte: ID id_not: ID id_not_in: [ID!] - startingBalance: BigInt - startingBalance_gt: BigInt - startingBalance_gte: BigInt - startingBalance_in: [BigInt!] - startingBalance_lt: BigInt - startingBalance_lte: BigInt - startingBalance_not: BigInt - startingBalance_not_in: [BigInt!] + startingBalance: BigDecimal + startingBalance_gt: BigDecimal + startingBalance_gte: BigDecimal + startingBalance_in: [BigDecimal!] + startingBalance_lt: BigDecimal + startingBalance_lte: BigDecimal + startingBalance_not: BigDecimal + startingBalance_not_in: [BigDecimal!] type: VestingContractType type_in: [VestingContractType!] type_not: VestingContractType @@ -8205,13 +9503,13 @@ enum VestingContract_orderBy { type VestingHistoryItem { action: VestingHistoryItemAction! - amount: BigInt! + amount: BigDecimal! emittedBy: Bytes! id: ID! - lockedUntil: BigInt! + lockedUntil: Int! staker: VestingContract! - timestamp: BigInt! - totalStaked: BigInt! + timestamp: Int! + totalStaked: BigDecimal! transaction: Transaction! } @@ -8226,14 +9524,14 @@ input VestingHistoryItem_filter { action_in: [VestingHistoryItemAction!] action_not: VestingHistoryItemAction action_not_in: [VestingHistoryItemAction!] - amount: BigInt - amount_gt: BigInt - amount_gte: BigInt - amount_in: [BigInt!] - amount_lt: BigInt - amount_lte: BigInt - amount_not: BigInt - amount_not_in: [BigInt!] + amount: BigDecimal + amount_gt: BigDecimal + amount_gte: BigDecimal + amount_in: [BigDecimal!] + amount_lt: BigDecimal + amount_lte: BigDecimal + amount_not: BigDecimal + amount_not_in: [BigDecimal!] emittedBy: Bytes emittedBy_contains: Bytes emittedBy_in: [Bytes!] @@ -8248,14 +9546,14 @@ input VestingHistoryItem_filter { id_lte: ID id_not: ID id_not_in: [ID!] - lockedUntil: BigInt - lockedUntil_gt: BigInt - lockedUntil_gte: BigInt - lockedUntil_in: [BigInt!] - lockedUntil_lt: BigInt - lockedUntil_lte: BigInt - lockedUntil_not: BigInt - lockedUntil_not_in: [BigInt!] + lockedUntil: Int + lockedUntil_gt: Int + lockedUntil_gte: Int + lockedUntil_in: [Int!] + lockedUntil_lt: Int + lockedUntil_lte: Int + lockedUntil_not: Int + lockedUntil_not_in: [Int!] staker: String staker_contains: String staker_ends_with: String @@ -8270,22 +9568,22 @@ input VestingHistoryItem_filter { staker_not_in: [String!] staker_not_starts_with: String staker_starts_with: String - timestamp: BigInt - timestamp_gt: BigInt - timestamp_gte: BigInt - timestamp_in: [BigInt!] - timestamp_lt: BigInt - timestamp_lte: BigInt - timestamp_not: BigInt - timestamp_not_in: [BigInt!] - totalStaked: BigInt - totalStaked_gt: BigInt - totalStaked_gte: BigInt - totalStaked_in: [BigInt!] - totalStaked_lt: BigInt - totalStaked_lte: BigInt - totalStaked_not: BigInt - totalStaked_not_in: [BigInt!] + timestamp: Int + timestamp_gt: Int + timestamp_gte: Int + timestamp_in: [Int!] + timestamp_lt: Int + timestamp_lte: Int + timestamp_not: Int + timestamp_not_in: [Int!] + totalStaked: BigDecimal + totalStaked_gt: BigDecimal + totalStaked_gte: BigDecimal + totalStaked_in: [BigDecimal!] + totalStaked_lt: BigDecimal + totalStaked_lte: BigDecimal + totalStaked_not: BigDecimal + totalStaked_not_in: [BigDecimal!] transaction: String transaction_contains: String transaction_ends_with: String @@ -8318,9 +9616,9 @@ type VoteCast { emittedBy: Bytes! id: ID! proposal: Proposal! - proposalId: BigInt! + proposalId: Int! support: Boolean! - timestamp: BigInt! + timestamp: Int! transaction: Transaction! voter: User! votes: BigInt! @@ -8342,14 +9640,14 @@ input VoteCast_filter { id_not: ID id_not_in: [ID!] proposal: String - proposalId: BigInt - proposalId_gt: BigInt - proposalId_gte: BigInt - proposalId_in: [BigInt!] - proposalId_lt: BigInt - proposalId_lte: BigInt - proposalId_not: BigInt - proposalId_not_in: [BigInt!] + proposalId: Int + proposalId_gt: Int + proposalId_gte: Int + proposalId_in: [Int!] + proposalId_lt: Int + proposalId_lte: Int + proposalId_not: Int + proposalId_not_in: [Int!] proposal_contains: String proposal_ends_with: String proposal_gt: String @@ -8367,14 +9665,14 @@ input VoteCast_filter { support_in: [Boolean!] support_not: Boolean support_not_in: [Boolean!] - timestamp: BigInt - timestamp_gt: BigInt - timestamp_gte: BigInt - timestamp_in: [BigInt!] - timestamp_lt: BigInt - timestamp_lte: BigInt - timestamp_not: BigInt - timestamp_not_in: [BigInt!] + timestamp: Int + timestamp_gt: Int + timestamp_gte: Int + timestamp_in: [Int!] + timestamp_lt: Int + timestamp_lte: Int + timestamp_not: Int + timestamp_not_in: [Int!] transaction: String transaction_contains: String transaction_ends_with: String @@ -8425,6 +9723,77 @@ enum VoteCast_orderBy { votes } +type Withdrawal { + amount: BigDecimal! + emittedBy: Bytes! + id: ID! + receiver: Bytes! + timestamp: Int! + transaction: Transaction! +} + +input Withdrawal_filter { + amount: BigDecimal + amount_gt: BigDecimal + amount_gte: BigDecimal + amount_in: [BigDecimal!] + amount_lt: BigDecimal + amount_lte: BigDecimal + amount_not: BigDecimal + amount_not_in: [BigDecimal!] + emittedBy: Bytes + emittedBy_contains: Bytes + emittedBy_in: [Bytes!] + emittedBy_not: Bytes + emittedBy_not_contains: Bytes + emittedBy_not_in: [Bytes!] + id: ID + id_gt: ID + id_gte: ID + id_in: [ID!] + id_lt: ID + id_lte: ID + id_not: ID + id_not_in: [ID!] + receiver: Bytes + receiver_contains: Bytes + receiver_in: [Bytes!] + receiver_not: Bytes + receiver_not_contains: Bytes + receiver_not_in: [Bytes!] + timestamp: Int + timestamp_gt: Int + timestamp_gte: Int + timestamp_in: [Int!] + timestamp_lt: Int + timestamp_lte: Int + timestamp_not: Int + timestamp_not_in: [Int!] + transaction: String + transaction_contains: String + transaction_ends_with: String + transaction_gt: String + transaction_gte: String + transaction_in: [String!] + transaction_lt: String + transaction_lte: String + transaction_not: String + transaction_not_contains: String + transaction_not_ends_with: String + transaction_not_in: [String!] + transaction_not_starts_with: String + transaction_starts_with: String +} + +enum Withdrawal_orderBy { + amount + emittedBy + id + receiver + timestamp + transaction +} + type _Block_ { """ The hash of the block From 8a4e9698b0903e55d49dce91dd2e6a373ab0d734 Mon Sep 17 00:00:00 2001 From: Victor Creed Date: Wed, 22 Jun 2022 16:05:28 +0300 Subject: [PATCH 09/38] fix: improve build speed by not building storybook for all branches --- netlify.toml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/netlify.toml b/netlify.toml index a25fa7890..88c9fdbc0 100644 --- a/netlify.toml +++ b/netlify.toml @@ -8,7 +8,6 @@ [build] command = "yarn build" [build.environment] - BUILD_STORYBOOK = "true" REACT_APP_INTERCOM_ID = "zxxit1rp" REACT_APP_NETWORK = "testnet" REACT_APP_PORTIS_ID = "469a25c8-1101-4c57-823d-c47cb328f788" @@ -27,9 +26,12 @@ REACT_APP_TRANSAK_ENV = "PRODUCTION" REACT_APP_TRANSAK_API_KEY = "fadc5140-4d8f-4eda-ab37-5999dfedf353" REACT_APP_ESTIMATOR_URI = "/simulate" + BUILD_STORYBOOK = "true" # PR deployments (previews) [context.deploy-preview] + [context.deploy-preview.environment] + BUILD_STORYBOOK = "true" # Staging deployments (all branches) [context.branch-deploy] @@ -48,3 +50,4 @@ [context.development.environment] REACT_APP_NETWORK = "testnet" REACT_APP_GRAPH_RSK = "https://subgraph.test.sovryn.app/subgraphs/name/DistributedCollective/sovryn-subgraph" + BUILD_STORYBOOK = "true" From 0a7095f1453d2e8b08ba566cab8bdb401f851d96 Mon Sep 17 00:00:00 2001 From: Victor Creed <69458664+creed-victor@users.noreply.github.com> Date: Wed, 22 Jun 2022 16:06:22 +0300 Subject: [PATCH 10/38] feat: remove unused github actions (#2280) --- .github/workflows/deploy-staging.yml | 55 ------------------- .../workflows/sync-development-external.yml | 27 --------- .github/workflows/sync-master-external.yml | 27 --------- 3 files changed, 109 deletions(-) delete mode 100644 .github/workflows/deploy-staging.yml delete mode 100644 .github/workflows/sync-development-external.yml delete mode 100644 .github/workflows/sync-master-external.yml diff --git a/.github/workflows/deploy-staging.yml b/.github/workflows/deploy-staging.yml deleted file mode 100644 index 19ef438c7..000000000 --- a/.github/workflows/deploy-staging.yml +++ /dev/null @@ -1,55 +0,0 @@ -name: Deploy to staging -on: - workflow_dispatch: - -jobs: - deploy: - runs-on: ubuntu-latest - environment: - name: Staging - url: https://staging.sovryn.app - concurrency: - group: Staging - cancel-in-progress: true - - steps: - - name: Checkout code - uses: actions/checkout@v2 - - - name: Setup node - uses: actions/setup-node@v2 - with: - node-version: 'lts/erbium' - cache: 'yarn' - registry-url: 'https://npm.pkg.github.com' - scope: '@distributedcollective' - - - name: Install NPM dependencies - run: yarn install - env: - NODE_AUTH_TOKEN: ${{ secrets.GPR_ACCESS_TOKEN }} - - - name: Build - run: yarn build - env: - REACT_APP_NETWORK: 'mainnet' - REACT_APP_STAGING: 'true' - REACT_APP_BYPASS_MAINTENANCE: 'true' - REACT_APP_ESTIMATOR_URI: 'https://simulator.sovryn.app' - REACT_APP_INTERCOM_ID: 'zxxit1rp' - REACT_APP_GRAPH_RSK: 'https://subgraph.sovryn.app/subgraphs/name/DistributedCollective/sovryn-subgraph' - - - - name: Deploy to S3 - uses: raulanatol/aws-s3-docker-action@master - env: - AWS_ACCESS_KEY_ID: '${{ secrets.AWS_ACCESS_KEY_ID }}' - AWS_SECRET_ACCESS_KEY: '${{ secrets.AWS_SECRET_ACCESS_KEY }}' - AWS_BUCKET_NAME: '${{ secrets.AWS_S3_BUCKET }}' - AWS_REGION: us-east-2 - SOURCE: build - # TARGET: - WITH_DELETE: true -# WITH_CLOUD_FRONT_INVALIDATION: -# AWS_CLOUDFRONT_DISTRIBUTION_ID: -# AWS_CLOUDFRONT_INVALIDATION_PATH: diff --git a/.github/workflows/sync-development-external.yml b/.github/workflows/sync-development-external.yml deleted file mode 100644 index 6c6673314..000000000 --- a/.github/workflows/sync-development-external.yml +++ /dev/null @@ -1,27 +0,0 @@ -# Syncs "development" branch to "development_external" - -name: 'Sync Development External' -on: - push: - branches: - - development - -jobs: - sync-branches: - runs-on: ubuntu-latest - name: Syncing branches - steps: - - name: Checkout - uses: actions/checkout@v2 - - name: Set up Node - uses: actions/setup-node@v2.2.0 - with: - node-version: lts/erbium - - name: Opening pull request - id: pull - uses: tretuna/sync-branches@1.2.0 - with: - GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} - FROM_BRANCH: 'development' - TO_BRANCH: 'development_external' - PULL_REQUEST_BODY: 'sync-branches: Syncing commits from `development` to `development_external`' diff --git a/.github/workflows/sync-master-external.yml b/.github/workflows/sync-master-external.yml deleted file mode 100644 index fb0abc263..000000000 --- a/.github/workflows/sync-master-external.yml +++ /dev/null @@ -1,27 +0,0 @@ -# Syncs "master" branch to "master_external" - -name: 'Sync Master External' -on: - push: - branches: - - master - -jobs: - sync-branches: - runs-on: ubuntu-latest - name: Syncing branches - steps: - - name: Checkout - uses: actions/checkout@v2 - - name: Set up Node - uses: actions/setup-node@v2.2.0 - with: - node-version: lts/erbium - - name: Opening pull request - id: pull - uses: tretuna/sync-branches@1.2.0 - with: - GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} - FROM_BRANCH: 'master' - TO_BRANCH: 'master_external' - PULL_REQUEST_BODY: 'sync-branches: Syncing commits from `master` to `master_external`' From 83beb8b5cee91f73411137e485acf3b2d62e9201 Mon Sep 17 00:00:00 2001 From: tiltom Date: Wed, 22 Jun 2022 16:25:51 +0200 Subject: [PATCH 11/38] Release update --- package.json | 2 +- .../components/TradingChart/streaming.ts | 2 +- .../contexts/RecentTradesContext.tsx | 2 +- .../PerpetualPage/utils/contractUtils.tsx | 18 +- .../blockchain/abi/PerpetualManager.json | 534 +++++++++++------- src/utils/blockchain/contracts.testnet.ts | 6 +- yarn.lock | 8 +- 7 files changed, 348 insertions(+), 224 deletions(-) diff --git a/package.json b/package.json index 5cefcd0cb..05fc343ec 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@reduxjs/toolkit": "1.5.1", "@rsksmart/rsk3": "0.3.4", "@sovryn/charting-library": "1.0.0", - "@sovryn/perpetual-swap": "3.0.5", + "@sovryn/perpetual-swap": "3.0.8", "@sovryn/react-wallet": "2.2.5", "@svgr/webpack": "4.3.3", "@testing-library/jest-dom": "5.1.1", diff --git a/src/app/pages/PerpetualPage/components/TradingChart/streaming.ts b/src/app/pages/PerpetualPage/components/TradingChart/streaming.ts index 9402ff875..91cd1c17d 100644 --- a/src/app/pages/PerpetualPage/components/TradingChart/streaming.ts +++ b/src/app/pages/PerpetualPage/components/TradingChart/streaming.ts @@ -54,7 +54,7 @@ subscription.on('data', data => { } const tradePrice = ABK64x64ToFloat(BigNumber.from(decoded.price)); - const tradeAmount = ABK64x64ToFloat(BigNumber.from(decoded.tradeAmountBC)); + const tradeAmount = ABK64x64ToFloat(BigNumber.from(decoded[3][2])); const tradeTime = Date.now(); const channelString = Object.keys(symbolMap).find( item => symbolMap[item].toLowerCase() === decoded.perpetualId.toLowerCase(), diff --git a/src/app/pages/PerpetualPage/contexts/RecentTradesContext.tsx b/src/app/pages/PerpetualPage/contexts/RecentTradesContext.tsx index 475c3a1ce..b138a134a 100644 --- a/src/app/pages/PerpetualPage/contexts/RecentTradesContext.tsx +++ b/src/app/pages/PerpetualPage/contexts/RecentTradesContext.tsx @@ -70,7 +70,7 @@ const addSocketEventListeners = ( BigNumber.from(decoded.price || decoded.liquidationPrice), ); const tradeAmount = ABK64x64ToFloat( - BigNumber.from(decoded.tradeAmountBC || decoded.amountLiquidatedBC), + BigNumber.from(decoded[3][2] || decoded.amountLiquidatedBC), ); const parsedTrade: RecentTradesDataEntry = { id: data.transactionHash, diff --git a/src/app/pages/PerpetualPage/utils/contractUtils.tsx b/src/app/pages/PerpetualPage/utils/contractUtils.tsx index 47ed4b05c..8a7c76fad 100644 --- a/src/app/pages/PerpetualPage/utils/contractUtils.tsx +++ b/src/app/pages/PerpetualPage/utils/contractUtils.tsx @@ -434,26 +434,20 @@ export const initialLiquidityPoolState: LiqPoolState = { fPnLparticipantsCashCC: 0, fAMMFundCashCC: 0, fDefaultFundCashCC: 0, - iPriceUpdateTimeSec: 0, fTargetAMMFundSize: 0, fTargetDFSize: 0, - iLastTargetPoolSizeTime: 0, - iLastFundingTime: 0, isRunning: false, }; const parseLiquidityPoolState = (response: any): LiqPoolState => response?.[0] ? { - fPnLparticipantsCashCC: ABK64x64ToFloat(response[0][6]), + fPnLparticipantsCashCC: ABK64x64ToFloat(response[0][5]), fAMMFundCashCC: ABK64x64ToFloat(response[0][7]), fDefaultFundCashCC: ABK64x64ToFloat(response[0][8]), - iPriceUpdateTimeSec: ABK64x64ToFloat(response[0][9]), - fTargetAMMFundSize: ABK64x64ToFloat(response[0][10]), - fTargetDFSize: ABK64x64ToFloat(response[0][11]), - iLastTargetPoolSizeTime: ABK64x64ToFloat(response[0][12]), - iLastFundingTime: ABK64x64ToFloat(response[0][13]), - isRunning: response[0][1], + fTargetAMMFundSize: ABK64x64ToFloat(response[0][9]), + fTargetDFSize: ABK64x64ToFloat(response[0][10]), + isRunning: response[0][17], } : initialLiquidityPoolState; @@ -510,7 +504,7 @@ export const initialPerpetualParameters: PerpParameters = { const parsePerpetualParameters = (response: any): PerpParameters => response?.[0] ? { - poolId: BigNumber.from(response[0][1]).toNumber(), + poolId: BigNumber.from(response[0][0]).toNumber(), oracleS2Addr: response[0][2], oracleS3Addr: response[0][3], fCurrentFundingRate: ABK64x64ToFloat(response[0][10]), @@ -544,7 +538,7 @@ const parsePerpetualParameters = (response: any): PerpParameters => fAMMMinSizeCC: ABK64x64ToFloat(response[0][39]), fMinimalTraderExposureEMA: ABK64x64ToFloat(response[0][40]), fMaximalTradeSizeBumpUp: ABK64x64ToFloat(response[0][42]), - fMaxPositionBC: ABK64x64ToFloat(response[0][49]), + fMaxPositionBC: ABK64x64ToFloat(response[0][44]), } : initialPerpetualParameters; diff --git a/src/utils/blockchain/abi/PerpetualManager.json b/src/utils/blockchain/abi/PerpetualManager.json index eb08d1294..3e9d4a3a7 100644 --- a/src/utils/blockchain/abi/PerpetualManager.json +++ b/src/utils/blockchain/abi/PerpetualManager.json @@ -31,6 +31,43 @@ "name": "Clear", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "poolId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "perpetualId", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "trader", + "type": "address" + }, + { + "indexed": false, + "internalType": "int128", + "name": "protocolFeeCC", + "type": "int128" + }, + { + "indexed": false, + "internalType": "int128", + "name": "participationFundFeeCC", + "type": "int128" + } + ], + "name": "DistributeFees", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -75,12 +112,6 @@ "internalType": "int128", "name": "newPositionSizeBC", "type": "int128" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockTimestamp", - "type": "uint256" } ], "name": "Liquidate", @@ -599,12 +630,6 @@ "internalType": "int128", "name": "amount", "type": "int128" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockTimestamp", - "type": "uint256" } ], "name": "TokensDeposited", @@ -630,12 +655,6 @@ "internalType": "int128", "name": "amount", "type": "int128" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockTimestamp", - "type": "uint256" } ], "name": "TokensWithdrawn", @@ -663,22 +682,68 @@ "type": "bytes32" }, { + "components": [ + { + "internalType": "bytes32", + "name": "iPerpetualId", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "traderAddr", + "type": "address" + }, + { + "internalType": "int128", + "name": "fAmount", + "type": "int128" + }, + { + "internalType": "int128", + "name": "fLimitPrice", + "type": "int128" + }, + { + "internalType": "int128", + "name": "fTriggerPrice", + "type": "int128" + }, + { + "internalType": "uint256", + "name": "iDeadline", + "type": "uint256" + }, + { + "internalType": "address", + "name": "referrerAddr", + "type": "address" + }, + { + "internalType": "uint32", + "name": "flags", + "type": "uint32" + }, + { + "internalType": "int128", + "name": "fLeverage", + "type": "int128" + }, + { + "internalType": "uint256", + "name": "createdTimestamp", + "type": "uint256" + } + ], "indexed": false, - "internalType": "bytes32", - "name": "orderDigest", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "orderFlags", - "type": "uint32" + "internalType": "struct IPerpetualOrder.Order", + "name": "order", + "type": "tuple" }, { "indexed": false, - "internalType": "int128", - "name": "tradeAmountBC", - "type": "int128" + "internalType": "bytes32", + "name": "orderDigest", + "type": "bytes32" }, { "indexed": false, @@ -691,12 +756,6 @@ "internalType": "int128", "name": "price", "type": "int128" - }, - { - "indexed": false, - "internalType": "int128", - "name": "limitPrice", - "type": "int128" } ], "name": "Trade", @@ -722,12 +781,6 @@ "internalType": "int128", "name": "newDefaultFundSize", "type": "int128" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockTimestamp", - "type": "uint256" } ], "name": "TransferEarningsToTreasury", @@ -809,12 +862,6 @@ "internalType": "int128", "name": "fNewLiqPoolTotalAMMFundsCash", "type": "int128" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockTimestamp", - "type": "uint256" } ], "name": "UpdateAMMFundCash", @@ -858,12 +905,6 @@ "internalType": "int128", "name": "fTargetAMMFundSizeInPool", "type": "int128" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockTimestamp", - "type": "uint256" } ], "name": "UpdateAMMFundTargetSize", @@ -889,12 +930,6 @@ "internalType": "int128", "name": "fNewFundCash", "type": "int128" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockTimestamp", - "type": "uint256" } ], "name": "UpdateDefaultFundCash", @@ -920,12 +955,6 @@ "internalType": "int128", "name": "fTargetDFSize", "type": "int128" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockTimestamp", - "type": "uint256" } ], "name": "UpdateDefaultFundTargetSize", @@ -945,12 +974,6 @@ "internalType": "int128", "name": "fFundingRate", "type": "int128" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockTimestamp", - "type": "uint256" } ], "name": "UpdateFundingRate", @@ -1006,12 +1029,6 @@ "internalType": "int128", "name": "fOpenInterestBC", "type": "int128" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockTimestamp", - "type": "uint256" } ], "name": "UpdateMarginAccount", @@ -1037,12 +1054,6 @@ "internalType": "int128", "name": "fSpotIndexPrice", "type": "int128" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockTimestamp", - "type": "uint256" } ], "name": "UpdateMarkPrice", @@ -1068,12 +1079,6 @@ "internalType": "int128", "name": "fNewFundCash", "type": "int128" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockTimestamp", - "type": "uint256" } ], "name": "UpdateParticipationFundCash", @@ -1154,12 +1159,6 @@ "internalType": "int128", "name": "fCurrentAMMExposureEMALong", "type": "int128" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockTimestamp", - "type": "uint256" } ], "name": "UpdateReprTradeSizes", @@ -1782,6 +1781,82 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "components": [ + { + "internalType": "bytes32", + "name": "iPerpetualId", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "traderAddr", + "type": "address" + }, + { + "internalType": "int128", + "name": "fAmount", + "type": "int128" + }, + { + "internalType": "int128", + "name": "fLimitPrice", + "type": "int128" + }, + { + "internalType": "int128", + "name": "fTriggerPrice", + "type": "int128" + }, + { + "internalType": "uint256", + "name": "iDeadline", + "type": "uint256" + }, + { + "internalType": "address", + "name": "referrerAddr", + "type": "address" + }, + { + "internalType": "uint32", + "name": "flags", + "type": "uint32" + }, + { + "internalType": "int128", + "name": "fLeverage", + "type": "int128" + }, + { + "internalType": "uint256", + "name": "createdTimestamp", + "type": "uint256" + } + ], + "internalType": "struct IPerpetualOrder.Order", + "name": "_order", + "type": "tuple" + }, + { + "internalType": "bool", + "name": "_hasOpened", + "type": "bool" + } + ], + "name": "distributeFees", + "outputs": [ + { + "internalType": "int128", + "name": "", + "type": "int128" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -1794,11 +1869,6 @@ "name": "_traderAddr", "type": "address" }, - { - "internalType": "address", - "name": "_referrerAddr", - "type": "address" - }, { "internalType": "int128", "name": "_fDeltaPositionBC", @@ -1810,7 +1880,7 @@ "type": "bool" } ], - "name": "distributeFees", + "name": "distributeFeesNoRef", "outputs": [ { "internalType": "int128", @@ -2113,11 +2183,6 @@ "name": "id", "type": "uint256" }, - { - "internalType": "bool", - "name": "isRunning", - "type": "bool" - }, { "internalType": "address", "name": "treasuryAddress", @@ -2153,11 +2218,6 @@ "name": "fDefaultFundCashCC", "type": "int128" }, - { - "internalType": "uint256", - "name": "iPriceUpdateTimeSec", - "type": "uint256" - }, { "internalType": "int128", "name": "fTargetAMMFundSize", @@ -2169,25 +2229,20 @@ "type": "int128" }, { - "internalType": "uint256", - "name": "iLastTargetPoolSizeTime", - "type": "uint256" + "internalType": "int128", + "name": "fPnLparticipantWithdrawalPercentageLimit", + "type": "int128" }, { "internalType": "uint256", - "name": "iLastFundingTime", + "name": "iPnLparticipantWithdrawalPeriod", "type": "uint256" }, { "internalType": "uint256", - "name": "iPnLparticipantWithdrawalPeriod", + "name": "iPerpetualCount", "type": "uint256" }, - { - "internalType": "int128", - "name": "fPnLparticipantWithdrawalPercentageLimit", - "type": "int128" - }, { "internalType": "int128", "name": "fPnLparticipantWithdrawalMinAmountLimit", @@ -2198,15 +2253,15 @@ "name": "fRedemptionRate", "type": "int128" }, - { - "internalType": "uint256", - "name": "iPerpetualCount", - "type": "uint256" - }, { "internalType": "int128", "name": "fMaxTotalTraderFunds", "type": "int128" + }, + { + "internalType": "bool", + "name": "isRunning", + "type": "bool" } ], "internalType": "struct PerpStorage.LiquidityPoolData", @@ -2328,16 +2383,16 @@ "outputs": [ { "components": [ - { - "internalType": "int128", - "name": "fPrice", - "type": "int128" - }, { "internalType": "uint256", "name": "time", "type": "uint256" }, + { + "internalType": "int128", + "name": "fPrice", + "type": "int128" + }, { "internalType": "bool", "name": "isInSignificant", @@ -2415,16 +2470,16 @@ "outputs": [ { "components": [ - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, { "internalType": "uint256", "name": "poolId", "type": "uint256" }, + { + "internalType": "bytes32", + "name": "id", + "type": "bytes32" + }, { "internalType": "address", "name": "oracleS2Addr", @@ -2437,16 +2492,16 @@ }, { "components": [ - { - "internalType": "int128", - "name": "fPrice", - "type": "int128" - }, { "internalType": "uint256", "name": "time", "type": "uint256" }, + { + "internalType": "int128", + "name": "fPrice", + "type": "int128" + }, { "internalType": "bool", "name": "isInSignificant", @@ -2459,16 +2514,16 @@ }, { "components": [ - { - "internalType": "int128", - "name": "fPrice", - "type": "int128" - }, { "internalType": "uint256", "name": "time", "type": "uint256" }, + { + "internalType": "int128", + "name": "fPrice", + "type": "int128" + }, { "internalType": "bool", "name": "isInSignificant", @@ -2479,23 +2534,18 @@ "name": "currentMarkPremiumRate", "type": "tuple" }, - { - "internalType": "int128", - "name": "premiumRatesEMA", - "type": "int128" - }, { "components": [ - { - "internalType": "int128", - "name": "fPrice", - "type": "int128" - }, { "internalType": "uint256", "name": "time", "type": "uint256" }, + { + "internalType": "int128", + "name": "fPrice", + "type": "int128" + }, { "internalType": "bool", "name": "isInSignificant", @@ -2508,16 +2558,16 @@ }, { "components": [ - { - "internalType": "int128", - "name": "fPrice", - "type": "int128" - }, { "internalType": "uint256", "name": "time", "type": "uint256" }, + { + "internalType": "int128", + "name": "fPrice", + "type": "int128" + }, { "internalType": "bool", "name": "isInSignificant", @@ -2530,16 +2580,16 @@ }, { "components": [ - { - "internalType": "int128", - "name": "fPrice", - "type": "int128" - }, { "internalType": "uint256", "name": "time", "type": "uint256" }, + { + "internalType": "int128", + "name": "fPrice", + "type": "int128" + }, { "internalType": "bool", "name": "isInSignificant", @@ -2550,6 +2600,11 @@ "name": "settlementS3PriceData", "type": "tuple" }, + { + "internalType": "int128", + "name": "premiumRatesEMA", + "type": "int128" + }, { "internalType": "int128", "name": "fCurrentFundingRate", @@ -2717,13 +2772,18 @@ }, { "internalType": "int128", - "name": "fTargetAMMFundSize", + "name": "fTotalMarginBalance", "type": "int128" }, { - "internalType": "bool", - "name": "isBaselineAMMFundState", - "type": "bool" + "internalType": "int128", + "name": "fMaxPositionBC", + "type": "int128" + }, + { + "internalType": "int128", + "name": "fTargetAMMFundSize", + "type": "int128" }, { "internalType": "int128", @@ -2741,14 +2801,24 @@ "type": "int128" }, { - "internalType": "int128", - "name": "fTotalMarginBalance", - "type": "int128" + "internalType": "bool", + "name": "isBaselineAMMFundState", + "type": "bool" }, { - "internalType": "int128", - "name": "fMaxPositionBC", - "type": "int128" + "internalType": "uint256", + "name": "iLastFundingTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "iPriceUpdateTimeSec", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "iLastTargetPoolSizeTime", + "type": "uint256" } ], "internalType": "struct PerpStorage.PerpetualData", @@ -3338,24 +3408,61 @@ "type": "bytes32" }, { - "internalType": "address", - "name": "_traderAddr", - "type": "address" - }, - { - "internalType": "int128", - "name": "_fAmount", - "type": "int128" - }, - { - "internalType": "int128", - "name": "_fLimitPrice", - "type": "int128" - }, - { - "internalType": "uint32", - "name": "_flags", - "type": "uint32" + "components": [ + { + "internalType": "bytes32", + "name": "iPerpetualId", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "traderAddr", + "type": "address" + }, + { + "internalType": "int128", + "name": "fAmount", + "type": "int128" + }, + { + "internalType": "int128", + "name": "fLimitPrice", + "type": "int128" + }, + { + "internalType": "int128", + "name": "fTriggerPrice", + "type": "int128" + }, + { + "internalType": "uint256", + "name": "iDeadline", + "type": "uint256" + }, + { + "internalType": "address", + "name": "referrerAddr", + "type": "address" + }, + { + "internalType": "uint32", + "name": "flags", + "type": "uint32" + }, + { + "internalType": "int128", + "name": "fLeverage", + "type": "int128" + }, + { + "internalType": "uint256", + "name": "createdTimestamp", + "type": "uint256" + } + ], + "internalType": "struct IPerpetualOrder.Order", + "name": "_order", + "type": "tuple" } ], "name": "preTrade", @@ -3948,9 +4055,9 @@ { "inputs": [ { - "internalType": "uint256", - "name": "_iPoolIndex", - "type": "uint256" + "internalType": "bytes32", + "name": "_iPerpetualId", + "type": "bytes32" } ], "name": "updateDefaultFundTargetSize", @@ -3962,10 +4069,28 @@ "inputs": [ { "internalType": "uint256", - "name": "_iPoolIdx", + "name": "_iPoolIndex", "type": "uint256" } ], + "name": "updateDefaultFundTargetSizeRandom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_iPerpetualId0", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "_iPerpetualId1", + "type": "bytes32" + } + ], "name": "updateFundingAndPricesAfter", "outputs": [], "stateMutability": "nonpayable", @@ -3974,9 +4099,14 @@ { "inputs": [ { - "internalType": "uint256", - "name": "_iPoolIdx", - "type": "uint256" + "internalType": "bytes32", + "name": "_iPerpetualId0", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "_iPerpetualId1", + "type": "bytes32" } ], "name": "updateFundingAndPricesBefore", diff --git a/src/utils/blockchain/contracts.testnet.ts b/src/utils/blockchain/contracts.testnet.ts index 0a30e2c9b..11fced571 100644 --- a/src/utils/blockchain/contracts.testnet.ts +++ b/src/utils/blockchain/contracts.testnet.ts @@ -329,7 +329,7 @@ export const contracts = { abi: fastBtcMultisigAbi, }, perpetualManager: { - address: '0x28193dcc74202cCa433279010917977137394d2E', + address: '0x9F28095E54b88aebd3244767f65Fe79764Ca83c5', abi: perpetualManagerAbi, chainId: ChainId.BSC_TESTNET, }, @@ -339,12 +339,12 @@ export const contracts = { chainId: ChainId.BSC_TESTNET, }, perpetualLimitOrderBookBTCUSD: { - address: '0x29a0BC198E7ae04E91d2924da8093FAAF9d94950', + address: '0xFB41ECb0FF382994670d2f974D23D0Ad03AeCc82', abi: perpetualLimitOrderBookAbi, chainId: ChainId.BSC_TESTNET, }, perpetualLimitOrderBookBNBUSD: { - address: '0xe2b95C2bcfEbb2fF73e103d86a2Eb2b82Cb34Dd5', + address: '0xe7d6AC4ec186fb021835eA499B1C1306Db6Af8bE', abi: perpetualLimitOrderBookAbi, chainId: ChainId.BSC_TESTNET, }, diff --git a/yarn.lock b/yarn.lock index 6d07e11c2..af7767da7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5427,10 +5427,10 @@ dependencies: debug "^4.3.1" -"@sovryn/perpetual-swap@3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@sovryn/perpetual-swap/-/perpetual-swap-3.0.5.tgz#113256c457f7ec7dc8458b160ad96d57e44843fe" - integrity sha512-xEIHdDu7bMjOQfNwwA7tzrvtwwczkxQpQTuip0BV9Ud662PZob0jGhE19fSUZOKEemzBT9bnbFAGeTTorNeIxg== +"@sovryn/perpetual-swap@3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@sovryn/perpetual-swap/-/perpetual-swap-3.0.8.tgz#05311b6046372b85a949b79f223946750c628786" + integrity sha512-83RWc+nt68uX264hYdcqm5wCojCdpdkWl4w/LN6L7JnNCrpKJ2Ce9wmRb1o9NXJfWGdbHc6qh/JOoXLD6Rbx5Q== dependencies: "@opengsn/provider" "^2.2.4" "@openzeppelin/contracts" "4.5.0" From 104aed9c2aebc4037972d925aacd9f7824c7dcc6 Mon Sep 17 00:00:00 2001 From: Victor Creed <69458664+creed-victor@users.noreply.github.com> Date: Wed, 22 Jun 2022 18:36:21 +0300 Subject: [PATCH 12/38] fix: 404 errors when refreshing page for netlify deployments --- public/_redirects | 1 + 1 file changed, 1 insertion(+) create mode 100644 public/_redirects diff --git a/public/_redirects b/public/_redirects new file mode 100644 index 000000000..bbb3e7a1f --- /dev/null +++ b/public/_redirects @@ -0,0 +1 @@ +/* /index.html 200 From 384bbef72ac60d9bd083de579b07f452c62b03bf Mon Sep 17 00:00:00 2001 From: soulBit Date: Wed, 22 Jun 2022 17:38:40 +0100 Subject: [PATCH 13/38] feat: missing data-action-ids for Spot/Swap/Margin page dialog buttons (#2273) --- .../SwapFormContainer/components/ReviewDialog/index.tsx | 1 + .../components/TradeDialog/TradeDialogContent.tsx | 4 +++- .../pages/SpotTradingPage/components/TradeDialog/index.tsx | 4 +++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/app/containers/SwapFormContainer/components/ReviewDialog/index.tsx b/src/app/containers/SwapFormContainer/components/ReviewDialog/index.tsx index d24f9854a..6237af68c 100644 --- a/src/app/containers/SwapFormContainer/components/ReviewDialog/index.tsx +++ b/src/app/containers/SwapFormContainer/components/ReviewDialog/index.tsx @@ -118,6 +118,7 @@ export const ReviewDialog: React.FC = ({ confirmLabel={t(translations.common.confirm)} onConfirm={submit} disabled={swapDialogLocked} + data-action-id="swap-reviewDialog-confirm" /> diff --git a/src/app/pages/MarginTradePage/components/TradeDialog/TradeDialogContent.tsx b/src/app/pages/MarginTradePage/components/TradeDialog/TradeDialogContent.tsx index 404c30320..1c837d665 100644 --- a/src/app/pages/MarginTradePage/components/TradeDialog/TradeDialogContent.tsx +++ b/src/app/pages/MarginTradePage/components/TradeDialog/TradeDialogContent.tsx @@ -439,7 +439,9 @@ export const TradeDialogContent: React.FC = ({ confirmLabel={t(translations.common.confirm)} onConfirm={onSubmit} disabled={openTradesLocked || disableButtonAfterSimulatorError} - data-action-id="margin-reviewTransaction-button-confirm" + data-action-id={`margin-reviewTransaction-${ + position === TradingPosition.LONG ? 'long' : 'short' + }-confirm`} /> diff --git a/src/app/pages/SpotTradingPage/components/TradeDialog/index.tsx b/src/app/pages/SpotTradingPage/components/TradeDialog/index.tsx index e6ebb3d8f..ee534ccd9 100644 --- a/src/app/pages/SpotTradingPage/components/TradeDialog/index.tsx +++ b/src/app/pages/SpotTradingPage/components/TradeDialog/index.tsx @@ -191,7 +191,9 @@ export const TradeDialog: React.FC = ({ confirmLabel={t(translations.common.confirm)} onConfirm={submit} disabled={spotLocked || !connected || buttonLoading} - data-action-id="spot-reviewDialog-submit" + data-action-id={`spot-reviewDialog-${ + tradeType === TradingTypes.BUY ? 'buy' : 'sell' + }-submit`} /> From 70190fc6ae6ec213799a94435d9610e35bbde0de Mon Sep 17 00:00:00 2001 From: tiltom Date: Thu, 23 Jun 2022 14:59:16 +0200 Subject: [PATCH 14/38] Perpetuals - deployment adjustments and small UI updates (#2285) * Add minimum position size enforcement * Deployment update * Restyle trade type buttons --- .../components/ContractDetails/index.tsx | 6 +- .../components/TradeForm/index.module.scss | 11 + .../components/TradeForm/index.tsx | 56 ++- .../hooks/usePerpetual_ContractDetails.ts | 6 +- .../PerpetualPage/utils/contractUtils.tsx | 72 ++-- src/locales/en/translation.json | 2 +- .../blockchain/abi/PerpetualManager.json | 374 +++++++----------- src/utils/blockchain/contracts.testnet.ts | 6 +- .../dictionaries/perpetual-pair-dictionary.ts | 4 +- 9 files changed, 250 insertions(+), 287 deletions(-) create mode 100644 src/app/pages/PerpetualPage/components/TradeForm/index.module.scss diff --git a/src/app/pages/PerpetualPage/components/ContractDetails/index.tsx b/src/app/pages/PerpetualPage/components/ContractDetails/index.tsx index 35aae4a3c..d31c3786b 100644 --- a/src/app/pages/PerpetualPage/components/ContractDetails/index.tsx +++ b/src/app/pages/PerpetualPage/components/ContractDetails/index.tsx @@ -88,13 +88,15 @@ export const ContractDetails: React.FC = ({ pair }) => { } /> } diff --git a/src/app/pages/PerpetualPage/components/TradeForm/index.module.scss b/src/app/pages/PerpetualPage/components/TradeForm/index.module.scss new file mode 100644 index 000000000..7f0184967 --- /dev/null +++ b/src/app/pages/PerpetualPage/components/TradeForm/index.module.scss @@ -0,0 +1,11 @@ +.tradeTypeButton { + @apply tw-px-3 tw-py-1.5 tw-text-sm tw-text-white tw-rounded-lg tw-font-medium tw-opacity-75 tw-bg-transparent; + + &:hover { + @apply tw-opacity-100 tw-font-semibold tw-transition-opacity tw-duration-300; + } + + &.active { + @apply tw-bg-gray-7 tw-font-semibold tw-opacity-100 tw-font-semibold; + } +} diff --git a/src/app/pages/PerpetualPage/components/TradeForm/index.tsx b/src/app/pages/PerpetualPage/components/TradeForm/index.tsx index 597743a5c..3f739d28a 100644 --- a/src/app/pages/PerpetualPage/components/TradeForm/index.tsx +++ b/src/app/pages/PerpetualPage/components/TradeForm/index.tsx @@ -48,8 +48,12 @@ import { ExpiryDateInput } from './components/ExpiryDateInput'; import { ResultingPosition } from './components/ResultingPosition'; import { Checkbox } from 'app/components/Checkbox'; import { usePerpetual_analyseTrade } from '../../hooks/usePerpetual_analyseTrade'; -import { getTraderPnLInCC } from '@sovryn/perpetual-swap/dist/scripts/utils/perpUtils'; +import { + getMinimalPositionSize, + getTraderPnLInCC, +} from '@sovryn/perpetual-swap/dist/scripts/utils/perpUtils'; import { ValidationHint } from '../ValidationHint/ValidationHint'; +import styles from './index.module.scss'; const { shrinkToLot } = perpMath; const { @@ -99,12 +103,24 @@ export const TradeForm: React.FC = ({ availableBalance, } = perpetuals[pair.id]; + const minimumPositionSize = useMemo( + () => + String( + Number(getMinimalPositionSize(perpParameters).toFixed(lotPrecision)), // Number conversion is performed so we trim additional zeros + ), + + [lotPrecision, perpParameters], + ); + const collateralName = useMemo( () => getCollateralName(pair.collateralAsset), [pair.collateralAsset], ); - const hasOpenTrades = traderState?.marginAccountPositionBC !== 0; + const hasOpenTrades = useMemo( + () => traderState?.marginAccountPositionBC !== 0, + [traderState?.marginAccountPositionBC], + ); const maxTradeSize = useMemo(() => { const maxTradeSize = shrinkToLot( @@ -216,6 +232,18 @@ export const TradeForm: React.FC = ({ } }, [amount, maxTradeSize, trade.position]); + useEffect(() => { + if ( + !hasOpenTrades && + isValidNumerishValue(amount) && + !bignumber(amount).isZero() && + bignumber(amount).lessThan(minimumPositionSize) + ) { + setAmount(minimumPositionSize); + setTrade(trade => ({ ...trade, amount: toWei(minimumPositionSize) })); + } + }, [amount, hasOpenTrades, lotPrecision, minimumPositionSize, setTrade]); + const onChangeOrderAmount = useCallback( (amount: string) => { const roundedAmount = Number( @@ -514,33 +542,27 @@ export const TradeForm: React.FC = ({
diff --git a/src/app/pages/LiquidityMining/components/RemoveLiquidityDialog/RemoveLiquidityDialogV1.tsx b/src/app/pages/LiquidityMining/components/RemoveLiquidityDialog/RemoveLiquidityDialogV1.tsx index 3fba68e06..7d58aef97 100644 --- a/src/app/pages/LiquidityMining/components/RemoveLiquidityDialog/RemoveLiquidityDialogV1.tsx +++ b/src/app/pages/LiquidityMining/components/RemoveLiquidityDialog/RemoveLiquidityDialogV1.tsx @@ -242,7 +242,7 @@ export const RemoveLiquidityDialogV1: React.FC = disabled={ tx.loading || !valid || !canInteract || removeliquidityLocked } - dataActionId={`yieldFarm-deposit-confirmButton-${pool.assetA}`} + dataActionId={`yieldFarm-withdraw-confirmButton-${pool.assetA}`} className="tw-w-full tw-mt-2" /> )} diff --git a/src/app/pages/LiquidityMining/components/RemoveLiquidityDialog/index.tsx b/src/app/pages/LiquidityMining/components/RemoveLiquidityDialog/index.tsx index 1e3f5401f..0a8a620b2 100644 --- a/src/app/pages/LiquidityMining/components/RemoveLiquidityDialog/index.tsx +++ b/src/app/pages/LiquidityMining/components/RemoveLiquidityDialog/index.tsx @@ -184,7 +184,7 @@ export const RemoveLiquidityDialog: React.FC = ({ tx.loading || !valid || !canInteract || removeLiquidityLocked } className="tw-rounded-lg" - data-action-id="yieldFarm-liquidityModal-confirm" + data-action-id={`yieldFarm-withdraw-confirmButton-${pool.assetA}`} /> )} From 1beee40e74a3ee8df02140e57da03d3bf597c021 Mon Sep 17 00:00:00 2001 From: soulBit Date: Fri, 24 Jun 2022 12:26:33 +0100 Subject: [PATCH 16/38] chore: add Apollo poll interval constant --- src/utils/classifiers.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/utils/classifiers.ts b/src/utils/classifiers.ts index 309c5c13e..d20a9166b 100644 --- a/src/utils/classifiers.ts +++ b/src/utils/classifiers.ts @@ -167,3 +167,5 @@ export const learnMoreYieldFarming = 'https://wiki.sovryn.app/en/sovryn-dapp/market-making#yield-farming'; export const learnMoreLending = 'https://wiki.sovryn.app/en/sovryn-dapp/market-making'; + +export const APOLLO_POLL_INTERVAL = 60e3; From 7865ef0f3e1affc76cefbf36b6f92a35554dbb31 Mon Sep 17 00:00:00 2001 From: Pietro Maximoff <74987028+pietro-maximoff@users.noreply.github.com> Date: Fri, 24 Jun 2022 14:42:28 +0300 Subject: [PATCH 17/38] [Spot] - remove unused component (#2289) --- .../components/PriceHistory/index.tsx | 50 ------------------- 1 file changed, 50 deletions(-) delete mode 100644 src/app/pages/SpotTradingPage/components/PriceHistory/index.tsx diff --git a/src/app/pages/SpotTradingPage/components/PriceHistory/index.tsx b/src/app/pages/SpotTradingPage/components/PriceHistory/index.tsx deleted file mode 100644 index cee79825f..000000000 --- a/src/app/pages/SpotTradingPage/components/PriceHistory/index.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import React, { useEffect, useState } from 'react'; -import axios from 'axios'; -import { backendUrl, currentChainId } from 'utils/classifiers'; -import { useTranslation } from 'react-i18next'; -import { translations } from 'locales/i18n'; - -const url = backendUrl[currentChainId]; - -export function PriceHistory() { - const { t } = useTranslation(); - const [currentPrice, setCurrentPrice] = useState(-1); - const [turnover, setTurnover] = useState(-1); - useEffect(() => { - axios - .get(url + '/sov/trading-volume') - .then(({ data }) => { - setTurnover(data?.total?.sov); - }) - .catch(console.error); - }, []); - - useEffect(() => { - const getPrice = () => - axios - .get(url + '/sov/current-price') - .then(({ data }) => setCurrentPrice(data?.price * 1e8)) - .catch(console.error); - - getPrice(); - - const intervalId = setInterval(() => getPrice(), 30000); - - return () => clearInterval(intervalId); - }, []); - - return ( -
-
- {t(translations.spotTradingPage.priceHistory.turnover)}:{' '} - {turnover !== null && turnover > -1 && ( - {Number(turnover.toFixed(2)).toLocaleString()} SOV - )} -
-
- {t(translations.spotTradingPage.priceHistory.lastTradedPrice)}:{' '} - {currentPrice > -1 && {currentPrice.toLocaleString()} sats} -
-
- ); -} From 843b1867a48a9b90a78381f68a570492c9e120f1 Mon Sep 17 00:00:00 2001 From: tiltom Date: Mon, 27 Jun 2022 14:58:35 +0200 Subject: [PATCH 18/38] Perpetuals - design adjustments (#2291) * Restyle order cost * Restyle position buttons * Fix build warnings --- .../components/DataCard/index.tsx | 33 +- .../components/TradeFormStep.tsx | 7 +- .../components/NewPositionCard/index.tsx | 4 - .../components/TradeForm/index.module.scss | 28 +- .../components/TradeForm/index.tsx | 713 +++++++++--------- .../hooks/usePerpetual_analyseTrade.ts | 24 +- 6 files changed, 423 insertions(+), 386 deletions(-) diff --git a/src/app/pages/PerpetualPage/components/DataCard/index.tsx b/src/app/pages/PerpetualPage/components/DataCard/index.tsx index 6eb0763cd..fcf8a6941 100644 --- a/src/app/pages/PerpetualPage/components/DataCard/index.tsx +++ b/src/app/pages/PerpetualPage/components/DataCard/index.tsx @@ -3,7 +3,7 @@ import React, { ReactNode } from 'react'; import { ReactComponent as Xmark } from 'assets/images/xmark.svg'; type DataCardProps = { - title: ReactNode; + title?: ReactNode; hasCustomHeight?: boolean; hasCustomWidth?: boolean; className?: string; @@ -25,27 +25,30 @@ export const DataCard: React.FC = ({ }) => (
-
-

- {title} -

- {onClose && ( -
- -
- )} -
+ {title && ( +
+

+ {title} +

+ {onClose && ( +
+ +
+ )} +
+ )}
= ({ changeTo, @@ -30,7 +31,11 @@ export const TradeFormStep: TransitionStep = ({ ]); return ( -
+
{isDisabled && (
diff --git a/src/app/pages/PerpetualPage/components/NewPositionCard/index.tsx b/src/app/pages/PerpetualPage/components/NewPositionCard/index.tsx index 26b6a635d..c6a46aff2 100644 --- a/src/app/pages/PerpetualPage/components/NewPositionCard/index.tsx +++ b/src/app/pages/PerpetualPage/components/NewPositionCard/index.tsx @@ -1,8 +1,6 @@ import { useWalletContext } from '@sovryn/react-wallet'; import React, { useCallback, useEffect, useMemo, useState } from 'react'; -import { useTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; -import { translations } from '../../../../../locales/i18n'; import { TradingPosition } from '../../../../../types/trading-position'; import { PerpetualPairDictionary, @@ -54,7 +52,6 @@ const StepComponents = { }; export const NewPositionCard: React.FC = () => { - const { t } = useTranslation(); const dispatch = useDispatch(); const { connected } = useWalletContext(); const { pairType, collateral } = useSelector(selectPerpetualPage); @@ -175,7 +172,6 @@ export const NewPositionCard: React.FC = () => { return ( diff --git a/src/app/pages/PerpetualPage/components/TradeForm/index.module.scss b/src/app/pages/PerpetualPage/components/TradeForm/index.module.scss index 7f0184967..a93a85352 100644 --- a/src/app/pages/PerpetualPage/components/TradeForm/index.module.scss +++ b/src/app/pages/PerpetualPage/components/TradeForm/index.module.scss @@ -1,5 +1,6 @@ .tradeTypeButton { - @apply tw-px-3 tw-py-1.5 tw-text-sm tw-text-white tw-rounded-lg tw-font-medium tw-opacity-75 tw-bg-transparent; + @apply tw-py-1.5 tw-text-sm tw-text-white tw-rounded-lg tw-font-medium tw-opacity-75 tw-bg-transparent; + width: 4.75rem; &:hover { @apply tw-opacity-100 tw-font-semibold tw-transition-opacity tw-duration-300; @@ -9,3 +10,28 @@ @apply tw-bg-gray-7 tw-font-semibold tw-opacity-100 tw-font-semibold; } } + +.positionButton { + @apply tw-w-full tw-font-semibold tw-opacity-50 tw-text-base tw-text-white tw-bg-gray-1 tw-rounded-t tw-border-t-2 tw-border-transparent; + height: 3.125rem; + + &:hover { + @apply tw-opacity-100; + } + + &.active { + @apply tw-bg-gray-2.5 tw-opacity-100; + } + + &.long { + &.active { + @apply tw-border-trade-long; + } + } + + &.short { + &.active { + @apply tw-border-trade-short; + } + } +} diff --git a/src/app/pages/PerpetualPage/components/TradeForm/index.tsx b/src/app/pages/PerpetualPage/components/TradeForm/index.tsx index 3f739d28a..f7bd70fdc 100644 --- a/src/app/pages/PerpetualPage/components/TradeForm/index.tsx +++ b/src/app/pages/PerpetualPage/components/TradeForm/index.tsx @@ -518,298 +518,252 @@ export const TradeForm: React.FC = ({ disabled && 'tw-pointer-events-none', )} > -
+
-
- +
+
+ - + - -
-
- - - -
- +
+
+ + + +
+ +
- -
+ +
-
- - - - -
+
+ + + + +
-
- - - -
- + + + +
+ +
+
- -
- - {isLimitOrder && ( - <> -
- - - -
- + {isLimitOrder && ( + <> +
+ + + + +
+ +
+
- -
-
- - - - - {t(translations.perpetualPage.tradeForm.labels.days)} - - -
- - )} +
+ + + + + {t(translations.perpetualPage.tradeForm.labels.days)} + + +
+ + )} -
- - - - - - {(!pair.isQuanto || isMarketOrder) && ( +
+ + + + - )} - - } - > - - -
-
- - - - - - - - } + {(!pair.isQuanto || isMarketOrder) && ( + + )} + + } + > + + +
+
- - -
- - {isLimitOrder && ( -
= ({ minDecimals={8} maxDecimals={8} mode={AssetValueMode.auto} - value={perpParameters.fReferralRebateCC} + value={tradingFee} assetString={collateralName} /> = ({ minDecimals={2} maxDecimals={2} mode={AssetValueMode.auto} - value={ - perpParameters.fReferralRebateCC / quoteToCollateralFactor - } + value={tradingFee / quoteToCollateralFactor} assetString={pair.quoteAsset} isApproximation /> @@ -842,114 +794,165 @@ export const TradeForm: React.FC = ({ minDecimals={4} maxDecimals={4} mode={AssetValueMode.auto} - value={perpParameters.fReferralRebateCC} + value={tradingFee} assetString={collateralName} />
- )} - - - {isMarketOrder && ( - <> - - - onChangeKeepPositionLeverage(!keepPositionLeverage) + {isLimitOrder && ( +
+ + + + + + + } - disabled={!hasOpenTrades} - label={t( - translations.perpetualPage.tradeForm.labels + > + + +
+ )} + + + + {isMarketOrder && ( + <> + - -
- -
+
+
+ +
- - - )} + + + )} - {Number(amount) > 0 && ( - - )} -
- {!inMaintenance ? ( - - ) : ( - - x - , - ]} - /> - } - className="tw-mb-0 tw-pb-0" - /> + {Number(amount) > 0 && ( + )} +
+ {!inMaintenance ? ( + + ) : ( + + x + , + ]} + /> + } + className="tw-mb-0 tw-pb-0" + /> + )} +
); diff --git a/src/app/pages/PerpetualPage/hooks/usePerpetual_analyseTrade.ts b/src/app/pages/PerpetualPage/hooks/usePerpetual_analyseTrade.ts index ac74ad50b..41bf7afec 100644 --- a/src/app/pages/PerpetualPage/hooks/usePerpetual_analyseTrade.ts +++ b/src/app/pages/PerpetualPage/hooks/usePerpetual_analyseTrade.ts @@ -71,6 +71,8 @@ export const usePerpetual_analyseTrade = ( availableBalance, } = perpetuals[pair.id]; + const relayerFee = perpParameters.fReferralRebateCC; + const { leverage: leverageTarget, size: amountTarget, @@ -115,16 +117,17 @@ export const usePerpetual_analyseTrade = ( let orderCost = Math.max(0, marginChange); if (isLimitOrder) { - orderCost = getEstimatedMarginCollateralForLimitOrder( - perpParameters, - ammState, - trade.leverage, - amountChange, - numberFromWei(trade.limit), - trade.trigger && trade.trigger !== '0' - ? numberFromWei(trade.trigger) - : undefined, - ); + orderCost = + getEstimatedMarginCollateralForLimitOrder( + perpParameters, + ammState, + trade.leverage, + amountChange, + numberFromWei(trade.limit), + trade.trigger && trade.trigger !== '0' + ? numberFromWei(trade.trigger) + : undefined, + ) + relayerFee; } else if (amountChange !== 0) { orderCost = getRequiredMarginCollateralWithGasFees( leverageTarget, @@ -186,6 +189,7 @@ export const usePerpetual_analyseTrade = ( requiredAllowance, availableBalance, limitOrdersCount, + relayerFee, useMetaTransactions, ]); From f902fa440144549e46fbf0d2ce50bca329028279 Mon Sep 17 00:00:00 2001 From: tiltom Date: Mon, 27 Jun 2022 15:53:16 +0200 Subject: [PATCH 19/38] Perpetuals - competition (#2256) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Do not disable TradeForm when users have open positions * Remove Edit size dialog * Enable Limit and add Stop option * Limit and Stop orders initial implementation * Create Expiry component * Adjust CloseDialog and TradeForm submit button * Restrict leverage for limit and stop orders * Create ResultingPosition section * Fix review remarks * [Perpetuals] refactor usePerpetual_executeTransaction * Fix liquidation price calculation in ResultingPosition * Add Keep Position Leverage functionality * [Perpetual] implement limitOrder transaction type * [Perpetuals] update @sovryn/perpetual-swap * [Perpetuals] WIP implement limitOrder transactions * [Perpetuals] fix pair selector mark price label * [Perpetuals] rename usePerpetual_executeTransaction to …_transaction * Use new version of perpetual-swap package * [Perpetuals] implement cancelLimitOrder * Send orders with Keep position leverage if selected * Get rid of some console warnings and logs * Adjust Review dialog * Fix EditLeverage action * [Perpetuals] fix limit & trigger price stuck at 0 * [Perpetuals] fix limitOrders and isPerpetualTrade * Fix review remarks * rebranched from feat/perpetuals_limit_orders_main * Add the rest of the fields * Rewrite data fetching * Unify row action components * Cleaning up * Fix review remarks * Do not disable TradeForm when users have open positions * Remove Edit size dialog * Enable Limit and add Stop option * Limit and Stop orders initial implementation * Create Expiry component * Adjust CloseDialog and TradeForm submit button * Restrict leverage for limit and stop orders * Create ResultingPosition section * Fix review remarks * Fix liquidation price calculation in ResultingPosition * Add Keep Position Leverage functionality * Use new version of perpetual-swap package * Send orders with Keep position leverage if selected * Get rid of some console warnings and logs * Adjust Review dialog * Fix EditLeverage action * Fix review remarks * Update the addresses * Update paymaster address * [Perpetuals] update limit order book * Use new properties * [Perpetuals] implement per pair limitOrderBook contracts * [Perpetuals] implement Cancel Order, fix limit order having trigger * [Perpetuals] fix crash because of RPC being offline * Adjust labels and get rid of exec size * Add trigger price field to the table * Preparation for limit orders fetching * Small adjustments * Adjust limit orders displaying * Adjust not connected state text * [Perpetuals] update abis and fix queryLiqPoolId output type * Fix review remarks * Update contracts * Create the hook and store isAddressWhitelited in the state * Disable TradeForm and view account balance if user is not whitelisted * Fix toasts * Update RPCs * [Perpetuals] implement requiredAllowance based on existing orders * [Perpetuals] fix repeated signature requests * [Perpetuals] fix TradeForm and -Review * [Perpetuals] remove console.log * [Perpetuals] fix duplicate signature requests * [Perpetual] fix open order refresh after successful limit order tx * [Perpetuals] add limit order toast * [Perpetuals] update trade gas limit * [Perpetuals] fix code style * [Tracking] fix addVisitSaga by catching errors * Show limit orders tx id in history tables * Make sure that items in Recent trades table have unique keys * [Perpetuals] update perpUtils * [Perpetuals] enable RSK transfer * [Perpetual] update contracts * [Perpetuals] update contracts * [Perpetuals] refactor analysis and keep leverage * [Perpetuals] fix Trade entryPrice and averagePrice * [Perpetual] fix resulting leverage * [Perpetual] fix orderCost and marginTarget calculations * [Perpetual] fix liquidation price * [Perpetual] hide Trade Summary on close and limit/stop trades * [Perpetual] fix trade flag number overflow * [Perpetual] fix validation and edit leverage * [Perpetual] fix edit leverage and edit margin review orderCost * [Perpetual] fix Limit & Stop order analysis * [Perpetual] fix market order leverage * [Perpetual] fix close position pairType and keepPositionLeverage * [Perpetual] extract ValidationHint * [Perpetual] fix review remarks * [Perpetual] fix limit price * [Perpetual] fix Close Trade review * [Perpetual] disable thegraph node * Fix position size color * Fix validation messages * Fix Open Orders sorting * Do not display approx USD value for quanto limit orders * Do not display ValidationHint in case of cancel limit order reviews * Add pagination to Open Orders table and display up to 1000 items * Display ValidationHint error when user is about to exceed the maximal amount of limit orders * Fix order history table * Fix NetworkRibbon default behaviour for perpetuals when bridgeId is not yet set * Initial commit * Get rid of RegisterDialog * Small cleanup * Hide second perpetual pair * Adjust total pnl calculation * Fix link back on the competition page * Adjust comments * Mark BNB perp as deprecated * Fix review remarks * Use new subgraph for Leaderboard (#2245) * Update leaderboard data query * Adjust calculations * Perpetuals Leaderboard adjustments * Total profit formula adjustments * Fix review remarks * Use new util method in total pnl calculation * Last trade profit formula adjustments * Adjust the trade label Co-authored-by: ShynRou Co-authored-by: Tudor Galt Co-authored-by: Victor Creed <69458664+creed-victor@users.noreply.github.com> --- package.json | 2 +- src/app/components/HeaderLabs/index.tsx | 17 +- src/app/components/LinkToExplorer/index.tsx | 7 +- src/app/hooks/useIntersection.ts | 29 ++ src/app/index.tsx | 18 +- .../PerpetualPage/PerpetualPageContainer.tsx | 19 +- .../CompetitionPageContainer.tsx | 178 ++++++++++++ .../components/Leaderboard/TraderRow.tsx | 85 ++++++ .../components/Leaderboard/index.module.scss | 3 + .../components/Leaderboard/index.tsx | 270 ++++++++++++++++++ .../components/CompetitionPage/index.tsx | 11 + .../components/CompetitionPage/types.ts | 20 ++ .../components/PairSelector/index.tsx | 4 +- .../hooks/graphql/useGetLeaderboardData.ts | 52 ++++ src/locales/en/translation.json | 27 ++ src/utils/classifiers.ts | 2 + .../dictionaries/perpetual-pair-dictionary.ts | 2 +- yarn.lock | 8 +- 18 files changed, 734 insertions(+), 20 deletions(-) create mode 100644 src/app/hooks/useIntersection.ts create mode 100644 src/app/pages/PerpetualPage/components/CompetitionPage/CompetitionPageContainer.tsx create mode 100644 src/app/pages/PerpetualPage/components/CompetitionPage/components/Leaderboard/TraderRow.tsx create mode 100644 src/app/pages/PerpetualPage/components/CompetitionPage/components/Leaderboard/index.module.scss create mode 100644 src/app/pages/PerpetualPage/components/CompetitionPage/components/Leaderboard/index.tsx create mode 100644 src/app/pages/PerpetualPage/components/CompetitionPage/index.tsx create mode 100644 src/app/pages/PerpetualPage/components/CompetitionPage/types.ts create mode 100644 src/app/pages/PerpetualPage/hooks/graphql/useGetLeaderboardData.ts diff --git a/package.json b/package.json index 05fc343ec..862ff3a37 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@reduxjs/toolkit": "1.5.1", "@rsksmart/rsk3": "0.3.4", "@sovryn/charting-library": "1.0.0", - "@sovryn/perpetual-swap": "3.0.8", + "@sovryn/perpetual-swap": "3.0.9", "@sovryn/react-wallet": "2.2.5", "@svgr/webpack": "4.3.3", "@testing-library/jest-dom": "5.1.1", diff --git a/src/app/components/HeaderLabs/index.tsx b/src/app/components/HeaderLabs/index.tsx index 0c255730c..4af800868 100644 --- a/src/app/components/HeaderLabs/index.tsx +++ b/src/app/components/HeaderLabs/index.tsx @@ -1,5 +1,5 @@ -import React from 'react'; -import { Link } from 'react-router-dom'; +import React, { useMemo } from 'react'; +import { Link, useLocation } from 'react-router-dom'; import { usePageViews } from 'app/hooks/useAnalytics'; @@ -12,17 +12,25 @@ import { translations } from '../../../locales/i18n'; export type HeaderLabsProps = { helpLink?: string; + menus?: React.ReactNode; }; -export const HeaderLabs: React.FC = ({ helpLink }) => { +export const HeaderLabs: React.FC = ({ menus, helpLink }) => { const { t } = useTranslation(); + const location = useLocation(); usePageViews(); + const linkBackUrl = useMemo( + () => + location.pathname === '/perpetuals/competition' ? '/perpetuals' : '/', + [location.pathname], + ); + return (
- +
@@ -31,6 +39,7 @@ export const HeaderLabs: React.FC = ({ helpLink }) => {
+ <>{menus}
{helpLink && ( = ({ @@ -37,7 +38,11 @@ export const LinkToExplorer: React.FC = ({ return ( diff --git a/src/app/hooks/useIntersection.ts b/src/app/hooks/useIntersection.ts new file mode 100644 index 000000000..7f23d4fd4 --- /dev/null +++ b/src/app/hooks/useIntersection.ts @@ -0,0 +1,29 @@ +import { useState, useEffect } from 'react'; + +export const useIntersection = ( + element: Element | null, + threshold: string = '0px', +) => { + const [isVisible, setIsVisible] = useState(false); + + useEffect(() => { + if (!element) { + return; + } + + const observer = new IntersectionObserver( + ([entry]) => { + setIsVisible(entry.isIntersecting); + }, + { rootMargin: threshold }, + ); + + observer.observe(element); + + return () => { + observer.unobserve(element); + }; + }, [element, threshold]); + + return isVisible; +}; diff --git a/src/app/index.tsx b/src/app/index.tsx index 17dca9e8a..16c8f5584 100644 --- a/src/app/index.tsx +++ b/src/app/index.tsx @@ -51,6 +51,7 @@ import { FastBtcPage } from './pages/FastBtcPage/Loadable'; import { PageContainer } from './containers/PageContainer'; import 'react-toastify/dist/ReactToastify.css'; import { PerpetualPageLoadable } from './pages/PerpetualPage/Loadable'; +import { CompetitionPage } from './pages/PerpetualPage/components/CompetitionPage'; const title = !isMainnet ? `Sovryn ${currentNetwork}` : 'Sovryn'; const showPerps = !isMainnet || isStaging; @@ -132,11 +133,18 @@ export function App() { component={FastBtcPage} /> {showPerps && ( - + <> + + + )} diff --git a/src/app/pages/PerpetualPage/PerpetualPageContainer.tsx b/src/app/pages/PerpetualPage/PerpetualPageContainer.tsx index 4e15c9656..2e28aab44 100644 --- a/src/app/pages/PerpetualPage/PerpetualPageContainer.tsx +++ b/src/app/pages/PerpetualPage/PerpetualPageContainer.tsx @@ -16,14 +16,17 @@ import { } from '../../../utils/dictionaries/perpetual-pair-dictionary'; import { TradingChart } from './components/TradingChart'; import { OpenPositionsTable } from './components/OpenPositionsTable'; -import { useHistory, useLocation } from 'react-router-dom'; +import { Link, useHistory, useLocation } from 'react-router-dom'; import { IPromotionLinkState } from '../../components/Promotions/components/PromotionCard/types'; import { selectPerpetualPage } from './selectors'; import { DataCard } from './components/DataCard'; import { AmmDepthChart } from './components/AmmDepthChart'; import { RecentTradesTable } from './components/RecentTradesTable'; import { ContractDetails } from './components/ContractDetails'; -import { isMainnet } from '../../../utils/classifiers'; +import { + isMainnet, + WIKI_PERPETUAL_FUTURES_LINK, +} from '../../../utils/classifiers'; import { ChainId } from '../../../types'; import { useWalletContext } from '@sovryn/react-wallet'; import { ProviderType } from '@sovryn/wallet'; @@ -152,7 +155,17 @@ export const PerpetualPageContainer: React.FC = () => { content={t(translations.perpetualPage.meta.description)} /> - + + {t(translations.competitionPage.nav.competition)} + + } + />
{ + const [isRegistered, setIsRegistered] = useState(false); + const [registeredTraders, setRegisteredTraders] = useState< + RegisteredTraderData[] + >([]); + + const history = useHistory(); + const dispatch = useDispatch(); + const walletContext = useWalletContext(); + const account = useAccount(); + const connected = useIsConnected(); + const { t } = useTranslation(); + + const getRegisteredWallets = useCallback(() => { + axios + .get(`${baseUrl}tradingCompetition`) + .then(res => { + if (res?.status === 200 && res.data) { + setRegisteredTraders(res.data); + } + }) + .catch(console.error); + }, []); + + useEffect(() => { + getRegisteredWallets(); + + if (walletContext.provider !== ProviderType.WEB3) { + walletContext.disconnect(); + } + + //set the bridge chain id to BSC + dispatch( + walletProviderActions.setBridgeChainId( + isMainnet ? ChainId.BSC_MAINNET : ChainId.BSC_TESTNET, + ), + ); + + return () => { + // Unset bridge settings + dispatch(walletProviderActions.setBridgeChainId(null)); + dispatch(actions.reset()); + }; + + // only run once on mounting + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + useEffect(() => { + if (!account || !connected || isRegistered) { + return; + } + + axios + .get(`${baseUrl}tradingCompetition/${account.toLowerCase()}`) + .then(res => { + if ( + res?.status === 200 && + res?.data?.walletAddress === account.toLowerCase() + ) + setIsRegistered(true); + }) + .catch(e => { + console.error(e); + setIsRegistered(false); + }); + }, [account, connected, isRegistered]); + + const pair = useMemo( + () => PerpetualPairDictionary.get(PerpetualPairType.BTCUSD), + [], + ); + + return ( + <> + + {t(translations.competitionPage.meta.title)} + + + + {t(translations.competitionPage.nav.perpetualSwap)} + + } + /> + +
+
+
+ +
+
+
+ {t(translations.competitionPage.rules.title)} +
+ +
+ +
+ {!connected && ( +
+
+
+
+ + + ); +}; diff --git a/src/app/pages/PerpetualPage/components/CompetitionPage/components/Leaderboard/TraderRow.tsx b/src/app/pages/PerpetualPage/components/CompetitionPage/components/Leaderboard/TraderRow.tsx new file mode 100644 index 000000000..ab2470930 --- /dev/null +++ b/src/app/pages/PerpetualPage/components/CompetitionPage/components/Leaderboard/TraderRow.tsx @@ -0,0 +1,85 @@ +import React, { forwardRef } from 'react'; + +import { LeaderboardData } from 'app/pages/PerpetualPage/components/CompetitionPage/types'; +import { prettyTx } from 'utils/helpers'; +import { toNumberFormat } from 'utils/display-text/format'; +import classNames from 'classnames'; +import { LinkToExplorer } from '../../../../../../components/LinkToExplorer'; +import { PERPETUAL_CHAIN_ID } from '../../../../types'; + +interface ITraderRowProps { + data: LeaderboardData; + isUser: boolean; +} + +export const TraderRow = forwardRef( + ({ data, isUser }, ref) => ( +
+
{data.rank}
+
+
+ +
+
+
0 ? 'tw-text-success' : 'tw-text-warning', + 'tw-px-1 tw-w-2/12 tw-my-auto tw-text-center', + )} + > + {data.openedPositions} +
+
+ {!data.lastTrade ? ( + '-' + ) : ( + <> + BTC/USD: + + {toNumberFormat(data.lastTrade, 2)}% + + + )} +
+
+ {toNumberFormat(data.totalPnL, 2)}% +
+
+ ), +); + +const getColor = (value: number) => { + if (value > 0) { + return 'tw-text-trade-long'; + } else if (value < 0) { + return 'tw-text-trade-short'; + } + return 'tw-sov-white'; +}; diff --git a/src/app/pages/PerpetualPage/components/CompetitionPage/components/Leaderboard/index.module.scss b/src/app/pages/PerpetualPage/components/CompetitionPage/components/Leaderboard/index.module.scss new file mode 100644 index 000000000..be373d81d --- /dev/null +++ b/src/app/pages/PerpetualPage/components/CompetitionPage/components/Leaderboard/index.module.scss @@ -0,0 +1,3 @@ +.leaderboardContainer { + max-height: 545px; +} diff --git a/src/app/pages/PerpetualPage/components/CompetitionPage/components/Leaderboard/index.tsx b/src/app/pages/PerpetualPage/components/CompetitionPage/components/Leaderboard/index.tsx new file mode 100644 index 000000000..cc16ff02f --- /dev/null +++ b/src/app/pages/PerpetualPage/components/CompetitionPage/components/Leaderboard/index.tsx @@ -0,0 +1,270 @@ +import React, { + useEffect, + useState, + useRef, + useContext, + useCallback, +} from 'react'; +import classNames from 'classnames'; + +import { TraderRow } from './TraderRow'; +import { useIntersection } from 'app/hooks/useIntersection'; +import { + LeaderboardData, + RegisteredTraderData, +} from 'app/pages/PerpetualPage/components/CompetitionPage/types'; +import { useAccount } from 'app/hooks/useAccount'; +import { useGetLeaderboardData } from 'app/pages/PerpetualPage/hooks/graphql/useGetLeaderboardData'; +import styles from './index.module.scss'; +import { getTraderPnLInBC } from 'app/pages/PerpetualPage/utils/perpUtils'; +import { PerpetualPairType } from 'utils/dictionaries/perpetual-pair-dictionary'; +import { PerpetualQueriesContext } from 'app/pages/PerpetualPage/contexts/PerpetualQueriesContext'; +import { BigNumber } from 'ethers/lib/ethers'; +import { SkeletonRow } from 'app/components/Skeleton/SkeletonRow'; +import { useTranslation } from 'react-i18next'; +import { translations } from 'locales/i18n'; +import debounce from 'lodash.debounce'; +import { ABK64x64ToFloat } from '@sovryn/perpetual-swap/dist/scripts/utils/perpMath'; +import { + getBase2CollateralFX, + getMarginBalanceAtClosing, +} from '@sovryn/perpetual-swap/dist/scripts/utils/perpUtils'; +import { PerpetualPair } from 'utils/models/perpetual-pair'; +import { Nullable } from 'types'; + +interface ILeaderboardProps { + data: RegisteredTraderData[]; + showUserRow: boolean; + pair: PerpetualPair; +} + +export const Leaderboard: React.FC = ({ + data, + showUserRow, + pair, +}) => { + const { t } = useTranslation(); + const userRowRef = useRef(null); + const userRowVisible = useIntersection(userRowRef.current); + const account = useAccount(); + const [items, setItems] = useState([]); + const [userData, setUserData] = useState>(null); + const [loaded, setLoaded] = useState(false); + + const { perpetuals } = useContext(PerpetualQueriesContext); + const { ammState, perpetualParameters } = perpetuals[pair.id]; + + const { data: leaderboardData } = useGetLeaderboardData( + PerpetualPairType.BTCUSD, + data.map(val => val.walletAddress), + ); + + // throttle function prevents the exhaustive deps check + // eslint-disable-next-line react-hooks/exhaustive-deps + const updateItems = useCallback( + debounce(() => { + if ( + !data || + !perpetualParameters?.poolId || + !ammState || + leaderboardData === undefined + ) { + return; + } + + const run = async () => { + const items: LeaderboardData[] = []; + + const baseToCollateral = getBase2CollateralFX(ammState, false); + + for (const item of data) { + const trader = leaderboardData?.traders.find( + row => row.id.toLowerCase() === item.walletAddress.toLowerCase(), + ); + + const traderState = trader?.traderStates[0]; + + const entry: LeaderboardData = { + rank: '-', + userName: item.userName, + walletAddress: item.walletAddress, + openedPositions: trader?.positionsTotalCount || 0, + lastTrade: 0, + totalPnL: 0, + totalPnLCC: 0, + totalFundingPaymentCC: 0, + }; + + if (trader?.positionsTotalCount) { + entry.totalFundingPaymentCC = ABK64x64ToFloat( + BigNumber.from(trader.totalFundingPaymentCC || '0'), + ); + entry.totalPnLCC = ABK64x64ToFloat( + BigNumber.from(traderState.totalPnLCC || '0'), + ); + + entry.realizedProfitCC = + entry.totalPnLCC! - entry.totalFundingPaymentCC!; + + entry.unrealizedPnLCC = 0; + + const balance = ABK64x64ToFloat( + BigNumber.from(traderState.balance || '0'), + ); + const capitalUsed = ABK64x64ToFloat( + BigNumber.from(traderState.capitalUsed || '0'), + ); + + if (trader.positions && traderState) { + const parsedTraderState = { + marginBalanceCC: ABK64x64ToFloat( + BigNumber.from(traderState.marginBalanceCC), + ), + availableMarginCC: ABK64x64ToFloat( + BigNumber.from(traderState.availableMarginCC), + ), + availableCashCC: ABK64x64ToFloat( + BigNumber.from(traderState.availableCashCC), + ), + marginAccountCashCC: ABK64x64ToFloat( + BigNumber.from(traderState.marginAccountCashCC), + ), + marginAccountPositionBC: ABK64x64ToFloat( + BigNumber.from(traderState.marginAccountPositionBC), + ), + marginAccountLockedInValueQC: ABK64x64ToFloat( + BigNumber.from(traderState.marginAccountLockedInValueQC), + ), + fUnitAccumulatedFundingStart: ABK64x64ToFloat( + BigNumber.from(traderState.fUnitAccumulatedFundingStart), + ), + }; + + entry.unrealizedPnLCC = + getTraderPnLInBC( + parsedTraderState, + ammState, + perpetualParameters, + ) * baseToCollateral; + + const marginBalanceAtClosing = getMarginBalanceAtClosing( + parsedTraderState, + ammState, + perpetualParameters, + ); + + entry.totalPnL = + ((balance + marginBalanceAtClosing) / capitalUsed) * 100; + + entry.lastTrade = + ((marginBalanceAtClosing - + parsedTraderState.marginAccountCashCC) / + Math.abs(capitalUsed)) * + 100; + } + } + items.push(entry); + } + + return items + .sort((a, b) => { + if (a.openedPositions === 0 || b.openedPositions === 0) { + if (a.openedPositions === 0 && b.openedPositions === 0) { + return a.walletAddress.localeCompare(b.walletAddress); + } + return a.openedPositions === 0 ? 1 : -1; + } + return Math.sign(b.totalPnL - a.totalPnL); + }) + .map((val, index) => ({ + ...val, + rank: (index + 1).toString(), + })); + }; + + setLoaded(false); + run() + .then(rows => { + // Log full results, to debug PnL values. Uncomment it only for debugging reasons. + //console.log(rows); + setItems(rows); + setLoaded(true); + if (account) { + const userRow = rows.find( + val => val.walletAddress.toLowerCase() === account.toLowerCase(), + ); + if (userRow) { + setUserData(userRow); + } + } + }) + .catch(error => { + console.error(error); + setLoaded(true); + }); + }), + [account, data, leaderboardData, ammState, perpetualParameters], + ); + + useEffect(() => updateItems(), [updateItems]); + + return ( + <> +
+
+
+ {t(translations.competitionPage.table.rank)} +
+
+ {t(translations.competitionPage.table.name)} +
+
+ {t(translations.competitionPage.table.positions)} +
+
+ {t(translations.competitionPage.table.trade)} +
+
+ {t(translations.competitionPage.table.total)} +
+
+
+ {items.map(val => { + const isUser = val.walletAddress === account?.toLowerCase(); + return ( + + ); + })} + {(!data || (!loaded && !items?.length)) && } + {loaded && items && items.length === 0 && ( +
+ {t(translations.competitionPage.table.empty)} +
+ )} +
+
+
+
...
+
+ {userData && } +
+
+
+
+ + ); +}; diff --git a/src/app/pages/PerpetualPage/components/CompetitionPage/index.tsx b/src/app/pages/PerpetualPage/components/CompetitionPage/index.tsx new file mode 100644 index 000000000..0db56b333 --- /dev/null +++ b/src/app/pages/PerpetualPage/components/CompetitionPage/index.tsx @@ -0,0 +1,11 @@ +import React from 'react'; +import { CompetitionPageContainer } from './CompetitionPageContainer'; +import { GraphQLProvider } from '../../contexts/GraphQLProvider'; + +export const CompetitionPage: React.FC = () => { + return ( + + + + ); +}; diff --git a/src/app/pages/PerpetualPage/components/CompetitionPage/types.ts b/src/app/pages/PerpetualPage/components/CompetitionPage/types.ts new file mode 100644 index 000000000..2dfbc2aec --- /dev/null +++ b/src/app/pages/PerpetualPage/components/CompetitionPage/types.ts @@ -0,0 +1,20 @@ +export type LeaderboardData = { + rank: string; + userName: string | null; + walletAddress: string; + openedPositions: number; + lastTrade: number; + totalPnL: number; + totalPnLCC?: number; + totalFundingPaymentCC?: number; + realizedProfitCC?: number; + unrealizedPnLCC?: number; +}; + +export type RegisteredTraderData = { + createdAt: string; //timestamp + id: string; //uuid + updatedAt: string; //timestamp + userName: string | null; + walletAddress: string; +}; diff --git a/src/app/pages/PerpetualPage/components/PairSelector/index.tsx b/src/app/pages/PerpetualPage/components/PairSelector/index.tsx index 91e71e1d8..177a4ecc0 100644 --- a/src/app/pages/PerpetualPage/components/PairSelector/index.tsx +++ b/src/app/pages/PerpetualPage/components/PairSelector/index.tsx @@ -15,7 +15,9 @@ type PairSelectorProps = { onChange: (pair: PerpetualPairType) => void; }; -const perpetualPairs = PerpetualPairDictionary.list(); +const perpetualPairs = PerpetualPairDictionary.list().filter( + pair => !pair.deprecated, +); export const PairSelector: React.FC = ({ pair, diff --git a/src/app/pages/PerpetualPage/hooks/graphql/useGetLeaderboardData.ts b/src/app/pages/PerpetualPage/hooks/graphql/useGetLeaderboardData.ts new file mode 100644 index 000000000..42b573fd8 --- /dev/null +++ b/src/app/pages/PerpetualPage/hooks/graphql/useGetLeaderboardData.ts @@ -0,0 +1,52 @@ +import { useMemo } from 'react'; +import { useQuery, gql } from '@apollo/client'; +import { + PerpetualPairType, + PerpetualPairDictionary, +} from '../../../../../utils/dictionaries/perpetual-pair-dictionary'; + +/** + * Hook to retrieve trade data for a list of trader IDs (wallet addresses) + */ + +export function useGetLeaderboardData( + pairType: PerpetualPairType, + traderIDs: string[], +) { + const pair = useMemo(() => PerpetualPairDictionary.get(pairType), [pairType]); + const TRADER_DATA_QUERY = gql` + { + traders( + where: {id_in: ${JSON.stringify(traderIDs)}} + first: ${traderIDs.length} + ){ + id + totalFundingPaymentCC + positionsTotalCount + traderStates (where: {perpetual: ${JSON.stringify(pair.id)}}) { + marginBalanceCC + availableMarginCC + availableCashCC + marginAccountCashCC + marginAccountPositionBC + marginAccountLockedInValueQC + fUnitAccumulatedFundingStart + totalPnLCC + balance + capitalUsed + } + positions(where: {perpetual: ${JSON.stringify( + pair.id, + )}}, orderBy: lastChanged, orderDirection: desc) { + currentPositionSizeBC + totalPnLCC + isClosed + lastChanged + } + } + } + `; + const traderDataQuery = useQuery(TRADER_DATA_QUERY); + //console.log(traderDataQuery?.data); + return traderDataQuery; +} diff --git a/src/locales/en/translation.json b/src/locales/en/translation.json index 2f4b5c367..aa0be5cee 100644 --- a/src/locales/en/translation.json +++ b/src/locales/en/translation.json @@ -2778,5 +2778,32 @@ "closingPrice": "The exit price is 95% of the value of the closing price shown. This difference is due to the discount applied as an incentive for liquidators." }, "profitTooltip": "Closing position would withdraw one of these:" + }, + "competitionPage": { + "meta": { + "title": "Trading Competition", + "description": "" + }, + "nav": { + "perpetualSwap": "Perpetuals", + "competition": "Competition" + }, + "rules": { + "title": "Trading Competition", + "reportBugs": "Please report bugs and issues here!" + }, + "registered": "You are registered! If you require some help, please click on the help button in the top right or post a message on our <0>discord.", + "cta": { + "connect": "Connect Wallet", + "compete": "Compete" + }, + "table": { + "rank": "Rank", + "name": "Name / Wallet Address", + "positions": "Positions opened", + "trade": "Current trade", + "total": "Total P/L", + "empty": "No one registered yet. You could be the first!" + } } } diff --git a/src/utils/classifiers.ts b/src/utils/classifiers.ts index d20a9166b..843343d05 100644 --- a/src/utils/classifiers.ts +++ b/src/utils/classifiers.ts @@ -140,6 +140,8 @@ export const WIKI_LIMIT_ORDER_LIMITS_LINK = 'https://wiki.sovryn.app/en/sovryn-dapp/limit-order-limitations'; export const WIKI_LIMIT_ORDER_WALLETS_LINK = 'https://wiki.sovryn.app/en/sovryn-dapp/limit-order-limitations#wallet-compatibility'; +export const WIKI_PERPETUAL_FUTURES_LINK = + 'https://wiki.sovryn.app/en/sovryn-dapp/perpetual-futures'; export const MILLION = 1000000; diff --git a/src/utils/dictionaries/perpetual-pair-dictionary.ts b/src/utils/dictionaries/perpetual-pair-dictionary.ts index a18b717af..044f61ef1 100644 --- a/src/utils/dictionaries/perpetual-pair-dictionary.ts +++ b/src/utils/dictionaries/perpetual-pair-dictionary.ts @@ -67,7 +67,7 @@ export class PerpetualPairDictionary { default: 1, }, }, - false, + true, true, ), ], diff --git a/yarn.lock b/yarn.lock index af7767da7..ca44da0e7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5427,10 +5427,10 @@ dependencies: debug "^4.3.1" -"@sovryn/perpetual-swap@3.0.8": - version "3.0.8" - resolved "https://registry.yarnpkg.com/@sovryn/perpetual-swap/-/perpetual-swap-3.0.8.tgz#05311b6046372b85a949b79f223946750c628786" - integrity sha512-83RWc+nt68uX264hYdcqm5wCojCdpdkWl4w/LN6L7JnNCrpKJ2Ce9wmRb1o9NXJfWGdbHc6qh/JOoXLD6Rbx5Q== +"@sovryn/perpetual-swap@3.0.9": + version "3.0.9" + resolved "https://registry.yarnpkg.com/@sovryn/perpetual-swap/-/perpetual-swap-3.0.9.tgz#9a716eade9ebd11aaa36d972d6fd95bedc3c11c7" + integrity sha512-ibkFEBvNv+2eQGgics+0mp9jEuQ8n28pBXQQehm17PCYhdAMjz3XfibZr4lSMppx8RGg0Ae30XnziuCpzPlMtg== dependencies: "@opengsn/provider" "^2.2.4" "@openzeppelin/contracts" "4.5.0" From 907ab3081ee1cc35261a38a7245b81f7592bf81f Mon Sep 17 00:00:00 2001 From: soulBit Date: Mon, 27 Jun 2022 15:42:42 +0100 Subject: [PATCH 20/38] fix: zusd pricefeed console errors (#2293) --- src/app/hooks/price-feeds/usePriceFeeds_tradingPairRates.ts | 2 +- src/utils/dictionaries/assets-dictionary.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/hooks/price-feeds/usePriceFeeds_tradingPairRates.ts b/src/app/hooks/price-feeds/usePriceFeeds_tradingPairRates.ts index 68a234a7b..17100abf8 100644 --- a/src/app/hooks/price-feeds/usePriceFeeds_tradingPairRates.ts +++ b/src/app/hooks/price-feeds/usePriceFeeds_tradingPairRates.ts @@ -24,7 +24,7 @@ const assetsWithoutOracle: Asset[] = [ Asset.ZUSD, ]; -const excludeAssets: Asset[] = [Asset.CSOV, Asset.RDOC, Asset.MYNT]; +const excludeAssets: Asset[] = [Asset.CSOV, Asset.RDOC, Asset.MYNT, Asset.ZUSD]; /** * use this only once diff --git a/src/utils/dictionaries/assets-dictionary.ts b/src/utils/dictionaries/assets-dictionary.ts index b219b4f0b..e1d3506ac 100644 --- a/src/utils/dictionaries/assets-dictionary.ts +++ b/src/utils/dictionaries/assets-dictionary.ts @@ -146,7 +146,7 @@ export class AssetsDictionary { ], [ Asset.ZUSD, - new AssetDetails(Asset.ZUSD, 'ZUSD', 'ZUSD', 18, 2, zusdIcon, true), + new AssetDetails(Asset.ZUSD, 'ZUSD', 'ZUSD', 18, 2, zusdIcon, false), ], ], ); From 78dd51ff55b2b58ba76355efb836459a41d7429d Mon Sep 17 00:00:00 2001 From: tiltom Date: Mon, 27 Jun 2022 21:03:46 +0200 Subject: [PATCH 21/38] Perpetuals - staging deployment preparation (#2292) * Fix the trading chart issue * Add mainnet graph configuration * Update mainnet addresses Co-authored-by: soulBit --- .../contexts/GraphQLProvider.tsx | 39 ++++++++++++------- .../hooks/graphql/useGetCandles.ts | 2 +- src/app/pages/PerpetualPage/types.ts | 14 +++---- src/utils/blockchain/contracts.ts | 7 ++-- 4 files changed, 37 insertions(+), 25 deletions(-) diff --git a/src/app/pages/PerpetualPage/contexts/GraphQLProvider.tsx b/src/app/pages/PerpetualPage/contexts/GraphQLProvider.tsx index 8d3b3dfe2..cb159012c 100644 --- a/src/app/pages/PerpetualPage/contexts/GraphQLProvider.tsx +++ b/src/app/pages/PerpetualPage/contexts/GraphQLProvider.tsx @@ -1,5 +1,6 @@ import React, { useState, useEffect } from 'react'; import { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client'; +import { isMainnet, isStaging } from 'utils/classifiers'; type GraphQLEndpoint = { graph: string; index?: string; isFallback?: boolean }; @@ -134,20 +135,32 @@ const evaluateEndpoint = async (endpoint: GraphQLEndpoint) => { return result; }; -// TODO: add Perpetual GraphQL mainnet urls // fallback endpoint has to always be the last entry. -const config: GraphQLEndpoint[] = [ - // { - // graph: - // 'https://api.thegraph.com/subgraphs/name/omerzam/perpetual-swaps-compete', - // index: 'https://api.thegraph.com/index-node/graphql', - // }, - { - graph: - 'https://sovryn-perps-subgraph.test.sovryn.app/subgraphs/name/DistributedCollective/Sovryn-perpetual-swaps-subgraph', - // isFallback: true, - }, -]; +const config: GraphQLEndpoint[] = + isMainnet || isStaging + ? [ + { + graph: + 'https://sovryn-perps-subgraph.sovryn.app/subgraphs/name/DistributedCollective/Sovryn-perpetual-swaps-subgraph/graphql', + }, + { + graph: + 'https://api.thegraph.com/subgraphs/name/distributedcollective/sovryn-perpetual-futures', + isFallback: true, + }, + ] + : [ + // { + // graph: + // 'https://api.thegraph.com/subgraphs/name/omerzam/perpetual-swaps-compete', + // index: 'https://api.thegraph.com/index-node/graphql', + // }, + { + graph: + 'https://sovryn-perps-subgraph.test.sovryn.app/subgraphs/name/DistributedCollective/Sovryn-perpetual-swaps-subgraph', + // isFallback: true, + }, + ]; type GraphQLProviderProps = { children: React.ReactNode; diff --git a/src/app/pages/PerpetualPage/hooks/graphql/useGetCandles.ts b/src/app/pages/PerpetualPage/hooks/graphql/useGetCandles.ts index b38abbfdd..776d8ef97 100644 --- a/src/app/pages/PerpetualPage/hooks/graphql/useGetCandles.ts +++ b/src/app/pages/PerpetualPage/hooks/graphql/useGetCandles.ts @@ -70,7 +70,7 @@ export const generateFirstCandleQuery = ( } orderBy: periodStartUnix orderDirection: asc - first: ${Math.max(candleNumber, MAX_CANDLE_COUNT)} + first: ${Math.min(candleNumber, MAX_CANDLE_COUNT)} ) { perpetualId open diff --git a/src/app/pages/PerpetualPage/types.ts b/src/app/pages/PerpetualPage/types.ts index 4f5882c9b..bccaa7420 100644 --- a/src/app/pages/PerpetualPage/types.ts +++ b/src/app/pages/PerpetualPage/types.ts @@ -4,7 +4,7 @@ import { PerpetualPairType } from '../../../utils/dictionaries/perpetual-pair-di import { Transaction } from 'ethers'; import { CheckAndApproveResult } from '../../../utils/sovryn/contract-writer'; import { getBridgeChainId } from '../BridgeDepositPage/utils/helpers'; -import { isMainnet } from '../../../utils/classifiers'; +import { isMainnet, isStaging } from '../../../utils/classifiers'; import { toWei } from '../../../utils/blockchain/math-helpers'; import { Validation } from './utils/contractUtils'; @@ -15,13 +15,13 @@ export const PERPETUAL_CHAIN = Chain.BSC; export const PERPETUAL_CHAIN_ID = getBridgeChainId(Chain.BSC) || ChainId.BSC_MAINNET; -export const PERPETUAL_PAYMASTER = isMainnet - ? '' // TODO: add mainnet paymaster address - : '0x402e4370f6871Ff59Db75aE578e038E101454dc1'; +export const PERPETUAL_PAYMASTER = + isMainnet || isStaging + ? '0xd537EB00E053Fc97A58f22b2FB6f064Bd4C10cCA' + : '0x402e4370f6871Ff59Db75aE578e038E101454dc1'; -export const PERPETUAL_GAS_PRICE_DEFAULT = isMainnet - ? undefined - : toWei(10, 'gwei'); +export const PERPETUAL_GAS_PRICE_DEFAULT = + isMainnet || isStaging ? undefined : toWei(10, 'gwei'); export enum PerpetualTradeType { MARKET = 'MARKET', diff --git a/src/utils/blockchain/contracts.ts b/src/utils/blockchain/contracts.ts index 9ff1bc536..be9fed982 100644 --- a/src/utils/blockchain/contracts.ts +++ b/src/utils/blockchain/contracts.ts @@ -328,19 +328,18 @@ export const contracts = { address: '0x0f279e810B95E0d425622b9b40D7bCD0B5C4B19d', abi: fastBtcMultisigAbi, }, - // TODO: add perpetual mainnet contracts perpetualManager: { - address: '0x15D155e8aDE68ED7f273770b47E2B2eA263861cF', + address: '0x86f586dc122d31E7654f89eb566B779C3D843e22', abi: perpetualManagerAbi, chainId: ChainId.BSC_MAINNET, }, PERPETUALS_token: { - address: '0x1431Aa8f066795d3aB94F8516B74FdCC5fD7897F', + address: '0x6a7F2d2e5D5756729e875c8F8fC254448E763Fdf', abi: marginTokenAbi, chainId: ChainId.BSC_MAINNET, }, perpetualLimitOrderBookBTCUSD: { - address: '0xF683eED9590E2f90fe991E9e5A736f8BEDEa84Cd', + address: '0x3ee8dAe27Feb809BD51eEdda749c3C2f1851e492', abi: perpetualLimitOrderBookAbi, chainId: ChainId.BSC_MAINNET, }, From adc2404c93e16311d6427edf46436e7b4600b1d1 Mon Sep 17 00:00:00 2001 From: tiltom Date: Tue, 28 Jun 2022 11:02:48 +0200 Subject: [PATCH 22/38] Netlify config adjustments --- netlify.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/netlify.toml b/netlify.toml index 88c9fdbc0..73a05c3e8 100644 --- a/netlify.toml +++ b/netlify.toml @@ -51,3 +51,4 @@ REACT_APP_NETWORK = "testnet" REACT_APP_GRAPH_RSK = "https://subgraph.test.sovryn.app/subgraphs/name/DistributedCollective/sovryn-subgraph" BUILD_STORYBOOK = "true" + REACT_APP_STAGING = "false" From 60a0d24059e8f29feb9d8802cd5f304e93b8f76b Mon Sep 17 00:00:00 2001 From: tiltom Date: Tue, 28 Jun 2022 11:47:10 +0200 Subject: [PATCH 23/38] Fix isStaging condition --- src/utils/classifiers.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/classifiers.ts b/src/utils/classifiers.ts index 843343d05..160dc0fd2 100644 --- a/src/utils/classifiers.ts +++ b/src/utils/classifiers.ts @@ -11,7 +11,7 @@ export const currentNetwork: AppMode | string = String(process.env.REACT_APP_NETWORK).toLowerCase() || AppMode.MAINNET; export const isMainnet = currentNetwork === 'mainnet'; -export const isStaging = !!process.env.REACT_APP_STAGING; +export const isStaging = process.env.REACT_APP_STAGING === 'true'; export const currentChainId = chains[currentNetwork]; From e6ef6b41167ca4a734e9434b2ff89214568a7d8c Mon Sep 17 00:00:00 2001 From: tiltom Date: Tue, 28 Jun 2022 14:03:43 +0200 Subject: [PATCH 24/38] Fix bugs after deployment --- .../components/AccountBalanceForm/index.tsx | 20 ++++--- .../contexts/GraphQLProvider.tsx | 10 ++-- .../contexts/PerpetualQueriesContext.tsx | 59 +++++++++++-------- .../contexts/hooks/useFetchAllPairs.ts | 40 +++++++++++++ .../contexts/hooks/useFetchBTCUSD.ts | 33 +++++++++++ 5 files changed, 125 insertions(+), 37 deletions(-) create mode 100644 src/app/pages/PerpetualPage/contexts/hooks/useFetchAllPairs.ts create mode 100644 src/app/pages/PerpetualPage/contexts/hooks/useFetchBTCUSD.ts diff --git a/src/app/pages/PerpetualPage/components/AccountBalanceForm/index.tsx b/src/app/pages/PerpetualPage/components/AccountBalanceForm/index.tsx index 540d30e91..1942e5d57 100644 --- a/src/app/pages/PerpetualPage/components/AccountBalanceForm/index.tsx +++ b/src/app/pages/PerpetualPage/components/AccountBalanceForm/index.tsx @@ -18,12 +18,23 @@ import classNames from 'classnames'; import { Tooltip } from '@blueprintjs/core'; import { getCollateralName } from '../../utils/renderUtils'; import { selectPerpetualPage } from '../../selectors'; -import { isMainnet } from '../../../../../utils/classifiers'; +import { isMainnet, isStaging } from '../../../../../utils/classifiers'; type AccountBalanceFormProps = { onOpenTransactionHistory: () => void; }; +const getBridgeUrl = () => { + if (isMainnet) { + return 'https://bridge.sovryn.app'; + } + if (isStaging) { + return 'https://bridge.staging.sovryn.app'; + } + + return 'https://bridge.test.sovryn.app'; +}; + export const AccountBalanceForm: React.FC = ({ onOpenTransactionHistory, }) => { @@ -74,12 +85,7 @@ export const AccountBalanceForm: React.FC = ({ const onOpenTransfer = useCallback(() => { if (!transferDisabled) { - window.open( - isMainnet - ? 'https://bridge.sovryn.app' - : 'https://bridge.test.sovryn.app', - '_blank', - ); + window.open(getBridgeUrl(), '_blank'); } }, [transferDisabled]); diff --git a/src/app/pages/PerpetualPage/contexts/GraphQLProvider.tsx b/src/app/pages/PerpetualPage/contexts/GraphQLProvider.tsx index cb159012c..8cd7f1ff2 100644 --- a/src/app/pages/PerpetualPage/contexts/GraphQLProvider.tsx +++ b/src/app/pages/PerpetualPage/contexts/GraphQLProvider.tsx @@ -139,14 +139,14 @@ const evaluateEndpoint = async (endpoint: GraphQLEndpoint) => { const config: GraphQLEndpoint[] = isMainnet || isStaging ? [ - { - graph: - 'https://sovryn-perps-subgraph.sovryn.app/subgraphs/name/DistributedCollective/Sovryn-perpetual-swaps-subgraph/graphql', - }, + // { + // graph: + // 'https://sovryn-perps-subgraph.sovryn.app/subgraphs/name/DistributedCollective/Sovryn-perpetual-swaps-subgraph/graphql', + // }, { graph: 'https://api.thegraph.com/subgraphs/name/distributedcollective/sovryn-perpetual-futures', - isFallback: true, + // isFallback: true, }, ] : [ diff --git a/src/app/pages/PerpetualPage/contexts/PerpetualQueriesContext.tsx b/src/app/pages/PerpetualPage/contexts/PerpetualQueriesContext.tsx index 96db175d3..ee9c3a3e4 100644 --- a/src/app/pages/PerpetualPage/contexts/PerpetualQueriesContext.tsx +++ b/src/app/pages/PerpetualPage/contexts/PerpetualQueriesContext.tsx @@ -27,9 +27,6 @@ import { traderStateCallData, balanceCallData, } from '../utils/contractUtils'; -import { useBridgeNetworkMultiCall } from '../../../hooks/useBridgeNetworkMultiCall'; -import { PERPETUAL_CHAIN } from '../types'; -import { usePerpetual_queryLiqPoolId } from '../hooks/usePerpetual_queryLiqPoolId'; import { perpUtils, AMMState, @@ -37,8 +34,17 @@ import { PerpParameters, TraderState, } from '@sovryn/perpetual-swap'; -import { PerpetualPairDictionary } from 'utils/dictionaries/perpetual-pair-dictionary'; -import { MultiCallData } from 'app/pages/BridgeDepositPage/utils/bridge-network'; +import { + PerpetualPairDictionary, + PerpetualPairType, +} from 'utils/dictionaries/perpetual-pair-dictionary'; +import { + MultiCallData, + MultiCallResult, +} from 'app/pages/BridgeDepositPage/utils/bridge-network'; +import { isMainnet, isStaging } from 'utils/classifiers'; +import { useFetchBTCUSD } from './hooks/useFetchBTCUSD'; +import { useFetchAllPairs } from './hooks/useFetchAllPairs'; const { getDepthMatrix } = perpUtils; @@ -46,7 +52,21 @@ const THROTTLE_DELAY = 1000; // 1s const UPDATE_INTERVAL = 10000; // 10s const address = getContract('perpetualManager').address.toLowerCase(); -const pairIds = PerpetualPairDictionary.list().map(item => item.id); + +export type FetchResult = { + firstResult?: MultiCallResult; + firstRefetch?: () => Promise; + secondResult?: MultiCallResult; + secondRefetch?: () => Promise; +}; + +const isMainnetDeployment = isMainnet || isStaging; +const fetchDataHook = isMainnetDeployment ? useFetchBTCUSD : useFetchAllPairs; + +// TODO: Find some generic solution for that +const pairIds = isMainnetDeployment + ? [PerpetualPairDictionary.get(PerpetualPairType.BTCUSD).id] + : PerpetualPairDictionary.list().map(item => item.id); type InitSocketParams = { update: (isEventByTrader: boolean) => void; @@ -141,23 +161,12 @@ export const PerpetualQueriesContextProvider: React.FC getMultiCallData([firstPoolId, secondPoolId], account), - [account, firstPoolId, secondPoolId], - ); - - const { - result: firstResult, - refetch: firstRefetch, - } = useBridgeNetworkMultiCall(PERPETUAL_CHAIN, multiCallData[0]); - const { - result: secondResult, - refetch: secondRefetch, - } = useBridgeNetworkMultiCall(PERPETUAL_CHAIN, multiCallData[1]); + firstResult, + firstRefetch, + secondResult, + secondRefetch, + } = fetchDataHook(); const perpetuals = useMemo( () => @@ -203,8 +212,8 @@ export const PerpetualQueriesContextProvider: React.FC { - firstRefetch().catch(console.error); - secondRefetch().catch(console.error); + firstRefetch?.().catch(console.error); + secondRefetch?.().catch(console.error); }, [firstRefetch, secondRefetch]); const refetchDebounced = useMemo( @@ -290,7 +299,7 @@ const getAdditionalInfo = ( }; }; -const getMultiCallData = (poolIds: (string | undefined)[], account) => { +export const getMultiCallData = (poolIds: (string | undefined)[], account) => { const multiCallData: MultiCallData[][] = []; pairIds.forEach((pairId, index) => { diff --git a/src/app/pages/PerpetualPage/contexts/hooks/useFetchAllPairs.ts b/src/app/pages/PerpetualPage/contexts/hooks/useFetchAllPairs.ts new file mode 100644 index 000000000..47224e167 --- /dev/null +++ b/src/app/pages/PerpetualPage/contexts/hooks/useFetchAllPairs.ts @@ -0,0 +1,40 @@ +import { useAccount } from 'app/hooks/useAccount'; +import { useBridgeNetworkMultiCall } from 'app/hooks/useBridgeNetworkMultiCall'; +import { MultiCallData } from 'app/pages/BridgeDepositPage/utils/bridge-network'; +import { useMemo } from 'react'; +import { PerpetualPairDictionary } from 'utils/dictionaries/perpetual-pair-dictionary'; +import { usePerpetual_queryLiqPoolId } from '../../hooks/usePerpetual_queryLiqPoolId'; +import { PERPETUAL_CHAIN } from '../../types'; +import { FetchResult, getMultiCallData } from '../PerpetualQueriesContext'; + +const pairIds = PerpetualPairDictionary.list().map(item => item.id); + +export const useFetchAllPairs = (): FetchResult => { + const account = useAccount(); + + const { result: firstPoolId } = usePerpetual_queryLiqPoolId(pairIds[0]); + + const { result: secondPoolId } = usePerpetual_queryLiqPoolId(pairIds[1]); + + const multiCallData: MultiCallData[][] = useMemo( + () => getMultiCallData([firstPoolId, secondPoolId], account), + [account, firstPoolId, secondPoolId], + ); + + const { + result: firstResult, + refetch: firstRefetch, + } = useBridgeNetworkMultiCall(PERPETUAL_CHAIN, multiCallData[0]); + + const { + result: secondResult, + refetch: secondRefetch, + } = useBridgeNetworkMultiCall(PERPETUAL_CHAIN, multiCallData[1]); + + return { + firstResult, + firstRefetch, + secondResult, + secondRefetch, + }; +}; diff --git a/src/app/pages/PerpetualPage/contexts/hooks/useFetchBTCUSD.ts b/src/app/pages/PerpetualPage/contexts/hooks/useFetchBTCUSD.ts new file mode 100644 index 000000000..6abfc2c49 --- /dev/null +++ b/src/app/pages/PerpetualPage/contexts/hooks/useFetchBTCUSD.ts @@ -0,0 +1,33 @@ +import { useAccount } from 'app/hooks/useAccount'; +import { useBridgeNetworkMultiCall } from 'app/hooks/useBridgeNetworkMultiCall'; +import { MultiCallData } from 'app/pages/BridgeDepositPage/utils/bridge-network'; +import { useMemo } from 'react'; +import { + PerpetualPairDictionary, + PerpetualPairType, +} from 'utils/dictionaries/perpetual-pair-dictionary'; +import { usePerpetual_queryLiqPoolId } from '../../hooks/usePerpetual_queryLiqPoolId'; +import { PERPETUAL_CHAIN } from '../../types'; +import { FetchResult, getMultiCallData } from '../PerpetualQueriesContext'; + +const pairId = PerpetualPairDictionary.get(PerpetualPairType.BTCUSD).id; + +export const useFetchBTCUSD = (): FetchResult => { + const account = useAccount(); + const { result: poolId } = usePerpetual_queryLiqPoolId(pairId); + + const multiCallData: MultiCallData[][] = useMemo( + () => getMultiCallData([poolId], account), + [account, poolId], + ); + + const { + result: firstResult, + refetch: firstRefetch, + } = useBridgeNetworkMultiCall(PERPETUAL_CHAIN, multiCallData[0]); + + return { + firstResult, + firstRefetch, + }; +}; From ab7375c76a1ff9dbfb055763b3f5e12f264140f8 Mon Sep 17 00:00:00 2001 From: soulBit Date: Tue, 28 Jun 2022 15:30:57 +0100 Subject: [PATCH 25/38] feat: update borrow button data-action-id (#2295) --- src/app/pages/BorrowPage/BorrowingContainer/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/pages/BorrowPage/BorrowingContainer/index.tsx b/src/app/pages/BorrowPage/BorrowingContainer/index.tsx index 35fe67116..748586a51 100644 --- a/src/app/pages/BorrowPage/BorrowingContainer/index.tsx +++ b/src/app/pages/BorrowPage/BorrowingContainer/index.tsx @@ -277,7 +277,7 @@ const InnerBorrowContainer: React.FC = ({ currency }) => { <>{t(translations.maintenance.startBorrow)} ) : undefined } - dataActionId={`borrow-borrowButton-${tokenToCollarate}`} + dataActionId={`borrow-borrowButton-${currency}`} />
From 0914dd5e327ce6f5280350b0fffdd8cbd1390a1e Mon Sep 17 00:00:00 2001 From: soulBit Date: Wed, 29 Jun 2022 15:59:02 +0100 Subject: [PATCH 26/38] chore: update DisplayDate component display format (#2297) * chore: update DisplayDate component display format * Update useUTC usage Co-authored-by: tiltom --- .../components/DisplayDate/index.tsx | 38 +++++++++---------- .../components/UserAssets/TxDialog/index.tsx | 2 +- .../BuyDialog/components/TxDialog/index.tsx | 2 +- .../ClosedPositionRow.tsx | 6 ++- .../FundingPaymentsRow.tsx | 6 ++- .../components/OpenOrderRow.tsx | 2 + .../OrderHistoryTable/OrderHistoryRow.tsx | 6 ++- 7 files changed, 37 insertions(+), 25 deletions(-) diff --git a/src/app/components/ActiveUserLoanContainer/components/DisplayDate/index.tsx b/src/app/components/ActiveUserLoanContainer/components/DisplayDate/index.tsx index d68e7f705..62bfcc408 100644 --- a/src/app/components/ActiveUserLoanContainer/components/DisplayDate/index.tsx +++ b/src/app/components/ActiveUserLoanContainer/components/DisplayDate/index.tsx @@ -1,42 +1,40 @@ import React from 'react'; +import dayjs from 'dayjs'; export enum SeparatorType { Dash = 'dash', - Break = 'break', + Auto = 'auto', } const getSeparator = (separator: SeparatorType) => { switch (separator) { - case SeparatorType.Break: - return
; + case SeparatorType.Auto: + return ''; case SeparatorType.Dash: - return '-'; default: - return '-'; + return ' -'; } }; -interface Props { +interface IDisplayDateProps { timestamp: string; - timezoneOption?: string; - timezoneLabel?: string; + useUTC?: boolean; separator?: SeparatorType; } -export function DisplayDate({ +export const DisplayDate: React.FC = ({ timestamp, - timezoneOption = 'GMT', - timezoneLabel = 'GMT', - separator = SeparatorType.Break, -}: Props) { - const date = (timestamp: string) => new Date(Number(timestamp) * 1e3); - const formatDate = date(timestamp).toLocaleString('en-GB', { - timeZone: timezoneOption, - }); + separator = SeparatorType.Auto, + useUTC = false, +}) => { + const stamp = dayjs.tz(Number(timestamp) * 1e3, 'UTC'); return ( - {formatDate.slice(0, 10)} {getSeparator(separator)}{' '} - {formatDate.slice(12, 17)} {timezoneLabel} + {useUTC + ? stamp.format(`YYYY/MM/DD${getSeparator(separator)} HH:mm [UTC]`) + : stamp + .tz(dayjs.tz.guess()) + .format(`L${getSeparator(separator)} LT [UTC] Z`)} ); -} +}; diff --git a/src/app/components/UserAssets/TxDialog/index.tsx b/src/app/components/UserAssets/TxDialog/index.tsx index 17f59f2d7..078a67fea 100644 --- a/src/app/components/UserAssets/TxDialog/index.tsx +++ b/src/app/components/UserAssets/TxDialog/index.tsx @@ -108,7 +108,7 @@ export const TxDialog: React.FC = ({ tx, onUserConfirmed }) => { timestamp={new Date(txData?.customData?.date) .getTime() .toString()} - timezoneLabel="UTC" + useUTC />
diff --git a/src/app/pages/OriginsLaunchpad/pages/SalesDay/pages/BuyStep/components/BuyDialog/components/TxDialog/index.tsx b/src/app/pages/OriginsLaunchpad/pages/SalesDay/pages/BuyStep/components/BuyDialog/components/TxDialog/index.tsx index 1c5174764..d4303a4db 100644 --- a/src/app/pages/OriginsLaunchpad/pages/SalesDay/pages/BuyStep/components/BuyDialog/components/TxDialog/index.tsx +++ b/src/app/pages/OriginsLaunchpad/pages/SalesDay/pages/BuyStep/components/BuyDialog/components/TxDialog/index.tsx @@ -104,7 +104,7 @@ export const TxDialog: React.FC = ({ tx, onUserConfirmed }) => { timestamp={new Date(txData?.customData?.date) .getTime() .toString()} - timezoneLabel="UTC" + useUTC />
diff --git a/src/app/pages/PerpetualPage/components/ClosedPositionsTable/ClosedPositionRow.tsx b/src/app/pages/PerpetualPage/components/ClosedPositionsTable/ClosedPositionRow.tsx index e5101b102..0a37406a7 100644 --- a/src/app/pages/PerpetualPage/components/ClosedPositionsTable/ClosedPositionRow.tsx +++ b/src/app/pages/PerpetualPage/components/ClosedPositionsTable/ClosedPositionRow.tsx @@ -65,7 +65,11 @@ export const ClosedPositionRow: React.FC = ({ return (
diff --git a/src/app/pages/PerpetualPage/components/FundingPaymentsTable/FundingPaymentsRow.tsx b/src/app/pages/PerpetualPage/components/FundingPaymentsTable/FundingPaymentsRow.tsx index 8d9c1e19a..106281f83 100644 --- a/src/app/pages/PerpetualPage/components/FundingPaymentsTable/FundingPaymentsRow.tsx +++ b/src/app/pages/PerpetualPage/components/FundingPaymentsTable/FundingPaymentsRow.tsx @@ -39,7 +39,11 @@ export const FundingPaymentsRow: React.FC = ({ return ( diff --git a/src/app/pages/PerpetualPage/components/OpenOrdersTable/components/OpenOrderRow.tsx b/src/app/pages/PerpetualPage/components/OpenOrdersTable/components/OpenOrderRow.tsx index 03b2dcbc8..b633ca52d 100644 --- a/src/app/pages/PerpetualPage/components/OpenOrdersTable/components/OpenOrderRow.tsx +++ b/src/app/pages/PerpetualPage/components/OpenOrdersTable/components/OpenOrderRow.tsx @@ -110,6 +110,7 @@ export const OpenOrderRow: React.FC = ({ item }) => { item.createdAt || Math.floor(Date.now() / 1e3).toString() } separator={SeparatorType.Dash} + useUTC /> @@ -163,6 +164,7 @@ export const OpenOrderRow: React.FC = ({ item }) => { diff --git a/src/app/pages/PerpetualPage/components/OrderHistoryTable/OrderHistoryRow.tsx b/src/app/pages/PerpetualPage/components/OrderHistoryTable/OrderHistoryRow.tsx index ef8fcf21d..6402fe314 100644 --- a/src/app/pages/PerpetualPage/components/OrderHistoryTable/OrderHistoryRow.tsx +++ b/src/app/pages/PerpetualPage/components/OrderHistoryTable/OrderHistoryRow.tsx @@ -88,7 +88,11 @@ export const OrderHistoryRow: React.FC = ({ return ( diff --git a/src/app/pages/PerpetualPage/components/OpenPositionsTable/components/OpenPositionRow.tsx b/src/app/pages/PerpetualPage/components/OpenPositionsTable/components/OpenPositionRow.tsx index 0c20b458d..a6f2d7a97 100644 --- a/src/app/pages/PerpetualPage/components/OpenPositionsTable/components/OpenPositionRow.tsx +++ b/src/app/pages/PerpetualPage/components/OpenPositionsTable/components/OpenPositionRow.tsx @@ -208,6 +208,7 @@ export const OpenPositionRow: React.FC = ({ item }) => { .editLeverage, )} onClick={onEditLeverage} + dataActionId="perps-tables-openPositions-action-editLeverage" /> = ({ item }) => { .editMargin, )} onClick={onEditMargin} + dataActionId="perps-tables-openPositions-action-editMargin" /> = ({ item }) => { .editClose, )} onClick={onCloseTrade} + dataActionId="perps-tables-openPositions-action-closeTrade" /> )} diff --git a/src/app/pages/PerpetualPage/components/PairSelector/PairSelectorButton.tsx b/src/app/pages/PerpetualPage/components/PairSelector/PairSelectorButton.tsx index ad23d3e1c..2c1740736 100644 --- a/src/app/pages/PerpetualPage/components/PairSelector/PairSelectorButton.tsx +++ b/src/app/pages/PerpetualPage/components/PairSelector/PairSelectorButton.tsx @@ -64,6 +64,7 @@ export const PairSelectorButton: React.FC = ({ : 'tw-bg-gray-4 tw-cursor-pointer hover:tw-bg-gray-5', )} onClick={onClick} + data-action-id={`perps-pairSelectorButton-${pair.name}`} > {pair.name}
diff --git a/src/app/pages/PerpetualPage/components/TableRowAction/index.tsx b/src/app/pages/PerpetualPage/components/TableRowAction/index.tsx index 74ff89cf7..e28075fff 100644 --- a/src/app/pages/PerpetualPage/components/TableRowAction/index.tsx +++ b/src/app/pages/PerpetualPage/components/TableRowAction/index.tsx @@ -5,12 +5,14 @@ type TableRowActionProps = { tooltip: ReactElement | string; label: ReactElement | string; onClick: MouseEventHandler; + dataActionId?: string; }; export const TableRowAction: React.FC = ({ tooltip, label, onClick, + dataActionId, }) => ( = ({ diff --git a/src/app/pages/PerpetualPage/components/TradeForm/index.tsx b/src/app/pages/PerpetualPage/components/TradeForm/index.tsx index 03b7cdd1d..d8e26069e 100644 --- a/src/app/pages/PerpetualPage/components/TradeForm/index.tsx +++ b/src/app/pages/PerpetualPage/components/TradeForm/index.tsx @@ -533,6 +533,7 @@ export const TradeForm: React.FC = ({ [styles.active]: trade.position === TradingPosition.LONG, })} onClick={onLongClick} + data-action-id="perps-tradeForm-positionButton-buy" > {t(translations.perpetualPage.tradeForm.buttons.buy)} @@ -541,6 +542,7 @@ export const TradeForm: React.FC = ({ [styles.active]: trade.position === TradingPosition.SHORT, })} onClick={onShortClick} + data-action-id="perps-tradeForm-positionButton-sell" > {t(translations.perpetualPage.tradeForm.buttons.sell)} @@ -552,6 +554,7 @@ export const TradeForm: React.FC = ({ [styles.active]: trade.tradeType === PerpetualTradeType.MARKET, })} onClick={bindSelectTradeType(PerpetualTradeType.MARKET)} + data-action-id="perps-tradeForm-tradeTypeButton-market" > {t(translations.perpetualPage.tradeForm.buttons.market)} @@ -561,6 +564,7 @@ export const TradeForm: React.FC = ({ [styles.active]: trade.tradeType === PerpetualTradeType.LIMIT, })} onClick={bindSelectTradeType(PerpetualTradeType.LIMIT)} + data-action-id="perps-tradeForm-tradeTypeButton-limit" > {t(translations.perpetualPage.tradeForm.buttons.limit)} @@ -570,6 +574,7 @@ export const TradeForm: React.FC = ({ [styles.active]: trade.tradeType === PerpetualTradeType.STOP, })} onClick={bindSelectTradeType(PerpetualTradeType.STOP)} + data-action-id="perps-tradeForm-tradeTypeButton-stop" > {t(translations.perpetualPage.tradeForm.buttons.stop)} @@ -597,6 +602,7 @@ export const TradeForm: React.FC = ({ max={maxTradeSize} onChangeText={onChangeOrderAmount} onBlur={onBlurOrderAmount} + dataActionId="perps-tradeForm-orderSize" />
@@ -915,7 +921,11 @@ export const TradeForm: React.FC = ({ />
-
- + {item?.pair?.name} {collateralName}
- + {item.pair.name} {collateralAsset}
- + {pair?.name} Date: Thu, 30 Jun 2022 10:05:51 +0300 Subject: [PATCH 27/38] chore: change btcs token and aggregator contract (#2246) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: change btcs token and aggregator contract * feat: mainnet contracts Co-authored-by: Rytis Grincevičius --- src/app/pages/FastBtcPage/config/contracts.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/app/pages/FastBtcPage/config/contracts.ts b/src/app/pages/FastBtcPage/config/contracts.ts index 1c0e92f38..57f8bc9f1 100644 --- a/src/app/pages/FastBtcPage/config/contracts.ts +++ b/src/app/pages/FastBtcPage/config/contracts.ts @@ -80,8 +80,8 @@ export const contracts: Record< [AppMode.TESTNET]: ethers.constants.AddressZero, }, [Chain.BSC]: { - [AppMode.MAINNET]: ethers.constants.AddressZero, // todo - [AppMode.TESTNET]: '0xd0370a808203da14B703826eF77072ef5F09840D', + [AppMode.MAINNET]: '0x6a7F2d2e5D5756729e875c8F8fC254448E763Fdf', + [AppMode.TESTNET]: '0xcF3D22A034Fa157985F0Fe71F15477446f80Be26', }, }, abi: erc20TokenAbi, @@ -98,8 +98,8 @@ export const contracts: Record< aggregator: { address: { [Chain.BSC]: { - [AppMode.MAINNET]: ethers.constants.AddressZero, // todo - [AppMode.TESTNET]: '0xc54B47AC178273A42Fb71631d8018aD7EBbec330', + [AppMode.MAINNET]: '0x1dA3D286a3aBeaDb2b7677c99730D725aF58e39D', + [AppMode.TESTNET]: '0x63f9a9145147330dFAdc991CC3821DF23879ae16', }, }, abi: aggregatorAbi, From 75621569ac46659d20b61e733816003a2454375e Mon Sep 17 00:00:00 2001 From: tiltom Date: Thu, 30 Jun 2022 14:08:08 +0200 Subject: [PATCH 28/38] Perpetuals - use correct subgraphs --- .../pages/PerpetualPage/contexts/GraphQLProvider.tsx | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/app/pages/PerpetualPage/contexts/GraphQLProvider.tsx b/src/app/pages/PerpetualPage/contexts/GraphQLProvider.tsx index 8cd7f1ff2..77c40d010 100644 --- a/src/app/pages/PerpetualPage/contexts/GraphQLProvider.tsx +++ b/src/app/pages/PerpetualPage/contexts/GraphQLProvider.tsx @@ -139,14 +139,15 @@ const evaluateEndpoint = async (endpoint: GraphQLEndpoint) => { const config: GraphQLEndpoint[] = isMainnet || isStaging ? [ - // { - // graph: - // 'https://sovryn-perps-subgraph.sovryn.app/subgraphs/name/DistributedCollective/Sovryn-perpetual-swaps-subgraph/graphql', - // }, + { + graph: + 'https://sovryn-perps-subgraph.sovryn.app/subgraphs/name/DistributedCollective/Sovryn-perpetual-swaps-subgraph', + }, { graph: 'https://api.thegraph.com/subgraphs/name/distributedcollective/sovryn-perpetual-futures', - // isFallback: true, + index: 'https://api.thegraph.com/index-node/graphql', + isFallback: true, }, ] : [ From 10b06491551d74ca544a6945d19d77cbf725ae2c Mon Sep 17 00:00:00 2001 From: tiltom Date: Thu, 30 Jun 2022 16:16:00 +0200 Subject: [PATCH 29/38] Add Zero to TVL stats (#2288) * Table labels renaming * Add zero total to tvlData * Rename zero contracts label Co-authored-by: soulBit --- src/app/containers/StatsPage/types.ts | 4 + .../components/TotalValueLocked/index.tsx | 5 + src/app/pages/LandingPage/index.tsx | 90 +- src/locales/en/translation.json | 7 +- src/utils/blockchain/abi/StabilityPool.json | 1231 +++++++++++ src/utils/blockchain/abi/TroveManager.json | 1852 +++++++++++++++++ src/utils/blockchain/contracts.testnet.ts | 10 + src/utils/blockchain/contracts.ts | 10 + 8 files changed, 3204 insertions(+), 5 deletions(-) create mode 100644 src/utils/blockchain/abi/StabilityPool.json create mode 100644 src/utils/blockchain/abi/TroveManager.json diff --git a/src/app/containers/StatsPage/types.ts b/src/app/containers/StatsPage/types.ts index c16e80138..68b027348 100644 --- a/src/app/containers/StatsPage/types.ts +++ b/src/app/containers/StatsPage/types.ts @@ -32,6 +32,10 @@ export type TvlData = { totalBtc: number; totalUsd: number; }; + tvlZero: { + totalBtc: number; + totalUsd: number; + }; total_btc: number; total_usd: number; }; diff --git a/src/app/pages/LandingPage/components/TotalValueLocked/index.tsx b/src/app/pages/LandingPage/components/TotalValueLocked/index.tsx index e472916ac..b3198ed4b 100644 --- a/src/app/pages/LandingPage/components/TotalValueLocked/index.tsx +++ b/src/app/pages/LandingPage/components/TotalValueLocked/index.tsx @@ -32,6 +32,11 @@ export const TotalValueLocked: React.FC = ({ btcValue: data?.tvlAmm?.totalBtc || 0, usdValue: data?.tvlAmm?.totalUsd || 0, }, + { + contract: t(translations.landingPage.tvl.zero), + btcValue: data?.tvlZero?.totalBtc || 0, + usdValue: data?.tvlZero?.totalUsd || 0, + }, { contract: t(translations.landingPage.tvl.subProtocol), btcValue: data?.tvlSubprotocols?.totalBtc || 0, diff --git a/src/app/pages/LandingPage/index.tsx b/src/app/pages/LandingPage/index.tsx index 1f62de117..c770abb07 100644 --- a/src/app/pages/LandingPage/index.tsx +++ b/src/app/pages/LandingPage/index.tsx @@ -1,4 +1,4 @@ -import React, { useCallback, useRef, useState } from 'react'; +import React, { useCallback, useEffect, useRef, useState } from 'react'; import { Helmet } from 'react-helmet-async'; import { useTranslation } from 'react-i18next'; import { translations } from 'locales/i18n'; @@ -19,6 +19,13 @@ import { CryptocurrencyPrices } from './components/CryptocurrencyPrices'; import { IAssets } from './components/CryptocurrencyPrices/types'; import styles from './index.module.scss'; import { IPairsData } from 'types/trading-pairs'; +import { numberFromWei } from 'utils/blockchain/math-helpers'; +import { bridgeNetwork } from '../BridgeDepositPage/utils/bridge-network'; +import { Asset, Chain } from 'types'; +import { getContract } from 'utils/blockchain/contract-helpers'; +import { useDenominateAssetAmount } from 'app/hooks/trading/useDenominateAssetAmount'; +import { useDollarValue } from 'app/hooks/useDollarValue'; +import { bignumber } from 'mathjs'; const url = backendUrl[currentChainId]; @@ -27,7 +34,7 @@ interface ILandingPageProps { } export const LandingPage: React.FC = ({ - refreshInterval = 300000, + refreshInterval = 600000, }) => { const { t } = useTranslation(); @@ -37,6 +44,12 @@ export const LandingPage: React.FC = ({ const [pairsData, setPairsData] = useState(); const [assetLoading, setAssetLoading] = useState(false); const [assetData, setAssetData] = useState(); + const [zusdDepositsWeiAmount, setZusdDepositsWeiAmount] = useState('0'); + const [ + rbtcCollateralValueWeiAmount, + setRbtcCollateralValueWeiAmount, + ] = useState('0'); + const [zeroLoading, setZeroLoading] = useState(false); const cancelDataRequest = useRef(); const cancelPairsDataRequest = useRef(); @@ -62,6 +75,36 @@ export const LandingPage: React.FC = ({ }); }, []); + const getZeroTvlData = useCallback(() => { + setZeroLoading(true); + + bridgeNetwork + .multiCall(Chain.RSK, [ + { + address: getContract('zero_troveManager').address, + abi: getContract('zero_troveManager').abi, + fnName: 'getEntireSystemColl', + args: [], + key: 'rbtcCollateral', + parser: value => value[0].toString(), + }, + { + address: getContract('zero_stabilityPool').address, + abi: getContract('zero_stabilityPool').abi, + fnName: 'getTotalZUSDDeposits', + args: [], + key: 'zusdDeposits', + parser: value => value[0].toString(), + }, + ]) + .then(result => { + setZusdDepositsWeiAmount(result.returnData.zusdDeposits); + setRbtcCollateralValueWeiAmount(result.returnData.rbtcCollateral); + }) + .catch(e => console.error(e)) + .finally(() => setZeroLoading(false)); + }, []); + const getPairsData = useCallback(() => { setPairsLoading(true); cancelPairsDataRequest.current && cancelPairsDataRequest.current(); @@ -105,6 +148,7 @@ export const LandingPage: React.FC = ({ useInterval( () => { getTvlData(); + getZeroTvlData(); getPairsData(); getAssetData(); }, @@ -112,6 +156,48 @@ export const LandingPage: React.FC = ({ { immediate: true }, ); + const zusdDepositRbtcValue = useDenominateAssetAmount( + Asset.XUSD, // we cannot use Asset.ZUSD but 1 ZUSD === 1 XUSD + Asset.RBTC, + zusdDepositsWeiAmount, + ); + + const rbtcCollateralUsdValue = useDollarValue( + Asset.RBTC, + rbtcCollateralValueWeiAmount, + ); + + useEffect(() => { + if ( + !zeroLoading && + rbtcCollateralValueWeiAmount !== '0' && + zusdDepositsWeiAmount !== '0' + ) { + const zeroTotalRbtc = numberFromWei( + bignumber(zusdDepositRbtcValue.value) + .add(rbtcCollateralValueWeiAmount) + .toString(), + ); + const zeroTotalUsd = numberFromWei( + bignumber(zusdDepositsWeiAmount) + .add(rbtcCollateralUsdValue.value) + .toString(), + ); + setTvlData(tvlData => ({ + ...tvlData!, + tvlZero: { totalBtc: zeroTotalRbtc, totalUsd: zeroTotalUsd }, + total_btc: (tvlData?.total_btc || 0) + zeroTotalRbtc, + total_usd: (tvlData?.total_usd || 0) + zeroTotalUsd, + })); + } + }, [ + rbtcCollateralUsdValue.value, + rbtcCollateralValueWeiAmount, + zeroLoading, + zusdDepositRbtcValue.value, + zusdDepositsWeiAmount, + ]); + return ( <> diff --git a/src/locales/en/translation.json b/src/locales/en/translation.json index aa0be5cee..d3a37a82d 100644 --- a/src/locales/en/translation.json +++ b/src/locales/en/translation.json @@ -2587,10 +2587,11 @@ "btc": "Value (BTC)", "usd": "Value (USD)", "protocol": "Protocol Contract", - "lend": "Lending Contract", - "amm": "Amm Contract", + "lend": "Lending Contracts", + "amm": "AMM Contracts", + "zero": "Zero Contracts", "staked": "Bitocracy Staking Contract", - "subProtocol": "Subprotocol Bonding Curve Contracts", + "subProtocol": "MYNT Bonding Curve Contract", "subtotal": "Sub total", "total": "Total" }, diff --git a/src/utils/blockchain/abi/StabilityPool.json b/src/utils/blockchain/abi/StabilityPool.json new file mode 100644 index 000000000..21a4cd116 --- /dev/null +++ b/src/utils/blockchain/abi/StabilityPool.json @@ -0,0 +1,1231 @@ +[ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newActivePoolAddress", + "type": "address" + } + ], + "name": "ActivePoolAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newBorrowerOperationsAddress", + "type": "address" + } + ], + "name": "BorrowerOperationsAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newCommunityIssuanceAddress", + "type": "address" + } + ], + "name": "CommunityIssuanceAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newDefaultPoolAddress", + "type": "address" + } + ], + "name": "DefaultPoolAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_depositor", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_P", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_S", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_G", + "type": "uint256" + } + ], + "name": "DepositSnapshotUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_depositor", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_ETH", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_ZUSDLoss", + "type": "uint256" + } + ], + "name": "ETHGainWithdrawn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint128", + "name": "_currentEpoch", + "type": "uint128" + } + ], + "name": "EpochUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "EtherSent", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_frontEnd", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_kickbackRate", + "type": "uint256" + } + ], + "name": "FrontEndRegistered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_frontEnd", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_P", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_G", + "type": "uint256" + } + ], + "name": "FrontEndSnapshotUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_frontEnd", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_newFrontEndStake", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "_depositor", + "type": "address" + } + ], + "name": "FrontEndStakeChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_depositor", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "_frontEnd", + "type": "address" + } + ], + "name": "FrontEndTagSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_G", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint128", + "name": "_epoch", + "type": "uint128" + }, + { + "indexed": false, + "internalType": "uint128", + "name": "_scale", + "type": "uint128" + } + ], + "name": "G_Updated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_P", + "type": "uint256" + } + ], + "name": "P_Updated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newPriceFeedAddress", + "type": "address" + } + ], + "name": "PriceFeedAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_S", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint128", + "name": "_epoch", + "type": "uint128" + }, + { + "indexed": false, + "internalType": "uint128", + "name": "_scale", + "type": "uint128" + } + ], + "name": "S_Updated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint128", + "name": "_currentScale", + "type": "uint128" + } + ], + "name": "ScaleUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newSortedTrovesAddress", + "type": "address" + } + ], + "name": "SortedTrovesAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_newBalance", + "type": "uint256" + } + ], + "name": "StabilityPoolETHBalanceUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_newBalance", + "type": "uint256" + } + ], + "name": "StabilityPoolZUSDBalanceUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newTroveManagerAddress", + "type": "address" + } + ], + "name": "TroveManagerAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_depositor", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_newDeposit", + "type": "uint256" + } + ], + "name": "UserDepositChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_depositor", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_ZERO", + "type": "uint256" + } + ], + "name": "ZEROPaidToDepositor", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_frontEnd", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_ZERO", + "type": "uint256" + } + ], + "name": "ZEROPaidToFrontEnd", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newZUSDTokenAddress", + "type": "address" + } + ], + "name": "ZUSDTokenAddressChanged", + "type": "event" + }, + { + "inputs": [], + "name": "DECIMAL_PRECISION", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MIN_NET_DEBT", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "NAME", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "P", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "SCALE_FACTOR", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ZUSD_GAS_COMPENSATION", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_100pct", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "activePool", + "outputs": [ + { + "internalType": "contract IActivePool", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "borrowerOperations", + "outputs": [ + { + "internalType": "contract IBorrowerOperations", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "communityIssuance", + "outputs": [ + { + "internalType": "contract ICommunityIssuance", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "currentEpoch", + "outputs": [ + { + "internalType": "uint128", + "name": "", + "type": "uint128" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "currentScale", + "outputs": [ + { + "internalType": "uint128", + "name": "", + "type": "uint128" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "defaultPool", + "outputs": [ + { + "internalType": "contract IDefaultPool", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "depositSnapshots", + "outputs": [ + { + "internalType": "uint256", + "name": "S", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "P", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "G", + "type": "uint256" + }, + { + "internalType": "uint128", + "name": "scale", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "epoch", + "type": "uint128" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "deposits", + "outputs": [ + { + "internalType": "uint256", + "name": "initialValue", + "type": "uint256" + }, + { + "internalType": "address", + "name": "frontEndTag", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint128", + "name": "", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "", + "type": "uint128" + } + ], + "name": "epochToScaleToG", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint128", + "name": "", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "", + "type": "uint128" + } + ], + "name": "epochToScaleToSum", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "frontEndSnapshots", + "outputs": [ + { + "internalType": "uint256", + "name": "S", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "P", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "G", + "type": "uint256" + }, + { + "internalType": "uint128", + "name": "scale", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "epoch", + "type": "uint128" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "frontEndStakes", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "frontEnds", + "outputs": [ + { + "internalType": "uint256", + "name": "kickbackRate", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "registered", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_frontEnd", + "type": "address" + } + ], + "name": "getCompoundedFrontEndStake", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_depositor", + "type": "address" + } + ], + "name": "getCompoundedZUSDDeposit", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_depositor", + "type": "address" + } + ], + "name": "getDepositorETHGain", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_depositor", + "type": "address" + } + ], + "name": "getDepositorZEROGain", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getETH", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getEntireSystemColl", + "outputs": [ + { + "internalType": "uint256", + "name": "entireSystemColl", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getEntireSystemDebt", + "outputs": [ + { + "internalType": "uint256", + "name": "entireSystemDebt", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_frontEnd", + "type": "address" + } + ], + "name": "getFrontEndZEROGain", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOwner", + "outputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTotalZUSDDeposits", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lastETHError_Offset", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lastZEROError", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lastZUSDLossError_Offset", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "liquityBaseParams", + "outputs": [ + { + "internalType": "contract ILiquityBaseParams", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_debtToOffset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_collToAdd", + "type": "uint256" + } + ], + "name": "offset", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "priceFeed", + "outputs": [ + { + "internalType": "contract IPriceFeed", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_frontEndTag", + "type": "address" + } + ], + "name": "provideToSP", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_kickbackRate", + "type": "uint256" + } + ], + "name": "registerFrontEnd", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_liquityBaseParamsAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_borrowerOperationsAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_troveManagerAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_activePoolAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_zusdTokenAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_sortedTrovesAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_priceFeedAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_communityIssuanceAddress", + "type": "address" + } + ], + "name": "setAddresses", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], + "name": "setOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "sortedTroves", + "outputs": [ + { + "internalType": "contract ISortedTroves", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "troveManager", + "outputs": [ + { + "internalType": "contract ITroveManager", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_upperHint", + "type": "address" + }, + { + "internalType": "address", + "name": "_lowerHint", + "type": "address" + } + ], + "name": "withdrawETHGainToTrove", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawFromSP", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "zusdToken", + "outputs": [ + { + "internalType": "contract IZUSDToken", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } +] diff --git a/src/utils/blockchain/abi/TroveManager.json b/src/utils/blockchain/abi/TroveManager.json new file mode 100644 index 000000000..f4b52067a --- /dev/null +++ b/src/utils/blockchain/abi/TroveManager.json @@ -0,0 +1,1852 @@ +[ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_activePoolAddress", + "type": "address" + } + ], + "name": "ActivePoolAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_baseRate", + "type": "uint256" + } + ], + "name": "BaseRateUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newBorrowerOperationsAddress", + "type": "address" + } + ], + "name": "BorrowerOperationsAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_collSurplusPoolAddress", + "type": "address" + } + ], + "name": "CollSurplusPoolAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_defaultPoolAddress", + "type": "address" + } + ], + "name": "DefaultPoolAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_feeDistributorAddress", + "type": "address" + } + ], + "name": "FeeDistributorAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_gasPoolAddress", + "type": "address" + } + ], + "name": "GasPoolAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_L_ETH", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_L_ZUSDDebt", + "type": "uint256" + } + ], + "name": "LTermsUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_lastFeeOpTime", + "type": "uint256" + } + ], + "name": "LastFeeOpTimeUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidatedDebt", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidatedColl", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_collGasCompensation", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_ZUSDGasCompensation", + "type": "uint256" + } + ], + "name": "Liquidation", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_borrowerOperationsAddress", + "type": "address" + } + ], + "name": "LiquityBaseParamsAddressChanges", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newPriceFeedAddress", + "type": "address" + } + ], + "name": "PriceFeedAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_attemptedZUSDAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_actualZUSDAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_ETHSent", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_ETHFee", + "type": "uint256" + } + ], + "name": "Redemption", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_sortedTrovesAddress", + "type": "address" + } + ], + "name": "SortedTrovesAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_stabilityPoolAddress", + "type": "address" + } + ], + "name": "StabilityPoolAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_totalStakesSnapshot", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_totalCollateralSnapshot", + "type": "uint256" + } + ], + "name": "SystemSnapshotsUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_newTotalStakes", + "type": "uint256" + } + ], + "name": "TotalStakesUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_borrower", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_newIndex", + "type": "uint256" + } + ], + "name": "TroveIndexUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_borrower", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_debt", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_coll", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "operation", + "type": "uint8" + } + ], + "name": "TroveLiquidated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_troveManagerRedeemOps", + "type": "address" + } + ], + "name": "TroveManagerRedeemOpsAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_L_ETH", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_L_ZUSDDebt", + "type": "uint256" + } + ], + "name": "TroveSnapshotsUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_borrower", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_debt", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_coll", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "stake", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "operation", + "type": "uint8" + } + ], + "name": "TroveUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_zeroStakingAddress", + "type": "address" + } + ], + "name": "ZEROStakingAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_zeroTokenAddress", + "type": "address" + } + ], + "name": "ZEROTokenAddressChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_newZUSDTokenAddress", + "type": "address" + } + ], + "name": "ZUSDTokenAddressChanged", + "type": "event" + }, + { + "inputs": [], + "name": "BETA", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "BOOTSTRAP_PERIOD", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "CCR", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DECIMAL_PRECISION", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "L_ETH", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "L_ZUSDDebt", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MCR", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MINUTE_DECAY_FACTOR", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MIN_NET_DEBT", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "NAME", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "SECONDS_IN_ONE_MINUTE", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "TroveOwners", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "Troves", + "outputs": [ + { + "internalType": "uint256", + "name": "debt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "coll", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "stake", + "type": "uint256" + }, + { + "internalType": "enum TroveManagerStorage.Status", + "name": "status", + "type": "uint8" + }, + { + "internalType": "uint128", + "name": "arrayIndex", + "type": "uint128" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ZUSD_GAS_COMPENSATION", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_100pct", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_borrower", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_price", + "type": "uint256" + } + ], + "name": "_getCurrentICR", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_borrower", + "type": "address" + } + ], + "name": "_getPendingETHReward", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_borrower", + "type": "address" + } + ], + "name": "_getPendingZUSDDebtReward", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_getRedemptionRate", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_borrower", + "type": "address" + } + ], + "name": "_hasPendingRewards", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_stabilityPool", + "outputs": [ + { + "internalType": "contract IStabilityPool", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_zeroStaking", + "outputs": [ + { + "internalType": "contract IZEROStaking", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_zeroToken", + "outputs": [ + { + "internalType": "contract IZEROToken", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_zusdToken", + "outputs": [ + { + "internalType": "contract IZUSDToken", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "activePool", + "outputs": [ + { + "internalType": "contract IActivePool", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_borrower", + "type": "address" + } + ], + "name": "addTroveOwnerToArray", + "outputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_borrower", + "type": "address" + } + ], + "name": "applyPendingRewards", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "baseRate", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_troveArray", + "type": "address[]" + } + ], + "name": "batchLiquidateTroves", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "borrowerOperationsAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_price", + "type": "uint256" + } + ], + "name": "checkRecoveryMode", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_borrower", + "type": "address" + } + ], + "name": "closeTrove", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "decayBaseRateFromBorrowing", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_borrower", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_collDecrease", + "type": "uint256" + } + ], + "name": "decreaseTroveColl", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_borrower", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_debtDecrease", + "type": "uint256" + } + ], + "name": "decreaseTroveDebt", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "defaultPool", + "outputs": [ + { + "internalType": "contract IDefaultPool", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "feeDistributor", + "outputs": [ + { + "internalType": "contract IFeeDistributor", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_ZUSDDebt", + "type": "uint256" + } + ], + "name": "getBorrowingFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_ZUSDDebt", + "type": "uint256" + } + ], + "name": "getBorrowingFeeWithDecay", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getBorrowingRate", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getBorrowingRateWithDecay", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_borrower", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_price", + "type": "uint256" + } + ], + "name": "getCurrentICR", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_borrower", + "type": "address" + } + ], + "name": "getEntireDebtAndColl", + "outputs": [ + { + "internalType": "uint256", + "name": "debt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "coll", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "pendingZUSDDebtReward", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "pendingETHReward", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getEntireSystemColl", + "outputs": [ + { + "internalType": "uint256", + "name": "entireSystemColl", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getEntireSystemDebt", + "outputs": [ + { + "internalType": "uint256", + "name": "entireSystemDebt", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_borrower", + "type": "address" + } + ], + "name": "getNominalICR", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOwner", + "outputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_borrower", + "type": "address" + } + ], + "name": "getPendingETHReward", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_borrower", + "type": "address" + } + ], + "name": "getPendingZUSDDebtReward", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_ETHDrawn", + "type": "uint256" + } + ], + "name": "getRedemptionFeeWithDecay", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRedemptionRate", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRedemptionRateWithDecay", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_price", + "type": "uint256" + } + ], + "name": "getTCR", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_borrower", + "type": "address" + } + ], + "name": "getTroveColl", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_borrower", + "type": "address" + } + ], + "name": "getTroveDebt", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_index", + "type": "uint256" + } + ], + "name": "getTroveFromTroveOwnersArray", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTroveOwnersCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_borrower", + "type": "address" + } + ], + "name": "getTroveStake", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_borrower", + "type": "address" + } + ], + "name": "getTroveStatus", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_borrower", + "type": "address" + } + ], + "name": "hasPendingRewards", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_borrower", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_collIncrease", + "type": "uint256" + } + ], + "name": "increaseTroveColl", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_borrower", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_debtIncrease", + "type": "uint256" + } + ], + "name": "increaseTroveDebt", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "lastETHError_Redistribution", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lastFeeOperationTime", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lastZUSDDebtError_Redistribution", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_borrower", + "type": "address" + } + ], + "name": "liquidate", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_n", + "type": "uint256" + } + ], + "name": "liquidateTroves", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "liquityBaseParams", + "outputs": [ + { + "internalType": "contract ILiquityBaseParams", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "priceFeed", + "outputs": [ + { + "internalType": "contract IPriceFeed", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_ZUSDamount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_firstRedemptionHint", + "type": "address" + }, + { + "internalType": "address", + "name": "_upperPartialRedemptionHint", + "type": "address" + }, + { + "internalType": "address", + "name": "_lowerPartialRedemptionHint", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_partialRedemptionHintNICR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_maxIterations", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_maxFeePercentage", + "type": "uint256" + } + ], + "name": "redeemCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_borrower", + "type": "address" + } + ], + "name": "removeStake", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "rewardSnapshots", + "outputs": [ + { + "internalType": "uint256", + "name": "ETH", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "ZUSDDebt", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_feeDistributorAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_troveManagerRedeemOps", + "type": "address" + }, + { + "internalType": "address", + "name": "_liquityBaseParamsAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_borrowerOperationsAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_activePoolAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_defaultPoolAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_stabilityPoolAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_gasPoolAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collSurplusPoolAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_priceFeedAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_zusdTokenAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_sortedTrovesAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_zeroTokenAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_zeroStakingAddress", + "type": "address" + } + ], + "name": "setAddresses", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], + "name": "setOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_borrower", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_num", + "type": "uint256" + } + ], + "name": "setTroveStatus", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "sortedTroves", + "outputs": [ + { + "internalType": "contract ISortedTroves", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalCollateralSnapshot", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalStakes", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalStakesSnapshot", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "troveManagerRedeemOps", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_borrower", + "type": "address" + } + ], + "name": "updateStakeAndTotalStakes", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_borrower", + "type": "address" + } + ], + "name": "updateTroveRewardSnapshots", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } +] diff --git a/src/utils/blockchain/contracts.testnet.ts b/src/utils/blockchain/contracts.testnet.ts index 402d63a4a..34afa7337 100644 --- a/src/utils/blockchain/contracts.testnet.ts +++ b/src/utils/blockchain/contracts.testnet.ts @@ -40,6 +40,8 @@ import perpetualLimitOrderBookAbi from './abi/PerpetualLimitOrderBook.json'; import marginTokenAbi from './abi/MarginToken.json'; import fastBtcBridgeAbi from './abi/fastBtcBridge.json'; import fastBtcMultisigAbi from './abi/fastBtcMultisig.json'; +import TroveManager from './abi/TroveManager.json'; +import StabilityPool from './abi/StabilityPool.json'; export const contracts = { sovrynProtocol: { @@ -352,4 +354,12 @@ export const contracts = { address: '0x6b41566353d6C7B8C2a7931d498F11489DacAc29', abi: erc20TokenAbi, }, + zero_troveManager: { + address: '0x56743107c181B32D3A7455d46Be7923aA1045D9E', + abi: TroveManager, + }, + zero_stabilityPool: { + address: '0xd6eD2f49D0A3bF20126cB78119c7CB24D02d605F', + abi: StabilityPool, + }, }; diff --git a/src/utils/blockchain/contracts.ts b/src/utils/blockchain/contracts.ts index be9fed982..628ce08e3 100644 --- a/src/utils/blockchain/contracts.ts +++ b/src/utils/blockchain/contracts.ts @@ -43,6 +43,8 @@ import fastBtcMultisigAbi from './abi/fastBtcMultisig.json'; import perpetualManagerAbi from './abi/PerpetualManager.json'; import perpetualLimitOrderBookAbi from './abi/PerpetualLimitOrderBook.json'; import marginTokenAbi from './abi/MarginToken.json'; +import TroveManager from './abi/TroveManager.json'; +import StabilityPool from './abi/StabilityPool.json'; export const contracts = { sovrynProtocol: { @@ -352,4 +354,12 @@ export const contracts = { address: '0xdB107FA69E33f05180a4C2cE9c2E7CB481645C2d', abi: erc20TokenAbi, }, + zero_troveManager: { + address: '0x82B09695ee4F214f3A0803683C4AaEc332E4E0a3', + abi: TroveManager, + }, + zero_stabilityPool: { + address: '0xd46C0225D1331B46700d64fF8c906709D15C9202', + abi: StabilityPool, + }, }; From 69f5fb8e51dad15b6eb1e2f0c1323195802c7860 Mon Sep 17 00:00:00 2001 From: tiltom Date: Thu, 30 Jun 2022 18:14:59 +0200 Subject: [PATCH 30/38] Perpetuals - close only limit orders (#2299) * Add index URL to the private graph * Reset leverage on Buy/Sell or pair switch * Add reduce only functionality for limit orders * Fix review remarks --- .../components/NewPositionCard/index.tsx | 3 ++ .../components/TradeForm/index.tsx | 31 ++++++++++++++++++- .../contexts/GraphQLProvider.tsx | 1 + src/app/pages/PerpetualPage/types.ts | 3 ++ .../PerpetualPage/utils/contractUtils.tsx | 9 +++++- src/locales/en/translation.json | 4 ++- 6 files changed, 48 insertions(+), 3 deletions(-) diff --git a/src/app/pages/PerpetualPage/components/NewPositionCard/index.tsx b/src/app/pages/PerpetualPage/components/NewPositionCard/index.tsx index c6a46aff2..70fb9bcaa 100644 --- a/src/app/pages/PerpetualPage/components/NewPositionCard/index.tsx +++ b/src/app/pages/PerpetualPage/components/NewPositionCard/index.tsx @@ -124,6 +124,7 @@ export const NewPositionCard: React.FC = () => { created: Date.now(), tx: null, approvalTx: null, + reduceOnly: trade.reduceOnly, }); } @@ -155,6 +156,8 @@ export const NewPositionCard: React.FC = () => { amount: '0', limit: undefined, trigger: undefined, + leverage: 1, + reduceOnly: undefined, })); } }, [dispatch, pairType, trade.pairType]); diff --git a/src/app/pages/PerpetualPage/components/TradeForm/index.tsx b/src/app/pages/PerpetualPage/components/TradeForm/index.tsx index f7bd70fdc..03b7cdd1d 100644 --- a/src/app/pages/PerpetualPage/components/TradeForm/index.tsx +++ b/src/app/pages/PerpetualPage/components/TradeForm/index.tsx @@ -298,7 +298,7 @@ export const TradeForm: React.FC = ({ const resetForm = useCallback(() => { if (trade.tradeType === PerpetualTradeType.MARKET) { setAmount('0'); - setTrade({ ...trade, amount: '0' }); + setTrade({ ...trade, amount: '0', leverage: 1 }); } else { setAmount('0'); setLimit(undefined); @@ -309,6 +309,8 @@ export const TradeForm: React.FC = ({ amount: '0', limit: undefined, trigger: undefined, + leverage: 1, + reduceOnly: undefined, }); } }, [setTrade, trade]); @@ -339,6 +341,13 @@ export const TradeForm: React.FC = ({ [setTrade, trade], ); + const onReduceOnly = useCallback(() => { + setTrade(prevTrade => ({ + ...prevTrade, + reduceOnly: !prevTrade.reduceOnly, + })); + }, [setTrade]); + const bindSelectPosition = useCallback( (position: TradingPosition) => setTrade(trade => ({ ...trade, position })), [setTrade], @@ -695,6 +704,26 @@ export const TradeForm: React.FC = ({ + +
+ + + +
)} diff --git a/src/app/pages/PerpetualPage/contexts/GraphQLProvider.tsx b/src/app/pages/PerpetualPage/contexts/GraphQLProvider.tsx index 77c40d010..c8c7f906c 100644 --- a/src/app/pages/PerpetualPage/contexts/GraphQLProvider.tsx +++ b/src/app/pages/PerpetualPage/contexts/GraphQLProvider.tsx @@ -142,6 +142,7 @@ const config: GraphQLEndpoint[] = { graph: 'https://sovryn-perps-subgraph.sovryn.app/subgraphs/name/DistributedCollective/Sovryn-perpetual-swaps-subgraph', + index: 'https://sovryn-perps-subgraph.sovryn.app/graphql', }, { graph: diff --git a/src/app/pages/PerpetualPage/types.ts b/src/app/pages/PerpetualPage/types.ts index bccaa7420..16246a602 100644 --- a/src/app/pages/PerpetualPage/types.ts +++ b/src/app/pages/PerpetualPage/types.ts @@ -129,6 +129,7 @@ export type PerpetualTrade = { leverage: number; slippage: number; keepPositionLeverage?: boolean; + reduceOnly?: boolean; isClosePosition?: boolean; }; @@ -157,6 +158,7 @@ export const isPerpetualTrade = (x: any): x is PerpetualTrade => (x.margin === undefined || typeof x.margin === 'string') && (x.keepPositionLeverage === undefined || typeof x.keepPositionLeverage === 'boolean') && + (x.reduceOnly === undefined || typeof x.reduceOnly === 'boolean') && (x.isClosingPosition === undefined || typeof x.isClosingPosition === 'boolean'); @@ -252,6 +254,7 @@ export interface PerpetualTxCreateLimitOrder extends PerpetualTxBase { created: number; leverage?: number; tradingPosition?: TradingPosition; + reduceOnly?: boolean; approvalTx: Nullable; } diff --git a/src/app/pages/PerpetualPage/utils/contractUtils.tsx b/src/app/pages/PerpetualPage/utils/contractUtils.tsx index a7ad4764a..58b958924 100644 --- a/src/app/pages/PerpetualPage/utils/contractUtils.tsx +++ b/src/app/pages/PerpetualPage/utils/contractUtils.tsx @@ -649,6 +649,7 @@ const perpetualCreateLimitTradeArgs = async ( created, leverage = 1, pair: pairType, + reduceOnly, } = transaction; const pair = PerpetualPairDictionary.get(pairType); @@ -657,6 +658,12 @@ const perpetualCreateLimitTradeArgs = async ( const createdSeconds = Math.floor(created / 1000); const deadlineSeconds = createdSeconds + expiry * 24 * 60 * 60; + let flags = MASK_LIMIT_ORDER; + + if (reduceOnly) { + flags = flags.or(MASK_CLOSE_ONLY); + } + const order = { iPerpetualId: pair.id, traderAddr: account, @@ -665,7 +672,7 @@ const perpetualCreateLimitTradeArgs = async ( fTriggerPrice: weiToABK64x64(trigger).toString(), iDeadline: deadlineSeconds, referrerAddr: ethGenesisAddress, - flags: MASK_LIMIT_ORDER, + flags, fLeverage: floatToABK64x64(leverage).toString(), createdTimestamp: createdSeconds, }; diff --git a/src/locales/en/translation.json b/src/locales/en/translation.json index d3a37a82d..1542a8295 100644 --- a/src/locales/en/translation.json +++ b/src/locales/en/translation.json @@ -2327,7 +2327,8 @@ "txFee": "Tx Fee: <0/> {{symbol}}", "triggerPrice": "Trigger Price:", "resultingPosition": "Resulting Position", - "keepPositionLeverage": "Keep Position Leverage" + "keepPositionLeverage": "Keep Position Leverage", + "reduceOnly": "Reduce Only" }, "buttons": { "buy": "Buy", @@ -2356,6 +2357,7 @@ "tradingFee": "The trading fee. If fees are paid in BTC, this includes gas costs.", "relayerFee": "Limit/Stop orders are processed with the assistance of a referrer. The referrer is compensated with the relayer fee.", "keepPositionLeverage": "You can keep the leverage of the current position by checking this box.", + "reduceOnly": "Reduce only orders strictly reduce your open position.", "maxTradeSize": "Maximal order size currently allowed by the system.", "leverage": "If at the time of order execution, there is an existing position, the position leverage will remain unchanged if the order partially closes the existing position. If instead, the order increases the existing position size, the order will add margin according to your choice of trade leverage. The resulting position leverage depends on how much margin was added with the trade and the amount of margin in the existing position before the trade.", "limitPrice": "The execution price will be at or below the limit price for buy orders, at or above for sell orders.", From b0eb8bdac4e9736dd74e566ea9c5b1e51e86f04c Mon Sep 17 00:00:00 2001 From: bitcoinuser Date: Fri, 1 Jul 2022 07:25:24 -0300 Subject: [PATCH 31/38] New strings PT-BR (#2302) --- src/locales/pt_br/translation.json | 34 +++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/src/locales/pt_br/translation.json b/src/locales/pt_br/translation.json index dbd10e198..d4d842a02 100644 --- a/src/locales/pt_br/translation.json +++ b/src/locales/pt_br/translation.json @@ -373,7 +373,7 @@ "esEntryPrice": "Preço aprox de entrada:", "esLiquidationPrice": "Preço aprox de liquidação:", "interestAPY": "Interest APY:", - "slippageSettings": "Slippage Settings", + "slippageSettings": "Configurações avançadas", "interestAPR": "Taxa anual:" }, "buttons": { @@ -2342,7 +2342,7 @@ "sellLimit": "Vender a limite", "sellStop": "Sell Stop", "minLeverage": "MIN", - "slippageSettings": "Slippage Settings" + "slippageSettings": "Configurações avançadas" }, "disabledState": { "emptyBalanceExplanation": "Fund your account to start trading", @@ -2588,8 +2588,9 @@ "protocol": "Contrato de protocolo", "lend": "Contrato de empréstimo", "amm": "Contrato Amm", + "zero": "Contrato Zero", "staked": "Contrato Bitocracia", - "subProtocol": "Subprotocolos", + "subProtocol": "Contrato MYNT", "subtotal": "Sub total", "total": "Total" }, @@ -2777,5 +2778,32 @@ "closingPrice": "O preço de saída é 95% do valor do preço de fechamento. Esta diferença ocorre devido ao desconto aplicado como incentivo aos liquidatários." }, "profitTooltip": "Ao fechar a posição você pode escolher receber o valor nos ativos abaixo:" + }, + "competitionPage": { + "meta": { + "title": "Trading Competition", + "description": "" + }, + "nav": { + "perpetualSwap": "Perpetuals", + "competition": "Competition" + }, + "rules": { + "title": "Trading Competition", + "reportBugs": "Please report bugs and issues here!" + }, + "registered": "You are registered! If you require some help, please click on the help button in the top right or post a message on our <0>discord.", + "cta": { + "connect": "Connect Wallet", + "compete": "Compete" + }, + "table": { + "rank": "Rank", + "name": "Name / Wallet Address", + "positions": "Positions opened", + "trade": "Current trade", + "total": "Total P/L", + "empty": "No one registered yet. You could be the first!" + } } } From e81a1bdd1020f244cef9c164430e2e5a63cc402e Mon Sep 17 00:00:00 2001 From: Victor Creed <69458664+creed-victor@users.noreply.github.com> Date: Mon, 4 Jul 2022 08:52:44 -0300 Subject: [PATCH 32/38] feat: mainnet contracts for btc <-> btcs (#2164) * feat: mainnet contracts for btc <-> btcs * Update contracts.ts * fix: change mainnet btcs address for fastbtc * fix: min withdrawal amount Co-authored-by: tiltom --- .env.mainnet.local | 1 + src/app/pages/FastBtcPage/config/contracts.ts | 23 ++++++------------- .../hooks/useWithdrawBridgeConfig.ts | 8 +++---- 3 files changed, 12 insertions(+), 20 deletions(-) diff --git a/.env.mainnet.local b/.env.mainnet.local index c73d22d52..e3e0da60a 100644 --- a/.env.mainnet.local +++ b/.env.mainnet.local @@ -3,6 +3,7 @@ EXTEND_ESLINT=true REACT_APP_NETWORK=mainnet REACT_APP_SENTRY_DSN= +REACT_APP_STAGING=true REACT_APP_PORTIS_ID=469a25c8-1101-4c57-823d-c47cb328f788 diff --git a/src/app/pages/FastBtcPage/config/contracts.ts b/src/app/pages/FastBtcPage/config/contracts.ts index 57f8bc9f1..d4d8647e6 100644 --- a/src/app/pages/FastBtcPage/config/contracts.ts +++ b/src/app/pages/FastBtcPage/config/contracts.ts @@ -60,19 +60,6 @@ export const contracts: Record< FastBTCWithdrawContractName, ChainToContractsMap > = { - // fastBtcBridge: { - // address: { - // [Chain.RSK]: { - // [AppMode.MAINNET]: '0x0D5006330289336ebdF9d0AC9E0674f91b4851eA', - // [AppMode.TESTNET]: '0x10C848e9495a32acA95F6c23C92eCA2b2bE9903A', // todo should be new? - // }, - // [Chain.BSC]: { - // [AppMode.MAINNET]: ethers.constants.AddressZero, // todo - // [AppMode.TESTNET]: '0x10C848e9495a32acA95F6c23C92eCA2b2bE9903A', - // }, - // }, - // abi: fastBtcBridgeAbi, - // }, btcToken: { address: { [Chain.RSK]: { @@ -89,7 +76,7 @@ export const contracts: Record< btcWrapperToken: { address: { [Chain.RSK]: { - [AppMode.MAINNET]: ethers.constants.AddressZero, // todo + [AppMode.MAINNET]: '0xa233108b33dc77f1eee9d183ee1dc9725e76d475', [AppMode.TESTNET]: '0xf629e5c7527ac7bc9ce26bdd6d66f0eb955ef3b2', }, }, @@ -107,7 +94,7 @@ export const contracts: Record< aggregatorBasset: { address: { [Chain.BSC]: { - [AppMode.MAINNET]: ethers.constants.AddressZero, // todo + [AppMode.MAINNET]: '0x68e75416a99f61a8ef3186b3bee41dbf2a3fd4e8', [AppMode.TESTNET]: '0xc41d41cb7a31c80662ac2d8ab7a7e5f5841eebc3', }, }, @@ -116,7 +103,11 @@ export const contracts: Record< aggregatorAllowTokens: { address: { [Chain.RSK]: { - [AppMode.MAINNET]: ethers.constants.AddressZero, // todo + [AppMode.MAINNET]: '0xa2f50a2c699c1aa3b9089f6b565d4999d45d8983', + [AppMode.TESTNET]: '0xa9f2ccb27fe01479a1f21f3a236989c614f801bc', + }, + [Chain.BSC]: { + [AppMode.MAINNET]: '0xc4b5178Cc086E764568AdfB2dacCBB0d973e8132', [AppMode.TESTNET]: '0xa9f2ccb27fe01479a1f21f3a236989c614f801bc', }, }, diff --git a/src/app/pages/FastBtcPage/hooks/useWithdrawBridgeConfig.ts b/src/app/pages/FastBtcPage/hooks/useWithdrawBridgeConfig.ts index a9db86313..64a37137f 100644 --- a/src/app/pages/FastBtcPage/hooks/useWithdrawBridgeConfig.ts +++ b/src/app/pages/FastBtcPage/hooks/useWithdrawBridgeConfig.ts @@ -73,20 +73,20 @@ export function useWithdrawBridgeConfig(network: Chain = Chain.RSK) { })); }); - // + // for aggregator if (network !== Chain.RSK) { setState(prevState => ({ ...prevState, aggregatorLimits: { ...prevState.aggregatorLimits, loading: true }, })); const allowTokens = getFastBTCWithdrawalContract( - Chain.RSK, + network, 'aggregatorAllowTokens', ); - const basset = getFastBTCWithdrawalContract(Chain.RSK, 'btcWrapperToken'); + const basset = getFastBTCWithdrawalContract(network, 'aggregatorBasset'); bridgeNetwork - .multiCall(Chain.RSK, [ + .multiCall(network, [ { address: allowTokens.address, abi: allowTokens.abi, From 9a031e21ed2408257fa2ae4a8f7cffbe290239c4 Mon Sep 17 00:00:00 2001 From: tiltom Date: Wed, 6 Jul 2022 18:57:00 +0200 Subject: [PATCH 33/38] Perpetuals - add data action ids (#2304) * Add data action ids * chore: adjust some action-id cases Co-authored-by: soulBit --- src/app/components/Input/index.tsx | 7 ++++++- .../PerpetualPage/PerpetualPageContainer.tsx | 2 +- .../components/AccountBalanceCard/index.tsx | 1 + .../components/AccountBalanceForm/index.tsx | 7 +++++++ .../components/GsnSwitch/GsnSwitch.tsx | 1 + .../components/LayoutMenu/index.tsx | 10 +++++++++- .../components/LeverageSelector/index.tsx | 13 +++++++++++-- .../OpenOrdersTable/components/OpenOrderRow.tsx | 1 + .../components/OpenPositionRow.tsx | 3 +++ .../PairSelector/PairSelectorButton.tsx | 1 + .../components/TableRowAction/index.tsx | 3 +++ .../components/TradeForm/index.tsx | 17 ++++++++++++++++- 12 files changed, 60 insertions(+), 6 deletions(-) diff --git a/src/app/components/Input/index.tsx b/src/app/components/Input/index.tsx index c76537d0c..023cf19ab 100644 --- a/src/app/components/Input/index.tsx +++ b/src/app/components/Input/index.tsx @@ -12,10 +12,14 @@ export type InputProps = Omit & { classNameInput?: string; invalid?: boolean; unit?: React.ReactNode; + dataActionId?: string; }; export const Input = React.forwardRef( - ({ className, classNameInput, type, invalid, unit, ...rest }, ref) => { + ( + { className, classNameInput, type, invalid, unit, dataActionId, ...rest }, + ref, + ) => { const inputRef = useRef(null) as React.MutableRefObject< HTMLInputElement >; @@ -62,6 +66,7 @@ export const Input = React.forwardRef( )} type={type} {...rest} + dataActionId={dataActionId} /> {type === 'number' && rest.step ? ( <> diff --git a/src/app/pages/PerpetualPage/PerpetualPageContainer.tsx b/src/app/pages/PerpetualPage/PerpetualPageContainer.tsx index 2e28aab44..50182fd79 100644 --- a/src/app/pages/PerpetualPage/PerpetualPageContainer.tsx +++ b/src/app/pages/PerpetualPage/PerpetualPageContainer.tsx @@ -236,7 +236,7 @@ export const PerpetualPageContainer: React.FC = () => { )} diff --git a/src/app/pages/PerpetualPage/components/AccountBalanceCard/index.tsx b/src/app/pages/PerpetualPage/components/AccountBalanceCard/index.tsx index 5af2807ba..2ac0ff886 100644 --- a/src/app/pages/PerpetualPage/components/AccountBalanceCard/index.tsx +++ b/src/app/pages/PerpetualPage/components/AccountBalanceCard/index.tsx @@ -53,6 +53,7 @@ export const AccountBalanceCard: React.FC = () => { )} onClick={onViewAccount} disabled={!isAddressWhitelisted} + data-action-id={`perps-accountBalance-${hasBalance ? 'view' : 'fund'}`} > {hasBalance ? t(translations.perpetualPage.accountBalance.viewAccount) diff --git a/src/app/pages/PerpetualPage/components/AccountBalanceForm/index.tsx b/src/app/pages/PerpetualPage/components/AccountBalanceForm/index.tsx index 1942e5d57..bf54d0735 100644 --- a/src/app/pages/PerpetualPage/components/AccountBalanceForm/index.tsx +++ b/src/app/pages/PerpetualPage/components/AccountBalanceForm/index.tsx @@ -206,6 +206,7 @@ export const AccountBalanceForm: React.FC = ({ className="tw-text-xs tw-font-medium tw-text-secondary tw-underline tw-opacity-50 tw-cursor-not-allowed" disabled onClick={onOpenTransactionHistory} + data-action-id="perps-accountBalance-history" > {t(translations.perpetualPage.accountBalance.viewHistory)} @@ -220,6 +221,7 @@ export const AccountBalanceForm: React.FC = ({ ? t(translations.maintenance.perpetualsAccountFund) : undefined } + dataActionId="perps-accountBalance-btc-deposit" > {t(translations.perpetualPage.accountBalance.deposit)} @@ -232,6 +234,7 @@ export const AccountBalanceForm: React.FC = ({ ? t(translations.maintenance.perpetualsAccountWithdraw) : undefined } + dataActionId="perps-accountBalance-btc-withdraw" > {t(translations.perpetualPage.accountBalance.withdraw)} @@ -244,6 +247,7 @@ export const AccountBalanceForm: React.FC = ({ ? t(translations.maintenance.perpetualsAccountTransfer) : undefined } + dataActionId="perps-accountBalance-rsk-transfer" > {t(translations.perpetualPage.accountBalance.transfer)} @@ -257,6 +261,7 @@ type ActionButtonProps = { disabled?: boolean; tooltip?: string; children: React.ReactNode; + dataActionId?: string; }; const ActionButton: React.FC = ({ @@ -264,6 +269,7 @@ const ActionButton: React.FC = ({ disabled, tooltip, children, + dataActionId, }) => { const button = ( diff --git a/src/app/pages/PerpetualPage/components/GsnSwitch/GsnSwitch.tsx b/src/app/pages/PerpetualPage/components/GsnSwitch/GsnSwitch.tsx index da9ced7b8..9910a5e78 100644 --- a/src/app/pages/PerpetualPage/components/GsnSwitch/GsnSwitch.tsx +++ b/src/app/pages/PerpetualPage/components/GsnSwitch/GsnSwitch.tsx @@ -73,6 +73,7 @@ export const GsnSwitch: React.FC = () => { disabled={isGsnInMaintenance || !isGsnSupported} checked={useMetaTransactions} onChange={onToggleMetaTransactions} + data-action-id="perps-gsn-switch" /> ); diff --git a/src/app/pages/PerpetualPage/components/LayoutMenu/index.tsx b/src/app/pages/PerpetualPage/components/LayoutMenu/index.tsx index f2209a56a..6daf25deb 100644 --- a/src/app/pages/PerpetualPage/components/LayoutMenu/index.tsx +++ b/src/app/pages/PerpetualPage/components/LayoutMenu/index.tsx @@ -33,6 +33,7 @@ export const LayoutMenu: React.FC = () => { )} checked={showAmmDepth} onChange={() => dispatch(actions.setShowAmmDepth(!showAmmDepth))} + data-action-id="perps-layoutMenu-ammDepth" /> { )} checked={showChart} onChange={() => dispatch(actions.setShowChart(!showChart))} + data-action-id="perps-layoutMenu-chart" /> { onChange={() => dispatch(actions.setShowRecentTrades(!showRecentTrades)) } + data-action-id="perps-layoutMenu-recentTrades" /> { )} checked={showTradeForm} onChange={() => dispatch(actions.setShowTradeForm(!showTradeForm))} + data-action-id="perps-layoutMenu-tradeForm" /> { )} checked={showTables} onChange={() => dispatch(actions.setShowTables(!showTables))} + data-action-id="perps-layoutMenu-tables" /> } > - = ({ step={0.01} onBlur={onInputBlur} onChangeText={onInputChange} + dataActionId="perps-leverageSelector-manualInput" /> @@ -151,7 +156,11 @@ export const LeverageSelector: React.FC = ({ type={SliderType.gradient} /> {!disabled && ( - )} diff --git a/src/app/pages/PerpetualPage/components/OpenOrdersTable/components/OpenOrderRow.tsx b/src/app/pages/PerpetualPage/components/OpenOrdersTable/components/OpenOrderRow.tsx index b633ca52d..ad6cf91bd 100644 --- a/src/app/pages/PerpetualPage/components/OpenOrdersTable/components/OpenOrderRow.tsx +++ b/src/app/pages/PerpetualPage/components/OpenOrdersTable/components/OpenOrderRow.tsx @@ -185,6 +185,7 @@ export const OpenOrderRow: React.FC = ({ item }) => { translations.perpetualPage.openOrdersTable.tooltips.cancel, )} onClick={onCancelOrder} + dataActionId="perps-tables-openOrders-action-cancelOrder" />
{ + {showOrderText && ( +
+ + {t(translations.perpetualPage.tradeForm.labels.relayerFee)} + + + + +
+ )} {marginChange > 0 && (
@@ -329,8 +345,8 @@ export const TradeSummary: React.FC = ({ = ({ } }, [amount, maxTradeSize, trade.position]); + useEffect(() => { + if (isValidNumerishValue(amount) && bignumber(amount).lessThan(lotSize)) { + setAmount(String(lotSize)); + setTrade(trade => ({ ...trade, amount: toWei(lotSize) })); + } + }, [amount, lotSize, setTrade]); + useEffect(() => { if ( !hasOpenTrades && @@ -249,7 +256,7 @@ export const TradeForm: React.FC = ({ const roundedAmount = Number( shrinkToLot( Math.max(Math.min(Number(amount) || 0, maxTradeSize), 0), - lotSize, + perpParameters.fLotSizeBC, // non-rounded lot size ).toFixed(lotPrecision), ); setAmount(amount); @@ -260,7 +267,14 @@ export const TradeForm: React.FC = ({ leverage: Math.max(minLeverage, Math.min(maxLeverage, trade.leverage)), })); }, - [lotSize, lotPrecision, maxTradeSize, minLeverage, maxLeverage, setTrade], + [ + maxTradeSize, + perpParameters.fLotSizeBC, + lotPrecision, + setTrade, + minLeverage, + maxLeverage, + ], ); const onBlurOrderAmount = useCallback(() => { diff --git a/src/utils/metamaskHelpers.ts b/src/utils/metamaskHelpers.ts index abb674af7..4357d8802 100644 --- a/src/utils/metamaskHelpers.ts +++ b/src/utils/metamaskHelpers.ts @@ -46,10 +46,7 @@ const networks = { symbol: 'BNB', decimals: 18, }, - rpcUrls: [ - 'https://bsc.sovryn.app/mainnet/', - 'https://bsc-dataseed.binance.org/', - ], + rpcUrls: ['https://bsc-dataseed.binance.org/'], blockExplorerUrls: ['https://bscscan.com'], }, ], From 3f5c7b269d8abae32202dd8ddcf964b548952d6d Mon Sep 17 00:00:00 2001 From: tiltom Date: Fri, 8 Jul 2022 15:29:45 +0200 Subject: [PATCH 35/38] Fix infinite loop in perpetuals after connect wallet --- src/app/pages/PerpetualPage/components/TradeForm/index.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/app/pages/PerpetualPage/components/TradeForm/index.tsx b/src/app/pages/PerpetualPage/components/TradeForm/index.tsx index 2731528c8..20b092469 100644 --- a/src/app/pages/PerpetualPage/components/TradeForm/index.tsx +++ b/src/app/pages/PerpetualPage/components/TradeForm/index.tsx @@ -233,7 +233,11 @@ export const TradeForm: React.FC = ({ }, [amount, maxTradeSize, trade.position]); useEffect(() => { - if (isValidNumerishValue(amount) && bignumber(amount).lessThan(lotSize)) { + if ( + isValidNumerishValue(amount) && + !bignumber(amount).isZero() && + bignumber(amount).lessThan(lotSize) + ) { setAmount(String(lotSize)); setTrade(trade => ({ ...trade, amount: toWei(lotSize) })); } From 8ca6ed5b81f1f3d7b5760fee2b6d70c1ae538117 Mon Sep 17 00:00:00 2001 From: Victor Creed Date: Fri, 8 Jul 2022 10:53:08 -0300 Subject: [PATCH 36/38] feat: hardcode deposit values for fastbtc bridge --- src/app/pages/FastBtcPage/constants.ts | 2 +- src/app/pages/FastBtcPage/hooks/useDepositSocket.ts | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/app/pages/FastBtcPage/constants.ts b/src/app/pages/FastBtcPage/constants.ts index a82916769..aa567847a 100644 --- a/src/app/pages/FastBtcPage/constants.ts +++ b/src/app/pages/FastBtcPage/constants.ts @@ -1,5 +1,5 @@ // https://github.com/DistributedCollective/FastBTC/blob/development/config/config-main.js#L15 -export const DEPOSIT_FEE_SATS = 5000; +export const DEPOSIT_FEE_SATS = 6000; // hardcoded 0.2% dynamic fee // https://github.com/DistributedCollective/FastBTC/blob/development/controller/rskCtrl.js#L64 diff --git a/src/app/pages/FastBtcPage/hooks/useDepositSocket.ts b/src/app/pages/FastBtcPage/hooks/useDepositSocket.ts index 623c8d1df..5de8ba296 100644 --- a/src/app/pages/FastBtcPage/hooks/useDepositSocket.ts +++ b/src/app/pages/FastBtcPage/hooks/useDepositSocket.ts @@ -105,13 +105,14 @@ export function useDepositSocket(eventHandler?: EventHandler) { dynamicFee: number; }>((resolve, reject) => { if (socket.current) { - socket.current.emit('txAmount', res => + socket.current.emit('txAmount', res => { resolve({ ...res, + min: res.min < 0.0005 ? 0.0005 : res.min, // overiding with hardcoded value for now baseFee: DEPOSIT_FEE_SATS, dynamicFee: DEPOSIT_FEE_DYNAMIC, - }), - ); + }); + }); } else { reject(new Error('socket not connected')); } From 1984b22796609d1f2992d5f4a936a7479c164d77 Mon Sep 17 00:00:00 2001 From: tiltom Date: Mon, 11 Jul 2022 09:36:26 +0200 Subject: [PATCH 37/38] Adjust Perpetuals header menu subtitle --- src/locales/en/translation.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/en/translation.json b/src/locales/en/translation.json index 3ea9ffa01..6d3dca89d 100644 --- a/src/locales/en/translation.json +++ b/src/locales/en/translation.json @@ -489,7 +489,7 @@ "originsLaunchpad": "Previous sales on Origins", "originsClaim": "Claim Fish rewards", "myntToken": "Sovryn's BTC backed stablecoin protocol", - "perpetuals": "Coming soon", + "perpetuals": "Trade perpetual futures contracts", "zero": "0% interest loans on your bitcoin", "voting": "Affect Sovryn's governance", "forum": "Join the community" From 5699244e7397f57678a5b505a1d4694ef1f327ac Mon Sep 17 00:00:00 2001 From: tiltom Date: Mon, 11 Jul 2022 14:21:21 +0200 Subject: [PATCH 38/38] Show perps on mainnet (#2318) --- .../DefaultHeaderComponent/DefaultHeaderComponent.tsx | 4 +++- src/app/index.tsx | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/app/containers/PageContainer/components/DefaultHeaderComponent/DefaultHeaderComponent.tsx b/src/app/containers/PageContainer/components/DefaultHeaderComponent/DefaultHeaderComponent.tsx index 5b0ad777d..f23d6f21e 100644 --- a/src/app/containers/PageContainer/components/DefaultHeaderComponent/DefaultHeaderComponent.tsx +++ b/src/app/containers/PageContainer/components/DefaultHeaderComponent/DefaultHeaderComponent.tsx @@ -50,7 +50,9 @@ type PagesProps = { hrefExternal?: boolean; }; -const showPerps = !isMainnet || isStaging; +// TODO: Delete this once we go live, we may need it after the competition +const showPerps = true; // !isMainnet || isStaging; + const showZero = isMainnet || isStaging; export const DefaultHeaderComponent: React.FC = () => { diff --git a/src/app/index.tsx b/src/app/index.tsx index 16c8f5584..1e73416e1 100644 --- a/src/app/index.tsx +++ b/src/app/index.tsx @@ -10,7 +10,7 @@ import React, { useEffect } from 'react'; import { Helmet } from 'react-helmet-async'; import { Switch, Route, BrowserRouter, Redirect } from 'react-router-dom'; -import { currentNetwork, isMainnet, isStaging } from 'utils/classifiers'; +import { currentNetwork, isMainnet } from 'utils/classifiers'; import { useAppTheme } from './hooks/app/useAppTheme'; import { useMaintenance } from './hooks/useMaintenance'; import { useInjectReducer, useInjectSaga } from 'utils/redux-injectors'; @@ -54,7 +54,9 @@ import { PerpetualPageLoadable } from './pages/PerpetualPage/Loadable'; import { CompetitionPage } from './pages/PerpetualPage/components/CompetitionPage'; const title = !isMainnet ? `Sovryn ${currentNetwork}` : 'Sovryn'; -const showPerps = !isMainnet || isStaging; + +// TODO: Delete this once we go live, we may need it after the competition +const showPerps = true; // !isMainnet || isStaging; export function App() { useAppTheme();